{"version":3,"file":"static/js/main.ce0b1fde.js","mappings":"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","sources":["../node_modules/copy-to-clipboard/index.js","../node_modules/focus-visible/dist/focus-visible.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/isarray/index.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/debounce.js","../node_modules/lodash/eq.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/now.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/toNumber.js","../node_modules/object-assign/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/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-social-icons/node_modules/react/cjs/react.production.min.js","../node_modules/react-social-icons/node_modules/react/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/toggle-selection/index.js","mocks/sampleData|sync|/^/.//.*/.json$","mocks|sync|/^/.//.*/.json$","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../node_modules/@shopify/polaris/build/esm/tokens/token-groups/motion.json.js","../node_modules/@shopify/polaris/build/esm/tokens/utilities.js","../node_modules/@shopify/polaris/build/esm/tokens/tokens.js","../node_modules/@shopify/polaris/build/esm/tokens/token-groups/color.light.json.js","../node_modules/@shopify/polaris/build/esm/tokens/token-groups/color.dark.json.js","../node_modules/@shopify/polaris/build/esm/tokens/token-groups/depth.json.js","../node_modules/@shopify/polaris/build/esm/tokens/token-groups/legacy-tokens.json.js","../node_modules/@shopify/polaris/build/esm/tokens/token-groups/shape.json.js","../node_modules/@shopify/polaris/build/esm/tokens/token-groups/spacing.json.js","../node_modules/@shopify/polaris/build/esm/tokens/token-groups/typography.json.js","../node_modules/@shopify/polaris/build/esm/tokens/token-groups/z-index.json.js","../node_modules/@shopify/polaris/build/esm/components/CustomProperties/styles.js","../node_modules/@shopify/polaris/build/esm/components/CustomProperties/CustomProperties.js","../node_modules/@shopify/polaris/build/esm/components/shared.js","../node_modules/@shopify/polaris/build/esm/utilities/breakpoints.js","../node_modules/@shopify/polaris/build/esm/utilities/geometry.js","../node_modules/@shopify/polaris/build/esm/utilities/sticky-manager/sticky-manager.js","../node_modules/@shopify/polaris/build/esm/utilities/target.js","../node_modules/@shopify/polaris/build/esm/utilities/scroll-lock-manager/scroll-lock-manager.js","../node_modules/@shopify/polaris/build/esm/utilities/unique-id/unique-id-factory.js","../node_modules/@shopify/polaris/build/esm/utilities/get.js","../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/@shopify/polaris/build/esm/utilities/merge.js","../node_modules/@shopify/polaris/build/esm/utilities/i18n/I18n.js","../node_modules/@shopify/polaris/build/esm/utilities/features/context.js","../node_modules/@shopify/polaris/build/esm/utilities/i18n/context.js","../node_modules/@shopify/polaris/build/esm/utilities/scroll-lock-manager/context.js","../node_modules/@shopify/polaris/build/esm/utilities/sticky-manager/context.js","../node_modules/@shopify/polaris/build/esm/utilities/unique-id/context.js","../node_modules/@shopify/polaris/build/esm/utilities/link/context.js","../node_modules/@shopify/polaris/build/esm/utilities/media-query/context.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@shopify/polaris/build/esm/components/EventListener/EventListener.js","../node_modules/@shopify/polaris/build/esm/components/MediaQueryProvider/MediaQueryProvider.js","../node_modules/@shopify/polaris/build/esm/utilities/portals/context.js","../node_modules/@shopify/polaris/build/esm/components/PortalsManager/components/PortalsContainer/PortalsContainer.js","../node_modules/@shopify/polaris/build/esm/components/PortalsManager/PortalsManager.js","../node_modules/@shopify/polaris/build/esm/utilities/focus-manager/context.js","../node_modules/@shopify/polaris/build/esm/components/FocusManager/FocusManager.js","../node_modules/@shopify/polaris/build/esm/components/AppProvider/AppProvider.js","../node_modules/@fullstory/browser/dist/index.esm.js","../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/tiny-invariant.esm.js","../node_modules/history/esm/history.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/react-router/modules/createNameContext.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-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","../node_modules/@microsoft/clarity/index.js","../node_modules/@microsoft/clarity/src/utils.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/date-fns/esm/add/index.js","state/DateRangeContext.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@shopify/polaris/build/esm/utilities/css.js","../node_modules/@shopify/polaris/build/esm/utilities/use-toggle.js","../node_modules/@shopify/polaris/build/esm/utilities/within-content-context.js","../node_modules/@shopify/polaris/build/esm/components/Card/Card.scss.js","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/CaretDownMinor.svg.mjs","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/SelectMinor.svg.mjs","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/CaretUpMinor.svg.mjs","../node_modules/@shopify/polaris/build/esm/utilities/is-element-in-viewport.js","../node_modules/@shopify/polaris/build/esm/utilities/focus.js","../node_modules/@shopify/polaris/build/esm/components/Button/Button.scss.js","../node_modules/@shopify/polaris/build/esm/utilities/use-is-after-initial-mount.js","../node_modules/@shopify/polaris/build/esm/components/Spinner/Spinner.scss.js","../node_modules/@shopify/polaris/build/esm/components/VisuallyHidden/VisuallyHidden.scss.js","../node_modules/@shopify/polaris/build/esm/components/VisuallyHidden/VisuallyHidden.js","../node_modules/@shopify/polaris/build/esm/components/Spinner/Spinner.js","../node_modules/@shopify/polaris/build/esm/utilities/errors.js","../node_modules/@shopify/polaris/build/esm/utilities/unique-id/hooks.js","../node_modules/@shopify/polaris/build/esm/components/Portal/Portal.js","../node_modules/@shopify/polaris/build/esm/utilities/portals/hooks.js","../node_modules/@shopify/polaris/build/esm/utilities/components.js","../node_modules/@shopify/polaris/build/esm/types.js","../node_modules/@shopify/polaris/build/esm/components/Popover/Popover.scss.js","../node_modules/@shopify/polaris/build/esm/utilities/use-isomorphic-layout-effect.js","../node_modules/@shopify/polaris/build/esm/components/KeypressListener/KeypressListener.js","../node_modules/@shopify/polaris/build/esm/components/PositionedOverlay/utilities/math.js","../node_modules/@shopify/polaris/build/esm/components/PositionedOverlay/PositionedOverlay.scss.js","../node_modules/@shopify/polaris/build/esm/components/Scrollable/context.js","../node_modules/@shopify/polaris/build/esm/components/Scrollable/Scrollable.scss.js","../node_modules/@shopify/polaris/build/esm/components/Scrollable/Scrollable.js","../node_modules/@shopify/polaris/build/esm/components/Scrollable/components/ScrollTo/ScrollTo.js","../node_modules/@shopify/polaris/build/esm/components/PositionedOverlay/PositionedOverlay.js","../node_modules/@shopify/polaris/build/esm/components/Popover/components/PopoverOverlay/PopoverOverlay.js","../node_modules/@shopify/polaris/build/esm/components/Popover/components/Section/Section.js","../node_modules/@shopify/polaris/build/esm/components/Popover/components/Pane/Pane.js","../node_modules/@shopify/polaris/build/esm/components/Popover/Popover.js","../node_modules/@shopify/polaris/build/esm/components/Popover/set-activator-attributes.js","../node_modules/@shopify/polaris/build/esm/components/ActionList/ActionList.scss.js","../node_modules/@shopify/polaris/build/esm/components/Icon/Icon.scss.js","../node_modules/@shopify/polaris/build/esm/components/Icon/Icon.js","../node_modules/@shopify/polaris/build/esm/components/TextStyle/TextStyle.scss.js","../node_modules/@shopify/polaris/build/esm/components/TextStyle/TextStyle.js","../node_modules/@shopify/polaris/build/esm/utilities/within-filter-context.js","../node_modules/@shopify/polaris/build/esm/components/Badge/Badge.scss.js","../node_modules/@shopify/polaris/build/esm/utilities/i18n/hooks.js","../node_modules/@shopify/polaris/build/esm/components/Badge/Badge.js","../node_modules/@shopify/polaris/build/esm/components/UnstyledLink/UnstyledLink.js","../node_modules/@shopify/polaris/build/esm/utilities/link/hooks.js","../node_modules/@shopify/polaris/build/esm/components/ActionList/components/Item/Item.js","../node_modules/@shopify/polaris/build/esm/components/ActionList/components/Section/Section.js","../node_modules/@shopify/polaris/build/esm/components/ActionList/ActionList.js","../node_modules/@shopify/polaris/build/esm/components/UnstyledButton/UnstyledButton.js","../node_modules/@shopify/polaris/build/esm/components/Button/Button.js","../node_modules/@shopify/polaris/build/esm/components/Button/utils.js","../node_modules/@shopify/polaris/build/esm/components/ButtonGroup/ButtonGroup.scss.js","../node_modules/@shopify/polaris/build/esm/components/ButtonGroup/components/Item/Item.js","../node_modules/@shopify/polaris/build/esm/components/ButtonGroup/ButtonGroup.js","../node_modules/@shopify/polaris/build/esm/components/Stack/Stack.scss.js","../node_modules/@shopify/polaris/build/esm/components/Stack/components/Item/Item.js","../node_modules/@shopify/polaris/build/esm/components/Stack/Stack.js","../node_modules/@shopify/polaris/build/esm/components/Heading/Heading.scss.js","../node_modules/@shopify/polaris/build/esm/components/Heading/Heading.js","../node_modules/@shopify/polaris/build/esm/components/Card/components/Header/Header.js","../node_modules/@shopify/polaris/build/esm/components/Subheading/Subheading.scss.js","../node_modules/@shopify/polaris/build/esm/components/Subheading/Subheading.js","../node_modules/@shopify/polaris/build/esm/components/Card/components/Section/Section.js","../node_modules/@shopify/polaris/build/esm/components/Card/Card.js","../node_modules/@shopify/polaris/build/esm/components/Form/Form.js","../node_modules/@shopify/polaris/build/esm/components/Card/components/Subsection/Subsection.js","../node_modules/@shopify/polaris/build/esm/components/FormLayout/FormLayout.scss.js","../node_modules/@shopify/polaris/build/esm/components/FormLayout/components/Item/Item.js","../node_modules/@shopify/polaris/build/esm/components/FormLayout/components/Group/Group.js","../node_modules/@shopify/polaris/build/esm/components/FormLayout/FormLayout.js","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/CircleCancelMinor.svg.mjs","../node_modules/@shopify/polaris/build/esm/components/TextField/TextField.scss.js","../node_modules/@shopify/polaris/build/esm/components/Labelled/Labelled.scss.js","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/AlertMinor.svg.mjs","../node_modules/@shopify/polaris/build/esm/components/InlineError/InlineError.scss.js","../node_modules/@shopify/polaris/build/esm/components/InlineError/InlineError.js","../node_modules/@shopify/polaris/build/esm/components/Label/Label.scss.js","../node_modules/@shopify/polaris/build/esm/components/Label/Label.js","../node_modules/@shopify/polaris/build/esm/components/Labelled/Labelled.js","../node_modules/@shopify/polaris/build/esm/components/Connected/Connected.scss.js","../node_modules/@shopify/polaris/build/esm/components/Connected/components/Item/Item.js","../node_modules/@shopify/polaris/build/esm/components/Connected/Connected.js","../node_modules/@shopify/polaris/build/esm/components/TextField/components/Spinner/Spinner.js","../node_modules/@shopify/polaris/build/esm/components/TextField/components/Resizer/Resizer.js","../node_modules/@shopify/polaris/build/esm/components/TextField/TextField.js","Config.js","framework/util/rest.js","framework/util/auth.js","framework/util/theme.js","components/Refersion.js","screens/Auth.js","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/MobileCancelMajor.svg.mjs","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/@shopify/polaris/build/esm/utilities/set-root-property.js","../node_modules/@shopify/polaris/build/esm/components/Frame/Frame.scss.js","../node_modules/@shopify/polaris/build/esm/components/Frame/components/Loading/Loading.scss.js","../node_modules/@shopify/polaris/build/esm/components/Frame/components/Loading/Loading.js","../node_modules/@shopify/polaris/build/esm/utilities/use-is-mounted-ref.js","../node_modules/@shopify/polaris/build/esm/components/Frame/components/CSSAnimation/CSSAnimation.scss.js","../node_modules/@shopify/polaris/build/esm/components/Frame/components/CSSAnimation/CSSAnimation.js","../node_modules/@shopify/polaris/build/esm/utilities/is-object.js","../node_modules/@shopify/polaris/build/esm/utilities/pluck-deep.js","../node_modules/@shopify/polaris/build/esm/utilities/get-width.js","../node_modules/@shopify/polaris/build/esm/components/Frame/components/ContextualSaveBar/ContextualSaveBar.scss.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@shopify/polaris/build/esm/components/Modal/Modal.scss.js","../node_modules/@shopify/polaris/build/esm/components/Modal/components/Dialog/Dialog.scss.js","../node_modules/@shopify/polaris/build/esm/components/Focus/Focus.js","../node_modules/@shopify/polaris/build/esm/components/TrapFocus/TrapFocus.js","../node_modules/@shopify/polaris/build/esm/utilities/focus-manager/hooks.js","../node_modules/@shopify/polaris/build/esm/components/Modal/components/Dialog/Dialog.js","../node_modules/@shopify/polaris/build/esm/components/Modal/components/Header/Header.scss.js","../node_modules/@shopify/polaris/build/esm/components/Modal/components/CloseButton/CloseButton.scss.js","../node_modules/@shopify/polaris/build/esm/components/Modal/components/CloseButton/CloseButton.js","../node_modules/@shopify/polaris/build/esm/components/DisplayText/DisplayText.scss.js","../node_modules/@shopify/polaris/build/esm/components/DisplayText/DisplayText.js","../node_modules/@shopify/polaris/build/esm/components/Modal/components/Header/Header.js","../node_modules/@shopify/polaris/build/esm/components/Modal/components/Section/Section.scss.js","../node_modules/@shopify/polaris/build/esm/components/Modal/components/Section/Section.js","../node_modules/@shopify/polaris/build/esm/components/Modal/components/Footer/Footer.scss.js","../node_modules/@shopify/polaris/build/esm/components/Modal/components/Footer/Footer.js","../node_modules/@shopify/polaris/build/esm/components/Backdrop/Backdrop.scss.js","../node_modules/@shopify/polaris/build/esm/components/ScrollLock/ScrollLock.js","../node_modules/@shopify/polaris/build/esm/utilities/scroll-lock-manager/hooks.js","../node_modules/@shopify/polaris/build/esm/components/Backdrop/Backdrop.js","../node_modules/@shopify/polaris/build/esm/components/Modal/Modal.js","../node_modules/@shopify/polaris/build/esm/components/Frame/components/ContextualSaveBar/components/DiscardConfirmationModal/DiscardConfirmationModal.js","../node_modules/@shopify/polaris/build/esm/utilities/frame/context.js","../node_modules/@shopify/polaris/build/esm/utilities/frame/hooks.js","../node_modules/@shopify/polaris/build/esm/components/Image/Image.js","../node_modules/@shopify/polaris/build/esm/components/Frame/components/ContextualSaveBar/ContextualSaveBar.js","../node_modules/@shopify/polaris/build/esm/utilities/use-deep-compare-ref.js","../node_modules/@shopify/polaris/build/esm/utilities/use-deep-effect.js","../node_modules/@shopify/polaris/build/esm/components/Frame/components/ToastManager/ToastManager.scss.js","../node_modules/@shopify/polaris/build/esm/components/Frame/components/Toast/Toast.scss.js","../node_modules/@shopify/polaris/build/esm/components/Frame/components/Toast/Toast.js","../node_modules/@shopify/polaris/build/esm/components/Frame/components/ToastManager/ToastManager.js","../node_modules/@shopify/polaris/build/esm/utilities/use-deep-callback.js","../node_modules/@shopify/polaris/build/esm/utilities/media-query/hooks.js","../node_modules/@shopify/polaris/build/esm/components/Frame/Frame.js","../node_modules/@shopify/polaris/build/esm/components/Loading/Loading.js","../node_modules/@shopify/polaris/build/esm/components/Page/Page.scss.js","../node_modules/@shopify/polaris/build/esm/components/Page/components/Header/Header.scss.js","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/ArrowLeftMinor.svg.mjs","../node_modules/@shopify/polaris/build/esm/components/Breadcrumbs/Breadcrumbs.scss.js","../node_modules/@shopify/polaris/build/esm/components/Breadcrumbs/Breadcrumbs.js","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/ChevronLeftMinor.svg.mjs","../node_modules/@shopify/polaris/build/esm/utilities/is-input-focused.js","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/ChevronRightMinor.svg.mjs","../node_modules/@shopify/polaris/build/esm/components/Tooltip/components/TooltipOverlay/TooltipOverlay.scss.js","../node_modules/@shopify/polaris/build/esm/components/Tooltip/components/TooltipOverlay/TooltipOverlay.js","../node_modules/@shopify/polaris/build/esm/components/Tooltip/Tooltip.js","../node_modules/@shopify/polaris/build/esm/components/Pagination/Pagination.js","../node_modules/@shopify/polaris/build/esm/components/Page/components/Header/components/Title/Title.scss.js","../node_modules/@shopify/polaris/build/esm/components/Page/components/Header/components/Title/Title.js","../node_modules/@shopify/polaris/build/esm/components/ActionMenu/ActionMenu.scss.js","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/HorizontalDotsMinor.svg.mjs","../node_modules/@shopify/polaris/build/esm/components/ActionMenu/components/RollupActions/RollupActions.scss.js","../node_modules/@shopify/polaris/build/esm/components/ActionMenu/components/RollupActions/RollupActions.js","../node_modules/@shopify/polaris/build/esm/components/ActionMenu/components/Actions/Actions.scss.js","../node_modules/@shopify/polaris/build/esm/components/ActionMenu/components/MenuGroup/MenuGroup.scss.js","../node_modules/@shopify/polaris/build/esm/components/ActionMenu/components/SecondaryAction/SecondaryAction.scss.js","../node_modules/@shopify/polaris/build/esm/components/ActionMenu/components/SecondaryAction/SecondaryAction.js","../node_modules/@shopify/polaris/build/esm/components/ActionMenu/components/MenuGroup/MenuGroup.js","../node_modules/@shopify/polaris/build/esm/components/ActionMenu/components/Actions/Actions.js","../node_modules/@shopify/polaris/build/esm/components/ActionMenu/ActionMenu.js","../node_modules/@shopify/polaris/build/esm/components/Page/components/Header/Header.js","../node_modules/@shopify/polaris/build/esm/components/Page/Page.js","../node_modules/@shopify/polaris/build/esm/components/Toast/Toast.js","util/spentlyRest.js","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/MobileHamburgerMajor.svg.mjs","../node_modules/@shopify/polaris/build/esm/components/TopBar/TopBar.scss.js","../node_modules/@shopify/polaris/build/esm/components/TopBar/components/Search/Search.scss.js","../node_modules/@shopify/polaris/build/esm/components/TopBar/components/SearchDismissOverlay/SearchDismissOverlay.scss.js","../node_modules/@shopify/polaris/build/esm/components/TopBar/components/SearchDismissOverlay/SearchDismissOverlay.js","../node_modules/@shopify/polaris/build/esm/components/TopBar/components/Search/Search.js","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/SearchMinor.svg.mjs","../node_modules/@shopify/polaris/build/esm/components/TopBar/components/SearchField/SearchField.scss.js","../node_modules/@shopify/polaris/build/esm/components/TopBar/components/SearchField/SearchField.js","../node_modules/@shopify/polaris/build/esm/components/TopBar/components/UserMenu/UserMenu.scss.js","../node_modules/@shopify/polaris/build/esm/components/MessageIndicator/MessageIndicator.scss.js","../node_modules/@shopify/polaris/build/esm/components/MessageIndicator/MessageIndicator.js","../node_modules/@shopify/polaris/build/esm/components/TopBar/components/Menu/Menu.scss.js","../node_modules/@shopify/polaris/build/esm/components/TopBar/components/Menu/components/Message/Message.scss.js","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/ExternalSmallMinor.svg.mjs","../node_modules/@shopify/polaris/build/esm/utilities/banner-context.js","../node_modules/@shopify/polaris/build/esm/components/Link/Link.scss.js","../node_modules/@shopify/polaris/build/esm/components/Link/Link.js","../node_modules/@shopify/polaris/build/esm/components/TextContainer/TextContainer.scss.js","../node_modules/@shopify/polaris/build/esm/components/TextContainer/TextContainer.js","../node_modules/@shopify/polaris/build/esm/components/TopBar/components/Menu/components/Message/Message.js","../node_modules/@shopify/polaris/build/esm/components/TopBar/components/Menu/Menu.js","../node_modules/@shopify/polaris/build/esm/components/Avatar/Avatar.scss.js","../node_modules/@shopify/polaris/build/esm/components/Avatar/Avatar.js","../node_modules/@shopify/polaris/build/esm/components/TopBar/TopBar.js","../node_modules/@shopify/polaris/build/esm/components/TopBar/components/UserMenu/UserMenu.js","../node_modules/@shopify/polaris-icons/dist/icons/UndoIcon.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/RedoIcon.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/DesktopIcon.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/MobileIcon.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/ViewportWideIcon.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/SearchIcon.svg.mjs","framework/ui/PanFilteredSelect.js","../node_modules/liquidjs/dist/liquid.browser.mjs","util/filters/fontEscapeFilter.js","util/builder.js","state/TemplateContext.js","util/emailShell.js","util/formatters.js","../node_modules/@shopify/polaris-icons/dist/icons/ExitIcon.svg.mjs","widgets/builder/Divider.js","widgets/builder/TemplateTitle.js","widgets/builder/BuilderTopBarContext.js","widgets/builder/modals/LoseChangesModal.js","widgets/builder/modals/MissingTitleModal.js","state/BaseComponentContext.js","widgets/BuilderTopBar.js","../node_modules/@shopify/polaris/build/esm/components/Navigation/context.js","../node_modules/@shopify/polaris/build/esm/components/Navigation/Navigation.scss.js","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/ExternalMinor.svg.mjs","../node_modules/@shopify/polaris/build/esm/components/Collapsible/Collapsible.scss.js","../node_modules/@shopify/polaris/build/esm/components/Collapsible/Collapsible.js","../node_modules/@shopify/polaris/build/esm/components/Navigation/components/Item/components/Secondary/Secondary.js","../node_modules/@shopify/polaris/build/esm/components/Indicator/Indicator.scss.js","../node_modules/@shopify/polaris/build/esm/components/Indicator/Indicator.js","../node_modules/@shopify/polaris/build/esm/components/Navigation/components/Item/Item.js","../node_modules/@shopify/polaris/build/esm/components/Navigation/Navigation.js","../node_modules/@shopify/polaris/build/esm/components/Navigation/components/Section/Section.js","../node_modules/@shopify/polaris-icons/dist/icons/QuestionCircleIcon.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/LayoutHeaderIcon.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/PlusCircleIcon.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/LayoutFooterIcon.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/SettingsIcon.svg.mjs","util/superGrossIconFile.js","../node_modules/@microsoft/applicationinsights-shims/src/Constants.ts","../node_modules/@microsoft/applicationinsights-shims/src/Helpers.ts","../node_modules/@microsoft/applicationinsights-shims/src/TsLibShims.ts","../node_modules/@microsoft/dynamicproto-js/lib/out/lib/src/DynamicProto.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/LoggingEnums.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/HelperFuncs.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/EnvUtils.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DbgExtensionUtils.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DiagnosticLogger.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/PerfManager.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryPluginChain.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/Constants.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryHelpers.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ChannelController.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CookieMgr.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseCore.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/EventsDiscardedReason.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/NotificationManager.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/AppInsightsCore.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/RandomHelper.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CoreUtils.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/applicationinsights-common.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataSanitizer.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/DataPointType.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Constants.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/TelemetryItemCreator.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/EventData.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Event.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Trace.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/MessageData.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/MetricData.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/DataPoint.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataPoint.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Metric.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/PageViewData.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/HelperFuncs.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageView.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageViewPerformance.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/PageViewPerfData.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/StackFrame.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ExceptionDetails.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Exception.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/SeverityLevel.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Enums.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ExceptionData.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/StorageHelperFuncs.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/DomHelperFuncs.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/RequestResponseHeaders.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/UrlHelperFuncs.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Util.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/RemoteDependencyData.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/RemoteDependencyData.js","../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js","../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/ApplicationInsights.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/SendBuffer.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ContextTagKeys.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/PartAExtensions.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Envelope.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Envelope.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Base.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Data.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Data.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/EnvelopeCreator.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Serializer.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Sender.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Offline.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/Sample.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Session.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Application.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Device.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Internal.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/User.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Location.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/TelemetryTrace.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/TelemetryContext.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/PropertiesPlugin.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/InstrumentHooks.js","../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajaxRecord.js","../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/TraceParent.js","../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajax.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/ConnectionStringParser.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/IConfig.js","../node_modules/@microsoft/applicationinsights-web/dist-esm/Initialization.js","../node_modules/@microsoft/applicationinsights-react-js/dist-esm/ReactPlugin.js","util/AppInsights.js","util/logging.js","../node_modules/@shopify/polaris-icons/dist/icons/DragHandleIcon.svg.mjs","framework/ui/PanNavItem.js","../node_modules/@shopify/polaris/build/esm/components/SkeletonDisplayText/SkeletonDisplayText.scss.js","../node_modules/@shopify/polaris/build/esm/components/SkeletonDisplayText/SkeletonDisplayText.js","widgets/builder/sidebars/SkeletonComponentTree.js","widgets/builder/ComponentTree.js","widgets/builder/util/TemplateSelector.js","util/componentFilter.js","../node_modules/@shopify/polaris/build/esm/components/Layout/Layout.scss.js","../node_modules/@shopify/polaris/build/esm/components/Layout/components/Section/Section.js","../node_modules/@shopify/polaris/build/esm/components/Layout/Layout.js","../node_modules/@shopify/polaris/build/esm/components/Layout/components/AnnotatedSection/AnnotatedSection.js","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/MinusMinor.svg.mjs","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/TickSmallMinor.svg.mjs","../node_modules/@shopify/polaris/build/esm/utilities/listbox/context.js","../node_modules/@shopify/polaris/build/esm/components/Checkbox/Checkbox.scss.js","../node_modules/@shopify/polaris/build/esm/components/Choice/Choice.scss.js","../node_modules/@shopify/polaris/build/esm/components/Choice/Choice.js","../node_modules/@shopify/polaris/build/esm/components/Checkbox/Checkbox.js","../node_modules/@shopify/polaris-icons/dist/icons/XSmallIcon.svg.mjs","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/CancelSmallMinor.svg.mjs","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/CircleTickMajor.svg.mjs","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/CircleInformationMajor.svg.mjs","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/CircleAlertMajor.svg.mjs","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/DiamondAlertMajor.svg.mjs","../node_modules/@shopify/polaris/build/esm/components/Banner/Banner.scss.js","../node_modules/@shopify/polaris/build/esm/components/Banner/Banner.js","../node_modules/@shopify/polaris/build/esm/components/UnstyledButton/utils.js","../node_modules/@shopify/polaris/build/esm/components/Select/Select.scss.js","../node_modules/@shopify/polaris/build/esm/components/Select/Select.js","framework/ui/forms/FontSelector.js","widgets/builder/options/CodeOption.js","../node_modules/@shopify/polaris-icons/dist/icons/ExchangeIcon.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/DeleteIcon.svg.mjs","widgets/builder/options/ImageOption.js","../node_modules/@shopify/polaris/build/esm/utilities/clamp.js","../node_modules/@shopify/polaris/build/esm/utilities/roundNumberToDecimalPlaces.js","../node_modules/@shopify/polaris/build/esm/utilities/color-transformers.js","../node_modules/@shopify/polaris/build/esm/components/ColorPicker/ColorPicker.scss.js","../node_modules/@shopify/polaris/build/esm/components/ColorPicker/components/AlphaPicker/utilities.js","../node_modules/@shopify/polaris/build/esm/components/ColorPicker/components/Slidable/Slidable.js","../node_modules/@shopify/polaris/build/esm/components/ColorPicker/components/AlphaPicker/AlphaPicker.js","../node_modules/@shopify/polaris/build/esm/components/ColorPicker/components/HuePicker/utilities.js","../node_modules/@shopify/polaris/build/esm/components/ColorPicker/components/HuePicker/HuePicker.js","../node_modules/@shopify/polaris/build/esm/components/ColorPicker/ColorPicker.js","widgets/builder/options/MulticolorOption.js","../node_modules/@shopify/polaris/build/esm/components/RangeSlider/components/DualThumb/DualThumb.js","../node_modules/@shopify/polaris/build/esm/components/RangeSlider/RangeSlider.scss.js","../node_modules/@shopify/polaris/build/esm/components/RangeSlider/components/DualThumb/DualThumb.scss.js","../node_modules/@shopify/polaris/build/esm/components/RangeSlider/components/SingleThumb/SingleThumb.scss.js","../node_modules/@shopify/polaris/build/esm/components/RangeSlider/components/SingleThumb/SingleThumb.js","../node_modules/@shopify/polaris/build/esm/components/RangeSlider/utilities/invertNumber.js","../node_modules/@shopify/polaris/build/esm/components/RangeSlider/RangeSlider.js","widgets/builder/options/NumberOption.js","widgets/builder/options/PositionOption.js","widgets/builder/options/SocialOption.js","../node_modules/@shopify/polaris/build/esm/utilities/options.js","../node_modules/@shopify/polaris/build/esm/components/Autocomplete/Autocomplete.scss.js","../node_modules/@shopify/polaris/build/esm/components/Autocomplete/components/MappedOption/MappedOption.scss.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/Listbox.scss.js","../node_modules/@shopify/polaris/build/esm/utilities/combobox/context.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/components/Section/selectors.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/components/TextOption/TextOption.scss.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/components/TextOption/TextOption.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/components/Loading/Loading.scss.js","../node_modules/@shopify/polaris/build/esm/utilities/listbox/hooks.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/components/Loading/Loading.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/components/Section/context.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/components/Section/Section.scss.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/components/Header/Header.scss.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/components/Section/hooks.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/components/Action/Action.scss.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/components/Option/Option.scss.js","../node_modules/@shopify/polaris/build/esm/utilities/autocomplete/context.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/components/Option/Option.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/Listbox.js","../node_modules/@shopify/polaris/build/esm/utilities/combobox/hooks.js","../node_modules/@shopify/polaris/build/esm/utilities/scroll-into-view.js","../node_modules/@shopify/polaris/build/esm/utilities/closest-parent-match.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/components/Section/Section.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/components/Header/Header.js","../node_modules/@shopify/polaris/build/esm/components/Listbox/components/Action/Action.js","../node_modules/@shopify/polaris/build/esm/components/Autocomplete/components/MappedOption/MappedOption.js","../node_modules/@shopify/polaris/build/esm/components/Combobox/Combobox.scss.js","../node_modules/@shopify/polaris/build/esm/components/Combobox/Combobox.js","../node_modules/@shopify/polaris/build/esm/components/Combobox/components/TextField/TextField.js","../node_modules/@shopify/polaris/build/esm/components/Autocomplete/components/MappedAction/MappedAction.scss.js","../node_modules/@shopify/polaris/build/esm/components/Autocomplete/components/MappedAction/MappedAction.js","../node_modules/@shopify/polaris/build/esm/components/Autocomplete/Autocomplete.js","util/Debounce.js","widgets/builder/options/ProductsOption.js","state/OptionsContext.js","framework/ui/shopify/CollectionsDropdown.js","../node_modules/react-social-icons/dist/component.js","widgets/settings/SocialSettings.js","../node_modules/react-social-icons/dist/icons/auth0.js","../node_modules/react-social-icons/dist/icons/bandsintown.js","../node_modules/react-social-icons/dist/icons/behance.js","../node_modules/react-social-icons/dist/icons/bsky.app.js","../node_modules/react-social-icons/dist/icons/clubhouse.js","../node_modules/react-social-icons/dist/icons/codepen.js","../node_modules/react-social-icons/dist/icons/developer.mozilla.js","../node_modules/react-social-icons/dist/icons/discord.js","../node_modules/react-social-icons/dist/icons/dribbble.js","../node_modules/react-social-icons/dist/icons/dropbox.js","../node_modules/react-social-icons/dist/icons/email.js","../node_modules/react-social-icons/dist/icons/facebook.js","../node_modules/react-social-icons/dist/icons/fivehundredpix.js","../node_modules/react-social-icons/dist/icons/foursquare.js","../node_modules/react-social-icons/dist/icons/flickr.js","../node_modules/react-social-icons/dist/icons/gitlab.js","../node_modules/react-social-icons/dist/icons/github.js","../node_modules/react-social-icons/dist/icons/google.js","../node_modules/react-social-icons/dist/icons/google_play.js","../node_modules/react-social-icons/dist/icons/instagram.js","../node_modules/react-social-icons/dist/icons/groupme.js","../node_modules/react-social-icons/dist/icons/itunes.js","../node_modules/react-social-icons/dist/icons/itch.io.js","../node_modules/react-social-icons/dist/icons/line.me.js","../node_modules/react-social-icons/dist/icons/leetcode.js","../node_modules/react-social-icons/dist/icons/linkedin.js","../node_modules/react-social-icons/dist/icons/linktree.js","../node_modules/react-social-icons/dist/icons/mailto.js","../node_modules/react-social-icons/dist/icons/mastodon.js","../node_modules/react-social-icons/dist/icons/matrix.js","../node_modules/react-social-icons/dist/icons/medium.js","../node_modules/react-social-icons/dist/icons/meetup.js","../node_modules/react-social-icons/dist/icons/misskey.js","../node_modules/react-social-icons/dist/icons/opensea.js","../node_modules/react-social-icons/dist/icons/patreon.js","../node_modules/react-social-icons/dist/icons/pinterest.js","../node_modules/react-social-icons/dist/icons/pixiv.js","../node_modules/react-social-icons/dist/icons/ravelry.js","../node_modules/react-social-icons/dist/icons/rdio.js","../node_modules/react-social-icons/dist/icons/reddit.js","../node_modules/react-social-icons/dist/icons/rss.js","../node_modules/react-social-icons/dist/icons/sharethis.js","../node_modules/react-social-icons/dist/icons/slack.js","../node_modules/react-social-icons/dist/icons/smugmug.js","../node_modules/react-social-icons/dist/icons/snapchat.js","../node_modules/react-social-icons/dist/icons/soundcloud.js","../node_modules/react-social-icons/dist/icons/spotify.js","../node_modules/react-social-icons/dist/icons/squarespace.js","../node_modules/react-social-icons/dist/icons/substack.js","../node_modules/react-social-icons/dist/icons/t.me.js","../node_modules/react-social-icons/dist/icons/stackoverflow.js","../node_modules/react-social-icons/dist/icons/telegram.js","../node_modules/react-social-icons/dist/icons/threads.js","../node_modules/react-social-icons/dist/icons/tiktok.js","../node_modules/react-social-icons/dist/icons/twitch.js","../node_modules/react-social-icons/dist/icons/tumblr.js","../node_modules/react-social-icons/dist/icons/twitter.js","../node_modules/react-social-icons/dist/icons/upwork.js","../node_modules/react-social-icons/dist/icons/vevo.js","../node_modules/react-social-icons/dist/icons/vine.js","../node_modules/react-social-icons/dist/icons/vimeo.js","../node_modules/react-social-icons/dist/icons/vk.js","../node_modules/react-social-icons/dist/icons/vsco.js","../node_modules/react-social-icons/dist/icons/wechat.js","../node_modules/react-social-icons/dist/icons/x.js","../node_modules/react-social-icons/dist/icons/whatsapp.js","../node_modules/react-social-icons/dist/icons/xiaohongshu.js","../node_modules/react-social-icons/dist/icons/xing.js","../node_modules/react-social-icons/dist/icons/yandex.js","../node_modules/react-social-icons/dist/icons/yelp.js","../node_modules/react-social-icons/dist/icons/youtube.js","widgets/builder/actions/EditSocialLinks.js","widgets/builder/actions/NavLink.js","widgets/builder/actions/EditLinks.js","widgets/builder/actions/LoadMoreCollections.js","widgets/builder/BuilderOption.js","widgets/builder/sidebars/RightSidebar.js","widgets/builder/sidebars/OptionsSidebar.js","../node_modules/@shopify/polaris-icons/dist/icons/ThemeEditIcon.svg.mjs","widgets/builder/sidebars/TipsSidebar.js","widgets/builder/themeSettings/ButtonSettings.js","widgets/builder/themeSettings/DiscountSettings.js","widgets/builder/themeSettings/DividerSettings.js","widgets/builder/themeSettings/EmailSettings.js","widgets/builder/themeSettings/fonts/BodyFont.js","widgets/builder/themeSettings/fonts/ButtonFont.js","widgets/builder/themeSettings/fonts/HeaderFont.js","widgets/builder/themeSettings/FontSettings.js","widgets/builder/themeSettings/RecommendationSettings.js","widgets/builder/sidebars/ThemeSidebar.js","widgets/builder/RenderedComponent.js","widgets/builder/themeSettings/NavigationSideBar.js","widgets/builder/sidebars/StyleCollapsible.js","widgets/builder/sidebars/HeaderSidebar.js","widgets/builder/sidebars/FooterSidebar.js","widgets/builder/SavedModal.js","../node_modules/@shopify/polaris/build/esm/components/List/List.scss.js","../node_modules/@shopify/polaris/build/esm/components/List/List.js","../node_modules/@shopify/polaris/build/esm/components/List/components/Item/Item.js","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/UploadMajor.svg.mjs","../node_modules/@shopify/polaris/build/esm/utilities/capitalize.js","../node_modules/@shopify/polaris/build/esm/utilities/use-component-did-mount.js","../node_modules/@shopify/polaris/build/esm/components/DropZone/utils/index.js","../node_modules/@shopify/polaris/build/esm/components/DropZone/context.js","../node_modules/@shopify/polaris/build/esm/components/DropZone/DropZone.scss.js","../node_modules/@shopify/polaris/build/esm/components/DropZone/components/FileUpload/FileUpload.scss.js","../node_modules/@shopify/polaris/build/esm/components/Caption/Caption.scss.js","../node_modules/@shopify/polaris/build/esm/components/Caption/Caption.js","../node_modules/@shopify/polaris/build/esm/components/DropZone/DropZone.js","../node_modules/@shopify/polaris/build/esm/components/DropZone/components/FileUpload/FileUpload.js","../node_modules/@shopify/polaris/build/esm/components/DropZone/images/upload-arrow.svg.js","../node_modules/@shopify/polaris/build/esm/components/Thumbnail/Thumbnail.scss.js","../node_modules/@shopify/polaris/build/esm/components/Thumbnail/Thumbnail.js","widgets/builder/sidebars/ImageSidebar.js","widgets/builder/MagicPreview.js","widgets/builder/MagicModal.js","widgets/builder/util/ModalStyleHack.js","widgets/builder/modals/ErrorModal.js","widgets/googleAnalytics.js","widgets/intercom.js","pages/NewBuilder.js","../node_modules/@shopify/polaris-icons/dist/icons/NoteAddIcon.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/StarFilledIcon.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/LockIcon.svg.mjs","components/UserMenu.js","../node_modules/@shopify/polaris-icons/dist/icons/HomeIcon.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/NotificationIcon.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/ListBulletedFilledIcon.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/StatusIcon.svg.mjs","widgets/navigation/Navigation.js","../node_modules/@shopify/polaris/build/esm/components/EmptyState/EmptyState.scss.js","../node_modules/@shopify/polaris/build/esm/components/EmptyState/EmptyState.js","../node_modules/chart.js/dist/chunks/helpers.segment.js","../node_modules/chart.js/dist/chart.esm.js","../node_modules/chart.js/auto/auto.esm.js","../node_modules/react-chartjs-2/src/utils.ts","../node_modules/react-chartjs-2/src/chart.tsx","../node_modules/react-chartjs-2/src/typedCharts.tsx","../node_modules/@shopify/polaris-icons/dist/icons/CalendarIcon.svg.mjs","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/ArrowRightMinor.svg.mjs","../node_modules/@shopify/polaris/build/esm/utilities/dates.js","../node_modules/@shopify/polaris/build/esm/components/DatePicker/utilities.js","../node_modules/@shopify/polaris/build/esm/components/DatePicker/DatePicker.scss.js","../node_modules/@shopify/polaris/build/esm/components/DatePicker/components/Weekday/Weekday.js","../node_modules/@shopify/polaris/build/esm/components/DatePicker/components/Day/Day.js","../node_modules/@shopify/polaris/build/esm/components/DatePicker/components/Month/Month.js","../node_modules/@shopify/polaris/build/esm/components/DatePicker/DatePicker.js","../node_modules/date-fns/esm/startOfYear/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","components/DatePickerDropdown.js","../node_modules/@shopify/polaris/build/esm/components/SkeletonBodyText/SkeletonBodyText.scss.js","../node_modules/@shopify/polaris/build/esm/components/SkeletonBodyText/SkeletonBodyText.js","util/localizer.js","widgets/dashboard/HalfCard.js","widgets/dashboard/SingleRow.js","widgets/dashboard/SingleValue.js","framework/util/formatters.js","screens/Dashboard.js","../node_modules/@shopify/polaris/build/esm/components/MediaCard/MediaCard.scss.js","../node_modules/@shopify/polaris/build/esm/components/MediaCard/MediaCard.js","../node_modules/@shopify/polaris/build/esm/components/SkeletonThumbnail/SkeletonThumbnail.scss.js","../node_modules/@shopify/polaris/build/esm/components/SkeletonThumbnail/SkeletonThumbnail.js","framework/ui/PanCardList.js","framework/ui/PanConfirmModal.js","framework/ui/PanMediaCard.js","screens/Notifications.js","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/EnableSelectionMinor.svg.mjs","../node_modules/@shopify/polaris/build/esm/utilities/use-lazy-ref.js","../node_modules/@shopify/polaris/build/esm/components/ResourceList/ResourceList.scss.js","../node_modules/@shopify/polaris/build/esm/components/ResourceItem/ResourceItem.scss.js","../node_modules/@shopify/polaris/build/esm/utilities/resource-list/types.js","../node_modules/@shopify/polaris/build/esm/utilities/resource-list/context.js","../node_modules/@shopify/polaris/build/esm/components/ResourceItem/ResourceItem.js","../node_modules/@shopify/polaris/build/esm/components/BulkActions/BulkActions.scss.js","../node_modules/@shopify/polaris/build/esm/components/BulkActions/components/BulkActionButton/BulkActionButton.js","../node_modules/@shopify/polaris/build/esm/components/BulkActions/components/BulkActionMenu/BulkActionMenu.js","../node_modules/@shopify/polaris/build/esm/components/CheckableButton/CheckableButton.scss.js","../node_modules/@shopify/polaris/build/esm/components/CheckableButton/CheckableButton.js","../node_modules/@shopify/polaris/build/esm/components/BulkActions/BulkActions.js","../node_modules/@shopify/polaris/build/esm/components/Sticky/Sticky.js","../node_modules/@shopify/polaris/build/esm/utilities/sticky-manager/hooks.js","../node_modules/@shopify/polaris/build/esm/components/EmptySearchResult/EmptySearchResult.js","../node_modules/@shopify/polaris/build/esm/components/EmptySearchResult/illustrations/empty-search.svg.js","../node_modules/@shopify/polaris/build/esm/components/ResourceList/ResourceList.js","widgets/builder/modals/FeatureConfirmModal.js","components/SwitchButton.js","screens/FeatureList.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/index.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/parseISO/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/addHours/index.js","../node_modules/date-fns/esm/differenceInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/roundingMethods/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/date-fns/esm/differenceInDays/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/compareAsc/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/isLastDayOfMonth/index.js","../node_modules/date-fns/esm/differenceInMonths/index.js","../node_modules/date-fns/esm/differenceInCalendarYears/index.js","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/chartjs-adapter-date-fns/dist/chartjs-adapter-date-fns.esm.js","../node_modules/@shopify/polaris/build/esm/components/DataTable/utilities.js","../node_modules/date-fns/esm/addSeconds/index.js","../node_modules/date-fns/esm/addMinutes/index.js","../node_modules/date-fns/esm/addWeeks/index.js","../node_modules/date-fns/esm/addQuarters/index.js","../node_modules/date-fns/esm/addYears/index.js","../node_modules/date-fns/esm/differenceInSeconds/index.js","../node_modules/date-fns/esm/differenceInMinutes/index.js","../node_modules/date-fns/esm/differenceInHours/index.js","../node_modules/date-fns/esm/differenceInWeeks/index.js","../node_modules/date-fns/esm/differenceInQuarters/index.js","../node_modules/date-fns/esm/differenceInYears/index.js","../node_modules/date-fns/esm/startOfSecond/index.js","../node_modules/date-fns/esm/startOfMinute/index.js","../node_modules/date-fns/esm/startOfHour/index.js","../node_modules/date-fns/esm/startOfQuarter/index.js","../node_modules/date-fns/esm/endOfSecond/index.js","../node_modules/date-fns/esm/endOfMinute/index.js","../node_modules/date-fns/esm/endOfHour/index.js","../node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/date-fns/esm/endOfQuarter/index.js","../node_modules/date-fns/esm/endOfYear/index.js","../node_modules/@shopify/polaris/build/esm/components/DataTable/DataTable.scss.js","../node_modules/@shopify/polaris/build/esm/components/DataTable/components/Cell/Cell.js","../node_modules/@shopify/polaris/build/esm/components/DataTable/components/Navigation/Navigation.js","../node_modules/@shopify/polaris/build/esm/components/DataTable/DataTable.js","../node_modules/@codemirror/text/dist/index.js","framework/ui/PanTable.js","widgets/reports/RoiTable.js","components/DataListRow.js","widgets/reports/ReportStats.js","screens/Reports.js","screens/Usage.js","../node_modules/@shopify/polaris/build/esm/components/ContextualSaveBar/ContextualSaveBar.js","screens/CompanySettings.js","../node_modules/@codemirror/state/dist/index.js","../node_modules/style-mod/src/style-mod.js","../node_modules/@codemirror/rangeset/dist/index.js","../node_modules/w3c-keyname/index.es.js","../node_modules/@codemirror/view/dist/index.js","../node_modules/@codemirror/history/dist/index.js","../node_modules/@lezer/common/dist/index.js","../node_modules/@codemirror/language/dist/index.js","../node_modules/@codemirror/gutter/dist/index.js","../node_modules/@codemirror/fold/dist/index.js","../node_modules/@codemirror/matchbrackets/dist/index.js","../node_modules/@codemirror/commands/dist/index.js","../node_modules/@codemirror/closebrackets/dist/index.js","../node_modules/@codemirror/panel/dist/index.js","../node_modules/crelt/index.es.js","../node_modules/@codemirror/search/dist/index.js","../node_modules/@codemirror/tooltip/dist/index.js","../node_modules/@codemirror/autocomplete/dist/index.js","../node_modules/@codemirror/comment/dist/index.js","../node_modules/@codemirror/rectangular-selection/dist/index.js","../node_modules/@codemirror/highlight/dist/index.js","../node_modules/@codemirror/lint/dist/index.js","../node_modules/@codemirror/basic-setup/dist/index.js","../node_modules/@codemirror/theme-one-dark/dist/index.js","../node_modules/@uiw/react-codemirror/src/theme/light.ts","../node_modules/@uiw/react-codemirror/src/useCodeMirror.ts","../node_modules/@uiw/react-codemirror/src/index.tsx","../node_modules/@lezer/lr/dist/index.js","../node_modules/@lezer/html/dist/index.es.js","../node_modules/@lezer/css/dist/index.es.js","../node_modules/@codemirror/lang-css/dist/index.js","../node_modules/@lezer/javascript/dist/index.es.js","../node_modules/@codemirror/lang-javascript/dist/index.js","../node_modules/@codemirror/lang-html/dist/index.js","../node_modules/@lezer/json/dist/index.es.js","../node_modules/@codemirror/lang-json/dist/index.js","screens/Tester.js","../node_modules/@shopify/polaris/build/esm/components/SkeletonPage/SkeletonPage.scss.js","../node_modules/@shopify/polaris/build/esm/components/SkeletonPage/SkeletonPage.js","../node_modules/@shopify/polaris/build/esm/utilities/arrays.js","../node_modules/@shopify/polaris/build/esm/components/OptionList/OptionList.scss.js","../node_modules/@shopify/polaris/build/esm/components/OptionList/components/Option/Option.scss.js","../node_modules/@shopify/polaris/build/esm/components/OptionList/components/Checkbox/Checkbox.scss.js","../node_modules/@shopify/polaris/build/esm/components/OptionList/components/Checkbox/Checkbox.js","../node_modules/@shopify/polaris/build/esm/components/OptionList/components/Option/Option.js","../node_modules/@shopify/polaris/build/esm/components/OptionList/OptionList.js","screens/Publish.js","../node_modules/@shopify/polaris-icons/dist/icons/SaveIcon.svg.mjs","screens/CustomerDataRequest.js","../node_modules/@shopify/polaris/build/esm/components/ExceptionList/ExceptionList.scss.js","../node_modules/@shopify/polaris/build/esm/components/Truncate/Truncate.scss.js","../node_modules/@shopify/polaris/build/esm/components/Truncate/Truncate.js","../node_modules/@shopify/polaris/build/esm/components/ExceptionList/ExceptionList.js","../node_modules/@shopify/polaris-icons/dist/icons/CheckIcon.svg.mjs","screens/Paywall.js","widgets/banners/PlanLimitUpgrade.js","pages/Site.js","../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/mightBeEmail.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/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/format.js","../node_modules/react-ga/dist/esm/utils/removeLeadingSlash.js","../node_modules/react-ga/dist/esm/index.js","util/PageListener.js","framework/modals/TermsOfServiceModal.js","util/DocumentUtil.js","util/ErrorBoundary.js","App.js","index.js"],"sourcesContent":["\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. ¯\\_(ツ)_/¯\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\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","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\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","/** @license React v17.0.2\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\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(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 D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(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){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(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(oa,\npa);D[b]=new B(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(oa,pa);D[b]=new B(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(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(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 ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function 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 m({},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 $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(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\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(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 bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!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,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({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 vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(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}}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(y(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;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&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=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){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 Oe(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)}\nvar Pe=fa&&\"documentMode\"in document&&11>=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&&Oe(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&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;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}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)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=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"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[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,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=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=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","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","var map = {\n\t\"./Button.json\": 2422,\n\t\"./ConditionalRecommendedProduct.json\": 1172,\n\t\"./CustomerInfo.json\": 5874,\n\t\"./Discount.json\": 4780,\n\t\"./Divider.json\": 6668,\n\t\"./ExchangeChildLineItems.json\": 3530,\n\t\"./ExchangeChildTotals.json\": 5793,\n\t\"./ExchangeParentLineItems.json\": 3107,\n\t\"./ExchangeParentTotals.json\": 6761,\n\t\"./FeaturedProduct.json\": 6722,\n\t\"./Header.json\": 1322,\n\t\"./LineItems.json\": 9431,\n\t\"./NewDiscount.json\": 122,\n\t\"./RecommendedProducts.json\": 7518,\n\t\"./Text.json\": 3953\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 3043;","var map = {\n\t\"./sampleData/Button.json\": 2422,\n\t\"./sampleData/ConditionalRecommendedProduct.json\": 1172,\n\t\"./sampleData/CustomerInfo.json\": 5874,\n\t\"./sampleData/Discount.json\": 4780,\n\t\"./sampleData/Divider.json\": 6668,\n\t\"./sampleData/ExchangeChildLineItems.json\": 3530,\n\t\"./sampleData/ExchangeChildTotals.json\": 5793,\n\t\"./sampleData/ExchangeParentLineItems.json\": 3107,\n\t\"./sampleData/ExchangeParentTotals.json\": 6761,\n\t\"./sampleData/FeaturedProduct.json\": 6722,\n\t\"./sampleData/Header.json\": 1322,\n\t\"./sampleData/LineItems.json\": 9431,\n\t\"./sampleData/NewDiscount.json\": 122,\n\t\"./sampleData/RecommendedProducts.json\": 7518,\n\t\"./sampleData/Text.json\": 3953\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6189;","// 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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// 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};","// 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__.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))","// 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__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","var ease=\"cubic-bezier(0.25, 0.1, 0.25, 1)\";var linear=\"cubic-bezier(0, 0, 1, 1)\";var motion = {\"duration-0\":\"0ms\",\"duration-50\":\"50ms\",\"duration-100\":\"100ms\",\"duration-150\":\"150ms\",\"duration-200\":\"200ms\",\"duration-250\":\"250ms\",\"duration-300\":\"300ms\",\"duration-350\":\"350ms\",\"duration-400\":\"400ms\",\"duration-450\":\"450ms\",\"duration-500\":\"500ms\",ease:ease,\"ease-in\":\"cubic-bezier(0.42, 0, 1, 1)\",\"ease-out\":\"cubic-bezier(0, 0, 0.58, 1)\",\"ease-in-out\":\"cubic-bezier(0.42, 0, 0.58, 1)\",linear:linear};\n\nexport { motion as default, ease, linear };\n","const BASE_FONT_SIZE = 16;\n\nfunction rem(value) {\n return value.replace( // https://regex101.com/r/RBL7EE/1\n /\\d+(?:\\.\\d+|\\d*)px/g, px => `${parseInt(px, 10) / BASE_FONT_SIZE}rem`);\n}\n\nfunction tokensToRems(tokenGroup) {\n return Object.fromEntries(Object.entries(tokenGroup).map(([token, value]) => [token, rem(value)]));\n}\n\nexport { tokensToRems };\n","import depth from './token-groups/depth.json.js';\nimport legacyTokens from './token-groups/legacy-tokens.json.js';\nimport darkColorScheme from './token-groups/color.dark.json.js';\nimport lightColorScheme from './token-groups/color.light.json.js';\nimport motion from './token-groups/motion.json.js';\nimport shape from './token-groups/shape.json.js';\nimport spacing from './token-groups/spacing.json.js';\nimport typography from './token-groups/typography.json.js';\nimport zIndex from './token-groups/z-index.json.js';\nimport { tokensToRems } from './utilities.js';\n\n/**\n * Values to convert to CSS custom properties.\n * @example {background: '#000'} // --p-background: #000;\n */\n\nconst osColorSchemes = {\n light: 'light',\n dark: 'dark'\n};\n/**\n * Polaris color schemes and their associated color tokens.\n */\n\nconst colorSchemes = {\n light: lightColorScheme,\n dark: darkColorScheme\n};\nconst tokens = {\n colorSchemes,\n depth,\n legacyTokens: tokensToRems(legacyTokens),\n motion,\n shape: tokensToRems(shape),\n spacing: tokensToRems(spacing),\n typography: tokensToRems(typography),\n zIndex\n};\n\nexport { osColorSchemes, tokens };\n","var background=\"rgba(246, 246, 247, 1)\";var surface=\"rgba(255, 255, 255, 1)\";var backdrop=\"rgba(0, 0, 0, 0.5)\";var overlay=\"rgba(255, 255, 255, 0.5)\";var border=\"rgba(140, 145, 150, 1)\";var divider=\"rgba(225, 227, 229, 1)\";var icon=\"rgba(92, 95, 98, 1)\";var text=\"rgba(32, 34, 35, 1)\";var interactive=\"rgba(44, 110, 203, 1)\";var focused=\"rgba(69, 143, 255, 1)\";var lightColorScheme = {background:background,\"background-hovered\":\"rgba(241, 242, 243, 1)\",\"background-pressed\":\"rgba(237, 238, 239, 1)\",\"background-selected\":\"rgba(237, 238, 239, 1)\",surface:surface,\"surface-neutral\":\"rgba(228, 229, 231, 1)\",\"surface-neutral-hovered\":\"rgba(219, 221, 223, 1)\",\"surface-neutral-pressed\":\"rgba(201, 204, 208, 1)\",\"surface-neutral-disabled\":\"rgba(241, 242, 243, 1)\",\"surface-neutral-subdued\":\"rgba(246, 246, 247, 1)\",\"surface-subdued\":\"rgba(250, 251, 251, 1)\",\"surface-disabled\":\"rgba(250, 251, 251, 1)\",\"surface-hovered\":\"rgba(246, 246, 247, 1)\",\"surface-pressed\":\"rgba(241, 242, 243, 1)\",\"surface-depressed\":\"rgba(237, 238, 239, 1)\",\"surface-search-field\":\"rgba(241, 242, 243, 1)\",backdrop:backdrop,overlay:overlay,\"shadow-from-dim-light\":\"rgba(0, 0, 0, 0.2)\",\"shadow-from-ambient-light\":\"rgba(23, 24, 24, 0.05)\",\"shadow-from-direct-light\":\"rgba(0, 0, 0, 0.15)\",\"shadow-color-picker\":\"rgba(0, 0, 0, 0.5)\",\"shadow-color-picker-dragger\":\"rgba(33, 43, 54, 0.32)\",\"hint-from-direct-light\":\"rgba(0, 0, 0, 0.15)\",border:border,\"border-neutral-subdued\":\"rgba(186, 191, 195, 1)\",\"border-hovered\":\"rgba(153, 158, 164, 1)\",\"border-disabled\":\"rgba(210, 213, 216, 1)\",\"border-subdued\":\"rgba(201, 204, 207, 1)\",\"border-depressed\":\"rgba(87, 89, 89, 1)\",\"border-shadow\":\"rgba(174, 180, 185, 1)\",\"border-shadow-subdued\":\"rgba(186, 191, 196, 1)\",divider:divider,icon:icon,\"icon-hovered\":\"rgba(26, 28, 29, 1)\",\"icon-pressed\":\"rgba(68, 71, 74, 1)\",\"icon-disabled\":\"rgba(186, 190, 195, 1)\",\"icon-subdued\":\"rgba(140, 145, 150, 1)\",text:text,\"text-disabled\":\"rgba(140, 145, 150, 1)\",\"text-subdued\":\"rgba(109, 113, 117, 1)\",interactive:interactive,\"interactive-disabled\":\"rgba(189, 193, 204, 1)\",\"interactive-hovered\":\"rgba(31, 81, 153, 1)\",\"interactive-pressed\":\"rgba(16, 50, 98, 1)\",focused:focused,\"surface-selected\":\"rgba(242, 247, 254, 1)\",\"surface-selected-hovered\":\"rgba(237, 244, 254, 1)\",\"surface-selected-pressed\":\"rgba(229, 239, 253, 1)\",\"icon-on-interactive\":\"rgba(255, 255, 255, 1)\",\"text-on-interactive\":\"rgba(255, 255, 255, 1)\",\"action-secondary\":\"rgba(255, 255, 255, 1)\",\"action-secondary-disabled\":\"rgba(255, 255, 255, 1)\",\"action-secondary-hovered\":\"rgba(246, 246, 247, 1)\",\"action-secondary-pressed\":\"rgba(241, 242, 243, 1)\",\"action-secondary-depressed\":\"rgba(109, 113, 117, 1)\",\"action-primary\":\"rgba(0, 128, 96, 1)\",\"action-primary-disabled\":\"rgba(241, 241, 241, 1)\",\"action-primary-hovered\":\"rgba(0, 110, 82, 1)\",\"action-primary-pressed\":\"rgba(0, 94, 70, 1)\",\"action-primary-depressed\":\"rgba(0, 61, 44, 1)\",\"icon-on-primary\":\"rgba(255, 255, 255, 1)\",\"text-on-primary\":\"rgba(255, 255, 255, 1)\",\"text-primary\":\"rgba(0, 123, 92, 1)\",\"text-primary-hovered\":\"rgba(0, 108, 80, 1)\",\"text-primary-pressed\":\"rgba(0, 92, 68, 1)\",\"surface-primary-selected\":\"rgba(241, 248, 245, 1)\",\"surface-primary-selected-hovered\":\"rgba(179, 208, 195, 1)\",\"surface-primary-selected-pressed\":\"rgba(162, 188, 176, 1)\",\"border-critical\":\"rgba(253, 87, 73, 1)\",\"border-critical-subdued\":\"rgba(224, 179, 178, 1)\",\"border-critical-disabled\":\"rgba(255, 167, 163, 1)\",\"icon-critical\":\"rgba(215, 44, 13, 1)\",\"surface-critical\":\"rgba(254, 211, 209, 1)\",\"surface-critical-subdued\":\"rgba(255, 244, 244, 1)\",\"surface-critical-subdued-hovered\":\"rgba(255, 240, 240, 1)\",\"surface-critical-subdued-pressed\":\"rgba(255, 233, 232, 1)\",\"surface-critical-subdued-depressed\":\"rgba(254, 188, 185, 1)\",\"text-critical\":\"rgba(215, 44, 13, 1)\",\"action-critical\":\"rgba(216, 44, 13, 1)\",\"action-critical-disabled\":\"rgba(241, 241, 241, 1)\",\"action-critical-hovered\":\"rgba(188, 34, 0, 1)\",\"action-critical-pressed\":\"rgba(162, 27, 0, 1)\",\"action-critical-depressed\":\"rgba(108, 15, 0, 1)\",\"icon-on-critical\":\"rgba(255, 255, 255, 1)\",\"text-on-critical\":\"rgba(255, 255, 255, 1)\",\"interactive-critical\":\"rgba(216, 44, 13, 1)\",\"interactive-critical-disabled\":\"rgba(253, 147, 141, 1)\",\"interactive-critical-hovered\":\"rgba(205, 41, 12, 1)\",\"interactive-critical-pressed\":\"rgba(103, 15, 3, 1)\",\"border-warning\":\"rgba(185, 137, 0, 1)\",\"border-warning-subdued\":\"rgba(225, 184, 120, 1)\",\"icon-warning\":\"rgba(185, 137, 0, 1)\",\"surface-warning\":\"rgba(255, 215, 157, 1)\",\"surface-warning-subdued\":\"rgba(255, 245, 234, 1)\",\"surface-warning-subdued-hovered\":\"rgba(255, 242, 226, 1)\",\"surface-warning-subdued-pressed\":\"rgba(255, 235, 211, 1)\",\"text-warning\":\"rgba(145, 106, 0, 1)\",\"border-highlight\":\"rgba(68, 157, 167, 1)\",\"border-highlight-subdued\":\"rgba(152, 198, 205, 1)\",\"icon-highlight\":\"rgba(0, 160, 172, 1)\",\"surface-highlight\":\"rgba(164, 232, 242, 1)\",\"surface-highlight-subdued\":\"rgba(235, 249, 252, 1)\",\"surface-highlight-subdued-hovered\":\"rgba(228, 247, 250, 1)\",\"surface-highlight-subdued-pressed\":\"rgba(213, 243, 248, 1)\",\"text-highlight\":\"rgba(52, 124, 132, 1)\",\"border-success\":\"rgba(0, 164, 124, 1)\",\"border-success-subdued\":\"rgba(149, 201, 180, 1)\",\"icon-success\":\"rgba(0, 127, 95, 1)\",\"surface-success\":\"rgba(174, 233, 209, 1)\",\"surface-success-subdued\":\"rgba(241, 248, 245, 1)\",\"surface-success-subdued-hovered\":\"rgba(236, 246, 241, 1)\",\"surface-success-subdued-pressed\":\"rgba(226, 241, 234, 1)\",\"text-success\":\"rgba(0, 128, 96, 1)\",\"decorative-one-icon\":\"rgba(126, 87, 0, 1)\",\"decorative-one-surface\":\"rgba(255, 201, 107, 1)\",\"decorative-one-text\":\"rgba(61, 40, 0, 1)\",\"decorative-two-icon\":\"rgba(175, 41, 78, 1)\",\"decorative-two-surface\":\"rgba(255, 196, 176, 1)\",\"decorative-two-text\":\"rgba(73, 11, 28, 1)\",\"decorative-three-icon\":\"rgba(0, 109, 65, 1)\",\"decorative-three-surface\":\"rgba(146, 230, 181, 1)\",\"decorative-three-text\":\"rgba(0, 47, 25, 1)\",\"decorative-four-icon\":\"rgba(0, 106, 104, 1)\",\"decorative-four-surface\":\"rgba(145, 224, 214, 1)\",\"decorative-four-text\":\"rgba(0, 45, 45, 1)\",\"decorative-five-icon\":\"rgba(174, 43, 76, 1)\",\"decorative-five-surface\":\"rgba(253, 201, 208, 1)\",\"decorative-five-text\":\"rgba(79, 14, 31, 1)\"};\n\nexport { backdrop, background, border, lightColorScheme as default, divider, focused, icon, interactive, overlay, surface, text };\n","var background=\"rgba(11, 12, 13, 1)\";var surface=\"rgba(32, 33, 35, 1)\";var backdrop=\"rgba(0, 0, 0, 0.5)\";var overlay=\"rgba(33, 33, 33, 0.5)\";var border=\"rgba(80, 83, 86, 1)\";var divider=\"rgba(69, 71, 73, 1)\";var icon=\"rgba(166, 172, 178, 1)\";var text=\"rgba(227, 229, 231, 1)\";var interactive=\"rgba(54, 163, 255, 1)\";var focused=\"rgba(38, 98, 182, 1)\";var darkColorScheme = {background:background,\"background-hovered\":\"rgba(11, 12, 13, 1)\",\"background-pressed\":\"rgba(11, 12, 13, 1)\",\"background-selected\":\"rgba(11, 12, 13, 1)\",surface:surface,\"surface-neutral\":\"rgba(49, 51, 53, 1)\",\"surface-neutral-hovered\":\"rgba(49, 51, 53, 1)\",\"surface-neutral-pressed\":\"rgba(49, 51, 53, 1)\",\"surface-neutral-disabled\":\"rgba(49, 51, 53, 1)\",\"surface-neutral-subdued\":\"rgba(68, 71, 74, 1)\",\"surface-subdued\":\"rgba(26, 28, 29, 1)\",\"surface-disabled\":\"rgba(26, 28, 29, 1)\",\"surface-hovered\":\"rgba(47, 49, 51, 1)\",\"surface-pressed\":\"rgba(62, 64, 67, 1)\",\"surface-depressed\":\"rgba(80, 83, 86, 1)\",\"surface-search-field\":\"rgba(47, 49, 51, 1)\",backdrop:backdrop,overlay:overlay,\"shadow-from-dim-light\":\"rgba(255, 255, 255, 0.2)\",\"shadow-from-ambient-light\":\"rgba(23, 24, 24, 0.05)\",\"shadow-from-direct-light\":\"rgba(255, 255, 255, 0.15)\",\"shadow-color-picker\":\"rgba(0, 0, 0, 0)\",\"shadow-color-picker-dragger\":\"rgba(0, 0, 0, 0)\",\"hint-from-direct-light\":\"rgba(185, 185, 185, 0.2)\",border:border,\"border-neutral-subdued\":\"rgba(130, 135, 139, 1)\",\"border-hovered\":\"rgba(80, 83, 86, 1)\",\"border-disabled\":\"rgba(103, 107, 111, 1)\",\"border-subdued\":\"rgba(130, 135, 139, 1)\",\"border-depressed\":\"rgba(142, 145, 145, 1)\",\"border-shadow\":\"rgba(91, 95, 98, 1)\",\"border-shadow-subdued\":\"rgba(130, 135, 139, 1)\",divider:divider,icon:icon,\"icon-hovered\":\"rgba(225, 227, 229, 1)\",\"icon-pressed\":\"rgba(166, 172, 178, 1)\",\"icon-disabled\":\"rgba(84, 87, 90, 1)\",\"icon-subdued\":\"rgba(120, 125, 129, 1)\",text:text,\"text-disabled\":\"rgba(111, 115, 119, 1)\",\"text-subdued\":\"rgba(153, 159, 164, 1)\",interactive:interactive,\"interactive-disabled\":\"rgba(38, 98, 182, 1)\",\"interactive-hovered\":\"rgba(103, 175, 255, 1)\",\"interactive-pressed\":\"rgba(136, 188, 255, 1)\",focused:focused,\"surface-selected\":\"rgba(2, 14, 35, 1)\",\"surface-selected-hovered\":\"rgba(7, 29, 61, 1)\",\"surface-selected-pressed\":\"rgba(13, 43, 86, 1)\",\"icon-on-interactive\":\"rgba(255, 255, 255, 1)\",\"text-on-interactive\":\"rgba(255, 255, 255, 1)\",\"action-secondary\":\"rgba(77, 80, 83, 1)\",\"action-secondary-disabled\":\"rgba(32, 34, 35, 1)\",\"action-secondary-hovered\":\"rgba(84, 87, 91, 1)\",\"action-secondary-pressed\":\"rgba(96, 100, 103, 1)\",\"action-secondary-depressed\":\"rgba(123, 127, 132, 1)\",\"action-primary\":\"rgba(0, 128, 96, 1)\",\"action-primary-disabled\":\"rgba(0, 86, 64, 1)\",\"action-primary-hovered\":\"rgba(0, 150, 113, 1)\",\"action-primary-pressed\":\"rgba(0, 164, 124, 1)\",\"action-primary-depressed\":\"rgba(0, 179, 136, 1)\",\"icon-on-primary\":\"rgba(230, 255, 244, 1)\",\"text-on-primary\":\"rgba(255, 255, 255, 1)\",\"text-primary\":\"rgba(0, 141, 106, 1)\",\"text-primary-hovered\":\"rgba(0, 158, 120, 1)\",\"text-primary-pressed\":\"rgba(0, 176, 133, 1)\",\"surface-primary-selected\":\"rgba(12, 18, 16, 1)\",\"surface-primary-selected-hovered\":\"rgba(40, 48, 44, 1)\",\"surface-primary-selected-pressed\":\"rgba(54, 64, 59, 1)\",\"border-critical\":\"rgba(227, 47, 14, 1)\",\"border-critical-subdued\":\"rgba(227, 47, 14, 1)\",\"border-critical-disabled\":\"rgba(131, 23, 4, 1)\",\"icon-critical\":\"rgba(218, 45, 13, 1)\",\"surface-critical\":\"rgba(69, 7, 1, 1)\",\"surface-critical-subdued\":\"rgba(69, 7, 1, 1)\",\"surface-critical-subdued-hovered\":\"rgba(68, 23, 20, 1)\",\"surface-critical-subdued-pressed\":\"rgba(107, 16, 3, 1)\",\"surface-critical-subdued-depressed\":\"rgba(135, 24, 5, 1)\",\"text-critical\":\"rgba(233, 128, 122, 1)\",\"action-critical\":\"rgba(205, 41, 12, 1)\",\"action-critical-disabled\":\"rgba(187, 37, 10, 1)\",\"action-critical-hovered\":\"rgba(227, 47, 14, 1)\",\"action-critical-pressed\":\"rgba(250, 53, 17, 1)\",\"action-critical-depressed\":\"rgba(253, 87, 73, 1)\",\"icon-on-critical\":\"rgba(255, 248, 247, 1)\",\"text-on-critical\":\"rgba(255, 255, 255, 1)\",\"interactive-critical\":\"rgba(253, 114, 106, 1)\",\"interactive-critical-disabled\":\"rgba(254, 172, 168, 1)\",\"interactive-critical-hovered\":\"rgba(253, 138, 132, 1)\",\"interactive-critical-pressed\":\"rgba(253, 159, 155, 1)\",\"border-warning\":\"rgba(153, 112, 0, 1)\",\"border-warning-subdued\":\"rgba(153, 112, 0, 1)\",\"icon-warning\":\"rgba(104, 75, 0, 1)\",\"surface-warning\":\"rgba(153, 112, 0, 1)\",\"surface-warning-subdued\":\"rgba(77, 59, 29, 1)\",\"surface-warning-subdued-hovered\":\"rgba(82, 63, 32, 1)\",\"surface-warning-subdued-pressed\":\"rgba(87, 67, 34, 1)\",\"text-warning\":\"rgba(202, 149, 0, 1)\",\"border-highlight\":\"rgba(68, 157, 167, 1)\",\"border-highlight-subdued\":\"rgba(68, 157, 167, 1)\",\"icon-highlight\":\"rgba(44, 108, 115, 1)\",\"surface-highlight\":\"rgba(0, 105, 113, 1)\",\"surface-highlight-subdued\":\"rgba(18, 53, 57, 1)\",\"surface-highlight-subdued-hovered\":\"rgba(20, 58, 62, 1)\",\"surface-highlight-subdued-pressed\":\"rgba(24, 65, 70, 1)\",\"text-highlight\":\"rgba(162, 239, 250, 1)\",\"border-success\":\"rgba(0, 135, 102, 1)\",\"border-success-subdued\":\"rgba(0, 135, 102, 1)\",\"icon-success\":\"rgba(0, 94, 70, 1)\",\"surface-success\":\"rgba(0, 94, 70, 1)\",\"surface-success-subdued\":\"rgba(28, 53, 44, 1)\",\"surface-success-subdued-hovered\":\"rgba(31, 58, 48, 1)\",\"surface-success-subdued-pressed\":\"rgba(35, 65, 54, 1)\",\"text-success\":\"rgba(88, 173, 142, 1)\",\"decorative-one-icon\":\"rgba(255, 186, 67, 1)\",\"decorative-one-surface\":\"rgba(142, 102, 9, 1)\",\"decorative-one-text\":\"rgba(255, 255, 255, 1)\",\"decorative-two-icon\":\"rgba(245, 182, 192, 1)\",\"decorative-two-surface\":\"rgba(206, 88, 20, 1)\",\"decorative-two-text\":\"rgba(255, 255, 255, 1)\",\"decorative-three-icon\":\"rgba(0, 227, 141, 1)\",\"decorative-three-surface\":\"rgba(0, 124, 90, 1)\",\"decorative-three-text\":\"rgba(255, 255, 255, 1)\",\"decorative-four-icon\":\"rgba(0, 221, 218, 1)\",\"decorative-four-surface\":\"rgba(22, 124, 121, 1)\",\"decorative-four-text\":\"rgba(255, 255, 255, 1)\",\"decorative-five-icon\":\"rgba(244, 183, 191, 1)\",\"decorative-five-surface\":\"rgba(194, 51, 86, 1)\",\"decorative-five-text\":\"rgba(255, 255, 255, 1)\"};\n\nexport { backdrop, background, border, darkColorScheme as default, divider, focused, icon, interactive, overlay, surface, text };\n","var depth = {\"shadow-transparent\":\"0 0 0 0 transparent\",\"shadow-faint\":\"0 1px 0 0 rgba(22, 29, 37, 0.05)\",\"shadow-base\":\"0 0 0 1px rgba(63, 63, 68, 0.05), 0 1px 3px 0 rgba(63, 63, 68, 0.15)\",\"shadow-deep\":\"0 0 0 1px rgba(6, 44, 82, 0.1), 0 2px 16px rgba(33, 43, 54, 0.08)\",\"shadow-button\":\"0 1px 0 rgba(0, 0, 0, 0.05)\",\"shadow-top-bar\":\"0 2px 2px -1px rgba(0, 0, 0, 0.15)\",\"shadow-card\":\"0 0 5px rgba(23, 24, 24, 0.05), 0 1px 2px rgba(0, 0, 0, 0.15)\",\"shadow-popover\":\"-1px 0 20px rgba(23, 24, 24, 0.05), 0 1px 5px rgba(0, 0, 0, 0.15)\",\"shadow-layer\":\"0 31px 41px 0 rgba(32, 42, 53, 0.2), 0 2px 16px 0 rgba(32, 42, 54, 0.08)\",\"shadow-modal\":\"0 26px 80px rgba(0, 0, 0, 0.2), 0 0px 1px rgba(0, 0, 0, 0.2)\",\"shadows-inset-button\":\"inset 0 -1px 0 rgba(0, 0, 0, 0.2)\",\"shadows-inset-button-pressed\":\"inset 0 1px 0 rgba(0, 0, 0, 0.15)\"};\n\nexport { depth as default };\n","var legacyTokens = {\"override-loading-z-index\":\"514\",\"choice-size\":\"20px\",\"icon-size-small\":\"10px\",\"icon-size-medium\":\"20px\",\"choice-margin\":\"1px\",\"control-border-width\":\"2px\",\"banner-border-default\":\"inset 0 1px 0 0 var(--p-border-neutral-subdued), inset 0 0 0 1px var(--p-border-neutral-subdued)\",\"banner-border-success\":\"inset 0 1px 0 0 var(--p-border-success-subdued), inset 0 0 0 1px var(--p-border-success-subdued)\",\"banner-border-highlight\":\"inset 0 1px 0 0 var(--p-border-highlight-subdued), inset 0 0 0 1px var(--p-border-highlight-subdued)\",\"banner-border-warning\":\"inset 0 1px 0 0 var(--p-border-warning-subdued), inset 0 0 0 1px var(--p-border-warning-subdued)\",\"banner-border-critical\":\"inset 0 1px 0 0 var(--p-border-critical-subdued), inset 0 0 0 1px var(--p-border-critical-subdued)\",\"thin-border-subdued\":\"1px solid var(--p-border-subdued)\",\"text-field-spinner-offset\":\"2px\",\"text-field-focus-ring-offset\":\"-4px\",\"button-group-item-spacing\":\"-1px\",\"range-slider-thumb-size-base\":\"16px\",\"range-slider-thumb-size-active\":\"24px\",\"frame-offset\":\"0px\"};\n\nexport { legacyTokens as default };\n","var shape = {\"border-radius-05\":\"2px\",\"border-radius-1\":\"4px\",\"border-radius-2\":\"8px\",\"border-radius-3\":\"12px\",\"border-radius-4\":\"16px\",\"border-radius-5\":\"20px\",\"border-radius-6\":\"30px\",\"border-radius-base\":\"3px\",\"border-radius-large\":\"6px\",\"border-radius-half\":\"50%\",\"border-width-1\":\"1px\",\"border-width-2\":\"2px\",\"border-width-3\":\"3px\",\"border-base\":\"var(--p-border-width-1) solid var(--p-border-subdued)\",\"border-dark\":\"var(--p-border-width-1) solid var(--p-border)\",\"border-transparent\":\"var(--p-border-width-1) solid transparent\",\"border-divider\":\"var(--p-border-width-1) solid var(--p-divider)\"};\n\nexport { shape as default };\n","var spacing = {\"space-0\":\"0\",\"space-025\":\"1px\",\"space-05\":\"2px\",\"space-1\":\"4px\",\"space-2\":\"8px\",\"space-3\":\"12px\",\"space-4\":\"16px\",\"space-5\":\"20px\",\"space-6\":\"24px\",\"space-8\":\"32px\",\"space-10\":\"40px\",\"space-12\":\"48px\",\"space-16\":\"64px\",\"space-20\":\"80px\",\"space-24\":\"96px\",\"space-28\":\"112px\",\"space-32\":\"128px\"};\n\nexport { spacing as default };\n","var typography = {\"font-family-sans\":\"-apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif\",\"font-family-mono\":\"ui-monospace, SFMono-Regular, 'SF Mono', Consolas, 'Liberation Mono', Menlo, monospace\",\"font-size-1\":\"12px\",\"font-size-2\":\"13px\",\"font-size-3\":\"14px\",\"font-size-4\":\"15px\",\"font-size-5\":\"16px\",\"font-size-6\":\"17px\",\"font-size-7\":\"20px\",\"font-size-8\":\"21px\",\"font-size-9\":\"24px\",\"font-size-10\":\"26px\",\"font-size-11\":\"27px\",\"font-size-12\":\"28px\",\"font-size-13\":\"42px\",\"font-weight-regular\":\"400\",\"font-weight-medium\":\"500\",\"font-weight-semibold\":\"600\",\"font-weight-bold\":\"700\",\"line-height-1\":\"16px\",\"line-height-2\":\"20px\",\"line-height-3\":\"24px\",\"line-height-4\":\"28px\",\"line-height-5\":\"32px\",\"line-height-6\":\"36px\",\"line-height-7\":\"44px\"};\n\nexport { typography as default };\n","var zIndex = {\"z-1\":\"100\",\"z-2\":\"400\",\"z-3\":\"510\",\"z-4\":\"512\",\"z-5\":\"513\",\"z-6\":\"514\",\"z-7\":\"515\",\"z-8\":\"516\",\"z-9\":\"517\",\"z-10\":\"518\",\"z-11\":\"519\",\"z-12\":\"520\"};\n\nexport { zIndex as default };\n","import { osColorSchemes, tokens } from '../../tokens/tokens.js';\n\nconst defaultCustomProperties = `\n ${getColorSchemeDeclarations('light', tokens, osColorSchemes)}\n ${getStaticCustomProperties(tokens)}\n`;\n/**\n * Creates CSS Rules for each color-scheme.\n * @example:\n * [p-color-scheme=\"light\"] {...}\n * [p-color-scheme=\"dark\"] {...}\n * [p-color-scheme=\"dim\"] {...}\n */\n\nfunction getColorSchemeRules(tokens, osColorSchemes) {\n return Object.keys(tokens.colorSchemes).map(key => {\n const colorScheme = key;\n const selector = `[p-color-scheme=\"${colorScheme}\"]`;\n const colorCustomProperties = getColorSchemeDeclarations(colorScheme, tokens, osColorSchemes);\n return `${selector}{${colorCustomProperties}${getStaticCustomProperties(tokens)}}`;\n }).join('');\n}\n/**\n * Creates static CSS custom properties.\n * Note: These values don't vary by color-scheme.\n */\n\nfunction getStaticCustomProperties(tokens) {\n return Object.entries(tokens).filter(([tokenGroup]) => tokenGroup !== 'colorSchemes').map(([_, tokens]) => getCustomProperties(tokens)).join('');\n}\n/**\n * Creates CSS declarations for a given color-scheme.\n */\n\nfunction getColorSchemeDeclarations(colorScheme, tokens, osColorSchemes) {\n return [`color-scheme:${osColorSchemes[colorScheme]};`, getCustomProperties(tokens.colorSchemes[colorScheme])].join('');\n}\n/**\n * Creates CSS custom properties for a given tokens object.\n */\n\nfunction getCustomProperties(tokens) {\n return Object.entries(tokens).map(([name, value]) => `--p-${name}:${value};`).join('');\n}\n/**\n * Adapted from: https://github.com/argyleink/gui-challenges/blob/main/color-schemes/style.css\n */\n\nconst styles = `\n :root{${defaultCustomProperties}}\n ${getColorSchemeRules(tokens, osColorSchemes)}\n`;\n\nexport { getColorSchemeDeclarations, getColorSchemeRules, getCustomProperties, getStaticCustomProperties, styles };\n","import React, { useEffect } from 'react';\nimport { styles } from './styles.js';\n\nconst DEFAULT_COLOR_SCHEME = 'light';\nconst STYLE_SHEET_ID = 'polaris-custom-properties';\nfunction CustomProperties(props) {\n const {\n as: Component = 'div',\n children,\n className,\n colorScheme = DEFAULT_COLOR_SCHEME\n } = props;\n useEffect(() => {\n let styleSheet = document.getElementById(STYLE_SHEET_ID);\n if (styleSheet) return;\n styleSheet = document.createElement('style');\n styleSheet.id = STYLE_SHEET_ID;\n styleSheet.textContent = styles;\n document.head.appendChild(styleSheet);\n }, []);\n return /*#__PURE__*/React.createElement(Component, {\n \"p-color-scheme\": colorScheme,\n className: className // TODO: Remove this inline style when we update individual components\n // to set their own color and background-color properties.\n ,\n style: {\n color: 'var(--p-text)'\n }\n }, children);\n}\n\nexport { CustomProperties, DEFAULT_COLOR_SCHEME, STYLE_SHEET_ID };\n","const scrollable = {\n props: {\n 'data-polaris-scrollable': true\n },\n selector: '[data-polaris-scrollable]'\n};\nconst overlay = {\n props: {\n 'data-polaris-overlay': true\n },\n selector: '[data-polaris-overlay]'\n};\nconst layer = {\n props: {\n 'data-polaris-layer': true\n },\n selector: '[data-polaris-layer]'\n};\nconst unstyled = {\n props: {\n 'data-polaris-unstyled': true\n },\n selector: '[data-polaris-unstyled]'\n};\nconst dataPolarisTopBar = {\n props: {\n 'data-polaris-top-bar': true\n },\n selector: '[data-polaris-top-bar]'\n};\nconst headerCell = {\n props: {\n 'data-polaris-header-cell': true\n },\n selector: '[data-polaris-header-cell]'\n};\nconst portal = {\n props: ['data-portal-id'],\n selector: '[data-portal-id]'\n};\nconst DATA_ATTRIBUTE = {\n overlay,\n layer\n};\n\nexport { DATA_ATTRIBUTE, dataPolarisTopBar, headerCell, layer, overlay, portal, scrollable, unstyled };\n","const Breakpoints = {\n navigationBarCollapsed: '768px',\n stackedContent: '1043px'\n};\nconst noWindowMatches = {\n media: '',\n addListener: noop,\n removeListener: noop,\n matches: false,\n onchange: noop,\n addEventListener: noop,\n removeEventListener: noop,\n dispatchEvent: _ => true\n};\n\nfunction noop() {}\n\nfunction navigationBarCollapsed() {\n return typeof window === 'undefined' ? noWindowMatches : window.matchMedia(`(max-width: ${Breakpoints.navigationBarCollapsed})`);\n}\nfunction stackedContent() {\n return typeof window === 'undefined' ? noWindowMatches : window.matchMedia(`(max-width: ${Breakpoints.stackedContent})`);\n}\n\nexport { navigationBarCollapsed, stackedContent };\n","class Rect {\n static get zero() {\n return new Rect();\n }\n\n constructor({\n top = 0,\n left = 0,\n width = 0,\n height = 0\n } = {}) {\n this.top = void 0;\n this.left = void 0;\n this.width = void 0;\n this.height = void 0;\n this.top = top;\n this.left = left;\n this.width = width;\n this.height = height;\n }\n\n get center() {\n return {\n x: this.left + this.width / 2,\n y: this.top + this.height / 2\n };\n }\n\n}\nfunction getRectForNode(node) {\n if (!(node instanceof Element)) {\n return new Rect({\n width: window.innerWidth,\n height: window.innerHeight\n });\n }\n\n const rect = node.getBoundingClientRect();\n return new Rect({\n top: rect.top,\n left: rect.left,\n width: rect.width,\n height: rect.height\n });\n}\n\nexport { Rect, getRectForNode };\n","import debounce from 'lodash/debounce';\nimport { scrollable, dataPolarisTopBar } from '../../components/shared.js';\nimport { stackedContent } from '../breakpoints.js';\nimport { getRectForNode } from '../geometry.js';\nimport { tokens } from '../../tokens/tokens.js';\n\nconst SIXTY_FPS = 1000 / 60;\nclass StickyManager {\n constructor(container) {\n this.stickyItems = [];\n this.stuckItems = [];\n this.container = null;\n this.topBarOffset = 0;\n this.handleResize = debounce(() => {\n this.manageStickyItems();\n }, SIXTY_FPS, {\n leading: true,\n trailing: true,\n maxWait: SIXTY_FPS\n });\n this.handleScroll = debounce(() => {\n this.manageStickyItems();\n }, SIXTY_FPS, {\n leading: true,\n trailing: true,\n maxWait: SIXTY_FPS\n });\n\n if (container) {\n this.setContainer(container);\n }\n }\n\n registerStickyItem(stickyItem) {\n this.stickyItems.push(stickyItem);\n }\n\n unregisterStickyItem(nodeToRemove) {\n const nodeIndex = this.stickyItems.findIndex(({\n stickyNode\n }) => nodeToRemove === stickyNode);\n this.stickyItems.splice(nodeIndex, 1);\n }\n\n setContainer(el) {\n this.container = el;\n\n if (isDocument(el)) {\n this.setTopBarOffset(el);\n }\n\n this.container.addEventListener('scroll', this.handleScroll);\n window.addEventListener('resize', this.handleResize);\n this.manageStickyItems();\n }\n\n removeScrollListener() {\n if (this.container) {\n this.container.removeEventListener('scroll', this.handleScroll);\n window.removeEventListener('resize', this.handleResize);\n }\n }\n\n manageStickyItems() {\n if (this.stickyItems.length <= 0) {\n return;\n }\n\n const scrollTop = this.container ? scrollTopFor(this.container) : 0;\n const containerTop = getRectForNode(this.container).top + this.topBarOffset;\n this.stickyItems.forEach(stickyItem => {\n const {\n handlePositioning\n } = stickyItem;\n const {\n sticky,\n top,\n left,\n width\n } = this.evaluateStickyItem(stickyItem, scrollTop, containerTop);\n this.updateStuckItems(stickyItem, sticky);\n handlePositioning(sticky, top, left, width);\n });\n }\n\n evaluateStickyItem(stickyItem, scrollTop, containerTop) {\n const {\n stickyNode,\n placeHolderNode,\n boundingElement,\n offset,\n disableWhenStacked\n } = stickyItem;\n\n if (disableWhenStacked && stackedContent().matches) {\n return {\n sticky: false,\n top: 0,\n left: 0,\n width: 'auto'\n };\n }\n\n const stickyOffset = offset ? this.getOffset(stickyNode) + parseInt(tokens.spacing['5'], 10) : this.getOffset(stickyNode);\n const scrollPosition = scrollTop + stickyOffset;\n const placeHolderNodeCurrentTop = placeHolderNode.getBoundingClientRect().top - containerTop + scrollTop;\n const top = containerTop + stickyOffset;\n const width = placeHolderNode.getBoundingClientRect().width;\n const left = placeHolderNode.getBoundingClientRect().left;\n let sticky;\n\n if (boundingElement == null) {\n sticky = scrollPosition >= placeHolderNodeCurrentTop;\n } else {\n var _stickyNode$firstElem;\n\n const stickyItemHeight = stickyNode.getBoundingClientRect().height || ((_stickyNode$firstElem = stickyNode.firstElementChild) === null || _stickyNode$firstElem === void 0 ? void 0 : _stickyNode$firstElem.getBoundingClientRect().height) || 0;\n const stickyItemBottomPosition = boundingElement.getBoundingClientRect().bottom - stickyItemHeight + scrollTop - containerTop;\n sticky = scrollPosition >= placeHolderNodeCurrentTop && scrollPosition < stickyItemBottomPosition;\n }\n\n return {\n sticky,\n top,\n left,\n width\n };\n }\n\n updateStuckItems(item, sticky) {\n const {\n stickyNode\n } = item;\n\n if (sticky && !this.isNodeStuck(stickyNode)) {\n this.addStuckItem(item);\n } else if (!sticky && this.isNodeStuck(stickyNode)) {\n this.removeStuckItem(item);\n }\n }\n\n addStuckItem(stickyItem) {\n this.stuckItems.push(stickyItem);\n }\n\n removeStuckItem(stickyItem) {\n const {\n stickyNode: nodeToRemove\n } = stickyItem;\n const nodeIndex = this.stuckItems.findIndex(({\n stickyNode\n }) => nodeToRemove === stickyNode);\n this.stuckItems.splice(nodeIndex, 1);\n }\n\n getOffset(node) {\n if (this.stuckItems.length === 0) {\n return 0;\n }\n\n let offset = 0;\n let count = 0;\n const stuckNodesLength = this.stuckItems.length;\n const nodeRect = getRectForNode(node);\n\n while (count < stuckNodesLength) {\n const stuckNode = this.stuckItems[count].stickyNode;\n\n if (stuckNode !== node) {\n const stuckNodeRect = getRectForNode(stuckNode);\n\n if (!horizontallyOverlaps(nodeRect, stuckNodeRect)) {\n offset += getRectForNode(stuckNode).height;\n }\n } else {\n break;\n }\n\n count++;\n }\n\n return offset;\n }\n\n isNodeStuck(node) {\n const nodeFound = this.stuckItems.findIndex(({\n stickyNode\n }) => node === stickyNode);\n return nodeFound >= 0;\n }\n\n setTopBarOffset(container) {\n const topbarElement = container.querySelector(`:not(${scrollable.selector}) ${dataPolarisTopBar.selector}`);\n this.topBarOffset = topbarElement ? topbarElement.clientHeight : 0;\n }\n\n}\n\nfunction isDocument(node) {\n return node === document;\n}\n\nfunction scrollTopFor(container) {\n return isDocument(container) ? document.body.scrollTop || document.documentElement.scrollTop : container.scrollTop;\n}\n\nfunction horizontallyOverlaps(rect1, rect2) {\n const rect1Left = rect1.left;\n const rect1Right = rect1.left + rect1.width;\n const rect2Left = rect2.left;\n const rect2Right = rect2.left + rect2.width;\n return rect2Right < rect1Left || rect1Right < rect2Left;\n}\n\nexport { StickyManager };\n","const isServer = typeof window === 'undefined' || typeof document === 'undefined';\n\nexport { isServer };\n","import { isServer } from '../target.js';\n\nconst SCROLL_LOCKING_ATTRIBUTE = 'data-lock-scrolling';\nconst SCROLL_LOCKING_WRAPPER_ATTRIBUTE = 'data-lock-scrolling-wrapper';\nlet scrollPosition = 0;\nclass ScrollLockManager {\n constructor() {\n this.scrollLocks = 0;\n this.locked = false;\n }\n\n registerScrollLock() {\n this.scrollLocks += 1;\n this.handleScrollLocking();\n }\n\n unregisterScrollLock() {\n this.scrollLocks -= 1;\n this.handleScrollLocking();\n }\n\n handleScrollLocking() {\n if (isServer) return;\n const {\n scrollLocks\n } = this;\n const {\n body\n } = document;\n const wrapper = body.firstElementChild;\n\n if (scrollLocks === 0) {\n body.removeAttribute(SCROLL_LOCKING_ATTRIBUTE);\n\n if (wrapper) {\n wrapper.removeAttribute(SCROLL_LOCKING_WRAPPER_ATTRIBUTE);\n }\n\n window.scroll(0, scrollPosition);\n this.locked = false;\n } else if (scrollLocks > 0 && !this.locked) {\n scrollPosition = window.pageYOffset;\n body.setAttribute(SCROLL_LOCKING_ATTRIBUTE, '');\n\n if (wrapper) {\n wrapper.setAttribute(SCROLL_LOCKING_WRAPPER_ATTRIBUTE, '');\n wrapper.scrollTop = scrollPosition;\n }\n\n this.locked = true;\n }\n }\n\n resetScrollPosition() {\n scrollPosition = 0;\n }\n\n}\n\nexport { SCROLL_LOCKING_ATTRIBUTE, ScrollLockManager };\n","class UniqueIdFactory {\n constructor(idGeneratorFactory) {\n this.idGeneratorFactory = void 0;\n this.idGenerators = {};\n this.idGeneratorFactory = idGeneratorFactory;\n }\n\n nextId(prefix) {\n if (!this.idGenerators[prefix]) {\n this.idGenerators[prefix] = this.idGeneratorFactory(prefix);\n }\n\n return this.idGenerators[prefix]();\n }\n\n}\nfunction globalIdGeneratorFactory(prefix = '') {\n let index = 1;\n return () => `Polaris${prefix}${index++}`;\n}\n\nexport { UniqueIdFactory, globalIdGeneratorFactory };\n","const OBJECT_NOTATION_MATCHER = /\\[(.*?)\\]|(\\w+)/g;\nfunction get(obj, keypath, defaultValue) {\n if (obj == null) return undefined;\n const keys = Array.isArray(keypath) ? keypath : getKeypath(keypath);\n let acc = obj; // eslint-disable-next-line @typescript-eslint/prefer-for-of\n\n for (let i = 0; i < keys.length; i++) {\n const val = acc[keys[i]];\n if (val === undefined) return defaultValue;\n acc = val;\n }\n\n return acc;\n}\n\nfunction getKeypath(str) {\n const path = [];\n let result;\n\n while (result = OBJECT_NOTATION_MATCHER.exec(str)) {\n const [, first, second] = result;\n path.push(first || second);\n }\n\n return path;\n}\n\nexport { get };\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 };","// Unfortunately, this is how we have to type this at the moment.\n// There is currently a proposal to support variadic kinds.\n// https://github.com/Microsoft/TypeScript/issues/5453\nfunction merge(...objs) {\n let final = {};\n\n for (const obj of objs) {\n final = mergeRecursively(final, obj);\n }\n\n return final;\n}\n\nfunction mergeRecursively(inputObjA, objB) {\n const objA = Array.isArray(inputObjA) ? [...inputObjA] : { ...inputObjA\n };\n\n for (const key in objB) {\n if (!Object.prototype.hasOwnProperty.call(objB, key)) {\n continue;\n } else if (isMergeableValue(objB[key]) && isMergeableValue(objA[key])) {\n objA[key] = mergeRecursively(objA[key], objB[key]);\n } else {\n objA[key] = objB[key];\n }\n }\n\n return objA;\n}\n\nfunction isMergeableValue(value) {\n return value !== null && typeof value === 'object';\n}\n\nexport { merge };\n","import { get } from '../get.js';\nimport { merge } from '../merge.js';\n\nconst REPLACE_REGEX = /{([^}]*)}/g;\nclass I18n {\n /**\n * @param translation A locale object or array of locale objects that overrides default translations. If specifying an array then your desired language dictionary should come first, followed by your fallback language dictionaries\n */\n constructor(translation) {\n this.translation = {};\n // slice the array to make a shallow copy of it, so we don't accidentally\n // modify the original translation array\n this.translation = Array.isArray(translation) ? merge(...translation.slice().reverse()) : translation;\n }\n\n translate(id, replacements) {\n const text = get(this.translation, id, '');\n\n if (!text) {\n return '';\n }\n\n if (replacements) {\n return text.replace(REPLACE_REGEX, match => {\n const replacement = match.substring(1, match.length - 1);\n\n if (replacements[replacement] === undefined) {\n const replacementData = JSON.stringify(replacements);\n throw new Error(`Error in translation for key '${id}'. No replacement found for key '${replacement}'. The following replacements were passed: '${replacementData}'`);\n } // This could be a string or a number, but JS doesn't mind which it gets\n // and can handle that cast internally. So let it, to save us calling\n // toString() on what's already a string in 90% of cases.\n\n\n return replacements[replacement];\n });\n }\n\n return text;\n }\n\n translationKeyExists(path) {\n return Boolean(get(this.translation, path));\n }\n\n}\n\nexport { I18n };\n","import { createContext } from 'react';\n\nconst FeaturesContext = /*#__PURE__*/createContext(undefined);\n\nexport { FeaturesContext };\n","import { createContext } from 'react';\n\nconst I18nContext = /*#__PURE__*/createContext(undefined);\n\nexport { I18nContext };\n","import { createContext } from 'react';\n\nconst ScrollLockManagerContext = /*#__PURE__*/createContext(undefined);\n\nexport { ScrollLockManagerContext };\n","import { createContext } from 'react';\n\nconst StickyManagerContext = /*#__PURE__*/createContext(undefined);\n\nexport { StickyManagerContext };\n","import { createContext } from 'react';\n\nconst UniqueIdFactoryContext = /*#__PURE__*/createContext(undefined);\n\nexport { UniqueIdFactoryContext };\n","import { createContext } from 'react';\n\nconst LinkContext = /*#__PURE__*/createContext(undefined);\n\nexport { LinkContext };\n","import { createContext } from 'react';\n\nconst MediaQueryContext = /*#__PURE__*/createContext(undefined);\n\nexport { MediaQueryContext };\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 };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","import { PureComponent } from 'react';\n\n// see https://github.com/oliviertassinari/react-event-listener/\nclass EventListener extends PureComponent {\n componentDidMount() {\n this.attachListener();\n }\n\n componentDidUpdate({\n passive,\n ...detachProps\n }) {\n this.detachListener(detachProps);\n this.attachListener();\n }\n\n componentWillUnmount() {\n this.detachListener();\n }\n\n render() {\n return null;\n }\n\n attachListener() {\n const {\n event,\n handler,\n capture,\n passive\n } = this.props;\n window.addEventListener(event, handler, {\n capture,\n passive\n });\n }\n\n detachListener(prevProps) {\n const {\n event,\n handler,\n capture\n } = prevProps || this.props;\n window.removeEventListener(event, handler, capture);\n }\n\n}\n\nexport { EventListener };\n","import React, { useState, useCallback, useEffect, useMemo } from 'react';\nimport debounce from 'lodash/debounce';\nimport { navigationBarCollapsed } from '../../utilities/breakpoints.js';\nimport { MediaQueryContext } from '../../utilities/media-query/context.js';\nimport { EventListener } from '../EventListener/EventListener.js';\n\nconst MediaQueryProvider = function MediaQueryProvider({\n children\n}) {\n const [isNavigationCollapsed, setIsNavigationCollapsed] = useState(navigationBarCollapsed().matches); // eslint-disable-next-line react-hooks/exhaustive-deps\n\n const handleResize = useCallback(debounce(() => {\n if (isNavigationCollapsed !== navigationBarCollapsed().matches) {\n setIsNavigationCollapsed(!isNavigationCollapsed);\n }\n }, 40, {\n trailing: true,\n leading: true,\n maxWait: 40\n }), [isNavigationCollapsed]);\n useEffect(() => {\n setIsNavigationCollapsed(navigationBarCollapsed().matches);\n }, []);\n const context = useMemo(() => ({\n isNavigationCollapsed\n }), [isNavigationCollapsed]);\n return /*#__PURE__*/React.createElement(MediaQueryContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(EventListener, {\n event: \"resize\",\n handler: handleResize\n }), children);\n};\n\nexport { MediaQueryProvider };\n","import { createContext } from 'react';\n\nconst PortalsManagerContext = /*#__PURE__*/createContext(undefined);\n\nexport { PortalsManagerContext };\n","import React, { forwardRef } from 'react';\n\nfunction PortalsContainerComponent(_props, ref) {\n return /*#__PURE__*/React.createElement(\"div\", {\n id: \"PolarisPortalsContainer\",\n ref: ref\n });\n}\n\nconst PortalsContainer = /*#__PURE__*/forwardRef(PortalsContainerComponent);\n\nexport { PortalsContainer };\n","import React, { useState, useMemo } from 'react';\nimport { PortalsManagerContext } from '../../utilities/portals/context.js';\nimport { PortalsContainer } from './components/PortalsContainer/PortalsContainer.js';\n\nfunction PortalsManager({\n children,\n container\n}) {\n const [portalContainerElement, setPortalContainerElement] = useState(null);\n const currentContainer = container !== null && container !== void 0 ? container : portalContainerElement;\n const contextValue = useMemo(() => ({\n container: currentContainer\n }), [currentContainer]);\n return /*#__PURE__*/React.createElement(PortalsManagerContext.Provider, {\n value: contextValue\n }, children, container ? null : /*#__PURE__*/React.createElement(PortalsContainer, {\n ref: setPortalContainerElement\n }));\n}\n\nexport { PortalsManager };\n","import { createContext } from 'react';\n\nconst FocusManagerContext = /*#__PURE__*/createContext(undefined);\n\nexport { FocusManagerContext };\n","import React, { useState, useCallback, useMemo } from 'react';\nimport { FocusManagerContext } from '../../utilities/focus-manager/context.js';\n\nfunction FocusManager({\n children\n}) {\n const [trapFocusList, setTrapFocusList] = useState([]);\n const add = useCallback(id => {\n setTrapFocusList(list => [...list, id]);\n }, []);\n const remove = useCallback(id => {\n let removed = true;\n setTrapFocusList(list => {\n const clone = [...list];\n const index = clone.indexOf(id);\n\n if (index === -1) {\n removed = false;\n } else {\n clone.splice(index, 1);\n }\n\n return clone;\n });\n return removed;\n }, []);\n const value = useMemo(() => ({\n trapFocusList,\n add,\n remove\n }), [add, trapFocusList, remove]);\n return /*#__PURE__*/React.createElement(FocusManagerContext.Provider, {\n value: value\n }, children);\n}\n\nexport { FocusManager };\n","import React, { Component } from 'react';\nimport 'focus-visible/dist/focus-visible';\nimport './AppProvider.scss.js';\nimport { DEFAULT_COLOR_SCHEME, CustomProperties } from '../CustomProperties/CustomProperties.js';\nimport { StickyManager } from '../../utilities/sticky-manager/sticky-manager.js';\nimport { ScrollLockManager } from '../../utilities/scroll-lock-manager/scroll-lock-manager.js';\nimport { UniqueIdFactory, globalIdGeneratorFactory } from '../../utilities/unique-id/unique-id-factory.js';\nimport { I18n } from '../../utilities/i18n/I18n.js';\nimport { FeaturesContext } from '../../utilities/features/context.js';\nimport { I18nContext } from '../../utilities/i18n/context.js';\nimport { ScrollLockManagerContext } from '../../utilities/scroll-lock-manager/context.js';\nimport { StickyManagerContext } from '../../utilities/sticky-manager/context.js';\nimport { UniqueIdFactoryContext } from '../../utilities/unique-id/context.js';\nimport { LinkContext } from '../../utilities/link/context.js';\nimport { MediaQueryProvider } from '../MediaQueryProvider/MediaQueryProvider.js';\nimport { PortalsManager } from '../PortalsManager/PortalsManager.js';\nimport { FocusManager } from '../FocusManager/FocusManager.js';\n\nclass AppProvider extends Component {\n constructor(props) {\n super(props);\n this.stickyManager = void 0;\n this.scrollLockManager = void 0;\n this.uniqueIdFactory = void 0;\n\n this.setBodyStyles = () => {\n // Inlining the following custom properties to maintain backward\n // compatibility with the legacy ThemeProvider implementation.\n document.body.setAttribute('p-color-scheme', this.props.colorScheme || DEFAULT_COLOR_SCHEME);\n document.body.style.backgroundColor = 'var(--p-background)';\n document.body.style.color = 'var(--p-text)';\n };\n\n this.stickyManager = new StickyManager();\n this.scrollLockManager = new ScrollLockManager();\n this.uniqueIdFactory = new UniqueIdFactory(globalIdGeneratorFactory);\n const {\n i18n,\n linkComponent\n } = this.props; // eslint-disable-next-line react/state-in-constructor\n\n this.state = {\n link: linkComponent,\n intl: new I18n(i18n)\n };\n }\n\n componentDidMount() {\n if (document != null) {\n this.stickyManager.setContainer(document);\n this.setBodyStyles();\n }\n }\n\n componentDidUpdate({\n colorScheme: prevColorScheme,\n i18n: prevI18n,\n linkComponent: prevLinkComponent\n }) {\n const {\n colorScheme,\n i18n,\n linkComponent\n } = this.props;\n\n if (colorScheme !== prevColorScheme) {\n this.setBodyStyles();\n }\n\n if (i18n === prevI18n && linkComponent === prevLinkComponent) {\n return;\n } // eslint-disable-next-line react/no-did-update-set-state\n\n\n this.setState({\n link: linkComponent,\n intl: new I18n(i18n)\n });\n }\n\n render() {\n const {\n children,\n features = {},\n colorScheme\n } = this.props;\n const {\n intl,\n link\n } = this.state;\n return /*#__PURE__*/React.createElement(FeaturesContext.Provider, {\n value: features\n }, /*#__PURE__*/React.createElement(I18nContext.Provider, {\n value: intl\n }, /*#__PURE__*/React.createElement(ScrollLockManagerContext.Provider, {\n value: this.scrollLockManager\n }, /*#__PURE__*/React.createElement(StickyManagerContext.Provider, {\n value: this.stickyManager\n }, /*#__PURE__*/React.createElement(UniqueIdFactoryContext.Provider, {\n value: this.uniqueIdFactory\n }, /*#__PURE__*/React.createElement(LinkContext.Provider, {\n value: link\n }, /*#__PURE__*/React.createElement(CustomProperties, {\n colorScheme: colorScheme\n }, /*#__PURE__*/React.createElement(MediaQueryProvider, null, /*#__PURE__*/React.createElement(PortalsManager, null, /*#__PURE__*/React.createElement(FocusManager, null, children))))))))));\n }\n\n}\n\nexport { AppProvider };\n","var snippet = function snippet(_ref) {\n var orgId = _ref.orgId,\n _ref$namespace = _ref.namespace,\n namespace = _ref$namespace === void 0 ? 'FS' : _ref$namespace,\n _ref$debug = _ref.debug,\n debug = _ref$debug === void 0 ? false : _ref$debug,\n _ref$host = _ref.host,\n host = _ref$host === void 0 ? 'fullstory.com' : _ref$host,\n _ref$script = _ref.script,\n script = _ref$script === void 0 ? 'edge.fullstory.com/s/fs.js' : _ref$script;\n\n if (!orgId) {\n throw new Error('FullStory orgId is a required parameter');\n }\n\n window['_fs_debug'] = debug;\n window['_fs_host'] = host;\n window['_fs_script'] = script;\n window['_fs_org'] = orgId;\n window['_fs_namespace'] = namespace;\n\n (function (m, n, e, t, l, o, g, y) {\n if (e in m) {\n if (m.console && m.console.log) {\n m.console.log('FullStory namespace conflict. Please set window[\"_fs_namespace\"].');\n }\n\n return;\n }\n\n g = m[e] = function (a, b, s) {\n g.q ? g.q.push([a, b, s]) : g._api(a, b, s);\n };\n\n g.q = [];\n o = n.createElement(t);\n o.async = 1;\n o.crossOrigin = 'anonymous';\n o.src = 'https://' + _fs_script;\n y = n.getElementsByTagName(t)[0];\n y.parentNode.insertBefore(o, y);\n\n g.identify = function (i, v, s) {\n g(l, {\n uid: i\n }, s);\n if (v) g(l, v, s);\n };\n\n g.setUserVars = function (v, s) {\n g(l, v, s);\n };\n\n g.event = function (i, v, s) {\n g('event', {\n n: i,\n p: v\n }, s);\n };\n\n g.anonymize = function () {\n g.identify(!!0);\n };\n\n g.shutdown = function () {\n g(\"rec\", !1);\n };\n\n g.restart = function () {\n g(\"rec\", !0);\n };\n\n g.log = function (a, b) {\n g(\"log\", [a, b]);\n };\n\n g.consent = function (a) {\n g(\"consent\", !arguments.length || a);\n };\n\n g.identifyAccount = function (i, v) {\n o = 'account';\n v = v || {};\n v.acctId = i;\n g(o, v);\n };\n\n g.clearUserCookie = function () {};\n\n g.setVars = function (n, p) {\n g('setVars', [n, p]);\n };\n\n g._w = {};\n y = 'XMLHttpRequest';\n g._w[y] = m[y];\n y = 'fetch';\n g._w[y] = m[y];\n if (m[y]) m[y] = function () {\n return g._w[y].apply(this, arguments);\n };\n g._v = \"1.3.0\";\n })(window, document, window['_fs_namespace'], 'script', 'user');\n};\n\nvar fs = function fs() {\n return window[window._fs_namespace];\n};\n\nvar ensureSnippetLoaded = function ensureSnippetLoaded() {\n var snippetLoaded = !!fs();\n\n if (!snippetLoaded) {\n throw Error('FullStory is not loaded, please ensure the init function is invoked before calling FullStory API functions');\n }\n};\n\nvar hasFullStoryWithFunction = function hasFullStoryWithFunction() {\n ensureSnippetLoaded();\n\n for (var _len = arguments.length, testNames = new Array(_len), _key = 0; _key < _len; _key++) {\n testNames[_key] = arguments[_key];\n }\n\n return testNames.every(function (current) {\n return fs()[current];\n });\n};\n\nvar guard = function guard(name) {\n return function () {\n if (window._fs_dev_mode) {\n var message = \"FullStory is in dev mode and is not recording: \".concat(name, \" method not executed\");\n console.warn(message);\n return message;\n }\n\n if (hasFullStoryWithFunction(name)) {\n var _fs;\n\n return (_fs = fs())[name].apply(_fs, arguments);\n }\n\n console.warn(\"FS.\".concat(name, \" not ready\"));\n return null;\n };\n};\n\nvar event = guard('event');\nvar log = guard('log');\nvar getCurrentSessionURL = guard('getCurrentSessionURL');\nvar identify = guard('identify');\nvar setUserVars = guard('setUserVars');\nvar consent = guard('consent');\nvar shutdown = guard('shutdown');\nvar restart = guard('restart');\nvar anonymize = guard('anonymize');\nvar setVars = guard('setVars');\n\nvar _init = function _init(options) {\n if (fs()) {\n console.warn('The FullStory snippet has already been defined elsewhere (likely in the element)');\n return;\n }\n\n if (options.recordCrossDomainIFrames) {\n window._fs_run_in_iframe = true;\n }\n\n if (options.recordOnlyThisIFrame) {\n window._fs_is_outer_script = true;\n }\n\n snippet(options);\n\n if (options.devMode === true) {\n var message = 'FullStory was initialized in devMode and will stop recording';\n event('FullStory Dev Mode', {\n message_str: message\n });\n shutdown();\n window._fs_dev_mode = true;\n console.warn(message);\n }\n};\n\nvar initOnce = function initOnce(fn, message) {\n return function () {\n if (window._fs_initialized) {\n if (message) console.warn(message);\n return;\n }\n\n fn.apply(void 0, arguments);\n window._fs_initialized = true;\n };\n};\n\nvar init = initOnce(_init, 'FullStory init has already been called once, additional invocations are ignored');\n\nexport { anonymize, consent, event, getCurrentSessionURL, identify, init, log, restart, setUserVars, setVars, shutdown };\n","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 ? prefix + \": \" + 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","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\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 \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNameContext\";\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 if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\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","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 { injectScript } from \"./src/utils\"\n\nconst Clarity = {\n init(projectId) {\n injectScript(projectId, 'clarity-script');\n },\n\n setTag(key, value) {\n window.clarity('set', key, value);\n },\n\n identify(customerId, customSessionId, customPageId, friendlyName) {\n window.clarity('identify', customerId, customSessionId, customPageId, friendlyName);\n },\n\n consent(consent = true) {\n window.clarity('consent', consent);\n },\n\n upgrade(reason) {\n window.clarity('upgrade', reason);\n },\n\n event(eventName) {\n window.clarity('event', eventName);\n },\n};\n\nexport default Clarity;","export function injectScript(projectId){\r\n try{\r\n (function (c, l, a, r, i, t, y) {\r\n if(l.getElementById(\"clarity-script\")){\r\n return;\r\n }\r\n c[a] = c[a] ||\r\n function () {\r\n (c[a].q = c[a].q || []).push(arguments);\r\n };\r\n t = l.createElement(r);\r\n t.async = 1;\r\n t.src = \"https://www.clarity.ms/tag/\" + i + \"?ref=npm\";\r\n t.id = \"clarity-script\"\r\n y = l.getElementsByTagName(r)[0];\r\n y.parentNode.insertBefore(t, y);\r\n })(window, document, \"clarity\", \"script\", projectId);\r\n return;\r\n }catch(error){\r\n return;\r\n }\r\n};","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import addDays from \"../addDays/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n *\n * | Key | Description |\n * |----------------|------------------------------------|\n * | years | Amount of years to be added |\n * | months | Amount of months to be added |\n * | weeks | Amount of weeks to be added |\n * | days | Amount of days to be added |\n * | hours | Amount of hours to be added |\n * | minutes | Amount of minutes to be added |\n * | seconds | Amount of seconds to be added |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * const result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\nexport default function add(dirtyDate, duration) {\n requiredArgs(2, arguments);\n if (!duration || typeof duration !== 'object') return new Date(NaN);\n var years = duration.years ? toInteger(duration.years) : 0;\n var months = duration.months ? toInteger(duration.months) : 0;\n var weeks = duration.weeks ? toInteger(duration.weeks) : 0;\n var days = duration.days ? toInteger(duration.days) : 0;\n var hours = duration.hours ? toInteger(duration.hours) : 0;\n var minutes = duration.minutes ? toInteger(duration.minutes) : 0;\n var seconds = duration.seconds ? toInteger(duration.seconds) : 0; // Add years and months\n\n var date = toDate(dirtyDate);\n var dateWithMonths = months || years ? addMonths(date, months + years * 12) : date; // Add weeks and days\n\n var dateWithDays = days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths; // Add days, hours, minutes and seconds\n\n var minutesToAdd = minutes + hours * 60;\n var secondsToAdd = seconds + minutesToAdd * 60;\n var msToAdd = secondsToAdd * 1000;\n var finalDate = new Date(dateWithDays.getTime() + msToAdd);\n return finalDate;\n}","import { add } from 'date-fns';\nimport React, { useState } from 'react';\n\nconst DateRangeContext = React.createContext({});\n\nconst DateRangeProvider = ({ children }) => {\n const saveRange = JSON.parse(sessionStorage.getItem('dateRange')) || {\n start: add(new Date(), { days: -90 }),\n end: new Date(),\n };\n\n saveRange.start = new Date(saveRange.start);\n saveRange.end = new Date(saveRange.end);\n const [range, setRange] = useState(saveRange);\n\n return (\n {\n sessionStorage.setItem('dateRange', JSON.stringify(r));\n setRange(r);\n },\n ]}\n >\n {children}\n \n );\n};\n\nexport { DateRangeContext, DateRangeProvider };\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","function classNames(...classes) {\n return classes.filter(Boolean).join(' ');\n}\nfunction variationName(name, value) {\n return `${name}${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n}\n\nexport { classNames, variationName };\n","import { useCallback, useState } from 'react';\n\n/**\n * Returns a stateful value, and a set of memoized functions to toggle it,\n * set it to true and set it to false\n */\n\nfunction useToggle(initialState) {\n const [value, setState] = useState(initialState);\n return {\n value,\n toggle: useCallback(() => setState(state => !state), []),\n setTrue: useCallback(() => setState(true), []),\n setFalse: useCallback(() => setState(false), [])\n };\n}\n\nexport { useToggle };\n","import { createContext } from 'react';\n\nconst WithinContentContext = /*#__PURE__*/createContext(false);\n\nexport { WithinContentContext };\n","var styles = {\n \"Card\": \"Polaris-Card\",\n \"subdued\": \"Polaris-Card--subdued\",\n \"Section-hideOnPrint\": \"Polaris-Card__Section--hideOnPrint\",\n \"hideOnPrint\": \"Polaris-Card--hideOnPrint\",\n \"Header\": \"Polaris-Card__Header\",\n \"Section\": \"Polaris-Card__Section\",\n \"Section-fullWidth\": \"Polaris-Card__Section--fullWidth\",\n \"Section-flush\": \"Polaris-Card__Section--flush\",\n \"Section-subdued\": \"Polaris-Card__Section--subdued\",\n \"SectionHeader\": \"Polaris-Card__SectionHeader\",\n \"Subsection\": \"Polaris-Card__Subsection\",\n \"Footer\": \"Polaris-Card__Footer\",\n \"LeftJustified\": \"Polaris-Card__LeftJustified\"\n};\n\nexport { styles as default };\n","import React from 'react';\n\nvar SvgCaretDownMinor = function SvgCaretDownMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.098 8h-6.196c-.751 0-1.172.754-.708 1.268l3.098 3.432c.36.399 1.055.399 1.416 0l3.098-3.433c.464-.513.043-1.267-.708-1.267Z\"\n }));\n};\n\nexport { SvgCaretDownMinor as S };\n","import React from 'react';\n\nvar SvgSelectMinor = function SvgSelectMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.676 9h4.648c.563 0 .879-.603.53-1.014l-2.323-2.746a.708.708 0 0 0-1.062 0l-2.324 2.746c-.347.411-.032 1.014.531 1.014Zm4.648 2h-4.648c-.563 0-.878.603-.53 1.014l2.323 2.746c.27.32.792.32 1.062 0l2.323-2.746c.349-.411.033-1.014-.53-1.014Z\"\n }));\n};\n\nexport { SvgSelectMinor as S };\n","import React from 'react';\n\nvar SvgCaretUpMinor = function SvgCaretUpMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.902 12h6.196c.751 0 1.172-.754.708-1.268l-3.098-3.432c-.36-.399-1.055-.399-1.416 0l-3.098 3.433c-.464.513-.043 1.267.708 1.267Z\"\n }));\n};\n\nexport { SvgCaretUpMinor as S };\n","function isElementInViewport(element) {\n const {\n top,\n left,\n bottom,\n right\n } = element.getBoundingClientRect();\n return top >= 0 && right <= window.innerWidth && bottom <= window.innerHeight && left >= 0;\n}\n\nexport { isElementInViewport };\n","import { isElementInViewport } from './is-element-in-viewport.js';\n\nconst FOCUSABLE_SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\nconst KEYBOARD_FOCUSABLE_SELECTORS = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]:not([tabindex=\"-1\"])';\nconst MENUITEM_FOCUSABLE_SELECTORS = 'a[role=\"menuitem\"],frame[role=\"menuitem\"],iframe[role=\"menuitem\"],input[role=\"menuitem\"]:not([type=hidden]):not(:disabled),select[role=\"menuitem\"]:not(:disabled),textarea[role=\"menuitem\"]:not(:disabled),button[role=\"menuitem\"]:not(:disabled),*[tabindex]:not([tabindex=\"-1\"])';\nconst handleMouseUpByBlurring = ({\n currentTarget\n}) => currentTarget.blur();\nfunction nextFocusableNode(node, filter) {\n const allFocusableElements = [...document.querySelectorAll(FOCUSABLE_SELECTOR)];\n const sliceLocation = allFocusableElements.indexOf(node) + 1;\n const focusableElementsAfterNode = allFocusableElements.slice(sliceLocation);\n\n for (const focusableElement of focusableElementsAfterNode) {\n if (isElementInViewport(focusableElement) && (!filter || filter && filter(focusableElement))) {\n return focusableElement;\n }\n }\n\n return null;\n}\nfunction findFirstFocusableNode(element, onlyDescendants = true) {\n if (!onlyDescendants && matches(element, FOCUSABLE_SELECTOR)) {\n return element;\n }\n\n return element.querySelector(FOCUSABLE_SELECTOR);\n} // Popover needs to be able to find its activator even if it is disabled, which FOCUSABLE_SELECTOR doesn't support.\n\nfunction findFirstFocusableNodeIncludingDisabled(element) {\n const focusableSelector = `a,button,frame,iframe,input:not([type=hidden]),select,textarea,*[tabindex]`;\n\n if (matches(element, focusableSelector)) {\n return element;\n }\n\n return element.querySelector(focusableSelector);\n}\nfunction focusFirstFocusableNode(element, onlyDescendants = true) {\n var _findFirstFocusableNo;\n\n (_findFirstFocusableNo = findFirstFocusableNode(element, onlyDescendants)) === null || _findFirstFocusableNo === void 0 ? void 0 : _findFirstFocusableNo.focus();\n}\nfunction focusNextFocusableNode(node, filter) {\n const nextFocusable = nextFocusableNode(node, filter);\n\n if (nextFocusable && nextFocusable instanceof HTMLElement) {\n nextFocusable.focus();\n return true;\n }\n\n return false;\n}\nfunction findFirstKeyboardFocusableNode(element, onlyDescendants = true) {\n if (!onlyDescendants && matches(element, KEYBOARD_FOCUSABLE_SELECTORS)) {\n return element;\n }\n\n return element.querySelector(KEYBOARD_FOCUSABLE_SELECTORS);\n}\nfunction focusFirstKeyboardFocusableNode(element, onlyDescendants = true) {\n const firstFocusable = findFirstKeyboardFocusableNode(element, onlyDescendants);\n\n if (firstFocusable) {\n firstFocusable.focus();\n return true;\n }\n\n return false;\n}\nfunction findLastKeyboardFocusableNode(element, onlyDescendants = true) {\n if (!onlyDescendants && matches(element, KEYBOARD_FOCUSABLE_SELECTORS)) {\n return element;\n }\n\n const allFocusable = element.querySelectorAll(KEYBOARD_FOCUSABLE_SELECTORS);\n return allFocusable[allFocusable.length - 1];\n}\nfunction focusLastKeyboardFocusableNode(element, onlyDescendants = true) {\n const lastFocusable = findLastKeyboardFocusableNode(element, onlyDescendants);\n\n if (lastFocusable) {\n lastFocusable.focus();\n return true;\n }\n\n return false;\n}\nfunction wrapFocusPreviousFocusableMenuItem(parentElement, currentFocusedElement) {\n const allFocusableChildren = getMenuFocusableDescendants(parentElement);\n const currentItemIdx = getCurrentFocusedElementIndex(allFocusableChildren, currentFocusedElement);\n\n if (currentItemIdx === -1) {\n allFocusableChildren[0].focus();\n } else {\n allFocusableChildren[(currentItemIdx - 1 + allFocusableChildren.length) % allFocusableChildren.length].focus();\n }\n}\nfunction wrapFocusNextFocusableMenuItem(parentElement, currentFocusedElement) {\n const allFocusableChildren = getMenuFocusableDescendants(parentElement);\n const currentItemIdx = getCurrentFocusedElementIndex(allFocusableChildren, currentFocusedElement);\n\n if (currentItemIdx === -1) {\n allFocusableChildren[0].focus();\n } else {\n allFocusableChildren[(currentItemIdx + 1) % allFocusableChildren.length].focus();\n }\n}\n\nfunction getMenuFocusableDescendants(element) {\n return element.querySelectorAll(MENUITEM_FOCUSABLE_SELECTORS);\n}\n\nfunction getCurrentFocusedElementIndex(allFocusableChildren, currentFocusedElement) {\n let currentItemIdx = 0;\n\n for (const focusableChild of allFocusableChildren) {\n if (focusableChild === currentFocusedElement) {\n break;\n }\n\n currentItemIdx++;\n }\n\n return currentItemIdx === allFocusableChildren.length ? -1 : currentItemIdx;\n}\n\nfunction matches(node, selector) {\n if (node.matches) {\n return node.matches(selector);\n }\n\n const matches = (node.ownerDocument || document).querySelectorAll(selector);\n let i = matches.length;\n\n while (--i >= 0 && matches.item(i) !== node) return i > -1;\n}\n\nexport { findFirstFocusableNode, findFirstFocusableNodeIncludingDisabled, findFirstKeyboardFocusableNode, findLastKeyboardFocusableNode, focusFirstFocusableNode, focusFirstKeyboardFocusableNode, focusLastKeyboardFocusableNode, focusNextFocusableNode, handleMouseUpByBlurring, nextFocusableNode, wrapFocusNextFocusableMenuItem, wrapFocusPreviousFocusableMenuItem };\n","var styles = {\n \"Button\": \"Polaris-Button\",\n \"pressed\": \"Polaris-Button--pressed\",\n \"disabled\": \"Polaris-Button--disabled\",\n \"connectedDisclosure\": \"Polaris-Button--connectedDisclosure\",\n \"Content\": \"Polaris-Button__Content\",\n \"plain\": \"Polaris-Button--plain\",\n \"textAlignLeft\": \"Polaris-Button--textAlignLeft\",\n \"textAlignCenter\": \"Polaris-Button--textAlignCenter\",\n \"textAlignRight\": \"Polaris-Button--textAlignRight\",\n \"Icon\": \"Polaris-Button__Icon\",\n \"fullWidth\": \"Polaris-Button--fullWidth\",\n \"hidden\": \"Polaris-Button--hidden\",\n \"Spinner\": \"Polaris-Button__Spinner\",\n \"primary\": \"Polaris-Button--primary\",\n \"destructive\": \"Polaris-Button--destructive\",\n \"outline\": \"Polaris-Button--outline\",\n \"loading\": \"Polaris-Button--loading\",\n \"removeUnderline\": \"Polaris-Button--removeUnderline\",\n \"iconOnly\": \"Polaris-Button--iconOnly\",\n \"sizeSlim\": \"Polaris-Button--sizeSlim\",\n \"sizeLarge\": \"Polaris-Button--sizeLarge\",\n \"monochrome\": \"Polaris-Button--monochrome\",\n \"Text\": \"Polaris-Button__Text\",\n \"ConnectedDisclosureWrapper\": \"Polaris-Button__ConnectedDisclosureWrapper\",\n \"ConnectedDisclosure\": \"Polaris-Button__ConnectedDisclosure\"\n};\n\nexport { styles as default };\n","import { useState, useEffect } from 'react';\n\n/**\n * useIsAfterInitialMount will trigger a re-render to provide\n * you with an updated value. Using this you enhance server-side\n * code that can only run on the client.\n * @returns MutableRefObject - Returns a ref object with the\n * results from invoking initial value\n * @example\n * function ComponentExample({children}) {\n * const isMounted = useIsAfterInitialMount();\n * const content = isMounted ? children : null;\n *\n * return <>{content};\n * }\n */\n\nfunction useIsAfterInitialMount() {\n const [isAfterInitialMount, setIsAfterInitialMount] = useState(false);\n useEffect(() => {\n setIsAfterInitialMount(true);\n }, []);\n return isAfterInitialMount;\n}\n\nexport { useIsAfterInitialMount };\n","var styles = {\n \"Spinner\": \"Polaris-Spinner\",\n \"loading\": \"Polaris-Spinner--loading\",\n \"sizeSmall\": \"Polaris-Spinner--sizeSmall\",\n \"sizeLarge\": \"Polaris-Spinner--sizeLarge\"\n};\n\nexport { styles as default };\n","var styles = {\n \"VisuallyHidden\": \"Polaris-VisuallyHidden\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport styles from './VisuallyHidden.scss.js';\n\nfunction VisuallyHidden({\n children\n}) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: styles.VisuallyHidden\n }, children);\n}\n\nexport { VisuallyHidden };\n","import React from 'react';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport { useIsAfterInitialMount } from '../../utilities/use-is-after-initial-mount.js';\nimport styles from './Spinner.scss.js';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden.js';\n\nfunction Spinner({\n size = 'large',\n accessibilityLabel,\n hasFocusableParent\n}) {\n const isAfterInitialMount = useIsAfterInitialMount();\n const className = classNames(styles.Spinner, size && styles[variationName('size', size)]);\n const spinnerSVGMarkup = size === 'large' ? /*#__PURE__*/React.createElement(\"svg\", {\n viewBox: \"0 0 44 44\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.542 1.487A21.507 21.507 0 00.5 22c0 11.874 9.626 21.5 21.5 21.5 9.847 0 18.364-6.675 20.809-16.072a1.5 1.5 0 00-2.904-.756C37.803 34.755 30.473 40.5 22 40.5 11.783 40.5 3.5 32.217 3.5 22c0-8.137 5.3-15.247 12.942-17.65a1.5 1.5 0 10-.9-2.863z\"\n })) : /*#__PURE__*/React.createElement(\"svg\", {\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.229 1.173a9.25 9.25 0 1011.655 11.412 1.25 1.25 0 10-2.4-.698 6.75 6.75 0 11-8.506-8.329 1.25 1.25 0 10-.75-2.385z\"\n }));\n const spanAttributes = { ...(!hasFocusableParent && {\n role: 'status'\n })\n };\n const accessibilityLabelMarkup = (isAfterInitialMount || !hasFocusableParent) && /*#__PURE__*/React.createElement(VisuallyHidden, null, accessibilityLabel);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: className\n }, spinnerSVGMarkup), /*#__PURE__*/React.createElement(\"span\", spanAttributes, accessibilityLabelMarkup));\n}\n\nexport { Spinner };\n","class MissingAppProviderError extends Error {\n constructor(message = '') {\n super(`${message ? `${message} ` : message}Your application must be wrapped in an component. See https://polaris.shopify.com/components/structure/app-provider for implementation instructions.`);\n this.name = 'MissingAppProviderError';\n }\n\n}\n\nexport { MissingAppProviderError };\n","import { useContext, useRef } from 'react';\nimport { MissingAppProviderError } from '../errors.js';\nimport { UniqueIdFactoryContext } from './context.js';\n\n/**\n * Returns a unique id that remains consistent across multiple re-renders of the\n * same hook\n * @param prefix Defines a prefix for the ID. You probably want to set this to\n * the name of the component you're calling `useUniqueId` in.\n * @param overrideId Defines a fixed value to use instead of generating a unique\n * ID. Useful for components that allow consumers to specify their own ID.\n */\n\nfunction useUniqueId(prefix = '', overrideId = '') {\n const idFactory = useContext(UniqueIdFactoryContext); // By using a ref to store the uniqueId for each invocation of the hook and\n // checking that it is not already populated we ensure that we don’t generate\n // a new ID on every re-render of a component.\n\n const uniqueIdRef = useRef(null);\n\n if (!idFactory) {\n throw new MissingAppProviderError('No UniqueIdFactory was provided.');\n } // If an override was specified, then use that instead of using a unique ID\n // Hooks can’t be called conditionally so this has to go after all use* calls\n\n\n if (overrideId) {\n return overrideId;\n } // If a unique id has not yet been generated, then get a new one\n\n\n if (!uniqueIdRef.current) {\n uniqueIdRef.current = idFactory.nextId(prefix);\n }\n\n return uniqueIdRef.current;\n}\n\nexport { useUniqueId };\n","import React, { useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { usePortalsManager } from '../../utilities/portals/hooks.js';\nimport { useUniqueId } from '../../utilities/unique-id/hooks.js';\n\nfunction Portal({\n children,\n idPrefix = '',\n onPortalCreated = noop\n}) {\n const {\n container\n } = usePortalsManager();\n const uniqueId = useUniqueId('portal');\n const portalId = idPrefix !== '' ? `${idPrefix}-${uniqueId}` : uniqueId;\n useEffect(() => {\n onPortalCreated();\n }, [onPortalCreated]);\n return container ? /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(\"div\", {\n \"data-portal-id\": portalId\n }, children), container) : null;\n}\n\nfunction noop() {}\n\nexport { Portal };\n","import { useContext } from 'react';\nimport { PortalsManagerContext } from './context.js';\n\nfunction usePortalsManager() {\n const portalsManager = useContext(PortalsManagerContext);\n\n if (!portalsManager) {\n throw new Error('No portals manager was provided. Your application must be wrapped in an component. See https://polaris.shopify.com/components/structure/app-provider for implementation instructions.');\n }\n\n return portalsManager;\n}\n\nexport { usePortalsManager };\n","import React, { Children, isValidElement } from 'react';\n\n// `Component`. If `props` is passed, those will be added as props on the\n// wrapped component. If `element` is null, the component is not wrapped.\n\nfunction wrapWithComponent(element, Component, props) {\n if (element == null) {\n return null;\n }\n\n return isElementOfType(element, Component) ? element : /*#__PURE__*/React.createElement(Component, props, element);\n} // In development, we compare based on the name of the function because\n// React Hot Loader proxies React components in order to make updates. In\n// production we can simply compare the components for equality.\n\nconst isComponent = process.env.NODE_ENV === 'development' ? hotReloadComponentCheck : (AComponent, AnotherComponent) => AComponent === AnotherComponent; // Checks whether `element` is a React element of type `Component` (or one of\n// the passed components, if `Component` is an array of React components).\n\nfunction isElementOfType(element, Component) {\n var _element$props;\n\n if (element == null || ! /*#__PURE__*/isValidElement(element) || typeof element.type === 'string') {\n return false;\n }\n\n const {\n type: defaultType\n } = element; // Type override allows components to bypass default wrapping behavior. Ex: Stack, ResourceList...\n // See https://github.com/Shopify/app-extension-libs/issues/996#issuecomment-710437088\n\n const overrideType = (_element$props = element.props) === null || _element$props === void 0 ? void 0 : _element$props.__type__;\n const type = overrideType || defaultType;\n const Components = Array.isArray(Component) ? Component : [Component];\n return Components.some(AComponent => typeof type !== 'string' && isComponent(AComponent, type));\n} // Returns all children that are valid elements as an array. Can optionally be\n// filtered by passing `predicate`.\n\nfunction elementChildren(children, predicate = () => true) {\n return Children.toArray(children).filter(child => /*#__PURE__*/isValidElement(child) && predicate(child));\n}\nfunction ConditionalWrapper({\n condition,\n wrapper,\n children\n}) {\n return condition ? wrapper(children) : children;\n}\nfunction ConditionalRender({\n condition,\n children\n}) {\n return condition ? children : null;\n}\n\nfunction hotReloadComponentCheck(AComponent, AnotherComponent) {\n const componentName = AComponent.name;\n const anotherComponentName = AnotherComponent.displayName;\n return AComponent === AnotherComponent || Boolean(componentName) && componentName === anotherComponentName;\n}\n\nexport { ConditionalRender, ConditionalWrapper, elementChildren, isElementOfType, wrapWithComponent };\n","// eslint-disable-next-line @shopify/strict-component-boundaries\n// eslint-disable-next-line @shopify/strict-component-boundaries\n// eslint-disable-next-line @shopify/strict-component-boundaries\nlet Key;\n\n(function (Key) {\n Key[Key[\"Backspace\"] = 8] = \"Backspace\";\n Key[Key[\"Tab\"] = 9] = \"Tab\";\n Key[Key[\"Enter\"] = 13] = \"Enter\";\n Key[Key[\"Shift\"] = 16] = \"Shift\";\n Key[Key[\"Ctrl\"] = 17] = \"Ctrl\";\n Key[Key[\"Alt\"] = 18] = \"Alt\";\n Key[Key[\"Pause\"] = 19] = \"Pause\";\n Key[Key[\"CapsLock\"] = 20] = \"CapsLock\";\n Key[Key[\"Escape\"] = 27] = \"Escape\";\n Key[Key[\"Space\"] = 32] = \"Space\";\n Key[Key[\"PageUp\"] = 33] = \"PageUp\";\n Key[Key[\"PageDown\"] = 34] = \"PageDown\";\n Key[Key[\"End\"] = 35] = \"End\";\n Key[Key[\"Home\"] = 36] = \"Home\";\n Key[Key[\"LeftArrow\"] = 37] = \"LeftArrow\";\n Key[Key[\"UpArrow\"] = 38] = \"UpArrow\";\n Key[Key[\"RightArrow\"] = 39] = \"RightArrow\";\n Key[Key[\"DownArrow\"] = 40] = \"DownArrow\";\n Key[Key[\"Insert\"] = 45] = \"Insert\";\n Key[Key[\"Delete\"] = 46] = \"Delete\";\n Key[Key[\"Key0\"] = 48] = \"Key0\";\n Key[Key[\"Key1\"] = 49] = \"Key1\";\n Key[Key[\"Key2\"] = 50] = \"Key2\";\n Key[Key[\"Key3\"] = 51] = \"Key3\";\n Key[Key[\"Key4\"] = 52] = \"Key4\";\n Key[Key[\"Key5\"] = 53] = \"Key5\";\n Key[Key[\"Key6\"] = 54] = \"Key6\";\n Key[Key[\"Key7\"] = 55] = \"Key7\";\n Key[Key[\"Key8\"] = 56] = \"Key8\";\n Key[Key[\"Key9\"] = 57] = \"Key9\";\n Key[Key[\"KeyA\"] = 65] = \"KeyA\";\n Key[Key[\"KeyB\"] = 66] = \"KeyB\";\n Key[Key[\"KeyC\"] = 67] = \"KeyC\";\n Key[Key[\"KeyD\"] = 68] = \"KeyD\";\n Key[Key[\"KeyE\"] = 69] = \"KeyE\";\n Key[Key[\"KeyF\"] = 70] = \"KeyF\";\n Key[Key[\"KeyG\"] = 71] = \"KeyG\";\n Key[Key[\"KeyH\"] = 72] = \"KeyH\";\n Key[Key[\"KeyI\"] = 73] = \"KeyI\";\n Key[Key[\"KeyJ\"] = 74] = \"KeyJ\";\n Key[Key[\"KeyK\"] = 75] = \"KeyK\";\n Key[Key[\"KeyL\"] = 76] = \"KeyL\";\n Key[Key[\"KeyM\"] = 77] = \"KeyM\";\n Key[Key[\"KeyN\"] = 78] = \"KeyN\";\n Key[Key[\"KeyO\"] = 79] = \"KeyO\";\n Key[Key[\"KeyP\"] = 80] = \"KeyP\";\n Key[Key[\"KeyQ\"] = 81] = \"KeyQ\";\n Key[Key[\"KeyR\"] = 82] = \"KeyR\";\n Key[Key[\"KeyS\"] = 83] = \"KeyS\";\n Key[Key[\"KeyT\"] = 84] = \"KeyT\";\n Key[Key[\"KeyU\"] = 85] = \"KeyU\";\n Key[Key[\"KeyV\"] = 86] = \"KeyV\";\n Key[Key[\"KeyW\"] = 87] = \"KeyW\";\n Key[Key[\"KeyX\"] = 88] = \"KeyX\";\n Key[Key[\"KeyY\"] = 89] = \"KeyY\";\n Key[Key[\"KeyZ\"] = 90] = \"KeyZ\";\n Key[Key[\"LeftMeta\"] = 91] = \"LeftMeta\";\n Key[Key[\"RightMeta\"] = 92] = \"RightMeta\";\n Key[Key[\"Select\"] = 93] = \"Select\";\n Key[Key[\"Numpad0\"] = 96] = \"Numpad0\";\n Key[Key[\"Numpad1\"] = 97] = \"Numpad1\";\n Key[Key[\"Numpad2\"] = 98] = \"Numpad2\";\n Key[Key[\"Numpad3\"] = 99] = \"Numpad3\";\n Key[Key[\"Numpad4\"] = 100] = \"Numpad4\";\n Key[Key[\"Numpad5\"] = 101] = \"Numpad5\";\n Key[Key[\"Numpad6\"] = 102] = \"Numpad6\";\n Key[Key[\"Numpad7\"] = 103] = \"Numpad7\";\n Key[Key[\"Numpad8\"] = 104] = \"Numpad8\";\n Key[Key[\"Numpad9\"] = 105] = \"Numpad9\";\n Key[Key[\"Multiply\"] = 106] = \"Multiply\";\n Key[Key[\"Add\"] = 107] = \"Add\";\n Key[Key[\"Subtract\"] = 109] = \"Subtract\";\n Key[Key[\"Decimal\"] = 110] = \"Decimal\";\n Key[Key[\"Divide\"] = 111] = \"Divide\";\n Key[Key[\"F1\"] = 112] = \"F1\";\n Key[Key[\"F2\"] = 113] = \"F2\";\n Key[Key[\"F3\"] = 114] = \"F3\";\n Key[Key[\"F4\"] = 115] = \"F4\";\n Key[Key[\"F5\"] = 116] = \"F5\";\n Key[Key[\"F6\"] = 117] = \"F6\";\n Key[Key[\"F7\"] = 118] = \"F7\";\n Key[Key[\"F8\"] = 119] = \"F8\";\n Key[Key[\"F9\"] = 120] = \"F9\";\n Key[Key[\"F10\"] = 121] = \"F10\";\n Key[Key[\"F11\"] = 122] = \"F11\";\n Key[Key[\"F12\"] = 123] = \"F12\";\n Key[Key[\"NumLock\"] = 144] = \"NumLock\";\n Key[Key[\"ScrollLock\"] = 145] = \"ScrollLock\";\n Key[Key[\"Semicolon\"] = 186] = \"Semicolon\";\n Key[Key[\"Equals\"] = 187] = \"Equals\";\n Key[Key[\"Comma\"] = 188] = \"Comma\";\n Key[Key[\"Dash\"] = 189] = \"Dash\";\n Key[Key[\"Period\"] = 190] = \"Period\";\n Key[Key[\"ForwardSlash\"] = 191] = \"ForwardSlash\";\n Key[Key[\"GraveAccent\"] = 192] = \"GraveAccent\";\n Key[Key[\"OpenBracket\"] = 219] = \"OpenBracket\";\n Key[Key[\"BackSlash\"] = 220] = \"BackSlash\";\n Key[Key[\"CloseBracket\"] = 221] = \"CloseBracket\";\n Key[Key[\"SingleQuote\"] = 222] = \"SingleQuote\";\n})(Key || (Key = {}));\n\nexport { Key };\n","var styles = {\n \"Popover\": \"Polaris-Popover\",\n \"PopoverOverlay\": \"Polaris-Popover__PopoverOverlay\",\n \"PopoverOverlay-entering\": \"Polaris-Popover__PopoverOverlay--entering\",\n \"PopoverOverlay-open\": \"Polaris-Popover__PopoverOverlay--open\",\n \"PopoverOverlay-exiting\": \"Polaris-Popover__PopoverOverlay--exiting\",\n \"measuring\": \"Polaris-Popover--measuring\",\n \"fullWidth\": \"Polaris-Popover--fullWidth\",\n \"Content\": \"Polaris-Popover__Content\",\n \"positionedAbove\": \"Polaris-Popover--positionedAbove\",\n \"Wrapper\": \"Polaris-Popover__Wrapper\",\n \"Content-fullHeight\": \"Polaris-Popover__Content--fullHeight\",\n \"Content-fluidContent\": \"Polaris-Popover__Content--fluidContent\",\n \"Pane\": \"Polaris-Popover__Pane\",\n \"Pane-fixed\": \"Polaris-Popover__Pane--fixed\",\n \"Section\": \"Polaris-Popover__Section\",\n \"FocusTracker\": \"Polaris-Popover__FocusTracker\",\n \"PopoverOverlay-hideOnPrint\": \"Polaris-Popover__PopoverOverlay--hideOnPrint\"\n};\n\nexport { styles as default };\n","import { useEffect, useLayoutEffect } from 'react';\nimport { isServer } from './target.js';\n\nconst useIsomorphicLayoutEffect = isServer ? useEffect : useLayoutEffect;\n\nexport { useIsomorphicLayoutEffect };\n","import { useRef, useCallback, useEffect } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../utilities/use-isomorphic-layout-effect.js';\n\nfunction KeypressListener({\n keyCode,\n handler,\n keyEvent = 'keyup'\n}) {\n const tracked = useRef({\n handler,\n keyCode\n });\n useIsomorphicLayoutEffect(() => {\n tracked.current = {\n handler,\n keyCode\n };\n }, [handler, keyCode]);\n const handleKeyEvent = useCallback(event => {\n const {\n handler,\n keyCode\n } = tracked.current;\n\n if (event.keyCode === keyCode) {\n handler(event);\n }\n }, []);\n useEffect(() => {\n document.addEventListener(keyEvent, handleKeyEvent);\n return () => {\n document.removeEventListener(keyEvent, handleKeyEvent);\n };\n }, [keyEvent, handleKeyEvent]);\n return null;\n}\n\nexport { KeypressListener };\n","import { Rect } from '../../../utilities/geometry.js';\n\nfunction calculateVerticalPosition(activatorRect, overlayRect, overlayMargins, scrollableContainerRect, containerRect, preferredPosition, fixed, topBarOffset = 0) {\n const activatorTop = activatorRect.top;\n const activatorBottom = activatorTop + activatorRect.height;\n const spaceAbove = activatorRect.top - topBarOffset;\n const spaceBelow = containerRect.height - activatorRect.top - activatorRect.height;\n const desiredHeight = overlayRect.height;\n const verticalMargins = overlayMargins.activator + overlayMargins.container;\n const minimumSpaceToScroll = overlayMargins.container;\n const distanceToTopScroll = activatorRect.top - Math.max(scrollableContainerRect.top, 0);\n const distanceToBottomScroll = containerRect.top + Math.min(containerRect.height, scrollableContainerRect.top + scrollableContainerRect.height) - (activatorRect.top + activatorRect.height);\n const enoughSpaceFromTopScroll = distanceToTopScroll >= minimumSpaceToScroll;\n const enoughSpaceFromBottomScroll = distanceToBottomScroll >= minimumSpaceToScroll;\n const heightIfBelow = Math.min(spaceBelow, desiredHeight);\n const heightIfAbove = Math.min(spaceAbove, desiredHeight);\n const containerRectTop = fixed ? 0 : containerRect.top;\n const positionIfAbove = {\n height: heightIfAbove - verticalMargins,\n top: activatorTop + containerRectTop - heightIfAbove,\n positioning: 'above'\n };\n const positionIfBelow = {\n height: heightIfBelow - verticalMargins,\n top: activatorBottom + containerRectTop,\n positioning: 'below'\n };\n\n if (preferredPosition === 'above') {\n return (enoughSpaceFromTopScroll || distanceToTopScroll >= distanceToBottomScroll && !enoughSpaceFromBottomScroll) && (spaceAbove > desiredHeight || spaceAbove > spaceBelow) ? positionIfAbove : positionIfBelow;\n }\n\n if (preferredPosition === 'below') {\n return (enoughSpaceFromBottomScroll || distanceToBottomScroll >= distanceToTopScroll && !enoughSpaceFromTopScroll) && (spaceBelow > desiredHeight || spaceBelow > spaceAbove) ? positionIfBelow : positionIfAbove;\n }\n\n if (enoughSpaceFromTopScroll && enoughSpaceFromBottomScroll) {\n return spaceAbove > spaceBelow ? positionIfAbove : positionIfBelow;\n }\n\n return distanceToTopScroll > minimumSpaceToScroll ? positionIfAbove : positionIfBelow;\n}\nfunction calculateHorizontalPosition(activatorRect, overlayRect, containerRect, overlayMargins, preferredAlignment) {\n const maximum = containerRect.width - overlayRect.width;\n\n if (preferredAlignment === 'left') {\n return Math.min(maximum, Math.max(0, activatorRect.left - overlayMargins.horizontal));\n } else if (preferredAlignment === 'right') {\n const activatorRight = containerRect.width - (activatorRect.left + activatorRect.width);\n return Math.min(maximum, Math.max(0, activatorRight - overlayMargins.horizontal));\n }\n\n return Math.min(maximum, Math.max(0, activatorRect.center.x - overlayRect.width / 2));\n}\nfunction rectIsOutsideOfRect(inner, outer) {\n const {\n center\n } = inner;\n return center.y < outer.top || center.y > outer.top + outer.height;\n}\nfunction intersectionWithViewport(rect, viewport = windowRect()) {\n const top = Math.max(rect.top, 0);\n const left = Math.max(rect.left, 0);\n const bottom = Math.min(rect.top + rect.height, viewport.height);\n const right = Math.min(rect.left + rect.width, viewport.width);\n return new Rect({\n top,\n left,\n height: bottom - top,\n width: right - left\n });\n}\nfunction windowRect() {\n return new Rect({\n top: window.scrollY,\n left: window.scrollX,\n height: window.innerHeight,\n width: document.body.clientWidth\n });\n}\n\nexport { calculateHorizontalPosition, calculateVerticalPosition, intersectionWithViewport, rectIsOutsideOfRect, windowRect };\n","var styles = {\n \"PositionedOverlay\": \"Polaris-PositionedOverlay\",\n \"fixed\": \"Polaris-PositionedOverlay--fixed\",\n \"calculating\": \"Polaris-PositionedOverlay--calculating\",\n \"preventInteraction\": \"Polaris-PositionedOverlay--preventInteraction\"\n};\n\nexport { styles as default };\n","import { createContext } from 'react';\n\nconst ScrollableContext = /*#__PURE__*/createContext(undefined);\n\nexport { ScrollableContext };\n","var styles = {\n \"Scrollable\": \"Polaris-Scrollable\",\n \"horizontal\": \"Polaris-Scrollable--horizontal\",\n \"vertical\": \"Polaris-Scrollable--vertical\",\n \"verticalHasScrolling\": \"Polaris-Scrollable--verticalHasScrolling\",\n \"hasTopShadow\": \"Polaris-Scrollable--hasTopShadow\",\n \"hasBottomShadow\": \"Polaris-Scrollable--hasBottomShadow\"\n};\n\nexport { styles as default };\n","import React, { Component } from 'react';\nimport debounce from 'lodash/debounce';\nimport { classNames } from '../../utilities/css.js';\nimport { scrollable } from '../shared.js';\nimport { ScrollableContext } from './context.js';\nimport styles from './Scrollable.scss.js';\nimport { ScrollTo } from './components/ScrollTo/ScrollTo.js';\nimport { StickyManager } from '../../utilities/sticky-manager/sticky-manager.js';\nimport { StickyManagerContext } from '../../utilities/sticky-manager/context.js';\n\nconst MAX_SCROLL_DISTANCE = 100;\nconst DELTA_THRESHOLD = 0.2;\nconst DELTA_PERCENTAGE = 0.2;\nconst EVENTS_TO_LOCK = ['scroll', 'touchmove', 'wheel'];\nconst PREFERS_REDUCED_MOTION = prefersReducedMotion();\nconst LOW_RES_BUFFER = 2;\nclass Scrollable extends Component {\n constructor(...args) {\n super(...args);\n this.state = {\n topShadow: false,\n bottomShadow: false,\n scrollPosition: 0,\n canScroll: false\n };\n this.stickyManager = new StickyManager();\n this.scrollArea = null;\n this.handleResize = debounce(() => {\n this.handleScroll();\n }, 50, {\n trailing: true\n });\n\n this.setScrollArea = scrollArea => {\n this.scrollArea = scrollArea;\n };\n\n this.handleScroll = () => {\n const {\n scrollArea\n } = this;\n const {\n scrollPosition\n } = this.state;\n const {\n shadow,\n onScrolledToBottom\n } = this.props;\n\n if (scrollArea == null) {\n return;\n }\n\n const {\n scrollTop,\n clientHeight,\n scrollHeight\n } = scrollArea;\n const shouldBottomShadow = Boolean(shadow && !(scrollTop + clientHeight >= scrollHeight));\n const shouldTopShadow = Boolean(shadow && scrollTop > 0 && scrollPosition > 0);\n const canScroll = scrollHeight > clientHeight;\n const hasScrolledToBottom = scrollHeight - scrollTop <= clientHeight + LOW_RES_BUFFER;\n\n if (canScroll && hasScrolledToBottom && onScrolledToBottom) {\n onScrolledToBottom();\n }\n\n this.setState({\n topShadow: shouldTopShadow,\n bottomShadow: shouldBottomShadow,\n scrollPosition: scrollTop,\n canScroll\n });\n };\n\n this.scrollHint = () => {\n const {\n scrollArea\n } = this;\n\n if (scrollArea == null) {\n return;\n }\n\n const {\n clientHeight,\n scrollHeight\n } = scrollArea;\n\n if (PREFERS_REDUCED_MOTION || this.state.scrollPosition > 0 || scrollHeight <= clientHeight) {\n return;\n }\n\n const scrollDistance = scrollHeight - clientHeight;\n this.toggleLock();\n this.setState({\n scrollPosition: scrollDistance > MAX_SCROLL_DISTANCE ? MAX_SCROLL_DISTANCE : scrollDistance\n }, () => {\n window.requestAnimationFrame(this.scrollStep);\n });\n };\n\n this.scrollStep = () => {\n this.setState(({\n scrollPosition\n }) => {\n const delta = scrollPosition * DELTA_PERCENTAGE;\n return {\n scrollPosition: delta < DELTA_THRESHOLD ? 0 : scrollPosition - delta\n };\n }, () => {\n if (this.state.scrollPosition > 0) {\n window.requestAnimationFrame(this.scrollStep);\n } else {\n this.toggleLock(false);\n }\n });\n };\n\n this.scrollToPosition = scrollY => {\n this.setState({\n scrollPosition: scrollY\n });\n };\n }\n\n static forNode(node) {\n const closestElement = node.closest(scrollable.selector);\n return closestElement instanceof HTMLElement ? closestElement : document;\n }\n\n componentDidMount() {\n if (this.scrollArea == null) {\n return;\n }\n\n this.stickyManager.setContainer(this.scrollArea);\n this.scrollArea.addEventListener('scroll', () => {\n window.requestAnimationFrame(this.handleScroll);\n });\n window.addEventListener('resize', this.handleResize);\n window.requestAnimationFrame(() => {\n this.handleScroll();\n\n if (this.props.hint) {\n this.scrollHint();\n }\n });\n }\n\n componentWillUnmount() {\n if (this.scrollArea == null) {\n return;\n }\n\n this.scrollArea.removeEventListener('scroll', this.handleScroll);\n window.removeEventListener('resize', this.handleResize);\n this.stickyManager.removeScrollListener();\n }\n\n componentDidUpdate() {\n const {\n scrollPosition\n } = this.state;\n\n if (scrollPosition && this.scrollArea && scrollPosition > 0) {\n this.scrollArea.scrollTop = scrollPosition;\n }\n }\n\n render() {\n const {\n topShadow,\n bottomShadow,\n canScroll\n } = this.state;\n const {\n children,\n className,\n horizontal,\n vertical = true,\n shadow,\n hint,\n focusable,\n onScrolledToBottom,\n ...rest\n } = this.props;\n const finalClassName = classNames(className, styles.Scrollable, vertical && styles.vertical, horizontal && styles.horizontal, topShadow && styles.hasTopShadow, bottomShadow && styles.hasBottomShadow, vertical && canScroll && styles.verticalHasScrolling);\n return /*#__PURE__*/React.createElement(ScrollableContext.Provider, {\n value: this.scrollToPosition\n }, /*#__PURE__*/React.createElement(StickyManagerContext.Provider, {\n value: this.stickyManager\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: finalClassName\n }, scrollable.props, rest, {\n ref: this.setScrollArea // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n ,\n tabIndex: focusable ? 0 : undefined\n }), children)));\n }\n\n toggleLock(shouldLock = true) {\n const {\n scrollArea\n } = this;\n\n if (scrollArea == null) {\n return;\n }\n\n EVENTS_TO_LOCK.forEach(eventName => {\n if (shouldLock) {\n scrollArea.addEventListener(eventName, prevent);\n } else {\n scrollArea.removeEventListener(eventName, prevent);\n }\n });\n }\n\n}\nScrollable.ScrollTo = ScrollTo;\n\nfunction prevent(evt) {\n evt.preventDefault();\n}\n\nfunction prefersReducedMotion() {\n try {\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n } catch (err) {\n return false;\n }\n}\n\nexport { Scrollable };\n","import React, { useRef, useContext, useEffect } from 'react';\nimport { ScrollableContext } from '../../context.js';\nimport { useUniqueId } from '../../../../utilities/unique-id/hooks.js';\n\nfunction ScrollTo() {\n const anchorNode = useRef(null);\n const scrollToPosition = useContext(ScrollableContext);\n useEffect(() => {\n if (!scrollToPosition || !anchorNode.current) {\n return;\n }\n\n scrollToPosition(anchorNode.current.offsetTop);\n }, [scrollToPosition]);\n const id = useUniqueId(`ScrollTo`); // eslint-disable-next-line jsx-a11y/anchor-is-valid\n\n return /*#__PURE__*/React.createElement(\"a\", {\n id: id,\n ref: anchorNode\n });\n}\n\nexport { ScrollTo };\n","import React, { PureComponent } from 'react';\nimport { classNames } from '../../utilities/css.js';\nimport { getRectForNode, Rect } from '../../utilities/geometry.js';\nimport { dataPolarisTopBar, layer } from '../shared.js';\nimport { windowRect, calculateVerticalPosition, calculateHorizontalPosition, rectIsOutsideOfRect, intersectionWithViewport } from './utilities/math.js';\nimport styles from './PositionedOverlay.scss.js';\nimport { Scrollable } from '../Scrollable/Scrollable.js';\nimport { EventListener } from '../EventListener/EventListener.js';\n\nconst OBSERVER_CONFIG = {\n childList: true,\n subtree: true,\n characterData: true\n};\nclass PositionedOverlay extends PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n measuring: true,\n activatorRect: getRectForNode(this.props.activator),\n right: undefined,\n left: undefined,\n top: 0,\n height: 0,\n width: null,\n positioning: 'below',\n zIndex: null,\n outsideScrollableContainer: false,\n lockPosition: false\n };\n this.overlay = null;\n this.scrollableContainer = null;\n this.observer = void 0;\n\n this.overlayDetails = () => {\n const {\n measuring,\n left,\n right,\n positioning,\n height,\n activatorRect\n } = this.state;\n return {\n measuring,\n left,\n right,\n desiredHeight: height,\n positioning,\n activatorRect\n };\n };\n\n this.setOverlay = node => {\n this.overlay = node;\n };\n\n this.handleMeasurement = () => {\n const {\n lockPosition,\n top\n } = this.state;\n this.observer.disconnect();\n this.setState(({\n left,\n top,\n right\n }) => ({\n left,\n right,\n top,\n height: 0,\n positioning: 'below',\n measuring: true\n }), () => {\n if (this.overlay == null || this.scrollableContainer == null) {\n return;\n }\n\n const {\n activator,\n preferredPosition = 'below',\n preferredAlignment = 'center',\n onScrollOut,\n fullWidth,\n fixed,\n preferInputActivator = true\n } = this.props;\n const preferredActivator = preferInputActivator ? activator.querySelector('input') || activator : activator;\n const activatorRect = getRectForNode(preferredActivator);\n const currentOverlayRect = getRectForNode(this.overlay);\n const scrollableElement = isDocument(this.scrollableContainer) ? document.body : this.scrollableContainer;\n const scrollableContainerRect = getRectForNode(scrollableElement);\n const overlayRect = fullWidth ? new Rect({ ...currentOverlayRect,\n width: activatorRect.width\n }) : currentOverlayRect; // If `body` is 100% height, it still acts as though it were not constrained to that size. This adjusts for that.\n\n if (scrollableElement === document.body) {\n scrollableContainerRect.height = document.body.scrollHeight;\n }\n\n let topBarOffset = 0;\n const topBarElement = scrollableElement.querySelector(`${dataPolarisTopBar.selector}`);\n\n if (topBarElement) {\n topBarOffset = topBarElement.clientHeight;\n }\n\n const overlayMargins = this.overlay.firstElementChild && this.overlay.firstChild instanceof HTMLElement ? getMarginsForNode(this.overlay.firstElementChild) : {\n activator: 0,\n container: 0,\n horizontal: 0\n };\n const containerRect = windowRect();\n const zIndexForLayer = getZIndexForLayerFromNode(activator);\n const zIndex = zIndexForLayer == null ? zIndexForLayer : zIndexForLayer + 1;\n const verticalPosition = calculateVerticalPosition(activatorRect, overlayRect, overlayMargins, scrollableContainerRect, containerRect, preferredPosition, fixed, topBarOffset);\n const horizontalPosition = calculateHorizontalPosition(activatorRect, overlayRect, containerRect, overlayMargins, preferredAlignment);\n this.setState({\n measuring: false,\n activatorRect: getRectForNode(activator),\n left: preferredAlignment !== 'right' ? horizontalPosition : undefined,\n right: preferredAlignment === 'right' ? horizontalPosition : undefined,\n top: lockPosition ? top : verticalPosition.top,\n lockPosition: Boolean(fixed),\n height: verticalPosition.height || 0,\n width: fullWidth ? overlayRect.width : null,\n positioning: verticalPosition.positioning,\n outsideScrollableContainer: onScrollOut != null && rectIsOutsideOfRect(activatorRect, intersectionWithViewport(scrollableContainerRect)),\n zIndex\n }, () => {\n if (!this.overlay) return;\n this.observer.observe(this.overlay, OBSERVER_CONFIG);\n this.observer.observe(activator, OBSERVER_CONFIG);\n });\n });\n };\n\n this.observer = new MutationObserver(this.handleMeasurement);\n }\n\n componentDidMount() {\n this.scrollableContainer = Scrollable.forNode(this.props.activator);\n\n if (this.scrollableContainer && !this.props.fixed) {\n this.scrollableContainer.addEventListener('scroll', this.handleMeasurement);\n }\n\n this.handleMeasurement();\n }\n\n componentWillUnmount() {\n this.observer.disconnect();\n\n if (this.scrollableContainer && !this.props.fixed) {\n this.scrollableContainer.removeEventListener('scroll', this.handleMeasurement);\n }\n }\n\n componentDidUpdate() {\n const {\n outsideScrollableContainer,\n top\n } = this.state;\n const {\n onScrollOut,\n active\n } = this.props;\n\n if (active && onScrollOut != null && top !== 0 && outsideScrollableContainer) {\n onScrollOut();\n }\n }\n\n render() {\n const {\n left,\n right,\n top,\n zIndex,\n width\n } = this.state;\n const {\n render,\n fixed,\n preventInteraction,\n classNames: propClassNames,\n zIndexOverride\n } = this.props;\n const style = {\n top: top == null || isNaN(top) ? undefined : top,\n left: left == null || isNaN(left) ? undefined : left,\n right: right == null || isNaN(right) ? undefined : right,\n width: width == null || isNaN(width) ? undefined : width,\n zIndex: zIndexOverride || zIndex || undefined\n };\n const className = classNames(styles.PositionedOverlay, fixed && styles.fixed, preventInteraction && styles.preventInteraction, propClassNames);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: style,\n ref: this.setOverlay\n }, /*#__PURE__*/React.createElement(EventListener, {\n event: \"resize\",\n handler: this.handleMeasurement\n }), render(this.overlayDetails()));\n }\n\n forceUpdatePosition() {\n // Wait a single animation frame before re-measuring.\n // Consumer's may also need to setup their own timers for\n // triggering forceUpdatePosition() `children` use animation.\n // Ideally, forceUpdatePosition() is fired at the end of a transition event.\n requestAnimationFrame(this.handleMeasurement);\n }\n\n}\n\nfunction getMarginsForNode(node) {\n const nodeStyles = window.getComputedStyle(node);\n return {\n activator: parseFloat(nodeStyles.marginTop || '0'),\n container: parseFloat(nodeStyles.marginBottom || '0'),\n horizontal: parseFloat(nodeStyles.marginLeft || '0')\n };\n}\n\nfunction getZIndexForLayerFromNode(node) {\n const layerNode = node.closest(layer.selector) || document.body;\n const zIndex = layerNode === document.body ? 'auto' : parseInt(window.getComputedStyle(layerNode).zIndex || '0', 10);\n return zIndex === 'auto' || isNaN(zIndex) ? null : zIndex;\n}\n\nfunction isDocument(node) {\n return node === document;\n}\n\nexport { PositionedOverlay };\n","import React, { PureComponent, createRef, Children } from 'react';\nimport { findFirstFocusableNode } from '../../../../utilities/focus.js';\nimport { classNames } from '../../../../utilities/css.js';\nimport { isElementOfType, wrapWithComponent } from '../../../../utilities/components.js';\nimport { Key } from '../../../../types.js';\nimport { overlay } from '../../../shared.js';\nimport styles from '../../Popover.scss.js';\nimport { KeypressListener } from '../../../KeypressListener/KeypressListener.js';\nimport { PositionedOverlay } from '../../../PositionedOverlay/PositionedOverlay.js';\nimport { Pane } from '../Pane/Pane.js';\nimport { EventListener } from '../../../EventListener/EventListener.js';\nimport { CustomProperties } from '../../../CustomProperties/CustomProperties.js';\nimport { tokens } from '../../../../tokens/tokens.js';\n\nlet PopoverCloseSource;\n\n(function (PopoverCloseSource) {\n PopoverCloseSource[PopoverCloseSource[\"Click\"] = 0] = \"Click\";\n PopoverCloseSource[PopoverCloseSource[\"EscapeKeypress\"] = 1] = \"EscapeKeypress\";\n PopoverCloseSource[PopoverCloseSource[\"FocusOut\"] = 2] = \"FocusOut\";\n PopoverCloseSource[PopoverCloseSource[\"ScrollOut\"] = 3] = \"ScrollOut\";\n})(PopoverCloseSource || (PopoverCloseSource = {}));\n\nvar TransitionStatus;\n\n(function (TransitionStatus) {\n TransitionStatus[\"Entering\"] = \"entering\";\n TransitionStatus[\"Entered\"] = \"entered\";\n TransitionStatus[\"Exiting\"] = \"exiting\";\n TransitionStatus[\"Exited\"] = \"exited\";\n})(TransitionStatus || (TransitionStatus = {}));\n\nclass PopoverOverlay extends PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n transitionStatus: this.props.active ? TransitionStatus.Entering : TransitionStatus.Exited\n };\n this.contentNode = /*#__PURE__*/createRef();\n this.enteringTimer = void 0;\n this.exitingTimer = void 0;\n this.overlayRef = void 0;\n\n this.renderPopover = overlayDetails => {\n const {\n measuring,\n desiredHeight,\n positioning\n } = overlayDetails;\n const {\n id,\n children,\n sectioned,\n fullWidth,\n fullHeight,\n fluidContent,\n hideOnPrint,\n colorScheme,\n autofocusTarget\n } = this.props;\n const className = classNames(styles.Popover, positioning === 'above' && styles.positionedAbove, fullWidth && styles.fullWidth, measuring && styles.measuring, hideOnPrint && styles['PopoverOverlay-hideOnPrint']);\n const contentStyles = measuring ? undefined : {\n height: desiredHeight\n };\n const contentClassNames = classNames(styles.Content, fullHeight && styles['Content-fullHeight'], fluidContent && styles['Content-fluidContent']);\n const content = /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n tabIndex: autofocusTarget === 'none' ? undefined : -1,\n className: contentClassNames,\n style: contentStyles,\n ref: this.contentNode\n }, renderPopoverContent(children, {\n sectioned\n }));\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: className\n }, overlay.props), /*#__PURE__*/React.createElement(EventListener, {\n event: \"click\",\n handler: this.handleClick\n }), /*#__PURE__*/React.createElement(EventListener, {\n event: \"touchstart\",\n handler: this.handleClick\n }), /*#__PURE__*/React.createElement(KeypressListener, {\n keyCode: Key.Escape,\n handler: this.handleEscape\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.FocusTracker // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n ,\n tabIndex: 0,\n onFocus: this.handleFocusFirstItem\n }), /*#__PURE__*/React.createElement(CustomProperties, {\n colorScheme: colorScheme\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Wrapper\n }, content)), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.FocusTracker // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n ,\n tabIndex: 0,\n onFocus: this.handleFocusLastItem\n }));\n };\n\n this.handleClick = event => {\n const target = event.target;\n const {\n contentNode,\n props: {\n activator,\n onClose\n }\n } = this;\n const isDescendant = contentNode.current != null && nodeContainsDescendant(contentNode.current, target);\n const isActivatorDescendant = nodeContainsDescendant(activator, target);\n\n if (isDescendant || isActivatorDescendant || this.state.transitionStatus !== TransitionStatus.Entered) {\n return;\n }\n\n onClose(PopoverCloseSource.Click);\n };\n\n this.handleScrollOut = () => {\n this.props.onClose(PopoverCloseSource.ScrollOut);\n };\n\n this.handleEscape = () => {\n this.props.onClose(PopoverCloseSource.EscapeKeypress);\n };\n\n this.handleFocusFirstItem = () => {\n this.props.onClose(PopoverCloseSource.FocusOut);\n };\n\n this.handleFocusLastItem = () => {\n this.props.onClose(PopoverCloseSource.FocusOut);\n };\n\n this.overlayRef = /*#__PURE__*/createRef();\n }\n\n forceUpdatePosition() {\n var _this$overlayRef$curr;\n\n (_this$overlayRef$curr = this.overlayRef.current) === null || _this$overlayRef$curr === void 0 ? void 0 : _this$overlayRef$curr.forceUpdatePosition();\n }\n\n changeTransitionStatus(transitionStatus, cb) {\n this.setState({\n transitionStatus\n }, cb); // Forcing a reflow to enable the animation\n\n this.contentNode.current && this.contentNode.current.getBoundingClientRect();\n }\n\n componentDidMount() {\n if (this.props.active) {\n this.focusContent();\n this.changeTransitionStatus(TransitionStatus.Entered);\n }\n }\n\n componentDidUpdate(oldProps) {\n if (this.props.active && !oldProps.active) {\n this.focusContent();\n this.changeTransitionStatus(TransitionStatus.Entering, () => {\n this.clearTransitionTimeout();\n this.enteringTimer = window.setTimeout(() => {\n this.setState({\n transitionStatus: TransitionStatus.Entered\n });\n }, parseInt(tokens.motion['duration-100'], 10));\n });\n }\n\n if (!this.props.active && oldProps.active) {\n this.changeTransitionStatus(TransitionStatus.Exiting, () => {\n this.clearTransitionTimeout();\n this.exitingTimer = window.setTimeout(() => {\n this.setState({\n transitionStatus: TransitionStatus.Exited\n });\n }, parseInt(tokens.motion['duration-100'], 10));\n });\n }\n }\n\n componentWillUnmount() {\n this.clearTransitionTimeout();\n }\n\n render() {\n const {\n active,\n activator,\n fullWidth,\n preferredPosition = 'below',\n preferredAlignment = 'center',\n preferInputActivator = true,\n fixed,\n zIndexOverride\n } = this.props;\n const {\n transitionStatus\n } = this.state;\n if (transitionStatus === TransitionStatus.Exited && !active) return null;\n const className = classNames(styles.PopoverOverlay, transitionStatus === TransitionStatus.Entering && styles['PopoverOverlay-entering'], transitionStatus === TransitionStatus.Entered && styles['PopoverOverlay-open'], transitionStatus === TransitionStatus.Exiting && styles['PopoverOverlay-exiting']);\n return /*#__PURE__*/React.createElement(PositionedOverlay, {\n ref: this.overlayRef,\n fullWidth: fullWidth,\n active: active,\n activator: activator,\n preferInputActivator: preferInputActivator,\n preferredPosition: preferredPosition,\n preferredAlignment: preferredAlignment,\n render: this.renderPopover.bind(this),\n fixed: fixed,\n onScrollOut: this.handleScrollOut,\n classNames: className,\n zIndexOverride: zIndexOverride\n });\n }\n\n clearTransitionTimeout() {\n if (this.enteringTimer) {\n window.clearTimeout(this.enteringTimer);\n }\n\n if (this.exitingTimer) {\n window.clearTimeout(this.exitingTimer);\n }\n }\n\n focusContent() {\n const {\n autofocusTarget = 'container'\n } = this.props;\n\n if (autofocusTarget === 'none' || this.contentNode == null) {\n return;\n }\n\n requestAnimationFrame(() => {\n if (this.contentNode.current == null) {\n return;\n }\n\n const focusableChild = findFirstFocusableNode(this.contentNode.current);\n\n if (focusableChild && autofocusTarget === 'first-node') {\n focusableChild.focus({\n preventScroll: process.env.NODE_ENV === 'development'\n });\n } else {\n this.contentNode.current.focus({\n preventScroll: process.env.NODE_ENV === 'development'\n });\n }\n });\n } // eslint-disable-next-line @shopify/react-no-multiple-render-methods\n\n\n}\n\nfunction renderPopoverContent(children, props) {\n const childrenArray = Children.toArray(children);\n\n if (isElementOfType(childrenArray[0], Pane)) {\n return childrenArray;\n }\n\n return wrapWithComponent(childrenArray, Pane, props);\n}\n\nfunction nodeContainsDescendant(rootNode, descendant) {\n if (rootNode === descendant) {\n return true;\n }\n\n let parent = descendant.parentNode;\n\n while (parent != null) {\n if (parent === rootNode) {\n return true;\n }\n\n parent = parent.parentNode;\n }\n\n return false;\n}\n\nexport { PopoverCloseSource, PopoverOverlay, nodeContainsDescendant };\n","import React from 'react';\nimport styles from '../../Popover.scss.js';\n\nfunction Section({\n children\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Section\n }, children);\n}\n\nexport { Section };\n","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport { wrapWithComponent } from '../../../../utilities/components.js';\nimport styles from '../../Popover.scss.js';\nimport { Section } from '../Section/Section.js';\nimport { Scrollable } from '../../../Scrollable/Scrollable.js';\n\nfunction Pane({\n fixed,\n sectioned,\n children,\n onScrolledToBottom\n}) {\n const className = classNames(styles.Pane, fixed && styles['Pane-fixed']);\n const content = sectioned ? wrapWithComponent(children, Section, {}) : children;\n return fixed ? /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, content) : /*#__PURE__*/React.createElement(Scrollable, {\n shadow: true,\n className: className,\n onScrolledToBottom: onScrolledToBottom\n }, content);\n}\n\nexport { Pane };\n","import React, { forwardRef, useState, useRef, useImperativeHandle, useCallback, useEffect, Children } from 'react';\nimport { findFirstFocusableNodeIncludingDisabled, focusNextFocusableNode } from '../../utilities/focus.js';\nimport { portal } from '../shared.js';\nimport { setActivatorAttributes } from './set-activator-attributes.js';\nimport { Portal } from '../Portal/Portal.js';\nimport { PopoverOverlay, PopoverCloseSource } from './components/PopoverOverlay/PopoverOverlay.js';\nexport { PopoverCloseSource } from './components/PopoverOverlay/PopoverOverlay.js';\nimport { Pane } from './components/Pane/Pane.js';\nimport { Section } from './components/Section/Section.js';\nimport { useUniqueId } from '../../utilities/unique-id/hooks.js';\n\n// TypeScript can't generate types that correctly infer the typing of\n// subcomponents so explicitly state the subcomponents in the type definition.\n// Letting this be implicit works in this project but fails in projects that use\n// generated *.d.ts files.\nconst PopoverComponent = /*#__PURE__*/forwardRef(function Popover({\n activatorWrapper = 'div',\n children,\n onClose,\n activator,\n preventFocusOnClose,\n active,\n fixed,\n ariaHaspopup,\n preferInputActivator = true,\n colorScheme,\n zIndexOverride,\n ...rest\n}, ref) {\n const [activatorNode, setActivatorNode] = useState();\n const overlayRef = useRef(null);\n const activatorContainer = useRef(null);\n const WrapperComponent = activatorWrapper;\n const id = useUniqueId('popover');\n\n function forceUpdatePosition() {\n var _overlayRef$current;\n\n (_overlayRef$current = overlayRef.current) === null || _overlayRef$current === void 0 ? void 0 : _overlayRef$current.forceUpdatePosition();\n }\n\n useImperativeHandle(ref, () => {\n return {\n forceUpdatePosition\n };\n });\n const setAccessibilityAttributes = useCallback(() => {\n if (activatorContainer.current == null) {\n return;\n }\n\n const firstFocusable = findFirstFocusableNodeIncludingDisabled(activatorContainer.current);\n const focusableActivator = firstFocusable || activatorContainer.current;\n const activatorDisabled = 'disabled' in focusableActivator && Boolean(focusableActivator.disabled);\n setActivatorAttributes(focusableActivator, {\n id,\n active,\n ariaHaspopup,\n activatorDisabled\n });\n }, [id, active, ariaHaspopup]);\n\n const handleClose = source => {\n onClose(source);\n\n if (activatorContainer.current == null || preventFocusOnClose) {\n return;\n }\n\n if ((source === PopoverCloseSource.FocusOut || source === PopoverCloseSource.EscapeKeypress) && activatorNode) {\n const focusableActivator = findFirstFocusableNodeIncludingDisabled(activatorNode) || findFirstFocusableNodeIncludingDisabled(activatorContainer.current) || activatorContainer.current;\n\n if (!focusNextFocusableNode(focusableActivator, isInPortal)) {\n focusableActivator.focus();\n }\n }\n };\n\n useEffect(() => {\n if (!activatorNode && activatorContainer.current) {\n setActivatorNode(activatorContainer.current.firstElementChild);\n } else if (activatorNode && activatorContainer.current && !activatorContainer.current.contains(activatorNode)) {\n setActivatorNode(activatorContainer.current.firstElementChild);\n }\n\n setAccessibilityAttributes();\n }, [activatorNode, setAccessibilityAttributes]);\n useEffect(() => {\n if (activatorNode && activatorContainer.current) {\n setActivatorNode(activatorContainer.current.firstElementChild);\n }\n\n setAccessibilityAttributes();\n }, [activatorNode, setAccessibilityAttributes]);\n const portal = activatorNode ? /*#__PURE__*/React.createElement(Portal, {\n idPrefix: \"popover\"\n }, /*#__PURE__*/React.createElement(PopoverOverlay, Object.assign({\n ref: overlayRef,\n id: id,\n activator: activatorNode,\n preferInputActivator: preferInputActivator,\n onClose: handleClose,\n active: active,\n fixed: fixed,\n colorScheme: colorScheme,\n zIndexOverride: zIndexOverride\n }, rest), children)) : null;\n return /*#__PURE__*/React.createElement(WrapperComponent, {\n ref: activatorContainer\n }, Children.only(activator), portal);\n});\n\nfunction isInPortal(element) {\n let parentElement = element.parentElement;\n\n while (parentElement) {\n if (parentElement.matches(portal.selector)) return false;\n parentElement = parentElement.parentElement;\n }\n\n return true;\n}\n\nconst Popover = Object.assign(PopoverComponent, {\n Pane,\n Section\n});\n\nexport { Popover };\n","function setActivatorAttributes(activator, {\n id,\n active = false,\n ariaHaspopup,\n activatorDisabled = false\n}) {\n if (!activatorDisabled) {\n activator.tabIndex = activator.tabIndex || 0;\n }\n\n activator.setAttribute('aria-controls', id);\n activator.setAttribute('aria-owns', id);\n activator.setAttribute('aria-expanded', String(active));\n\n if (ariaHaspopup != null) {\n activator.setAttribute('aria-haspopup', String(ariaHaspopup));\n }\n}\n\nexport { setActivatorAttributes };\n","var styles = {\n \"ActionList\": \"Polaris-ActionList\",\n \"Section-withoutTitle\": \"Polaris-ActionList__Section--withoutTitle\",\n \"Actions\": \"Polaris-ActionList__Actions\",\n \"Section\": \"Polaris-ActionList__Section\",\n \"Title\": \"Polaris-ActionList__Title\",\n \"firstSectionWithTitle\": \"Polaris-ActionList--firstSectionWithTitle\",\n \"Item\": \"Polaris-ActionList__Item\",\n \"active\": \"Polaris-ActionList--active\",\n \"destructive\": \"Polaris-ActionList--destructive\",\n \"disabled\": \"Polaris-ActionList--disabled\",\n \"Prefix\": \"Polaris-ActionList__Prefix\",\n \"Suffix\": \"Polaris-ActionList__Suffix\",\n \"Content\": \"Polaris-ActionList__Content\",\n \"ContentBlock\": \"Polaris-ActionList__ContentBlock\",\n \"ContentBlockInner\": \"Polaris-ActionList__ContentBlockInner\",\n \"Text\": \"Polaris-ActionList__Text\"\n};\n\nexport { styles as default };\n","var styles = {\n \"Icon\": \"Polaris-Icon\",\n \"applyColor\": \"Polaris-Icon--applyColor\",\n \"hasBackdrop\": \"Polaris-Icon--hasBackdrop\",\n \"colorBase\": \"Polaris-Icon--colorBase\",\n \"colorSubdued\": \"Polaris-Icon--colorSubdued\",\n \"colorCritical\": \"Polaris-Icon--colorCritical\",\n \"colorInteractive\": \"Polaris-Icon--colorInteractive\",\n \"colorWarning\": \"Polaris-Icon--colorWarning\",\n \"colorHighlight\": \"Polaris-Icon--colorHighlight\",\n \"colorSuccess\": \"Polaris-Icon--colorSuccess\",\n \"colorPrimary\": \"Polaris-Icon--colorPrimary\",\n \"Svg\": \"Polaris-Icon__Svg\",\n \"Img\": \"Polaris-Icon__Img\",\n \"Placeholder\": \"Polaris-Icon__Placeholder\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport styles from './Icon.scss.js';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden.js';\n\nconst COLORS_WITH_BACKDROPS = ['base', 'critical', 'highlight', 'success', 'warning'];\nfunction Icon({\n source,\n color,\n backdrop,\n accessibilityLabel\n}) {\n let sourceType;\n\n if (typeof source === 'function') {\n sourceType = 'function';\n } else if (source === 'placeholder') {\n sourceType = 'placeholder';\n } else {\n sourceType = 'external';\n }\n\n if (color && sourceType === 'external' && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('Recoloring external SVGs is not supported. Set the intended color on your SVG instead.');\n }\n\n if (backdrop && color && !COLORS_WITH_BACKDROPS.includes(color) && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(`The ${color} variant does not have a supported backdrop color`);\n }\n\n const className = classNames(styles.Icon, color && styles[variationName('color', color)], color && styles.applyColor, backdrop && styles.hasBackdrop);\n const SourceComponent = source;\n const contentMarkup = {\n function: /*#__PURE__*/React.createElement(SourceComponent, {\n className: styles.Svg,\n focusable: \"false\",\n \"aria-hidden\": \"true\"\n }),\n placeholder: /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Placeholder\n }),\n external: /*#__PURE__*/React.createElement(\"img\", {\n className: styles.Img,\n src: `data:image/svg+xml;utf8,${source}`,\n alt: \"\",\n \"aria-hidden\": \"true\"\n })\n };\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className\n }, /*#__PURE__*/React.createElement(VisuallyHidden, null, accessibilityLabel), contentMarkup[sourceType]);\n}\n\nexport { Icon };\n","var styles = {\n \"variationPositive\": \"Polaris-TextStyle--variationPositive\",\n \"variationNegative\": \"Polaris-TextStyle--variationNegative\",\n \"variationWarning\": \"Polaris-TextStyle--variationWarning\",\n \"variationCode\": \"Polaris-TextStyle--variationCode\",\n \"variationStrong\": \"Polaris-TextStyle--variationStrong\",\n \"variationSubdued\": \"Polaris-TextStyle--variationSubdued\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport styles from './TextStyle.scss.js';\n\nvar VariationValue;\n\n(function (VariationValue) {\n VariationValue[\"Positive\"] = \"positive\";\n VariationValue[\"Negative\"] = \"negative\";\n VariationValue[\"Warning\"] = \"warning\";\n VariationValue[\"Strong\"] = \"strong\";\n VariationValue[\"Subdued\"] = \"subdued\";\n VariationValue[\"Code\"] = \"code\";\n})(VariationValue || (VariationValue = {}));\n\nfunction TextStyle({\n variation,\n children\n}) {\n const className = classNames(variation && styles[variationName('variation', variation)], variation === VariationValue.Code && styles.code);\n const Element = variationElement(variation);\n return /*#__PURE__*/React.createElement(Element, {\n className: className\n }, children);\n}\n\nfunction variationElement(variation) {\n return variation === VariationValue.Code ? 'code' : 'span';\n}\n\nexport { TextStyle };\n","import { createContext } from 'react';\n\nconst WithinFilterContext = /*#__PURE__*/createContext(false);\n\nexport { WithinFilterContext };\n","var styles = {\n \"Badge\": \"Polaris-Badge\",\n \"sizeSmall\": \"Polaris-Badge--sizeSmall\",\n \"statusSuccess\": \"Polaris-Badge--statusSuccess\",\n \"statusInfo\": \"Polaris-Badge--statusInfo\",\n \"statusAttention\": \"Polaris-Badge--statusAttention\",\n \"statusWarning\": \"Polaris-Badge--statusWarning\",\n \"statusCritical\": \"Polaris-Badge--statusCritical\",\n \"statusNew\": \"Polaris-Badge--statusNew\",\n \"Pip\": \"Polaris-Badge__Pip\",\n \"progressIncomplete\": \"Polaris-Badge--progressIncomplete\",\n \"progressPartiallyComplete\": \"Polaris-Badge--progressPartiallyComplete\",\n \"progressComplete\": \"Polaris-Badge--progressComplete\",\n \"withinFilter\": \"Polaris-Badge--withinFilter\"\n};\n\nexport { styles as default };\n","import { useContext } from 'react';\nimport { MissingAppProviderError } from '../errors.js';\nimport { I18nContext } from './context.js';\n\nfunction useI18n() {\n const i18n = useContext(I18nContext);\n\n if (!i18n) {\n throw new MissingAppProviderError('No i18n was provided.');\n }\n\n return i18n;\n}\n\nexport { useI18n };\n","import React, { useContext } from 'react';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport { WithinFilterContext } from '../../utilities/within-filter-context.js';\nimport styles from './Badge.scss.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden.js';\n\nconst PROGRESS_LABELS = {\n incomplete: 'incomplete',\n partiallyComplete: 'partiallyComplete',\n complete: 'complete'\n};\nconst STATUS_LABELS = {\n info: 'info',\n success: 'success',\n warning: 'warning',\n critical: 'critical',\n attention: 'attention',\n new: 'new'\n};\nconst DEFAULT_SIZE = 'medium';\nfunction Badge({\n children,\n status,\n progress,\n size = DEFAULT_SIZE,\n statusAndProgressLabelOverride\n}) {\n const i18n = useI18n();\n const withinFilter = useContext(WithinFilterContext);\n const className = classNames(styles.Badge, status && styles[variationName('status', status)], progress && styles[variationName('progress', progress)], size && size !== DEFAULT_SIZE && styles[variationName('size', size)], withinFilter && styles.withinFilter);\n let progressLabel = '';\n\n switch (progress) {\n case PROGRESS_LABELS.incomplete:\n progressLabel = i18n.translate('Polaris.Badge.PROGRESS_LABELS.incomplete');\n break;\n\n case PROGRESS_LABELS.partiallyComplete:\n progressLabel = i18n.translate('Polaris.Badge.PROGRESS_LABELS.partiallyComplete');\n break;\n\n case PROGRESS_LABELS.complete:\n progressLabel = i18n.translate('Polaris.Badge.PROGRESS_LABELS.complete');\n break;\n }\n\n let statusLabel = '';\n\n switch (status) {\n case STATUS_LABELS.info:\n statusLabel = i18n.translate('Polaris.Badge.STATUS_LABELS.info');\n break;\n\n case STATUS_LABELS.success:\n statusLabel = i18n.translate('Polaris.Badge.STATUS_LABELS.success');\n break;\n\n case STATUS_LABELS.warning:\n statusLabel = i18n.translate('Polaris.Badge.STATUS_LABELS.warning');\n break;\n\n case STATUS_LABELS.critical:\n statusLabel = i18n.translate('Polaris.Badge.STATUS_LABELS.critical');\n break;\n\n case STATUS_LABELS.attention:\n statusLabel = i18n.translate('Polaris.Badge.STATUS_LABELS.attention');\n break;\n\n case STATUS_LABELS.new:\n statusLabel = i18n.translate('Polaris.Badge.STATUS_LABELS.new');\n break;\n }\n\n const accessibilityLabel = statusAndProgressLabelOverride ? statusAndProgressLabelOverride : i18n.translate('Polaris.Badge.progressAndStatus', {\n progressLabel,\n statusLabel\n });\n const hasAccessibilityLabel = progressLabel || statusLabel || statusAndProgressLabelOverride;\n let accessibilityMarkup = hasAccessibilityLabel && /*#__PURE__*/React.createElement(VisuallyHidden, null, accessibilityLabel);\n\n if (progressLabel) {\n accessibilityMarkup = /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Pip\n }, accessibilityMarkup);\n }\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className\n }, accessibilityMarkup, children);\n}\n\nexport { Badge };\n","import React, { memo, forwardRef } from 'react';\nimport { unstyled } from '../shared.js';\nimport { useLink } from '../../utilities/link/hooks.js';\n\n// that the interface defining the props is defined in this file, not imported\n// from elsewhere. This silly workaround ensures that the Props Explorer table\n// is generated correctly.\n\n// Wrapping forwardRef in a memo gets a name set since\n// https://github.com/facebook/react/issues/16722\n// but eslint-plugin-react doesn't know that just yet\n// eslint-disable-next-line react/display-name\nconst UnstyledLink = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function UnstyledLink(props, _ref) {\n const LinkComponent = useLink();\n\n if (LinkComponent) {\n return /*#__PURE__*/React.createElement(LinkComponent, Object.assign({}, unstyled.props, props));\n }\n\n const {\n external,\n url,\n ...rest\n } = props;\n const target = external ? '_blank' : undefined;\n const rel = external ? 'noopener noreferrer' : undefined;\n return /*#__PURE__*/React.createElement(\"a\", Object.assign({\n target: target\n }, rest, {\n href: url,\n rel: rel\n }, unstyled.props));\n}));\n\nexport { UnstyledLink };\n","import { useContext } from 'react';\nimport { LinkContext } from './context.js';\n\nfunction useLink() {\n return useContext(LinkContext);\n}\n\nexport { useLink };\n","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from '../../ActionList.scss.js';\nimport { handleMouseUpByBlurring } from '../../../../utilities/focus.js';\nimport { Icon } from '../../../Icon/Icon.js';\nimport { TextStyle } from '../../../TextStyle/TextStyle.js';\nimport { Badge } from '../../../Badge/Badge.js';\nimport { UnstyledLink } from '../../../UnstyledLink/UnstyledLink.js';\nimport { Scrollable } from '../../../Scrollable/Scrollable.js';\n\nfunction Item({\n id,\n badge,\n content,\n accessibilityLabel,\n helpText,\n url,\n onAction,\n icon,\n image,\n prefix,\n suffix,\n disabled,\n external,\n destructive,\n ellipsis,\n active,\n role\n}) {\n const className = classNames(styles.Item, disabled && styles.disabled, destructive && styles.destructive, active && styles.active);\n let prefixMarkup = null;\n\n if (prefix) {\n prefixMarkup = /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Prefix\n }, prefix);\n } else if (icon) {\n prefixMarkup = /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Prefix\n }, /*#__PURE__*/React.createElement(Icon, {\n source: icon\n }));\n } else if (image) {\n prefixMarkup = /*#__PURE__*/React.createElement(\"span\", {\n role: \"presentation\",\n className: styles.Prefix,\n style: {\n backgroundImage: `url(${image}`\n }\n });\n }\n\n const contentText = ellipsis && content ? `${content}…` : content;\n const contentMarkup = helpText ? /*#__PURE__*/React.createElement(\"span\", {\n className: styles.ContentBlock\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.ContentBlockInner\n }, contentText), /*#__PURE__*/React.createElement(TextStyle, {\n variation: \"subdued\"\n }, helpText)) : contentText;\n const badgeMarkup = badge && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Suffix\n }, /*#__PURE__*/React.createElement(Badge, {\n status: badge.status\n }, badge.content));\n const suffixMarkup = suffix && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Suffix\n }, suffix);\n const textMarkup = /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Text\n }, contentMarkup);\n const contentElement = /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Content\n }, prefixMarkup, textMarkup, badgeMarkup, suffixMarkup);\n const scrollMarkup = active ? /*#__PURE__*/React.createElement(Scrollable.ScrollTo, null) : null;\n const control = url ? /*#__PURE__*/React.createElement(UnstyledLink, {\n id: id,\n url: disabled ? null : url,\n className: className,\n external: external,\n \"aria-label\": accessibilityLabel,\n onClick: disabled ? null : onAction,\n role: role\n }, contentElement) : /*#__PURE__*/React.createElement(\"button\", {\n id: id,\n type: \"button\",\n className: className,\n disabled: disabled,\n \"aria-label\": accessibilityLabel,\n onClick: onAction,\n onMouseUp: handleMouseUpByBlurring,\n role: role\n }, contentElement);\n return /*#__PURE__*/React.createElement(\"li\", {\n role: role === 'menuitem' ? 'presentation' : undefined\n }, scrollMarkup, control);\n}\n\nexport { Item };\n","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from '../../ActionList.scss.js';\nimport { Item } from '../Item/Item.js';\n\nfunction Section({\n section,\n hasMultipleSections,\n actionRole,\n firstSection,\n onActionAnyItem\n}) {\n const handleAction = itemOnAction => {\n return () => {\n if (itemOnAction) {\n itemOnAction();\n }\n\n if (onActionAnyItem) {\n onActionAnyItem();\n }\n };\n };\n\n const actionMarkup = section.items.map(({\n content,\n helpText,\n onAction,\n ...item\n }, index) => {\n return /*#__PURE__*/React.createElement(Item, Object.assign({\n key: `${content}-${index}`,\n content: content,\n helpText: helpText,\n role: actionRole,\n onAction: handleAction(onAction)\n }, item));\n });\n const className = section.title ? undefined : styles['Section-withoutTitle'];\n const titleClassName = classNames(styles.Title, firstSection && styles.firstSectionWithTitle);\n const titleMarkup = section.title ? /*#__PURE__*/React.createElement(\"p\", {\n className: titleClassName\n }, section.title) : null;\n let sectionRole;\n\n switch (actionRole) {\n case 'option':\n sectionRole = 'presentation';\n break;\n\n case 'menuitem':\n sectionRole = !hasMultipleSections ? 'menu' : 'presentation';\n break;\n\n default:\n sectionRole = undefined;\n break;\n }\n\n const sectionMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, titleMarkup, /*#__PURE__*/React.createElement(\"ul\", {\n className: styles.Actions,\n role: sectionRole,\n tabIndex: !hasMultipleSections ? -1 : undefined\n }, actionMarkup));\n return hasMultipleSections ? /*#__PURE__*/React.createElement(\"li\", {\n className: styles.Section,\n role: \"presentation\"\n }, sectionMarkup) : sectionMarkup;\n}\n\nexport { Section };\n","import React, { useRef } from 'react';\nimport { wrapFocusPreviousFocusableMenuItem, wrapFocusNextFocusableMenuItem } from '../../utilities/focus.js';\nimport { Key } from '../../types.js';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './ActionList.scss.js';\nimport { Section } from './components/Section/Section.js';\nimport { KeypressListener } from '../KeypressListener/KeypressListener.js';\n\nfunction ActionList({\n items,\n sections = [],\n actionRole,\n onActionAnyItem\n}) {\n let finalSections = [];\n const actionListRef = useRef(null);\n\n if (items) {\n finalSections = [{\n items\n }, ...sections];\n } else if (sections) {\n finalSections = sections;\n }\n\n const className = classNames(styles.ActionList);\n const hasMultipleSections = finalSections.length > 1;\n const Element = hasMultipleSections ? 'ul' : 'div';\n const elementRole = hasMultipleSections && actionRole === 'menuitem' ? 'menu' : undefined;\n const elementTabIndex = hasMultipleSections && actionRole === 'menuitem' ? -1 : undefined;\n const sectionMarkup = finalSections.map((section, index) => {\n return section.items.length > 0 ? /*#__PURE__*/React.createElement(Section, {\n key: section.title || index,\n firstSection: index === 0,\n section: section,\n hasMultipleSections: hasMultipleSections,\n actionRole: actionRole,\n onActionAnyItem: onActionAnyItem\n }) : null;\n });\n\n const handleFocusPreviousItem = evt => {\n evt.preventDefault();\n\n if (actionListRef.current && evt.target) {\n if (actionListRef.current.contains(evt.target)) {\n wrapFocusPreviousFocusableMenuItem(actionListRef.current, evt.target);\n }\n }\n };\n\n const handleFocusNextItem = evt => {\n evt.preventDefault();\n\n if (actionListRef.current && evt.target) {\n if (actionListRef.current.contains(evt.target)) {\n wrapFocusNextFocusableMenuItem(actionListRef.current, evt.target);\n }\n }\n };\n\n const listeners = actionRole === 'menuitem' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(KeypressListener, {\n keyEvent: \"keydown\",\n keyCode: Key.DownArrow,\n handler: handleFocusNextItem\n }), /*#__PURE__*/React.createElement(KeypressListener, {\n keyEvent: \"keydown\",\n keyCode: Key.UpArrow,\n handler: handleFocusPreviousItem\n })) : null;\n return /*#__PURE__*/React.createElement(Element, {\n ref: actionListRef,\n className: className,\n role: elementRole,\n tabIndex: elementTabIndex\n }, listeners, sectionMarkup);\n}\n\nexport { ActionList };\n","import React from 'react';\nimport { handleMouseUpByBlurring } from '../../utilities/focus.js';\nimport { UnstyledLink } from '../UnstyledLink/UnstyledLink.js';\n\nfunction UnstyledButton({\n id,\n children,\n className,\n url,\n external,\n download,\n submit,\n disabled,\n loading,\n pressed,\n accessibilityLabel,\n role,\n ariaControls,\n ariaExpanded,\n ariaDescribedBy,\n onClick,\n onFocus,\n onBlur,\n onKeyDown,\n onKeyPress,\n onKeyUp,\n onMouseEnter,\n onTouchStart,\n ...rest\n}) {\n let buttonMarkup;\n const commonProps = {\n id,\n className,\n 'aria-label': accessibilityLabel\n };\n const interactiveProps = { ...commonProps,\n role,\n onClick,\n onFocus,\n onBlur,\n onMouseUp: handleMouseUpByBlurring,\n onMouseEnter,\n onTouchStart\n };\n\n if (url) {\n buttonMarkup = disabled ?\n /*#__PURE__*/\n // Render an `` so toggling disabled/enabled state changes only the\n // `href` attribute instead of replacing the whole element.\n React.createElement(\"a\", commonProps, children) : /*#__PURE__*/React.createElement(UnstyledLink, Object.assign({}, interactiveProps, {\n url: url,\n external: external,\n download: download\n }, rest), children);\n } else {\n buttonMarkup = /*#__PURE__*/React.createElement(\"button\", Object.assign({}, interactiveProps, {\n type: submit ? 'submit' : 'button',\n disabled: disabled,\n \"aria-busy\": loading ? true : undefined,\n \"aria-controls\": ariaControls,\n \"aria-expanded\": ariaExpanded,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-pressed\": pressed,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n onKeyPress: onKeyPress\n }, rest), children);\n }\n\n return buttonMarkup;\n}\n\nexport { UnstyledButton };\n","import React, { useState, useCallback } from 'react';\nimport { CaretDownMinor, SelectMinor, CaretUpMinor } from '@shopify/polaris-icons';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport { handleMouseUpByBlurring } from '../../utilities/focus.js';\nimport styles from './Button.scss.js';\nimport { Spinner } from '../Spinner/Spinner.js';\nimport { Popover } from '../Popover/Popover.js';\nimport { ActionList } from '../ActionList/ActionList.js';\nimport { UnstyledButton } from '../UnstyledButton/UnstyledButton.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Icon } from '../Icon/Icon.js';\n\nconst DEFAULT_SIZE = 'medium';\nfunction Button({\n id,\n children,\n url,\n disabled,\n external,\n download,\n submit,\n loading,\n pressed,\n accessibilityLabel,\n role,\n ariaControls,\n ariaExpanded,\n ariaDescribedBy,\n onClick,\n onFocus,\n onBlur,\n onKeyDown,\n onKeyPress,\n onKeyUp,\n onMouseEnter,\n onTouchStart,\n icon,\n primary,\n outline,\n destructive,\n disclosure,\n plain,\n monochrome,\n removeUnderline,\n size = DEFAULT_SIZE,\n textAlign,\n fullWidth,\n connectedDisclosure\n}) {\n const i18n = useI18n();\n const isDisabled = disabled || loading;\n const className = classNames(styles.Button, primary && styles.primary, outline && styles.outline, destructive && styles.destructive, isDisabled && styles.disabled, loading && styles.loading, plain && styles.plain, pressed && !disabled && !url && styles.pressed, monochrome && styles.monochrome, size && size !== DEFAULT_SIZE && styles[variationName('size', size)], textAlign && styles[variationName('textAlign', textAlign)], fullWidth && styles.fullWidth, icon && children == null && styles.iconOnly, connectedDisclosure && styles.connectedDisclosure, removeUnderline && styles.removeUnderline);\n const disclosureMarkup = disclosure ? /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Icon\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.DisclosureIcon, loading && styles.hidden)\n }, /*#__PURE__*/React.createElement(Icon, {\n source: loading ? 'placeholder' : getDisclosureIconSource(disclosure)\n }))) : null;\n const iconSource = isIconSource(icon) ? /*#__PURE__*/React.createElement(Icon, {\n source: loading ? 'placeholder' : icon\n }) : icon;\n const iconMarkup = iconSource ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(styles.Icon, loading && styles.hidden)\n }, iconSource) : null;\n const childMarkup = children ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(styles.Text, removeUnderline && styles.removeUnderline) // Fixes Safari bug that doesn't re-render button text to correct color\n ,\n key: disabled ? 'text-disabled' : 'text'\n }, children) : null;\n const spinnerSVGMarkup = loading ? /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Spinner\n }, /*#__PURE__*/React.createElement(Spinner, {\n size: \"small\",\n accessibilityLabel: i18n.translate('Polaris.Button.spinnerAccessibilityLabel')\n })) : null;\n const [disclosureActive, setDisclosureActive] = useState(false);\n const toggleDisclosureActive = useCallback(() => {\n setDisclosureActive(disclosureActive => !disclosureActive);\n }, []);\n let connectedDisclosureMarkup;\n\n if (connectedDisclosure) {\n const connectedDisclosureClassName = classNames(styles.Button, primary && styles.primary, outline && styles.outline, size && size !== DEFAULT_SIZE && styles[variationName('size', size)], textAlign && styles[variationName('textAlign', textAlign)], destructive && styles.destructive, connectedDisclosure.disabled && styles.disabled, styles.iconOnly, styles.ConnectedDisclosure, monochrome && styles.monochrome);\n const defaultLabel = i18n.translate('Polaris.Button.connectedDisclosureAccessibilityLabel');\n const {\n disabled,\n accessibilityLabel: disclosureLabel = defaultLabel\n } = connectedDisclosure;\n const connectedDisclosureActivator = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: connectedDisclosureClassName,\n disabled: disabled,\n \"aria-label\": disclosureLabel,\n \"aria-describedby\": ariaDescribedBy,\n onClick: toggleDisclosureActive,\n onMouseUp: handleMouseUpByBlurring\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Icon\n }, /*#__PURE__*/React.createElement(Icon, {\n source: CaretDownMinor\n })));\n connectedDisclosureMarkup = /*#__PURE__*/React.createElement(Popover, {\n active: disclosureActive,\n onClose: toggleDisclosureActive,\n activator: connectedDisclosureActivator,\n preferredAlignment: \"right\"\n }, /*#__PURE__*/React.createElement(ActionList, {\n items: connectedDisclosure.actions,\n onActionAnyItem: toggleDisclosureActive\n }));\n }\n\n const commonProps = {\n id,\n className,\n accessibilityLabel,\n ariaDescribedBy,\n role,\n onClick,\n onFocus,\n onBlur,\n onMouseUp: handleMouseUpByBlurring,\n onMouseEnter,\n onTouchStart\n };\n const linkProps = {\n url,\n external,\n download\n };\n const actionProps = {\n submit,\n disabled: isDisabled,\n loading,\n ariaControls,\n ariaExpanded,\n pressed,\n onKeyDown,\n onKeyUp,\n onKeyPress\n };\n const buttonMarkup = /*#__PURE__*/React.createElement(UnstyledButton, Object.assign({}, commonProps, linkProps, actionProps), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Content\n }, spinnerSVGMarkup, iconMarkup, childMarkup, disclosureMarkup));\n return connectedDisclosureMarkup ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ConnectedDisclosureWrapper\n }, buttonMarkup, connectedDisclosureMarkup) : buttonMarkup;\n}\n\nfunction isIconSource(x) {\n return typeof x === 'string' || typeof x === 'object' && x.body || typeof x === 'function';\n}\n\nfunction getDisclosureIconSource(disclosure) {\n if (disclosure === 'select') {\n return SelectMinor;\n }\n\n return disclosure === 'up' ? CaretUpMinor : CaretDownMinor;\n}\n\nexport { Button };\n","import React from 'react';\nimport { Button } from './Button.js';\n\nfunction buttonsFrom(actions, overrides = {}) {\n if (Array.isArray(actions)) {\n return actions.map((action, index) => buttonFrom(action, overrides, index));\n } else {\n const action = actions;\n return buttonFrom(action, overrides);\n }\n}\nfunction buttonFrom({\n content,\n onAction,\n ...action\n}, overrides, key) {\n return /*#__PURE__*/React.createElement(Button, Object.assign({\n key: key,\n onClick: onAction\n }, action, overrides), content);\n}\n\nexport { buttonFrom, buttonsFrom };\n","var styles = {\n \"ButtonGroup\": \"Polaris-ButtonGroup\",\n \"Item\": \"Polaris-ButtonGroup__Item\",\n \"Item-plain\": \"Polaris-ButtonGroup__Item--plain\",\n \"segmented\": \"Polaris-ButtonGroup--segmented\",\n \"Item-focused\": \"Polaris-ButtonGroup__Item--focused\",\n \"fullWidth\": \"Polaris-ButtonGroup--fullWidth\",\n \"extraTight\": \"Polaris-ButtonGroup--extraTight\",\n \"tight\": \"Polaris-ButtonGroup--tight\",\n \"loose\": \"Polaris-ButtonGroup--loose\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { useToggle } from '../../../../utilities/use-toggle.js';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from '../../ButtonGroup.scss.js';\n\nfunction Item({\n button\n}) {\n const {\n value: focused,\n setTrue: forceTrueFocused,\n setFalse: forceFalseFocused\n } = useToggle(false);\n const className = classNames(styles.Item, focused && styles['Item-focused'], button.props.plain && styles['Item-plain']);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n onFocus: forceTrueFocused,\n onBlur: forceFalseFocused\n }, button);\n}\n\nexport { Item };\n","import React from 'react';\nimport { classNames } from '../../utilities/css.js';\nimport { elementChildren } from '../../utilities/components.js';\nimport styles from './ButtonGroup.scss.js';\nimport { Item } from './components/Item/Item.js';\n\nfunction ButtonGroup({\n children,\n spacing,\n segmented,\n fullWidth,\n connectedTop\n}) {\n const className = classNames(styles.ButtonGroup, spacing && styles[spacing], segmented && styles.segmented, fullWidth && styles.fullWidth);\n const contents = elementChildren(children).map((child, index) => /*#__PURE__*/React.createElement(Item, {\n button: child,\n key: index\n }));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n \"data-buttongroup-segmented\": segmented,\n \"data-buttongroup-connected-top\": connectedTop,\n \"data-buttongroup-full-width\": fullWidth\n }, contents);\n}\n\nexport { ButtonGroup };\n","var styles = {\n \"Stack\": \"Polaris-Stack\",\n \"Item\": \"Polaris-Stack__Item\",\n \"noWrap\": \"Polaris-Stack--noWrap\",\n \"spacingNone\": \"Polaris-Stack--spacingNone\",\n \"spacingExtraTight\": \"Polaris-Stack--spacingExtraTight\",\n \"spacingTight\": \"Polaris-Stack--spacingTight\",\n \"spacingBaseTight\": \"Polaris-Stack--spacingBaseTight\",\n \"spacingLoose\": \"Polaris-Stack--spacingLoose\",\n \"spacingExtraLoose\": \"Polaris-Stack--spacingExtraLoose\",\n \"distributionLeading\": \"Polaris-Stack--distributionLeading\",\n \"distributionTrailing\": \"Polaris-Stack--distributionTrailing\",\n \"distributionCenter\": \"Polaris-Stack--distributionCenter\",\n \"distributionEqualSpacing\": \"Polaris-Stack--distributionEqualSpacing\",\n \"distributionFill\": \"Polaris-Stack--distributionFill\",\n \"distributionFillEvenly\": \"Polaris-Stack--distributionFillEvenly\",\n \"alignmentLeading\": \"Polaris-Stack--alignmentLeading\",\n \"alignmentTrailing\": \"Polaris-Stack--alignmentTrailing\",\n \"alignmentCenter\": \"Polaris-Stack--alignmentCenter\",\n \"alignmentFill\": \"Polaris-Stack--alignmentFill\",\n \"alignmentBaseline\": \"Polaris-Stack--alignmentBaseline\",\n \"vertical\": \"Polaris-Stack--vertical\",\n \"Item-fill\": \"Polaris-Stack__Item--fill\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from '../../Stack.scss.js';\n\nfunction Item({\n children,\n fill\n}) {\n const className = classNames(styles.Item, fill && styles['Item-fill']);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, children);\n}\n\nexport { Item };\n","import React, { memo } from 'react';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport { elementChildren, wrapWithComponent } from '../../utilities/components.js';\nimport styles from './Stack.scss.js';\nimport { Item } from './components/Item/Item.js';\n\nconst Stack = /*#__PURE__*/memo(function Stack({\n children,\n vertical,\n spacing,\n distribution,\n alignment,\n wrap\n}) {\n const className = classNames(styles.Stack, vertical && styles.vertical, spacing && styles[variationName('spacing', spacing)], distribution && styles[variationName('distribution', distribution)], alignment && styles[variationName('alignment', alignment)], wrap === false && styles.noWrap);\n const itemMarkup = elementChildren(children).map((child, index) => {\n const props = {\n key: index\n };\n return wrapWithComponent(child, Item, props);\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, itemMarkup);\n});\nStack.Item = Item;\n\nexport { Stack };\n","var styles = {\n \"Heading\": \"Polaris-Heading\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport styles from './Heading.scss.js';\n\nfunction Heading({\n element: Element = 'h2',\n children,\n id\n}) {\n return /*#__PURE__*/React.createElement(Element, {\n className: styles.Heading,\n id: id\n }, children);\n}\n\nexport { Heading };\n","import React, { isValidElement } from 'react';\nimport styles from '../../Card.scss.js';\nimport { ButtonGroup } from '../../../ButtonGroup/ButtonGroup.js';\nimport { buttonsFrom } from '../../../Button/utils.js';\nimport { Stack } from '../../../Stack/Stack.js';\nimport { Heading } from '../../../Heading/Heading.js';\n\nfunction Header({\n children,\n title,\n actions\n}) {\n const actionMarkup = actions ? /*#__PURE__*/React.createElement(ButtonGroup, null, buttonsFrom(actions, {\n plain: true\n })) : null;\n const titleMarkup = /*#__PURE__*/isValidElement(title) ? title : /*#__PURE__*/React.createElement(Heading, null, title);\n const headingMarkup = actionMarkup || children ? /*#__PURE__*/React.createElement(Stack, {\n alignment: \"baseline\"\n }, /*#__PURE__*/React.createElement(Stack.Item, {\n fill: true\n }, titleMarkup), actionMarkup, children) : titleMarkup;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Header\n }, headingMarkup);\n}\n\nexport { Header };\n","var styles = {\n \"Subheading\": \"Polaris-Subheading\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport styles from './Subheading.scss.js';\n\nfunction Subheading({\n element: Element = 'h3',\n children\n}) {\n const ariaLabel = typeof children === 'string' ? children : undefined;\n return /*#__PURE__*/React.createElement(Element, {\n \"aria-label\": ariaLabel,\n className: styles.Subheading\n }, children);\n}\n\nexport { Subheading };\n","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from '../../Card.scss.js';\nimport { Subheading } from '../../../Subheading/Subheading.js';\nimport { ButtonGroup } from '../../../ButtonGroup/ButtonGroup.js';\nimport { buttonsFrom } from '../../../Button/utils.js';\nimport { Stack } from '../../../Stack/Stack.js';\n\nfunction Section({\n children,\n title,\n subdued,\n flush,\n fullWidth,\n actions,\n hideOnPrint\n}) {\n const className = classNames(styles.Section, flush && styles['Section-flush'], subdued && styles['Section-subdued'], fullWidth && styles['Section-fullWidth'], hideOnPrint && styles['Section-hideOnPrint']);\n const actionMarkup = actions ? /*#__PURE__*/React.createElement(ButtonGroup, null, buttonsFrom(actions, {\n plain: true\n })) : null;\n const titleMarkup = typeof title === 'string' ? /*#__PURE__*/React.createElement(Subheading, null, title) : title;\n const titleAreaMarkup = titleMarkup || actionMarkup ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SectionHeader\n }, actionMarkup ? /*#__PURE__*/React.createElement(Stack, {\n alignment: \"baseline\"\n }, /*#__PURE__*/React.createElement(Stack.Item, {\n fill: true\n }, titleMarkup), actionMarkup) : titleMarkup) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, titleAreaMarkup, children);\n}\n\nexport { Section };\n","import React from 'react';\nimport { classNames } from '../../utilities/css.js';\nimport { useToggle } from '../../utilities/use-toggle.js';\nimport { WithinContentContext } from '../../utilities/within-content-context.js';\nimport styles from './Card.scss.js';\nimport { buttonFrom } from '../Button/utils.js';\nimport { Button } from '../Button/Button.js';\nimport { Header } from './components/Header/Header.js';\nimport { Section } from './components/Section/Section.js';\nimport { Subsection } from './components/Subsection/Subsection.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Popover } from '../Popover/Popover.js';\nimport { ActionList } from '../ActionList/ActionList.js';\nimport { ButtonGroup } from '../ButtonGroup/ButtonGroup.js';\n\n// TypeScript can't generate types that correctly infer the typing of\n// subcomponents so explicitly state the subcomponents in the type definition.\n// Letting this be implicit works in this project but fails in projects that use\n// generated *.d.ts files.\nconst Card = function Card({\n children,\n hideOnPrint,\n title,\n subdued,\n sectioned,\n actions,\n primaryFooterAction,\n secondaryFooterActions,\n secondaryFooterActionsDisclosureText,\n footerActionAlignment = 'right'\n}) {\n const i18n = useI18n();\n const {\n value: secondaryActionsPopoverOpen,\n toggle: toggleSecondaryActionsPopoverOpen\n } = useToggle(false);\n const className = classNames(styles.Card, subdued && styles.subdued, hideOnPrint && styles.hideOnPrint);\n const headerMarkup = title || actions ? /*#__PURE__*/React.createElement(Header, {\n actions: actions,\n title: title\n }) : null;\n const content = sectioned ? /*#__PURE__*/React.createElement(Section, null, children) : children;\n const primaryFooterActionMarkup = primaryFooterAction ? buttonFrom(primaryFooterAction, {\n primary: true\n }) : null;\n let secondaryFooterActionsMarkup = null;\n\n if (secondaryFooterActions && secondaryFooterActions.length) {\n if (secondaryFooterActions.length === 1) {\n secondaryFooterActionsMarkup = buttonFrom(secondaryFooterActions[0]);\n } else {\n secondaryFooterActionsMarkup = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Popover, {\n active: secondaryActionsPopoverOpen,\n activator: /*#__PURE__*/React.createElement(Button, {\n disclosure: true,\n onClick: toggleSecondaryActionsPopoverOpen\n }, secondaryFooterActionsDisclosureText || i18n.translate('Polaris.Common.more')),\n onClose: toggleSecondaryActionsPopoverOpen\n }, /*#__PURE__*/React.createElement(ActionList, {\n items: secondaryFooterActions\n })));\n }\n }\n\n const footerMarkup = primaryFooterActionMarkup || secondaryFooterActionsMarkup ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.Footer, footerActionAlignment === 'left' && styles.LeftJustified)\n }, footerActionAlignment === 'right' ? /*#__PURE__*/React.createElement(ButtonGroup, null, secondaryFooterActionsMarkup, primaryFooterActionMarkup) : /*#__PURE__*/React.createElement(ButtonGroup, null, primaryFooterActionMarkup, secondaryFooterActionsMarkup)) : null;\n return /*#__PURE__*/React.createElement(WithinContentContext.Provider, {\n value: true\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, headerMarkup, content, footerMarkup));\n};\nCard.Header = Header;\nCard.Section = Section;\nCard.Subsection = Subsection;\n\nexport { Card };\n","import React, { useCallback } from 'react';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden.js';\n\nfunction Form({\n acceptCharset,\n action,\n autoComplete,\n children,\n encType,\n implicitSubmit = true,\n method = 'post',\n name,\n noValidate,\n preventDefault = true,\n target,\n onSubmit\n}) {\n const i18n = useI18n();\n const handleSubmit = useCallback(event => {\n if (!preventDefault) {\n return;\n }\n\n event.preventDefault();\n onSubmit(event);\n }, [onSubmit, preventDefault]);\n const autoCompleteInputs = normalizeAutoComplete(autoComplete);\n const submitMarkup = implicitSubmit ? /*#__PURE__*/React.createElement(VisuallyHidden, null, /*#__PURE__*/React.createElement(\"button\", {\n type: \"submit\",\n \"aria-hidden\": \"true\",\n tabIndex: -1\n }, i18n.translate('Polaris.Common.submit'))) : null;\n return /*#__PURE__*/React.createElement(\"form\", {\n acceptCharset: acceptCharset,\n action: action,\n autoComplete: autoCompleteInputs,\n encType: encType,\n method: method,\n name: name,\n noValidate: noValidate,\n target: target,\n onSubmit: handleSubmit\n }, submitMarkup, children);\n}\n\nfunction normalizeAutoComplete(autoComplete) {\n if (autoComplete == null) {\n return autoComplete;\n }\n\n return autoComplete ? 'on' : 'off';\n}\n\nexport { Form };\n","import React from 'react';\nimport styles from '../../Card.scss.js';\n\nfunction Subsection({\n children\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Subsection\n }, children);\n}\n\nexport { Subsection };\n","var styles = {\n \"FormLayout\": \"Polaris-FormLayout\",\n \"Title\": \"Polaris-FormLayout__Title\",\n \"Items\": \"Polaris-FormLayout__Items\",\n \"HelpText\": \"Polaris-FormLayout__HelpText\",\n \"Item\": \"Polaris-FormLayout__Item\",\n \"grouped\": \"Polaris-FormLayout--grouped\",\n \"condensed\": \"Polaris-FormLayout--condensed\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport styles from '../../FormLayout.scss.js';\n\nfunction Item(props) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Item\n }, props.children);\n}\n\nexport { Item };\n","import React, { Children } from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport { wrapWithComponent } from '../../../../utilities/components.js';\nimport styles from '../../FormLayout.scss.js';\nimport { Item } from '../Item/Item.js';\nimport { useUniqueId } from '../../../../utilities/unique-id/hooks.js';\n\nfunction Group({\n children,\n condensed,\n title,\n helpText\n}) {\n const className = classNames(condensed ? styles.condensed : styles.grouped);\n const id = useUniqueId('FormLayoutGroup');\n let helpTextElement = null;\n let helpTextID;\n let titleElement = null;\n let titleID;\n\n if (helpText) {\n helpTextID = `${id}HelpText`;\n helpTextElement = /*#__PURE__*/React.createElement(\"div\", {\n id: helpTextID,\n className: styles.HelpText\n }, helpText);\n }\n\n if (title) {\n titleID = `${id}Title`;\n titleElement = /*#__PURE__*/React.createElement(\"div\", {\n id: titleID,\n className: styles.Title\n }, title);\n }\n\n const itemsMarkup = Children.map(children, child => wrapWithComponent(child, Item, {}));\n return /*#__PURE__*/React.createElement(\"div\", {\n role: \"group\",\n className: className,\n \"aria-labelledby\": titleID,\n \"aria-describedby\": helpTextID\n }, titleElement, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Items\n }, itemsMarkup), helpTextElement);\n}\n\nexport { Group };\n","import React, { memo, Children } from 'react';\nimport { isElementOfType, wrapWithComponent } from '../../utilities/components.js';\nimport styles from './FormLayout.scss.js';\nimport { Group } from './components/Group/Group.js';\nimport { Item } from './components/Item/Item.js';\n\nconst FormLayout = /*#__PURE__*/memo(function FormLayout({\n children\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.FormLayout\n }, Children.map(children, wrapChildren));\n});\nFormLayout.Group = Group;\n\nfunction wrapChildren(child, index) {\n if (isElementOfType(child, Group)) {\n return child;\n }\n\n const props = {\n key: index\n };\n return wrapWithComponent(child, Item, props);\n}\n\nexport { FormLayout };\n","import React from 'react';\n\nvar SvgCircleCancelMinor = function SvgCircleCancelMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm-2.293 4.293a1 1 0 0 0-1.414 1.414l2.293 2.293-2.293 2.293a1 1 0 1 0 1.414 1.414l2.293-2.293 2.293 2.293a1 1 0 1 0 1.414-1.414l-2.293-2.293 2.293-2.293a1 1 0 0 0-1.414-1.414l-2.293 2.293-2.293-2.293z\"\n }));\n};\n\nexport { SvgCircleCancelMinor as S };\n","var styles = {\n \"TextField\": \"Polaris-TextField\",\n \"multiline\": \"Polaris-TextField--multiline\",\n \"Input\": \"Polaris-TextField__Input\",\n \"hasValue\": \"Polaris-TextField--hasValue\",\n \"focus\": \"Polaris-TextField--focus\",\n \"Backdrop\": \"Polaris-TextField__Backdrop\",\n \"error\": \"Polaris-TextField--error\",\n \"readOnly\": \"Polaris-TextField--readOnly\",\n \"disabled\": \"Polaris-TextField--disabled\",\n \"Prefix\": \"Polaris-TextField__Prefix\",\n \"Input-hasClearButton\": \"Polaris-TextField__Input--hasClearButton\",\n \"Input-suffixed\": \"Polaris-TextField__Input--suffixed\",\n \"Input-alignRight\": \"Polaris-TextField__Input--alignRight\",\n \"Input-alignLeft\": \"Polaris-TextField__Input--alignLeft\",\n \"Input-alignCenter\": \"Polaris-TextField__Input--alignCenter\",\n \"Suffix\": \"Polaris-TextField__Suffix\",\n \"CharacterCount\": \"Polaris-TextField__CharacterCount\",\n \"AlignFieldBottom\": \"Polaris-TextField__AlignFieldBottom\",\n \"ClearButton\": \"Polaris-TextField__ClearButton\",\n \"Hidden\": \"Polaris-TextField__Hidden\",\n \"Spinner\": \"Polaris-TextField__Spinner\",\n \"SpinnerIcon\": \"Polaris-TextField__SpinnerIcon\",\n \"Resizer\": \"Polaris-TextField__Resizer\",\n \"DummyInput\": \"Polaris-TextField__DummyInput\",\n \"Segment\": \"Polaris-TextField__Segment\",\n \"monospaced\": \"Polaris-TextField--monospaced\"\n};\n\nexport { styles as default };\n","var styles = {\n \"hidden\": \"Polaris-Labelled--hidden\",\n \"LabelWrapper\": \"Polaris-Labelled__LabelWrapper\",\n \"HelpText\": \"Polaris-Labelled__HelpText\",\n \"Error\": \"Polaris-Labelled__Error\",\n \"Action\": \"Polaris-Labelled__Action\"\n};\n\nexport { styles as default };\n","import React from 'react';\n\nvar SvgAlertMinor = function SvgAlertMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm-1-9a1 1 0 0 0 2 0v-2a1 1 0 1 0-2 0v2zm0 4a1 1 0 1 0 2 0 1 1 0 0 0-2 0z\"\n }));\n};\n\nexport { SvgAlertMinor as S };\n","var styles = {\n \"InlineError\": \"Polaris-InlineError\",\n \"Icon\": \"Polaris-InlineError__Icon\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { AlertMinor } from '@shopify/polaris-icons';\nimport styles from './InlineError.scss.js';\nimport { Icon } from '../Icon/Icon.js';\n\nfunction InlineError({\n message,\n fieldID\n}) {\n if (!message) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n id: errorTextID(fieldID),\n className: styles.InlineError\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Icon\n }, /*#__PURE__*/React.createElement(Icon, {\n source: AlertMinor\n })), message);\n}\nfunction errorTextID(id) {\n return `${id}Error`;\n}\n\nexport { InlineError, errorTextID };\n","var styles = {\n \"Label\": \"Polaris-Label\",\n \"hidden\": \"Polaris-Label--hidden\",\n \"Text\": \"Polaris-Label__Text\",\n \"RequiredIndicator\": \"Polaris-Label__RequiredIndicator\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './Label.scss.js';\n\nfunction labelID(id) {\n return `${id}Label`;\n}\nfunction Label({\n children,\n id,\n hidden,\n requiredIndicator\n}) {\n const className = classNames(styles.Label, hidden && styles.hidden);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(\"label\", {\n id: labelID(id),\n htmlFor: id,\n className: classNames(styles.Text, requiredIndicator && styles.RequiredIndicator)\n }, children));\n}\n\nexport { Label, labelID };\n","import React from 'react';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './Labelled.scss.js';\nimport { InlineError } from '../InlineError/InlineError.js';\nimport { Label } from '../Label/Label.js';\nexport { labelID } from '../Label/Label.js';\nimport { buttonFrom } from '../Button/utils.js';\n\nfunction Labelled({\n id,\n label,\n error,\n action,\n helpText,\n children,\n labelHidden,\n requiredIndicator,\n ...rest\n}) {\n const className = classNames(labelHidden && styles.hidden);\n const actionMarkup = action ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Action\n }, buttonFrom(action, {\n plain: true\n })) : null;\n const helpTextMarkup = helpText ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.HelpText,\n id: helpTextID(id)\n }, helpText) : null;\n const errorMarkup = error && typeof error !== 'boolean' && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Error\n }, /*#__PURE__*/React.createElement(InlineError, {\n message: error,\n fieldID: id\n }));\n const labelMarkup = label ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.LabelWrapper\n }, /*#__PURE__*/React.createElement(Label, Object.assign({\n id: id,\n requiredIndicator: requiredIndicator\n }, rest, {\n hidden: false\n }), label), actionMarkup) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, labelMarkup, children, errorMarkup, helpTextMarkup);\n}\nfunction helpTextID(id) {\n return `${id}HelpText`;\n}\n\nexport { Labelled, helpTextID };\n","var styles = {\n \"Connected\": \"Polaris-Connected\",\n \"Item\": \"Polaris-Connected__Item\",\n \"Item-primary\": \"Polaris-Connected__Item--primary\",\n \"Item-focused\": \"Polaris-Connected__Item--focused\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport { useToggle } from '../../../../utilities/use-toggle.js';\nimport styles from '../../Connected.scss.js';\n\nfunction Item({\n children,\n position\n}) {\n const {\n value: focused,\n setTrue: forceTrueFocused,\n setFalse: forceFalseFocused\n } = useToggle(false);\n const className = classNames(styles.Item, focused && styles['Item-focused'], position === 'primary' ? styles['Item-primary'] : styles['Item-connection']);\n return /*#__PURE__*/React.createElement(\"div\", {\n onBlur: forceFalseFocused,\n onFocus: forceTrueFocused,\n className: className\n }, children);\n}\n\nexport { Item };\n","import React from 'react';\nimport styles from './Connected.scss.js';\nimport { Item } from './components/Item/Item.js';\n\nfunction Connected({\n children,\n left,\n right\n}) {\n const leftConnectionMarkup = left ? /*#__PURE__*/React.createElement(Item, {\n position: \"left\"\n }, left) : null;\n const rightConnectionMarkup = right ? /*#__PURE__*/React.createElement(Item, {\n position: \"right\"\n }, right) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Connected\n }, leftConnectionMarkup, /*#__PURE__*/React.createElement(Item, {\n position: \"primary\"\n }, children), rightConnectionMarkup);\n}\n\nexport { Connected };\n","import React from 'react';\nimport { CaretUpMinor, CaretDownMinor } from '@shopify/polaris-icons';\nimport styles from '../../TextField.scss.js';\nimport { Icon } from '../../../Icon/Icon.js';\n\nfunction Spinner({\n onChange,\n onClick,\n onMouseDown,\n onMouseUp\n}) {\n function handleStep(step) {\n return () => onChange(step);\n }\n\n function handleMouseDown(onChange) {\n return event => {\n if (event.button !== 0) return;\n onMouseDown(onChange);\n };\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Spinner,\n onClick: onClick,\n \"aria-hidden\": true\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"button\",\n className: styles.Segment,\n tabIndex: -1,\n onClick: handleStep(1),\n onMouseDown: handleMouseDown(handleStep(1)),\n onMouseUp: onMouseUp\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SpinnerIcon\n }, /*#__PURE__*/React.createElement(Icon, {\n source: CaretUpMinor\n }))), /*#__PURE__*/React.createElement(\"div\", {\n role: \"button\",\n className: styles.Segment,\n tabIndex: -1,\n onClick: handleStep(-1),\n onMouseDown: handleMouseDown(handleStep(-1)),\n onMouseUp: onMouseUp\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SpinnerIcon\n }, /*#__PURE__*/React.createElement(Icon, {\n source: CaretDownMinor\n }))));\n}\n\nexport { Spinner };\n","import React, { useRef, useEffect, useCallback, useLayoutEffect } from 'react';\nimport styles from '../../TextField.scss.js';\nimport { EventListener } from '../../../EventListener/EventListener.js';\n\nfunction Resizer({\n contents,\n currentHeight: currentHeightProp = null,\n minimumLines,\n onHeightChange\n}) {\n const contentNode = useRef(null);\n const minimumLinesNode = useRef(null);\n const animationFrame = useRef();\n const currentHeight = useRef(currentHeightProp);\n\n if (currentHeightProp !== currentHeight.current) {\n currentHeight.current = currentHeightProp;\n }\n\n useEffect(() => {\n return () => {\n if (animationFrame.current) {\n cancelAnimationFrame(animationFrame.current);\n }\n };\n }, []);\n const minimumLinesMarkup = minimumLines ? /*#__PURE__*/React.createElement(\"div\", {\n ref: minimumLinesNode,\n className: styles.DummyInput,\n dangerouslySetInnerHTML: {\n __html: getContentsForMinimumLines(minimumLines)\n }\n }) : null;\n const handleHeightCheck = useCallback(() => {\n if (animationFrame.current) {\n cancelAnimationFrame(animationFrame.current);\n }\n\n animationFrame.current = requestAnimationFrame(() => {\n if (!contentNode.current || !minimumLinesNode.current) {\n return;\n }\n\n const newHeight = Math.max(contentNode.current.offsetHeight, minimumLinesNode.current.offsetHeight);\n\n if (newHeight !== currentHeight.current) {\n onHeightChange(newHeight);\n }\n });\n }, [onHeightChange]);\n useLayoutEffect(() => {\n handleHeightCheck();\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n \"aria-hidden\": true,\n className: styles.Resizer\n }, /*#__PURE__*/React.createElement(EventListener, {\n event: \"resize\",\n handler: handleHeightCheck\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: contentNode,\n className: styles.DummyInput,\n dangerouslySetInnerHTML: {\n __html: getFinalContents(contents)\n }\n }), minimumLinesMarkup);\n}\nconst ENTITIES_TO_REPLACE = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\\n': '
',\n '\\r': ''\n};\nconst REPLACE_REGEX = new RegExp(`[${Object.keys(ENTITIES_TO_REPLACE).join()}]`, 'g');\n\nfunction replaceEntity(entity) {\n return ENTITIES_TO_REPLACE[entity];\n}\n\nfunction getContentsForMinimumLines(minimumLines) {\n let content = '';\n\n for (let line = 0; line < minimumLines; line++) {\n content += '
';\n }\n\n return content;\n}\n\nfunction getFinalContents(contents) {\n return contents ? `${contents.replace(REPLACE_REGEX, replaceEntity)}
` : '
';\n}\n\nexport { Resizer };\n","import React, { useState, useRef, useEffect, useCallback, createElement } from 'react';\nimport { CircleCancelMinor } from '@shopify/polaris-icons';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport { useIsAfterInitialMount } from '../../utilities/use-is-after-initial-mount.js';\nimport { Key } from '../../types.js';\nimport styles from './TextField.scss.js';\nimport { Labelled, helpTextID } from '../Labelled/Labelled.js';\nimport { Connected } from '../Connected/Connected.js';\nimport { Spinner } from './components/Spinner/Spinner.js';\nimport { Resizer } from './components/Resizer/Resizer.js';\nimport { labelID } from '../Label/Label.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { useUniqueId } from '../../utilities/unique-id/hooks.js';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden.js';\nimport { Icon } from '../Icon/Icon.js';\n\nfunction TextField({\n prefix,\n suffix,\n placeholder,\n value,\n helpText,\n label,\n labelAction,\n labelHidden,\n disabled,\n clearButton,\n readOnly,\n autoFocus,\n focused,\n multiline,\n error,\n connectedRight,\n connectedLeft,\n type,\n name,\n id: idProp,\n role,\n step,\n autoComplete,\n max,\n maxLength,\n maxHeight,\n min,\n minLength,\n pattern,\n inputMode,\n spellCheck,\n ariaOwns,\n ariaControls,\n ariaExpanded,\n ariaActiveDescendant,\n ariaAutocomplete,\n showCharacterCount,\n align,\n onClearButtonClick,\n onChange,\n onFocus,\n onBlur,\n requiredIndicator,\n monospaced,\n selectTextOnFocus\n}) {\n const i18n = useI18n();\n const [height, setHeight] = useState(null);\n const [focus, setFocus] = useState(Boolean(focused));\n const isAfterInitial = useIsAfterInitialMount();\n const id = useUniqueId('TextField', idProp);\n const inputRef = useRef(null);\n const prefixRef = useRef(null);\n const suffixRef = useRef(null);\n const buttonPressTimer = useRef();\n useEffect(() => {\n const input = inputRef.current;\n if (!input || focused === undefined) return;\n focused ? input.focus() : input.blur();\n }, [focused]); // Use a typeof check here as Typescript mostly protects us from non-stringy\n // values but overzealous usage of `any` in consuming apps means people have\n // been known to pass a number in, so make it clear that doesn't work.\n\n const normalizedValue = typeof value === 'string' ? value : '';\n const normalizedStep = step != null ? step : 1;\n const normalizedMax = max != null ? max : Infinity;\n const normalizedMin = min != null ? min : -Infinity;\n const className = classNames(styles.TextField, Boolean(normalizedValue) && styles.hasValue, disabled && styles.disabled, readOnly && styles.readOnly, error && styles.error, multiline && styles.multiline, focus && styles.focus);\n const inputType = type === 'currency' ? 'text' : type;\n const prefixMarkup = prefix ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Prefix,\n id: `${id}Prefix`,\n ref: prefixRef\n }, prefix) : null;\n const suffixMarkup = suffix ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Suffix,\n id: `${id}Suffix`,\n ref: suffixRef\n }, suffix) : null;\n let characterCountMarkup = null;\n\n if (showCharacterCount) {\n const characterCount = normalizedValue.length;\n const characterCountLabel = maxLength ? i18n.translate('Polaris.TextField.characterCountWithMaxLength', {\n count: characterCount,\n limit: maxLength\n }) : i18n.translate('Polaris.TextField.characterCount', {\n count: characterCount\n });\n const characterCountClassName = classNames(styles.CharacterCount, multiline && styles.AlignFieldBottom);\n const characterCountText = !maxLength ? characterCount : `${characterCount}/${maxLength}`;\n characterCountMarkup = /*#__PURE__*/React.createElement(\"div\", {\n id: `${id}CharacterCounter`,\n className: characterCountClassName,\n \"aria-label\": characterCountLabel,\n \"aria-live\": focus ? 'polite' : 'off',\n \"aria-atomic\": \"true\"\n }, characterCountText);\n }\n\n const clearButtonVisible = normalizedValue !== '';\n const clearButtonClassNames = classNames(styles.ClearButton, !clearButtonVisible && styles.Hidden);\n const clearButtonMarkup = clearButton ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: clearButtonClassNames,\n onClick: handleClearButtonPress,\n disabled: disabled\n }, /*#__PURE__*/React.createElement(VisuallyHidden, null, i18n.translate('Polaris.Common.clear')), /*#__PURE__*/React.createElement(Icon, {\n source: CircleCancelMinor,\n color: \"base\"\n })) : null;\n const handleNumberChange = useCallback(steps => {\n if (onChange == null) {\n return;\n } // Returns the length of decimal places in a number\n\n\n const dpl = num => (num.toString().split('.')[1] || []).length;\n\n const numericValue = value ? parseFloat(value) : 0;\n\n if (isNaN(numericValue)) {\n return;\n } // Making sure the new value has the same length of decimal places as the\n // step / value has.\n\n\n const decimalPlaces = Math.max(dpl(numericValue), dpl(normalizedStep));\n const newValue = Math.min(Number(normalizedMax), Math.max(numericValue + steps * normalizedStep, Number(normalizedMin)));\n onChange(String(newValue.toFixed(decimalPlaces)), id);\n }, [id, normalizedMax, normalizedMin, onChange, normalizedStep, value]);\n const handleButtonRelease = useCallback(() => {\n clearTimeout(buttonPressTimer.current);\n }, []);\n const handleButtonPress = useCallback(onChange => {\n const minInterval = 50;\n const decrementBy = 10;\n let interval = 200;\n\n const onChangeInterval = () => {\n if (interval > minInterval) interval -= decrementBy;\n onChange(0);\n buttonPressTimer.current = window.setTimeout(onChangeInterval, interval);\n };\n\n buttonPressTimer.current = window.setTimeout(onChangeInterval, interval);\n document.addEventListener('mouseup', handleButtonRelease, {\n once: true\n });\n }, [handleButtonRelease]);\n const spinnerMarkup = type === 'number' && step !== 0 && !disabled && !readOnly ? /*#__PURE__*/React.createElement(Spinner, {\n onChange: handleNumberChange,\n onMouseDown: handleButtonPress,\n onMouseUp: handleButtonRelease\n }) : null;\n const style = multiline && height ? {\n height,\n maxHeight\n } : null;\n const handleExpandingResize = useCallback(height => {\n setHeight(height);\n }, []);\n const resizer = multiline && isAfterInitial ? /*#__PURE__*/React.createElement(Resizer, {\n contents: normalizedValue || placeholder,\n currentHeight: height,\n minimumLines: typeof multiline === 'number' ? multiline : 1,\n onHeightChange: handleExpandingResize\n }) : null;\n const describedBy = [];\n\n if (error) {\n describedBy.push(`${id}Error`);\n }\n\n if (helpText) {\n describedBy.push(helpTextID(id));\n }\n\n if (showCharacterCount) {\n describedBy.push(`${id}CharacterCounter`);\n }\n\n const labelledBy = [];\n\n if (prefix) {\n labelledBy.push(`${id}Prefix`);\n }\n\n if (suffix) {\n labelledBy.push(`${id}Suffix`);\n }\n\n labelledBy.unshift(labelID(id));\n const inputClassName = classNames(styles.Input, align && styles[variationName('Input-align', align)], suffix && styles['Input-suffixed'], clearButton && styles['Input-hasClearButton'], monospaced && styles.monospaced);\n\n const handleOnFocus = event => {\n if (selectTextOnFocus) {\n var _inputRef$current;\n\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.select();\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const input = /*#__PURE__*/createElement(multiline ? 'textarea' : 'input', {\n name,\n id,\n disabled,\n readOnly,\n role,\n autoFocus,\n value: normalizedValue,\n placeholder,\n onFocus: handleOnFocus,\n onBlur,\n onKeyPress: handleKeyPress,\n style,\n autoComplete,\n className: inputClassName,\n onChange: handleChange,\n ref: inputRef,\n min,\n max,\n step,\n minLength,\n maxLength,\n spellCheck,\n pattern,\n inputMode,\n type: inputType,\n rows: getRows(multiline),\n 'aria-describedby': describedBy.length ? describedBy.join(' ') : undefined,\n 'aria-labelledby': labelledBy.join(' '),\n 'aria-invalid': Boolean(error),\n 'aria-owns': ariaOwns,\n 'aria-activedescendant': ariaActiveDescendant,\n 'aria-autocomplete': ariaAutocomplete,\n 'aria-controls': ariaControls,\n 'aria-expanded': ariaExpanded,\n 'aria-required': requiredIndicator,\n ...normalizeAriaMultiline(multiline)\n });\n const backdropClassName = classNames(styles.Backdrop, connectedLeft && styles['Backdrop-connectedLeft'], connectedRight && styles['Backdrop-connectedRight']);\n return /*#__PURE__*/React.createElement(Labelled, {\n label: label,\n id: id,\n error: error,\n action: labelAction,\n labelHidden: labelHidden,\n helpText: helpText,\n requiredIndicator: requiredIndicator\n }, /*#__PURE__*/React.createElement(Connected, {\n left: connectedLeft,\n right: connectedRight\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onClick: handleClick\n }, prefixMarkup, input, suffixMarkup, characterCountMarkup, clearButtonMarkup, spinnerMarkup, /*#__PURE__*/React.createElement(\"div\", {\n className: backdropClassName\n }), resizer)));\n\n function handleClearButtonPress() {\n onClearButtonClick && onClearButtonClick(id);\n }\n\n function handleKeyPress(event) {\n const {\n key,\n which\n } = event;\n const numbersSpec = /[\\d.eE+-]$/;\n\n if (type !== 'number' || which === Key.Enter || numbersSpec.test(key)) {\n return;\n }\n\n event.preventDefault();\n }\n\n function containsAffix(target) {\n return target instanceof HTMLElement && (prefixRef.current && prefixRef.current.contains(target) || suffixRef.current && suffixRef.current.contains(target));\n }\n\n function handleChange(event) {\n onChange && onChange(event.currentTarget.value, id);\n }\n\n function handleFocus({\n target\n }) {\n if (containsAffix(target)) {\n return;\n }\n\n setFocus(true);\n }\n\n function handleBlur() {\n setFocus(false);\n }\n\n function handleClick({\n target\n }) {\n var _inputRef$current2;\n\n if (containsAffix(target) || focus) {\n return;\n }\n\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();\n }\n}\n\nfunction normalizeAriaMultiline(multiline) {\n if (!multiline) return undefined;\n return Boolean(multiline) || multiline > 0 ? {\n 'aria-multiline': true\n } : undefined;\n}\n\nfunction getRows(multiline) {\n if (!multiline) return undefined;\n return typeof multiline === 'number' ? multiline : 1;\n}\n\nexport { TextField };\n","const Config = {\n spently: {\n server: 'https://prod-polaris.azurewebsites.net',\n publicApi: 'https://spently-api.azurewebsites.net',\n azureBlobContentFolderUrl:\n 'https://productionpolaris.blob.core.windows.net/image-placeholders',\n reco: 'https://spently-recommendation.azurewebsites.net',\n logging: {\n appInsights: {\n key: '863402c1-b180-46ec-b6f1-bac97326b667',\n },\n googleAnalytics: {\n key: 'G-XWSRENL1DX',\n debug: false,\n },\n fullStory: {\n orgId: 'GE9XS',\n },\n },\n intercom: {\n app_id: 'b287081fcfae01b51848211be18c9fddc0a57832',\n },\n googleAnalytics: {\n tracking_id: 'G-EEJM8WLP14',\n },\n clarityCode: 'pgm4fayln8',\n },\n refersion: {\n publicKey: 'pub_618e816549c52def6036',\n },\n};\n\nexport default Config;\n","/* eslint-disable global-require */\n/* eslint-disable import/no-dynamic-require */\nimport Config from '../../Config';\n\nconst useMocks = true;\n\nexport const setServerUriToSession = () =>\n sessionStorage.setItem('server-uri', Config.spently.server);\n\nexport const getAuthenticatedHeaders = (app) => {\n const authJson = sessionStorage.getItem(`${app}-auth`);\n const shop = sessionStorage.getItem(`${app}-shop`);\n let auth = {};\n if (authJson) {\n auth = JSON.parse(authJson);\n }\n return {\n 'X-Shopify-Access-Token': auth.access_token,\n 'X-Shopify-Shop': shop,\n };\n};\n\nexport const getJson = async (app, endpoint, errorHandler) => {\n if (useMocks) {\n let results = null;\n try {\n results = require(`../../mocks/${endpoint.replace('/api/', '')}.json`);\n } catch (e) {\n // do nothing;\n }\n\n if (results) {\n return results;\n }\n }\n\n const res = await fetch(`${Config[app].server}${endpoint}`, {\n headers: getAuthenticatedHeaders(app),\n });\n if (!res.ok && errorHandler) {\n errorHandler({\n status: res.status,\n statusText: res.statusText,\n });\n return null;\n }\n\n const json = await res.json();\n return json;\n};\n\nexport const postJson = async (app, endpoint, data, errorHandler) => {\n const res = await fetch(`${Config[app].server}${endpoint}`, {\n method: 'POST',\n body: JSON.stringify(data),\n headers: getAuthenticatedHeaders(app),\n });\n if (!res.ok && errorHandler) {\n errorHandler({\n status: res.status,\n statusText: res.statusText,\n });\n return null;\n }\n\n const json = await res.text();\n\n if (json) {\n return JSON.parse(json);\n }\n return {};\n};\n\nexport const putJson = async (app, endpoint, data, errorHandler) => {\n const res = await fetch(`${Config[app].server}${endpoint}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n headers: getAuthenticatedHeaders(app),\n });\n if (!res.ok && errorHandler) {\n errorHandler({\n status: res.status,\n statusText: res.statusText,\n });\n return null;\n }\n\n const json = await res.text();\n\n if (json) {\n return JSON.parse(json);\n }\n return {};\n};\n\nexport const uploadFile = async (app, endpoint, file, errorHandler) => {\n const formData = new FormData();\n formData.append('file', file);\n const res = await fetch(`${Config[app].server}${endpoint}`, {\n method: 'POST',\n body: formData,\n headers: getAuthenticatedHeaders(app),\n });\n if (!res.ok && errorHandler) {\n errorHandler({\n status: res.status,\n statusText: res.statusText,\n });\n return null;\n }\n\n const json = await res.text();\n\n if (json) {\n return JSON.parse(json);\n }\n return {};\n};\n\nexport const deleteJson = async (app, endpoint, errorHandler) => {\n const res = await fetch(`${Config[app].server}${endpoint}`, {\n method: 'DELETE',\n headers: getAuthenticatedHeaders(app),\n });\n if (!res.ok && errorHandler) {\n errorHandler({\n status: res.status,\n statusText: res.statusText,\n });\n return null;\n }\n\n const json = await res.text();\n\n if (json) {\n return JSON.parse(json);\n }\n return {};\n};\n\n/**\n * Downloads a CSV file from the specified endpoint.\n * @param {string} endpoint - The API endpoint to fetch the CSV file.\n * @param {string} fileName - The desired name for the downloaded CSV file.\n */\nexport const downloadCsv = async (endpoint, fileName) => {\n // Construct the full URL for the API endpoint\n const url = `${Config.spently.server}/${endpoint}`;\n\n // Set up the headers for the fetch request, including authentication headers\n const options = {\n headers: getAuthenticatedHeaders('spently'),\n };\n\n // Fetch the CSV file from the specified endpoint\n const res = await fetch(url, options);\n\n // Get the blob (binary large object) data from the response\n const blob = await res.blob();\n\n // Create a link element to simulate a click and trigger the download\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n link.download = fileName;\n\n // Append the link to the document body\n document.body.appendChild(link);\n\n // Simulate a click on the link to trigger the download\n link.click();\n\n // Remove the link element from the document body\n document.body.removeChild(link);\n};\n","import Config from '../../Config';\nimport { postJson } from './rest';\n\nexport const logout = (stay) => {\n sessionStorage.clear();\n if (stay !== false) {\n document.location.reload();\n }\n};\n\nexport const isLoggedIn = (app) => {\n const val = sessionStorage.getItem(`${app}-shop`);\n return !!val;\n};\n\nexport const setMustUpgrade = (app, mustUpgrade) => {\n sessionStorage.setItem(`${app}-mustUpgrade`, mustUpgrade);\n};\n\nexport const handleCode = async (app, shop, successLocation, code) => {\n const results = await postJson(app, `/api/Shopify/Authorize`, {\n store: `${shop}.myshopify.com`,\n code,\n });\n\n // if the authorize result return reload which mean this store just install the app\n // it will need to reload the page to get the new online token\n if (results.reload) {\n // set location to the new location and refresh\n window.location.href = `${window.location.origin}?shop=${shop}`;\n\n return;\n }\n\n sessionStorage.setItem(`${app}-auth`, JSON.stringify(results.token));\n sessionStorage.setItem(`${app}-shop`, shop);\n setMustUpgrade(app, results.mustUpgrade);\n sessionStorage.setItem(`${app}-isOverUsage`, results.isOverUsage);\n sessionStorage.setItem(\n `${app}-featureFlags`,\n results.featureFlags ? JSON.stringify(results.featureFlags.enabled) : '[]'\n );\n sessionStorage.setItem(`${app}-companyId`, results.companyId);\n\n sessionStorage.setItem(`${app}-onboarding`, `${results.onboarding}`);\n\n const ret = sessionStorage.getItem(`${app}-returnUrl`);\n sessionStorage.setItem(\n `${app}-acceptsTermsOfService`,\n results.acceptsTermsOfService\n );\n document.location = ret || successLocation;\n};\n\nexport const login = async (app, shop, successLocation = '/') => {\n if (!shop) {\n return;\n }\n const config = Config[app];\n\n const query = new URLSearchParams(window.location.search);\n const code = query.get('code');\n\n if (!code) {\n if (document.location.pathname !== '/') {\n sessionStorage.setItem(`${app}-returnUrl`, document.location.href);\n }\n const { server } = config;\n\n document.location = `${server}/api/discover?shop=${shop}`;\n } else {\n await handleCode(app, shop, successLocation, code);\n }\n};\n\nexport const checkLogin = async (app, shop, successLocation) => {\n const query = new URLSearchParams(window.location.search);\n const code = query.get('code');\n\n if (code) {\n login(app, shop, successLocation);\n }\n};\n\nexport const getUser = (app) => {\n const json = sessionStorage.getItem(`${app}-auth`);\n if (!json) {\n return null;\n }\n const auth = JSON.parse(json);\n return auth.associated_user;\n};\n\nexport const getShop = (app) => sessionStorage.getItem(`${app}-shop`);\nexport const getCompanyId = (app) => sessionStorage.getItem(`${app}-companyId`);\nexport const getMustUpgrade = (app) =>\n sessionStorage.getItem(`${app}-mustUpgrade`) === 'true';\nexport const getIsOverUsage = () =>\n sessionStorage.getItem('spently-isOverUsage') === 'true';\n// if store need to accept terms of service\nexport const needAcceptsTermsOfService = (app) =>\n sessionStorage.getItem(`${app}-acceptsTermsOfService`) !== 'true';\n// set the acceptsTermsOfService to true after user accept the terms of service\nexport const confirmTermsOfService = (app) =>\n sessionStorage.setItem(`${app}-acceptsTermsOfService`, true);\nexport const getFeature = (feature) => {\n const features = sessionStorage.getItem(`spently-featureFlags`);\n if (!features) {\n return false;\n }\n const fArray = JSON.parse(features);\n\n return fArray.includes(feature);\n};\n\nexport const checkIsPlanUpdated = () => {\n const query = new URLSearchParams(window.location.search);\n const result = query.get('planUpdated') || '';\n return result !== '';\n};\n\n// check if email is from pantastic.com or spentlyhq.com\nexport const isInternalEmail = (email) => {\n if (!email) {\n return false;\n }\n // email is from pantastic.com or spentlyhq.com\n return (\n email.endsWith('@pantastic.com') ||\n email.endsWith('@spentlyhq.com') ||\n email.endsWith('@refersion.com') ||\n email.endsWith('@uporder.com')\n );\n};\n\n// check if user is internal login user\nexport const isInternalLoginUser = (app) => {\n const user = getUser(app);\n // if the user info is not found, return false\n if (user === null) {\n return false;\n }\n\n // eslint-disable-next-line camelcase\n const { email, account_owner } = user;\n\n // if the user is account owner, it's not consider as internal user\n // eslint-disable-next-line camelcase\n if (account_owner) {\n return false;\n }\n\n return isInternalEmail(email);\n};\n","const theme = () => ({\n logo: {\n authLogo: '/images/uporder_logo.svg',\n topBarSource: '/images/uporder_logo_light_topbar.svg',\n url: '/',\n accessibilityLabel: 'UpOrder',\n },\n colors: {\n surface: 'white', // '#004762' : '#f6f6f7',\n primary: 'rgba(0, 121, 163, 1)',\n success: '#004762',\n error: '#FF4559',\n graph: {\n fill: 'rgb(111, 175, 236)',\n border: 'rgb(0, 71, 98)',\n },\n },\n colorScheme: 'light',\n});\n\nexport default theme;\n","import { useEffect } from 'react';\nimport Config from '../Config';\nimport { getShop } from '../framework/util/auth';\n\n/**\n * Component to handle Refersion tracking integration.\n * It dynamically adds a script tag to the HTML document for handling Refersion tracking.\n * The script initializes the Refersion tracking system and sends a checkout event.\n */\nconst Refersion = ({ redirect = false }) => {\n // Retrieves the shop identifier.\n const shop = getShop('spently');\n\n // useEffect hook to handle the side effect of adding a script tag for Refersion tracking.\n useEffect(() => {\n // Checks if the Refersion configuration and public key are available.\n if (!Config.refersion || !Config.refersion.publicKey) {\n return null;\n }\n\n // Creates a script element.\n const inlineScript = document.createElement('script');\n // Sets the innerHTML of the script element with Refersion tracking code.\n inlineScript.innerHTML = `\n function sendRefersionCheckoutEvent(cartID) {\n const rfsn = {\n cart: cartID,\n id: localStorage.getItem(\"rfsn_v4_id\"),\n url: window.location.href,\n aid: localStorage.getItem(\"rfsn_v4_aid\"),\n cs: localStorage.getItem(\"rfsn_v4_cs\")\n };\n r.sendCheckoutEvent(rfsn.cart, rfsn.id, rfsn.url, rfsn.aid, rfsn.cs);\n }\n\n ! function(e, n, t, i, o, c, s, a) {\n e.TrackingSystemObject = \"r\", \n (s = n.createElement(t)).async = 1, \n s.src = \"https://cdn.refersion.com/refersion.js\", \n s.onload = function() {\n \n // Replace with your Refersion Public API Key\n r.pubKey = \"${Config.refersion.publicKey}\";\n \n r.settings.fp_off = true;\n \n r.initializeXDLS().then(() => {\n r.launchDefault().then(() => {\n if(\"${shop}\" !== \"undefined\") {\n sendRefersionCheckoutEvent(\"${shop}-cart\");\n }\n if(${redirect}) {\n document.location = 'https://apps.shopify.com/uporder';\n }\n\n })\n })\n }, (a = n.getElementsByTagName(t)[0]).parentNode.insertBefore(s, a)\n }(window, document, \"script\");\n `;\n // Appends the script element to the document body.\n document.body.appendChild(inlineScript);\n\n // Cleanup function to remove the script element when the component unmounts.\n return () => {\n document.body.removeChild(inlineScript);\n };\n }, [redirect, shop]);\n\n // The component does not render anything.\n return null;\n};\n\nexport default Refersion;\n","import { Form, Button, FormLayout, TextField, Card } from '@shopify/polaris';\nimport React, { useEffect, useState, useCallback } from 'react';\nimport { login } from '../framework/util/auth';\nimport theme from '../framework/util/theme';\nimport Refersion from '../components/Refersion';\n\nconst Auth = () => {\n const query = new URLSearchParams(window.location.search);\n\n const incomingShop = query.get('shop') || '';\n const [loading, setLoading] = useState(false);\n const [shop, setShop] = useState(incomingShop.replace('.myshopify.com', ''));\n const rfid = query.get('rfsn') || '';\n const { logo, colors } = theme();\n\n const handleSubmit = useCallback(async () => {\n if (!shop) {\n return;\n }\n setLoading(true);\n login('spently', shop);\n }, [shop]);\n\n useEffect(() => {\n if (incomingShop) {\n handleSubmit();\n }\n }, [handleSubmit, incomingShop, shop]);\n\n return (\n \n \n \n \n {\n e.preventDefault();\n handleSubmit();\n }}\n >\n \n \"UpOrder\"\n \n\n \n \n \n \n \n {rfid && }\n \n \n );\n};\n\nexport default Auth;\n","import React from 'react';\n\nvar SvgMobileCancelMajor = function SvgMobileCancelMajor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m11.414 10 6.293-6.293a1 1 0 1 0-1.414-1.414l-6.293 6.293-6.293-6.293a1 1 0 0 0-1.414 1.414l6.293 6.293-6.293 6.293a1 1 0 1 0 1.414 1.414l6.293-6.293 6.293 6.293a.998.998 0 0 0 1.707-.707.999.999 0 0 0-.293-.707l-6.293-6.293z\"\n }));\n};\n\nexport { SvgMobileCancelMajor as S };\n","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\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 return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","function setRootProperty(name, value, node) {\n if (!document) return;\n const element = node || document.documentElement;\n element.style.setProperty(name, value);\n}\n\nexport { setRootProperty };\n","var styles = {\n \"Frame\": \"Polaris-Frame\",\n \"Navigation\": \"Polaris-Frame__Navigation\",\n \"hasTopBar\": \"Polaris-Frame--hasTopBar\",\n \"Navigation-enter\": \"Polaris-Frame__Navigation--enter\",\n \"Navigation-enterActive\": \"Polaris-Frame__Navigation--enterActive\",\n \"Navigation-exit\": \"Polaris-Frame__Navigation--exit\",\n \"Navigation-exitActive\": \"Polaris-Frame__Navigation--exitActive\",\n \"NavigationDismiss\": \"Polaris-Frame__NavigationDismiss\",\n \"Navigation-visible\": \"Polaris-Frame__Navigation--visible\",\n \"TopBar\": \"Polaris-Frame__TopBar\",\n \"ContextualSaveBar\": \"Polaris-Frame__ContextualSaveBar\",\n \"Main\": \"Polaris-Frame__Main\",\n \"hasNav\": \"Polaris-Frame--hasNav\",\n \"Content\": \"Polaris-Frame__Content\",\n \"GlobalRibbonContainer\": \"Polaris-Frame__GlobalRibbonContainer\",\n \"LoadingBar\": \"Polaris-Frame__LoadingBar\",\n \"Skip\": \"Polaris-Frame__Skip\",\n \"focused\": \"Polaris-Frame--focused\",\n \"pressed\": \"Polaris-Frame--pressed\"\n};\n\nexport { styles as default };\n","var styles = {\n \"Loading\": \"Polaris-Frame-Loading\",\n \"Level\": \"Polaris-Frame-Loading__Level\"\n};\n\nexport { styles as default };\n","import React, { useState, useEffect } from 'react';\nimport { useIsMountedRef } from '../../../../utilities/use-is-mounted-ref.js';\nimport styles from './Loading.scss.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\n\nconst STUCK_THRESHOLD = 99;\nfunction Loading() {\n const i18n = useI18n();\n const isMountedRef = useIsMountedRef();\n const [progress, setProgress] = useState(0);\n const [animating, setAnimating] = useState(false);\n useEffect(() => {\n if (progress >= STUCK_THRESHOLD || animating) {\n return;\n }\n\n requestAnimationFrame(() => {\n if (!isMountedRef.current) return;\n const step = Math.max((STUCK_THRESHOLD - progress) / 10, 1);\n setAnimating(true);\n setProgress(progress + step);\n });\n }, [progress, animating, isMountedRef]);\n const customStyles = {\n transform: `scaleX(${Math.floor(progress) / 100})`\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Loading,\n \"aria-valuenow\": progress,\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n role: \"progressbar\",\n \"aria-label\": i18n.translate('Polaris.Loading.label')\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Level,\n style: customStyles,\n onTransitionEnd: () => setAnimating(false)\n }));\n}\n\nexport { Loading };\n","import { useRef, useEffect } from 'react';\n\n/**\n * Returns a MutatableRefObject containing a boolean value that\n * represents a components mounted status.\n * @returns MutableRefObject The mounted status\n */\n\nfunction useIsMountedRef() {\n const isMounted = useRef(false);\n useEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMountedRef };\n","var styles = {\n \"startFade\": \"Polaris-Frame-CSSAnimation--startFade\",\n \"endFade\": \"Polaris-Frame-CSSAnimation--endFade\"\n};\n\nexport { styles as default };\n","import React, { useState, useRef, useEffect } from 'react';\nimport { classNames, variationName } from '../../../../utilities/css.js';\nimport styles from './CSSAnimation.scss.js';\n\nvar TransitionStatus;\n\n(function (TransitionStatus) {\n TransitionStatus[\"Entering\"] = \"entering\";\n TransitionStatus[\"Entered\"] = \"entered\";\n TransitionStatus[\"Exiting\"] = \"exiting\";\n TransitionStatus[\"Exited\"] = \"exited\";\n})(TransitionStatus || (TransitionStatus = {}));\n\nfunction CSSAnimation({\n in: inProp,\n className,\n type,\n children\n}) {\n const [transitionStatus, setTransitionStatus] = useState(inProp ? TransitionStatus.Entering : TransitionStatus.Exited);\n const isMounted = useRef(false);\n const node = useRef(null);\n useEffect(() => {\n if (!isMounted.current) return;\n transitionStatus === TransitionStatus.Entering && changeTransitionStatus(TransitionStatus.Entered);\n }, [transitionStatus]);\n useEffect(() => {\n if (!isMounted.current) return;\n inProp && changeTransitionStatus(TransitionStatus.Entering);\n !inProp && changeTransitionStatus(TransitionStatus.Exiting);\n }, [inProp]);\n useEffect(() => {\n isMounted.current = true;\n }, []);\n const wrapperClassName = classNames(className, styles[variationName('start', type)], inProp && styles[variationName('end', type)]);\n const content = transitionStatus === TransitionStatus.Exited && !inProp ? null : children;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperClassName,\n ref: node,\n onTransitionEnd: handleTransitionEnd\n }, content);\n\n function handleTransitionEnd() {\n transitionStatus === TransitionStatus.Exiting && changeTransitionStatus(TransitionStatus.Exited);\n }\n\n function changeTransitionStatus(transitionStatus) {\n setTransitionStatus(transitionStatus); // Forcing a reflow to enable the animation\n\n if (transitionStatus === TransitionStatus.Entering) node.current && node.current.getBoundingClientRect();\n }\n}\n\nexport { CSSAnimation };\n","function isObject(value) {\n const type = typeof value;\n return value != null && (type === 'object' || type === 'function');\n}\n\nexport { isObject };\n","import { isObject } from './is-object.js';\n\nfunction pluckDeep(obj, key) {\n if (!obj) {\n return null;\n }\n\n const keys = Object.keys(obj);\n\n for (const currKey of keys) {\n if (currKey === key) {\n return obj[key];\n }\n\n if (isObject(obj[currKey])) {\n const plucked = pluckDeep(obj[currKey], key);\n\n if (plucked) {\n return plucked;\n }\n }\n }\n\n return null;\n}\n\nexport { pluckDeep };\n","import { pluckDeep } from './pluck-deep.js';\n\nfunction getWidth(value = {}, defaultWidth = 0, key = 'width') {\n const width = typeof value === 'number' ? value : pluckDeep(value, key);\n return width ? `${width}px` : `${defaultWidth}px`;\n}\n\nexport { getWidth };\n","var styles = {\n \"ContextualSaveBar\": \"Polaris-Frame-ContextualSaveBar\",\n \"LogoContainer\": \"Polaris-Frame-ContextualSaveBar__LogoContainer\",\n \"ContextControl\": \"Polaris-Frame-ContextualSaveBar__ContextControl\",\n \"Message\": \"Polaris-Frame-ContextualSaveBar__Message\",\n \"Contents\": \"Polaris-Frame-ContextualSaveBar__Contents\",\n \"fullWidth\": \"Polaris-Frame-ContextualSaveBar--fullWidth\",\n \"ActionContainer\": \"Polaris-Frame-ContextualSaveBar__ActionContainer\",\n \"Action\": \"Polaris-Frame-ContextualSaveBar__Action\"\n};\n\nexport { styles as default };\n","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","var styles = {\n \"BodyWrapper\": \"Polaris-Modal__BodyWrapper\",\n \"Body\": \"Polaris-Modal__Body\",\n \"IFrame\": \"Polaris-Modal__IFrame\",\n \"Spinner\": \"Polaris-Modal__Spinner\"\n};\n\nexport { styles as default };\n","var styles = {\n \"Container\": \"Polaris-Modal-Dialog__Container\",\n \"Dialog\": \"Polaris-Modal-Dialog\",\n \"Modal\": \"Polaris-Modal-Dialog__Modal\",\n \"limitHeight\": \"Polaris-Modal-Dialog--limitHeight\",\n \"sizeSmall\": \"Polaris-Modal-Dialog--sizeSmall\",\n \"sizeLarge\": \"Polaris-Modal-Dialog--sizeLarge\",\n \"animateFadeUp\": \"Polaris-Modal-Dialog--animateFadeUp\",\n \"entering\": \"Polaris-Modal-Dialog--entering\",\n \"exiting\": \"Polaris-Modal-Dialog--exiting\",\n \"exited\": \"Polaris-Modal-Dialog--exited\",\n \"entered\": \"Polaris-Modal-Dialog--entered\"\n};\n\nexport { styles as default };\n","import React, { memo, useEffect } from 'react';\nimport { focusFirstFocusableNode } from '../../utilities/focus.js';\n\nconst Focus = /*#__PURE__*/memo(function Focus({\n children,\n disabled,\n root\n}) {\n useEffect(() => {\n if (disabled || !root) {\n return;\n }\n\n const node = isRef(root) ? root.current : root;\n\n if (!node || node.querySelector('[autofocus]')) {\n return;\n }\n\n focusFirstFocusableNode(node, false);\n }, [disabled, root]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, children);\n});\n\nfunction isRef(ref) {\n return ref.current !== undefined;\n}\n\nexport { Focus };\n","import React, { useRef, useState, useEffect } from 'react';\nimport { Key } from '../../types.js';\nimport { focusFirstFocusableNode, findFirstKeyboardFocusableNode, findLastKeyboardFocusableNode, focusFirstKeyboardFocusableNode, focusLastKeyboardFocusableNode } from '../../utilities/focus.js';\nimport { portal } from '../shared.js';\nimport { useFocusManager } from '../../utilities/focus-manager/hooks.js';\nimport { Focus } from '../Focus/Focus.js';\nimport { EventListener } from '../EventListener/EventListener.js';\nimport { KeypressListener } from '../KeypressListener/KeypressListener.js';\n\nfunction TrapFocus({\n trapping = true,\n children\n}) {\n const {\n canSafelyFocus\n } = useFocusManager({\n trapping\n });\n const focusTrapWrapper = useRef(null);\n const [disableFocus, setDisableFocus] = useState(true);\n useEffect(() => {\n const disable = canSafelyFocus && !(focusTrapWrapper.current && focusTrapWrapper.current.contains(document.activeElement)) ? !trapping : true;\n setDisableFocus(disable);\n }, [canSafelyFocus, trapping]);\n\n const handleFocusIn = event => {\n const containerContentsHaveFocus = focusTrapWrapper.current && focusTrapWrapper.current.contains(document.activeElement);\n\n if (trapping === false || !focusTrapWrapper.current || containerContentsHaveFocus || event.target instanceof Element && event.target.matches(`${portal.selector} *`)) {\n return;\n }\n\n if (canSafelyFocus && event.target instanceof HTMLElement && focusTrapWrapper.current !== event.target && !focusTrapWrapper.current.contains(event.target)) {\n focusFirstFocusableNode(focusTrapWrapper.current);\n }\n };\n\n const handleTab = event => {\n if (trapping === false || !focusTrapWrapper.current) {\n return;\n }\n\n const firstFocusableNode = findFirstKeyboardFocusableNode(focusTrapWrapper.current);\n const lastFocusableNode = findLastKeyboardFocusableNode(focusTrapWrapper.current);\n\n if (event.target === lastFocusableNode && !event.shiftKey) {\n event.preventDefault();\n focusFirstKeyboardFocusableNode(focusTrapWrapper.current);\n }\n\n if (event.target === firstFocusableNode && event.shiftKey) {\n event.preventDefault();\n focusLastKeyboardFocusableNode(focusTrapWrapper.current);\n }\n };\n\n return /*#__PURE__*/React.createElement(Focus, {\n disabled: disableFocus,\n root: focusTrapWrapper.current\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: focusTrapWrapper\n }, /*#__PURE__*/React.createElement(EventListener, {\n event: \"focusin\",\n handler: handleFocusIn\n }), /*#__PURE__*/React.createElement(KeypressListener, {\n keyCode: Key.Tab,\n keyEvent: \"keydown\",\n handler: handleTab\n }), children));\n}\n\nexport { TrapFocus };\n","import { useContext, useMemo, useEffect } from 'react';\nimport { MissingAppProviderError } from '../errors.js';\nimport { FocusManagerContext } from './context.js';\nimport { useUniqueId } from '../unique-id/hooks.js';\n\nfunction useFocusManager({\n trapping\n}) {\n const focusManager = useContext(FocusManagerContext);\n const id = useUniqueId();\n\n if (!focusManager) {\n throw new MissingAppProviderError('No FocusManager was provided.');\n }\n\n const {\n trapFocusList,\n add: addFocusItem,\n remove: removeFocusItem\n } = focusManager;\n const canSafelyFocus = trapFocusList[0] === id;\n const value = useMemo(() => ({\n canSafelyFocus\n }), [canSafelyFocus]);\n useEffect(() => {\n if (!trapping) return;\n addFocusItem(id);\n return () => {\n removeFocusItem(id);\n };\n }, [addFocusItem, id, removeFocusItem, trapping]);\n return value;\n}\n\nexport { useFocusManager };\n","import React, { useRef, useEffect } from 'react';\nimport { Transition, CSSTransition } from 'react-transition-group';\nimport { classNames } from '../../../../utilities/css.js';\nimport { focusFirstFocusableNode } from '../../../../utilities/focus.js';\nimport { Key } from '../../../../types.js';\nimport styles from './Dialog.scss.js';\nimport { tokens } from '../../../../tokens/tokens.js';\nimport { TrapFocus } from '../../../TrapFocus/TrapFocus.js';\nimport { KeypressListener } from '../../../KeypressListener/KeypressListener.js';\n\nfunction Dialog({\n instant,\n labelledBy,\n children,\n onClose,\n onExited,\n onEntered,\n large,\n small,\n limitHeight,\n ...props\n}) {\n const containerNode = useRef(null);\n const classes = classNames(styles.Modal, small && styles.sizeSmall, large && styles.sizeLarge, limitHeight && styles.limitHeight);\n const TransitionChild = instant ? Transition : FadeUp;\n useEffect(() => {\n containerNode.current && !containerNode.current.contains(document.activeElement) && focusFirstFocusableNode(containerNode.current);\n }, []);\n return /*#__PURE__*/React.createElement(TransitionChild, Object.assign({}, props, {\n nodeRef: containerNode,\n mountOnEnter: true,\n unmountOnExit: true,\n timeout: parseInt(tokens.motion['duration-200'], 10),\n onEntered: onEntered,\n onExited: onExited\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Container,\n \"data-polaris-layer\": true,\n \"data-polaris-overlay\": true,\n ref: containerNode\n }, /*#__PURE__*/React.createElement(TrapFocus, null, /*#__PURE__*/React.createElement(\"div\", {\n role: \"dialog\",\n \"aria-modal\": true,\n \"aria-labelledby\": labelledBy,\n tabIndex: -1,\n className: styles.Dialog\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classes\n }, /*#__PURE__*/React.createElement(KeypressListener, {\n keyCode: Key.Escape,\n handler: onClose\n }), children)))));\n}\nconst fadeUpClasses = {\n appear: classNames(styles.animateFadeUp, styles.entering),\n appearActive: classNames(styles.animateFadeUp, styles.entered),\n enter: classNames(styles.animateFadeUp, styles.entering),\n enterActive: classNames(styles.animateFadeUp, styles.entered),\n exit: classNames(styles.animateFadeUp, styles.exiting),\n exitActive: classNames(styles.animateFadeUp, styles.exited)\n};\n\nfunction FadeUp({\n children,\n ...props\n}) {\n return /*#__PURE__*/React.createElement(CSSTransition, Object.assign({}, props, {\n classNames: fadeUpClasses\n }), children);\n}\n\nexport { Dialog };\n","var styles = {\n \"Header\": \"Polaris-Modal-Header\",\n \"titleHidden\": \"Polaris-Modal-Header--titleHidden\",\n \"Title\": \"Polaris-Modal-Header__Title\"\n};\n\nexport { styles as default };\n","var styles = {\n \"CloseButton\": \"Polaris-Modal-CloseButton\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { MobileCancelMajor } from '@shopify/polaris-icons';\nimport styles from './CloseButton.scss.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\nimport { Icon } from '../../../Icon/Icon.js';\n\nfunction CloseButton({\n onClick\n}) {\n const i18n = useI18n();\n return /*#__PURE__*/React.createElement(\"button\", {\n onClick: onClick,\n className: styles.CloseButton,\n \"aria-label\": i18n.translate('Polaris.Common.close')\n }, /*#__PURE__*/React.createElement(Icon, {\n source: MobileCancelMajor,\n color: \"base\"\n }));\n}\n\nexport { CloseButton };\n","var styles = {\n \"DisplayText\": \"Polaris-DisplayText\",\n \"sizeSmall\": \"Polaris-DisplayText--sizeSmall\",\n \"sizeMedium\": \"Polaris-DisplayText--sizeMedium\",\n \"sizeLarge\": \"Polaris-DisplayText--sizeLarge\",\n \"sizeExtraLarge\": \"Polaris-DisplayText--sizeExtraLarge\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport styles from './DisplayText.scss.js';\n\nfunction DisplayText({\n element: Element = 'p',\n children,\n size = 'medium'\n}) {\n const className = classNames(styles.DisplayText, size && styles[variationName('size', size)]);\n return /*#__PURE__*/React.createElement(Element, {\n className: className\n }, children);\n}\n\nexport { DisplayText };\n","import React from 'react';\nimport styles from './Header.scss.js';\nimport { CloseButton } from '../CloseButton/CloseButton.js';\nimport { DisplayText } from '../../../DisplayText/DisplayText.js';\n\nfunction Header({\n id,\n titleHidden,\n children,\n onClose\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: titleHidden || !children ? styles.titleHidden : styles.Header\n }, /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: styles.Title\n }, /*#__PURE__*/React.createElement(DisplayText, {\n element: \"h2\",\n size: \"small\"\n }, children)), /*#__PURE__*/React.createElement(CloseButton, {\n onClick: onClose\n }));\n}\n\nexport { Header };\n","var styles = {\n \"Section\": \"Polaris-Modal-Section\",\n \"subdued\": \"Polaris-Modal-Section--subdued\",\n \"flush\": \"Polaris-Modal-Section--flush\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from './Section.scss.js';\n\nfunction Section({\n children,\n flush = false,\n subdued = false\n}) {\n const className = classNames(styles.Section, flush && styles.flush, subdued && styles.subdued);\n return /*#__PURE__*/React.createElement(\"section\", {\n className: className\n }, children);\n}\n\nexport { Section };\n","var styles = {\n \"Footer\": \"Polaris-Modal-Footer\",\n \"FooterContent\": \"Polaris-Modal-Footer__FooterContent\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport styles from './Footer.scss.js';\nimport { buttonsFrom } from '../../../Button/utils.js';\nimport { Stack } from '../../../Stack/Stack.js';\nimport { ButtonGroup } from '../../../ButtonGroup/ButtonGroup.js';\n\nfunction Footer({\n primaryAction,\n secondaryActions,\n children\n}) {\n const primaryActionButton = primaryAction && buttonsFrom(primaryAction, {\n primary: true\n }) || null;\n const secondaryActionButtons = secondaryActions && buttonsFrom(secondaryActions) || null;\n const actions = primaryActionButton || secondaryActionButtons ? /*#__PURE__*/React.createElement(ButtonGroup, null, secondaryActionButtons, primaryActionButton) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Footer\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.FooterContent\n }, /*#__PURE__*/React.createElement(Stack, {\n alignment: \"center\"\n }, /*#__PURE__*/React.createElement(Stack.Item, {\n fill: true\n }, children), actions)));\n}\n\nexport { Footer };\n","var styles = {\n \"Backdrop\": \"Polaris-Backdrop\",\n \"fade-in\": \"Polaris-Backdrop__fade--in\",\n \"transparent\": \"Polaris-Backdrop--transparent\",\n \"belowNavigation\": \"Polaris-Backdrop--belowNavigation\"\n};\n\nexport { styles as default };\n","import { useEffect } from 'react';\nimport './ScrollLock.scss.js';\nimport { useScrollLockManager } from '../../utilities/scroll-lock-manager/hooks.js';\n\n// Even though this has no args, reference ScrollLockProps so the prop explorer\n// in the styleguide works without warnings about unfound props\nfunction ScrollLock(_) {\n const scrollLockManager = useScrollLockManager();\n useEffect(() => {\n scrollLockManager.registerScrollLock();\n return () => {\n scrollLockManager.unregisterScrollLock();\n };\n }, [scrollLockManager]);\n return null;\n}\n\nexport { ScrollLock };\n","import { useContext } from 'react';\nimport { MissingAppProviderError } from '../errors.js';\nimport { ScrollLockManagerContext } from './context.js';\n\nfunction useScrollLockManager() {\n const scrollLockManager = useContext(ScrollLockManagerContext);\n\n if (!scrollLockManager) {\n throw new MissingAppProviderError('No ScrollLockManager was provided.');\n }\n\n return scrollLockManager;\n}\n\nexport { useScrollLockManager };\n","import React from 'react';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './Backdrop.scss.js';\nimport { ScrollLock } from '../ScrollLock/ScrollLock.js';\n\nfunction Backdrop(props) {\n const {\n onClick,\n onTouchStart,\n belowNavigation,\n transparent\n } = props;\n const className = classNames(styles.Backdrop, belowNavigation && styles.belowNavigation, transparent && styles.transparent);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ScrollLock, null), /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n onClick: onClick,\n onTouchStart: onTouchStart\n }));\n}\n\nexport { Backdrop };\n","import React, { useState, useRef, useCallback } from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport { focusFirstFocusableNode } from '../../utilities/focus.js';\nimport { useUniqueId } from '../../utilities/unique-id/hooks.js';\nimport { WithinContentContext } from '../../utilities/within-content-context.js';\nimport { wrapWithComponent } from '../../utilities/components.js';\nimport styles from './Modal.scss.js';\nimport { Dialog } from './components/Dialog/Dialog.js';\nimport { Header } from './components/Header/Header.js';\nimport { Section } from './components/Section/Section.js';\nimport { Footer } from './components/Footer/Footer.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Spinner } from '../Spinner/Spinner.js';\nimport { Scrollable } from '../Scrollable/Scrollable.js';\nimport { Portal } from '../Portal/Portal.js';\nimport { Backdrop } from '../Backdrop/Backdrop.js';\n\nconst IFRAME_LOADING_HEIGHT = 200;\nconst DEFAULT_IFRAME_CONTENT_HEIGHT = 400;\nconst Modal = function Modal({\n children,\n title,\n titleHidden = false,\n src,\n iFrameName,\n open,\n instant,\n sectioned,\n loading,\n large,\n small,\n limitHeight,\n footer,\n primaryAction,\n secondaryActions,\n onScrolledToBottom,\n activator,\n onClose,\n onIFrameLoad,\n onTransitionEnd,\n noScroll\n}) {\n const [iframeHeight, setIframeHeight] = useState(IFRAME_LOADING_HEIGHT);\n const headerId = useUniqueId('modal-header');\n const activatorRef = useRef(null);\n const i18n = useI18n();\n const iframeTitle = i18n.translate('Polaris.Modal.iFrameTitle');\n let dialog;\n let backdrop;\n const handleEntered = useCallback(() => {\n if (onTransitionEnd) {\n onTransitionEnd();\n }\n }, [onTransitionEnd]);\n const handleExited = useCallback(() => {\n setIframeHeight(IFRAME_LOADING_HEIGHT);\n const activatorElement = activator && isRef(activator) ? activator && activator.current : activatorRef.current;\n\n if (activatorElement) {\n requestAnimationFrame(() => focusFirstFocusableNode(activatorElement));\n }\n }, [activator]);\n const handleIFrameLoad = useCallback(evt => {\n const iframe = evt.target;\n\n if (iframe && iframe.contentWindow) {\n try {\n setIframeHeight(iframe.contentWindow.document.body.scrollHeight);\n } catch (_error) {\n setIframeHeight(DEFAULT_IFRAME_CONTENT_HEIGHT);\n }\n }\n\n if (onIFrameLoad != null) {\n onIFrameLoad(evt);\n }\n }, [onIFrameLoad]);\n\n if (open) {\n const footerMarkup = !footer && !primaryAction && !secondaryActions ? null : /*#__PURE__*/React.createElement(Footer, {\n primaryAction: primaryAction,\n secondaryActions: secondaryActions\n }, footer);\n const content = sectioned ? wrapWithComponent(children, Section, {}) : children;\n const body = loading ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Spinner\n }, /*#__PURE__*/React.createElement(Spinner, null)) : content;\n const scrollContainerMarkup = noScroll ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Body\n }, body) : /*#__PURE__*/React.createElement(Scrollable, {\n shadow: true,\n className: styles.Body,\n onScrolledToBottom: onScrolledToBottom\n }, body);\n const bodyMarkup = src ? /*#__PURE__*/React.createElement(\"iframe\", {\n name: iFrameName,\n title: iframeTitle,\n src: src,\n className: styles.IFrame,\n onLoad: handleIFrameLoad,\n style: {\n height: `${iframeHeight}px`\n }\n }) : scrollContainerMarkup;\n dialog = /*#__PURE__*/React.createElement(Dialog, {\n instant: instant,\n labelledBy: headerId,\n onClose: onClose,\n onEntered: handleEntered,\n onExited: handleExited,\n large: large,\n small: small,\n limitHeight: limitHeight\n }, /*#__PURE__*/React.createElement(Header, {\n titleHidden: titleHidden,\n id: headerId,\n onClose: onClose\n }, title), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.BodyWrapper\n }, bodyMarkup), footerMarkup);\n backdrop = /*#__PURE__*/React.createElement(Backdrop, null);\n }\n\n const animated = !instant;\n const activatorMarkup = activator && !isRef(activator) ? /*#__PURE__*/React.createElement(\"div\", {\n ref: activatorRef\n }, activator) : null;\n return /*#__PURE__*/React.createElement(WithinContentContext.Provider, {\n value: true\n }, activatorMarkup, /*#__PURE__*/React.createElement(Portal, {\n idPrefix: \"modal\"\n }, /*#__PURE__*/React.createElement(TransitionGroup, {\n appear: animated,\n enter: animated,\n exit: animated\n }, dialog), backdrop));\n};\n\nfunction isRef(ref) {\n return Object.prototype.hasOwnProperty.call(ref, 'current');\n}\n\nModal.Section = Section;\n\nexport { Modal };\n","import React from 'react';\nimport { Modal } from '../../../../../Modal/Modal.js';\nimport { useI18n } from '../../../../../../utilities/i18n/hooks.js';\n\nfunction DiscardConfirmationModal({\n open,\n onDiscard,\n onCancel\n}) {\n const i18n = useI18n();\n return /*#__PURE__*/React.createElement(Modal, {\n title: i18n.translate('Polaris.DiscardConfirmationModal.title'),\n open: open,\n onClose: onCancel,\n primaryAction: {\n content: i18n.translate('Polaris.DiscardConfirmationModal.primaryAction'),\n destructive: true,\n onAction: onDiscard\n },\n secondaryActions: [{\n content: i18n.translate('Polaris.DiscardConfirmationModal.secondaryAction'),\n onAction: onCancel\n }],\n sectioned: true\n }, i18n.translate('Polaris.DiscardConfirmationModal.message'));\n}\n\nexport { DiscardConfirmationModal };\n","import { createContext } from 'react';\n\nconst FrameContext = /*#__PURE__*/createContext(undefined);\n\nexport { FrameContext };\n","import { useContext } from 'react';\nimport { FrameContext } from './context.js';\n\nfunction useFrame() {\n const frame = useContext(FrameContext);\n\n if (!frame) {\n throw new Error('No Frame context was provided. Your component must be wrapped in a component. See https://polaris.shopify.com/components/structure/frame for implementation instructions.');\n }\n\n return frame;\n}\n\nexport { useFrame };\n","import React from 'react';\n\nfunction Image({\n sourceSet,\n source,\n crossOrigin,\n ...rest\n}) {\n const finalSourceSet = sourceSet ? sourceSet.map(({\n source: subSource,\n descriptor\n }) => `${subSource} ${descriptor}`).join(',') : null;\n return finalSourceSet ?\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/alt-text\n React.createElement(\"img\", Object.assign({\n src: source,\n srcSet: finalSourceSet,\n crossOrigin: crossOrigin\n }, rest)) :\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/alt-text\n React.createElement(\"img\", Object.assign({\n src: source\n }, rest, {\n crossOrigin: crossOrigin\n }));\n}\n\nexport { Image };\n","import React, { useCallback } from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport { getWidth } from '../../../../utilities/get-width.js';\nimport { useToggle } from '../../../../utilities/use-toggle.js';\nimport styles from './ContextualSaveBar.scss.js';\nimport { DiscardConfirmationModal } from './components/DiscardConfirmationModal/DiscardConfirmationModal.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\nimport { useFrame } from '../../../../utilities/frame/hooks.js';\nimport { Button } from '../../../Button/Button.js';\nimport { Image } from '../../../Image/Image.js';\nimport { CustomProperties } from '../../../CustomProperties/CustomProperties.js';\nimport { Stack } from '../../../Stack/Stack.js';\n\nfunction ContextualSaveBar({\n alignContentFlush,\n message,\n saveAction,\n discardAction,\n fullWidth,\n contextControl,\n secondaryMenu\n}) {\n const i18n = useI18n();\n const {\n logo\n } = useFrame();\n const {\n value: discardConfirmationModalVisible,\n toggle: toggleDiscardConfirmationModal,\n setFalse: closeDiscardConfirmationModal\n } = useToggle(false);\n const handleDiscardAction = useCallback(() => {\n if (discardAction && discardAction.onAction) {\n discardAction.onAction();\n }\n\n closeDiscardConfirmationModal();\n }, [closeDiscardConfirmationModal, discardAction]);\n const discardActionContent = discardAction && discardAction.content ? discardAction.content : i18n.translate('Polaris.ContextualSaveBar.discard');\n let discardActionHandler;\n\n if (discardAction && discardAction.discardConfirmationModal) {\n discardActionHandler = toggleDiscardConfirmationModal;\n } else if (discardAction) {\n discardActionHandler = discardAction.onAction;\n }\n\n const discardConfirmationModalMarkup = discardAction && discardAction.onAction && discardAction.discardConfirmationModal && /*#__PURE__*/React.createElement(DiscardConfirmationModal, {\n open: discardConfirmationModalVisible,\n onCancel: toggleDiscardConfirmationModal,\n onDiscard: handleDiscardAction\n });\n const discardActionMarkup = discardAction && /*#__PURE__*/React.createElement(Button, {\n url: discardAction.url,\n onClick: discardActionHandler,\n loading: discardAction.loading,\n disabled: discardAction.disabled,\n accessibilityLabel: discardAction.content\n }, discardActionContent);\n const saveActionContent = saveAction && saveAction.content ? saveAction.content : i18n.translate('Polaris.ContextualSaveBar.save');\n const saveActionMarkup = saveAction && /*#__PURE__*/React.createElement(Button, {\n primary: true,\n url: saveAction.url,\n onClick: saveAction.onAction,\n loading: saveAction.loading,\n disabled: saveAction.disabled,\n accessibilityLabel: saveAction.content\n }, saveActionContent);\n const width = getWidth(logo, 104);\n const imageMarkup = logo && /*#__PURE__*/React.createElement(Image, {\n style: {\n width\n },\n source: logo.contextualSaveBarSource || '',\n alt: \"\"\n });\n const logoMarkup = alignContentFlush || contextControl ? null : /*#__PURE__*/React.createElement(\"div\", {\n className: styles.LogoContainer,\n style: {\n width\n }\n }, imageMarkup);\n const contextControlMarkup = contextControl ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ContextControl\n }, contextControl) : null;\n const contentsClassName = classNames(styles.Contents, fullWidth && styles.fullWidth);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CustomProperties, {\n colorScheme: \"dark\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ContextualSaveBar\n }, contextControlMarkup, logoMarkup, /*#__PURE__*/React.createElement(\"div\", {\n className: contentsClassName\n }, /*#__PURE__*/React.createElement(\"h2\", {\n className: styles.Message\n }, message), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ActionContainer\n }, /*#__PURE__*/React.createElement(Stack, {\n spacing: \"tight\",\n wrap: false\n }, secondaryMenu, discardActionMarkup, saveActionMarkup))))), discardConfirmationModalMarkup);\n}\n\nexport { ContextualSaveBar };\n","import { useRef } from 'react';\nimport isEqual from 'lodash/isEqual';\n\n/**\n * Allows for custom or deep comparison of a dependency list. Useful to keep a consistent dependency\n * list across reference changes.\n * @param dependencies A dependency array similar to React's useEffect / useCallback / useMemo\n * @param comparator An optional function to compare dependencies that'll default to a deep comparison\n * @returns A dependency list\n * @see {@link https://github.com/Shopify/polaris-react/blob/main/src/utilities/use-deep-effect.tsx}\n * @see {@link https://github.com/Shopify/polaris-react/blob/main/src/utilities/use-deep-callback.tsx}\n * @example\n * function useDeepEffectExample(callback, dependencies, customCompare) {\n * useEffect(callback, useDeepCompareRef(dependencies, customCompare));\n * }\n */\nfunction useDeepCompareRef(dependencies, comparator = isEqual) {\n const dependencyList = useRef(dependencies);\n\n if (!comparator(dependencyList.current, dependencies)) {\n dependencyList.current = dependencies;\n }\n\n return dependencyList.current;\n}\n\nexport { useDeepCompareRef };\n","import { useEffect } from 'react';\nimport { useDeepCompareRef } from './use-deep-compare-ref.js';\n\n/**\n * A replacement for React's useEffect that'll allow for custom and deep\n * compares of the dependency list.\n * @see {@link https://reactjs.org/docs/hooks-reference.html#useeffect}\n * @param callback Accepts a callback that's forwarded to React's useEffect\n * @param dependencies A dependency array similar to React's useEffect however it utilizes a deep compare\n * @param customCompare Opportunity to provide a custom compare function\n * @example\n * function ComponentExample() {\n * const [, forceUpdate] = useState();\n * const obj = {a: 1};\n *\n * useDeepEffect(() => {\n * console.log('useDeepEffect invocation');\n * forceUpdate(obj);\n * }, [obj]);\n *\n * return null;\n * }\n */\nfunction useDeepEffect(callback, dependencies, customCompare) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(callback, useDeepCompareRef(dependencies, customCompare));\n}\n\nexport { useDeepEffect };\n","var styles = {\n \"ToastManager\": \"Polaris-Frame-ToastManager\",\n \"ToastWrapper\": \"Polaris-Frame-ToastManager__ToastWrapper\",\n \"ToastWrapper-enter\": \"Polaris-Frame-ToastManager__ToastWrapper--enter\",\n \"ToastWrapper-exit\": \"Polaris-Frame-ToastManager__ToastWrapper--exit\",\n \"ToastWrapper-enter-done\": \"Polaris-Frame-ToastManager--toastWrapperEnterDone\"\n};\n\nexport { styles as default };\n","var styles = {\n \"Toast\": \"Polaris-Frame-Toast\",\n \"Action\": \"Polaris-Frame-Toast__Action\",\n \"error\": \"Polaris-Frame-Toast--error\",\n \"CloseButton\": \"Polaris-Frame-Toast__CloseButton\"\n};\n\nexport { styles as default };\n","import React, { useEffect } from 'react';\nimport { MobileCancelMajor } from '@shopify/polaris-icons';\nimport { classNames } from '../../../../utilities/css.js';\nimport { Key } from '../../../../types.js';\nimport styles from './Toast.scss.js';\nimport { Icon } from '../../../Icon/Icon.js';\nimport { Button } from '../../../Button/Button.js';\nimport { CustomProperties } from '../../../CustomProperties/CustomProperties.js';\nimport { KeypressListener } from '../../../KeypressListener/KeypressListener.js';\n\nconst DEFAULT_TOAST_DURATION = 5000;\nconst DEFAULT_TOAST_DURATION_WITH_ACTION = 10000;\nfunction Toast({\n content,\n onDismiss,\n duration,\n error,\n action\n}) {\n useEffect(() => {\n let timeoutDuration = duration || DEFAULT_TOAST_DURATION;\n\n if (action && !duration) {\n timeoutDuration = DEFAULT_TOAST_DURATION_WITH_ACTION;\n } else if (action && duration && duration < DEFAULT_TOAST_DURATION_WITH_ACTION) {\n // eslint-disable-next-line no-console\n console.log('Toast with action should persist for at least 10,000 milliseconds to give the merchant enough time to act on it.');\n }\n\n const timer = setTimeout(onDismiss, timeoutDuration);\n return () => {\n clearTimeout(timer);\n };\n }, [action, duration, onDismiss]);\n const dismissMarkup = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: styles.CloseButton,\n onClick: onDismiss\n }, /*#__PURE__*/React.createElement(Icon, {\n source: MobileCancelMajor\n }));\n const actionMarkup = action ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Action\n }, /*#__PURE__*/React.createElement(Button, {\n plain: true,\n monochrome: true,\n onClick: action.onAction\n }, action.content)) : null;\n const className = classNames(styles.Toast, error && styles.error);\n return /*#__PURE__*/React.createElement(CustomProperties, {\n colorScheme: \"dark\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(KeypressListener, {\n keyCode: Key.Escape,\n handler: onDismiss\n }), content, actionMarkup, dismissMarkup));\n}\n\nexport { DEFAULT_TOAST_DURATION, DEFAULT_TOAST_DURATION_WITH_ACTION, Toast };\n","import React, { memo, createRef } from 'react';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport { classNames } from '../../../../utilities/css.js';\nimport { useDeepEffect } from '../../../../utilities/use-deep-effect.js';\nimport { useDeepCallback } from '../../../../utilities/use-deep-callback.js';\nimport styles from './ToastManager.scss.js';\nimport { Toast } from '../Toast/Toast.js';\nimport { Portal } from '../../../Portal/Portal.js';\nimport { EventListener } from '../../../EventListener/EventListener.js';\n\nconst ToastManager = /*#__PURE__*/memo(function ToastManager({\n toastMessages\n}) {\n const toastNodes = [];\n const updateToasts = useDeepCallback(() => {\n let targetInPos = 0;\n toastMessages.forEach((_, index) => {\n const currentToast = toastNodes[index];\n if (!currentToast.current) return;\n targetInPos += currentToast.current.clientHeight;\n currentToast.current.style.setProperty('--pc-toast-manager-translate-y-in', `-${targetInPos}px`);\n currentToast.current.style.setProperty('--pc-toast-manager-translate-y-out', `${-targetInPos + 150}px`);\n });\n }, [toastMessages, toastNodes]);\n useDeepEffect(() => {\n updateToasts();\n }, [toastMessages]);\n const toastsMarkup = toastMessages.map((toast, index) => {\n const toastNode = /*#__PURE__*/createRef();\n toastNodes[index] = toastNode;\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: toastNodes[index],\n key: toast.id,\n timeout: {\n enter: 0,\n exit: 400\n },\n classNames: toastClasses\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: toastNode\n }, /*#__PURE__*/React.createElement(Toast, toast)));\n });\n return /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement(EventListener, {\n event: \"resize\",\n handler: updateToasts\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ToastManager,\n \"aria-live\": \"assertive\"\n }, /*#__PURE__*/React.createElement(TransitionGroup, {\n component: null\n }, toastsMarkup)));\n});\nconst toastClasses = {\n enter: classNames(styles.ToastWrapper, styles['ToastWrapper-enter']),\n enterDone: classNames(styles.ToastWrapper, styles['ToastWrapper-enter-done']),\n exit: classNames(styles.ToastWrapper, styles['ToastWrapper-exit'])\n};\n\nexport { ToastManager };\n","import { useCallback } from 'react';\nimport { useDeepCompareRef } from './use-deep-compare-ref.js';\n\n/**\n * A replacement for React's useCallback that'll allow for custom and deep compares.\n * @see {@link https://reactjs.org/docs/hooks-reference.html#usecallback}\n * @param callback Accepts a callback that's forwarded to React's useCallback\n * @param dependencies A dependency array similar to React's useCallback however it utilizes a deep compare\n * @param customCompare Opportunity to provide a custom compare function\n * @returns A memoized callback\n * @example\n * const Child = memo(function Child({onClick}) {\n * console.log('Child has rendered.');\n * return ;\n * });\n *\n * function ComponentExample() {\n * const [timesClicked, setTimesClicked] = useState(0);\n *\n * const handleClick = useDeepCallback(() => {\n * setTimesClicked((timesClicked) => timesClicked + 1);\n * // New reference every render\n * }, [{}]);\n *\n * return (\n * <>\n *
Times clicked: {timesClicked}
\n * \n * \n * );\n * }\n */\n\nfunction useDeepCallback(callback, dependencies, customCompare) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useCallback(callback, useDeepCompareRef(dependencies, customCompare));\n}\n\nexport { useDeepCallback };\n","import { useContext } from 'react';\nimport { MediaQueryContext } from './context.js';\n\nfunction useMediaQuery() {\n const mediaQuery = useContext(MediaQueryContext);\n\n if (!mediaQuery) {\n throw new Error('No mediaQuery was provided. Your application must be wrapped in an component. See https://polaris.shopify.com/components/structure/app-provider for implementation instructions.');\n }\n\n return mediaQuery;\n}\n\nexport { useMediaQuery };\n","import React, { PureComponent, createRef } from 'react';\nimport { MobileCancelMajor } from '@shopify/polaris-icons';\nimport { CSSTransition } from 'react-transition-group';\nimport { classNames } from '../../utilities/css.js';\nimport { layer, dataPolarisTopBar } from '../shared.js';\nimport { setRootProperty } from '../../utilities/set-root-property.js';\nimport styles from './Frame.scss.js';\nimport { Loading } from './components/Loading/Loading.js';\nimport { CSSAnimation } from './components/CSSAnimation/CSSAnimation.js';\nimport { ContextualSaveBar } from './components/ContextualSaveBar/ContextualSaveBar.js';\nimport { FrameContext } from '../../utilities/frame/context.js';\nimport { ToastManager } from './components/ToastManager/ToastManager.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { useMediaQuery } from '../../utilities/media-query/hooks.js';\nimport { TrapFocus } from '../TrapFocus/TrapFocus.js';\nimport { tokens } from '../../tokens/tokens.js';\nimport { Icon } from '../Icon/Icon.js';\nimport { Backdrop } from '../Backdrop/Backdrop.js';\nimport { EventListener } from '../EventListener/EventListener.js';\n\nconst APP_FRAME_MAIN = 'AppFrameMain';\nconst APP_FRAME_NAV = 'AppFrameNav';\nconst APP_FRAME_TOP_BAR = 'AppFrameTopBar';\nconst APP_FRAME_LOADING_BAR = 'AppFrameLoadingBar';\n\nclass FrameInner extends PureComponent {\n constructor(...args) {\n super(...args);\n this.state = {\n skipFocused: false,\n globalRibbonHeight: 0,\n loadingStack: 0,\n toastMessages: [],\n showContextualSaveBar: false\n };\n this.contextualSaveBar = null;\n this.globalRibbonContainer = null;\n this.navigationNode = /*#__PURE__*/createRef();\n\n this.setGlobalRibbonHeight = () => {\n const {\n globalRibbonContainer\n } = this;\n\n if (globalRibbonContainer) {\n this.setState({\n globalRibbonHeight: globalRibbonContainer.offsetHeight\n }, this.setGlobalRibbonRootProperty);\n }\n };\n\n this.setOffset = () => {\n const {\n offset = '0px'\n } = this.props;\n setRootProperty('--pc-frame-offset', offset);\n };\n\n this.setGlobalRibbonRootProperty = () => {\n const {\n globalRibbonHeight\n } = this.state;\n setRootProperty('--pc-frame-global-ribbon-height', `${globalRibbonHeight}px`);\n };\n\n this.showToast = toast => {\n this.setState(({\n toastMessages\n }) => {\n const hasToastById = toastMessages.find(({\n id\n }) => id === toast.id) != null;\n return {\n toastMessages: hasToastById ? toastMessages : [...toastMessages, toast]\n };\n });\n };\n\n this.hideToast = ({\n id\n }) => {\n this.setState(({\n toastMessages\n }) => {\n return {\n toastMessages: toastMessages.filter(({\n id: toastId\n }) => id !== toastId)\n };\n });\n };\n\n this.setContextualSaveBar = props => {\n const {\n showContextualSaveBar\n } = this.state;\n this.contextualSaveBar = { ...props\n };\n\n if (showContextualSaveBar === true) {\n this.forceUpdate();\n } else {\n this.setState({\n showContextualSaveBar: true\n });\n }\n };\n\n this.removeContextualSaveBar = () => {\n this.contextualSaveBar = null;\n this.setState({\n showContextualSaveBar: false\n });\n };\n\n this.startLoading = () => {\n this.setState(({\n loadingStack\n }) => ({\n loadingStack: loadingStack + 1\n }));\n };\n\n this.stopLoading = () => {\n this.setState(({\n loadingStack\n }) => ({\n loadingStack: Math.max(0, loadingStack - 1)\n }));\n };\n\n this.handleResize = () => {\n if (this.props.globalRibbon) {\n this.setGlobalRibbonHeight();\n }\n };\n\n this.handleFocus = () => {\n this.setState({\n skipFocused: true\n });\n };\n\n this.handleBlur = () => {\n this.setState({\n skipFocused: false\n });\n };\n\n this.handleClick = event => {\n const {\n skipToContentTarget\n } = this.props;\n\n if (skipToContentTarget && skipToContentTarget.current) {\n skipToContentTarget.current.focus();\n event === null || event === void 0 ? void 0 : event.preventDefault();\n }\n };\n\n this.handleNavigationDismiss = () => {\n const {\n onNavigationDismiss\n } = this.props;\n\n if (onNavigationDismiss != null) {\n onNavigationDismiss();\n }\n };\n\n this.setGlobalRibbonContainer = node => {\n this.globalRibbonContainer = node;\n };\n\n this.handleNavKeydown = event => {\n const {\n key\n } = event;\n const {\n mediaQuery: {\n isNavigationCollapsed\n },\n showMobileNavigation\n } = this.props;\n const mobileNavShowing = isNavigationCollapsed && showMobileNavigation;\n\n if (mobileNavShowing && key === 'Escape') {\n this.handleNavigationDismiss();\n }\n };\n }\n\n componentDidMount() {\n this.handleResize();\n\n if (this.props.globalRibbon) {\n return;\n }\n\n this.setGlobalRibbonRootProperty();\n this.setOffset();\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.globalRibbon !== prevProps.globalRibbon) {\n this.setGlobalRibbonHeight();\n }\n\n this.setOffset();\n }\n\n render() {\n const {\n skipFocused,\n loadingStack,\n toastMessages,\n showContextualSaveBar\n } = this.state;\n const {\n logo,\n children,\n navigation,\n topBar,\n globalRibbon,\n showMobileNavigation = false,\n skipToContentTarget,\n i18n,\n mediaQuery: {\n isNavigationCollapsed\n }\n } = this.props;\n const navClassName = classNames(styles.Navigation, showMobileNavigation && styles['Navigation-visible']);\n const mobileNavHidden = isNavigationCollapsed && !showMobileNavigation;\n const mobileNavShowing = isNavigationCollapsed && showMobileNavigation;\n const tabIndex = mobileNavShowing ? 0 : -1;\n const mobileNavAttributes = { ...(mobileNavShowing && {\n 'aria-modal': true,\n role: 'dialog'\n })\n };\n const navigationMarkup = navigation ? /*#__PURE__*/React.createElement(TrapFocus, {\n trapping: mobileNavShowing\n }, /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.navigationNode,\n appear: isNavigationCollapsed,\n exit: isNavigationCollapsed,\n in: showMobileNavigation,\n timeout: parseInt(tokens.motion['duration-300'], 10),\n classNames: navTransitionClasses\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({\n key: \"NavContent\"\n }, mobileNavAttributes, {\n \"aria-label\": i18n.translate('Polaris.Frame.navigationLabel'),\n ref: this.navigationNode,\n className: navClassName,\n onKeyDown: this.handleNavKeydown,\n id: APP_FRAME_NAV,\n hidden: mobileNavHidden\n }), navigation, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: styles.NavigationDismiss,\n onClick: this.handleNavigationDismiss,\n \"aria-hidden\": mobileNavHidden || !isNavigationCollapsed && !showMobileNavigation,\n \"aria-label\": i18n.translate('Polaris.Frame.Navigation.closeMobileNavigationLabel'),\n tabIndex: tabIndex\n }, /*#__PURE__*/React.createElement(Icon, {\n source: MobileCancelMajor\n }))))) : null;\n const loadingMarkup = loadingStack > 0 ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.LoadingBar,\n id: APP_FRAME_LOADING_BAR\n }, /*#__PURE__*/React.createElement(Loading, null)) : null;\n const contextualSaveBarMarkup = /*#__PURE__*/React.createElement(CSSAnimation, {\n in: showContextualSaveBar,\n className: styles.ContextualSaveBar,\n type: \"fade\"\n }, /*#__PURE__*/React.createElement(ContextualSaveBar, this.contextualSaveBar));\n const topBarMarkup = topBar ? /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: styles.TopBar\n }, layer.props, dataPolarisTopBar.props, {\n id: APP_FRAME_TOP_BAR\n }), topBar) : null;\n const globalRibbonMarkup = globalRibbon ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.GlobalRibbonContainer,\n ref: this.setGlobalRibbonContainer\n }, globalRibbon) : null;\n const skipClassName = classNames(styles.Skip, skipFocused && styles.focused);\n const skipTarget = skipToContentTarget !== null && skipToContentTarget !== void 0 && skipToContentTarget.current ? skipToContentTarget.current.id : APP_FRAME_MAIN;\n const skipMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: skipClassName\n }, /*#__PURE__*/React.createElement(\"a\", {\n href: `#${skipTarget}`,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick\n }, i18n.translate('Polaris.Frame.skipToContent')));\n const navigationAttributes = navigation ? {\n 'data-has-navigation': true\n } : {};\n const frameClassName = classNames(styles.Frame, navigation && styles.hasNav, topBar && styles.hasTopBar);\n const navigationOverlayMarkup = showMobileNavigation && isNavigationCollapsed ? /*#__PURE__*/React.createElement(Backdrop, {\n belowNavigation: true,\n onClick: this.handleNavigationDismiss,\n onTouchStart: this.handleNavigationDismiss\n }) : null; // This is probably a legit error but I don't have the time to refactor this\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n\n const context = {\n logo,\n showToast: this.showToast,\n hideToast: this.hideToast,\n startLoading: this.startLoading,\n stopLoading: this.stopLoading,\n setContextualSaveBar: this.setContextualSaveBar,\n removeContextualSaveBar: this.removeContextualSaveBar\n };\n return /*#__PURE__*/React.createElement(FrameContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: frameClassName\n }, layer.props, navigationAttributes), skipMarkup, topBarMarkup, navigationMarkup, contextualSaveBarMarkup, loadingMarkup, navigationOverlayMarkup, /*#__PURE__*/React.createElement(\"main\", {\n className: styles.Main,\n id: APP_FRAME_MAIN,\n \"data-has-global-ribbon\": Boolean(globalRibbon)\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Content\n }, children)), /*#__PURE__*/React.createElement(ToastManager, {\n toastMessages: toastMessages\n }), globalRibbonMarkup, /*#__PURE__*/React.createElement(EventListener, {\n event: \"resize\",\n handler: this.handleResize\n })));\n }\n\n}\n\nconst navTransitionClasses = {\n enter: classNames(styles['Navigation-enter']),\n enterActive: classNames(styles['Navigation-enterActive']),\n enterDone: classNames(styles['Navigation-enterActive']),\n exit: classNames(styles['Navigation-exit']),\n exitActive: classNames(styles['Navigation-exitActive'])\n};\nfunction Frame(props) {\n const i18n = useI18n();\n const mediaQuery = useMediaQuery();\n return /*#__PURE__*/React.createElement(FrameInner, Object.assign({}, props, {\n i18n: i18n,\n mediaQuery: mediaQuery\n }));\n}\n\nexport { Frame };\n","import { memo, useEffect } from 'react';\nimport { useFrame } from '../../utilities/frame/hooks.js';\n\nconst Loading = /*#__PURE__*/memo(function Loading() {\n const {\n startLoading,\n stopLoading\n } = useFrame();\n useEffect(() => {\n startLoading();\n return () => {\n stopLoading();\n };\n }, [startLoading, stopLoading]);\n return null;\n});\n\nexport { Loading };\n","var styles = {\n \"Page\": \"Polaris-Page\",\n \"fullWidth\": \"Polaris-Page--fullWidth\",\n \"narrowWidth\": \"Polaris-Page--narrowWidth\",\n \"Content\": \"Polaris-Page__Content\",\n \"divider\": \"Polaris-Page--divider\"\n};\n\nexport { styles as default };\n","var styles = {\n \"Header\": \"Polaris-Page-Header\",\n \"titleHidden\": \"Polaris-Page-Header--titleHidden\",\n \"TitleWrapper\": \"Polaris-Page-Header__TitleWrapper\",\n \"Navigation\": \"Polaris-Page-Header__Navigation\",\n \"hasActionMenu\": \"Polaris-Page-Header--hasActionMenu\",\n \"mobileView\": \"Polaris-Page-Header--mobileView\",\n \"BreadcrumbWrapper\": \"Polaris-Page-Header__BreadcrumbWrapper\",\n \"PaginationWrapper\": \"Polaris-Page-Header__PaginationWrapper\",\n \"AdditionalNavigationWrapper\": \"Polaris-Page-Header__AdditionalNavigationWrapper\",\n \"MainContent\": \"Polaris-Page-Header__MainContent\",\n \"TitleActionMenuWrapper\": \"Polaris-Page-Header__TitleActionMenuWrapper\",\n \"hasNavigation\": \"Polaris-Page-Header--hasNavigation\",\n \"PrimaryActionWrapper\": \"Polaris-Page-Header__PrimaryActionWrapper\",\n \"ActionMenuWrapper\": \"Polaris-Page-Header__ActionMenuWrapper\",\n \"Row\": \"Polaris-Page-Header__Row\",\n \"RightAlign\": \"Polaris-Page-Header__RightAlign\",\n \"LeftAlign\": \"Polaris-Page-Header__LeftAlign\",\n \"noBreadcrumbs\": \"Polaris-Page-Header--noBreadcrumbs\",\n \"AdditionalMetaData\": \"Polaris-Page-Header__AdditionalMetaData\",\n \"Actions\": \"Polaris-Page-Header__Actions\",\n \"longTitle\": \"Polaris-Page-Header--longTitle\",\n \"mediumTitle\": \"Polaris-Page-Header--mediumTitle\",\n \"isSingleRow\": \"Polaris-Page-Header--isSingleRow\"\n};\n\nexport { styles as default };\n","import React from 'react';\n\nvar SvgArrowLeftMinor = function SvgArrowLeftMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 9h-11.586l3.293-3.293a.999.999 0 1 0-1.414-1.414l-5 5a.999.999 0 0 0 0 1.414l5 5a.997.997 0 0 0 1.414 0 .999.999 0 0 0 0-1.414l-3.293-3.293h11.586a1 1 0 1 0 0-2z\"\n }));\n};\n\nexport { SvgArrowLeftMinor as S };\n","var styles = {\n \"Breadcrumb\": \"Polaris-Breadcrumbs__Breadcrumb\",\n \"Icon\": \"Polaris-Breadcrumbs__Icon\",\n \"Content\": \"Polaris-Breadcrumbs__Content\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { ArrowLeftMinor } from '@shopify/polaris-icons';\nimport { handleMouseUpByBlurring } from '../../utilities/focus.js';\nimport styles from './Breadcrumbs.scss.js';\nimport { Icon } from '../Icon/Icon.js';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden.js';\nimport { UnstyledLink } from '../UnstyledLink/UnstyledLink.js';\n\nfunction Breadcrumbs({\n breadcrumbs\n}) {\n const breadcrumb = breadcrumbs[breadcrumbs.length - 1];\n\n if (breadcrumb == null) {\n return null;\n }\n\n const {\n content\n } = breadcrumb;\n const contentMarkup = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Icon\n }, /*#__PURE__*/React.createElement(Icon, {\n source: ArrowLeftMinor\n })), /*#__PURE__*/React.createElement(VisuallyHidden, null, content));\n const breadcrumbMarkup = 'url' in breadcrumb ? /*#__PURE__*/React.createElement(UnstyledLink, {\n key: content,\n url: breadcrumb.url,\n className: styles.Breadcrumb,\n onMouseUp: handleMouseUpByBlurring,\n \"aria-label\": breadcrumb.accessibilityLabel\n }, contentMarkup) : /*#__PURE__*/React.createElement(\"button\", {\n key: content,\n className: styles.Breadcrumb,\n onClick: breadcrumb.onAction,\n onMouseUp: handleMouseUpByBlurring,\n type: \"button\",\n \"aria-label\": breadcrumb.accessibilityLabel\n }, contentMarkup);\n return /*#__PURE__*/React.createElement(\"nav\", {\n role: \"navigation\"\n }, breadcrumbMarkup);\n}\n\nexport { Breadcrumbs };\n","import React from 'react';\n\nvar SvgChevronLeftMinor = function SvgChevronLeftMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 16a.997.997 0 0 1-.707-.293l-5-5a.999.999 0 0 1 0-1.414l5-5a.999.999 0 1 1 1.414 1.414l-4.293 4.293 4.293 4.293a.999.999 0 0 1-.707 1.707z\"\n }));\n};\n\nexport { SvgChevronLeftMinor as S };\n","var EditableTarget;\n\n(function (EditableTarget) {\n EditableTarget[\"Input\"] = \"INPUT\";\n EditableTarget[\"Textarea\"] = \"TEXTAREA\";\n EditableTarget[\"Select\"] = \"SELECT\";\n EditableTarget[\"ContentEditable\"] = \"contenteditable\";\n})(EditableTarget || (EditableTarget = {}));\n\nfunction isInputFocused() {\n if (document == null || document.activeElement == null) {\n return false;\n }\n\n const {\n tagName\n } = document.activeElement;\n return tagName === EditableTarget.Input || tagName === EditableTarget.Textarea || tagName === EditableTarget.Select || document.activeElement.hasAttribute(EditableTarget.ContentEditable);\n}\n\nexport { isInputFocused };\n","import React from 'react';\n\nvar SvgChevronRightMinor = function SvgChevronRightMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 16a.999.999 0 0 1-.707-1.707l4.293-4.293-4.293-4.293a.999.999 0 1 1 1.414-1.414l5 5a.999.999 0 0 1 0 1.414l-5 5a.997.997 0 0 1-.707.293z\"\n }));\n};\n\nexport { SvgChevronRightMinor as S };\n","var styles = {\n \"TooltipOverlay\": \"Polaris-Tooltip-TooltipOverlay\",\n \"measuring\": \"Polaris-Tooltip-TooltipOverlay--measuring\",\n \"positionedAbove\": \"Polaris-Tooltip-TooltipOverlay--positionedAbove\",\n \"Content\": \"Polaris-Tooltip-TooltipOverlay__Content\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport { layer } from '../../../shared.js';\nimport styles from './TooltipOverlay.scss.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\nimport { PositionedOverlay } from '../../../PositionedOverlay/PositionedOverlay.js';\n\nfunction TooltipOverlay({\n active,\n activator,\n preferredPosition = 'below',\n preventInteraction,\n id,\n children,\n accessibilityLabel\n}) {\n const i18n = useI18n();\n const markup = active ? /*#__PURE__*/React.createElement(PositionedOverlay, {\n active: active,\n activator: activator,\n preferredPosition: preferredPosition,\n preventInteraction: preventInteraction,\n render: renderTooltip\n }) : null;\n return markup;\n\n function renderTooltip(overlayDetails) {\n const {\n measuring,\n desiredHeight,\n positioning\n } = overlayDetails;\n const containerClassName = classNames(styles.TooltipOverlay, measuring && styles.measuring, positioning === 'above' && styles.positionedAbove);\n const contentStyles = measuring ? undefined : {\n minHeight: desiredHeight\n };\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: containerClassName\n }, layer.props), /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n role: \"tooltip\",\n className: styles.Content,\n style: contentStyles,\n \"aria-label\": accessibilityLabel ? i18n.translate('Polaris.TooltipOverlay.accessibilityLabel', {\n label: accessibilityLabel\n }) : undefined\n }, children));\n }\n}\n\nexport { TooltipOverlay };\n","import React, { useState, useRef, useEffect, useCallback } from 'react';\nimport { findFirstFocusableNode } from '../../utilities/focus.js';\nimport { useToggle } from '../../utilities/use-toggle.js';\nimport { Key } from '../../types.js';\nimport { TooltipOverlay } from './components/TooltipOverlay/TooltipOverlay.js';\nimport { useUniqueId } from '../../utilities/unique-id/hooks.js';\nimport { Portal } from '../Portal/Portal.js';\n\nfunction Tooltip({\n children,\n content,\n dismissOnMouseOut,\n active: originalActive,\n preferredPosition = 'below',\n activatorWrapper = 'span',\n accessibilityLabel\n}) {\n const WrapperComponent = activatorWrapper;\n const {\n value: active,\n setTrue: handleFocus,\n setFalse: handleBlur\n } = useToggle(Boolean(originalActive));\n const [activatorNode, setActivatorNode] = useState(null);\n const id = useUniqueId('TooltipContent');\n const activatorContainer = useRef(null);\n const mouseEntered = useRef(false);\n useEffect(() => {\n const firstFocusable = activatorContainer.current ? findFirstFocusableNode(activatorContainer.current) : null;\n const accessibilityNode = firstFocusable || activatorContainer.current;\n if (!accessibilityNode) return;\n accessibilityNode.tabIndex = 0;\n accessibilityNode.setAttribute('aria-describedby', id);\n accessibilityNode.setAttribute('data-polaris-tooltip-activator', 'true');\n }, [id, children]);\n const handleKeyUp = useCallback(event => {\n if (event.keyCode !== Key.Escape) return;\n handleBlur();\n }, [handleBlur]);\n const portal = activatorNode ? /*#__PURE__*/React.createElement(Portal, {\n idPrefix: \"tooltip\"\n }, /*#__PURE__*/React.createElement(TooltipOverlay, {\n id: id,\n preferredPosition: preferredPosition,\n activator: activatorNode,\n active: active,\n accessibilityLabel: accessibilityLabel,\n onClose: noop,\n preventInteraction: dismissOnMouseOut\n }, content)) : null;\n return /*#__PURE__*/React.createElement(WrapperComponent, {\n onFocus: handleFocus,\n onBlur: handleBlur,\n onMouseLeave: handleMouseLeave,\n onMouseOver: handleMouseEnterFix,\n onClick: stopPropagation,\n ref: setActivator,\n onKeyUp: handleKeyUp\n }, children, portal);\n\n function setActivator(node) {\n const activatorContainerRef = activatorContainer;\n\n if (node == null) {\n activatorContainerRef.current = null;\n setActivatorNode(null);\n return;\n }\n\n node.firstElementChild instanceof HTMLElement && setActivatorNode(node.firstElementChild);\n activatorContainerRef.current = node;\n }\n\n function handleMouseEnter() {\n mouseEntered.current = true;\n handleFocus();\n }\n\n function handleMouseLeave() {\n mouseEntered.current = false;\n handleBlur();\n } // https://github.com/facebook/react/issues/10109\n // Mouseenter event not triggered when cursor moves from disabled button\n\n\n function handleMouseEnterFix() {\n !mouseEntered.current && handleMouseEnter();\n }\n}\n\nfunction noop() {}\n\nfunction stopPropagation(event) {\n event.stopPropagation();\n}\n\nexport { Tooltip };\n","import { ChevronLeftMinor, ChevronRightMinor } from '@shopify/polaris-icons';\nimport React, { createRef } from 'react';\nimport { isInputFocused } from '../../utilities/is-input-focused.js';\nimport { Tooltip } from '../Tooltip/Tooltip.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { KeypressListener } from '../KeypressListener/KeypressListener.js';\nimport { ButtonGroup } from '../ButtonGroup/ButtonGroup.js';\nimport { Button } from '../Button/Button.js';\nimport { TextStyle } from '../TextStyle/TextStyle.js';\n\nfunction Pagination({\n hasNext,\n hasPrevious,\n nextURL,\n previousURL,\n onNext,\n onPrevious,\n nextTooltip,\n previousTooltip,\n nextKeys,\n previousKeys,\n accessibilityLabel,\n accessibilityLabels,\n label\n}) {\n const i18n = useI18n();\n const node = /*#__PURE__*/createRef();\n const navLabel = accessibilityLabel || i18n.translate('Polaris.Pagination.pagination');\n const previousLabel = (accessibilityLabels === null || accessibilityLabels === void 0 ? void 0 : accessibilityLabels.previous) || i18n.translate('Polaris.Pagination.previous');\n const nextLabel = (accessibilityLabels === null || accessibilityLabels === void 0 ? void 0 : accessibilityLabels.next) || i18n.translate('Polaris.Pagination.next');\n const prev = /*#__PURE__*/React.createElement(Button, {\n outline: true,\n icon: ChevronLeftMinor,\n accessibilityLabel: previousLabel,\n url: previousURL,\n onClick: onPrevious,\n disabled: !hasPrevious,\n id: \"previousURL\"\n });\n const constructedPrevious = previousTooltip && hasPrevious ? /*#__PURE__*/React.createElement(Tooltip, {\n activatorWrapper: \"span\",\n content: previousTooltip\n }, prev) : prev;\n const next = /*#__PURE__*/React.createElement(Button, {\n outline: true,\n icon: ChevronRightMinor,\n accessibilityLabel: nextLabel,\n url: nextURL,\n onClick: onNext,\n disabled: !hasNext,\n id: \"nextURL\"\n });\n const constructedNext = nextTooltip && hasNext ? /*#__PURE__*/React.createElement(Tooltip, {\n activatorWrapper: \"span\",\n content: nextTooltip\n }, next) : next;\n const previousHandler = onPrevious || noop;\n const previousButtonEvents = previousKeys && (previousURL || onPrevious) && hasPrevious && previousKeys.map(key => /*#__PURE__*/React.createElement(KeypressListener, {\n key: key,\n keyCode: key,\n handler: previousURL ? handleCallback(clickPaginationLink('previousURL', node)) : handleCallback(previousHandler)\n }));\n const nextHandler = onNext || noop;\n const nextButtonEvents = nextKeys && (nextURL || onNext) && hasNext && nextKeys.map(key => /*#__PURE__*/React.createElement(KeypressListener, {\n key: key,\n keyCode: key,\n handler: nextURL ? handleCallback(clickPaginationLink('nextURL', node)) : handleCallback(nextHandler)\n }));\n const labelTextMarkup = hasNext && hasPrevious ? /*#__PURE__*/React.createElement(TextStyle, null, label) : /*#__PURE__*/React.createElement(TextStyle, {\n variation: \"subdued\"\n }, label);\n const labelMarkup = label ? /*#__PURE__*/React.createElement(\"div\", {\n \"aria-live\": \"polite\"\n }, labelTextMarkup) : null;\n return /*#__PURE__*/React.createElement(\"nav\", {\n \"aria-label\": navLabel,\n ref: node\n }, previousButtonEvents, nextButtonEvents, /*#__PURE__*/React.createElement(ButtonGroup, {\n segmented: !label\n }, constructedPrevious, labelMarkup, constructedNext));\n}\n\nfunction clickPaginationLink(id, node) {\n return () => {\n if (node.current == null) {\n return;\n }\n\n const link = node.current.querySelector(`#${id}`);\n\n if (link) {\n link.click();\n }\n };\n}\n\nfunction handleCallback(fn) {\n return () => {\n if (isInputFocused()) {\n return;\n }\n\n fn();\n };\n}\n\nfunction noop() {}\n\nexport { Pagination };\n","var styles = {\n \"Title\": \"Polaris-Header-Title\",\n \"TitleWithSubtitle\": \"Polaris-Header-Title__TitleWithSubtitle\",\n \"SubTitle\": \"Polaris-Header-Title__SubTitle\",\n \"SubtitleCompact\": \"Polaris-Header-Title__SubtitleCompact\",\n \"TitleWithMetadataWrapper\": \"Polaris-Header-Title__TitleWithMetadataWrapper\",\n \"TitleMetadata\": \"Polaris-Header-Title__TitleMetadata\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames } from '../../../../../../utilities/css.js';\nimport styles from './Title.scss.js';\n\nfunction Title({\n title,\n subtitle,\n titleMetadata,\n compactTitle\n}) {\n const className = classNames(styles.Title, subtitle && styles.TitleWithSubtitle);\n const titleMarkup = title ? /*#__PURE__*/React.createElement(\"h1\", {\n className: className\n }, title) : null;\n const titleMetadataMarkup = titleMetadata ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.TitleMetadata\n }, titleMetadata) : null;\n const wrappedTitleMarkup = titleMetadata ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.TitleWithMetadataWrapper\n }, titleMarkup, titleMetadataMarkup) : titleMarkup;\n const subtitleMarkup = subtitle ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.SubTitle, compactTitle && styles.SubtitleCompact)\n }, /*#__PURE__*/React.createElement(\"p\", null, subtitle)) : null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, wrappedTitleMarkup, subtitleMarkup);\n}\n\nexport { Title };\n","var styles = {\n \"ActionMenu\": \"Polaris-ActionMenu\"\n};\n\nexport { styles as default };\n","import React from 'react';\n\nvar SvgHorizontalDotsMinor = function SvgHorizontalDotsMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 10a2 2 0 1 1-4.001-.001 2 2 0 0 1 4.001.001zm6 0a2 2 0 1 1-4.001-.001 2 2 0 0 1 4.001.001zm6 0a2 2 0 1 1-4.001-.001 2 2 0 0 1 4.001.001z\"\n }));\n};\n\nexport { SvgHorizontalDotsMinor as S };\n","var styles = {\n \"RollupActivator\": \"Polaris-ActionMenu-RollupActions__RollupActivator\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { HorizontalDotsMinor } from '@shopify/polaris-icons';\nimport { useToggle } from '../../../../utilities/use-toggle.js';\nimport styles from './RollupActions.scss.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\nimport { Button } from '../../../Button/Button.js';\nimport { Popover } from '../../../Popover/Popover.js';\nimport { ActionList } from '../../../ActionList/ActionList.js';\n\nfunction RollupActions({\n accessibilityLabel,\n items = [],\n sections = []\n}) {\n const i18n = useI18n();\n const {\n value: rollupOpen,\n toggle: toggleRollupOpen\n } = useToggle(false);\n\n if (items.length === 0 && sections.length === 0) {\n return null;\n }\n\n const activatorMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.RollupActivator\n }, /*#__PURE__*/React.createElement(Button, {\n outline: true,\n icon: HorizontalDotsMinor,\n accessibilityLabel: accessibilityLabel || i18n.translate('Polaris.ActionMenu.RollupActions.rollupButton'),\n onClick: toggleRollupOpen\n }));\n return /*#__PURE__*/React.createElement(Popover, {\n active: rollupOpen,\n activator: activatorMarkup,\n preferredAlignment: \"right\",\n onClose: toggleRollupOpen,\n hideOnPrint: true\n }, /*#__PURE__*/React.createElement(ActionList, {\n items: items,\n sections: sections,\n onActionAnyItem: toggleRollupOpen\n }));\n}\n\nexport { RollupActions };\n","var styles = {\n \"ActionsLayout\": \"Polaris-ActionMenu-Actions__ActionsLayout\"\n};\n\nexport { styles as default };\n","var styles = {\n \"Details\": \"Polaris-ActionMenu-MenuGroup__Details\"\n};\n\nexport { styles as default };\n","var styles = {\n \"SecondaryAction\": \"Polaris-ActionMenu-SecondaryAction\",\n \"destructive\": \"Polaris-ActionMenu-SecondaryAction--destructive\"\n};\n\nexport { styles as default };\n","import React, { useRef, useEffect } from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from './SecondaryAction.scss.js';\nimport { Button } from '../../../Button/Button.js';\n\nfunction SecondaryAction({\n children,\n destructive,\n onAction,\n getOffsetWidth,\n ...rest\n}) {\n const secondaryActionsRef = useRef(null);\n useEffect(() => {\n var _secondaryActionsRef$;\n\n if (!getOffsetWidth || !secondaryActionsRef.current) return;\n getOffsetWidth((_secondaryActionsRef$ = secondaryActionsRef.current) === null || _secondaryActionsRef$ === void 0 ? void 0 : _secondaryActionsRef$.offsetWidth);\n }, [getOffsetWidth]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(styles.SecondaryAction, destructive && styles.destructive),\n ref: secondaryActionsRef\n }, /*#__PURE__*/React.createElement(Button, Object.assign({\n onClick: onAction\n }, rest), children));\n}\n\nexport { SecondaryAction };\n","import React, { useCallback } from 'react';\nimport styles from './MenuGroup.scss.js';\nimport { SecondaryAction } from '../SecondaryAction/SecondaryAction.js';\nimport { Popover } from '../../../Popover/Popover.js';\nimport { ActionList } from '../../../ActionList/ActionList.js';\n\nfunction MenuGroup({\n accessibilityLabel,\n active,\n actions,\n details,\n title,\n icon,\n onClose,\n onOpen,\n getOffsetWidth\n}) {\n const handleClose = useCallback(() => {\n onClose(title);\n }, [onClose, title]);\n const handleOpen = useCallback(() => {\n onOpen(title);\n }, [onOpen, title]);\n const handleOffsetWidth = useCallback(width => {\n if (!getOffsetWidth) return;\n getOffsetWidth(width);\n }, [getOffsetWidth]);\n const popoverActivator = /*#__PURE__*/React.createElement(SecondaryAction, {\n disclosure: true,\n icon: icon,\n accessibilityLabel: accessibilityLabel,\n onClick: handleOpen,\n getOffsetWidth: handleOffsetWidth\n }, title);\n return /*#__PURE__*/React.createElement(Popover, {\n active: Boolean(active),\n activator: popoverActivator,\n preferredAlignment: \"left\",\n onClose: handleClose,\n hideOnPrint: true\n }, /*#__PURE__*/React.createElement(ActionList, {\n items: actions,\n onActionAnyItem: handleClose\n }), details && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Details\n }, details));\n}\n\nexport { MenuGroup };\n","import React, { useRef, useState, useCallback, useMemo, useEffect } from 'react';\nimport debounce from 'lodash/debounce';\nimport styles from './Actions.scss.js';\nimport { MenuGroup } from '../MenuGroup/MenuGroup.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\nimport { SecondaryAction } from '../SecondaryAction/SecondaryAction.js';\nimport { EventListener } from '../../../EventListener/EventListener.js';\nimport { ButtonGroup } from '../../../ButtonGroup/ButtonGroup.js';\n\nconst ACTION_SPACING = 8;\nfunction Actions({\n actions = [],\n groups = []\n}) {\n const i18n = useI18n();\n const actionsLayoutRef = useRef(null);\n const menuGroupWidthRef = useRef(0);\n const availableWidthRef = useRef(0);\n const actionsAndGroupsLengthRef = useRef(0);\n const timesMeasured = useRef(0);\n const actionWidthsRef = useRef([]);\n const [activeMenuGroup, setActiveMenuGroup] = useState(undefined);\n const [measuredActions, setMeasuredActions] = useState({\n showable: [],\n rolledUp: []\n });\n const defaultRollupGroup = {\n title: i18n.translate('Polaris.ActionMenu.Actions.moreActions'),\n actions: []\n };\n const lastMenuGroup = [...groups].pop();\n const lastMenuGroupWidth = [...actionWidthsRef.current].pop() || 0;\n const handleActionsOffsetWidth = useCallback(width => {\n actionWidthsRef.current = [...actionWidthsRef.current, width];\n }, []);\n const handleMenuGroupToggle = useCallback(group => setActiveMenuGroup(activeMenuGroup ? undefined : group), [activeMenuGroup]);\n const handleMenuGroupClose = useCallback(() => setActiveMenuGroup(undefined), []);\n const updateActions = useCallback(() => {\n let actionsAndGroups = [...actions, ...groups];\n\n if (groups.length > 0) {\n // We don't want to include actions from the last group\n // since it is always rendered with its own actions\n actionsAndGroups = [...actionsAndGroups].slice(0, actionsAndGroups.length - 1);\n }\n\n const showable = actionsAndGroups.slice(0, measuredActions.showable.length);\n const rolledUp = actionsAndGroups.slice(measuredActions.showable.length, actionsAndGroups.length);\n setMeasuredActions({\n showable,\n rolledUp\n });\n }, [actions, groups, measuredActions.showable.length]);\n const measureActions = useCallback(() => {\n if (actionWidthsRef.current.length === 0 || availableWidthRef.current === 0) {\n return;\n }\n\n const actionsAndGroups = [...actions, ...groups];\n\n if (actionsAndGroups.length === 1) {\n setMeasuredActions({\n showable: actionsAndGroups,\n rolledUp: []\n });\n return;\n }\n\n let currentAvailableWidth = availableWidthRef.current;\n let newShowableActions = [];\n let newRolledUpActions = [];\n actionsAndGroups.forEach((action, index) => {\n const canFitAction = actionWidthsRef.current[index] + menuGroupWidthRef.current + ACTION_SPACING + lastMenuGroupWidth <= currentAvailableWidth;\n\n if (canFitAction) {\n currentAvailableWidth -= actionWidthsRef.current[index] + ACTION_SPACING * 2;\n newShowableActions = [...newShowableActions, action];\n } else {\n currentAvailableWidth = 0; // Find last group if it exists and always render it as a rolled up action below\n\n if (action === lastMenuGroup) return;\n newRolledUpActions = [...newRolledUpActions, action];\n }\n });\n setMeasuredActions({\n showable: newShowableActions,\n rolledUp: newRolledUpActions\n });\n timesMeasured.current += 1;\n actionsAndGroupsLengthRef.current = actionsAndGroups.length;\n }, [actions, groups, lastMenuGroup, lastMenuGroupWidth]);\n const handleResize = useMemo(() => debounce(() => {\n if (!actionsLayoutRef.current) return;\n availableWidthRef.current = actionsLayoutRef.current.offsetWidth; // Set timesMeasured to 0 to allow re-measuring\n\n timesMeasured.current = 0;\n measureActions();\n }, 50, {\n leading: false,\n trailing: true\n }), [measureActions]);\n useEffect(() => {\n if (!actionsLayoutRef.current) {\n return;\n }\n\n availableWidthRef.current = actionsLayoutRef.current.offsetWidth;\n\n if ( // Allow measuring twice\n // This accounts for the initial paint and re-flow\n timesMeasured.current >= 2 && [...actions, ...groups].length === actionsAndGroupsLengthRef.current) {\n updateActions();\n return;\n }\n\n measureActions();\n }, [actions, groups, measureActions, updateActions]);\n const actionsMarkup = actions.map(action => {\n if (measuredActions.showable.length > 0 || measuredActions.rolledUp.includes(action)) return null;\n const {\n content,\n onAction,\n ...rest\n } = action;\n return /*#__PURE__*/React.createElement(SecondaryAction, Object.assign({\n key: content,\n onClick: onAction\n }, rest, {\n getOffsetWidth: handleActionsOffsetWidth\n }), content);\n });\n const rollUppableActionsMarkup = measuredActions.showable.length > 0 ? measuredActions.showable.map(action => action.content && /*#__PURE__*/React.createElement(SecondaryAction, Object.assign({\n key: action.content\n }, action, {\n getOffsetWidth: handleActionsOffsetWidth\n }), action.content)) : null;\n const filteredGroups = [...groups, defaultRollupGroup].filter(group => {\n return groups.length === 0 ? group : group === lastMenuGroup || !measuredActions.rolledUp.some(rolledUpGroup => isMenuGroup(rolledUpGroup) && rolledUpGroup.title === group.title);\n });\n const groupsMarkup = filteredGroups.map(group => {\n const {\n title,\n actions: groupActions,\n ...rest\n } = group;\n const isDefaultGroup = group === defaultRollupGroup;\n const isLastMenuGroup = group === lastMenuGroup;\n const finalRolledUpActions = measuredActions.rolledUp.reduce((memo, action) => {\n memo.push(...(isMenuGroup(action) ? action.actions : [action]));\n return memo;\n }, []);\n\n if (!isDefaultGroup && !isLastMenuGroup) {\n // Render a normal MenuGroup with just its actions\n return /*#__PURE__*/React.createElement(MenuGroup, Object.assign({\n key: title,\n title: title,\n active: title === activeMenuGroup,\n actions: groupActions\n }, rest, {\n onOpen: handleMenuGroupToggle,\n onClose: handleMenuGroupClose,\n getOffsetWidth: handleActionsOffsetWidth\n }));\n } else if (!isDefaultGroup && isLastMenuGroup) {\n // render the last, rollup group with its actions and finalRolledupActions\n return /*#__PURE__*/React.createElement(MenuGroup, Object.assign({\n key: title,\n title: title,\n active: title === activeMenuGroup,\n actions: [...finalRolledUpActions, ...groupActions]\n }, rest, {\n onOpen: handleMenuGroupToggle,\n onClose: handleMenuGroupClose,\n getOffsetWidth: handleActionsOffsetWidth\n }));\n } else if (isDefaultGroup && groups.length === 0 && finalRolledUpActions.length) {\n // Render the default group to rollup into if one does not exist\n return /*#__PURE__*/React.createElement(MenuGroup, Object.assign({\n key: title,\n title: title,\n active: title === activeMenuGroup,\n actions: finalRolledUpActions\n }, rest, {\n onOpen: handleMenuGroupToggle,\n onClose: handleMenuGroupClose,\n getOffsetWidth: handleActionsOffsetWidth\n }));\n }\n });\n const groupedActionsMarkup = /*#__PURE__*/React.createElement(ButtonGroup, {\n spacing: \"extraTight\"\n }, rollUppableActionsMarkup, actionsMarkup, groupsMarkup);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ActionsLayout,\n ref: actionsLayoutRef\n }, groupedActionsMarkup, /*#__PURE__*/React.createElement(EventListener, {\n event: \"resize\",\n handler: handleResize\n }));\n}\n\nfunction isMenuGroup(actionOrMenuGroup) {\n return 'title' in actionOrMenuGroup;\n}\n\nexport { Actions };\n","import React from 'react';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './ActionMenu.scss.js';\nimport { RollupActions } from './components/RollupActions/RollupActions.js';\nimport { Actions } from './components/Actions/Actions.js';\n\nfunction ActionMenu({\n actions = [],\n groups = [],\n rollup,\n rollupActionsLabel\n}) {\n if (actions.length === 0 && groups.length === 0) {\n return null;\n }\n\n const actionMenuClassNames = classNames(styles.ActionMenu, rollup && styles.rollup);\n const rollupSections = groups.map(group => convertGroupToSection(group));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: actionMenuClassNames\n }, rollup ? /*#__PURE__*/React.createElement(RollupActions, {\n accessibilityLabel: rollupActionsLabel,\n items: actions,\n sections: rollupSections\n }) : /*#__PURE__*/React.createElement(Actions, {\n actions: actions,\n groups: groups\n }));\n}\nfunction hasGroupsWithActions(groups = []) {\n return groups.length === 0 ? false : groups.some(group => group.actions.length > 0);\n}\n\nfunction convertGroupToSection({\n title,\n actions\n}) {\n return {\n title,\n items: actions\n };\n}\n\nexport { ActionMenu, hasGroupsWithActions };\n","import React, { isValidElement } from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport { ConditionalRender, ConditionalWrapper } from '../../../../utilities/components.js';\nimport styles from './Header.scss.js';\nimport { Breadcrumbs } from '../../../Breadcrumbs/Breadcrumbs.js';\nimport { Pagination } from '../../../Pagination/Pagination.js';\nimport { Title } from './components/Title/Title.js';\nimport { hasGroupsWithActions, ActionMenu } from '../../../ActionMenu/ActionMenu.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\nimport { useMediaQuery } from '../../../../utilities/media-query/hooks.js';\nimport { TextStyle } from '../../../TextStyle/TextStyle.js';\nimport { buttonsFrom } from '../../../Button/utils.js';\n\nfunction isPrimaryAction(x) {\n return ! /*#__PURE__*/isValidElement(x) && x !== undefined;\n}\nconst SHORT_TITLE = 20;\nconst REALLY_SHORT_TITLE = 8;\nconst LONG_TITLE = 34;\nfunction Header({\n title,\n subtitle,\n titleMetadata,\n additionalMetadata,\n titleHidden = false,\n primaryAction,\n pagination,\n additionalNavigation,\n breadcrumbs = [],\n secondaryActions = [],\n actionGroups = [],\n compactTitle = false\n}) {\n const i18n = useI18n();\n const {\n isNavigationCollapsed\n } = useMediaQuery();\n\n if (additionalNavigation && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('Deprecation: The `additionalNavigation` on Page is deprecated and will be removed in the next major version.');\n }\n\n const isSingleRow = !primaryAction && !pagination && !secondaryActions.length && !actionGroups.length;\n const breadcrumbMarkup = breadcrumbs.length > 0 ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.BreadcrumbWrapper\n }, /*#__PURE__*/React.createElement(Breadcrumbs, {\n breadcrumbs: breadcrumbs\n })) : null;\n const paginationMarkup = pagination && !isNavigationCollapsed ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.PaginationWrapper\n }, /*#__PURE__*/React.createElement(Pagination, pagination)) : null;\n const additionalNavigationMarkup = additionalNavigation ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.AdditionalNavigationWrapper\n }, additionalNavigation) : null;\n const navigationMarkup = breadcrumbMarkup || paginationMarkup || additionalNavigationMarkup ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Navigation\n }, breadcrumbMarkup, additionalNavigationMarkup, paginationMarkup) : null;\n const pageTitleMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.TitleWrapper\n }, /*#__PURE__*/React.createElement(Title, {\n title: title,\n subtitle: subtitle,\n titleMetadata: titleMetadata,\n compactTitle: compactTitle\n }));\n const primaryActionMarkup = primaryAction ? /*#__PURE__*/React.createElement(PrimaryActionMarkup, {\n primaryAction: primaryAction\n }) : null;\n const actionMenuMarkup = secondaryActions.length > 0 || hasGroupsWithActions(actionGroups) ? /*#__PURE__*/React.createElement(ActionMenu, {\n actions: secondaryActions,\n groups: actionGroups,\n rollup: isNavigationCollapsed,\n rollupActionsLabel: title ? i18n.translate('Polaris.Page.Header.rollupActionsLabel', {\n title\n }) : undefined\n }) : null;\n const additionalMetadataMarkup = additionalMetadata ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.AdditionalMetaData\n }, /*#__PURE__*/React.createElement(TextStyle, {\n variation: \"subdued\"\n }, additionalMetadata)) : null;\n const headerClassNames = classNames(styles.Header, isSingleRow && styles.isSingleRow, titleHidden && styles.titleHidden, navigationMarkup && styles.hasNavigation, actionMenuMarkup && styles.hasActionMenu, isNavigationCollapsed && styles.mobileView, !breadcrumbs.length && styles.noBreadcrumbs, title && title.length < LONG_TITLE && styles.mediumTitle, title && title.length > LONG_TITLE && styles.longTitle);\n const {\n slot1,\n slot2,\n slot3,\n slot4,\n slot5,\n slot6\n } = determineLayout({\n actionMenuMarkup,\n additionalMetadataMarkup,\n additionalNavigationMarkup,\n breadcrumbMarkup,\n isNavigationCollapsed,\n pageTitleMarkup,\n paginationMarkup,\n primaryActionMarkup,\n title\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: headerClassNames\n }, /*#__PURE__*/React.createElement(ConditionalRender, {\n condition: [slot1, slot2, slot3, slot4].some(notNull)\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Row\n }, slot1, slot2, /*#__PURE__*/React.createElement(ConditionalRender, {\n condition: [slot3, slot4].some(notNull)\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.RightAlign\n }, /*#__PURE__*/React.createElement(ConditionalWrapper, {\n condition: [slot3, slot4].every(notNull),\n wrapper: children => /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Actions\n }, children)\n }, slot3, slot4))))), /*#__PURE__*/React.createElement(ConditionalRender, {\n condition: [slot5, slot6].some(notNull)\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Row\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.LeftAlign\n }, slot5), /*#__PURE__*/React.createElement(ConditionalRender, {\n condition: slot6 != null\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.RightAlign\n }, slot6)))));\n}\n\nfunction PrimaryActionMarkup({\n primaryAction\n}) {\n const {\n isNavigationCollapsed\n } = useMediaQuery();\n let content = primaryAction;\n\n if (isPrimaryAction(primaryAction)) {\n const primary = primaryAction.primary === undefined ? true : primaryAction.primary;\n content = buttonsFrom(shouldShowIconOnly(isNavigationCollapsed, primaryAction), {\n primary\n });\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.PrimaryActionWrapper\n }, content);\n}\n\nfunction shouldShowIconOnly(isMobile, action) {\n let {\n content,\n accessibilityLabel,\n icon\n } = action;\n if (icon == null) return { ...action,\n icon: undefined\n };\n\n if (isMobile) {\n accessibilityLabel = accessibilityLabel || content;\n content = undefined;\n } else {\n icon = undefined;\n }\n\n return { ...action,\n content,\n accessibilityLabel,\n icon\n };\n}\n\nfunction notNull(value) {\n return value != null;\n}\n\nfunction determineLayout({\n actionMenuMarkup,\n additionalMetadataMarkup,\n additionalNavigationMarkup,\n breadcrumbMarkup,\n isNavigationCollapsed,\n pageTitleMarkup,\n paginationMarkup,\n primaryActionMarkup,\n title\n}) {\n // Header Layout\n // |----------------------------------------------------|\n // | slot1 | slot2 | | slot3 | slot4 |\n // |----------------------------------------------------|\n // | slot5 | | slot6 |\n // |----------------------------------------------------|\n //\n const layouts = {\n mobileCompact: {\n slots: {\n slot1: null,\n slot2: pageTitleMarkup,\n slot3: actionMenuMarkup,\n slot4: primaryActionMarkup,\n slot5: additionalMetadataMarkup,\n slot6: additionalNavigationMarkup\n },\n condition: isNavigationCollapsed && breadcrumbMarkup == null && title != null && title.length <= REALLY_SHORT_TITLE\n },\n mobileDefault: {\n slots: {\n slot1: breadcrumbMarkup,\n slot2: pageTitleMarkup,\n slot3: actionMenuMarkup,\n slot4: primaryActionMarkup,\n slot5: additionalMetadataMarkup,\n slot6: additionalNavigationMarkup\n },\n condition: isNavigationCollapsed\n },\n desktopCompact: {\n slots: {\n slot1: breadcrumbMarkup,\n slot2: pageTitleMarkup,\n slot3: actionMenuMarkup,\n slot4: primaryActionMarkup,\n slot5: additionalMetadataMarkup,\n slot6: additionalNavigationMarkup\n },\n condition: !isNavigationCollapsed && paginationMarkup == null && actionMenuMarkup == null && title != null && title.length <= SHORT_TITLE\n },\n desktopDefault: {\n slots: {\n slot1: breadcrumbMarkup,\n slot2: pageTitleMarkup,\n slot3: /*#__PURE__*/React.createElement(React.Fragment, null, actionMenuMarkup, primaryActionMarkup),\n slot4: paginationMarkup,\n slot5: additionalMetadataMarkup,\n slot6: additionalNavigationMarkup\n },\n condition: !isNavigationCollapsed\n }\n };\n const layout = Object.values(layouts).find(layout => layout.condition) || layouts.desktopDefault;\n return layout.slots;\n}\n\nexport { Header, isPrimaryAction };\n","import React from 'react';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './Page.scss.js';\nimport { Header } from './components/Header/Header.js';\n\nfunction Page({\n children,\n fullWidth,\n narrowWidth,\n divider,\n ...rest\n}) {\n const pageClassName = classNames(styles.Page, fullWidth && styles.fullWidth, narrowWidth && styles.narrowWidth);\n const hasHeaderContent = rest.title != null && rest.title !== '' || rest.primaryAction != null || rest.secondaryActions != null && rest.secondaryActions.length > 0 || rest.actionGroups != null && rest.actionGroups.length > 0 || rest.breadcrumbs != null && rest.breadcrumbs.length > 0;\n const contentClassName = classNames(!hasHeaderContent && styles.Content, divider && hasHeaderContent && styles.divider);\n const headerMarkup = hasHeaderContent ? /*#__PURE__*/React.createElement(Header, rest) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: pageClassName\n }, headerMarkup, /*#__PURE__*/React.createElement(\"div\", {\n className: contentClassName\n }, children));\n}\n\nexport { Page };\n","import { memo } from 'react';\nimport { useDeepEffect } from '../../utilities/use-deep-effect.js';\nimport { useUniqueId } from '../../utilities/unique-id/hooks.js';\nimport { useFrame } from '../../utilities/frame/hooks.js';\n\n// that the interface defining the props is defined in this file, not imported\n// from elsewhere. This silly workaround ensures that the Props Explorer table\n// is generated correctly.\n\nconst Toast = /*#__PURE__*/memo(function Toast(props) {\n const id = useUniqueId('Toast');\n const {\n showToast,\n hideToast\n } = useFrame();\n useDeepEffect(() => {\n showToast({\n id,\n ...props\n });\n return () => {\n hideToast({\n id\n });\n };\n }, [props]);\n return null;\n});\n\nexport { Toast };\n","import { logout } from '../framework/util/auth';\nimport {\n deleteJson,\n getJson,\n postJson,\n putJson,\n uploadFile,\n} from '../framework/util/rest';\n\nconst APP_NAME = 'spently';\n\nconst sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\n\nexport const getSpently = async (endpoint, errorHandler) => {\n await sleep(0);\n\n return getJson(APP_NAME, endpoint, (error) => {\n if (error.status === 401) {\n logout();\n sessionStorage.setItem('spently-returnUrl', document.location.href);\n document.location = '/';\n }\n\n if (errorHandler) {\n errorHandler();\n }\n });\n};\n\nexport const postSpently = async (endpoint, data, errorHandler) =>\n postJson(APP_NAME, endpoint, data, errorHandler);\n\nexport const putSpently = async (endpoint, data, errorHandler) =>\n putJson(APP_NAME, endpoint, data, errorHandler);\n\nexport const uploadSpently = async (endpoint, file, errorHandler) =>\n uploadFile(APP_NAME, endpoint, file, errorHandler);\n\nexport const deleteSpently = async (endpoint, errorHandler) =>\n deleteJson(APP_NAME, endpoint, errorHandler);\n","import React from 'react';\n\nvar SvgMobileHamburgerMajor = function SvgMobileHamburgerMajor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 11h-18a1 1 0 0 1 0-2h18a1 1 0 1 1 0 2zm0-7h-18a1 1 0 0 1 0-2h18a1 1 0 1 1 0 2zm0 14h-18a1 1 0 0 1 0-2h18a1 1 0 0 1 0 2z\"\n }));\n};\n\nexport { SvgMobileHamburgerMajor as S };\n","var styles = {\n \"TopBar\": \"Polaris-TopBar\",\n \"LogoDisplayControl\": \"Polaris-TopBar__LogoDisplayControl\",\n \"LogoDisplayContainer\": \"Polaris-TopBar__LogoDisplayContainer\",\n \"LogoContainer\": \"Polaris-TopBar__LogoContainer\",\n \"Logo\": \"Polaris-TopBar__Logo\",\n \"LogoLink\": \"Polaris-TopBar__LogoLink\",\n \"ContextControl\": \"Polaris-TopBar__ContextControl\",\n \"NavigationIcon\": \"Polaris-TopBar__NavigationIcon\",\n \"focused\": \"Polaris-TopBar--focused\",\n \"IconWrapper\": \"Polaris-TopBar__IconWrapper\",\n \"Contents\": \"Polaris-TopBar__Contents\",\n \"SearchField\": \"Polaris-TopBar__SearchField\",\n \"SecondaryMenu\": \"Polaris-TopBar__SecondaryMenu\"\n};\n\nexport { styles as default };\n","var styles = {\n \"Search\": \"Polaris-TopBar-Search\",\n \"SearchContent\": \"Polaris-TopBar-Search__SearchContent\",\n \"visible\": \"Polaris-TopBar-Search--visible\",\n \"Results\": \"Polaris-TopBar-Search__Results\"\n};\n\nexport { styles as default };\n","var styles = {\n \"SearchDismissOverlay\": \"Polaris-TopBar-SearchDismissOverlay\",\n \"visible\": \"Polaris-TopBar-SearchDismissOverlay--visible\",\n \"fade-in\": \"Polaris-TopBar-SearchDismissOverlay__fade--in\"\n};\n\nexport { styles as default };\n","import React, { useRef, useCallback } from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from './SearchDismissOverlay.scss.js';\nimport { ScrollLock } from '../../../ScrollLock/ScrollLock.js';\n\nfunction SearchDismissOverlay({\n onDismiss,\n visible\n}) {\n const node = useRef(null);\n const handleDismiss = useCallback(({\n target\n }) => {\n if (target === node.current && onDismiss != null) {\n onDismiss();\n }\n }, [onDismiss]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, visible ? /*#__PURE__*/React.createElement(ScrollLock, null) : null, /*#__PURE__*/React.createElement(\"div\", {\n ref: node,\n className: classNames(styles.SearchDismissOverlay, visible && styles.visible),\n onClick: handleDismiss\n }));\n}\n\nexport { SearchDismissOverlay };\n","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from './Search.scss.js';\nimport { SearchDismissOverlay } from '../SearchDismissOverlay/SearchDismissOverlay.js';\nimport { CustomProperties } from '../../../CustomProperties/CustomProperties.js';\n\nfunction Search({\n visible,\n children,\n onDismiss,\n overlayVisible = false\n}) {\n if (children == null) {\n return null;\n }\n\n const overlayMarkup = visible ? /*#__PURE__*/React.createElement(SearchDismissOverlay, {\n onDismiss: onDismiss,\n visible: overlayVisible\n }) : null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, overlayMarkup, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.Search, visible && styles.visible)\n }, /*#__PURE__*/React.createElement(CustomProperties, {\n colorScheme: \"dark\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SearchContent\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Results\n }, children)))));\n}\n\nexport { Search };\n","import React from 'react';\n\nvar SvgSearchMinor = function SvgSearchMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 12a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm9.707 4.293-4.82-4.82a5.968 5.968 0 0 0 1.113-3.473 6 6 0 0 0-12 0 6 6 0 0 0 6 6 5.968 5.968 0 0 0 3.473-1.113l4.82 4.82a.997.997 0 0 0 1.414 0 .999.999 0 0 0 0-1.414z\"\n }));\n};\n\nexport { SvgSearchMinor as S };\n","var styles = {\n \"SearchField\": \"Polaris-TopBar-SearchField\",\n \"focused\": \"Polaris-TopBar-SearchField--focused\",\n \"Input\": \"Polaris-TopBar-SearchField__Input\",\n \"Backdrop\": \"Polaris-TopBar-SearchField__Backdrop\",\n \"BackdropShowFocusBorder\": \"Polaris-TopBar-SearchField__BackdropShowFocusBorder\",\n \"Icon\": \"Polaris-TopBar-SearchField__Icon\",\n \"Clear\": \"Polaris-TopBar-SearchField__Clear\",\n \"toLightBackground\": \"Polaris-TopBar-SearchField--toLightBackground\"\n};\n\nexport { styles as default };\n","import React, { useState, useRef, useCallback, useEffect } from 'react';\nimport { CircleCancelMinor, SearchMinor } from '@shopify/polaris-icons';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from './SearchField.scss.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\nimport { useUniqueId } from '../../../../utilities/unique-id/hooks.js';\nimport { Icon } from '../../../Icon/Icon.js';\nimport { VisuallyHidden } from '../../../VisuallyHidden/VisuallyHidden.js';\n\nfunction SearchField({\n value,\n focused,\n active,\n placeholder,\n onChange,\n onFocus,\n onBlur,\n onCancel,\n showFocusBorder\n}) {\n const i18n = useI18n();\n const [forceActive, setForceActive] = useState(false);\n const input = useRef(null);\n const searchId = useUniqueId('SearchField');\n const handleChange = useCallback(({\n currentTarget\n }) => {\n onChange(currentTarget.value);\n }, [onChange]);\n const handleFocus = useCallback(() => onFocus && onFocus(), [onFocus]);\n const handleBlur = useCallback(() => onBlur && onBlur(), [onBlur]);\n const handleClear = useCallback(() => {\n onCancel && onCancel();\n\n if (!input.current) {\n return;\n }\n\n input.current.value = '';\n onChange('');\n input.current.focus();\n }, [onCancel, onChange]);\n useEffect(() => {\n if (!input.current) {\n return;\n }\n\n if (focused) {\n input.current.focus();\n } else {\n input.current.blur();\n }\n }, [focused]);\n const clearMarkup = value !== '' && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": i18n.translate('Polaris.TopBar.SearchField.clearButtonLabel'),\n className: styles.Clear,\n onClick: handleClear,\n onBlur: () => {\n setForceActive(false);\n handleClear();\n },\n onFocus: () => {\n handleFocus();\n setForceActive(true);\n }\n }, /*#__PURE__*/React.createElement(Icon, {\n source: CircleCancelMinor\n }));\n const className = classNames(styles.SearchField, (focused || active || forceActive) && styles.focused);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n onFocus: handleFocus,\n onBlur: handleBlur\n }, /*#__PURE__*/React.createElement(VisuallyHidden, null, /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: searchId\n }, i18n.translate('Polaris.TopBar.SearchField.search'))), /*#__PURE__*/React.createElement(\"input\", {\n id: searchId,\n className: styles.Input,\n placeholder: placeholder,\n type: \"search\",\n autoCapitalize: \"off\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n ref: input,\n value: value,\n onChange: handleChange,\n onKeyDown: preventDefault\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Icon\n }, /*#__PURE__*/React.createElement(Icon, {\n source: SearchMinor\n })), clearMarkup, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.Backdrop, showFocusBorder && styles.BackdropShowFocusBorder)\n }));\n}\n\nfunction preventDefault(event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n }\n}\n\nexport { SearchField };\n","var styles = {\n \"Details\": \"Polaris-TopBar-UserMenu__Details\",\n \"Name\": \"Polaris-TopBar-UserMenu__Name\",\n \"Detail\": \"Polaris-TopBar-UserMenu__Detail\"\n};\n\nexport { styles as default };\n","var styles = {\n \"MessageIndicatorWrapper\": \"Polaris-MessageIndicator__MessageIndicatorWrapper\",\n \"MessageIndicator\": \"Polaris-MessageIndicator\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport styles from './MessageIndicator.scss.js';\n\nfunction MessageIndicator({\n children,\n active\n}) {\n const indicatorMarkup = active && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.MessageIndicator\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.MessageIndicatorWrapper\n }, indicatorMarkup, children);\n}\n\nexport { MessageIndicator };\n","var styles = {\n \"ActivatorWrapper\": \"Polaris-TopBar-Menu__ActivatorWrapper\",\n \"Activator\": \"Polaris-TopBar-Menu__Activator\",\n \"Section\": \"Polaris-TopBar-Menu__Section\"\n};\n\nexport { styles as default };\n","var styles = {\n \"Section\": \"Polaris-Menu-Message__Section\"\n};\n\nexport { styles as default };\n","import React from 'react';\n\nvar SvgExternalSmallMinor = function SvgExternalSmallMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14 13v1a1 1 0 0 1-1 1h-7c-.575 0-1-.484-1-1v-7a1 1 0 0 1 1-1h1c1.037 0 1.04 1.5 0 1.5-.178.005-.353 0-.5 0v6h6v-.5c0-1 1.5-1 1.5 0zm-3.75-7.25a.75.75 0 0 1 .75-.75h4v4a.75.75 0 0 1-1.5 0v-1.44l-3.22 3.22a.75.75 0 1 1-1.06-1.06l3.22-3.22h-1.44a.75.75 0 0 1-.75-.75z\"\n }));\n};\n\nexport { SvgExternalSmallMinor as S };\n","import { createContext } from 'react';\n\nconst BannerContext = /*#__PURE__*/createContext(false);\n\nexport { BannerContext };\n","var styles = {\n \"Link\": \"Polaris-Link\",\n \"IconLockup\": \"Polaris-Link__IconLockup\",\n \"IconLayout\": \"Polaris-Link__IconLayout\",\n \"monochrome\": \"Polaris-Link--monochrome\",\n \"removeUnderline\": \"Polaris-Link--removeUnderline\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { ExternalSmallMinor } from '@shopify/polaris-icons';\nimport { BannerContext } from '../../utilities/banner-context.js';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './Link.scss.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Icon } from '../Icon/Icon.js';\nimport { UnstyledLink } from '../UnstyledLink/UnstyledLink.js';\n\nfunction Link({\n url,\n children,\n onClick,\n external,\n id,\n monochrome,\n removeUnderline,\n accessibilityLabel\n}) {\n const i18n = useI18n();\n let childrenMarkup = children;\n\n if (external && typeof children === 'string') {\n const iconLabel = i18n.translate('Polaris.Common.newWindowAccessibilityHint');\n childrenMarkup = /*#__PURE__*/React.createElement(React.Fragment, null, children, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.IconLockup\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.IconLayout\n }, /*#__PURE__*/React.createElement(Icon, {\n accessibilityLabel: iconLabel,\n source: ExternalSmallMinor\n }))));\n }\n\n return /*#__PURE__*/React.createElement(BannerContext.Consumer, null, BannerContext => {\n const shouldBeMonochrome = monochrome || BannerContext;\n const className = classNames(styles.Link, shouldBeMonochrome && styles.monochrome, removeUnderline && styles.removeUnderline);\n return url ? /*#__PURE__*/React.createElement(UnstyledLink, {\n onClick: onClick,\n className: className,\n url: url,\n external: external,\n id: id,\n \"aria-label\": accessibilityLabel\n }, childrenMarkup) : /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onClick,\n className: className,\n id: id,\n \"aria-label\": accessibilityLabel\n }, childrenMarkup);\n });\n}\n\nexport { Link };\n","var styles = {\n \"TextContainer\": \"Polaris-TextContainer\",\n \"spacingTight\": \"Polaris-TextContainer--spacingTight\",\n \"spacingLoose\": \"Polaris-TextContainer--spacingLoose\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport styles from './TextContainer.scss.js';\n\nfunction TextContainer({\n spacing,\n children\n}) {\n const className = classNames(styles.TextContainer, spacing && styles[variationName('spacing', spacing)]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, children);\n}\n\nexport { TextContainer };\n","import React from 'react';\nimport styles from './Message.scss.js';\nimport { Link } from '../../../../../Link/Link.js';\nimport { Badge } from '../../../../../Badge/Badge.js';\nimport { Popover } from '../../../../../Popover/Popover.js';\nimport { Stack } from '../../../../../Stack/Stack.js';\nimport { TextContainer } from '../../../../../TextContainer/TextContainer.js';\nimport { Heading } from '../../../../../Heading/Heading.js';\nimport { Button } from '../../../../../Button/Button.js';\n\nfunction Message({\n title,\n description,\n action,\n link,\n badge\n}) {\n const badgeMarkup = badge && /*#__PURE__*/React.createElement(Badge, {\n status: badge.status\n }, badge.content);\n const {\n to,\n content: linkContent\n } = link;\n const {\n onClick,\n content: actionContent\n } = action;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Section\n }, /*#__PURE__*/React.createElement(Popover.Section, null, /*#__PURE__*/React.createElement(Stack, {\n vertical: true,\n spacing: \"tight\"\n }, /*#__PURE__*/React.createElement(TextContainer, null, /*#__PURE__*/React.createElement(Heading, null, title, badgeMarkup), /*#__PURE__*/React.createElement(\"p\", null, description)), /*#__PURE__*/React.createElement(Link, {\n url: to\n }, linkContent), /*#__PURE__*/React.createElement(Button, {\n plain: true,\n onClick: onClick\n }, actionContent))));\n}\n\nexport { Message };\n","import React from 'react';\nimport styles from './Menu.scss.js';\nimport { Message } from './components/Message/Message.js';\nimport { Popover } from '../../../Popover/Popover.js';\nimport { ActionList } from '../../../ActionList/ActionList.js';\n\nfunction Menu(props) {\n const {\n actions,\n onOpen,\n onClose,\n open,\n activatorContent,\n message,\n colorScheme,\n accessibilityLabel\n } = props;\n const badgeProps = message && message.badge && {\n content: message.badge.content,\n status: message.badge.status\n };\n const messageMarkup = message && /*#__PURE__*/React.createElement(Message, {\n title: message.title,\n description: message.description,\n action: {\n onClick: message.action.onClick,\n content: message.action.content\n },\n link: {\n to: message.link.to,\n content: message.link.content\n },\n badge: badgeProps\n });\n const isFullHeight = Boolean(message);\n return /*#__PURE__*/React.createElement(Popover, {\n activator: /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ActivatorWrapper\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: styles.Activator,\n onClick: onOpen,\n \"aria-label\": accessibilityLabel\n }, activatorContent)),\n active: open,\n onClose: onClose,\n fixed: true,\n fullHeight: isFullHeight,\n preferredAlignment: \"right\",\n colorScheme: colorScheme\n }, /*#__PURE__*/React.createElement(ActionList, {\n onActionAnyItem: onClose,\n sections: actions\n }), messageMarkup);\n}\n\nexport { Menu };\n","var styles = {\n \"Avatar\": \"Polaris-Avatar\",\n \"hidden\": \"Polaris-Avatar--hidden\",\n \"sizeExtraSmall\": \"Polaris-Avatar--sizeExtraSmall\",\n \"sizeSmall\": \"Polaris-Avatar--sizeSmall\",\n \"sizeMedium\": \"Polaris-Avatar--sizeMedium\",\n \"sizeLarge\": \"Polaris-Avatar--sizeLarge\",\n \"styleOne\": \"Polaris-Avatar--styleOne\",\n \"styleTwo\": \"Polaris-Avatar--styleTwo\",\n \"styleThree\": \"Polaris-Avatar--styleThree\",\n \"styleFour\": \"Polaris-Avatar--styleFour\",\n \"styleFive\": \"Polaris-Avatar--styleFive\",\n \"hasImage\": \"Polaris-Avatar--hasImage\",\n \"Image\": \"Polaris-Avatar__Image\",\n \"Initials\": \"Polaris-Avatar__Initials\",\n \"Svg\": \"Polaris-Avatar__Svg\"\n};\n\nexport { styles as default };\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport { useIsAfterInitialMount } from '../../utilities/use-is-after-initial-mount.js';\nimport styles from './Avatar.scss.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Image } from '../Image/Image.js';\n\nvar Status;\n\n(function (Status) {\n Status[\"Pending\"] = \"PENDING\";\n Status[\"Loaded\"] = \"LOADED\";\n Status[\"Errored\"] = \"ERRORED\";\n})(Status || (Status = {}));\n\nconst STYLE_CLASSES = ['one', 'two', 'three', 'four', 'five'];\nfunction Avatar({\n name,\n source,\n onError,\n initials,\n customer,\n size = 'medium',\n accessibilityLabel\n}) {\n const i18n = useI18n();\n const isAfterInitialMount = useIsAfterInitialMount();\n\n function styleClass(name) {\n return name ? STYLE_CLASSES[name.charCodeAt(0) % STYLE_CLASSES.length] : STYLE_CLASSES[0];\n }\n\n const [status, setStatus] = useState(Status.Pending); // If the source changes, set the status back to pending\n\n useEffect(() => {\n setStatus(Status.Pending);\n }, [source]);\n const handleError = useCallback(() => {\n setStatus(Status.Errored);\n\n if (onError) {\n onError();\n }\n }, [onError]);\n const handleLoad = useCallback(() => {\n setStatus(Status.Loaded);\n }, []);\n const hasImage = source && status !== Status.Errored;\n const nameString = name || initials;\n let label;\n\n if (accessibilityLabel) {\n label = accessibilityLabel;\n } else if (name) {\n label = name;\n } else if (initials) {\n const splitInitials = initials.split('').join(' ');\n label = i18n.translate('Polaris.Avatar.labelWithInitials', {\n initials: splitInitials\n });\n } else {\n label = i18n.translate('Polaris.Avatar.label');\n }\n\n const className = classNames(styles.Avatar, size && styles[variationName('size', size)], !customer && styles[variationName('style', styleClass(nameString))], (hasImage || initials && initials.length === 0) && status !== Status.Loaded && styles.hidden, hasImage && styles.hasImage);\n const imageMarkUp = source && isAfterInitialMount && status !== Status.Errored ? /*#__PURE__*/React.createElement(Image, {\n className: styles.Image,\n source: source,\n alt: \"\",\n role: \"presentation\",\n onLoad: handleLoad,\n onError: handleError\n }) : null; // Use `dominant-baseline: central` instead of `dy` when Edge supports it.\n\n const verticalOffset = '0.35em';\n const avatarBody = customer || !initials ? /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M8.28 27.5A14.95 14.95 0 0120 21.8c4.76 0 8.97 2.24 11.72 5.7a14.02 14.02 0 01-8.25 5.91 14.82 14.82 0 01-6.94 0 14.02 14.02 0 01-8.25-5.9zM13.99 12.78a6.02 6.02 0 1112.03 0 6.02 6.02 0 01-12.03 0z\"\n }) : /*#__PURE__*/React.createElement(\"text\", {\n x: \"50%\",\n y: \"50%\",\n dy: verticalOffset,\n fill: \"currentColor\",\n fontSize: \"20\",\n textAnchor: \"middle\"\n }, initials);\n const svgMarkup = !hasImage ? /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Initials\n }, /*#__PURE__*/React.createElement(\"svg\", {\n className: styles.Svg,\n viewBox: \"0 0 40 40\"\n }, avatarBody)) : null;\n return /*#__PURE__*/React.createElement(\"span\", {\n \"aria-label\": label,\n role: \"img\",\n className: className\n }, svgMarkup, imageMarkUp);\n}\n\nexport { Avatar, STYLE_CLASSES };\n","import React from 'react';\nimport { MobileHamburgerMajor } from '@shopify/polaris-icons';\nimport { classNames } from '../../utilities/css.js';\nimport { getWidth } from '../../utilities/get-width.js';\nimport { useToggle } from '../../utilities/use-toggle.js';\nimport styles from './TopBar.scss.js';\nimport { Search } from './components/Search/Search.js';\nimport { SearchField } from './components/SearchField/SearchField.js';\nimport { UserMenu } from './components/UserMenu/UserMenu.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { useFrame } from '../../utilities/frame/hooks.js';\nimport { Icon } from '../Icon/Icon.js';\nimport { UnstyledLink } from '../UnstyledLink/UnstyledLink.js';\nimport { Image } from '../Image/Image.js';\nimport { Menu } from './components/Menu/Menu.js';\n\n// TypeScript can't generate types that correctly infer the typing of\n// subcomponents so explicitly state the subcomponents in the type definition.\n// Letting this be implicit works in this project but fails in projects that use\n// generated *.d.ts files.\nconst TopBar = function TopBar({\n showNavigationToggle,\n userMenu,\n searchResults,\n searchField,\n secondaryMenu,\n searchResultsVisible,\n searchResultsOverlayVisible = false,\n onNavigationToggle,\n onSearchResultsDismiss,\n contextControl\n}) {\n const i18n = useI18n();\n const {\n logo\n } = useFrame();\n const {\n value: focused,\n setTrue: forceTrueFocused,\n setFalse: forceFalseFocused\n } = useToggle(false);\n const iconClassName = classNames(styles.NavigationIcon, focused && styles.focused);\n const navigationButtonMarkup = showNavigationToggle ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: iconClassName,\n onClick: onNavigationToggle,\n onFocus: forceTrueFocused,\n onBlur: forceFalseFocused,\n \"aria-label\": i18n.translate('Polaris.TopBar.toggleMenuLabel')\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.IconWrapper\n }, /*#__PURE__*/React.createElement(Icon, {\n source: MobileHamburgerMajor\n }))) : null;\n const width = getWidth(logo, 104);\n let contextMarkup;\n\n if (contextControl) {\n contextMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ContextControl\n }, contextControl);\n } else if (logo) {\n const className = classNames(styles.LogoContainer, showNavigationToggle || searchField ? styles.LogoDisplayControl : styles.LogoDisplayContainer);\n contextMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(UnstyledLink, {\n url: logo.url || '',\n className: styles.LogoLink,\n style: {\n width\n }\n }, /*#__PURE__*/React.createElement(Image, {\n source: logo.topBarSource || '',\n alt: logo.accessibilityLabel || '',\n className: styles.Logo,\n style: {\n width\n }\n })));\n }\n\n const searchMarkup = searchField ? /*#__PURE__*/React.createElement(React.Fragment, null, searchField, /*#__PURE__*/React.createElement(Search, {\n visible: searchResultsVisible,\n onDismiss: onSearchResultsDismiss,\n overlayVisible: searchResultsOverlayVisible\n }, searchResults)) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.TopBar\n }, navigationButtonMarkup, contextMarkup, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Contents\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SearchField\n }, searchMarkup), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SecondaryMenu\n }, secondaryMenu), userMenu));\n};\nTopBar.Menu = Menu;\nTopBar.SearchField = SearchField;\nTopBar.UserMenu = UserMenu;\n\nexport { TopBar };\n","import React from 'react';\nimport styles from './UserMenu.scss.js';\nimport { MessageIndicator } from '../../../MessageIndicator/MessageIndicator.js';\nimport { Menu } from '../Menu/Menu.js';\nimport { Avatar } from '../../../Avatar/Avatar.js';\n\nfunction UserMenu({\n name,\n detail,\n avatar,\n initials,\n actions,\n message,\n onToggle,\n open,\n colorScheme,\n accessibilityLabel\n}) {\n const showIndicator = Boolean(message);\n const activatorContentMarkup = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MessageIndicator, {\n active: showIndicator\n }, /*#__PURE__*/React.createElement(Avatar, {\n size: \"small\",\n source: avatar,\n initials: initials && initials.replace(' ', '')\n })), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Details\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: styles.Name\n }, name), /*#__PURE__*/React.createElement(\"p\", {\n className: styles.Detail\n }, detail)));\n return /*#__PURE__*/React.createElement(Menu, {\n activatorContent: activatorContentMarkup,\n open: open,\n onOpen: onToggle,\n onClose: onToggle,\n actions: actions,\n message: message,\n colorScheme: colorScheme,\n accessibilityLabel: accessibilityLabel\n });\n}\n\nexport { UserMenu };\n","import React from 'react';\n\nvar SvgUndoIcon = function SvgUndoIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.47 3.72a.75.75 0 0 1 1.06 1.06l-1.72 1.72h3.94a5 5 0 0 1 0 10h-1.5a.75.75 0 0 1 0-1.5h1.5a3.5 3.5 0 1 0 0-7h-3.94l1.72 1.72a.75.75 0 1 1-1.06 1.06l-3-3a.75.75 0 0 1 0-1.06l3-3Z\"\n }));\n};\nSvgUndoIcon.displayName = \"UndoIcon\";\n\nexport { SvgUndoIcon as S };\n","import React from 'react';\n\nvar SvgRedoIcon = function SvgRedoIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.53 3.72a.75.75 0 1 0-1.06 1.06l1.72 1.72h-3.94a5 5 0 0 0 0 10h1.5a.75.75 0 0 0 0-1.5h-1.5a3.5 3.5 0 1 1 0-7h3.94l-1.72 1.72a.75.75 0 1 0 1.06 1.06l3-3a.75.75 0 0 0 0-1.06l-3-3Z\"\n }));\n};\nSvgRedoIcon.displayName = \"RedoIcon\";\n\nexport { SvgRedoIcon as S };\n","import React from 'react';\n\nvar SvgDesktopIcon = function SvgDesktopIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M3.5 6.25a2.75 2.75 0 0 1 2.75-2.75h7.5a2.75 2.75 0 0 1 2.75 2.75v4.5a2.75 2.75 0 0 1-2.75 2.75h-1.25v1.5h.75a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h.75v-1.5h-1.25a2.75 2.75 0 0 1-2.75-2.75v-4.5Zm5.5 7.25h2v1.5h-2v-1.5Zm-2.75-8.5c-.69 0-1.25.56-1.25 1.25v3.25h10v-3.25c0-.69-.56-1.25-1.25-1.25h-7.5Zm8.725 6c-.116.57-.62 1-1.225 1h-7.5a1.25 1.25 0 0 1-1.225-1h9.95Z\"\n }));\n};\nSvgDesktopIcon.displayName = \"DesktopIcon\";\n\nexport { SvgDesktopIcon as S };\n","import React from 'react';\n\nvar SvgMobileIcon = function SvgMobileIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.75 13.75a.75.75 0 0 1 .75-.75h3a.75.75 0 0 1 0 1.5h-3a.75.75 0 0 1-.75-.75Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M4.75 5.75a2.75 2.75 0 0 1 2.75-2.75h5a2.75 2.75 0 0 1 2.75 2.75v8.5a2.75 2.75 0 0 1-2.75 2.75h-5a2.75 2.75 0 0 1-2.75-2.75v-8.5Zm2.75-1.25c-.69 0-1.25.56-1.25 1.25v8.5c0 .69.56 1.25 1.25 1.25h5c.69 0 1.25-.56 1.25-1.25v-8.5c0-.69-.56-1.25-1.25-1.25h-.531a1 1 0 0 1-.969.75h-2a1 1 0 0 1-.969-.75h-.531Z\"\n }));\n};\nSvgMobileIcon.displayName = \"MobileIcon\";\n\nexport { SvgMobileIcon as S };\n","import React from 'react';\n\nvar SvgViewportWideIcon = function SvgViewportWideIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 5.75a2.75 2.75 0 0 1 2.75-2.75h6.5a2.75 2.75 0 0 1 2.75 2.75v.875a.75.75 0 0 1-1.5 0v-.875c0-.69-.56-1.25-1.25-1.25h-6.5c-.69 0-1.25.56-1.25 1.25v.875a.75.75 0 0 1-1.5 0v-.875Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.75 12.625a.75.75 0 0 1 .75.75v.875c0 .69.56 1.25 1.25 1.25h6.5c.69 0 1.25-.56 1.25-1.25v-.875a.75.75 0 0 1 1.5 0v.875a2.75 2.75 0 0 1-2.75 2.75h-6.5a2.75 2.75 0 0 1-2.75-2.75v-.875a.75.75 0 0 1 .75-.75Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.75 10a.75.75 0 0 1-.75.75h-2.44l.72.72a.75.75 0 1 1-1.06 1.06l-2-2a.75.75 0 0 1 0-1.06l2-2a.75.75 0 1 1 1.06 1.06l-.72.72h2.44a.75.75 0 0 1 .75.75Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 10.75a.75.75 0 0 1 0-1.5h2.44l-.72-.72a.75.75 0 0 1 1.06-1.06l2 2a.75.75 0 0 1 0 1.06l-2 2a.75.75 0 1 1-1.06-1.06l.72-.72h-2.44Z\"\n }));\n};\nSvgViewportWideIcon.displayName = \"ViewportWideIcon\";\n\nexport { SvgViewportWideIcon as S };\n","import React from 'react';\n\nvar SvgSearchIcon = function SvgSearchIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M12.323 13.383a5.5 5.5 0 1 1 1.06-1.06l2.897 2.897a.75.75 0 1 1-1.06 1.06l-2.897-2.897Zm.677-4.383a4 4 0 1 1-8 0 4 4 0 0 1 8 0Z\"\n }));\n};\nSvgSearchIcon.displayName = \"SearchIcon\";\n\nexport { SvgSearchIcon as S };\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport {\n ActionList,\n FormLayout,\n Icon,\n Stack,\n Subheading,\n TextField,\n TextStyle,\n} from '@shopify/polaris';\nimport { SearchIcon } from '@shopify/polaris-icons';\nimport React, { useState } from 'react';\n\nconst PanFilteredSelect = ({ items, title }) => {\n const [filter, setFilter] = useState('');\n\n // filter the menu item with provided filter keyword\n const choices = [];\n\n items.forEach((singleItem) => {\n const filteredItems = singleItem.items.filter(\n (item) =>\n (item.content.toLowerCase ? item.content : item.key)\n .toLowerCase()\n .indexOf(filter.toLowerCase()) > -1\n );\n\n if (filteredItems.length > 0) {\n choices.push({\n title: singleItem.title,\n items: filteredItems,\n });\n }\n });\n\n const simulateTabForDown = (evt) => {\n if (evt.keyCode === 40) {\n const listHolder = document.getElementById('list-holder');\n if (listHolder) {\n listHolder.getElementsByTagName('button')[0].focus();\n }\n }\n };\n\n return (\n
\n \n
\n setFilter('')}\n onChange={setFilter}\n clearButton\n prefix={}\n />\n
\n {title && (\n
\n \n {` ${title}`}\n \n
\n )}\n
\n {choices.length > 0 && (\n
\n \n
\n )}\n {choices.length === 0 && (\n \n No results found\n Try another search query\n \n
\n
\n
\n )}\n
\n
\n
\n );\n};\n\nexport default PanFilteredSelect;\n","/*\n * liquidjs@10.16.7, https://github.com/harttle/liquidjs\n * (c) 2016-2024 harttle\n * Released under the MIT License.\n */\nclass Token {\r\n constructor(kind, input, begin, end, file) {\r\n this.kind = kind;\r\n this.input = input;\r\n this.begin = begin;\r\n this.end = end;\r\n this.file = file;\r\n }\r\n getText() {\r\n return this.input.slice(this.begin, this.end);\r\n }\r\n getPosition() {\r\n let [row, col] = [1, 1];\r\n for (let i = 0; i < this.begin; i++) {\r\n if (this.input[i] === '\\n') {\r\n row++;\r\n col = 1;\r\n }\r\n else\r\n col++;\r\n }\r\n return [row, col];\r\n }\r\n size() {\r\n return this.end - this.begin;\r\n }\r\n}\n\nclass Drop {\r\n liquidMethodMissing(key) {\r\n return undefined;\r\n }\r\n}\n\nconst toString$1 = Object.prototype.toString;\r\nconst toLowerCase = String.prototype.toLowerCase;\r\nconst hasOwnProperty = Object.hasOwnProperty;\r\nfunction isString(value) {\r\n return typeof value === 'string';\r\n}\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction isFunction(value) {\r\n return typeof value === 'function';\r\n}\r\nfunction isPromise(val) {\r\n return val && isFunction(val.then);\r\n}\r\nfunction isIterator(val) {\r\n return val && isFunction(val.next) && isFunction(val.throw) && isFunction(val.return);\r\n}\r\nfunction escapeRegex(str) {\r\n return str.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\r\n}\r\nfunction stringify(value) {\r\n value = toValue(value);\r\n if (isString(value))\r\n return value;\r\n if (isNil(value))\r\n return '';\r\n if (isArray(value))\r\n return value.map(x => stringify(x)).join('');\r\n return String(value);\r\n}\r\nfunction toEnumerable(val) {\r\n val = toValue(val);\r\n if (isArray(val))\r\n return val;\r\n if (isString(val) && val.length > 0)\r\n return [val];\r\n if (isIterable(val))\r\n return Array.from(val);\r\n if (isObject(val))\r\n return Object.keys(val).map((key) => [key, val[key]]);\r\n return [];\r\n}\r\nfunction toArray(val) {\r\n val = toValue(val);\r\n if (isNil(val))\r\n return [];\r\n if (isArray(val))\r\n return val;\r\n return [val];\r\n}\r\nfunction toValue(value) {\r\n return (value instanceof Drop && isFunction(value.valueOf)) ? value.valueOf() : value;\r\n}\r\nfunction toNumber(value) {\r\n value = Number(value);\r\n return isNaN(value) ? 0 : value;\r\n}\r\nfunction isNumber(value) {\r\n return typeof value === 'number';\r\n}\r\nfunction toLiquid(value) {\r\n if (value && isFunction(value.toLiquid))\r\n return toLiquid(value.toLiquid());\r\n return value;\r\n}\r\nfunction isNil(value) {\r\n return value == null;\r\n}\r\nfunction isUndefined(value) {\r\n return value === undefined;\r\n}\r\nfunction isArray(value) {\r\n // be compatible with IE 8\r\n return toString$1.call(value) === '[object Array]';\r\n}\r\nfunction isIterable(value) {\r\n return isObject(value) && Symbol.iterator in value;\r\n}\r\n/*\r\n * Iterates over own enumerable string keyed properties of an object and invokes iteratee for each property.\r\n * The iteratee is invoked with three arguments: (value, key, object).\r\n * Iteratee functions may exit iteration early by explicitly returning false.\r\n * @param {Object} object The object to iterate over.\r\n * @param {Function} iteratee The function invoked per iteration.\r\n * @return {Object} Returns object.\r\n */\r\nfunction forOwn(obj, iteratee) {\r\n obj = obj || {};\r\n for (const k in obj) {\r\n if (hasOwnProperty.call(obj, k)) {\r\n if (iteratee(obj[k], k, obj) === false)\r\n break;\r\n }\r\n }\r\n return obj;\r\n}\r\nfunction last(arr) {\r\n return arr[arr.length - 1];\r\n}\r\n/*\r\n * Checks if value is the language type of Object.\r\n * (e.g. arrays, functions, objects, regexes, new Number(0), and new String(''))\r\n * @param {any} value The value to check.\r\n * @return {Boolean} Returns true if value is an object, else false.\r\n */\r\nfunction isObject(value) {\r\n const type = typeof value;\r\n return value !== null && (type === 'object' || type === 'function');\r\n}\r\nfunction range(start, stop, step = 1) {\r\n const arr = [];\r\n for (let i = start; i < stop; i += step) {\r\n arr.push(i);\r\n }\r\n return arr;\r\n}\r\nfunction padStart(str, length, ch = ' ') {\r\n return pad(str, length, ch, (str, ch) => ch + str);\r\n}\r\nfunction padEnd(str, length, ch = ' ') {\r\n return pad(str, length, ch, (str, ch) => str + ch);\r\n}\r\nfunction pad(str, length, ch, add) {\r\n str = String(str);\r\n let n = length - str.length;\r\n while (n-- > 0)\r\n str = add(str, ch);\r\n return str;\r\n}\r\nfunction identify(val) {\r\n return val;\r\n}\r\nfunction changeCase(str) {\r\n const hasLowerCase = [...str].some(ch => ch >= 'a' && ch <= 'z');\r\n return hasLowerCase ? str.toUpperCase() : str.toLowerCase();\r\n}\r\nfunction ellipsis(str, N) {\r\n return str.length > N ? str.slice(0, N - 3) + '...' : str;\r\n}\r\n// compare string in case-insensitive way, undefined values to the tail\r\nfunction caseInsensitiveCompare(a, b) {\r\n if (a == null && b == null)\r\n return 0;\r\n if (a == null)\r\n return 1;\r\n if (b == null)\r\n return -1;\r\n a = toLowerCase.call(a);\r\n b = toLowerCase.call(b);\r\n if (a < b)\r\n return -1;\r\n if (a > b)\r\n return 1;\r\n return 0;\r\n}\r\nfunction argumentsToValue(fn) {\r\n return function (...args) { return fn.call(this, ...args.map(toValue)); };\r\n}\r\nfunction escapeRegExp(text) {\r\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\r\n}\n\n/**\r\n * targeting ES5, extends Error won't create a proper prototype chain, need a trait to keep track of classes\r\n */\r\nconst TRAIT = '__liquidClass__';\r\nclass LiquidError extends Error {\r\n constructor(err, token) {\r\n /**\r\n * note: for ES5 targeting, `this` will be replaced by return value of Error(),\r\n * thus everything on `this` will be lost, avoid calling `LiquidError` methods here\r\n */\r\n super(typeof err === 'string' ? err : err.message);\r\n this.context = '';\r\n if (typeof err !== 'string')\r\n Object.defineProperty(this, 'originalError', { value: err, enumerable: false });\r\n Object.defineProperty(this, 'token', { value: token, enumerable: false });\r\n Object.defineProperty(this, TRAIT, { value: 'LiquidError', enumerable: false });\r\n }\r\n update() {\r\n Object.defineProperty(this, 'context', { value: mkContext(this.token), enumerable: false });\r\n this.message = mkMessage(this.message, this.token);\r\n this.stack = this.message + '\\n' + this.context +\r\n '\\n' + this.stack;\r\n if (this.originalError)\r\n this.stack += '\\nFrom ' + this.originalError.stack;\r\n }\r\n static is(obj) {\r\n return (obj === null || obj === void 0 ? void 0 : obj[TRAIT]) === 'LiquidError';\r\n }\r\n}\r\nclass TokenizationError extends LiquidError {\r\n constructor(message, token) {\r\n super(message, token);\r\n this.name = 'TokenizationError';\r\n super.update();\r\n }\r\n}\r\nclass ParseError extends LiquidError {\r\n constructor(err, token) {\r\n super(err, token);\r\n this.name = 'ParseError';\r\n this.message = err.message;\r\n super.update();\r\n }\r\n}\r\nclass RenderError extends LiquidError {\r\n constructor(err, tpl) {\r\n super(err, tpl.token);\r\n this.name = 'RenderError';\r\n this.message = err.message;\r\n super.update();\r\n }\r\n static is(obj) {\r\n return obj.name === 'RenderError';\r\n }\r\n}\r\nclass LiquidErrors extends LiquidError {\r\n constructor(errors) {\r\n super(errors[0], errors[0].token);\r\n this.errors = errors;\r\n this.name = 'LiquidErrors';\r\n const s = errors.length > 1 ? 's' : '';\r\n this.message = `${errors.length} error${s} found`;\r\n super.update();\r\n }\r\n static is(obj) {\r\n return obj.name === 'LiquidErrors';\r\n }\r\n}\r\nclass UndefinedVariableError extends LiquidError {\r\n constructor(err, token) {\r\n super(err, token);\r\n this.name = 'UndefinedVariableError';\r\n this.message = err.message;\r\n super.update();\r\n }\r\n}\r\n// only used internally; raised where we don't have token information,\r\n// so it can't be an UndefinedVariableError.\r\nclass InternalUndefinedVariableError extends Error {\r\n constructor(variableName) {\r\n super(`undefined variable: ${variableName}`);\r\n this.name = 'InternalUndefinedVariableError';\r\n this.variableName = variableName;\r\n }\r\n}\r\nclass AssertionError extends Error {\r\n constructor(message) {\r\n super(message);\r\n this.name = 'AssertionError';\r\n this.message = message + '';\r\n }\r\n}\r\nfunction mkContext(token) {\r\n const [line, col] = token.getPosition();\r\n const lines = token.input.split('\\n');\r\n const begin = Math.max(line - 2, 1);\r\n const end = Math.min(line + 3, lines.length);\r\n const context = range(begin, end + 1)\r\n .map(lineNumber => {\r\n const rowIndicator = (lineNumber === line) ? '>> ' : ' ';\r\n const num = padStart(String(lineNumber), String(end).length);\r\n let text = `${rowIndicator}${num}| `;\r\n const colIndicator = lineNumber === line\r\n ? '\\n' + padStart('^', col + text.length)\r\n : '';\r\n text += lines[lineNumber - 1];\r\n text += colIndicator;\r\n return text;\r\n })\r\n .join('\\n');\r\n return context;\r\n}\r\nfunction mkMessage(msg, token) {\r\n if (token.file)\r\n msg += `, file:${token.file}`;\r\n const [line, col] = token.getPosition();\r\n msg += `, line:${line}, col:${col}`;\r\n return msg;\r\n}\n\n// **DO NOT CHANGE THIS FILE**\r\n//\r\n// This file is generated by bin/character-gen.js\r\n// bitmask character types to boost performance\r\nconst TYPES = [0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 4, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 8, 0, 0, 0, 0, 8, 0, 0, 0, 64, 0, 65, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, 0, 2, 2, 2, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\r\nconst WORD = 1;\r\nconst BLANK = 4;\r\nconst QUOTE = 8;\r\nconst INLINE_BLANK = 16;\r\nconst NUMBER = 32;\r\nconst SIGN = 64;\r\nconst PUNCTUATION = 128;\r\nfunction isWord(char) {\r\n const code = char.charCodeAt(0);\r\n return code >= 128 ? !TYPES[code] : !!(TYPES[code] & WORD);\r\n}\r\nTYPES[160] = TYPES[5760] = TYPES[6158] = TYPES[8192] = TYPES[8193] = TYPES[8194] = TYPES[8195] = TYPES[8196] = TYPES[8197] = TYPES[8198] = TYPES[8199] = TYPES[8200] = TYPES[8201] = TYPES[8202] = TYPES[8232] = TYPES[8233] = TYPES[8239] = TYPES[8287] = TYPES[12288] = BLANK;\r\nTYPES[8220] = TYPES[8221] = PUNCTUATION;\n\nfunction assert(predicate, message) {\r\n if (!predicate) {\r\n const msg = typeof message === 'function'\r\n ? message()\r\n : (message || `expect ${predicate} to be true`);\r\n throw new AssertionError(msg);\r\n }\r\n}\r\nfunction assertEmpty(predicate, message = `unexpected ${JSON.stringify(predicate)}`) {\r\n assert(!predicate, message);\r\n}\n\nclass NullDrop extends Drop {\r\n equals(value) {\r\n return isNil(toValue(value));\r\n }\r\n gt() {\r\n return false;\r\n }\r\n geq() {\r\n return false;\r\n }\r\n lt() {\r\n return false;\r\n }\r\n leq() {\r\n return false;\r\n }\r\n valueOf() {\r\n return null;\r\n }\r\n}\n\nclass EmptyDrop extends Drop {\r\n equals(value) {\r\n if (value instanceof EmptyDrop)\r\n return false;\r\n value = toValue(value);\r\n if (isString(value) || isArray(value))\r\n return value.length === 0;\r\n if (isObject(value))\r\n return Object.keys(value).length === 0;\r\n return false;\r\n }\r\n gt() {\r\n return false;\r\n }\r\n geq() {\r\n return false;\r\n }\r\n lt() {\r\n return false;\r\n }\r\n leq() {\r\n return false;\r\n }\r\n valueOf() {\r\n return '';\r\n }\r\n}\n\nclass BlankDrop extends EmptyDrop {\r\n equals(value) {\r\n if (value === false)\r\n return true;\r\n if (isNil(toValue(value)))\r\n return true;\r\n if (isString(value))\r\n return /^\\s*$/.test(value);\r\n return super.equals(value);\r\n }\r\n}\n\nclass ForloopDrop extends Drop {\r\n constructor(length, collection, variable) {\r\n super();\r\n this.i = 0;\r\n this.length = length;\r\n this.name = `${variable}-${collection}`;\r\n }\r\n next() {\r\n this.i++;\r\n }\r\n index0() {\r\n return this.i;\r\n }\r\n index() {\r\n return this.i + 1;\r\n }\r\n first() {\r\n return this.i === 0;\r\n }\r\n last() {\r\n return this.i === this.length - 1;\r\n }\r\n rindex() {\r\n return this.length - this.i;\r\n }\r\n rindex0() {\r\n return this.length - this.i - 1;\r\n }\r\n valueOf() {\r\n return JSON.stringify(this);\r\n }\r\n}\n\nclass BlockDrop extends Drop {\r\n constructor(\r\n // the block render from layout template\r\n superBlockRender = () => '') {\r\n super();\r\n this.superBlockRender = superBlockRender;\r\n }\r\n /**\r\n * Provide parent access in child block by\r\n * {{ block.super }}\r\n */\r\n super() {\r\n return this.superBlockRender();\r\n }\r\n}\n\nfunction isComparable(arg) {\r\n return (arg &&\r\n isFunction(arg.equals) &&\r\n isFunction(arg.gt) &&\r\n isFunction(arg.geq) &&\r\n isFunction(arg.lt) &&\r\n isFunction(arg.leq));\r\n}\n\nconst nil = new NullDrop();\r\nconst literalValues = {\r\n 'true': true,\r\n 'false': false,\r\n 'nil': nil,\r\n 'null': nil,\r\n 'empty': new EmptyDrop(),\r\n 'blank': new BlankDrop()\r\n};\n\nfunction createTrie(input) {\r\n const trie = {};\r\n for (const [name, data] of Object.entries(input)) {\r\n let node = trie;\r\n for (let i = 0; i < name.length; i++) {\r\n const c = name[i];\r\n node[c] = node[c] || {};\r\n if (i === name.length - 1 && isWord(name[i])) {\r\n node[c].needBoundary = true;\r\n }\r\n node = node[c];\r\n }\r\n node.data = data;\r\n node.end = true;\r\n }\r\n return trie;\r\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***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\n\n// convert an async iterator to a Promise\r\nfunction toPromise(val) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!isIterator(val))\r\n return val;\r\n let value;\r\n let done = false;\r\n let next = 'next';\r\n do {\r\n const state = val[next](value);\r\n done = state.done;\r\n value = state.value;\r\n next = 'next';\r\n try {\r\n if (isIterator(value))\r\n value = toPromise(value);\r\n if (isPromise(value))\r\n value = yield value;\r\n }\r\n catch (err) {\r\n next = 'throw';\r\n value = err;\r\n }\r\n } while (!done);\r\n return value;\r\n });\r\n}\r\n// convert an async iterator to a value in a synchronous manner\r\nfunction toValueSync(val) {\r\n if (!isIterator(val))\r\n return val;\r\n let value;\r\n let done = false;\r\n let next = 'next';\r\n do {\r\n const state = val[next](value);\r\n done = state.done;\r\n value = state.value;\r\n next = 'next';\r\n if (isIterator(value)) {\r\n try {\r\n value = toValueSync(value);\r\n }\r\n catch (err) {\r\n next = 'throw';\r\n value = err;\r\n }\r\n }\r\n } while (!done);\r\n return value;\r\n}\n\nconst rFormat = /%([-_0^#:]+)?(\\d+)?([EO])?(.)/;\r\n// prototype extensions\r\nfunction daysInMonth(d) {\r\n const feb = isLeapYear(d) ? 29 : 28;\r\n return [31, feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n}\r\nfunction getDayOfYear(d) {\r\n let num = 0;\r\n for (let i = 0; i < d.getMonth(); ++i) {\r\n num += daysInMonth(d)[i];\r\n }\r\n return num + d.getDate();\r\n}\r\nfunction getWeekOfYear(d, startDay) {\r\n // Skip to startDay of this week\r\n const now = getDayOfYear(d) + (startDay - d.getDay());\r\n // Find the first startDay of the year\r\n const jan1 = new Date(d.getFullYear(), 0, 1);\r\n const then = (7 - jan1.getDay() + startDay);\r\n return String(Math.floor((now - then) / 7) + 1);\r\n}\r\nfunction isLeapYear(d) {\r\n const year = d.getFullYear();\r\n return !!((year & 3) === 0 && (year % 100 || (year % 400 === 0 && year)));\r\n}\r\nfunction ordinal(d) {\r\n const date = d.getDate();\r\n if ([11, 12, 13].includes(date))\r\n return 'th';\r\n switch (date % 10) {\r\n case 1: return 'st';\r\n case 2: return 'nd';\r\n case 3: return 'rd';\r\n default: return 'th';\r\n }\r\n}\r\nfunction century(d) {\r\n return parseInt(d.getFullYear().toString().substring(0, 2), 10);\r\n}\r\n// default to 0\r\nconst padWidths = {\r\n d: 2,\r\n e: 2,\r\n H: 2,\r\n I: 2,\r\n j: 3,\r\n k: 2,\r\n l: 2,\r\n L: 3,\r\n m: 2,\r\n M: 2,\r\n S: 2,\r\n U: 2,\r\n W: 2\r\n};\r\nconst padSpaceChars = new Set('aAbBceklpP');\r\nfunction getTimezoneOffset(d, opts) {\r\n const nOffset = Math.abs(d.getTimezoneOffset());\r\n const h = Math.floor(nOffset / 60);\r\n const m = nOffset % 60;\r\n return (d.getTimezoneOffset() > 0 ? '-' : '+') +\r\n padStart(h, 2, '0') +\r\n (opts.flags[':'] ? ':' : '') +\r\n padStart(m, 2, '0');\r\n}\r\nconst formatCodes = {\r\n a: (d) => d.getShortWeekdayName(),\r\n A: (d) => d.getLongWeekdayName(),\r\n b: (d) => d.getShortMonthName(),\r\n B: (d) => d.getLongMonthName(),\r\n c: (d) => d.toLocaleString(),\r\n C: (d) => century(d),\r\n d: (d) => d.getDate(),\r\n e: (d) => d.getDate(),\r\n H: (d) => d.getHours(),\r\n I: (d) => String(d.getHours() % 12 || 12),\r\n j: (d) => getDayOfYear(d),\r\n k: (d) => d.getHours(),\r\n l: (d) => String(d.getHours() % 12 || 12),\r\n L: (d) => d.getMilliseconds(),\r\n m: (d) => d.getMonth() + 1,\r\n M: (d) => d.getMinutes(),\r\n N: (d, opts) => {\r\n const width = Number(opts.width) || 9;\r\n const str = String(d.getMilliseconds()).slice(0, width);\r\n return padEnd(str, width, '0');\r\n },\r\n p: (d) => (d.getHours() < 12 ? 'AM' : 'PM'),\r\n P: (d) => (d.getHours() < 12 ? 'am' : 'pm'),\r\n q: (d) => ordinal(d),\r\n s: (d) => Math.round(d.getTime() / 1000),\r\n S: (d) => d.getSeconds(),\r\n u: (d) => d.getDay() || 7,\r\n U: (d) => getWeekOfYear(d, 0),\r\n w: (d) => d.getDay(),\r\n W: (d) => getWeekOfYear(d, 1),\r\n x: (d) => d.toLocaleDateString(),\r\n X: (d) => d.toLocaleTimeString(),\r\n y: (d) => d.getFullYear().toString().slice(2, 4),\r\n Y: (d) => d.getFullYear(),\r\n z: getTimezoneOffset,\r\n Z: (d, opts) => d.getTimeZoneName() || getTimezoneOffset(d, opts),\r\n 't': () => '\\t',\r\n 'n': () => '\\n',\r\n '%': () => '%'\r\n};\r\nformatCodes.h = formatCodes.b;\r\nfunction strftime(d, formatStr) {\r\n let output = '';\r\n let remaining = formatStr;\r\n let match;\r\n while ((match = rFormat.exec(remaining))) {\r\n output += remaining.slice(0, match.index);\r\n remaining = remaining.slice(match.index + match[0].length);\r\n output += format(d, match);\r\n }\r\n return output + remaining;\r\n}\r\nfunction format(d, match) {\r\n const [input, flagStr = '', width, modifier, conversion] = match;\r\n const convert = formatCodes[conversion];\r\n if (!convert)\r\n return input;\r\n const flags = {};\r\n for (const flag of flagStr)\r\n flags[flag] = true;\r\n let ret = String(convert(d, { flags, width, modifier }));\r\n let padChar = padSpaceChars.has(conversion) ? ' ' : '0';\r\n let padWidth = width || padWidths[conversion] || 0;\r\n if (flags['^'])\r\n ret = ret.toUpperCase();\r\n else if (flags['#'])\r\n ret = changeCase(ret);\r\n if (flags['_'])\r\n padChar = ' ';\r\n else if (flags['0'])\r\n padChar = '0';\r\n if (flags['-'])\r\n padWidth = 0;\r\n return padStart(ret, padWidth, padChar);\r\n}\n\nfunction getDateTimeFormat() {\r\n return (typeof Intl !== 'undefined' ? Intl.DateTimeFormat : undefined);\r\n}\n\n// one minute in milliseconds\r\nconst OneMinute = 60000;\r\nconst ISO8601_TIMEZONE_PATTERN = /([zZ]|([+-])(\\d{2}):(\\d{2}))$/;\r\nconst monthNames = [\r\n 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August',\r\n 'September', 'October', 'November', 'December'\r\n];\r\nconst monthNamesShort = monthNames.map(name => name.slice(0, 3));\r\nconst dayNames = [\r\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'\r\n];\r\nconst dayNamesShort = dayNames.map(name => name.slice(0, 3));\r\n/**\r\n * A date implementation with timezone info, just like Ruby date\r\n *\r\n * Implementation:\r\n * - create a Date offset by it's timezone difference, avoiding overriding a bunch of methods\r\n * - rewrite getTimezoneOffset() to trick strftime\r\n */\r\nclass LiquidDate {\r\n constructor(init, locale, timezone) {\r\n this.locale = locale;\r\n this.DateTimeFormat = getDateTimeFormat();\r\n this.date = new Date(init);\r\n this.timezoneFixed = timezone !== undefined;\r\n if (timezone === undefined) {\r\n timezone = this.date.getTimezoneOffset();\r\n }\r\n this.timezoneOffset = isString(timezone) ? LiquidDate.getTimezoneOffset(timezone, this.date) : timezone;\r\n this.timezoneName = isString(timezone) ? timezone : '';\r\n const diff = (this.date.getTimezoneOffset() - this.timezoneOffset) * OneMinute;\r\n const time = this.date.getTime() + diff;\r\n this.displayDate = new Date(time);\r\n }\r\n getTime() {\r\n return this.displayDate.getTime();\r\n }\r\n getMilliseconds() {\r\n return this.displayDate.getMilliseconds();\r\n }\r\n getSeconds() {\r\n return this.displayDate.getSeconds();\r\n }\r\n getMinutes() {\r\n return this.displayDate.getMinutes();\r\n }\r\n getHours() {\r\n return this.displayDate.getHours();\r\n }\r\n getDay() {\r\n return this.displayDate.getDay();\r\n }\r\n getDate() {\r\n return this.displayDate.getDate();\r\n }\r\n getMonth() {\r\n return this.displayDate.getMonth();\r\n }\r\n getFullYear() {\r\n return this.displayDate.getFullYear();\r\n }\r\n toLocaleString(locale, init) {\r\n if (init === null || init === void 0 ? void 0 : init.timeZone) {\r\n return this.date.toLocaleString(locale, init);\r\n }\r\n return this.displayDate.toLocaleString(locale, init);\r\n }\r\n toLocaleTimeString(locale) {\r\n return this.displayDate.toLocaleTimeString(locale);\r\n }\r\n toLocaleDateString(locale) {\r\n return this.displayDate.toLocaleDateString(locale);\r\n }\r\n getTimezoneOffset() {\r\n return this.timezoneOffset;\r\n }\r\n getTimeZoneName() {\r\n if (this.timezoneFixed)\r\n return this.timezoneName;\r\n if (!this.DateTimeFormat)\r\n return;\r\n return this.DateTimeFormat().resolvedOptions().timeZone;\r\n }\r\n getLongMonthName() {\r\n var _a;\r\n return (_a = this.format({ month: 'long' })) !== null && _a !== void 0 ? _a : monthNames[this.getMonth()];\r\n }\r\n getShortMonthName() {\r\n var _a;\r\n return (_a = this.format({ month: 'short' })) !== null && _a !== void 0 ? _a : monthNamesShort[this.getMonth()];\r\n }\r\n getLongWeekdayName() {\r\n var _a;\r\n return (_a = this.format({ weekday: 'long' })) !== null && _a !== void 0 ? _a : dayNames[this.displayDate.getDay()];\r\n }\r\n getShortWeekdayName() {\r\n var _a;\r\n return (_a = this.format({ weekday: 'short' })) !== null && _a !== void 0 ? _a : dayNamesShort[this.displayDate.getDay()];\r\n }\r\n valid() {\r\n return !isNaN(this.getTime());\r\n }\r\n format(options) {\r\n return this.DateTimeFormat && this.DateTimeFormat(this.locale, options).format(this.displayDate);\r\n }\r\n /**\r\n * Create a Date object fixed to it's declared Timezone. Both\r\n * - 2021-08-06T02:29:00.000Z and\r\n * - 2021-08-06T02:29:00.000+08:00\r\n * will always be displayed as\r\n * - 2021-08-06 02:29:00\r\n * regardless timezoneOffset in JavaScript realm\r\n *\r\n * The implementation hack:\r\n * Instead of calling `.getMonth()`/`.getUTCMonth()` respect to `preserveTimezones`,\r\n * we create a different Date to trick strftime, it's both simpler and more performant.\r\n * Given that a template is expected to be parsed fewer times than rendered.\r\n */\r\n static createDateFixedToTimezone(dateString, locale) {\r\n const m = dateString.match(ISO8601_TIMEZONE_PATTERN);\r\n // representing a UTC timestamp\r\n if (m && m[1] === 'Z') {\r\n return new LiquidDate(+new Date(dateString), locale, 0);\r\n }\r\n // has a timezone specified\r\n if (m && m[2] && m[3] && m[4]) {\r\n const [, , sign, hours, minutes] = m;\r\n const offset = (sign === '+' ? -1 : 1) * (parseInt(hours, 10) * 60 + parseInt(minutes, 10));\r\n return new LiquidDate(+new Date(dateString), locale, offset);\r\n }\r\n return new LiquidDate(dateString, locale);\r\n }\r\n static getTimezoneOffset(timezoneName, date) {\r\n const localDateString = date.toLocaleString('en-US', { timeZone: timezoneName });\r\n const utcDateString = date.toLocaleString('en-US', { timeZone: 'UTC' });\r\n const localDate = new Date(localDateString);\r\n const utcDate = new Date(utcDateString);\r\n return (+utcDate - +localDate) / (60 * 1000);\r\n }\r\n}\n\nclass Limiter {\r\n constructor(resource, limit) {\r\n this.base = 0;\r\n this.message = `${resource} limit exceeded`;\r\n this.limit = limit;\r\n }\r\n use(count) {\r\n count = toNumber(count);\r\n assert(this.base + count <= this.limit, this.message);\r\n this.base += count;\r\n }\r\n check(count) {\r\n count = toNumber(count);\r\n assert(count <= this.limit, this.message);\r\n }\r\n}\n\nclass DelimitedToken extends Token {\r\n constructor(kind, [contentBegin, contentEnd], input, begin, end, trimLeft, trimRight, file) {\r\n super(kind, input, begin, end, file);\r\n this.trimLeft = false;\r\n this.trimRight = false;\r\n const tl = input[contentBegin] === '-';\r\n const tr = input[contentEnd - 1] === '-';\r\n let l = tl ? contentBegin + 1 : contentBegin;\r\n let r = tr ? contentEnd - 1 : contentEnd;\r\n while (l < r && (TYPES[input.charCodeAt(l)] & BLANK))\r\n l++;\r\n while (r > l && (TYPES[input.charCodeAt(r - 1)] & BLANK))\r\n r--;\r\n this.contentRange = [l, r];\r\n this.trimLeft = tl || trimLeft;\r\n this.trimRight = tr || trimRight;\r\n }\r\n get content() {\r\n return this.input.slice(this.contentRange[0], this.contentRange[1]);\r\n }\r\n}\n\nclass TagToken extends DelimitedToken {\r\n constructor(input, begin, end, options, file) {\r\n const { trimTagLeft, trimTagRight, tagDelimiterLeft, tagDelimiterRight } = options;\r\n const [valueBegin, valueEnd] = [begin + tagDelimiterLeft.length, end - tagDelimiterRight.length];\r\n super(TokenKind.Tag, [valueBegin, valueEnd], input, begin, end, trimTagLeft, trimTagRight, file);\r\n this.tokenizer = new Tokenizer(input, options.operators, file, this.contentRange);\r\n this.name = this.tokenizer.readTagName();\r\n this.tokenizer.assert(this.name, `illegal tag syntax, tag name expected`);\r\n this.tokenizer.skipBlank();\r\n }\r\n get args() {\r\n return this.tokenizer.input.slice(this.tokenizer.p, this.contentRange[1]);\r\n }\r\n}\n\nclass OutputToken extends DelimitedToken {\r\n constructor(input, begin, end, options, file) {\r\n const { trimOutputLeft, trimOutputRight, outputDelimiterLeft, outputDelimiterRight } = options;\r\n const valueRange = [begin + outputDelimiterLeft.length, end - outputDelimiterRight.length];\r\n super(TokenKind.Output, valueRange, input, begin, end, trimOutputLeft, trimOutputRight, file);\r\n }\r\n}\n\nclass HTMLToken extends Token {\r\n constructor(input, begin, end, file) {\r\n super(TokenKind.HTML, input, begin, end, file);\r\n this.input = input;\r\n this.begin = begin;\r\n this.end = end;\r\n this.file = file;\r\n this.trimLeft = 0;\r\n this.trimRight = 0;\r\n }\r\n getContent() {\r\n return this.input.slice(this.begin + this.trimLeft, this.end - this.trimRight);\r\n }\r\n}\n\nclass NumberToken extends Token {\r\n constructor(input, begin, end, file) {\r\n super(TokenKind.Number, input, begin, end, file);\r\n this.input = input;\r\n this.begin = begin;\r\n this.end = end;\r\n this.file = file;\r\n this.content = Number(this.getText());\r\n }\r\n}\n\nclass IdentifierToken extends Token {\r\n constructor(input, begin, end, file) {\r\n super(TokenKind.Word, input, begin, end, file);\r\n this.input = input;\r\n this.begin = begin;\r\n this.end = end;\r\n this.file = file;\r\n this.content = this.getText();\r\n }\r\n}\n\nclass LiteralToken extends Token {\r\n constructor(input, begin, end, file) {\r\n super(TokenKind.Literal, input, begin, end, file);\r\n this.input = input;\r\n this.begin = begin;\r\n this.end = end;\r\n this.file = file;\r\n this.literal = this.getText();\r\n this.content = literalValues[this.literal];\r\n }\r\n}\n\nconst operatorPrecedences = {\r\n '==': 2,\r\n '!=': 2,\r\n '>': 2,\r\n '<': 2,\r\n '>=': 2,\r\n '<=': 2,\r\n 'contains': 2,\r\n 'not': 1,\r\n 'and': 0,\r\n 'or': 0\r\n};\r\nconst operatorTypes = {\r\n '==': 0 /* OperatorType.Binary */,\r\n '!=': 0 /* OperatorType.Binary */,\r\n '>': 0 /* OperatorType.Binary */,\r\n '<': 0 /* OperatorType.Binary */,\r\n '>=': 0 /* OperatorType.Binary */,\r\n '<=': 0 /* OperatorType.Binary */,\r\n 'contains': 0 /* OperatorType.Binary */,\r\n 'not': 1 /* OperatorType.Unary */,\r\n 'and': 0 /* OperatorType.Binary */,\r\n 'or': 0 /* OperatorType.Binary */\r\n};\r\nclass OperatorToken extends Token {\r\n constructor(input, begin, end, file) {\r\n super(TokenKind.Operator, input, begin, end, file);\r\n this.input = input;\r\n this.begin = begin;\r\n this.end = end;\r\n this.file = file;\r\n this.operator = this.getText();\r\n }\r\n getPrecedence() {\r\n const key = this.getText();\r\n return key in operatorPrecedences ? operatorPrecedences[key] : 1;\r\n }\r\n}\n\nclass PropertyAccessToken extends Token {\r\n constructor(variable, props, input, begin, end, file) {\r\n super(TokenKind.PropertyAccess, input, begin, end, file);\r\n this.variable = variable;\r\n this.props = props;\r\n }\r\n}\n\nclass FilterToken extends Token {\r\n constructor(name, args, input, begin, end, file) {\r\n super(TokenKind.Filter, input, begin, end, file);\r\n this.name = name;\r\n this.args = args;\r\n }\r\n}\n\nclass HashToken extends Token {\r\n constructor(input, begin, end, name, value, file) {\r\n super(TokenKind.Hash, input, begin, end, file);\r\n this.input = input;\r\n this.begin = begin;\r\n this.end = end;\r\n this.name = name;\r\n this.value = value;\r\n this.file = file;\r\n }\r\n}\n\nconst rHex = /[\\da-fA-F]/;\r\nconst rOct = /[0-7]/;\r\nconst escapeChar = {\r\n b: '\\b',\r\n f: '\\f',\r\n n: '\\n',\r\n r: '\\r',\r\n t: '\\t',\r\n v: '\\x0B'\r\n};\r\nfunction hexVal(c) {\r\n const code = c.charCodeAt(0);\r\n if (code >= 97)\r\n return code - 87;\r\n if (code >= 65)\r\n return code - 55;\r\n return code - 48;\r\n}\r\nfunction parseStringLiteral(str) {\r\n let ret = '';\r\n for (let i = 1; i < str.length - 1; i++) {\r\n if (str[i] !== '\\\\') {\r\n ret += str[i];\r\n continue;\r\n }\r\n if (escapeChar[str[i + 1]] !== undefined) {\r\n ret += escapeChar[str[++i]];\r\n }\r\n else if (str[i + 1] === 'u') {\r\n let val = 0;\r\n let j = i + 2;\r\n while (j <= i + 5 && rHex.test(str[j])) {\r\n val = val * 16 + hexVal(str[j++]);\r\n }\r\n i = j - 1;\r\n ret += String.fromCharCode(val);\r\n }\r\n else if (!rOct.test(str[i + 1])) {\r\n ret += str[++i];\r\n }\r\n else {\r\n let j = i + 1;\r\n let val = 0;\r\n while (j <= i + 3 && rOct.test(str[j])) {\r\n val = val * 8 + hexVal(str[j++]);\r\n }\r\n i = j - 1;\r\n ret += String.fromCharCode(val);\r\n }\r\n }\r\n return ret;\r\n}\n\nclass QuotedToken extends Token {\r\n constructor(input, begin, end, file) {\r\n super(TokenKind.Quoted, input, begin, end, file);\r\n this.input = input;\r\n this.begin = begin;\r\n this.end = end;\r\n this.file = file;\r\n this.content = parseStringLiteral(this.getText());\r\n }\r\n}\n\nclass RangeToken extends Token {\r\n constructor(input, begin, end, lhs, rhs, file) {\r\n super(TokenKind.Range, input, begin, end, file);\r\n this.input = input;\r\n this.begin = begin;\r\n this.end = end;\r\n this.lhs = lhs;\r\n this.rhs = rhs;\r\n this.file = file;\r\n }\r\n}\n\n/**\r\n * LiquidTagToken is different from TagToken by not having delimiters `{%` or `%}`\r\n */\r\nclass LiquidTagToken extends DelimitedToken {\r\n constructor(input, begin, end, options, file) {\r\n super(TokenKind.Tag, [begin, end], input, begin, end, false, false, file);\r\n this.tokenizer = new Tokenizer(input, options.operators, file, this.contentRange);\r\n this.name = this.tokenizer.readTagName();\r\n this.tokenizer.assert(this.name, 'illegal liquid tag syntax');\r\n this.tokenizer.skipBlank();\r\n this.args = this.tokenizer.remaining();\r\n }\r\n}\n\n/**\r\n * value expression with optional filters\r\n * e.g.\r\n * {% assign foo=\"bar\" | append: \"coo\" %}\r\n */\r\nclass FilteredValueToken extends Token {\r\n constructor(initial, filters, input, begin, end, file) {\r\n super(TokenKind.FilteredValue, input, begin, end, file);\r\n this.initial = initial;\r\n this.filters = filters;\r\n this.input = input;\r\n this.begin = begin;\r\n this.end = end;\r\n this.file = file;\r\n }\r\n}\n\nconst polyfill = {\r\n now: () => Date.now()\r\n};\r\nfunction getPerformance() {\r\n return (typeof global === 'object' && global.performance) ||\r\n (typeof window === 'object' && window.performance) ||\r\n polyfill;\r\n}\n\nclass SimpleEmitter {\r\n constructor() {\r\n this.buffer = '';\r\n }\r\n write(html) {\r\n this.buffer += stringify(html);\r\n }\r\n}\n\nclass StreamedEmitter {\r\n constructor() {\r\n this.buffer = '';\r\n this.stream = null;\r\n throw new Error('streaming not supported in browser');\r\n }\r\n}\n\nclass KeepingTypeEmitter {\r\n constructor() {\r\n this.buffer = '';\r\n }\r\n write(html) {\r\n html = toValue(html);\r\n // This will only preserve the type if the value is isolated.\r\n // I.E:\r\n // {{ my-port }} -> 42\r\n // {{ my-host }}:{{ my-port }} -> 'host:42'\r\n if (typeof html !== 'string' && this.buffer === '') {\r\n this.buffer = html;\r\n }\r\n else {\r\n this.buffer = stringify(this.buffer) + stringify(html);\r\n }\r\n }\r\n}\n\nclass Render {\r\n renderTemplatesToNodeStream(templates, ctx) {\r\n const emitter = new StreamedEmitter();\r\n Promise.resolve().then(() => toPromise(this.renderTemplates(templates, ctx, emitter)))\r\n .then(() => emitter.end(), err => emitter.error(err));\r\n return emitter.stream;\r\n }\r\n *renderTemplates(templates, ctx, emitter) {\r\n if (!emitter) {\r\n emitter = ctx.opts.keepOutputType ? new KeepingTypeEmitter() : new SimpleEmitter();\r\n }\r\n const errors = [];\r\n for (const tpl of templates) {\r\n ctx.renderLimit.check(getPerformance().now());\r\n try {\r\n // if tpl.render supports emitter, it'll return empty `html`\r\n const html = yield tpl.render(ctx, emitter);\r\n // if not, it'll return an `html`, write to the emitter for it\r\n html && emitter.write(html);\r\n if (emitter['break'] || emitter['continue'])\r\n break;\r\n }\r\n catch (e) {\r\n const err = LiquidError.is(e) ? e : new RenderError(e, tpl);\r\n if (ctx.opts.catchAllErrors)\r\n errors.push(err);\r\n else\r\n throw err;\r\n }\r\n }\r\n if (errors.length) {\r\n throw new LiquidErrors(errors);\r\n }\r\n return emitter.buffer;\r\n }\r\n}\n\nclass Expression {\r\n constructor(tokens) {\r\n this.postfix = [...toPostfix(tokens)];\r\n }\r\n *evaluate(ctx, lenient) {\r\n assert(ctx, 'unable to evaluate: context not defined');\r\n const operands = [];\r\n for (const token of this.postfix) {\r\n if (isOperatorToken(token)) {\r\n const r = operands.pop();\r\n let result;\r\n if (operatorTypes[token.operator] === 1 /* OperatorType.Unary */) {\r\n result = yield ctx.opts.operators[token.operator](r, ctx);\r\n }\r\n else {\r\n const l = operands.pop();\r\n result = yield ctx.opts.operators[token.operator](l, r, ctx);\r\n }\r\n operands.push(result);\r\n }\r\n else {\r\n operands.push(yield evalToken(token, ctx, lenient));\r\n }\r\n }\r\n return operands[0];\r\n }\r\n valid() {\r\n return !!this.postfix.length;\r\n }\r\n}\r\nfunction* evalToken(token, ctx, lenient = false) {\r\n if (!token)\r\n return;\r\n if ('content' in token)\r\n return token.content;\r\n if (isPropertyAccessToken(token))\r\n return yield evalPropertyAccessToken(token, ctx, lenient);\r\n if (isRangeToken(token))\r\n return yield evalRangeToken(token, ctx);\r\n}\r\nfunction* evalPropertyAccessToken(token, ctx, lenient) {\r\n const props = [];\r\n for (const prop of token.props) {\r\n props.push((yield evalToken(prop, ctx, false)));\r\n }\r\n try {\r\n if (token.variable) {\r\n const variable = yield evalToken(token.variable, ctx, lenient);\r\n return yield ctx._getFromScope(variable, props);\r\n }\r\n else {\r\n return yield ctx._get(props);\r\n }\r\n }\r\n catch (e) {\r\n if (lenient && e.name === 'InternalUndefinedVariableError')\r\n return null;\r\n throw (new UndefinedVariableError(e, token));\r\n }\r\n}\r\nfunction evalQuotedToken(token) {\r\n return token.content;\r\n}\r\nfunction* evalRangeToken(token, ctx) {\r\n const low = yield evalToken(token.lhs, ctx);\r\n const high = yield evalToken(token.rhs, ctx);\r\n return range(+low, +high + 1);\r\n}\r\nfunction* toPostfix(tokens) {\r\n const ops = [];\r\n for (const token of tokens) {\r\n if (isOperatorToken(token)) {\r\n while (ops.length && ops[ops.length - 1].getPrecedence() > token.getPrecedence()) {\r\n yield ops.pop();\r\n }\r\n ops.push(token);\r\n }\r\n else\r\n yield token;\r\n }\r\n while (ops.length) {\r\n yield ops.pop();\r\n }\r\n}\n\nfunction isTruthy(val, ctx) {\r\n return !isFalsy(val, ctx);\r\n}\r\nfunction isFalsy(val, ctx) {\r\n val = toValue(val);\r\n if (ctx.opts.jsTruthy) {\r\n return !val;\r\n }\r\n else {\r\n return val === false || undefined === val || val === null;\r\n }\r\n}\n\nconst defaultOperators = {\r\n '==': equals,\r\n '!=': (l, r) => !equals(l, r),\r\n '>': (l, r) => {\r\n if (isComparable(l))\r\n return l.gt(r);\r\n if (isComparable(r))\r\n return r.lt(l);\r\n return toValue(l) > toValue(r);\r\n },\r\n '<': (l, r) => {\r\n if (isComparable(l))\r\n return l.lt(r);\r\n if (isComparable(r))\r\n return r.gt(l);\r\n return toValue(l) < toValue(r);\r\n },\r\n '>=': (l, r) => {\r\n if (isComparable(l))\r\n return l.geq(r);\r\n if (isComparable(r))\r\n return r.leq(l);\r\n return toValue(l) >= toValue(r);\r\n },\r\n '<=': (l, r) => {\r\n if (isComparable(l))\r\n return l.leq(r);\r\n if (isComparable(r))\r\n return r.geq(l);\r\n return toValue(l) <= toValue(r);\r\n },\r\n 'contains': (l, r) => {\r\n l = toValue(l);\r\n if (isArray(l))\r\n return l.some((i) => equals(i, r));\r\n if (isFunction(l === null || l === void 0 ? void 0 : l.indexOf))\r\n return l.indexOf(toValue(r)) > -1;\r\n return false;\r\n },\r\n 'not': (v, ctx) => isFalsy(toValue(v), ctx),\r\n 'and': (l, r, ctx) => isTruthy(toValue(l), ctx) && isTruthy(toValue(r), ctx),\r\n 'or': (l, r, ctx) => isTruthy(toValue(l), ctx) || isTruthy(toValue(r), ctx)\r\n};\r\nfunction equals(lhs, rhs) {\r\n if (isComparable(lhs))\r\n return lhs.equals(rhs);\r\n if (isComparable(rhs))\r\n return rhs.equals(lhs);\r\n lhs = toValue(lhs);\r\n rhs = toValue(rhs);\r\n if (isArray(lhs)) {\r\n return isArray(rhs) && arrayEquals(lhs, rhs);\r\n }\r\n return lhs === rhs;\r\n}\r\nfunction arrayEquals(lhs, rhs) {\r\n if (lhs.length !== rhs.length)\r\n return false;\r\n return !lhs.some((value, i) => !equals(value, rhs[i]));\r\n}\n\nclass Node {\r\n constructor(key, value, next, prev) {\r\n this.key = key;\r\n this.value = value;\r\n this.next = next;\r\n this.prev = prev;\r\n }\r\n}\r\nclass LRU {\r\n constructor(limit, size = 0) {\r\n this.limit = limit;\r\n this.size = size;\r\n this.cache = {};\r\n this.head = new Node('HEAD', null, null, null);\r\n this.tail = new Node('TAIL', null, null, null);\r\n this.head.next = this.tail;\r\n this.tail.prev = this.head;\r\n }\r\n write(key, value) {\r\n if (this.cache[key]) {\r\n this.cache[key].value = value;\r\n }\r\n else {\r\n const node = new Node(key, value, this.head.next, this.head);\r\n this.head.next.prev = node;\r\n this.head.next = node;\r\n this.cache[key] = node;\r\n this.size++;\r\n this.ensureLimit();\r\n }\r\n }\r\n read(key) {\r\n if (!this.cache[key])\r\n return;\r\n const { value } = this.cache[key];\r\n this.remove(key);\r\n this.write(key, value);\r\n return value;\r\n }\r\n remove(key) {\r\n const node = this.cache[key];\r\n node.prev.next = node.next;\r\n node.next.prev = node.prev;\r\n delete this.cache[key];\r\n this.size--;\r\n }\r\n clear() {\r\n this.head.next = this.tail;\r\n this.tail.prev = this.head;\r\n this.size = 0;\r\n this.cache = {};\r\n }\r\n ensureLimit() {\r\n if (this.size > this.limit)\r\n this.remove(this.tail.prev.key);\r\n }\r\n}\n\nfunction domResolve(root, path) {\r\n const base = document.createElement('base');\r\n base.href = root;\r\n const head = document.getElementsByTagName('head')[0];\r\n head.insertBefore(base, head.firstChild);\r\n const a = document.createElement('a');\r\n a.href = path;\r\n const resolved = a.href;\r\n head.removeChild(base);\r\n return resolved;\r\n}\r\nfunction resolve(root, filepath, ext) {\r\n if (root.length && last(root) !== '/')\r\n root += '/';\r\n const url = domResolve(root, filepath);\r\n return url.replace(/^(\\w+:\\/\\/[^/]+)(\\/[^?]+)/, (str, origin, path) => {\r\n const last = path.split('/').pop();\r\n if (/\\.\\w+$/.test(last))\r\n return str;\r\n return origin + path + ext;\r\n });\r\n}\r\nfunction readFile(url) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(xhr.responseText);\r\n }\r\n else {\r\n reject(new Error(xhr.statusText));\r\n }\r\n };\r\n xhr.onerror = () => {\r\n reject(new Error('An error occurred whilst receiving the response.'));\r\n };\r\n xhr.open('GET', url);\r\n xhr.send();\r\n });\r\n });\r\n}\r\nfunction readFileSync(url) {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, false);\r\n xhr.send();\r\n if (xhr.status < 200 || xhr.status >= 300) {\r\n throw new Error(xhr.statusText);\r\n }\r\n return xhr.responseText;\r\n}\r\nfunction exists(filepath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return true;\r\n });\r\n}\r\nfunction existsSync(filepath) {\r\n return true;\r\n}\r\nfunction dirname(filepath) {\r\n return domResolve(filepath, '.');\r\n}\r\nconst sep = '/';\n\nvar fs = /*#__PURE__*/Object.freeze({\n __proto__: null,\n resolve: resolve,\n readFile: readFile,\n readFileSync: readFileSync,\n exists: exists,\n existsSync: existsSync,\n dirname: dirname,\n sep: sep\n});\n\nfunction defaultFilter(value, defaultValue, ...args) {\r\n value = toValue(value);\r\n if (isArray(value) || isString(value))\r\n return value.length ? value : defaultValue;\r\n if (value === false && (new Map(args)).get('allow_false'))\r\n return false;\r\n return isFalsy(value, this.context) ? defaultValue : value;\r\n}\r\nfunction json(value, space = 0) {\r\n return JSON.stringify(value, null, space);\r\n}\r\nfunction inspect(value, space = 0) {\r\n const ancestors = [];\r\n return JSON.stringify(value, function (_key, value) {\r\n if (typeof value !== 'object' || value === null)\r\n return value;\r\n // `this` is the object that value is contained in, i.e., its direct parent.\r\n while (ancestors.length > 0 && ancestors[ancestors.length - 1] !== this)\r\n ancestors.pop();\r\n if (ancestors.includes(value))\r\n return '[Circular]';\r\n ancestors.push(value);\r\n return value;\r\n }, space);\r\n}\r\nfunction to_integer(value) {\r\n return Number(value);\r\n}\r\nconst raw = {\r\n raw: true,\r\n handler: identify\r\n};\r\nvar misc = {\r\n default: defaultFilter,\r\n raw,\r\n jsonify: json,\r\n to_integer,\r\n json,\r\n inspect\r\n};\n\nconst escapeMap = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n \"'\": '''\r\n};\r\nconst unescapeMap = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '"': '\"',\r\n ''': \"'\"\r\n};\r\nfunction escape(str) {\r\n str = stringify(str);\r\n this.context.memoryLimit.use(str.length);\r\n return str.replace(/&|<|>|\"|'/g, m => escapeMap[m]);\r\n}\r\nfunction xml_escape(str) {\r\n return escape.call(this, str);\r\n}\r\nfunction unescape(str) {\r\n str = stringify(str);\r\n this.context.memoryLimit.use(str.length);\r\n return str.replace(/&(amp|lt|gt|#34|#39);/g, m => unescapeMap[m]);\r\n}\r\nfunction escape_once(str) {\r\n return escape.call(this, unescape.call(this, str));\r\n}\r\nfunction newline_to_br(v) {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n return str.replace(/\\r?\\n/gm, '
\\n');\r\n}\r\nfunction strip_html(v) {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n return str.replace(/||<.*?>|/g, '');\r\n}\n\nvar htmlFilters = /*#__PURE__*/Object.freeze({\n __proto__: null,\n escape: escape,\n xml_escape: xml_escape,\n escape_once: escape_once,\n newline_to_br: newline_to_br,\n strip_html: strip_html\n});\n\nclass MapFS {\r\n constructor(mapping) {\r\n this.mapping = mapping;\r\n this.sep = '/';\r\n }\r\n exists(filepath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return this.existsSync(filepath);\r\n });\r\n }\r\n existsSync(filepath) {\r\n return !isNil(this.mapping[filepath]);\r\n }\r\n readFile(filepath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return this.readFileSync(filepath);\r\n });\r\n }\r\n readFileSync(filepath) {\r\n const content = this.mapping[filepath];\r\n if (isNil(content))\r\n throw new Error(`ENOENT: ${filepath}`);\r\n return content;\r\n }\r\n dirname(filepath) {\r\n const segments = filepath.split(this.sep);\r\n segments.pop();\r\n return segments.join(this.sep);\r\n }\r\n resolve(dir, file, ext) {\r\n file += ext;\r\n if (dir === '.')\r\n return file;\r\n const segments = dir.split(/\\/+/);\r\n for (const segment of file.split(this.sep)) {\r\n if (segment === '.' || segment === '')\r\n continue;\r\n else if (segment === '..') {\r\n if (segments.length > 1 || segments[0] !== '')\r\n segments.pop();\r\n }\r\n else\r\n segments.push(segment);\r\n }\r\n return segments.join(this.sep);\r\n }\r\n}\n\nconst defaultOptions = {\r\n root: ['.'],\r\n layouts: ['.'],\r\n partials: ['.'],\r\n relativeReference: true,\r\n jekyllInclude: false,\r\n cache: undefined,\r\n extname: '',\r\n fs: fs,\r\n dynamicPartials: true,\r\n jsTruthy: false,\r\n dateFormat: '%A, %B %-e, %Y at %-l:%M %P %z',\r\n locale: '',\r\n trimTagRight: false,\r\n trimTagLeft: false,\r\n trimOutputRight: false,\r\n trimOutputLeft: false,\r\n greedy: true,\r\n tagDelimiterLeft: '{%',\r\n tagDelimiterRight: '%}',\r\n outputDelimiterLeft: '{{',\r\n outputDelimiterRight: '}}',\r\n preserveTimezones: false,\r\n strictFilters: false,\r\n strictVariables: false,\r\n ownPropertyOnly: true,\r\n lenientIf: false,\r\n globals: {},\r\n keepOutputType: false,\r\n operators: defaultOperators,\r\n memoryLimit: Infinity,\r\n parseLimit: Infinity,\r\n renderLimit: Infinity\r\n};\r\nfunction normalize(options) {\r\n var _a, _b;\r\n if (options.hasOwnProperty('root')) {\r\n if (!options.hasOwnProperty('partials'))\r\n options.partials = options.root;\r\n if (!options.hasOwnProperty('layouts'))\r\n options.layouts = options.root;\r\n }\r\n if (options.hasOwnProperty('cache')) {\r\n let cache;\r\n if (typeof options.cache === 'number')\r\n cache = options.cache > 0 ? new LRU(options.cache) : undefined;\r\n else if (typeof options.cache === 'object')\r\n cache = options.cache;\r\n else\r\n cache = options.cache ? new LRU(1024) : undefined;\r\n options.cache = cache;\r\n }\r\n options = Object.assign(Object.assign(Object.assign({}, defaultOptions), (options.jekyllInclude ? { dynamicPartials: false } : {})), options);\r\n if ((!options.fs.dirname || !options.fs.sep) && options.relativeReference) {\r\n console.warn('[LiquidJS] `fs.dirname` and `fs.sep` are required for relativeReference, set relativeReference to `false` to suppress this warning');\r\n options.relativeReference = false;\r\n }\r\n options.root = normalizeDirectoryList(options.root);\r\n options.partials = normalizeDirectoryList(options.partials);\r\n options.layouts = normalizeDirectoryList(options.layouts);\r\n options.outputEscape = options.outputEscape && getOutputEscapeFunction(options.outputEscape);\r\n if (!options.locale) {\r\n options.locale = (_b = (_a = getDateTimeFormat()) === null || _a === void 0 ? void 0 : _a().resolvedOptions().locale) !== null && _b !== void 0 ? _b : 'en-US';\r\n }\r\n if (options.templates) {\r\n options.fs = new MapFS(options.templates);\r\n options.relativeReference = true;\r\n options.root = options.partials = options.layouts = '.';\r\n }\r\n return options;\r\n}\r\nfunction getOutputEscapeFunction(nameOrFunction) {\r\n if (nameOrFunction === 'escape')\r\n return escape;\r\n if (nameOrFunction === 'json')\r\n return misc.json;\r\n assert(isFunction(nameOrFunction), '`outputEscape` need to be of type string or function');\r\n return nameOrFunction;\r\n}\r\nfunction normalizeDirectoryList(value) {\r\n let list = [];\r\n if (isArray(value))\r\n list = value;\r\n if (isString(value))\r\n list = [value];\r\n return list;\r\n}\n\nfunction whiteSpaceCtrl(tokens, options) {\r\n let inRaw = false;\r\n for (let i = 0; i < tokens.length; i++) {\r\n const token = tokens[i];\r\n if (!isDelimitedToken(token))\r\n continue;\r\n if (!inRaw && token.trimLeft) {\r\n trimLeft(tokens[i - 1], options.greedy);\r\n }\r\n if (isTagToken(token)) {\r\n if (token.name === 'raw')\r\n inRaw = true;\r\n else if (token.name === 'endraw')\r\n inRaw = false;\r\n }\r\n if (!inRaw && token.trimRight) {\r\n trimRight(tokens[i + 1], options.greedy);\r\n }\r\n }\r\n}\r\nfunction trimLeft(token, greedy) {\r\n if (!token || !isHTMLToken(token))\r\n return;\r\n const mask = greedy ? BLANK : INLINE_BLANK;\r\n while (TYPES[token.input.charCodeAt(token.end - 1 - token.trimRight)] & mask)\r\n token.trimRight++;\r\n}\r\nfunction trimRight(token, greedy) {\r\n if (!token || !isHTMLToken(token))\r\n return;\r\n const mask = greedy ? BLANK : INLINE_BLANK;\r\n while (TYPES[token.input.charCodeAt(token.begin + token.trimLeft)] & mask)\r\n token.trimLeft++;\r\n if (token.input.charAt(token.begin + token.trimLeft) === '\\n')\r\n token.trimLeft++;\r\n}\n\nclass Tokenizer {\r\n constructor(input, operators = defaultOptions.operators, file, range) {\r\n this.input = input;\r\n this.file = file;\r\n this.rawBeginAt = -1;\r\n this.p = range ? range[0] : 0;\r\n this.N = range ? range[1] : input.length;\r\n this.opTrie = createTrie(operators);\r\n this.literalTrie = createTrie(literalValues);\r\n }\r\n readExpression() {\r\n return new Expression(this.readExpressionTokens());\r\n }\r\n *readExpressionTokens() {\r\n while (this.p < this.N) {\r\n const operator = this.readOperator();\r\n if (operator) {\r\n yield operator;\r\n continue;\r\n }\r\n const operand = this.readValue();\r\n if (operand) {\r\n yield operand;\r\n continue;\r\n }\r\n return;\r\n }\r\n }\r\n readOperator() {\r\n this.skipBlank();\r\n const end = this.matchTrie(this.opTrie);\r\n if (end === -1)\r\n return;\r\n return new OperatorToken(this.input, this.p, (this.p = end), this.file);\r\n }\r\n matchTrie(trie) {\r\n let node = trie;\r\n let i = this.p;\r\n let info;\r\n while (node[this.input[i]] && i < this.N) {\r\n node = node[this.input[i++]];\r\n if (node['end'])\r\n info = node;\r\n }\r\n if (!info)\r\n return -1;\r\n if (info['needBoundary'] && isWord(this.peek(i - this.p)))\r\n return -1;\r\n return i;\r\n }\r\n readFilteredValue() {\r\n const begin = this.p;\r\n const initial = this.readExpression();\r\n this.assert(initial.valid(), `invalid value expression: ${this.snapshot()}`);\r\n const filters = this.readFilters();\r\n return new FilteredValueToken(initial, filters, this.input, begin, this.p, this.file);\r\n }\r\n readFilters() {\r\n const filters = [];\r\n while (true) {\r\n const filter = this.readFilter();\r\n if (!filter)\r\n return filters;\r\n filters.push(filter);\r\n }\r\n }\r\n readFilter() {\r\n this.skipBlank();\r\n if (this.end())\r\n return null;\r\n this.assert(this.peek() === '|', `expected \"|\" before filter`);\r\n this.p++;\r\n const begin = this.p;\r\n const name = this.readIdentifier();\r\n if (!name.size()) {\r\n this.assert(this.end(), `expected filter name`);\r\n return null;\r\n }\r\n const args = [];\r\n this.skipBlank();\r\n if (this.peek() === ':') {\r\n do {\r\n ++this.p;\r\n const arg = this.readFilterArg();\r\n arg && args.push(arg);\r\n this.skipBlank();\r\n this.assert(this.end() || this.peek() === ',' || this.peek() === '|', () => `unexpected character ${this.snapshot()}`);\r\n } while (this.peek() === ',');\r\n }\r\n else if (this.peek() === '|' || this.end()) ;\r\n else {\r\n throw this.error('expected \":\" after filter name');\r\n }\r\n return new FilterToken(name.getText(), args, this.input, begin, this.p, this.file);\r\n }\r\n readFilterArg() {\r\n const key = this.readValue();\r\n if (!key)\r\n return;\r\n this.skipBlank();\r\n if (this.peek() !== ':')\r\n return key;\r\n ++this.p;\r\n const value = this.readValue();\r\n return [key.getText(), value];\r\n }\r\n readTopLevelTokens(options = defaultOptions) {\r\n const tokens = [];\r\n while (this.p < this.N) {\r\n const token = this.readTopLevelToken(options);\r\n tokens.push(token);\r\n }\r\n whiteSpaceCtrl(tokens, options);\r\n return tokens;\r\n }\r\n readTopLevelToken(options) {\r\n const { tagDelimiterLeft, outputDelimiterLeft } = options;\r\n if (this.rawBeginAt > -1)\r\n return this.readEndrawOrRawContent(options);\r\n if (this.match(tagDelimiterLeft))\r\n return this.readTagToken(options);\r\n if (this.match(outputDelimiterLeft))\r\n return this.readOutputToken(options);\r\n return this.readHTMLToken([tagDelimiterLeft, outputDelimiterLeft]);\r\n }\r\n readHTMLToken(stopStrings) {\r\n const begin = this.p;\r\n while (this.p < this.N) {\r\n if (stopStrings.some(str => this.match(str)))\r\n break;\r\n ++this.p;\r\n }\r\n return new HTMLToken(this.input, begin, this.p, this.file);\r\n }\r\n readTagToken(options) {\r\n const { file, input } = this;\r\n const begin = this.p;\r\n if (this.readToDelimiter(options.tagDelimiterRight) === -1) {\r\n throw this.error(`tag ${this.snapshot(begin)} not closed`, begin);\r\n }\r\n const token = new TagToken(input, begin, this.p, options, file);\r\n if (token.name === 'raw')\r\n this.rawBeginAt = begin;\r\n return token;\r\n }\r\n readToDelimiter(delimiter, respectQuoted = false) {\r\n this.skipBlank();\r\n while (this.p < this.N) {\r\n if (respectQuoted && (this.peekType() & QUOTE)) {\r\n this.readQuoted();\r\n continue;\r\n }\r\n ++this.p;\r\n if (this.rmatch(delimiter))\r\n return this.p;\r\n }\r\n return -1;\r\n }\r\n readOutputToken(options = defaultOptions) {\r\n const { file, input } = this;\r\n const { outputDelimiterRight } = options;\r\n const begin = this.p;\r\n if (this.readToDelimiter(outputDelimiterRight, true) === -1) {\r\n throw this.error(`output ${this.snapshot(begin)} not closed`, begin);\r\n }\r\n return new OutputToken(input, begin, this.p, options, file);\r\n }\r\n readEndrawOrRawContent(options) {\r\n const { tagDelimiterLeft, tagDelimiterRight } = options;\r\n const begin = this.p;\r\n let leftPos = this.readTo(tagDelimiterLeft) - tagDelimiterLeft.length;\r\n while (this.p < this.N) {\r\n if (this.readIdentifier().getText() !== 'endraw') {\r\n leftPos = this.readTo(tagDelimiterLeft) - tagDelimiterLeft.length;\r\n continue;\r\n }\r\n while (this.p <= this.N) {\r\n if (this.rmatch(tagDelimiterRight)) {\r\n const end = this.p;\r\n if (begin === leftPos) {\r\n this.rawBeginAt = -1;\r\n return new TagToken(this.input, begin, end, options, this.file);\r\n }\r\n else {\r\n this.p = leftPos;\r\n return new HTMLToken(this.input, begin, leftPos, this.file);\r\n }\r\n }\r\n if (this.rmatch(tagDelimiterLeft))\r\n break;\r\n this.p++;\r\n }\r\n }\r\n throw this.error(`raw ${this.snapshot(this.rawBeginAt)} not closed`, begin);\r\n }\r\n readLiquidTagTokens(options = defaultOptions) {\r\n const tokens = [];\r\n while (this.p < this.N) {\r\n const token = this.readLiquidTagToken(options);\r\n token && tokens.push(token);\r\n }\r\n return tokens;\r\n }\r\n readLiquidTagToken(options) {\r\n this.skipBlank();\r\n if (this.end())\r\n return;\r\n const begin = this.p;\r\n this.readToDelimiter('\\n');\r\n const end = this.p;\r\n return new LiquidTagToken(this.input, begin, end, options, this.file);\r\n }\r\n error(msg, pos = this.p) {\r\n return new TokenizationError(msg, new IdentifierToken(this.input, pos, this.N, this.file));\r\n }\r\n assert(pred, msg, pos) {\r\n if (!pred)\r\n throw this.error(typeof msg === 'function' ? msg() : msg, pos);\r\n }\r\n snapshot(begin = this.p) {\r\n return JSON.stringify(ellipsis(this.input.slice(begin, this.N), 32));\r\n }\r\n /**\r\n * @deprecated use #readIdentifier instead\r\n */\r\n readWord() {\r\n return this.readIdentifier();\r\n }\r\n readIdentifier() {\r\n this.skipBlank();\r\n const begin = this.p;\r\n while (!this.end() && isWord(this.peek()))\r\n ++this.p;\r\n return new IdentifierToken(this.input, begin, this.p, this.file);\r\n }\r\n readNonEmptyIdentifier() {\r\n const id = this.readIdentifier();\r\n return id.size() ? id : undefined;\r\n }\r\n readTagName() {\r\n this.skipBlank();\r\n // Handle inline comment tags\r\n if (this.input[this.p] === '#')\r\n return this.input.slice(this.p, ++this.p);\r\n return this.readIdentifier().getText();\r\n }\r\n readHashes(jekyllStyle) {\r\n const hashes = [];\r\n while (true) {\r\n const hash = this.readHash(jekyllStyle);\r\n if (!hash)\r\n return hashes;\r\n hashes.push(hash);\r\n }\r\n }\r\n readHash(jekyllStyle) {\r\n this.skipBlank();\r\n if (this.peek() === ',')\r\n ++this.p;\r\n const begin = this.p;\r\n const name = this.readNonEmptyIdentifier();\r\n if (!name)\r\n return;\r\n let value;\r\n this.skipBlank();\r\n const sep = jekyllStyle ? '=' : ':';\r\n if (this.peek() === sep) {\r\n ++this.p;\r\n value = this.readValue();\r\n }\r\n return new HashToken(this.input, begin, this.p, name, value, this.file);\r\n }\r\n remaining() {\r\n return this.input.slice(this.p, this.N);\r\n }\r\n advance(step = 1) {\r\n this.p += step;\r\n }\r\n end() {\r\n return this.p >= this.N;\r\n }\r\n readTo(end) {\r\n while (this.p < this.N) {\r\n ++this.p;\r\n if (this.rmatch(end))\r\n return this.p;\r\n }\r\n return -1;\r\n }\r\n readValue() {\r\n this.skipBlank();\r\n const begin = this.p;\r\n const variable = this.readLiteral() || this.readQuoted() || this.readRange() || this.readNumber();\r\n const props = this.readProperties(!variable);\r\n if (!props.length)\r\n return variable;\r\n return new PropertyAccessToken(variable, props, this.input, begin, this.p);\r\n }\r\n readScopeValue() {\r\n this.skipBlank();\r\n const begin = this.p;\r\n const props = this.readProperties();\r\n if (!props.length)\r\n return undefined;\r\n return new PropertyAccessToken(undefined, props, this.input, begin, this.p);\r\n }\r\n readProperties(isBegin = true) {\r\n const props = [];\r\n while (true) {\r\n if (this.peek() === '[') {\r\n this.p++;\r\n const prop = this.readValue() || new IdentifierToken(this.input, this.p, this.p, this.file);\r\n this.assert(this.readTo(']') !== -1, '[ not closed');\r\n props.push(prop);\r\n continue;\r\n }\r\n if (isBegin && !props.length) {\r\n const prop = this.readNonEmptyIdentifier();\r\n if (prop) {\r\n props.push(prop);\r\n continue;\r\n }\r\n }\r\n if (this.peek() === '.' && this.peek(1) !== '.') { // skip range syntax\r\n this.p++;\r\n const prop = this.readNonEmptyIdentifier();\r\n if (!prop)\r\n break;\r\n props.push(prop);\r\n continue;\r\n }\r\n break;\r\n }\r\n return props;\r\n }\r\n readNumber() {\r\n this.skipBlank();\r\n let decimalFound = false;\r\n let digitFound = false;\r\n let n = 0;\r\n if (this.peekType() & SIGN)\r\n n++;\r\n while (this.p + n <= this.N) {\r\n if (this.peekType(n) & NUMBER) {\r\n digitFound = true;\r\n n++;\r\n }\r\n else if (this.peek(n) === '.' && this.peek(n + 1) !== '.') {\r\n if (decimalFound || !digitFound)\r\n return;\r\n decimalFound = true;\r\n n++;\r\n }\r\n else\r\n break;\r\n }\r\n if (digitFound && !isWord(this.peek(n))) {\r\n const num = new NumberToken(this.input, this.p, this.p + n, this.file);\r\n this.advance(n);\r\n return num;\r\n }\r\n }\r\n readLiteral() {\r\n this.skipBlank();\r\n const end = this.matchTrie(this.literalTrie);\r\n if (end === -1)\r\n return;\r\n const literal = new LiteralToken(this.input, this.p, end, this.file);\r\n this.p = end;\r\n return literal;\r\n }\r\n readRange() {\r\n this.skipBlank();\r\n const begin = this.p;\r\n if (this.peek() !== '(')\r\n return;\r\n ++this.p;\r\n const lhs = this.readValueOrThrow();\r\n this.p += 2;\r\n const rhs = this.readValueOrThrow();\r\n ++this.p;\r\n return new RangeToken(this.input, begin, this.p, lhs, rhs, this.file);\r\n }\r\n readValueOrThrow() {\r\n const value = this.readValue();\r\n this.assert(value, () => `unexpected token ${this.snapshot()}, value expected`);\r\n return value;\r\n }\r\n readQuoted() {\r\n this.skipBlank();\r\n const begin = this.p;\r\n if (!(this.peekType() & QUOTE))\r\n return;\r\n ++this.p;\r\n let escaped = false;\r\n while (this.p < this.N) {\r\n ++this.p;\r\n if (this.input[this.p - 1] === this.input[begin] && !escaped)\r\n break;\r\n if (escaped)\r\n escaped = false;\r\n else if (this.input[this.p - 1] === '\\\\')\r\n escaped = true;\r\n }\r\n return new QuotedToken(this.input, begin, this.p, this.file);\r\n }\r\n *readFileNameTemplate(options) {\r\n const { outputDelimiterLeft } = options;\r\n const htmlStopStrings = [',', ' ', outputDelimiterLeft];\r\n const htmlStopStringSet = new Set(htmlStopStrings);\r\n // break on ',' and ' ', outputDelimiterLeft only stops HTML token\r\n while (this.p < this.N && !htmlStopStringSet.has(this.peek())) {\r\n yield this.match(outputDelimiterLeft)\r\n ? this.readOutputToken(options)\r\n : this.readHTMLToken(htmlStopStrings);\r\n }\r\n }\r\n match(word) {\r\n for (let i = 0; i < word.length; i++) {\r\n if (word[i] !== this.input[this.p + i])\r\n return false;\r\n }\r\n return true;\r\n }\r\n rmatch(pattern) {\r\n for (let i = 0; i < pattern.length; i++) {\r\n if (pattern[pattern.length - 1 - i] !== this.input[this.p - 1 - i])\r\n return false;\r\n }\r\n return true;\r\n }\r\n peekType(n = 0) {\r\n return this.p + n >= this.N ? 0 : TYPES[this.input.charCodeAt(this.p + n)];\r\n }\r\n peek(n = 0) {\r\n return this.p + n >= this.N ? '' : this.input[this.p + n];\r\n }\r\n skipBlank() {\r\n while (this.peekType() & BLANK)\r\n ++this.p;\r\n }\r\n}\n\nclass ParseStream {\r\n constructor(tokens, parseToken) {\r\n this.handlers = {};\r\n this.stopRequested = false;\r\n this.tokens = tokens;\r\n this.parseToken = parseToken;\r\n }\r\n on(name, cb) {\r\n this.handlers[name] = cb;\r\n return this;\r\n }\r\n trigger(event, arg) {\r\n const h = this.handlers[event];\r\n return h ? (h.call(this, arg), true) : false;\r\n }\r\n start() {\r\n this.trigger('start');\r\n let token;\r\n while (!this.stopRequested && (token = this.tokens.shift())) {\r\n if (this.trigger('token', token))\r\n continue;\r\n if (isTagToken(token) && this.trigger(`tag:${token.name}`, token)) {\r\n continue;\r\n }\r\n const template = this.parseToken(token, this.tokens);\r\n this.trigger('template', template);\r\n }\r\n if (!this.stopRequested)\r\n this.trigger('end');\r\n return this;\r\n }\r\n stop() {\r\n this.stopRequested = true;\r\n return this;\r\n }\r\n}\n\nclass TemplateImpl {\r\n constructor(token) {\r\n this.token = token;\r\n }\r\n}\n\nclass Tag extends TemplateImpl {\r\n constructor(token, remainTokens, liquid) {\r\n super(token);\r\n this.name = token.name;\r\n this.liquid = liquid;\r\n this.tokenizer = token.tokenizer;\r\n }\r\n}\n\n/**\r\n * Key-Value Pairs Representing Tag Arguments\r\n * Example:\r\n * For the markup `, foo:'bar', coo:2 reversed %}`,\r\n * hash['foo'] === 'bar'\r\n * hash['coo'] === 2\r\n * hash['reversed'] === undefined\r\n */\r\nclass Hash {\r\n constructor(markup, jekyllStyle) {\r\n this.hash = {};\r\n const tokenizer = new Tokenizer(markup, {});\r\n for (const hash of tokenizer.readHashes(jekyllStyle)) {\r\n this.hash[hash.name.content] = hash.value;\r\n }\r\n }\r\n *render(ctx) {\r\n const hash = {};\r\n for (const key of Object.keys(this.hash)) {\r\n hash[key] = this.hash[key] === undefined ? true : yield evalToken(this.hash[key], ctx);\r\n }\r\n return hash;\r\n }\r\n}\n\nfunction createTagClass(options) {\r\n return class extends Tag {\r\n constructor(token, tokens, liquid) {\r\n super(token, tokens, liquid);\r\n if (isFunction(options.parse)) {\r\n options.parse.call(this, token, tokens);\r\n }\r\n }\r\n *render(ctx, emitter) {\r\n const hash = (yield new Hash(this.token.args).render(ctx));\r\n return yield options.render.call(this, ctx, emitter, hash);\r\n }\r\n };\r\n}\n\nfunction isKeyValuePair(arr) {\r\n return isArray(arr);\r\n}\n\nclass Filter {\r\n constructor(name, options, args, liquid) {\r\n this.name = name;\r\n this.handler = isFunction(options)\r\n ? options\r\n : (isFunction(options === null || options === void 0 ? void 0 : options.handler) ? options.handler : identify);\r\n this.raw = !isFunction(options) && !!(options === null || options === void 0 ? void 0 : options.raw);\r\n this.args = args;\r\n this.liquid = liquid;\r\n }\r\n *render(value, context) {\r\n const argv = [];\r\n for (const arg of this.args) {\r\n if (isKeyValuePair(arg))\r\n argv.push([arg[0], yield evalToken(arg[1], context)]);\r\n else\r\n argv.push(yield evalToken(arg, context));\r\n }\r\n return yield this.handler.apply({ context, liquid: this.liquid }, [value, ...argv]);\r\n }\r\n}\n\nclass Value {\r\n /**\r\n * @param str the value to be valuated, eg.: \"foobar\" | truncate: 3\r\n */\r\n constructor(input, liquid) {\r\n this.filters = [];\r\n const token = typeof input === 'string'\r\n ? new Tokenizer(input, liquid.options.operators).readFilteredValue()\r\n : input;\r\n this.initial = token.initial;\r\n this.filters = token.filters.map(({ name, args }) => new Filter(name, this.getFilter(liquid, name), args, liquid));\r\n }\r\n *value(ctx, lenient) {\r\n lenient = lenient || (ctx.opts.lenientIf && this.filters.length > 0 && this.filters[0].name === 'default');\r\n let val = yield this.initial.evaluate(ctx, lenient);\r\n for (const filter of this.filters) {\r\n val = yield filter.render(val, ctx);\r\n }\r\n return val;\r\n }\r\n getFilter(liquid, name) {\r\n const impl = liquid.filters[name];\r\n assert(impl || !liquid.options.strictFilters, () => `undefined filter: ${name}`);\r\n return impl;\r\n }\r\n}\n\nclass Output extends TemplateImpl {\r\n constructor(token, liquid) {\r\n var _a;\r\n super(token);\r\n const tokenizer = new Tokenizer(token.input, liquid.options.operators, token.file, token.contentRange);\r\n this.value = new Value(tokenizer.readFilteredValue(), liquid);\r\n const filters = this.value.filters;\r\n const outputEscape = liquid.options.outputEscape;\r\n if (!((_a = filters[filters.length - 1]) === null || _a === void 0 ? void 0 : _a.raw) && outputEscape) {\r\n filters.push(new Filter(toString.call(outputEscape), outputEscape, [], liquid));\r\n }\r\n }\r\n *render(ctx, emitter) {\r\n const val = yield this.value.value(ctx, false);\r\n emitter.write(val);\r\n }\r\n}\n\nclass HTML extends TemplateImpl {\r\n constructor(token) {\r\n super(token);\r\n this.str = token.getContent();\r\n }\r\n *render(ctx, emitter) {\r\n emitter.write(this.str);\r\n }\r\n}\n\nvar LookupType;\r\n(function (LookupType) {\r\n LookupType[\"Partials\"] = \"partials\";\r\n LookupType[\"Layouts\"] = \"layouts\";\r\n LookupType[\"Root\"] = \"root\";\r\n})(LookupType || (LookupType = {}));\r\nclass Loader {\r\n constructor(options) {\r\n this.options = options;\r\n if (options.relativeReference) {\r\n const sep = options.fs.sep;\r\n assert(sep, '`fs.sep` is required for relative reference');\r\n const rRelativePath = new RegExp(['.' + sep, '..' + sep, './', '../'].map(prefix => escapeRegex(prefix)).join('|'));\r\n this.shouldLoadRelative = (referencedFile) => rRelativePath.test(referencedFile);\r\n }\r\n else {\r\n this.shouldLoadRelative = (_referencedFile) => false;\r\n }\r\n this.contains = this.options.fs.contains || (() => true);\r\n }\r\n *lookup(file, type, sync, currentFile) {\r\n const { fs } = this.options;\r\n const dirs = this.options[type];\r\n for (const filepath of this.candidates(file, dirs, currentFile, type !== LookupType.Root)) {\r\n if (sync ? fs.existsSync(filepath) : yield fs.exists(filepath))\r\n return filepath;\r\n }\r\n throw this.lookupError(file, dirs);\r\n }\r\n *candidates(file, dirs, currentFile, enforceRoot) {\r\n const { fs, extname } = this.options;\r\n if (this.shouldLoadRelative(file) && currentFile) {\r\n const referenced = fs.resolve(this.dirname(currentFile), file, extname);\r\n for (const dir of dirs) {\r\n if (!enforceRoot || this.contains(dir, referenced)) {\r\n // the relatively referenced file is within one of root dirs\r\n yield referenced;\r\n break;\r\n }\r\n }\r\n }\r\n for (const dir of dirs) {\r\n const referenced = fs.resolve(dir, file, extname);\r\n if (!enforceRoot || this.contains(dir, referenced)) {\r\n yield referenced;\r\n }\r\n }\r\n if (fs.fallback !== undefined) {\r\n const filepath = fs.fallback(file);\r\n if (filepath !== undefined)\r\n yield filepath;\r\n }\r\n }\r\n dirname(path) {\r\n const fs = this.options.fs;\r\n assert(fs.dirname, '`fs.dirname` is required for relative reference');\r\n return fs.dirname(path);\r\n }\r\n lookupError(file, roots) {\r\n const err = new Error('ENOENT');\r\n err.message = `ENOENT: Failed to lookup \"${file}\" in \"${roots}\"`;\r\n err.code = 'ENOENT';\r\n return err;\r\n }\r\n}\n\nclass Parser {\r\n constructor(liquid) {\r\n this.liquid = liquid;\r\n this.cache = this.liquid.options.cache;\r\n this.fs = this.liquid.options.fs;\r\n this.parseFile = this.cache ? this._parseFileCached : this._parseFile;\r\n this.loader = new Loader(this.liquid.options);\r\n this.parseLimit = new Limiter('parse length', liquid.options.parseLimit);\r\n }\r\n parse(html, filepath) {\r\n html = String(html);\r\n this.parseLimit.use(html.length);\r\n const tokenizer = new Tokenizer(html, this.liquid.options.operators, filepath);\r\n const tokens = tokenizer.readTopLevelTokens(this.liquid.options);\r\n return this.parseTokens(tokens);\r\n }\r\n parseTokens(tokens) {\r\n let token;\r\n const templates = [];\r\n const errors = [];\r\n while ((token = tokens.shift())) {\r\n try {\r\n templates.push(this.parseToken(token, tokens));\r\n }\r\n catch (err) {\r\n if (this.liquid.options.catchAllErrors)\r\n errors.push(err);\r\n else\r\n throw err;\r\n }\r\n }\r\n if (errors.length)\r\n throw new LiquidErrors(errors);\r\n return templates;\r\n }\r\n parseToken(token, remainTokens) {\r\n try {\r\n if (isTagToken(token)) {\r\n const TagClass = this.liquid.tags[token.name];\r\n assert(TagClass, `tag \"${token.name}\" not found`);\r\n return new TagClass(token, remainTokens, this.liquid, this);\r\n }\r\n if (isOutputToken(token)) {\r\n return new Output(token, this.liquid);\r\n }\r\n return new HTML(token);\r\n }\r\n catch (e) {\r\n if (LiquidError.is(e))\r\n throw e;\r\n throw new ParseError(e, token);\r\n }\r\n }\r\n parseStream(tokens) {\r\n return new ParseStream(tokens, (token, tokens) => this.parseToken(token, tokens));\r\n }\r\n *_parseFileCached(file, sync, type = LookupType.Root, currentFile) {\r\n const cache = this.cache;\r\n const key = this.loader.shouldLoadRelative(file) ? currentFile + ',' + file : type + ':' + file;\r\n const tpls = yield cache.read(key);\r\n if (tpls)\r\n return tpls;\r\n const task = this._parseFile(file, sync, type, currentFile);\r\n // sync mode: exec the task and cache the result\r\n // async mode: cache the task before exec\r\n const taskOrTpl = sync ? yield task : toPromise(task);\r\n cache.write(key, taskOrTpl);\r\n // note: concurrent tasks will be reused, cache for failed task is removed until its end\r\n try {\r\n return yield taskOrTpl;\r\n }\r\n catch (err) {\r\n cache.remove(key);\r\n throw err;\r\n }\r\n }\r\n *_parseFile(file, sync, type = LookupType.Root, currentFile) {\r\n const filepath = yield this.loader.lookup(file, type, sync, currentFile);\r\n return this.parse(sync ? this.fs.readFileSync(filepath) : yield this.fs.readFile(filepath), filepath);\r\n }\r\n}\n\nvar TokenKind;\r\n(function (TokenKind) {\r\n TokenKind[TokenKind[\"Number\"] = 1] = \"Number\";\r\n TokenKind[TokenKind[\"Literal\"] = 2] = \"Literal\";\r\n TokenKind[TokenKind[\"Tag\"] = 4] = \"Tag\";\r\n TokenKind[TokenKind[\"Output\"] = 8] = \"Output\";\r\n TokenKind[TokenKind[\"HTML\"] = 16] = \"HTML\";\r\n TokenKind[TokenKind[\"Filter\"] = 32] = \"Filter\";\r\n TokenKind[TokenKind[\"Hash\"] = 64] = \"Hash\";\r\n TokenKind[TokenKind[\"PropertyAccess\"] = 128] = \"PropertyAccess\";\r\n TokenKind[TokenKind[\"Word\"] = 256] = \"Word\";\r\n TokenKind[TokenKind[\"Range\"] = 512] = \"Range\";\r\n TokenKind[TokenKind[\"Quoted\"] = 1024] = \"Quoted\";\r\n TokenKind[TokenKind[\"Operator\"] = 2048] = \"Operator\";\r\n TokenKind[TokenKind[\"FilteredValue\"] = 4096] = \"FilteredValue\";\r\n TokenKind[TokenKind[\"Delimited\"] = 12] = \"Delimited\";\r\n})(TokenKind || (TokenKind = {}));\n\nfunction isDelimitedToken(val) {\r\n return !!(getKind(val) & TokenKind.Delimited);\r\n}\r\nfunction isOperatorToken(val) {\r\n return getKind(val) === TokenKind.Operator;\r\n}\r\nfunction isHTMLToken(val) {\r\n return getKind(val) === TokenKind.HTML;\r\n}\r\nfunction isOutputToken(val) {\r\n return getKind(val) === TokenKind.Output;\r\n}\r\nfunction isTagToken(val) {\r\n return getKind(val) === TokenKind.Tag;\r\n}\r\nfunction isQuotedToken(val) {\r\n return getKind(val) === TokenKind.Quoted;\r\n}\r\nfunction isLiteralToken(val) {\r\n return getKind(val) === TokenKind.Literal;\r\n}\r\nfunction isNumberToken(val) {\r\n return getKind(val) === TokenKind.Number;\r\n}\r\nfunction isPropertyAccessToken(val) {\r\n return getKind(val) === TokenKind.PropertyAccess;\r\n}\r\nfunction isWordToken(val) {\r\n return getKind(val) === TokenKind.Word;\r\n}\r\nfunction isRangeToken(val) {\r\n return getKind(val) === TokenKind.Range;\r\n}\r\nfunction getKind(val) {\r\n return val ? val.kind : -1;\r\n}\n\nvar typeGuards = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isDelimitedToken: isDelimitedToken,\n isOperatorToken: isOperatorToken,\n isHTMLToken: isHTMLToken,\n isOutputToken: isOutputToken,\n isTagToken: isTagToken,\n isQuotedToken: isQuotedToken,\n isLiteralToken: isLiteralToken,\n isNumberToken: isNumberToken,\n isPropertyAccessToken: isPropertyAccessToken,\n isWordToken: isWordToken,\n isRangeToken: isRangeToken\n});\n\nclass Context {\r\n constructor(env = {}, opts = defaultOptions, renderOptions = {}, { memoryLimit, renderLimit } = {}) {\r\n var _a, _b, _c, _d, _e;\r\n /**\r\n * insert a Context-level empty scope,\r\n * for tags like `{% capture %}` `{% assign %}` to operate\r\n */\r\n this.scopes = [{}];\r\n this.registers = {};\r\n this.sync = !!renderOptions.sync;\r\n this.opts = opts;\r\n this.globals = (_a = renderOptions.globals) !== null && _a !== void 0 ? _a : opts.globals;\r\n this.environments = isObject(env) ? env : Object(env);\r\n this.strictVariables = (_b = renderOptions.strictVariables) !== null && _b !== void 0 ? _b : this.opts.strictVariables;\r\n this.ownPropertyOnly = (_c = renderOptions.ownPropertyOnly) !== null && _c !== void 0 ? _c : opts.ownPropertyOnly;\r\n this.memoryLimit = memoryLimit !== null && memoryLimit !== void 0 ? memoryLimit : new Limiter('memory alloc', (_d = renderOptions.memoryLimit) !== null && _d !== void 0 ? _d : opts.memoryLimit);\r\n this.renderLimit = renderLimit !== null && renderLimit !== void 0 ? renderLimit : new Limiter('template render', getPerformance().now() + ((_e = renderOptions.renderLimit) !== null && _e !== void 0 ? _e : opts.renderLimit));\r\n }\r\n getRegister(key) {\r\n return (this.registers[key] = this.registers[key] || {});\r\n }\r\n setRegister(key, value) {\r\n return (this.registers[key] = value);\r\n }\r\n saveRegister(...keys) {\r\n return keys.map(key => [key, this.getRegister(key)]);\r\n }\r\n restoreRegister(keyValues) {\r\n return keyValues.forEach(([key, value]) => this.setRegister(key, value));\r\n }\r\n getAll() {\r\n return [this.globals, this.environments, ...this.scopes]\r\n .reduce((ctx, val) => __assign(ctx, val), {});\r\n }\r\n /**\r\n * @deprecated use `_get()` or `getSync()` instead\r\n */\r\n get(paths) {\r\n return this.getSync(paths);\r\n }\r\n getSync(paths) {\r\n return toValueSync(this._get(paths));\r\n }\r\n *_get(paths) {\r\n const scope = this.findScope(paths[0]);\r\n return yield this._getFromScope(scope, paths);\r\n }\r\n /**\r\n * @deprecated use `_get()` instead\r\n */\r\n getFromScope(scope, paths) {\r\n return toValueSync(this._getFromScope(scope, paths));\r\n }\r\n *_getFromScope(scope, paths, strictVariables = this.strictVariables) {\r\n if (isString(paths))\r\n paths = paths.split('.');\r\n for (let i = 0; i < paths.length; i++) {\r\n scope = yield readProperty(scope, paths[i], this.ownPropertyOnly);\r\n if (strictVariables && isUndefined(scope)) {\r\n throw new InternalUndefinedVariableError(paths.slice(0, i + 1).join('.'));\r\n }\r\n }\r\n return scope;\r\n }\r\n push(ctx) {\r\n return this.scopes.push(ctx);\r\n }\r\n pop() {\r\n return this.scopes.pop();\r\n }\r\n bottom() {\r\n return this.scopes[0];\r\n }\r\n spawn(scope = {}) {\r\n return new Context(scope, this.opts, {\r\n sync: this.sync,\r\n globals: this.globals,\r\n strictVariables: this.strictVariables\r\n }, {\r\n renderLimit: this.renderLimit,\r\n memoryLimit: this.memoryLimit\r\n });\r\n }\r\n findScope(key) {\r\n for (let i = this.scopes.length - 1; i >= 0; i--) {\r\n const candidate = this.scopes[i];\r\n if (key in candidate)\r\n return candidate;\r\n }\r\n if (key in this.environments)\r\n return this.environments;\r\n return this.globals;\r\n }\r\n}\r\nfunction readProperty(obj, key, ownPropertyOnly) {\r\n obj = toLiquid(obj);\r\n if (isNil(obj))\r\n return obj;\r\n if (isArray(obj) && key < 0)\r\n return obj[obj.length + +key];\r\n const value = readJSProperty(obj, key, ownPropertyOnly);\r\n if (value === undefined && obj instanceof Drop)\r\n return obj.liquidMethodMissing(key);\r\n if (isFunction(value))\r\n return value.call(obj);\r\n if (key === 'size')\r\n return readSize(obj);\r\n else if (key === 'first')\r\n return readFirst(obj);\r\n else if (key === 'last')\r\n return readLast(obj);\r\n return value;\r\n}\r\nfunction readJSProperty(obj, key, ownPropertyOnly) {\r\n if (ownPropertyOnly && !hasOwnProperty.call(obj, key) && !(obj instanceof Drop))\r\n return undefined;\r\n return obj[key];\r\n}\r\nfunction readFirst(obj) {\r\n if (isArray(obj))\r\n return obj[0];\r\n return obj['first'];\r\n}\r\nfunction readLast(obj) {\r\n if (isArray(obj))\r\n return obj[obj.length - 1];\r\n return obj['last'];\r\n}\r\nfunction readSize(obj) {\r\n if (hasOwnProperty.call(obj, 'size') || obj['size'] !== undefined)\r\n return obj['size'];\r\n if (isArray(obj) || isString(obj))\r\n return obj.length;\r\n if (typeof obj === 'object')\r\n return Object.keys(obj).length;\r\n}\n\nvar BlockMode;\r\n(function (BlockMode) {\r\n /* store rendered html into blocks */\r\n BlockMode[BlockMode[\"OUTPUT\"] = 0] = \"OUTPUT\";\r\n /* output rendered html directly */\r\n BlockMode[BlockMode[\"STORE\"] = 1] = \"STORE\";\r\n})(BlockMode || (BlockMode = {}));\n\nconst abs = argumentsToValue(Math.abs);\r\nconst at_least = argumentsToValue(Math.max);\r\nconst at_most = argumentsToValue(Math.min);\r\nconst ceil = argumentsToValue(Math.ceil);\r\nconst divided_by = argumentsToValue((dividend, divisor, integerArithmetic = false) => integerArithmetic ? Math.floor(dividend / divisor) : dividend / divisor);\r\nconst floor = argumentsToValue(Math.floor);\r\nconst minus = argumentsToValue((v, arg) => v - arg);\r\nconst modulo = argumentsToValue((v, arg) => v % arg);\r\nconst times = argumentsToValue((v, arg) => v * arg);\r\nfunction round(v, arg = 0) {\r\n v = toValue(v);\r\n arg = toValue(arg);\r\n const amp = Math.pow(10, arg);\r\n return Math.round(v * amp) / amp;\r\n}\r\nfunction plus(v, arg) {\r\n v = toValue(v);\r\n arg = toValue(arg);\r\n return Number(v) + Number(arg);\r\n}\n\nvar mathFilters = /*#__PURE__*/Object.freeze({\n __proto__: null,\n abs: abs,\n at_least: at_least,\n at_most: at_most,\n ceil: ceil,\n divided_by: divided_by,\n floor: floor,\n minus: minus,\n modulo: modulo,\n times: times,\n round: round,\n plus: plus\n});\n\nconst url_decode = (x) => decodeURIComponent(stringify(x)).replace(/\\+/g, ' ');\r\nconst url_encode = (x) => encodeURIComponent(stringify(x)).replace(/%20/g, '+');\r\nconst cgi_escape = (x) => encodeURIComponent(stringify(x))\r\n .replace(/%20/g, '+')\r\n .replace(/[!'()*]/g, c => '%' + c.charCodeAt(0).toString(16).toUpperCase());\r\nconst uri_escape = (x) => encodeURI(stringify(x))\r\n .replace(/%5B/g, '[')\r\n .replace(/%5D/g, ']');\r\nconst rSlugifyDefault = /[^\\p{M}\\p{L}\\p{Nd}]+/ug;\r\nconst rSlugifyReplacers = {\r\n 'raw': /\\s+/g,\r\n 'default': rSlugifyDefault,\r\n 'pretty': /[^\\p{M}\\p{L}\\p{Nd}._~!$&'()+,;=@]+/ug,\r\n 'ascii': /[^A-Za-z0-9]+/g,\r\n 'latin': rSlugifyDefault,\r\n 'none': null\r\n};\r\nfunction slugify(str, mode = 'default', cased = false) {\r\n str = stringify(str);\r\n const replacer = rSlugifyReplacers[mode];\r\n if (replacer) {\r\n if (mode === 'latin')\r\n str = removeAccents(str);\r\n str = str.replace(replacer, '-').replace(/^-|-$/g, '');\r\n }\r\n return cased ? str : str.toLowerCase();\r\n}\r\nfunction removeAccents(str) {\r\n return str.replace(/[àáâãäå]/g, 'a')\r\n .replace(/[æ]/g, 'ae')\r\n .replace(/[ç]/g, 'c')\r\n .replace(/[èéêë]/g, 'e')\r\n .replace(/[ìíîï]/g, 'i')\r\n .replace(/[ð]/g, 'd')\r\n .replace(/[ñ]/g, 'n')\r\n .replace(/[òóôõöø]/g, 'o')\r\n .replace(/[ùúûü]/g, 'u')\r\n .replace(/[ýÿ]/g, 'y')\r\n .replace(/[ß]/g, 'ss')\r\n .replace(/[œ]/g, 'oe')\r\n .replace(/[þ]/g, 'th')\r\n .replace(/[ẞ]/g, 'SS')\r\n .replace(/[Œ]/g, 'OE')\r\n .replace(/[Þ]/g, 'TH');\r\n}\n\nvar urlFilters = /*#__PURE__*/Object.freeze({\n __proto__: null,\n url_decode: url_decode,\n url_encode: url_encode,\n cgi_escape: cgi_escape,\n uri_escape: uri_escape,\n slugify: slugify\n});\n\nconst join = argumentsToValue(function (v, arg) {\r\n const array = toArray(v);\r\n const sep = isNil(arg) ? ' ' : stringify(arg);\r\n const complexity = array.length * (1 + sep.length);\r\n this.context.memoryLimit.use(complexity);\r\n return array.join(sep);\r\n});\r\nconst last$1 = argumentsToValue((v) => isArray(v) ? last(v) : '');\r\nconst first = argumentsToValue((v) => isArray(v) ? v[0] : '');\r\nconst reverse = argumentsToValue(function (v) {\r\n const array = toArray(v);\r\n this.context.memoryLimit.use(array.length);\r\n return [...array].reverse();\r\n});\r\nfunction* sort(arr, property) {\r\n const values = [];\r\n const array = toArray(arr);\r\n this.context.memoryLimit.use(array.length);\r\n for (const item of array) {\r\n values.push([\r\n item,\r\n property ? yield this.context._getFromScope(item, stringify(property).split('.'), false) : item\r\n ]);\r\n }\r\n return values.sort((lhs, rhs) => {\r\n const lvalue = lhs[1];\r\n const rvalue = rhs[1];\r\n return lvalue < rvalue ? -1 : (lvalue > rvalue ? 1 : 0);\r\n }).map(tuple => tuple[0]);\r\n}\r\nfunction sort_natural(input, property) {\r\n const propertyString = stringify(property);\r\n const compare = property === undefined\r\n ? caseInsensitiveCompare\r\n : (lhs, rhs) => caseInsensitiveCompare(lhs[propertyString], rhs[propertyString]);\r\n const array = toArray(input);\r\n this.context.memoryLimit.use(array.length);\r\n return [...array].sort(compare);\r\n}\r\nconst size = (v) => (v && v.length) || 0;\r\nfunction* map(arr, property) {\r\n const results = [];\r\n const array = toArray(arr);\r\n this.context.memoryLimit.use(array.length);\r\n for (const item of array) {\r\n results.push(yield this.context._getFromScope(item, stringify(property), false));\r\n }\r\n return results;\r\n}\r\nfunction* sum(arr, property) {\r\n let sum = 0;\r\n const array = toArray(arr);\r\n for (const item of array) {\r\n const data = Number(property ? yield this.context._getFromScope(item, stringify(property), false) : item);\r\n sum += Number.isNaN(data) ? 0 : data;\r\n }\r\n return sum;\r\n}\r\nfunction compact(arr) {\r\n const array = toArray(arr);\r\n this.context.memoryLimit.use(array.length);\r\n return array.filter(x => !isNil(toValue(x)));\r\n}\r\nfunction concat(v, arg = []) {\r\n const lhs = toArray(v);\r\n const rhs = toArray(arg);\r\n this.context.memoryLimit.use(lhs.length + rhs.length);\r\n return lhs.concat(rhs);\r\n}\r\nfunction push(v, arg) {\r\n return concat.call(this, v, [arg]);\r\n}\r\nfunction unshift(v, arg) {\r\n const array = toArray(v);\r\n this.context.memoryLimit.use(array.length);\r\n const clone = [...array];\r\n clone.unshift(arg);\r\n return clone;\r\n}\r\nfunction pop(v) {\r\n const clone = [...toArray(v)];\r\n clone.pop();\r\n return clone;\r\n}\r\nfunction shift(v) {\r\n const array = toArray(v);\r\n this.context.memoryLimit.use(array.length);\r\n const clone = [...array];\r\n clone.shift();\r\n return clone;\r\n}\r\nfunction slice(v, begin, length = 1) {\r\n v = toValue(v);\r\n if (isNil(v))\r\n return [];\r\n if (!isArray(v))\r\n v = stringify(v);\r\n begin = begin < 0 ? v.length + begin : begin;\r\n this.context.memoryLimit.use(length);\r\n return v.slice(begin, begin + length);\r\n}\r\nfunction* where(arr, property, expected) {\r\n const values = [];\r\n arr = toArray(arr);\r\n this.context.memoryLimit.use(arr.length);\r\n const token = new Tokenizer(stringify(property)).readScopeValue();\r\n for (const item of arr) {\r\n values.push(yield evalToken(token, this.context.spawn(item)));\r\n }\r\n return arr.filter((_, i) => {\r\n if (expected === undefined)\r\n return isTruthy(values[i], this.context);\r\n return equals(values[i], expected);\r\n });\r\n}\r\nfunction* where_exp(arr, itemName, exp) {\r\n const filtered = [];\r\n const keyTemplate = new Value(stringify(exp), this.liquid);\r\n const array = toArray(arr);\r\n this.context.memoryLimit.use(array.length);\r\n for (const item of array) {\r\n const value = yield keyTemplate.value(this.context.spawn({ [itemName]: item }));\r\n if (value)\r\n filtered.push(item);\r\n }\r\n return filtered;\r\n}\r\nfunction* group_by(arr, property) {\r\n const map = new Map();\r\n arr = toArray(arr);\r\n const token = new Tokenizer(stringify(property)).readScopeValue();\r\n this.context.memoryLimit.use(arr.length);\r\n for (const item of arr) {\r\n const key = yield evalToken(token, this.context.spawn(item));\r\n if (!map.has(key))\r\n map.set(key, []);\r\n map.get(key).push(item);\r\n }\r\n return [...map.entries()].map(([name, items]) => ({ name, items }));\r\n}\r\nfunction* group_by_exp(arr, itemName, exp) {\r\n const map = new Map();\r\n const keyTemplate = new Value(stringify(exp), this.liquid);\r\n arr = toArray(arr);\r\n this.context.memoryLimit.use(arr.length);\r\n for (const item of arr) {\r\n const key = yield keyTemplate.value(this.context.spawn({ [itemName]: item }));\r\n if (!map.has(key))\r\n map.set(key, []);\r\n map.get(key).push(item);\r\n }\r\n return [...map.entries()].map(([name, items]) => ({ name, items }));\r\n}\r\nfunction* find(arr, property, expected) {\r\n const token = new Tokenizer(stringify(property)).readScopeValue();\r\n const array = toArray(arr);\r\n for (const item of array) {\r\n const value = yield evalToken(token, this.context.spawn(item));\r\n if (equals(value, expected))\r\n return item;\r\n }\r\n}\r\nfunction* find_exp(arr, itemName, exp) {\r\n const predicate = new Value(stringify(exp), this.liquid);\r\n const array = toArray(arr);\r\n for (const item of array) {\r\n const value = yield predicate.value(this.context.spawn({ [itemName]: item }));\r\n if (value)\r\n return item;\r\n }\r\n}\r\nfunction uniq(arr) {\r\n arr = toArray(arr);\r\n this.context.memoryLimit.use(arr.length);\r\n return [...new Set(arr)];\r\n}\r\nfunction sample(v, count = 1) {\r\n v = toValue(v);\r\n if (isNil(v))\r\n return [];\r\n if (!isArray(v))\r\n v = stringify(v);\r\n this.context.memoryLimit.use(count);\r\n const shuffled = [...v].sort(() => Math.random() - 0.5);\r\n if (count === 1)\r\n return shuffled[0];\r\n return shuffled.slice(0, count);\r\n}\n\nvar arrayFilters = /*#__PURE__*/Object.freeze({\n __proto__: null,\n join: join,\n last: last$1,\n first: first,\n reverse: reverse,\n sort: sort,\n sort_natural: sort_natural,\n size: size,\n map: map,\n sum: sum,\n compact: compact,\n concat: concat,\n push: push,\n unshift: unshift,\n pop: pop,\n shift: shift,\n slice: slice,\n where: where,\n where_exp: where_exp,\n group_by: group_by,\n group_by_exp: group_by_exp,\n find: find,\n find_exp: find_exp,\n uniq: uniq,\n sample: sample\n});\n\nfunction date(v, format, timezoneOffset) {\r\n var _a, _b, _c;\r\n const size = ((_a = v === null || v === void 0 ? void 0 : v.length) !== null && _a !== void 0 ? _a : 0) + ((_b = format === null || format === void 0 ? void 0 : format.length) !== null && _b !== void 0 ? _b : 0) + ((_c = timezoneOffset === null || timezoneOffset === void 0 ? void 0 : timezoneOffset.length) !== null && _c !== void 0 ? _c : 0);\r\n this.context.memoryLimit.use(size);\r\n const date = parseDate(v, this.context.opts, timezoneOffset);\r\n if (!date)\r\n return v;\r\n format = toValue(format);\r\n format = isNil(format) ? this.context.opts.dateFormat : stringify(format);\r\n return strftime(date, format);\r\n}\r\nfunction date_to_xmlschema(v) {\r\n return date.call(this, v, '%Y-%m-%dT%H:%M:%S%:z');\r\n}\r\nfunction date_to_rfc822(v) {\r\n return date.call(this, v, '%a, %d %b %Y %H:%M:%S %z');\r\n}\r\nfunction date_to_string(v, type, style) {\r\n return stringify_date.call(this, v, '%b', type, style);\r\n}\r\nfunction date_to_long_string(v, type, style) {\r\n return stringify_date.call(this, v, '%B', type, style);\r\n}\r\nfunction stringify_date(v, month_type, type, style) {\r\n const date = parseDate(v, this.context.opts);\r\n if (!date)\r\n return v;\r\n if (type === 'ordinal') {\r\n const d = date.getDate();\r\n return style === 'US'\r\n ? strftime(date, `${month_type} ${d}%q, %Y`)\r\n : strftime(date, `${d}%q ${month_type} %Y`);\r\n }\r\n return strftime(date, `%d ${month_type} %Y`);\r\n}\r\nfunction parseDate(v, opts, timezoneOffset) {\r\n let date;\r\n const defaultTimezoneOffset = timezoneOffset !== null && timezoneOffset !== void 0 ? timezoneOffset : opts.timezoneOffset;\r\n const locale = opts.locale;\r\n v = toValue(v);\r\n if (v === 'now' || v === 'today') {\r\n date = new LiquidDate(Date.now(), locale, defaultTimezoneOffset);\r\n }\r\n else if (isNumber(v)) {\r\n date = new LiquidDate(v * 1000, locale, defaultTimezoneOffset);\r\n }\r\n else if (isString(v)) {\r\n if (/^\\d+$/.test(v)) {\r\n date = new LiquidDate(+v * 1000, locale, defaultTimezoneOffset);\r\n }\r\n else if (opts.preserveTimezones && timezoneOffset === undefined) {\r\n date = LiquidDate.createDateFixedToTimezone(v, locale);\r\n }\r\n else {\r\n date = new LiquidDate(v, locale, defaultTimezoneOffset);\r\n }\r\n }\r\n else {\r\n date = new LiquidDate(v, locale, defaultTimezoneOffset);\r\n }\r\n return date.valid() ? date : undefined;\r\n}\n\nvar dateFilters = /*#__PURE__*/Object.freeze({\n __proto__: null,\n date: date,\n date_to_xmlschema: date_to_xmlschema,\n date_to_rfc822: date_to_rfc822,\n date_to_string: date_to_string,\n date_to_long_string: date_to_long_string\n});\n\n/**\r\n * String related filters\r\n *\r\n * * prefer stringify() to String() since `undefined`, `null` should eval ''\r\n */\r\nconst rCJKWord = /[\\u4E00-\\u9FFF\\uF900-\\uFAFF\\u3400-\\u4DBF\\u3040-\\u309F\\u30A0-\\u30FF\\uAC00-\\uD7AF]/gu;\r\n// Word boundary followed by word characters (for detecting words)\r\nconst rNonCJKWord = /[^\\u4E00-\\u9FFF\\uF900-\\uFAFF\\u3400-\\u4DBF\\u3040-\\u309F\\u30A0-\\u30FF\\uAC00-\\uD7AF\\s]+/gu;\r\nfunction append(v, arg) {\r\n assert(arguments.length === 2, 'append expect 2 arguments');\r\n const lhs = stringify(v);\r\n const rhs = stringify(arg);\r\n this.context.memoryLimit.use(lhs.length + rhs.length);\r\n return lhs + rhs;\r\n}\r\nfunction prepend(v, arg) {\r\n assert(arguments.length === 2, 'prepend expect 2 arguments');\r\n const lhs = stringify(v);\r\n const rhs = stringify(arg);\r\n this.context.memoryLimit.use(lhs.length + rhs.length);\r\n return rhs + lhs;\r\n}\r\nfunction lstrip(v, chars) {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n if (chars) {\r\n chars = escapeRegExp(stringify(chars));\r\n return str.replace(new RegExp(`^[${chars}]+`, 'g'), '');\r\n }\r\n return str.replace(/^\\s+/, '');\r\n}\r\nfunction downcase(v) {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n return str.toLowerCase();\r\n}\r\nfunction upcase(v) {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n return stringify(str).toUpperCase();\r\n}\r\nfunction remove(v, arg) {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n return str.split(stringify(arg)).join('');\r\n}\r\nfunction remove_first(v, l) {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n return str.replace(stringify(l), '');\r\n}\r\nfunction remove_last(v, l) {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n const pattern = stringify(l);\r\n const index = str.lastIndexOf(pattern);\r\n if (index === -1)\r\n return str;\r\n return str.substring(0, index) + str.substring(index + pattern.length);\r\n}\r\nfunction rstrip(str, chars) {\r\n str = stringify(str);\r\n this.context.memoryLimit.use(str.length);\r\n if (chars) {\r\n chars = escapeRegExp(stringify(chars));\r\n return str.replace(new RegExp(`[${chars}]+$`, 'g'), '');\r\n }\r\n return str.replace(/\\s+$/, '');\r\n}\r\nfunction split(v, arg) {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n const arr = str.split(stringify(arg));\r\n // align to ruby split, which is the behavior of shopify/liquid\r\n // see: https://ruby-doc.org/core-2.4.0/String.html#method-i-split\r\n while (arr.length && arr[arr.length - 1] === '')\r\n arr.pop();\r\n return arr;\r\n}\r\nfunction strip(v, chars) {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n if (chars) {\r\n chars = escapeRegExp(stringify(chars));\r\n return str\r\n .replace(new RegExp(`^[${chars}]+`, 'g'), '')\r\n .replace(new RegExp(`[${chars}]+$`, 'g'), '');\r\n }\r\n return str.trim();\r\n}\r\nfunction strip_newlines(v) {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n return str.replace(/\\r?\\n/gm, '');\r\n}\r\nfunction capitalize(str) {\r\n str = stringify(str);\r\n this.context.memoryLimit.use(str.length);\r\n return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();\r\n}\r\nfunction replace(v, pattern, replacement) {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n return str.split(stringify(pattern)).join(replacement);\r\n}\r\nfunction replace_first(v, arg1, arg2) {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n return str.replace(stringify(arg1), arg2);\r\n}\r\nfunction replace_last(v, arg1, arg2) {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n const pattern = stringify(arg1);\r\n const index = str.lastIndexOf(pattern);\r\n if (index === -1)\r\n return str;\r\n const replacement = stringify(arg2);\r\n return str.substring(0, index) + replacement + str.substring(index + pattern.length);\r\n}\r\nfunction truncate(v, l = 50, o = '...') {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n if (str.length <= l)\r\n return v;\r\n return str.substring(0, l - o.length) + o;\r\n}\r\nfunction truncatewords(v, words = 15, o = '...') {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n const arr = str.split(/\\s+/);\r\n if (words <= 0)\r\n words = 1;\r\n let ret = arr.slice(0, words).join(' ');\r\n if (arr.length >= words)\r\n ret += o;\r\n return ret;\r\n}\r\nfunction normalize_whitespace(v) {\r\n const str = stringify(v);\r\n this.context.memoryLimit.use(str.length);\r\n return str.replace(/\\s+/g, ' ');\r\n}\r\nfunction number_of_words(input, mode) {\r\n const str = stringify(input);\r\n this.context.memoryLimit.use(str.length);\r\n input = str.trim();\r\n if (!input)\r\n return 0;\r\n switch (mode) {\r\n case 'cjk':\r\n // Count CJK characters and words\r\n return (input.match(rCJKWord) || []).length + (input.match(rNonCJKWord) || []).length;\r\n case 'auto':\r\n // Count CJK characters, if none, count words\r\n return rCJKWord.test(input)\r\n ? input.match(rCJKWord).length + (input.match(rNonCJKWord) || []).length\r\n : input.split(/\\s+/).length;\r\n default:\r\n // Count words only\r\n return input.split(/\\s+/).length;\r\n }\r\n}\r\nfunction array_to_sentence_string(array, connector = 'and') {\r\n this.context.memoryLimit.use(array.length);\r\n switch (array.length) {\r\n case 0:\r\n return '';\r\n case 1:\r\n return array[0];\r\n case 2:\r\n return `${array[0]} ${connector} ${array[1]}`;\r\n default:\r\n return `${array.slice(0, -1).join(', ')}, ${connector} ${array[array.length - 1]}`;\r\n }\r\n}\n\nvar stringFilters = /*#__PURE__*/Object.freeze({\n __proto__: null,\n append: append,\n prepend: prepend,\n lstrip: lstrip,\n downcase: downcase,\n upcase: upcase,\n remove: remove,\n remove_first: remove_first,\n remove_last: remove_last,\n rstrip: rstrip,\n split: split,\n strip: strip,\n strip_newlines: strip_newlines,\n capitalize: capitalize,\n replace: replace,\n replace_first: replace_first,\n replace_last: replace_last,\n truncate: truncate,\n truncatewords: truncatewords,\n normalize_whitespace: normalize_whitespace,\n number_of_words: number_of_words,\n array_to_sentence_string: array_to_sentence_string\n});\n\nconst filters = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, htmlFilters), mathFilters), urlFilters), arrayFilters), dateFilters), stringFilters), misc);\n\nclass AssignTag extends Tag {\r\n constructor(token, remainTokens, liquid) {\r\n super(token, remainTokens, liquid);\r\n this.key = this.tokenizer.readIdentifier().content;\r\n this.tokenizer.assert(this.key, 'expected variable name');\r\n this.tokenizer.skipBlank();\r\n this.tokenizer.assert(this.tokenizer.peek() === '=', 'expected \"=\"');\r\n this.tokenizer.advance();\r\n this.value = new Value(this.tokenizer.readFilteredValue(), this.liquid);\r\n }\r\n *render(ctx) {\r\n ctx.bottom()[this.key] = yield this.value.value(ctx, this.liquid.options.lenientIf);\r\n }\r\n}\n\nconst MODIFIERS = ['offset', 'limit', 'reversed'];\r\nclass ForTag extends Tag {\r\n constructor(token, remainTokens, liquid, parser) {\r\n super(token, remainTokens, liquid);\r\n const variable = this.tokenizer.readIdentifier();\r\n const inStr = this.tokenizer.readIdentifier();\r\n const collection = this.tokenizer.readValue();\r\n if (!variable.size() || inStr.content !== 'in' || !collection) {\r\n throw new Error(`illegal tag: ${token.getText()}`);\r\n }\r\n this.variable = variable.content;\r\n this.collection = collection;\r\n this.hash = new Hash(this.tokenizer.remaining());\r\n this.templates = [];\r\n this.elseTemplates = [];\r\n let p;\r\n const stream = parser.parseStream(remainTokens)\r\n .on('start', () => (p = this.templates))\r\n .on('tag:else', tag => { assertEmpty(tag.args); p = this.elseTemplates; })\r\n .on('tag:endfor', tag => { assertEmpty(tag.args); stream.stop(); })\r\n .on('template', (tpl) => p.push(tpl))\r\n .on('end', () => { throw new Error(`tag ${token.getText()} not closed`); });\r\n stream.start();\r\n }\r\n *render(ctx, emitter) {\r\n const r = this.liquid.renderer;\r\n let collection = toEnumerable(yield evalToken(this.collection, ctx));\r\n if (!collection.length) {\r\n yield r.renderTemplates(this.elseTemplates, ctx, emitter);\r\n return;\r\n }\r\n const continueKey = 'continue-' + this.variable + '-' + this.collection.getText();\r\n ctx.push({ continue: ctx.getRegister(continueKey) });\r\n const hash = yield this.hash.render(ctx);\r\n ctx.pop();\r\n const modifiers = this.liquid.options.orderedFilterParameters\r\n ? Object.keys(hash).filter(x => MODIFIERS.includes(x))\r\n : MODIFIERS.filter(x => hash[x] !== undefined);\r\n collection = modifiers.reduce((collection, modifier) => {\r\n if (modifier === 'offset')\r\n return offset(collection, hash['offset']);\r\n if (modifier === 'limit')\r\n return limit(collection, hash['limit']);\r\n return reversed(collection);\r\n }, collection);\r\n ctx.setRegister(continueKey, (hash['offset'] || 0) + collection.length);\r\n const scope = { forloop: new ForloopDrop(collection.length, this.collection.getText(), this.variable) };\r\n ctx.push(scope);\r\n for (const item of collection) {\r\n scope[this.variable] = item;\r\n yield r.renderTemplates(this.templates, ctx, emitter);\r\n if (emitter['break']) {\r\n emitter['break'] = false;\r\n break;\r\n }\r\n emitter['continue'] = false;\r\n scope.forloop.next();\r\n }\r\n ctx.pop();\r\n }\r\n}\r\nfunction reversed(arr) {\r\n return [...arr].reverse();\r\n}\r\nfunction offset(arr, count) {\r\n return arr.slice(count);\r\n}\r\nfunction limit(arr, count) {\r\n return arr.slice(0, count);\r\n}\n\nclass CaptureTag extends Tag {\r\n constructor(tagToken, remainTokens, liquid, parser) {\r\n super(tagToken, remainTokens, liquid);\r\n this.templates = [];\r\n this.variable = this.readVariableName();\r\n while (remainTokens.length) {\r\n const token = remainTokens.shift();\r\n if (isTagToken(token) && token.name === 'endcapture')\r\n return;\r\n this.templates.push(parser.parseToken(token, remainTokens));\r\n }\r\n throw new Error(`tag ${tagToken.getText()} not closed`);\r\n }\r\n *render(ctx) {\r\n const r = this.liquid.renderer;\r\n const html = yield r.renderTemplates(this.templates, ctx);\r\n ctx.bottom()[this.variable] = html;\r\n }\r\n readVariableName() {\r\n const word = this.tokenizer.readIdentifier().content;\r\n if (word)\r\n return word;\r\n const quoted = this.tokenizer.readQuoted();\r\n if (quoted)\r\n return evalQuotedToken(quoted);\r\n throw this.tokenizer.error('invalid capture name');\r\n }\r\n}\n\nclass CaseTag extends Tag {\r\n constructor(tagToken, remainTokens, liquid, parser) {\r\n super(tagToken, remainTokens, liquid);\r\n this.branches = [];\r\n this.elseTemplates = [];\r\n this.value = new Value(this.tokenizer.readFilteredValue(), this.liquid);\r\n this.elseTemplates = [];\r\n let p = [];\r\n let elseCount = 0;\r\n const stream = parser.parseStream(remainTokens)\r\n .on('tag:when', (token) => {\r\n if (elseCount > 0) {\r\n return;\r\n }\r\n p = [];\r\n const values = [];\r\n while (!token.tokenizer.end()) {\r\n values.push(token.tokenizer.readValueOrThrow());\r\n token.tokenizer.skipBlank();\r\n if (token.tokenizer.peek() === ',') {\r\n token.tokenizer.readTo(',');\r\n }\r\n else {\r\n token.tokenizer.readTo('or');\r\n }\r\n }\r\n this.branches.push({\r\n values,\r\n templates: p\r\n });\r\n })\r\n .on('tag:else', () => {\r\n elseCount++;\r\n p = this.elseTemplates;\r\n })\r\n .on('tag:endcase', () => stream.stop())\r\n .on('template', (tpl) => {\r\n if (p !== this.elseTemplates || elseCount === 1) {\r\n p.push(tpl);\r\n }\r\n })\r\n .on('end', () => {\r\n throw new Error(`tag ${tagToken.getText()} not closed`);\r\n });\r\n stream.start();\r\n }\r\n *render(ctx, emitter) {\r\n const r = this.liquid.renderer;\r\n const target = toValue(yield this.value.value(ctx, ctx.opts.lenientIf));\r\n let branchHit = false;\r\n for (const branch of this.branches) {\r\n for (const valueToken of branch.values) {\r\n const value = yield evalToken(valueToken, ctx, ctx.opts.lenientIf);\r\n if (equals(target, value)) {\r\n yield r.renderTemplates(branch.templates, ctx, emitter);\r\n branchHit = true;\r\n break;\r\n }\r\n }\r\n }\r\n if (!branchHit) {\r\n yield r.renderTemplates(this.elseTemplates, ctx, emitter);\r\n }\r\n }\r\n}\n\nclass CommentTag extends Tag {\r\n constructor(tagToken, remainTokens, liquid) {\r\n super(tagToken, remainTokens, liquid);\r\n while (remainTokens.length) {\r\n const token = remainTokens.shift();\r\n if (isTagToken(token) && token.name === 'endcomment')\r\n return;\r\n }\r\n throw new Error(`tag ${tagToken.getText()} not closed`);\r\n }\r\n render() { }\r\n}\n\nclass RenderTag extends Tag {\r\n constructor(token, remainTokens, liquid, parser) {\r\n super(token, remainTokens, liquid);\r\n const tokenizer = this.tokenizer;\r\n this.file = parseFilePath(tokenizer, this.liquid, parser);\r\n this.currentFile = token.file;\r\n while (!tokenizer.end()) {\r\n tokenizer.skipBlank();\r\n const begin = tokenizer.p;\r\n const keyword = tokenizer.readIdentifier();\r\n if (keyword.content === 'with' || keyword.content === 'for') {\r\n tokenizer.skipBlank();\r\n // can be normal key/value pair, like \"with: true\"\r\n if (tokenizer.peek() !== ':') {\r\n const value = tokenizer.readValue();\r\n // can be normal key, like \"with,\"\r\n if (value) {\r\n const beforeAs = tokenizer.p;\r\n const asStr = tokenizer.readIdentifier();\r\n let alias;\r\n if (asStr.content === 'as')\r\n alias = tokenizer.readIdentifier();\r\n else\r\n tokenizer.p = beforeAs;\r\n this[keyword.content] = { value, alias: alias && alias.content };\r\n tokenizer.skipBlank();\r\n if (tokenizer.peek() === ',')\r\n tokenizer.advance();\r\n continue; // matched!\r\n }\r\n }\r\n }\r\n /**\r\n * restore cursor if with/for not matched\r\n */\r\n tokenizer.p = begin;\r\n break;\r\n }\r\n this.hash = new Hash(tokenizer.remaining());\r\n }\r\n *render(ctx, emitter) {\r\n const { liquid, hash } = this;\r\n const filepath = (yield renderFilePath(this['file'], ctx, liquid));\r\n assert(filepath, () => `illegal file path \"${filepath}\"`);\r\n const childCtx = ctx.spawn();\r\n const scope = childCtx.bottom();\r\n __assign(scope, yield hash.render(ctx));\r\n if (this['with']) {\r\n const { value, alias } = this['with'];\r\n scope[alias || filepath] = yield evalToken(value, ctx);\r\n }\r\n if (this['for']) {\r\n const { value, alias } = this['for'];\r\n const collection = toEnumerable(yield evalToken(value, ctx));\r\n scope['forloop'] = new ForloopDrop(collection.length, value.getText(), alias);\r\n for (const item of collection) {\r\n scope[alias] = item;\r\n const templates = (yield liquid._parsePartialFile(filepath, childCtx.sync, this['currentFile']));\r\n yield liquid.renderer.renderTemplates(templates, childCtx, emitter);\r\n scope['forloop'].next();\r\n }\r\n }\r\n else {\r\n const templates = (yield liquid._parsePartialFile(filepath, childCtx.sync, this['currentFile']));\r\n yield liquid.renderer.renderTemplates(templates, childCtx, emitter);\r\n }\r\n }\r\n}\r\n/**\r\n * @return null for \"none\",\r\n * @return Template[] for quoted with tags and/or filters\r\n * @return Token for expression (not quoted)\r\n * @throws TypeError if cannot read next token\r\n */\r\nfunction parseFilePath(tokenizer, liquid, parser) {\r\n if (liquid.options.dynamicPartials) {\r\n const file = tokenizer.readValue();\r\n tokenizer.assert(file, 'illegal file path');\r\n if (file.getText() === 'none')\r\n return;\r\n if (isQuotedToken(file)) {\r\n // for filenames like \"files/{{file}}\", eval as liquid template\r\n const templates = parser.parse(evalQuotedToken(file));\r\n return optimize(templates);\r\n }\r\n return file;\r\n }\r\n const tokens = [...tokenizer.readFileNameTemplate(liquid.options)];\r\n const templates = optimize(parser.parseTokens(tokens));\r\n return templates === 'none' ? undefined : templates;\r\n}\r\nfunction optimize(templates) {\r\n // for filenames like \"files/file.liquid\", extract the string directly\r\n if (templates.length === 1 && isHTMLToken(templates[0].token))\r\n return templates[0].token.getContent();\r\n return templates;\r\n}\r\nfunction* renderFilePath(file, ctx, liquid) {\r\n if (typeof file === 'string')\r\n return file;\r\n if (Array.isArray(file))\r\n return liquid.renderer.renderTemplates(file, ctx);\r\n return yield evalToken(file, ctx);\r\n}\n\nclass IncludeTag extends Tag {\r\n constructor(token, remainTokens, liquid, parser) {\r\n super(token, remainTokens, liquid);\r\n const { tokenizer } = token;\r\n this['file'] = parseFilePath(tokenizer, this.liquid, parser);\r\n this['currentFile'] = token.file;\r\n const begin = tokenizer.p;\r\n const withStr = tokenizer.readIdentifier();\r\n if (withStr.content === 'with') {\r\n tokenizer.skipBlank();\r\n if (tokenizer.peek() !== ':') {\r\n this.withVar = tokenizer.readValue();\r\n }\r\n else\r\n tokenizer.p = begin;\r\n }\r\n else\r\n tokenizer.p = begin;\r\n this.hash = new Hash(tokenizer.remaining(), this.liquid.options.jekyllInclude);\r\n }\r\n *render(ctx, emitter) {\r\n const { liquid, hash, withVar } = this;\r\n const { renderer } = liquid;\r\n const filepath = (yield renderFilePath(this['file'], ctx, liquid));\r\n assert(filepath, () => `illegal file path \"${filepath}\"`);\r\n const saved = ctx.saveRegister('blocks', 'blockMode');\r\n ctx.setRegister('blocks', {});\r\n ctx.setRegister('blockMode', BlockMode.OUTPUT);\r\n const scope = (yield hash.render(ctx));\r\n if (withVar)\r\n scope[filepath] = yield evalToken(withVar, ctx);\r\n const templates = (yield liquid._parsePartialFile(filepath, ctx.sync, this['currentFile']));\r\n ctx.push(ctx.opts.jekyllInclude ? { include: scope } : scope);\r\n yield renderer.renderTemplates(templates, ctx, emitter);\r\n ctx.pop();\r\n ctx.restoreRegister(saved);\r\n }\r\n}\n\nclass DecrementTag extends Tag {\r\n constructor(token, remainTokens, liquid) {\r\n super(token, remainTokens, liquid);\r\n this.variable = this.tokenizer.readIdentifier().content;\r\n }\r\n render(context, emitter) {\r\n const scope = context.environments;\r\n if (!isNumber(scope[this.variable])) {\r\n scope[this.variable] = 0;\r\n }\r\n emitter.write(stringify(--scope[this.variable]));\r\n }\r\n}\n\nclass CycleTag extends Tag {\r\n constructor(token, remainTokens, liquid) {\r\n super(token, remainTokens, liquid);\r\n this.candidates = [];\r\n const group = this.tokenizer.readValue();\r\n this.tokenizer.skipBlank();\r\n if (group) {\r\n if (this.tokenizer.peek() === ':') {\r\n this.group = group;\r\n this.tokenizer.advance();\r\n }\r\n else\r\n this.candidates.push(group);\r\n }\r\n while (!this.tokenizer.end()) {\r\n const value = this.tokenizer.readValue();\r\n if (value)\r\n this.candidates.push(value);\r\n this.tokenizer.readTo(',');\r\n }\r\n this.tokenizer.assert(this.candidates.length, () => `empty candidates: \"${token.getText()}\"`);\r\n }\r\n *render(ctx, emitter) {\r\n const group = (yield evalToken(this.group, ctx));\r\n const fingerprint = `cycle:${group}:` + this.candidates.join(',');\r\n const groups = ctx.getRegister('cycle');\r\n let idx = groups[fingerprint];\r\n if (idx === undefined) {\r\n idx = groups[fingerprint] = 0;\r\n }\r\n const candidate = this.candidates[idx];\r\n idx = (idx + 1) % this.candidates.length;\r\n groups[fingerprint] = idx;\r\n return yield evalToken(candidate, ctx);\r\n }\r\n}\n\nclass IfTag extends Tag {\r\n constructor(tagToken, remainTokens, liquid, parser) {\r\n super(tagToken, remainTokens, liquid);\r\n this.branches = [];\r\n let p = [];\r\n parser.parseStream(remainTokens)\r\n .on('start', () => this.branches.push({\r\n value: new Value(tagToken.args, this.liquid),\r\n templates: (p = [])\r\n }))\r\n .on('tag:elsif', (token) => {\r\n assert(!this.elseTemplates, 'unexpected elsif after else');\r\n this.branches.push({\r\n value: new Value(token.args, this.liquid),\r\n templates: (p = [])\r\n });\r\n })\r\n .on('tag:else', tag => {\r\n assertEmpty(tag.args);\r\n assert(!this.elseTemplates, 'duplicated else');\r\n p = this.elseTemplates = [];\r\n })\r\n .on('tag:endif', function (tag) { assertEmpty(tag.args); this.stop(); })\r\n .on('template', (tpl) => p.push(tpl))\r\n .on('end', () => { throw new Error(`tag ${tagToken.getText()} not closed`); })\r\n .start();\r\n }\r\n *render(ctx, emitter) {\r\n const r = this.liquid.renderer;\r\n for (const { value, templates } of this.branches) {\r\n const v = yield value.value(ctx, ctx.opts.lenientIf);\r\n if (isTruthy(v, ctx)) {\r\n yield r.renderTemplates(templates, ctx, emitter);\r\n return;\r\n }\r\n }\r\n yield r.renderTemplates(this.elseTemplates || [], ctx, emitter);\r\n }\r\n}\n\nclass IncrementTag extends Tag {\r\n constructor(token, remainTokens, liquid) {\r\n super(token, remainTokens, liquid);\r\n this.variable = this.tokenizer.readIdentifier().content;\r\n }\r\n render(context, emitter) {\r\n const scope = context.environments;\r\n if (!isNumber(scope[this.variable])) {\r\n scope[this.variable] = 0;\r\n }\r\n const val = scope[this.variable];\r\n scope[this.variable]++;\r\n emitter.write(stringify(val));\r\n }\r\n}\n\nclass LayoutTag extends Tag {\r\n constructor(token, remainTokens, liquid, parser) {\r\n super(token, remainTokens, liquid);\r\n this.file = parseFilePath(this.tokenizer, this.liquid, parser);\r\n this['currentFile'] = token.file;\r\n this.args = new Hash(this.tokenizer.remaining());\r\n this.templates = parser.parseTokens(remainTokens);\r\n }\r\n *render(ctx, emitter) {\r\n const { liquid, args, file } = this;\r\n const { renderer } = liquid;\r\n if (file === undefined) {\r\n ctx.setRegister('blockMode', BlockMode.OUTPUT);\r\n yield renderer.renderTemplates(this.templates, ctx, emitter);\r\n return;\r\n }\r\n const filepath = (yield renderFilePath(this.file, ctx, liquid));\r\n assert(filepath, () => `illegal file path \"${filepath}\"`);\r\n const templates = (yield liquid._parseLayoutFile(filepath, ctx.sync, this['currentFile']));\r\n // render remaining contents and store rendered results\r\n ctx.setRegister('blockMode', BlockMode.STORE);\r\n const html = yield renderer.renderTemplates(this.templates, ctx);\r\n const blocks = ctx.getRegister('blocks');\r\n // set whole content to anonymous block if anonymous doesn't specified\r\n if (blocks[''] === undefined)\r\n blocks[''] = (parent, emitter) => emitter.write(html);\r\n ctx.setRegister('blockMode', BlockMode.OUTPUT);\r\n // render the layout file use stored blocks\r\n ctx.push((yield args.render(ctx)));\r\n yield renderer.renderTemplates(templates, ctx, emitter);\r\n ctx.pop();\r\n }\r\n}\n\nclass BlockTag extends Tag {\r\n constructor(token, remainTokens, liquid, parser) {\r\n super(token, remainTokens, liquid);\r\n this.templates = [];\r\n const match = /\\w+/.exec(token.args);\r\n this.block = match ? match[0] : '';\r\n while (remainTokens.length) {\r\n const token = remainTokens.shift();\r\n if (isTagToken(token) && token.name === 'endblock')\r\n return;\r\n const template = parser.parseToken(token, remainTokens);\r\n this.templates.push(template);\r\n }\r\n throw new Error(`tag ${token.getText()} not closed`);\r\n }\r\n *render(ctx, emitter) {\r\n const blockRender = this.getBlockRender(ctx);\r\n if (ctx.getRegister('blockMode') === BlockMode.STORE) {\r\n ctx.getRegister('blocks')[this.block] = blockRender;\r\n }\r\n else {\r\n yield blockRender(new BlockDrop(), emitter);\r\n }\r\n }\r\n getBlockRender(ctx) {\r\n const { liquid, templates } = this;\r\n const renderChild = ctx.getRegister('blocks')[this.block];\r\n const renderCurrent = function* (superBlock, emitter) {\r\n // add {{ block.super }} support when rendering\r\n ctx.push({ block: superBlock });\r\n yield liquid.renderer.renderTemplates(templates, ctx, emitter);\r\n ctx.pop();\r\n };\r\n return renderChild\r\n ? (superBlock, emitter) => renderChild(new BlockDrop(() => renderCurrent(superBlock, emitter)), emitter)\r\n : renderCurrent;\r\n }\r\n}\n\nclass RawTag extends Tag {\r\n constructor(tagToken, remainTokens, liquid) {\r\n super(tagToken, remainTokens, liquid);\r\n this.tokens = [];\r\n while (remainTokens.length) {\r\n const token = remainTokens.shift();\r\n if (isTagToken(token) && token.name === 'endraw')\r\n return;\r\n this.tokens.push(token);\r\n }\r\n throw new Error(`tag ${tagToken.getText()} not closed`);\r\n }\r\n render() {\r\n return this.tokens.map((token) => token.getText()).join('');\r\n }\r\n}\n\nclass TablerowloopDrop extends ForloopDrop {\r\n constructor(length, cols, collection, variable) {\r\n super(length, collection, variable);\r\n this.length = length;\r\n this.cols = cols;\r\n }\r\n row() {\r\n return Math.floor(this.i / this.cols) + 1;\r\n }\r\n col0() {\r\n return (this.i % this.cols);\r\n }\r\n col() {\r\n return this.col0() + 1;\r\n }\r\n col_first() {\r\n return this.col0() === 0;\r\n }\r\n col_last() {\r\n return this.col() === this.cols;\r\n }\r\n}\n\nclass TablerowTag extends Tag {\r\n constructor(tagToken, remainTokens, liquid, parser) {\r\n super(tagToken, remainTokens, liquid);\r\n const variable = this.tokenizer.readIdentifier();\r\n this.tokenizer.skipBlank();\r\n const predicate = this.tokenizer.readIdentifier();\r\n const collectionToken = this.tokenizer.readValue();\r\n if (predicate.content !== 'in' || !collectionToken) {\r\n throw new Error(`illegal tag: ${tagToken.getText()}`);\r\n }\r\n this.variable = variable.content;\r\n this.collection = collectionToken;\r\n this.args = new Hash(this.tokenizer.remaining());\r\n this.templates = [];\r\n let p;\r\n const stream = parser.parseStream(remainTokens)\r\n .on('start', () => (p = this.templates))\r\n .on('tag:endtablerow', () => stream.stop())\r\n .on('template', (tpl) => p.push(tpl))\r\n .on('end', () => {\r\n throw new Error(`tag ${tagToken.getText()} not closed`);\r\n });\r\n stream.start();\r\n }\r\n *render(ctx, emitter) {\r\n let collection = toEnumerable(yield evalToken(this.collection, ctx));\r\n const args = (yield this.args.render(ctx));\r\n const offset = args.offset || 0;\r\n const limit = (args.limit === undefined) ? collection.length : args.limit;\r\n collection = collection.slice(offset, offset + limit);\r\n const cols = args.cols || collection.length;\r\n const r = this.liquid.renderer;\r\n const tablerowloop = new TablerowloopDrop(collection.length, cols, this.collection.getText(), this.variable);\r\n const scope = { tablerowloop };\r\n ctx.push(scope);\r\n for (let idx = 0; idx < collection.length; idx++, tablerowloop.next()) {\r\n scope[this.variable] = collection[idx];\r\n if (tablerowloop.col0() === 0) {\r\n if (tablerowloop.row() !== 1)\r\n emitter.write('');\r\n emitter.write(``);\r\n }\r\n emitter.write(``);\r\n yield r.renderTemplates(this.templates, ctx, emitter);\r\n emitter.write('');\r\n }\r\n if (collection.length)\r\n emitter.write('');\r\n ctx.pop();\r\n }\r\n}\n\nclass UnlessTag extends Tag {\r\n constructor(tagToken, remainTokens, liquid, parser) {\r\n super(tagToken, remainTokens, liquid);\r\n this.branches = [];\r\n this.elseTemplates = [];\r\n let p = [];\r\n let elseCount = 0;\r\n parser.parseStream(remainTokens)\r\n .on('start', () => this.branches.push({\r\n value: new Value(tagToken.args, this.liquid),\r\n test: isFalsy,\r\n templates: (p = [])\r\n }))\r\n .on('tag:elsif', (token) => {\r\n if (elseCount > 0) {\r\n p = [];\r\n return;\r\n }\r\n this.branches.push({\r\n value: new Value(token.args, this.liquid),\r\n test: isTruthy,\r\n templates: (p = [])\r\n });\r\n })\r\n .on('tag:else', () => {\r\n elseCount++;\r\n p = this.elseTemplates;\r\n })\r\n .on('tag:endunless', function () { this.stop(); })\r\n .on('template', (tpl) => {\r\n if (p !== this.elseTemplates || elseCount === 1) {\r\n p.push(tpl);\r\n }\r\n })\r\n .on('end', () => { throw new Error(`tag ${tagToken.getText()} not closed`); })\r\n .start();\r\n }\r\n *render(ctx, emitter) {\r\n const r = this.liquid.renderer;\r\n for (const { value, test, templates } of this.branches) {\r\n const v = yield value.value(ctx, ctx.opts.lenientIf);\r\n if (test(v, ctx)) {\r\n yield r.renderTemplates(templates, ctx, emitter);\r\n return;\r\n }\r\n }\r\n yield r.renderTemplates(this.elseTemplates, ctx, emitter);\r\n }\r\n}\n\nclass BreakTag extends Tag {\r\n render(ctx, emitter) {\r\n emitter['break'] = true;\r\n }\r\n}\n\nclass ContinueTag extends Tag {\r\n render(ctx, emitter) {\r\n emitter['continue'] = true;\r\n }\r\n}\n\nclass EchoTag extends Tag {\r\n constructor(token, remainTokens, liquid) {\r\n super(token, remainTokens, liquid);\r\n this.tokenizer.skipBlank();\r\n if (!this.tokenizer.end()) {\r\n this.value = new Value(this.tokenizer.readFilteredValue(), this.liquid);\r\n }\r\n }\r\n *render(ctx, emitter) {\r\n if (!this.value)\r\n return;\r\n const val = yield this.value.value(ctx, false);\r\n emitter.write(val);\r\n }\r\n}\n\nclass LiquidTag extends Tag {\r\n constructor(token, remainTokens, liquid, parser) {\r\n super(token, remainTokens, liquid);\r\n const tokens = this.tokenizer.readLiquidTagTokens(this.liquid.options);\r\n this.templates = parser.parseTokens(tokens);\r\n }\r\n *render(ctx, emitter) {\r\n yield this.liquid.renderer.renderTemplates(this.templates, ctx, emitter);\r\n }\r\n}\n\nclass InlineCommentTag extends Tag {\r\n constructor(tagToken, remainTokens, liquid) {\r\n super(tagToken, remainTokens, liquid);\r\n if (tagToken.args.search(/\\n\\s*[^#\\s]/g) !== -1) {\r\n throw new Error('every line of an inline comment must start with a \\'#\\' character');\r\n }\r\n }\r\n render() { }\r\n}\n\nconst tags = {\r\n assign: AssignTag,\r\n 'for': ForTag,\r\n capture: CaptureTag,\r\n 'case': CaseTag,\r\n comment: CommentTag,\r\n include: IncludeTag,\r\n render: RenderTag,\r\n decrement: DecrementTag,\r\n increment: IncrementTag,\r\n cycle: CycleTag,\r\n 'if': IfTag,\r\n layout: LayoutTag,\r\n block: BlockTag,\r\n raw: RawTag,\r\n tablerow: TablerowTag,\r\n unless: UnlessTag,\r\n 'break': BreakTag,\r\n 'continue': ContinueTag,\r\n echo: EchoTag,\r\n liquid: LiquidTag,\r\n '#': InlineCommentTag\r\n};\n\nclass Liquid {\r\n constructor(opts = {}) {\r\n this.renderer = new Render();\r\n this.filters = {};\r\n this.tags = {};\r\n this.options = normalize(opts);\r\n // eslint-disable-next-line deprecation/deprecation\r\n this.parser = new Parser(this);\r\n forOwn(tags, (conf, name) => this.registerTag(name, conf));\r\n forOwn(filters, (handler, name) => this.registerFilter(name, handler));\r\n }\r\n parse(html, filepath) {\r\n const parser = new Parser(this);\r\n return parser.parse(html, filepath);\r\n }\r\n _render(tpl, scope, renderOptions) {\r\n const ctx = scope instanceof Context ? scope : new Context(scope, this.options, renderOptions);\r\n return this.renderer.renderTemplates(tpl, ctx);\r\n }\r\n render(tpl, scope, renderOptions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return toPromise(this._render(tpl, scope, Object.assign(Object.assign({}, renderOptions), { sync: false })));\r\n });\r\n }\r\n renderSync(tpl, scope, renderOptions) {\r\n return toValueSync(this._render(tpl, scope, Object.assign(Object.assign({}, renderOptions), { sync: true })));\r\n }\r\n renderToNodeStream(tpl, scope, renderOptions = {}) {\r\n const ctx = new Context(scope, this.options, renderOptions);\r\n return this.renderer.renderTemplatesToNodeStream(tpl, ctx);\r\n }\r\n _parseAndRender(html, scope, renderOptions) {\r\n const tpl = this.parse(html);\r\n return this._render(tpl, scope, renderOptions);\r\n }\r\n parseAndRender(html, scope, renderOptions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return toPromise(this._parseAndRender(html, scope, Object.assign(Object.assign({}, renderOptions), { sync: false })));\r\n });\r\n }\r\n parseAndRenderSync(html, scope, renderOptions) {\r\n return toValueSync(this._parseAndRender(html, scope, Object.assign(Object.assign({}, renderOptions), { sync: true })));\r\n }\r\n _parsePartialFile(file, sync, currentFile) {\r\n return new Parser(this).parseFile(file, sync, LookupType.Partials, currentFile);\r\n }\r\n _parseLayoutFile(file, sync, currentFile) {\r\n return new Parser(this).parseFile(file, sync, LookupType.Layouts, currentFile);\r\n }\r\n _parseFile(file, sync, lookupType, currentFile) {\r\n return new Parser(this).parseFile(file, sync, lookupType, currentFile);\r\n }\r\n parseFile(file, lookupType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return toPromise(new Parser(this).parseFile(file, false, lookupType));\r\n });\r\n }\r\n parseFileSync(file, lookupType) {\r\n return toValueSync(new Parser(this).parseFile(file, true, lookupType));\r\n }\r\n *_renderFile(file, ctx, renderFileOptions) {\r\n const templates = (yield this._parseFile(file, renderFileOptions.sync, renderFileOptions.lookupType));\r\n return yield this._render(templates, ctx, renderFileOptions);\r\n }\r\n renderFile(file, ctx, renderFileOptions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return toPromise(this._renderFile(file, ctx, Object.assign(Object.assign({}, renderFileOptions), { sync: false })));\r\n });\r\n }\r\n renderFileSync(file, ctx, renderFileOptions) {\r\n return toValueSync(this._renderFile(file, ctx, Object.assign(Object.assign({}, renderFileOptions), { sync: true })));\r\n }\r\n renderFileToNodeStream(file, scope, renderOptions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const templates = yield this.parseFile(file);\r\n return this.renderToNodeStream(templates, scope, renderOptions);\r\n });\r\n }\r\n _evalValue(str, scope) {\r\n const value = new Value(str, this);\r\n const ctx = scope instanceof Context ? scope : new Context(scope, this.options);\r\n return value.value(ctx);\r\n }\r\n evalValue(str, scope) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return toPromise(this._evalValue(str, scope));\r\n });\r\n }\r\n evalValueSync(str, scope) {\r\n return toValueSync(this._evalValue(str, scope));\r\n }\r\n registerFilter(name, filter) {\r\n this.filters[name] = filter;\r\n }\r\n registerTag(name, tag) {\r\n this.tags[name] = isFunction(tag) ? tag : createTagClass(tag);\r\n }\r\n plugin(plugin) {\r\n return plugin.call(this, Liquid);\r\n }\r\n express() {\r\n const self = this; // eslint-disable-line\r\n let firstCall = true;\r\n return function (filePath, ctx, callback) {\r\n if (firstCall) {\r\n firstCall = false;\r\n const dirs = normalizeDirectoryList(this.root);\r\n self.options.root.unshift(...dirs);\r\n self.options.layouts.unshift(...dirs);\r\n self.options.partials.unshift(...dirs);\r\n }\r\n self.renderFile(filePath, ctx).then(html => callback(null, html), callback);\r\n };\r\n }\r\n}\n\n/* istanbul ignore file */\r\nconst version = '[VI]{version}[/VI]';\n\nexport { AssertionError, AssignTag, BlockTag, BreakTag, CaptureTag, CaseTag, CommentTag, Context, ContinueTag, CycleTag, DecrementTag, Drop, EchoTag, Expression, Filter, ForTag, Hash, IfTag, IncludeTag, IncrementTag, InlineCommentTag, LayoutTag, Liquid, LiquidError, LiquidTag, Output, ParseError, ParseStream, RawTag, RenderError, RenderTag, TablerowTag, Tag, TagToken, Token, TokenKind, TokenizationError, Tokenizer, typeGuards as TypeGuards, UndefinedVariableError, UnlessTag, Value, assert, createTrie, defaultOperators, defaultOptions, evalQuotedToken, evalToken, filters, isFalsy, isTruthy, tags, toPromise, toValue, toValueSync, version };\n","const FontEscapeFilter = (input) => (input ? input.replaceAll('\"', \"'\") : '');\n\nexport default FontEscapeFilter;\n","import { Liquid } from 'liquidjs';\nimport Config from '../Config';\nimport { getShop } from '../framework/util/auth';\nimport { emailShell } from './emailShell';\nimport FontEscapeFilter from './filters/fontEscapeFilter';\n\nconst engine = new Liquid();\nengine.registerFilter('base64encode', (a) => btoa(a));\nengine.registerFilter('fontescape', FontEscapeFilter);\n\nexport const buildHtmlForComponent = (componentName, vals, components) => {\n let html = '';\n // eslint-disable-next-line no-underscore-dangle\n const name = componentName || vals.id || vals._id;\n const comp = components && components.find((c) => c.key === name);\n if (comp && comp.html) {\n const values = {\n ...vals,\n DEFAULT_TABLE_ATTRIBUTES:\n ' cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" ',\n DEFAULT_TABLE_STYLES: 'mso-table-lspace: 0; mso-table-rspace: 0;',\n total_price: '$25.00',\n subtotal_price: '$15.00',\n total_tip: '$0',\n shipping_method: {\n price: '$10.00',\n },\n API_SERVER: Config.spently.server,\n AZURE_CONTENT_FOLDER_URL: Config.spently.azureBlobContentFolderUrl,\n RECO_SERVER: Config.spently.reco,\n PUBLIC_API_SERVER: Config.spently.publicApi,\n shop: getShop('spently'),\n };\n\n if (vals.columns) {\n const compHtml = [];\n Object.keys(vals.columns).forEach((columnId) => {\n const column = { ...vals.columns[columnId] };\n // eslint-disable-next-line no-underscore-dangle\n const columnType = column._id;\n column.preview = true;\n column.recType = vals.recType;\n const columnHtml = buildHtmlForComponent(\n columnType,\n column,\n components\n );\n compHtml.push(columnHtml);\n });\n values.compHtml = compHtml;\n delete values.columns;\n }\n\n let globalKey = '';\n Object.keys(values).forEach((v) => {\n if (v.indexOf('gbl') === 0) {\n globalKey = v;\n }\n });\n\n if (globalKey) {\n const isGlobal = values[globalKey];\n const overrides =\n comp.options.filter(\n (o) => o.dependsOn === globalKey || o.dependsOnBkwd === globalKey\n ) || [];\n\n overrides.forEach((over) => {\n if (isGlobal && over.dependsOn === globalKey) {\n if (over.overrides) {\n values[over.overrides] = values[over.name];\n } else if (over.name) {\n // logError(\n // `[${name}]were looking at ${over.name} with: ${isGlobal}`,\n // over\n // );\n }\n } else if (\n isGlobal &&\n !overrides.find((o) => o.overrides === over.name)\n ) {\n values[over.name] = over.defaultValue;\n }\n });\n }\n\n comp.options.forEach((opt) => {\n if (opt.name && opt.defaultValue && values[opt.name] === undefined) {\n values[opt.name] = opt.defaultValue;\n }\n });\n\n const newSection = engine.parseAndRenderSync(comp.html, values);\n html = newSection;\n }\n\n return html;\n};\n\nexport const buildHtmlForTemplate = (template, components) => {\n let html = '';\n html += buildHtmlForComponent(\n 'Header',\n {\n navBar: template.options.NavigationBar,\n // TODO: hideous data model is hideous!!!\n navLinks: (template.options.Settings.NavLinks || []).map((data) => {\n const link = {};\n link.label = data.text;\n link.value = data.url;\n return link;\n }),\n ...template.options.TemplateHeader,\n },\n components\n );\n // cycle through the components\n // wrap components in a tr\n html +=\n '';\n template.components.forEach((c) => {\n html += buildHtmlForComponent(\n null,\n { ...c, global: template.options, setId: template.templateSetId },\n components\n );\n });\n html += '';\n // build the html for the footer\n html += buildHtmlForComponent(\n 'Footer',\n { ...template.options.TemplateFooter, global: template.options },\n components\n );\n\n return emailShell(\n html,\n template.options.Settings || {},\n template.templateId.substring(0, 2)\n );\n};\n","/* eslint-disable no-underscore-dangle */\n/* eslint-disable no-case-declarations */\nimport React, { useState } from 'react';\nimport { buildHtmlForTemplate } from '../util/builder';\nimport { putSpently } from '../util/spentlyRest';\n\nconst TemplateContext = React.createContext({});\n\nconst TemplateProvider = ({ children }) => {\n const [template, setTemplate] = useState(null);\n const [templateHasError, setTemplateHasError] = useState(false);\n\n const updateTemplate = (propName, oldVal, newVal, component, isUndo) => {\n if (oldVal === newVal) {\n return;\n }\n const newTemplate = { ...template };\n\n switch (propName) {\n case 'TITLE':\n newTemplate.name = isUndo ? oldVal : newVal;\n break;\n case 'ADD':\n if (isUndo) {\n newTemplate.components.pop();\n } else {\n newTemplate.components.push(JSON.parse(newVal));\n }\n break;\n case 'REMOVE':\n const oldValJson = JSON.parse(oldVal);\n if (isUndo) {\n newTemplate.components.splice(oldValJson, 0, JSON.parse(newVal));\n } else {\n // if user is removing a deprecated component, we should allow user to save the template\n if (oldValJson?.id === 'DeprecatedComponent') {\n setTemplateHasError(false);\n }\n\n newTemplate.components.splice(newVal, 1);\n }\n break;\n case 'REMOVECHILD':\n if (isUndo) {\n newTemplate.components[component.key].columns[component.child] =\n JSON.parse(oldVal);\n } else {\n delete newTemplate.components[component.key].columns[component.child];\n }\n break;\n case 'REARANGE':\n const draggingIndex = oldVal.split('-')[1];\n let droppedIndex = newVal.split('-')[1];\n\n if (newVal === 'add-section') {\n droppedIndex = newTemplate.components.length;\n }\n\n if (droppedIndex > draggingIndex) {\n // Make up for the removed item\n droppedIndex = parseInt(droppedIndex, 10) - 1;\n // when is moving item from up to down, the position should be the dropon value - 1\n // so the new Val to replace should be the component on top of the dropon component\n const droppedComponent = newTemplate.components[droppedIndex];\n // eslint-disable-next-line no-param-reassign\n newVal = `${droppedComponent.id}-${droppedIndex}`;\n }\n\n const compToMove = newTemplate.components[draggingIndex];\n const newComponents = [...newTemplate.components];\n newComponents.splice(draggingIndex, 1);\n newComponents.splice(droppedIndex, 0, compToMove);\n newTemplate.components = newComponents;\n break;\n default:\n let componentToUpdate = newTemplate.components[component];\n\n if (!componentToUpdate) {\n componentToUpdate = newTemplate.options[component];\n }\n if (propName.indexOf('.') === -1) {\n componentToUpdate[propName] = newVal;\n } else {\n // TODO: yup this is gross, but we'll drop the hideous data model soon. Then we can all laugh at this.\n const parts = propName.split('.');\n if (!componentToUpdate[parts[0]]) {\n componentToUpdate[parts[0]] = {};\n }\n\n if (parts.length === 2) {\n if (newVal) {\n componentToUpdate[parts[0]][parts[1]] = newVal;\n } else {\n delete componentToUpdate[parts[0]][parts[1]];\n }\n } else {\n if (!componentToUpdate[parts[0]][parts[1]]) {\n componentToUpdate[parts[0]][parts[1]] = {};\n }\n componentToUpdate[parts[0]][parts[1]][parts[2]] = newVal;\n }\n }\n break;\n }\n\n newTemplate.updates.push({ propName, oldVal, newVal, component });\n if (isUndo) {\n newTemplate.updates.pop();\n newTemplate.redos.push({ propName, oldVal, newVal, component });\n }\n\n setTemplate(newTemplate);\n };\n\n const undo = () => {\n const toUndo = template.updates.pop();\n updateTemplate(\n toUndo.propName,\n toUndo.newVal,\n toUndo.oldVal,\n toUndo.component,\n true\n );\n };\n\n const redo = () => {\n const toRedo = template.redos.pop();\n updateTemplate(\n toRedo.propName,\n toRedo.newVal,\n toRedo.oldVal,\n toRedo.component\n );\n };\n\n const convert = (temp, availableComponents = null) => {\n if (!temp) {\n return null;\n }\n const options = {};\n\n const { _id, settings, components, TemplateId, TemplateHTML } = temp;\n\n if (Array.isArray(settings)) {\n settings.forEach((s) => {\n options[s._id] = s;\n });\n } else {\n options.Settings = settings;\n }\n\n const convComps = components.map((c) => {\n const newComp = {};\n // check if this component is on the available components list\n if (availableComponents) {\n const foundComponents = availableComponents.filter(\n (comp) => comp.key === c._id\n );\n if (!foundComponents || foundComponents.length === 0) {\n setTemplateHasError(true);\n return { id: 'DeprecatedComponent' };\n }\n }\n\n if (Array.isArray(c)) {\n c.forEach((ele) => {\n if (Array.isArray(ele.value)) {\n const inner = [];\n ele.value.forEach((e) => {\n inner.push({\n name: e[0].value,\n label: e[1].value,\n value: e[2].value,\n });\n });\n newComp[ele.name] = inner;\n } else {\n newComp[ele.name.replace('_', '')] = ele.value;\n }\n });\n } else {\n return { ...c, id: c.id || c._id };\n }\n return newComp;\n });\n\n const query = new URLSearchParams(window.location.search);\n return {\n id: _id,\n templateSetId: temp.SetId,\n themeId: temp.ThemeId,\n templateId: TemplateId || query.get('templateId'),\n name: temp.Name,\n html: TemplateHTML,\n components: convComps,\n options,\n updates: [],\n redos: [],\n };\n };\n\n const convertAndSetTemplate = (temp, availableComponents = null) =>\n setTemplate(convert(temp, availableComponents));\n\n const save = async (components) => {\n const html = buildHtmlForTemplate(template, components);\n const updatedTemplate = await putSpently('/api/Template', {\n ...template,\n html,\n });\n const updatedAndConverted = convert(updatedTemplate);\n setTemplate({ ...updatedAndConverted, updates: [] });\n return updatedAndConverted;\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport { TemplateContext, TemplateProvider };\n","/* eslint-disable max-len */\nexport const formatGoogleFonts = (arrayOfFontNames) => {\n const googleFontsText = arrayOfFontNames.join('|').replace(' ', '+');\n return ``;\n};\n\nconst determinePreviewMessage = (templateType) => {\n switch (templateType) {\n case 'OI':\n return 'Hi {{ billing_address.first_name }}, Order {{order_name}} has been confirmed. Thank you for your purchase. We will notify you when it has been shipped.';\n case 'OC':\n return 'Hi {{ billing_address.first_name }}, Order {{order_name}} has been cancelled.';\n case 'OE':\n return 'Hi {{ billing_address.first_name }}, Order {{order_name}} has been updated. Please review this change.';\n case 'IN':\n return 'Hi {{ billing_address.first_name }}, Order {{order_name}} has been updated. Please review the updated balance.';\n case 'RN':\n return 'Hi {{ billing_address.first_name }}, Order {{order_name}} has been refunded. ';\n case 'DI':\n return 'Hi {{ billing_address.first_name }}, complete your purchase. Items will be reserved for you until {{ reserve_inventory_until | date: \"%A, %B %-d, %Y at %-l:%M%P %Z\" }}.';\n case 'EP':\n return 'Hi {{ billing_address.first_name }}, thanks for stopping by. Click here to complete your purchase.';\n case 'AC':\n return 'Hi {{ billing_address.first_name }}, we noticed you left some items in your cart.';\n case 'PR':\n return 'Hi {{ billing_address.first_name }}, thanks for stopping by. Here’s your receipt for Order {{order_name}}.';\n case 'OH':\n return 'Hi {{ billing_address.first_name }}, your order has been picked up. Thank you for shopping at {{ shop.name }}';\n case 'OR':\n return 'Hi {{ billing_address.first_name }}, your order is ready for pickup. Bring your confirmation email when you come to collect your order.';\n case 'PE':\n return 'Thanks for stopping by — here is your exchange receipt.';\n case 'GC':\n return 'Your gift card is now available! Treat yourself, or send it to someone else as a gift.';\n case 'PY':\n return 'Your payment could not be processed. You can return to your cart to complete this purchase.';\n case 'SC':\n return 'Hi {{ billing_address.first_name }}, {% if fulfillment.item_count == item_count %}{% if fulfillment.item_count == 1 %}{% capture shipment_name %}The item{% endcapture %}{% else %}{% capture shipment_name %}All items{% endcapture %}{% endif %}{% endif %}{{ shipment_name }} from Order {{order_name}} {% if fulfillment.item_count == 1 %}has {% else %}have{% endif %} been shipped.';\n case 'SU':\n return 'Hi {{ billing_address.first_name }}, your shipment has been updated for Order {{order_name}}.';\n case 'SO':\n return 'Hi {{ billing_address.first_name }}, your shipment is out for delivery for Order {{order_name}}.';\n case 'SD':\n return 'Hi {{ billing_address.first_name }}, your shipment has been been delivered for Order {{order_name}}.';\n case 'RL':\n return 'Hi {{ billing_address.first_name }}, here is your return label for Order {{order_name}}.';\n case 'OD':\n return 'Your order is on its way and will arrive soon';\n case 'DE':\n return 'Your order has been delivered';\n case 'MD':\n return 'Hi {{ billing_address.first_name }}, we weren’t able to deliver your order.';\n case 'AA':\n return 'An account has been created for you. Click below to activate your account, and choose a password.';\n case 'CW':\n return 'Thanks for signing up! Your account is now active.';\n case 'CP':\n return 'Forgot your password? No problem. Here’s a link to reset your password.';\n case 'CC':\n return 'Hi {{ billing_address.first_name }}, you have a private message from {{ shop.name }}.';\n default: {\n // AF fall under here\n return 'Hi there, if you have any questions feel free to reply to this email.';\n }\n }\n};\n/**\n * Wraps the provided template body in the email shell\n * and applies the template's theme settings.\n * @param {String} body - Template body\n * @param {Object} props - Theme settings\n */\nexport const emailShell = (body, settings, templateType) => {\n const { width, backgroundColor, googleFonts, emailColor = [] } = settings;\n const googleFontsLink =\n googleFonts.length !== 0 ? formatGoogleFonts(googleFonts) : '';\n const templateTypeLiquid = `{% capture recType %}${templateType}{% endcapture %}`;\n\n return `${templateTypeLiquid}\n \n \n \n \n \n \n Email\n ${googleFontsLink}\n \n \n \n \n \n
\n
\n
\n ${determinePreviewMessage(templateType)}\n
\n
\n  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ \n  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ \n  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ \n  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ \n  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ \n
\n
\n
                                                           
\n \n \n \n \n \n \n \n \n
\n \n \n ${body}\n \n
\n
\n {{spently_watermark}}\n
\n \n \n`;\n};\n","/* eslint-disable max-lines */\nimport { getShop, getFeature } from '../framework/util/auth';\n\n// check if the store has the new notification type flag\nconst hasSubscriptionNotificationsFlag = () =>\n getFeature('SubscriptionNotifications');\n\n// check if the template support new notification type\n// we only support new notification type for themeId 0030 and supportSubscriptionNotifications is true\nconst supportSubscriptionNotifications = (template) =>\n hasSubscriptionNotificationsFlag() && template.themeId === '0030';\n\nexport const urlDate = (date) => {\n const months = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n ];\n const currentDate = new Date(date);\n const day = currentDate.getDate();\n const month = months[currentDate.getMonth()];\n const year = currentDate.getFullYear();\n\n return `${day}-${month}-${year}`;\n};\n\n// list of template menus for publish page\nexport const notificationMenus = [\n {\n title: 'Order processing',\n options: [\n { value: 'OI', label: 'Order confirmation' },\n { value: 'DI', label: 'Draft order invoice' },\n { value: 'SC', label: 'Shipping confirmation' },\n ],\n },\n {\n title: 'Local pick up',\n options: [\n { value: 'OR', label: 'Ready for local pickup' },\n { value: 'OH', label: 'Picked up by customer' },\n ],\n },\n {\n title: 'Local delivery',\n options: [\n { value: 'OD', label: 'Order out for local delivery' },\n { value: 'DE', label: 'Order locally delivered' },\n { value: 'MD', label: 'Order missed local delivery' },\n ],\n },\n {\n title: 'Gift cards',\n options: [\n { value: 'GC', label: 'New gift card' },\n { value: 'GR', label: 'Gift card receipt' },\n ],\n },\n {\n title: 'Order exceptions',\n options: [\n { value: 'IN', label: 'Order invoice' },\n { value: 'OE', label: 'Order edited' },\n { value: 'OC', label: 'Order canceled' },\n { value: 'RN', label: 'Order refund' },\n { value: 'AC', label: 'Abandoned checkout' },\n { value: 'OP', label: 'Order payment receipt' },\n ],\n },\n {\n title: 'Payments',\n options: [\n { value: 'PY', label: 'Payment error' },\n { value: 'PF', label: 'Pending payment error' },\n { value: 'PS', label: 'Pending payment success' },\n { value: 'PD', label: 'Payment reminder' },\n ],\n },\n {\n title: 'Point of Sale',\n options: [\n { value: 'PR', label: 'POS and mobile receipt' },\n // store need to activate POS for the following options\n { value: 'EP', label: 'POS abandoned checkout' },\n { value: 'PE', label: 'POS exchange receipt' },\n { value: 'ER', label: 'POS Exchange V2 Receipt' },\n { value: 'PC', label: 'POS email to customer ' },\n ],\n },\n {\n title: 'Shipping updated',\n options: [\n { value: 'SU', label: 'Shipping update' },\n { value: 'SO', label: 'Out for delivery' },\n { value: 'SD', label: 'Delivered' },\n ],\n },\n {\n title: 'Returns',\n options: [\n { value: 'RL', label: 'Order-level return label created' },\n { value: 'RR', label: 'Return request received' },\n { value: 'RA', label: 'Return request approved' },\n { value: 'RD', label: 'Return request declined' },\n { value: 'RC', label: 'Return Created' },\n ],\n },\n {\n title: 'Accounts and outreach',\n options: [\n { value: 'AA', label: 'Customer account invite' },\n { value: 'CW', label: 'Customer account welcome' },\n { value: 'CP', label: 'Customer account password reset' },\n { value: 'CC', label: 'Contact customer' },\n {\n value: 'CU',\n label: 'Customer Payment Method Update Request',\n },\n {\n value: 'CR',\n label: 'Customer Payment Method Restore Request',\n },\n { value: 'BE', label: 'B2B access email' },\n {\n value: 'BL',\n label: 'B2B location update payment method',\n },\n ],\n },\n {\n title: 'Marketing double opt-in',\n options: [{ value: 'MC', label: 'Customer marketing confirmation' }],\n },\n];\n\nconst subscriptionNotificationMenu = {\n title: 'Subscriptions',\n options: [\n { value: 'SN', label: 'New subscription order', isFeature: true },\n { value: 'SP', label: 'Subscription Paused', isFeature: true },\n { value: 'SS', label: 'Subscription Skipped', isFeature: true },\n { value: 'UC', label: 'Subscription canceled', isFeature: true },\n { value: 'SE', label: 'Subscription Expired', isFeature: true },\n { value: 'SF', label: 'Payment failure', isFeature: true },\n { value: 'SM', label: 'Subscription Resumed', isFeature: true },\n { value: 'SR', label: 'Payment Failure (Retrying)', isFeature: true },\n { value: 'SL', label: 'Payment Failure (Last Attempt)', isFeature: true },\n ],\n};\n\nconst notificationMenusWithSubscription = notificationMenus.concat(\n subscriptionNotificationMenu\n);\n\n// generate emailTypes from notificationMenus\n// we only use emailTypes value for report dropdown, it is not related to template,\n// so we don't need to pass in template themeId here\nexport const emailTypes = (\n hasSubscriptionNotificationsFlag()\n ? notificationMenusWithSubscription\n : notificationMenus\n).reduce((acc, menu) => {\n menu.options.forEach((option) => {\n acc[option.value] = option.label;\n });\n return acc;\n}, []);\n\n/*\n * Retrieves the supported notification menus based on the provided template themeId.\n * @param {Object} template - The template object.\n * @returns {Array} - An array of supported notification menus.\n */\nexport const getSupportedNotificationMenus = (template) => {\n // Check if a template is provided and its themeId is not '0030'\n if (template && supportSubscriptionNotifications(template)) {\n // Copy the original notificationMenus array and add the subscriptionNotificationMenu\n return [...notificationMenusWithSubscription];\n }\n\n // Copy the original notificationMenus array to avoid modifying the original\n return [...notificationMenus];\n};\n\nexport const formatEmailType = (val) => emailTypes[val] || val;\n\n// key value pair for all notification types\nexport const notificationLocations = {\n OI: 'order_confirmation',\n OC: 'order_cancelled',\n OE: 'order_edited',\n IN: 'order_invoice',\n RN: 'refund_notification',\n DI: 'draft_order_invoice',\n EP: 'buy_online',\n AC: 'abandoned_checkout_notification',\n PR: 'store_receipt',\n OH: 'pickup_receipt',\n OR: 'ready_for_pickup',\n PE: 'pos_exchange_receipt',\n GC: 'gift_card_notification',\n PY: 'failed_payment_processing',\n SC: 'shipping_confirmation',\n SU: 'shipping_update',\n SO: 'shipment_out_for_delivery',\n SD: 'shipment_delivered',\n RL: 'return_label_notification',\n OD: 'local_out_for_delivery',\n DE: 'local_delivered',\n MD: 'local_missed_delivery',\n AA: 'customer_account_activate',\n CW: 'customer_account_welcome',\n CP: 'customer_account_reset',\n CC: 'contact_buyer',\n MC: 'customer_marketing_confirmation',\n PS: 'pending_payment_success',\n PF: 'pending_payment_failure',\n GR: 'gift_card_confirmation',\n PD: 'payment_reminder',\n RR: 'return_requested',\n RA: 'return_approved',\n RD: 'return_declined',\n ER: 'pos_exchange_v2_receipt',\n CU: 'customer_update_payment_method',\n CR: 'customer_restore_payment_method',\n BE: 'company_contact_welcome_email',\n BL: 'company_location_update_payment_method',\n PC: 'pos_send_cart',\n RC: 'return_created',\n OP: 'order_payment_receipt',\n SN: 'subscription_new',\n SL: 'subscription_payment_failure_last_attempt',\n SR: 'subscription_payment_failure_retrying',\n SF: 'subscription_payment_failure',\n SS: 'subscription_skipped',\n SM: 'subscription_resumed',\n UC: 'subscription_canceled',\n SP: 'subscription_paused',\n SE: 'subscription_expired',\n};\n\nexport const getNotificaitonEditUrl = (type) => {\n const storeName = getShop('spently');\n return `https://${storeName}.myshopify.com/admin/email_templates/${notificationLocations[type]}/edit`;\n};\n\nexport const isValidEmail = (val) => {\n if (!val) {\n return false;\n }\n const regEmail =\n // eslint-disable-next-line max-len\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return regEmail.test(val);\n};\n","import React from 'react';\n\nvar SvgExitIcon = function SvgExitIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.75 3c-1.243 0-2.25 1.007-2.25 2.25 0 .414.336.75.75.75s.75-.336.75-.75.336-.75.75-.75h3.5c.69 0 1.25.56 1.25 1.25v8.5c0 .69-.56 1.25-1.25 1.25h-3.5c-.414 0-.75-.336-.75-.75s-.336-.75-.75-.75-.75.336-.75.75c0 1.243 1.007 2.25 2.25 2.25h3.5c1.519 0 2.75-1.231 2.75-2.75v-8.5c0-1.519-1.231-2.75-2.75-2.75h-3.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.25 10.75c.414 0 .75-.336.75-.75s-.336-.75-.75-.75h-5.69l.97-.97c.293-.293.293-.767 0-1.06-.293-.293-.767-.293-1.06 0l-2.25 2.25c-.141.14-.22.331-.22.53s.079.39.22.53l2.25 2.25c.293.293.767.293 1.06 0 .293-.293.293-.767 0-1.06l-.97-.97h5.69Z\"\n }));\n};\nSvgExitIcon.displayName = \"ExitIcon\";\n\nexport { SvgExitIcon as S };\n","import React from 'react';\n\nconst Divider = ({ height }) => (\n \n);\n\nexport default Divider;\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport { TextField, TextStyle, DisplayText } from '@shopify/polaris';\nimport React, { useContext, useState } from 'react';\nimport { TemplateContext } from '../../state/TemplateContext';\nimport './builder.scss';\n\nconst TemplateTitle = () => {\n const [editing, setEditing] = useState(false);\n const [template, updateTemplate] = useContext(TemplateContext);\n const [name, setName] = useState(template && template.name);\n\n if (!template) {\n return Loading...;\n }\n if (editing) {\n return (\n {\n setName(val);\n updateTemplate('TITLE', template.name, val);\n }}\n onBlur={() => setEditing(false)}\n />\n );\n }\n\n if (!name) {\n return (\n {\n setName(template.name);\n setEditing(true);\n }}\n >\n \n {template.name}\n \n
\n );\n }\n return (\n
setEditing(true)}>\n {name}\n
\n );\n};\n\nexport default TemplateTitle;\n","import { Icon, Stack } from '@shopify/polaris';\nimport { ExitIcon } from '@shopify/polaris-icons';\nimport React from 'react';\nimport Divider from './Divider';\nimport TemplateTitle from './TemplateTitle';\n\nconst BuilderTopBarContext = () => (\n \n \n
\n \n Exit\n \n \n \n \n
\n);\n\nexport default BuilderTopBarContext;\n","import { Modal, Stack, TextContainer } from '@shopify/polaris';\nimport React, { useState } from 'react';\n\nconst LoseChangesModal = ({\n loseChangesOpen,\n setLoseChangesOpen,\n discard,\n save,\n}) => {\n const [isSaving, setIsSaving] = useState(false);\n return (\n setLoseChangesOpen(false)}\n title=\"Discard Changes?\"\n primaryAction={{\n content: 'Save',\n loading: isSaving,\n onAction: async () => {\n setIsSaving(true);\n await save();\n setIsSaving(false);\n setLoseChangesOpen(false);\n },\n }}\n secondaryActions={{\n content: 'Continue Anyways',\n onAction: () => {\n setLoseChangesOpen(false);\n discard();\n },\n }}\n >\n \n \n \n \n

Continue without saving this template?

\n
\n
\n
\n
\n \n );\n};\n\nexport default LoseChangesModal;\n","import { Modal, Stack, TextContainer, TextField } from '@shopify/polaris';\nimport React, { useContext, useState } from 'react';\nimport { TemplateContext } from '../../../state/TemplateContext';\n\nconst MissingTitleModal = ({ nameModalOpen, setNameModalOpen, save }) => {\n const [template, updateTemplate] = useContext(TemplateContext);\n const [name, setName] = useState(template && template.name);\n const [saving, setSaving] = useState(false);\n\n return (\n setNameModalOpen(false)}\n title=\"Missing Title\"\n primaryAction={{\n content: 'Save',\n loading: saving,\n disabled: template && !template.name,\n onAction: async () => {\n setSaving(true);\n await save();\n setSaving(false);\n setNameModalOpen(false);\n },\n }}\n secondaryActions={{\n content: 'Cancel',\n onAction: () => {\n setName('');\n updateTemplate('TITLE', template.name, '');\n setNameModalOpen(false);\n },\n }}\n >\n \n \n \n \n

Before we save it, let's give this template a name

\n
\n
\n \n {\n setName(val);\n updateTemplate('TITLE', template.name, val);\n }}\n autoComplete=\"off\"\n />\n \n
\n
\n \n );\n};\n\nexport default MissingTitleModal;\n","import React, { useEffect, useState } from 'react';\nimport { getSpently } from '../util/spentlyRest';\n\nconst BaseComponentContext = React.createContext({});\n\nconst BaseComponentProvider = ({ children }) => {\n const [components, setComponents] = useState(null);\n\n useEffect(() => {\n const load = async () => setComponents(await getSpently('/api/Component'));\n\n if (!components) {\n load();\n }\n }, [components]);\n\n return (\n \n {children}\n \n );\n};\n\nexport { BaseComponentContext, BaseComponentProvider };\n","import {\n Button,\n Icon,\n Stack,\n TopBar,\n VisuallyHidden,\n Popover,\n} from '@shopify/polaris';\nimport {\n DesktopIcon,\n MobileIcon,\n RedoIcon,\n UndoIcon,\n ViewportWideIcon,\n} from '@shopify/polaris-icons';\nimport React, { useState, useContext } from 'react';\nimport PanFilteredSelect from '../framework/ui/PanFilteredSelect';\nimport { TemplateContext } from '../state/TemplateContext';\nimport { emailTypes, getSupportedNotificationMenus } from '../util/formatters';\nimport { getSpently } from '../util/spentlyRest';\nimport BuilderTopBarContext from './builder/BuilderTopBarContext';\nimport Divider from './builder/Divider';\nimport LoseChangesModal from './builder/modals/LoseChangesModal';\nimport MissingTitleModal from './builder/modals/MissingTitleModal';\nimport { BaseComponentContext } from '../state/BaseComponentContext';\n\nconst BuilderTopBar = ({\n device,\n setDevice,\n type,\n onAfterSave,\n copmonents,\n}) => {\n const [template, , setTemplate, undo, redo, save, templateHasError] =\n useContext(TemplateContext);\n const [components] = useContext(BaseComponentContext);\n const [saving, setSaving] = useState(false);\n const [loseChangesOpen, setLoseChangesOpen] = useState(null);\n const [templateType, setTemplateType] = useState(type);\n const [isDeviceOpen, setIsDeviceOpen] = useState(false);\n const [nameModalOpen, setNameModalOpen] = useState(false);\n const query = new URLSearchParams(window.location.search);\n const canUndo = template && template.updates.length > 0;\n const canRedo = template && template.redos.length > 0;\n const reloadTemplate = async (et) => {\n const set = template.templateSetId\n ? template.templateSetId\n : query.get('set');\n const qs = `setId=${set}`;\n const queryString =\n set === 'true' ? `templateId=${et}0030` : `templateType=${et}`;\n const temp = await getSpently(`/api/template?${qs}&${queryString}`);\n if (components) {\n setTemplate(temp, components);\n }\n };\n\n const publishText = 'Publish';\n const userMenu = (\n
\n {\n await save(copmonents);\n onAfterSave();\n }}\n />\n {\n setTemplateType(loseChangesOpen);\n reloadTemplate(loseChangesOpen);\n }}\n save={async () => {\n await save();\n onAfterSave();\n }}\n />\n \n \n \n \n \n {\n if (canUndo) {\n setSaving(true);\n if (!template.name) {\n setNameModalOpen(true);\n setSaving(false);\n return;\n }\n await save(copmonents);\n onAfterSave();\n setSaving(false);\n } else {\n setSaving(true);\n const updated = await save(copmonents);\n document.location = `/Publish?setId=${updated.templateSetId}`;\n }\n }}\n loading={saving}\n >\n {canUndo ? 'Save' : publishText}\n \n \n
\n );\n const context = ;\n\n const [popoverActive, setPopoverActive] = useState(false);\n const popupButton = (\n setPopoverActive(true)}\n disclosure\n textAlign=\"left\"\n >\n {\n emailTypes[\n templateType ||\n (template &&\n template.templateId &&\n template.templateId.substring(0, 2))\n ]\n }\n \n );\n\n // generate the itemMenus for ActionList base on SupportedNotificationMenus\n const itemMenus = getSupportedNotificationMenus(template).map((menu) => ({\n title: menu.title,\n items: menu.options.map((option) => ({\n content: option.label,\n onAction: () => {\n if (canUndo) {\n setLoseChangesOpen(option.value);\n setPopoverActive(false);\n } else {\n setTemplateType(option.value);\n reloadTemplate(option.value);\n setPopoverActive(false);\n }\n },\n })),\n }));\n\n const search = (\n
\n
\n setPopoverActive(false)}\n fullWidth\n active={popoverActive}\n activator={popupButton}\n autofocusTarget=\"first-node\"\n >\n \n \n \n \n
\n
\n );\n\n let deviceIcon = device === 'desktop' ? DesktopIcon : MobileIcon;\n if (device === 'wide') {\n deviceIcon = ViewportWideIcon;\n }\n const deviceButton = (\n \n \n Secondary menu\n \n );\n\n const secondaryMenuMarkup = (\n {\n setIsDeviceOpen(true);\n }}\n onClose={() => {\n setIsDeviceOpen(false);\n }}\n actions={[\n {\n items: [\n {\n content: 'Mobile',\n icon: MobileIcon,\n active: device === 'mobile',\n onAction: () => setDevice('mobile'),\n },\n {\n content: 'Desktop',\n icon: DesktopIcon,\n active: device === 'desktop',\n onAction: () => setDevice('desktop'),\n },\n {\n content: 'Fullscreen',\n icon: ViewportWideIcon,\n active: device === 'wide',\n onAction: () => setDevice('wide'),\n },\n ],\n },\n ]}\n />\n );\n\n return (\n
\n \n
\n );\n};\n\nexport default BuilderTopBar;\n","import { createContext } from 'react';\n\nconst NavigationContext = /*#__PURE__*/createContext({\n location: ''\n});\n\nexport { NavigationContext };\n","var styles = {\n \"Navigation\": \"Polaris-Navigation\",\n \"UserMenu\": \"Polaris-Navigation__UserMenu\",\n \"ContextControl\": \"Polaris-Navigation__ContextControl\",\n \"PrimaryNavigation\": \"Polaris-Navigation__PrimaryNavigation\",\n \"LogoContainer\": \"Polaris-Navigation__LogoContainer\",\n \"Logo\": \"Polaris-Navigation__Logo\",\n \"LogoLink\": \"Polaris-Navigation__LogoLink\",\n \"Item\": \"Polaris-Navigation__Item\",\n \"keyFocused\": \"Polaris-Navigation--keyFocused\",\n \"Icon-resized\": \"Polaris-Navigation__Icon--resized\",\n \"Item-selected\": \"Polaris-Navigation__Item--selected\",\n \"Item-disabled\": \"Polaris-Navigation__Item--disabled\",\n \"Icon\": \"Polaris-Navigation__Icon\",\n \"Badge\": \"Polaris-Navigation__Badge\",\n \"subNavigationActive\": \"Polaris-Navigation--subNavigationActive\",\n \"Item-child-active\": \"Polaris-Navigation--itemChildActive\",\n \"ExternalIcon\": \"Polaris-Navigation__ExternalIcon\",\n \"ListItem\": \"Polaris-Navigation__ListItem\",\n \"RollupSection\": \"Polaris-Navigation__RollupSection\",\n \"SecondaryNavigation\": \"Polaris-Navigation__SecondaryNavigation\",\n \"ListItem-hasAction\": \"Polaris-Navigation__ListItem--hasAction\",\n \"ItemWrapper\": \"Polaris-Navigation__ItemWrapper\",\n \"Text\": \"Polaris-Navigation__Text\",\n \"SecondaryAction\": \"Polaris-Navigation__SecondaryAction\",\n \"isExpanded\": \"Polaris-Navigation--isExpanded\",\n \"List\": \"Polaris-Navigation__List\",\n \"SecondaryNavigation-noIcon\": \"Polaris-Navigation__SecondaryNavigation--noIcon\",\n \"Section\": \"Polaris-Navigation__Section\",\n \"Section-fill\": \"Polaris-Navigation__Section--fill\",\n \"Section-withSeparator\": \"Polaris-Navigation__Section--withSeparator\",\n \"SectionHeading\": \"Polaris-Navigation__SectionHeading\",\n \"Action\": \"Polaris-Navigation__Action\",\n \"RollupToggle\": \"Polaris-Navigation__RollupToggle\",\n \"Indicator\": \"Polaris-Navigation__Indicator\",\n \"fade-in\": \"Polaris-Navigation__fade--in\"\n};\n\nexport { styles as default };\n","import React from 'react';\n\nvar SvgExternalMinor = function SvgExternalMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 1 1-2 0v-1.586l-5.293 5.293a1 1 0 0 1-1.414-1.414l5.293-5.293h-1.586a1 1 0 0 1-1-1zm-8 2.5a1.5 1.5 0 0 1 1.5-1.5h3.5a1 1 0 0 1 0 2h-3v8h8v-3a1 1 0 1 1 2 0v3.5a1.5 1.5 0 0 1-1.5 1.5h-9a1.5 1.5 0 0 1-1.5-1.5v-9z\"\n }));\n};\n\nexport { SvgExternalMinor as S };\n","var styles = {\n \"Collapsible\": \"Polaris-Collapsible\",\n \"isFullyClosed\": \"Polaris-Collapsible--isFullyClosed\",\n \"expandOnPrint\": \"Polaris-Collapsible--expandOnPrint\"\n};\n\nexport { styles as default };\n","import React, { useState, useRef, useCallback, useEffect } from 'react';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './Collapsible.scss.js';\n\nfunction Collapsible({\n id,\n expandOnPrint,\n open,\n transition,\n children\n}) {\n const [height, setHeight] = useState(0);\n const [isOpen, setIsOpen] = useState(open);\n const [animationState, setAnimationState] = useState('idle');\n const collapsibleContainer = useRef(null);\n const isFullyOpen = animationState === 'idle' && open && isOpen;\n const isFullyClosed = animationState === 'idle' && !open && !isOpen;\n const content = expandOnPrint || !isFullyClosed ? children : null;\n const wrapperClassName = classNames(styles.Collapsible, isFullyClosed && styles.isFullyClosed, expandOnPrint && styles.expandOnPrint);\n const collapsibleStyles = { ...(transition && {\n transitionDuration: `${transition.duration}`,\n transitionTimingFunction: `${transition.timingFunction}`\n }),\n ...{\n maxHeight: isFullyOpen ? 'none' : `${height}px`,\n overflow: isFullyOpen ? 'visible' : 'hidden'\n }\n };\n const handleCompleteAnimation = useCallback(({\n target\n }) => {\n if (target === collapsibleContainer.current) {\n setAnimationState('idle');\n setIsOpen(open);\n }\n }, [open]);\n useEffect(() => {\n if (open !== isOpen) {\n setAnimationState('measuring');\n }\n }, [open, isOpen]);\n useEffect(() => {\n if (!open || !collapsibleContainer.current) return; // If collapsible defaults to open, set an initial height\n\n setHeight(collapsibleContainer.current.scrollHeight); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useEffect(() => {\n if (!collapsibleContainer.current) return;\n\n switch (animationState) {\n case 'idle':\n break;\n\n case 'measuring':\n setHeight(collapsibleContainer.current.scrollHeight);\n setAnimationState('animating');\n break;\n\n case 'animating':\n setHeight(open ? collapsibleContainer.current.scrollHeight : 0);\n }\n }, [animationState, open, isOpen]);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n style: collapsibleStyles,\n ref: collapsibleContainer,\n className: wrapperClassName,\n onTransitionEnd: handleCompleteAnimation,\n \"aria-expanded\": open\n }, content);\n}\n\nexport { Collapsible };\n","import React from 'react';\nimport styles from '../../../../Navigation.scss.js';\nimport { useUniqueId } from '../../../../../../utilities/unique-id/hooks.js';\nimport { Collapsible } from '../../../../../Collapsible/Collapsible.js';\n\nfunction Secondary({\n id,\n children,\n expanded\n}) {\n const uid = useUniqueId('SecondaryNavigation');\n return /*#__PURE__*/React.createElement(Collapsible, {\n id: id || uid,\n open: expanded,\n transition: {\n duration: '0ms',\n timingFunction: 'linear'\n }\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: styles.List\n }, children));\n}\n\nexport { Secondary };\n","var styles = {\n \"Indicator\": \"Polaris-Indicator\",\n \"pulseIndicator\": \"Polaris-Indicator--pulseIndicator\",\n \"bounce\": \"Polaris-Indicator--bounce\",\n \"pulse\": \"Polaris-Indicator--pulse\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './Indicator.scss.js';\n\nfunction Indicator({\n pulse = true\n}) {\n const className = classNames(styles.Indicator, pulse && styles.pulseIndicator);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className\n });\n}\n\nexport { Indicator };\n","import React, { useContext, useState, useEffect, useCallback } from 'react';\nimport { ExternalMinor } from '@shopify/polaris-icons';\nimport { classNames } from '../../../../utilities/css.js';\nimport { NavigationContext } from '../../context.js';\nimport { Key } from '../../../../types.js';\nimport styles from '../../Navigation.scss.js';\nimport { Secondary } from './components/Secondary/Secondary.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\nimport { useMediaQuery } from '../../../../utilities/media-query/hooks.js';\nimport { useUniqueId } from '../../../../utilities/unique-id/hooks.js';\nimport { Indicator } from '../../../Indicator/Indicator.js';\nimport { Icon } from '../../../Icon/Icon.js';\nimport { Badge } from '../../../Badge/Badge.js';\nimport { UnstyledLink } from '../../../UnstyledLink/UnstyledLink.js';\n\nvar MatchState;\n\n(function (MatchState) {\n MatchState[MatchState[\"MatchForced\"] = 0] = \"MatchForced\";\n MatchState[MatchState[\"MatchUrl\"] = 1] = \"MatchUrl\";\n MatchState[MatchState[\"MatchPaths\"] = 2] = \"MatchPaths\";\n MatchState[MatchState[\"Excluded\"] = 3] = \"Excluded\";\n MatchState[MatchState[\"NoMatch\"] = 4] = \"NoMatch\";\n})(MatchState || (MatchState = {}));\n\nfunction Item({\n url,\n icon,\n label,\n subNavigationItems = [],\n secondaryAction,\n disabled,\n onClick,\n accessibilityLabel,\n selected: selectedOverride,\n badge,\n new: isNew,\n matches,\n exactMatch,\n matchPaths,\n excludePaths,\n external,\n onToggleExpandedState,\n expanded,\n shouldResizeIcon\n}) {\n const i18n = useI18n();\n const {\n isNavigationCollapsed\n } = useMediaQuery();\n const secondaryNavigationId = useUniqueId('SecondaryNavigation');\n const {\n location,\n onNavigationDismiss\n } = useContext(NavigationContext);\n const [keyFocused, setKeyFocused] = useState(false);\n useEffect(() => {\n if (!isNavigationCollapsed && expanded) {\n onToggleExpandedState === null || onToggleExpandedState === void 0 ? void 0 : onToggleExpandedState();\n }\n }, [expanded, isNavigationCollapsed, onToggleExpandedState]);\n const handleKeyUp = useCallback(event => {\n if (event.keyCode === Key.Tab) {\n !keyFocused && setKeyFocused(true);\n }\n }, [keyFocused]);\n const handleBlur = useCallback(() => {\n keyFocused && setKeyFocused(false);\n }, [keyFocused]);\n const tabIndex = disabled ? -1 : 0;\n const hasNewChild = subNavigationItems.filter(subNavigationItem => subNavigationItem.new).length > 0;\n const indicatorMarkup = hasNewChild ? /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Indicator\n }, /*#__PURE__*/React.createElement(Indicator, {\n pulse: true\n })) : null;\n const iconMarkup = icon ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.Icon, shouldResizeIcon && styles['Icon-resized'])\n }, /*#__PURE__*/React.createElement(Icon, {\n source: icon\n })) : null;\n const externalIconLabel = i18n.translate('Polaris.Common.newWindowAccessibilityHint');\n const externalLinkIconMarkup = external ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ExternalIcon\n }, /*#__PURE__*/React.createElement(Icon, {\n accessibilityLabel: externalIconLabel,\n source: ExternalMinor,\n color: \"base\"\n })) : null;\n let badgeMarkup = null;\n\n if (isNew) {\n badgeMarkup = /*#__PURE__*/React.createElement(Badge, {\n status: \"new\",\n size: \"small\"\n }, i18n.translate('Polaris.Badge.STATUS_LABELS.new'));\n } else if (typeof badge === 'string') {\n badgeMarkup = /*#__PURE__*/React.createElement(Badge, {\n status: \"new\",\n size: \"small\"\n }, badge);\n } else {\n badgeMarkup = badge;\n }\n\n const wrappedBadgeMarkup = badgeMarkup == null ? null : /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Badge\n }, badgeMarkup);\n const itemContentMarkup = /*#__PURE__*/React.createElement(React.Fragment, null, iconMarkup, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Text\n }, label, indicatorMarkup), wrappedBadgeMarkup);\n\n if (url == null) {\n const className = classNames(styles.Item, disabled && styles['Item-disabled'], keyFocused && styles.keyFocused, selectedOverride && styles['Item-selected']);\n return /*#__PURE__*/React.createElement(\"li\", {\n className: styles.ListItem\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: className,\n disabled: disabled,\n \"aria-disabled\": disabled,\n \"aria-label\": accessibilityLabel,\n onClick: getClickHandler(onClick),\n onKeyUp: handleKeyUp,\n onBlur: handleBlur\n }, itemContentMarkup));\n }\n\n const secondaryActionMarkup = secondaryAction && /*#__PURE__*/React.createElement(UnstyledLink, {\n external: true,\n url: secondaryAction.url,\n className: styles.SecondaryAction,\n tabIndex: tabIndex,\n \"aria-disabled\": disabled,\n \"aria-label\": secondaryAction.accessibilityLabel,\n onClick: secondaryAction.onClick\n }, /*#__PURE__*/React.createElement(Icon, {\n source: secondaryAction.icon\n }));\n const matchState = matchStateForItem({\n url,\n matches,\n exactMatch,\n matchPaths,\n excludePaths\n }, location);\n const matchingSubNavigationItems = subNavigationItems.filter(item => {\n const subMatchState = matchStateForItem(item, location);\n return subMatchState === MatchState.MatchForced || subMatchState === MatchState.MatchUrl || subMatchState === MatchState.MatchPaths;\n });\n const childIsActive = matchingSubNavigationItems.length > 0;\n const selected = selectedOverride == null ? matchState === MatchState.MatchForced || matchState === MatchState.MatchUrl || matchState === MatchState.MatchPaths : selectedOverride;\n const showExpanded = selected || expanded || childIsActive;\n const canBeActive = subNavigationItems.length === 0 || !childIsActive;\n const itemClassName = classNames(styles.Item, disabled && styles['Item-disabled'], selected && canBeActive && styles['Item-selected'], showExpanded && styles.subNavigationActive, childIsActive && styles['Item-child-active'], keyFocused && styles.keyFocused);\n let secondaryNavigationMarkup = null;\n\n if (subNavigationItems.length > 0) {\n const longestMatch = matchingSubNavigationItems.sort(({\n url: firstUrl\n }, {\n url: secondUrl\n }) => secondUrl.length - firstUrl.length)[0];\n const SecondaryNavigationClassName = classNames(styles.SecondaryNavigation, showExpanded && styles.isExpanded, !icon && styles['SecondaryNavigation-noIcon']);\n secondaryNavigationMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: SecondaryNavigationClassName\n }, /*#__PURE__*/React.createElement(Secondary, {\n expanded: showExpanded,\n id: secondaryNavigationId\n }, subNavigationItems.map(item => {\n const {\n label,\n ...rest\n } = item;\n\n const onClick = () => {\n if (onNavigationDismiss) {\n onNavigationDismiss();\n }\n\n if (item.onClick && item.onClick !== onNavigationDismiss) {\n item.onClick();\n }\n };\n\n return /*#__PURE__*/React.createElement(Item, Object.assign({\n key: label\n }, rest, {\n label: label,\n matches: item === longestMatch,\n onClick: onClick\n }));\n })));\n }\n\n const className = classNames(styles.ListItem, secondaryAction && styles['ListItem-hasAction']);\n return /*#__PURE__*/React.createElement(\"li\", {\n className: className\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ItemWrapper\n }, /*#__PURE__*/React.createElement(UnstyledLink, Object.assign({\n url: url,\n className: itemClassName,\n external: external,\n tabIndex: tabIndex,\n \"aria-disabled\": disabled,\n \"aria-label\": accessibilityLabel,\n onClick: getClickHandler(onClick),\n onKeyUp: handleKeyUp,\n onBlur: handleBlur\n }, normalizeAriaAttributes(secondaryNavigationId, subNavigationItems.length > 0, showExpanded)), itemContentMarkup, externalLinkIconMarkup), secondaryActionMarkup), secondaryNavigationMarkup);\n\n function getClickHandler(onClick) {\n return event => {\n const {\n currentTarget\n } = event;\n\n if (currentTarget.getAttribute('href') === location) {\n event.preventDefault();\n }\n\n if (subNavigationItems && subNavigationItems.length > 0 && isNavigationCollapsed) {\n event.preventDefault();\n onToggleExpandedState === null || onToggleExpandedState === void 0 ? void 0 : onToggleExpandedState();\n } else if (onNavigationDismiss) {\n onNavigationDismiss();\n\n if (onClick && onClick !== onNavigationDismiss) {\n onClick();\n }\n\n return;\n }\n\n if (onClick) {\n onClick();\n }\n };\n }\n}\nfunction isNavigationItemActive(navigationItem, currentPath) {\n const matchState = matchStateForItem(navigationItem, currentPath);\n const matchingSubNavigationItems = navigationItem.subNavigationItems && navigationItem.subNavigationItems.filter(item => {\n const subMatchState = matchStateForItem(item, currentPath);\n return subMatchState === MatchState.MatchForced || subMatchState === MatchState.MatchUrl || subMatchState === MatchState.MatchPaths;\n });\n const childIsActive = matchingSubNavigationItems && matchingSubNavigationItems.length > 0;\n const selected = matchState === MatchState.MatchForced || matchState === MatchState.MatchUrl || matchState === MatchState.MatchPaths;\n return selected || childIsActive;\n}\n\nfunction normalizePathname(pathname) {\n const barePathname = pathname.split('?')[0].split('#')[0];\n return barePathname.endsWith('/') ? barePathname : `${barePathname}/`;\n}\n\nfunction safeEqual(location, path) {\n return normalizePathname(location) === normalizePathname(path);\n}\n\nfunction safeStartsWith(location, path) {\n return normalizePathname(location).startsWith(normalizePathname(path));\n}\n\nfunction matchStateForItem({\n url,\n matches,\n exactMatch,\n matchPaths,\n excludePaths\n}, location) {\n if (url == null) {\n return MatchState.NoMatch;\n }\n\n if (matches) {\n return MatchState.MatchForced;\n }\n\n if (matches === false || excludePaths && excludePaths.some(path => safeStartsWith(location, path))) {\n return MatchState.Excluded;\n }\n\n if (matchPaths && matchPaths.some(path => safeStartsWith(location, path))) {\n return MatchState.MatchPaths;\n }\n\n const matchesUrl = exactMatch ? safeEqual(location, url) : safeStartsWith(location, url);\n return matchesUrl ? MatchState.MatchUrl : MatchState.NoMatch;\n}\n\nfunction normalizeAriaAttributes(controlId, hasSubMenu, expanded) {\n return hasSubMenu ? {\n 'aria-expanded': expanded,\n 'aria-controls': controlId\n } : undefined;\n}\n\nexport { Item, isNavigationItemActive };\n","import React, { useMemo } from 'react';\nimport { WithinContentContext } from '../../utilities/within-content-context.js';\nimport { getWidth } from '../../utilities/get-width.js';\nimport { NavigationContext } from './context.js';\nimport styles from './Navigation.scss.js';\nimport { Section } from './components/Section/Section.js';\nimport { useFrame } from '../../utilities/frame/hooks.js';\nimport { UnstyledLink } from '../UnstyledLink/UnstyledLink.js';\nimport { Image } from '../Image/Image.js';\nimport { Scrollable } from '../Scrollable/Scrollable.js';\nimport { Item } from './components/Item/Item.js';\n\nconst Navigation = function Navigation({\n children,\n contextControl,\n location,\n onDismiss,\n ariaLabelledBy\n}) {\n const {\n logo\n } = useFrame();\n const width = getWidth(logo, 104);\n const logoMarkup = logo ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.LogoContainer\n }, /*#__PURE__*/React.createElement(UnstyledLink, {\n url: logo.url || '',\n className: styles.LogoLink,\n style: {\n width\n }\n }, /*#__PURE__*/React.createElement(Image, {\n source: logo.topBarSource || '',\n alt: logo.accessibilityLabel || '',\n className: styles.Logo,\n style: {\n width\n }\n }))) : null;\n const mediaMarkup = contextControl ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ContextControl\n }, contextControl) : logoMarkup;\n const context = useMemo(() => ({\n location,\n onNavigationDismiss: onDismiss\n }), [location, onDismiss]);\n return /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(WithinContentContext.Provider, {\n value: true\n }, /*#__PURE__*/React.createElement(\"nav\", {\n className: styles.Navigation,\n \"aria-labelledby\": ariaLabelledBy\n }, mediaMarkup, /*#__PURE__*/React.createElement(Scrollable, {\n className: styles.PrimaryNavigation\n }, children))));\n};\nNavigation.Item = Item;\nNavigation.Section = Section;\n\nexport { Navigation };\n","import React, { useRef, useState, useEffect } from 'react';\nimport { HorizontalDotsMinor } from '@shopify/polaris-icons';\nimport { classNames } from '../../../../utilities/css.js';\nimport { useToggle } from '../../../../utilities/use-toggle.js';\nimport styles from '../../Navigation.scss.js';\nimport { Item } from '../Item/Item.js';\nimport { useMediaQuery } from '../../../../utilities/media-query/hooks.js';\nimport { Icon } from '../../../Icon/Icon.js';\nimport { useUniqueId } from '../../../../utilities/unique-id/hooks.js';\nimport { Collapsible } from '../../../Collapsible/Collapsible.js';\n\nfunction Section({\n title,\n fill,\n action,\n items,\n rollup,\n separator\n}) {\n const {\n value: expanded,\n toggle: toggleExpanded,\n setFalse: setExpandedFalse\n } = useToggle(false);\n const animationFrame = useRef(null);\n const {\n isNavigationCollapsed\n } = useMediaQuery();\n const [expandedIndex, setExpandedIndex] = useState();\n\n const handleClick = (onClick, hasSubNavItems) => {\n return () => {\n if (onClick) {\n onClick();\n }\n\n if (animationFrame.current) {\n cancelAnimationFrame(animationFrame.current);\n }\n\n if (!hasSubNavItems || !isNavigationCollapsed) {\n animationFrame.current = requestAnimationFrame(setExpandedFalse);\n }\n };\n };\n\n useEffect(() => {\n return () => {\n animationFrame.current && cancelAnimationFrame(animationFrame.current);\n };\n });\n const className = classNames(styles.Section, separator && styles['Section-withSeparator'], fill && styles['Section-fill']);\n const actionMarkup = action && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: styles.Action,\n \"aria-label\": action.accessibilityLabel,\n onClick: action.onClick\n }, /*#__PURE__*/React.createElement(Icon, {\n source: action.icon\n }));\n const sectionHeadingMarkup = title && /*#__PURE__*/React.createElement(\"li\", {\n className: styles.SectionHeading\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Text\n }, title), actionMarkup);\n const itemsMarkup = items.map((item, index) => {\n const {\n onClick,\n label,\n subNavigationItems,\n ...rest\n } = item;\n const hasSubNavItems = subNavigationItems != null && subNavigationItems.length > 0;\n\n const handleToggleExpandedState = () => {\n if (expandedIndex === index) {\n setExpandedIndex(-1);\n } else {\n setExpandedIndex(index);\n }\n };\n\n return /*#__PURE__*/React.createElement(Item, Object.assign({\n key: label\n }, rest, {\n label: label,\n subNavigationItems: subNavigationItems,\n onClick: handleClick(onClick, hasSubNavItems),\n onToggleExpandedState: handleToggleExpandedState,\n expanded: expandedIndex === index\n }));\n });\n const toggleClassName = classNames(styles.Item, styles.RollupToggle);\n const ariaLabel = rollup && (expanded ? rollup.hide : rollup.view);\n const toggleRollup = rollup && items.length > rollup.after && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ListItem,\n key: \"List Item\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: toggleClassName,\n onClick: toggleExpanded,\n \"aria-label\": ariaLabel\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Icon\n }, /*#__PURE__*/React.createElement(Icon, {\n source: HorizontalDotsMinor\n }))));\n const activeItemIndex = items.findIndex(item => {\n if (!rollup) {\n return false;\n }\n\n return rollup.activePath === item.url || item.url && rollup.activePath.startsWith(item.url) || (item.subNavigationItems ? item.subNavigationItems.some(({\n url: itemUrl\n }) => rollup.activePath.startsWith(itemUrl)) : false);\n });\n const sectionItems = rollup ? itemsMarkup.slice(0, rollup.after) : itemsMarkup;\n const additionalItems = rollup ? itemsMarkup.slice(rollup.after) : [];\n\n if (rollup && activeItemIndex !== -1 && activeItemIndex > rollup.after - 1) {\n sectionItems.push(...additionalItems.splice(activeItemIndex - rollup.after, 1));\n }\n\n const additionalItemsId = useUniqueId('AdditionalItems');\n const activeItemsMarkup = rollup && additionalItems.length > 0 && /*#__PURE__*/React.createElement(\"li\", {\n className: styles.RollupSection\n }, /*#__PURE__*/React.createElement(Collapsible, {\n id: additionalItemsId,\n open: expanded\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: styles.List\n }, additionalItems)), toggleRollup);\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: className\n }, sectionHeadingMarkup, sectionItems, activeItemsMarkup);\n}\n\nexport { Section };\n","import React from 'react';\n\nvar SvgQuestionCircleIcon = function SvgQuestionCircleIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10 7.25c-.69 0-1.25.56-1.25 1.25a.75.75 0 0 1-1.5 0 2.75 2.75 0 1 1 3.758 2.56.61.61 0 0 0-.226.147.154.154 0 0 0-.032.046.75.75 0 0 1-1.5-.003c0-.865.696-1.385 1.208-1.586a1.25 1.25 0 0 0-.458-2.414Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 14.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10 17a7 7 0 1 0 0-14 7 7 0 0 0 0 14Zm0-1.5a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11Z\"\n }));\n};\nSvgQuestionCircleIcon.displayName = \"QuestionCircleIcon\";\n\nexport { SvgQuestionCircleIcon as S };\n","import React from 'react';\n\nvar SvgLayoutHeaderIcon = function SvgLayoutHeaderIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M3.5 5.25c0-.966.784-1.75 1.75-1.75h9.5c.966 0 1.75.784 1.75 1.75v1.5a1.75 1.75 0 0 1-1.75 1.75h-9.5a1.75 1.75 0 0 1-1.75-1.75v-1.5Zm1.75-.25a.25.25 0 0 0-.25.25v1.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25v-1.5a.25.25 0 0 0-.25-.25h-9.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.5 11.25c0-.966.784-1.75 1.75-1.75h.5a.75.75 0 0 1 0 1.5h-.5a.25.25 0 0 0-.25.25v.5a.75.75 0 0 1-1.5 0v-.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.5 14.75c0 .966.784 1.75 1.75 1.75h.5a.75.75 0 0 0 0-1.5h-.5a.25.25 0 0 1-.25-.25v-.5a.75.75 0 0 0-1.5 0v.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.75 9.5c.966 0 1.75.784 1.75 1.75v.5a.75.75 0 0 1-1.5 0v-.5a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.75 16.5a1.75 1.75 0 0 0 1.75-1.75v-.5a.75.75 0 0 0-1.5 0v.5a.25.25 0 0 1-.25.25h-.5a.75.75 0 0 0 0 1.5h.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.75 10.25a.75.75 0 0 1-.75.75h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 .75.75Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 16.5a.75.75 0 0 0 0-1.5h-2a.75.75 0 0 0 0 1.5h2Z\"\n }));\n};\nSvgLayoutHeaderIcon.displayName = \"LayoutHeaderIcon\";\n\nexport { SvgLayoutHeaderIcon as S };\n","import React from 'react';\n\nvar SvgPlusCircleIcon = function SvgPlusCircleIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.25 10a.75.75 0 0 1 .75-.75h2.25v-2.25a.75.75 0 0 1 1.5 0v2.25h2.25a.75.75 0 0 1 0 1.5h-2.25v2.25a.75.75 0 0 1-1.5 0v-2.25h-2.25a.75.75 0 0 1-.75-.75Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10 17a7 7 0 1 0 0-14 7 7 0 0 0 0 14Zm0-1.5a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11Z\"\n }));\n};\nSvgPlusCircleIcon.displayName = \"PlusCircleIcon\";\n\nexport { SvgPlusCircleIcon as S };\n","import React from 'react';\n\nvar SvgLayoutFooterIcon = function SvgLayoutFooterIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.5 5.25c0-.966.784-1.75 1.75-1.75h.5a.75.75 0 0 1 0 1.5h-.5a.25.25 0 0 0-.25.25v.5a.75.75 0 0 1-1.5 0v-.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M3.5 13.25c0-.966.784-1.75 1.75-1.75h9.5c.966 0 1.75.784 1.75 1.75v1.5a1.75 1.75 0 0 1-1.75 1.75h-9.5a1.75 1.75 0 0 1-1.75-1.75v-1.5Zm1.75-.25a.25.25 0 0 0-.25.25v1.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25v-1.5a.25.25 0 0 0-.25-.25h-9.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.5 8.75c0 .966.784 1.75 1.75 1.75h.5a.75.75 0 0 0 0-1.5h-.5a.25.25 0 0 1-.25-.25v-.5a.75.75 0 0 0-1.5 0v.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.75 3.5c.966 0 1.75.784 1.75 1.75v.5a.75.75 0 0 1-1.5 0v-.5a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.75 10.5a1.75 1.75 0 0 0 1.75-1.75v-.5a.75.75 0 0 0-1.5 0v.5a.25.25 0 0 1-.25.25h-.5a.75.75 0 0 0 0 1.5h.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.75 4.25a.75.75 0 0 1-.75.75h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 .75.75Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 10.5a.75.75 0 0 0 0-1.5h-2a.75.75 0 0 0 0 1.5h2Z\"\n }));\n};\nSvgLayoutFooterIcon.displayName = \"LayoutFooterIcon\";\n\nexport { SvgLayoutFooterIcon as S };\n","import React from 'react';\n\nvar SvgSettingsIcon = function SvgSettingsIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M12.5 10a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0Zm-1.5 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M9.377 2.5c-.926 0-1.676.75-1.676 1.676v.688c0 .056-.043.17-.198.251-.153.08-.303.168-.448.262-.147.097-.268.076-.318.048l-.6-.346a1.676 1.676 0 0 0-2.29.613l-.622 1.08a1.676 1.676 0 0 0 .613 2.289l.648.374c.048.028.124.12.119.29a5.484 5.484 0 0 0 .005.465c.009.175-.07.27-.119.299l-.653.377a1.676 1.676 0 0 0-.613 2.29l.623 1.08a1.676 1.676 0 0 0 2.29.613l.7-.405c.048-.028.166-.048.312.043.115.071.233.139.353.202.155.08.198.195.198.251v.811c0 .926.75 1.676 1.676 1.676h1.246c.926 0 1.676-.75 1.676-1.676v-.81c0-.057.042-.171.197-.252.121-.063.239-.13.354-.202.146-.091.264-.07.312-.043l.7.405a1.676 1.676 0 0 0 2.29-.614l.623-1.08a1.676 1.676 0 0 0-.613-2.289l-.653-.377c-.05-.029-.128-.123-.119-.3a5.494 5.494 0 0 0 .005-.463c-.005-.171.07-.263.12-.291l.647-.374a1.676 1.676 0 0 0 .613-2.29l-.623-1.079a1.676 1.676 0 0 0-2.29-.613l-.6.346c-.049.028-.17.048-.318-.048a5.4 5.4 0 0 0-.448-.262c-.155-.081-.197-.195-.197-.251v-.688c0-.926-.75-1.676-1.676-1.676h-1.246Zm-.176 1.676c0-.097.078-.176.176-.176h1.246c.097 0 .176.079.176.176v.688c0 .728.462 1.298 1.003 1.58.11.058.219.122.323.19.517.337 1.25.458 1.888.09l.6-.346a.176.176 0 0 1 .24.064l.623 1.08a.176.176 0 0 1-.064.24l-.648.374c-.623.36-.888 1.034-.868 1.638a4.184 4.184 0 0 1-.004.337c-.032.615.23 1.31.867 1.677l.653.377a.176.176 0 0 1 .064.24l-.623 1.08a.176.176 0 0 1-.24.065l-.701-.405c-.624-.36-1.341-.251-1.855.069a3.91 3.91 0 0 1-.255.145c-.54.283-1.003.853-1.003 1.581v.811a.176.176 0 0 1-.176.176h-1.246a.176.176 0 0 1-.176-.176v-.81c0-.73-.462-1.3-1.003-1.582a3.873 3.873 0 0 1-.255-.146c-.514-.32-1.23-.428-1.855-.068l-.7.405a.176.176 0 0 1-.241-.065l-.623-1.08a.176.176 0 0 1 .064-.24l.653-.377c.637-.368.899-1.062.867-1.677a3.97 3.97 0 0 1-.004-.337c.02-.604-.245-1.278-.868-1.638l-.648-.374a.176.176 0 0 1-.064-.24l.623-1.08a.176.176 0 0 1 .24-.064l.6.346c.638.368 1.37.247 1.888-.09a3.85 3.85 0 0 1 .323-.19c.54-.282 1.003-.852 1.003-1.58v-.688Z\"\n }));\n};\nSvgSettingsIcon.displayName = \"SettingsIcon\";\n\nexport { SvgSettingsIcon as S };\n","/* eslint-disable max-len */\n/* eslint-disable import/prefer-default-export */\n/* eslint-disable max-lines */\nimport React from 'react';\n\nexport const Icons = {\n Text: (\n \n \n \n ),\n LiquidText: (\n \n \n \n ),\n Image: (\n \n \n \n \n ),\n Divider: (\n \n \n \n ),\n Button: (\n \n \n \n ),\n Group: (\n \n \n \n ),\n Code: (\n \n \n \n ),\n SocialIcons: (\n \n \n \n ),\n Discount: (\n \n \n \n ),\n NewDiscount: (\n \n \n \n ),\n GraphDiscount: (\n \n \n \n ),\n Tweet: (\n \n \n \n ),\n Sufio: (\n \n \n \n \n \n \n ),\n YouTube: (\n \n \n \n ),\n Marketing: (\n \n \n \n \n \n \n \n \n \n \n ),\n ConditionalRecommendedProduct: (\n \n \n \n \n \n \n \n \n \n \n ),\n RecommendedProducts: (\n \n \n \n \n \n \n \n \n \n \n ),\n GlobalRecommendedProducts: (\n \n \n \n \n \n \n \n \n \n \n ),\n LineItems: (\n \n \n \n ),\n AFLineItems: (\n \n \n \n ),\n ExchangeParentLineItems: (\n \n \n \n ),\n ExchangeChildLineItems: (\n \n \n \n ),\n Spacer: (\n \n \n \n ),\n FeaturedProduct: (\n \n \n \n ),\n FeaturedCollection: (\n \n \n \n \n ),\n Feedback: (\n \n \n \n ),\n Footer: (\n \n \n \n ),\n Header: (\n \n \n \n ),\n Referral: (\n \n \n \n ),\n Limespot: (\n \n \n \n \n \n \n \n \n \n \n \n ),\n CustomerInfo: (\n \n \n \n ),\n Totals: (\n \n \n \n ),\n ReturnTotals: (\n \n \n \n ),\n SubscriptionTotals: (\n \n \n \n ),\n InvoiceTotals: (\n \n \n \n ),\n ExchangeParentTotals: (\n \n \n \n ),\n ExchangeChildTotals: (\n \n \n \n ),\n TemplateFooter: (\n \n \n \n \n \n \n \n \n \n \n \n \n ),\n TemplateHeader: (\n \n \n \n \n \n \n \n \n \n \n \n \n ),\n Color: (\n \n \n \n ),\n Navbar: (\n \n \n \n \n \n \n ),\n Tracktor: (\n \n \n \n \n \n \n \n \n \n \n ),\n Conditional: (\n \n \n \n \n \n \n \n ),\n DeprecatedComponent: (\n \n \n \n \n \n ),\n BillingAddress: (\n \n \n \n ),\n TransactionDetail: (\n \n \n \n ),\n ShippingAddress: (\n \n \n \n ),\n ShippingMethod: (\n \n \n \n ),\n messageIcon: (\n \n \n \n \n ),\n Grapevine: (\n \n \n \n ),\n SubscriptionNotifications: (\n \n \n \n \n \n \n ),\n};\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nexport const strShimFunction = \"function\";\r\nexport const strShimObject = \"object\";\r\nexport const strShimUndefined = \"undefined\";\r\nexport const strShimPrototype = \"prototype\";\r\nexport const strShimHasOwnProperty = \"hasOwnProperty\";\r\nexport const strDefault = \"default\";\r\n\r\nexport const ObjClass = Object;\r\nexport const ObjProto = ObjClass[strShimPrototype];\r\nexport const ObjAssign = ObjClass[\"assign\"];\r\nexport const ObjCreate = ObjClass[\"create\"];\r\nexport const ObjDefineProperty = ObjClass[\"defineProperty\"];\r\nexport const ObjHasOwnProperty = ObjProto[strShimHasOwnProperty];\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { ObjCreate, strShimFunction, strShimObject, strShimPrototype, strShimUndefined } from \"./Constants\";\r\n\r\ndeclare var globalThis: Window;\r\ndeclare var global: Window;\r\n\r\nlet _cachedGlobal: Window = null;\r\n\r\n/**\r\n * Returns the current global scope object, for a normal web page this will be the current\r\n * window, for a Web Worker this will be current worker global scope via \"self\". The internal\r\n * implementation returns the first available instance object in the following order\r\n * - globalThis (New standard)\r\n * - self (Will return the current window instance for supported browsers)\r\n * - window (fallback for older browser implementations)\r\n * - global (NodeJS standard)\r\n * - (When all else fails)\r\n * While the return type is a Window for the normal case, not all environments will support all\r\n * of the properties or functions.\r\n */\r\n export function getGlobal(useCached: boolean = true): Window {\r\n if (!_cachedGlobal || !useCached) {\r\n\r\n if (typeof globalThis !== strShimUndefined && globalThis) {\r\n _cachedGlobal = globalThis;\r\n }\r\n\r\n if (typeof self !== strShimUndefined && self) {\r\n _cachedGlobal = self;\r\n }\r\n\r\n if (typeof window !== strShimUndefined && window) {\r\n _cachedGlobal = window;\r\n }\r\n\r\n if (typeof global !== strShimUndefined && global) {\r\n _cachedGlobal = global;\r\n }\r\n }\r\n\r\n return _cachedGlobal;\r\n}\r\n\r\nexport function throwTypeError(message: string): never {\r\n throw new TypeError(message);\r\n}\r\n\r\n/**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\nexport function objCreateFn(obj: any): any {\r\n var func = ObjCreate;\r\n // Use build in Object.create\r\n if (func) {\r\n // Use Object create method if it exists\r\n return func(obj);\r\n }\r\n if (obj == null) {\r\n return {};\r\n }\r\n var type = typeof obj;\r\n if (type !== strShimObject && type !== strShimFunction) {\r\n throwTypeError(\"Object prototype may only be an Object:\" + obj);\r\n }\r\n\r\n function tmpFunc() {}\r\n tmpFunc[strShimPrototype] = obj;\r\n\r\n return new (tmpFunc as any)();\r\n}\r\n\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n ObjAssign, ObjClass, ObjCreate, ObjDefineProperty, ObjHasOwnProperty, ObjProto,\r\n strDefault, strShimFunction, strShimHasOwnProperty, strShimPrototype\r\n} from \"./Constants\";\r\nimport { getGlobal, objCreateFn, throwTypeError } from \"./Helpers\";\r\n\r\n// Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\r\n// modified to be ES3 compatible and applying several minification and tree-shaking techniques so that Application Insights\r\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\r\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\r\n// them.\r\n\r\nexport const SymbolObj = (getGlobal()||{})[\"Symbol\"];\r\nexport const ReflectObj = (getGlobal()||{})[\"Reflect\"];\r\nexport const __hasSymbol = !!SymbolObj;\r\nexport const __hasReflect = !!ReflectObj;\r\n\r\nconst strDecorate = \"decorate\";\r\nconst strMetadata = \"metadata\";\r\nconst strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nconst strIterator = \"iterator\";\r\n\r\nexport declare type ObjAssignFunc = (t: any, ...sources:any[]) => any;\r\n\r\nexport var __objAssignFnImpl: ObjAssignFunc = function(t: any): any {\r\n // tslint:disable-next-line: ban-comma-operator\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) {\r\n if (ObjProto[strShimHasOwnProperty].call(s, p)) {\r\n (t as any)[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n};\r\n\r\nexport var __assignFn: ObjAssignFunc = ObjAssign || __objAssignFnImpl;\r\n\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function(d: any, b: any): any {\r\n extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d: any, b: any) { d.__proto__ = b; }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d: any, b: any) {\r\n for (var p in b) {\r\n if (b[strShimHasOwnProperty](p)) {\r\n d[p] = b[p];\r\n }\r\n }\r\n };\r\n return extendStaticsFn(d, b);\r\n};\r\n\r\nexport function __extendsFn(d: any, b: any) {\r\n if (typeof b !== strShimFunction && b !== null) {\r\n throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n }\r\n extendStaticsFn(d, b);\r\n function __() { this.constructor = d; }\r\n // tslint:disable-next-line: ban-comma-operator\r\n d[strShimPrototype] = b === null ? objCreateFn(b) : (__[strShimPrototype] = b[strShimPrototype], new (__ as any)());\r\n}\r\n\r\nexport function __restFn(s: any, e: any) {\r\n var t = {};\r\n for (var k in s) {\r\n if (ObjHasOwnProperty.call(s, k) && e.indexOf(k) < 0) {\r\n t[k] = s[k];\r\n }\r\n }\r\n if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\r\n for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\r\n t[p[i]] = s[p[i]];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorateFn(decorators: any, target: any, key: any, desc: any) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc, d;\r\n if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\r\n r = ReflectObj[strDecorate](decorators, target, key, desc);\r\n } else {\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n // eslint-disable-next-line no-cond-assign\r\n if (d = decorators[i]) {\r\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n }\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:ban-comma-operator\r\n return c > 3 && r && ObjDefineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __paramFn(paramIndex: number, decorator: Function) {\r\n return function (target: any, key: any) {\r\n decorator(target, key, paramIndex);\r\n }\r\n}\r\n\r\nexport function __metadataFn(metadataKey: any, metadataValue: any) {\r\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n }\r\n}\r\n\r\nexport function __exportStarFn(m: any, o: any) {\r\n for (var p in m) {\r\n if (p !== strDefault && !ObjHasOwnProperty.call(o, p)) {\r\n __createBindingFn(o, m, p);\r\n }\r\n }\r\n}\r\n\r\nexport function __createBindingFn(o: any, m: any, k: any, k2?: any) {\r\n if (k2 === undefined) {\r\n k2 = k;\r\n }\r\n \r\n if (ObjCreate) {\r\n ObjDefineProperty(o, k2, {\r\n enumerable: true,\r\n get() {\r\n return m[k];\r\n }\r\n });\r\n } else {\r\n o[k2] = m[k];\r\n }\r\n}\r\n\r\nexport function __valuesFn(o: any) {\r\n var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator], m = s && o[s], i = 0;\r\n if (m) {\r\n return m.call(o);\r\n }\r\n\r\n if (o && typeof o.length === \"number\") {\r\n return {\r\n next () {\r\n if (o && i >= o.length) {\r\n o = void 0;\r\n }\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n\r\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __readFn(o: any, n: any) {\r\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n if (!m) {\r\n return o;\r\n }\r\n\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\r\n ar.push(r.value);\r\n }\r\n } catch (error) {\r\n e = {\r\n error\r\n };\r\n } finally {\r\n try {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (r && !r.done && (m = i[\"return\"])) {\r\n m.call(i);\r\n }\r\n } finally {\r\n if (e) {\r\n // eslint-disable-next-line no-unsafe-finally\r\n throw e.error;\r\n }\r\n }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArraysFn() {\r\n var theArgs = arguments;\r\n // Calculate new total size\r\n for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\r\n s += theArgs[i].length;\r\n }\r\n\r\n // Create new full array\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\r\n for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\r\n r[k] = a[j];\r\n }\r\n }\r\n\r\n return r;\r\n}\r\n\r\nexport function __spreadArrayFn(to: any, from: any) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\r\n to[j] = from[i];\r\n }\r\n\r\n return to;\r\n}\r\n\r\nexport function __makeTemplateObjectFn(cooked: any, raw: any) {\r\n if (ObjDefineProperty) {\r\n ObjDefineProperty(cooked, \"raw\", { value: raw });\r\n } else {\r\n cooked.raw = raw;\r\n }\r\n\r\n return cooked;\r\n}\r\n\r\nexport function __importStarFn(mod: any) {\r\n if (mod && mod.__esModule) {\r\n return mod;\r\n }\r\n\r\n var result = {};\r\n if (mod != null) {\r\n for (var k in mod) {\r\n if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\r\n __createBindingFn(result, mod, k);\r\n }\r\n }\r\n }\r\n\r\n // Set default module\r\n if (ObjCreate) {\r\n ObjDefineProperty( result, strDefault, { enumerable: true, value: mod });\r\n } else {\r\n result[strDefault] = mod;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function __importDefaultFn(mod:any) {\r\n return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Internal Global used to generate a unique dynamic class name, every new class will increase this value\r\n * @ignore\r\n */\r\nvar _dynamicNames = 0;\r\n/**\r\n * Helper to check if the object contains a property of the name\r\n * @ignore\r\n */\r\nfunction _hasOwnProperty(obj, prop) {\r\n return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n if (target) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n // target[Constructor] May break if the constructor has been changed or removed\r\n var newProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n if (newProto) {\r\n return newProto;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\r\nfunction _forEachProp(target, func) {\r\n var props = [];\r\n var getOwnProps = Obj[\"getOwnPropertyNames\"];\r\n if (getOwnProps) {\r\n props = getOwnProps(target);\r\n }\r\n else {\r\n for (var name_1 in target) {\r\n if (typeof name_1 === \"string\" && _hasOwnProperty(target, name_1)) {\r\n props.push(name_1);\r\n }\r\n }\r\n }\r\n if (props && props.length > 0) {\r\n for (var lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\r\n }\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || _hasOwnProperty(target, funcName)));\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n throw new TypeError(\"DynamicProto: \" + message);\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n // Get the base proto\r\n var instFuncs = {};\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n });\r\n return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n for (var lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n function _instFuncProxy(target, funcHost, funcName) {\r\n var theFunc = funcHost[funcName];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n return function () {\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = {};\r\n _forEachProp(instFuncs, function (name) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n });\r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n var visited = [];\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n _forEachProp(baseProto, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n });\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n var instFunc = null;\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && _hasOwnProperty(proto, DynClassName)) {\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n var canAddInst = !_hasOwnProperty(target, funcName);\r\n // Get current prototype\r\n var objProto = _getObjProto(target);\r\n var visited = [];\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n var protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n }\r\n catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n var protoFunc = proto[funcName];\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n function _createDynamicPrototype(proto, funcName) {\r\n var dynProtoProxy = function () {\r\n // Use the instance or prototype function\r\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n return instFunc.apply(this, arguments);\r\n };\r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n dynProtoProxy[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};\r\n var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {}); // fetch and assign if as it may not exist yet\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n _forEachProp(target, function (name) {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs_1[name] = target[name];\r\n delete target[name];\r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!_hasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n var visited = [];\r\n var thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(thisProto);\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n if (_hasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue;\r\n }\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nexport default function dynamicProto(theClass, target, delegateFunc, options) {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!_hasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n var classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] is not in class hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n var className = null;\r\n if (_hasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n }\r\n else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _dynamicNames;\r\n _dynamicNames++;\r\n classProto[DynClassName] = className;\r\n }\r\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n var useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n // Get the current instance functions\r\n var instFuncs = _getInstanceFuncs(target);\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs);\r\n // Don't allow setting instance functions for older IE instances\r\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\nvar perfDefaults = {\r\n setInstFuncs: true,\r\n useBaseInst: true\r\n};\r\n// And expose for testing\r\ndynamicProto[DynProtoDefaultOptions] = perfDefaults;\r\n//# sourceMappingURL=DynamicProto.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var LoggingSeverity;\r\n(function (LoggingSeverity) {\r\n /**\r\n * Error will be sent as internal telemetry\r\n */\r\n LoggingSeverity[LoggingSeverity[\"CRITICAL\"] = 1] = \"CRITICAL\";\r\n /**\r\n * Error will NOT be sent as internal telemetry, and will only be shown in browser console\r\n */\r\n LoggingSeverity[LoggingSeverity[\"WARNING\"] = 2] = \"WARNING\";\r\n})(LoggingSeverity || (LoggingSeverity = {}));\r\n/**\r\n * Internal message ID. Please create a new one for every conceptually different message. Please keep alphabetically ordered\r\n */\r\nexport var _InternalMessageId = {\r\n // Non user actionable\r\n BrowserDoesNotSupportLocalStorage: 0,\r\n BrowserCannotReadLocalStorage: 1,\r\n BrowserCannotReadSessionStorage: 2,\r\n BrowserCannotWriteLocalStorage: 3,\r\n BrowserCannotWriteSessionStorage: 4,\r\n BrowserFailedRemovalFromLocalStorage: 5,\r\n BrowserFailedRemovalFromSessionStorage: 6,\r\n CannotSendEmptyTelemetry: 7,\r\n ClientPerformanceMathError: 8,\r\n ErrorParsingAISessionCookie: 9,\r\n ErrorPVCalc: 10,\r\n ExceptionWhileLoggingError: 11,\r\n FailedAddingTelemetryToBuffer: 12,\r\n FailedMonitorAjaxAbort: 13,\r\n FailedMonitorAjaxDur: 14,\r\n FailedMonitorAjaxOpen: 15,\r\n FailedMonitorAjaxRSC: 16,\r\n FailedMonitorAjaxSend: 17,\r\n FailedMonitorAjaxGetCorrelationHeader: 18,\r\n FailedToAddHandlerForOnBeforeUnload: 19,\r\n FailedToSendQueuedTelemetry: 20,\r\n FailedToReportDataLoss: 21,\r\n FlushFailed: 22,\r\n MessageLimitPerPVExceeded: 23,\r\n MissingRequiredFieldSpecification: 24,\r\n NavigationTimingNotSupported: 25,\r\n OnError: 26,\r\n SessionRenewalDateIsZero: 27,\r\n SenderNotInitialized: 28,\r\n StartTrackEventFailed: 29,\r\n StopTrackEventFailed: 30,\r\n StartTrackFailed: 31,\r\n StopTrackFailed: 32,\r\n TelemetrySampledAndNotSent: 33,\r\n TrackEventFailed: 34,\r\n TrackExceptionFailed: 35,\r\n TrackMetricFailed: 36,\r\n TrackPVFailed: 37,\r\n TrackPVFailedCalc: 38,\r\n TrackTraceFailed: 39,\r\n TransmissionFailed: 40,\r\n FailedToSetStorageBuffer: 41,\r\n FailedToRestoreStorageBuffer: 42,\r\n InvalidBackendResponse: 43,\r\n FailedToFixDepricatedValues: 44,\r\n InvalidDurationValue: 45,\r\n TelemetryEnvelopeInvalid: 46,\r\n CreateEnvelopeError: 47,\r\n // User actionable\r\n CannotSerializeObject: 48,\r\n CannotSerializeObjectNonSerializable: 49,\r\n CircularReferenceDetected: 50,\r\n ClearAuthContextFailed: 51,\r\n ExceptionTruncated: 52,\r\n IllegalCharsInName: 53,\r\n ItemNotInArray: 54,\r\n MaxAjaxPerPVExceeded: 55,\r\n MessageTruncated: 56,\r\n NameTooLong: 57,\r\n SampleRateOutOfRange: 58,\r\n SetAuthContextFailed: 59,\r\n SetAuthContextFailedAccountName: 60,\r\n StringValueTooLong: 61,\r\n StartCalledMoreThanOnce: 62,\r\n StopCalledWithoutStart: 63,\r\n TelemetryInitializerFailed: 64,\r\n TrackArgumentsNotSpecified: 65,\r\n UrlTooLong: 66,\r\n SessionStorageBufferFull: 67,\r\n CannotAccessCookie: 68,\r\n IdTooLong: 69,\r\n InvalidEvent: 70,\r\n FailedMonitorAjaxSetRequestHeader: 71,\r\n SendBrowserInfoOnUserInit: 72,\r\n PluginException: 73,\r\n NotificationException: 74,\r\n SnippetScriptLoadFailure: 99,\r\n InvalidInstrumentationKey: 100,\r\n CannotParseAiBlobValue: 101,\r\n InvalidContentBlob: 102,\r\n TrackPageActionEventFailed: 103,\r\n FailedAddingCustomDefinedRequestContext: 104,\r\n InMemoryStorageBufferFull: 105\r\n};\r\n//# sourceMappingURL=LoggingEnums.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { strShimUndefined, strShimObject, strShimFunction, throwTypeError, ObjClass, ObjProto, ObjAssign, ObjHasOwnProperty, ObjDefineProperty } from \"@microsoft/applicationinsights-shims\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar strToISOString = \"toISOString\";\r\nvar _objDefineProperty = ObjDefineProperty;\r\nvar _objFreeze = ObjClass[\"freeze\"];\r\nvar _objSeal = ObjClass[\"seal\"];\r\nexport function objToString(obj) {\r\n return ObjProto.toString.call(obj);\r\n}\r\nexport function isTypeof(value, theType) {\r\n return typeof value === theType;\r\n}\r\nexport function isUndefined(value) {\r\n return value === undefined || typeof value === strShimUndefined;\r\n}\r\nexport function isNotUndefined(value) {\r\n return !isUndefined(value);\r\n}\r\nexport function isNullOrUndefined(value) {\r\n return (value === null || isUndefined(value));\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n return !isNullOrUndefined(value);\r\n}\r\nexport function hasOwnProperty(obj, prop) {\r\n return obj && ObjHasOwnProperty.call(obj, prop);\r\n}\r\nexport function isObject(value) {\r\n // Changing to inline for performance\r\n return typeof value === strShimObject;\r\n}\r\nexport function isFunction(value) {\r\n // Changing to inline for performance\r\n return typeof value === strShimFunction;\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj Object to add the event too.\r\n * @param eventNameWithoutOn String that specifies any of the standard DHTML Events without \"on\" prefix\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @param useCapture [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n var result = false;\r\n if (!isNullOrUndefined(obj)) {\r\n try {\r\n if (!isNullOrUndefined(obj[strAddEventHelper])) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](eventNameWithoutOn, handlerRef, useCapture);\r\n result = true;\r\n }\r\n else if (!isNullOrUndefined(obj[strAttachEvent])) {\r\n // IE before version 9\r\n obj[strAttachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);\r\n result = true;\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object to remove the event from\r\n * @param eventNameWithoutOn {string} - The name of the event\r\n * @param handlerRef {any} - The callback function that needs to be executed for the given event\r\n * @param useCapture [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (!isNullOrUndefined(obj)) {\r\n try {\r\n if (!isNullOrUndefined(obj[strRemoveEventListener])) {\r\n obj[strRemoveEventListener](eventNameWithoutOn, handlerRef, useCapture);\r\n }\r\n else if (!isNullOrUndefined(obj[strDetachEvent])) {\r\n obj[strDetachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name The name to validate\r\n */\r\nexport function normalizeJsName(name) {\r\n var value = name;\r\n var match = /([^\\w\\d_$])/g;\r\n if (match.test(name)) {\r\n value = name.replace(match, \"_\");\r\n }\r\n return value;\r\n}\r\n/**\r\n * This is a helper function for the equivalent of arForEach(objKeys(target), callbackFn), this is a\r\n * performance optimization to avoid the creation of a new array for large objects\r\n * @param target The target object to find and process the keys\r\n * @param callbackfn The function to call with the details\r\n */\r\nexport function objForEachKey(target, callbackfn) {\r\n if (target) {\r\n for (var prop in target) {\r\n if (ObjHasOwnProperty.call(target, prop)) {\r\n callbackfn.call(target, prop, target[prop]);\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var searchLen = search.length;\r\n var valLen = value.length;\r\n if (value === search) {\r\n return true;\r\n }\r\n else if (valLen >= searchLen) {\r\n var pos = valLen - 1;\r\n for (var lp = searchLen - 1; lp >= 0; lp--) {\r\n if (value[pos] != search[lp]) {\r\n return false;\r\n }\r\n pos--;\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * The strStartsWith() method determines whether a string starts with the characters of the specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param checkValue - The characters to be searched for at the start of the value.\r\n * @returns true if the given search value is found at the start of the string, otherwise false.\r\n */\r\nexport function strStartsWith(value, checkValue) {\r\n // Using helper for performance and because string startsWith() is not available on IE\r\n var result = false;\r\n if (value && checkValue) {\r\n var chkLen = checkValue.length;\r\n if (value === checkValue) {\r\n return true;\r\n }\r\n else if (value.length >= chkLen) {\r\n for (var lp = 0; lp < chkLen; lp++) {\r\n if (value[lp] !== checkValue[lp]) {\r\n return false;\r\n }\r\n }\r\n result = true;\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\r\nexport function strContains(value, search) {\r\n if (value && search) {\r\n return value.indexOf(search) !== -1;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Check if an object is of type Date\r\n */\r\nexport function isDate(obj) {\r\n return objToString(obj) === \"[object Date]\";\r\n}\r\n/**\r\n * Check if an object is of type Array\r\n */\r\nexport function isArray(obj) {\r\n return objToString(obj) === \"[object Array]\";\r\n}\r\n/**\r\n * Check if an object is of type Error\r\n */\r\nexport function isError(obj) {\r\n return objToString(obj) === \"[object Error]\";\r\n}\r\n/**\r\n * Checks if the type of value is a string.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a string, false otherwise.\r\n */\r\nexport function isString(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"string\";\r\n}\r\n/**\r\n * Checks if the type of value is a number.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a number, false otherwise.\r\n */\r\nexport function isNumber(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"number\";\r\n}\r\n/**\r\n * Checks if the type of value is a boolean.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\nexport function isBoolean(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"boolean\";\r\n}\r\n/**\r\n * Checks if the type of value is a Symbol.\r\n * This only returns a boolean as returning value is Symbol will cause issues for older TypeScript consumers\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Symbol, false otherwise.\r\n */\r\nexport function isSymbol(value) {\r\n return typeof value === \"symbol\";\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n if (date) {\r\n if (date[strToISOString]) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n return date[strToISOString]();\r\n }\r\n if (isDate(date)) {\r\n var pad = function (num) {\r\n var r = String(num);\r\n if (r.length === 1) {\r\n r = \"0\" + r;\r\n }\r\n return r;\r\n };\r\n return date.getUTCFullYear()\r\n + \"-\" + pad(date.getUTCMonth() + 1)\r\n + \"-\" + pad(date.getUTCDate())\r\n + \"T\" + pad(date.getUTCHours())\r\n + \":\" + pad(date.getUTCMinutes())\r\n + \":\" + pad(date.getUTCSeconds())\r\n + \".\" + String((date.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5)\r\n + \"Z\";\r\n }\r\n }\r\n}\r\n/**\r\n * Performs the specified action for each element in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array. It can return -1 to break out of the loop\r\n * @param thisArg [Optional] An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\nexport function arrForEach(arr, callbackfn, thisArg) {\r\n var len = arr.length;\r\n try {\r\n for (var idx = 0; idx < len; idx++) {\r\n if (idx in arr) {\r\n if (callbackfn.call(thisArg || arr, arr[idx], idx, arr) === -1) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n}\r\n/**\r\n * Returns the index of the first occurrence of a value in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\r\nexport function arrIndexOf(arr, searchElement, fromIndex) {\r\n var len = arr.length;\r\n var from = fromIndex || 0;\r\n try {\r\n for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {\r\n if (lp in arr && arr[lp] === searchElement) {\r\n return lp;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return -1;\r\n}\r\n/**\r\n * Calls a defined callback function on each element of an array, and returns an array that contains the results. This helper exists\r\n * to avoid adding a polyfil for older browsers that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page\r\n * checks for presence/absence of the prototype implementation. Note: For consistency this will not use the Array.prototype.xxxx\r\n * implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\nexport function arrMap(arr, callbackfn, thisArg) {\r\n var len = arr.length;\r\n var _this = thisArg || arr;\r\n var results = new Array(len);\r\n try {\r\n for (var lp = 0; lp < len; lp++) {\r\n if (lp in arr) {\r\n results[lp] = callbackfn.call(_this, arr[lp], arr);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return results;\r\n}\r\n/**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is\r\n * provided as an argument in the next call to the callback function. This helper exists to avoid adding a polyfil for older browsers that do not define\r\n * Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype implementation. Note: For consistency\r\n * this will not use the Array.prototype.xxxx implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\nexport function arrReduce(arr, callbackfn, initialValue) {\r\n var len = arr.length;\r\n var lp = 0;\r\n var value;\r\n // Specifically checking the number of passed arguments as the value could be anything\r\n if (arguments.length >= 3) {\r\n value = arguments[2];\r\n }\r\n else {\r\n while (lp < len && !(lp in arr)) {\r\n lp++;\r\n }\r\n value = arr[lp++];\r\n }\r\n while (lp < len) {\r\n if (lp in arr) {\r\n value = callbackfn(value, arr[lp], lp, arr);\r\n }\r\n lp++;\r\n }\r\n return value;\r\n}\r\n/**\r\n * helper method to trim strings (IE8 does not implement String.prototype.trim)\r\n */\r\nexport function strTrim(str) {\r\n if (typeof str !== \"string\") {\r\n return str;\r\n }\r\n return str.replace(/^\\s+|\\s+$/g, \"\");\r\n}\r\nvar _objKeysHasDontEnumBug = !({ toString: null }).propertyIsEnumerable(\"toString\");\r\nvar _objKeysDontEnums = [\r\n \"toString\",\r\n \"toLocaleString\",\r\n \"valueOf\",\r\n \"hasOwnProperty\",\r\n \"isPrototypeOf\",\r\n \"propertyIsEnumerable\",\r\n \"constructor\"\r\n];\r\n/**\r\n * Returns the names of the enumerable string properties and methods of an object. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Object.keys eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.keys implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n */\r\nexport function objKeys(obj) {\r\n var objType = typeof obj;\r\n if (objType !== strShimFunction && (objType !== strShimObject || obj === null)) {\r\n throwTypeError(\"objKeys called on non-object\");\r\n }\r\n var result = [];\r\n for (var prop in obj) {\r\n if (obj && ObjHasOwnProperty.call(obj, prop)) {\r\n result.push(prop);\r\n }\r\n }\r\n if (_objKeysHasDontEnumBug) {\r\n var dontEnumsLength = _objKeysDontEnums.length;\r\n for (var lp = 0; lp < dontEnumsLength; lp++) {\r\n if (obj && ObjHasOwnProperty.call(obj, _objKeysDontEnums[lp])) {\r\n result.push(_objKeysDontEnums[lp]);\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Try to define get/set object property accessors for the target object/prototype, this will provide compatibility with\r\n * existing API definition when run within an ES5+ container that supports accessors but still enable the code to be loaded\r\n * and executed in an ES3 container, providing basic IE8 compatibility.\r\n * @param target The object on which to define the property.\r\n * @param prop The name of the property to be defined or modified.\r\n * @param getProp The getter function to wire against the getter.\r\n * @param setProp The setter function to wire against the setter.\r\n * @returns True if it was able to create the accessors otherwise false\r\n */\r\nexport function objDefineAccessors(target, prop, getProp, setProp) {\r\n if (_objDefineProperty) {\r\n try {\r\n var descriptor = {\r\n enumerable: true,\r\n configurable: true\r\n };\r\n if (getProp) {\r\n descriptor.get = getProp;\r\n }\r\n if (setProp) {\r\n descriptor.set = setProp;\r\n }\r\n _objDefineProperty(target, prop, descriptor);\r\n return true;\r\n }\r\n catch (e) {\r\n // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\r\n // We will just ignore this here.\r\n }\r\n }\r\n return false;\r\n}\r\nexport function objFreeze(value) {\r\n if (_objFreeze) {\r\n value = _objFreeze(value);\r\n }\r\n return value;\r\n}\r\nexport function objSeal(value) {\r\n if (_objSeal) {\r\n value = _objSeal(value);\r\n }\r\n return value;\r\n}\r\n/**\r\n * Return the current time via the Date now() function (if available) and falls back to (new Date()).getTime() if now() is unavailable (IE8 or less)\r\n * https://caniuse.com/#search=Date.now\r\n */\r\nexport function dateNow() {\r\n var dt = Date;\r\n if (dt.now) {\r\n return dt.now();\r\n }\r\n return new dt().getTime();\r\n}\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n if (isError(object)) {\r\n return object.name;\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n var theValue = value;\r\n if (target) {\r\n theValue = target[field];\r\n if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n theValue = value;\r\n target[field] = theValue;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\r\nexport function getSetValue(target, field, defValue) {\r\n var theValue;\r\n if (target) {\r\n theValue = target[field];\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n // Supports having the default as null\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n target[field] = theValue;\r\n }\r\n }\r\n else {\r\n // Expanded for performance so we only check defValue if required\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n }\r\n return theValue;\r\n}\r\nexport function isNotTruthy(value) {\r\n return !value;\r\n}\r\nexport function isTruthy(value) {\r\n return !!value;\r\n}\r\nexport function throwError(message) {\r\n throw new Error(message);\r\n}\r\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 => will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n * @memberof Initialization\r\n */\r\nexport function proxyAssign(target, source, chkSet) {\r\n if (target && source && target !== source && isObject(target) && isObject(source)) {\r\n var _loop_1 = function (field) {\r\n if (isString(field)) {\r\n var value = source[field];\r\n if (isFunction(value)) {\r\n if (!chkSet || chkSet(field, true, source, target)) {\r\n // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n target[field] = (function (funcName) {\r\n return function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n return source[funcName].apply(source, originalArguments);\r\n };\r\n })(field);\r\n }\r\n }\r\n else if (!chkSet || chkSet(field, false, source, target)) {\r\n if (hasOwnProperty(target, field)) {\r\n // Remove any previous instance property\r\n delete target[field];\r\n }\r\n if (!objDefineAccessors(target, field, function () {\r\n return source[field];\r\n }, function (theValue) {\r\n source[field] = theValue;\r\n })) {\r\n // Unable to create an accessor, so just assign the values as a fallback\r\n // -- this will (mostly) work for objects\r\n // -- but will fail for accessing primitives (if the source changes it) and all types of \"setters\" as the source won't be modified\r\n target[field] = value;\r\n }\r\n }\r\n }\r\n };\r\n // effectively apply/proxy full source to the target instance\r\n for (var field in source) {\r\n _loop_1(field);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults Simple helper\r\n */\r\nexport function createClassFromInterface(defaults) {\r\n return /** @class */ (function () {\r\n function class_1() {\r\n var _this_1 = this;\r\n if (defaults) {\r\n objForEachKey(defaults, function (field, value) {\r\n _this_1[field] = value;\r\n });\r\n }\r\n }\r\n return class_1;\r\n }());\r\n}\r\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\r\nexport function optimizeObject(theObject) {\r\n // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n if (theObject) {\r\n theObject = ObjClass(ObjAssign ? ObjAssign({}, theObject) : theObject);\r\n }\r\n return theObject;\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { getGlobal, strShimUndefined, strShimObject, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { isString, isUndefined, strContains } from \"./HelperFuncs\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nvar strWindow = \"window\";\r\nvar strDocument = \"document\";\r\nvar strDocumentMode = \"documentMode\";\r\nvar strNavigator = \"navigator\";\r\nvar strHistory = \"history\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strPerformance = \"performance\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n var supported = false;\r\n if (theClass) {\r\n try {\r\n supported = property in theClass;\r\n if (!supported) {\r\n var proto = theClass[strShimPrototype];\r\n if (proto) {\r\n supported = property in proto;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n if (!supported) {\r\n try {\r\n var tmp = new theClass();\r\n supported = !isUndefined(tmp[property]);\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n }\r\n }\r\n return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n _enableMocks = enabled;\r\n}\r\n/**\r\n * Return the named global object if available, will return null if the object is not available.\r\n * @param name The globally named object\r\n */\r\nexport function getGlobalInst(name) {\r\n var gbl = getGlobal();\r\n if (gbl && gbl[name]) {\r\n return gbl[name];\r\n }\r\n // Test workaround, for environments where .window (when global == window) doesn't return the base window\r\n if (name === strWindow && hasWindow()) {\r\n // tslint:disable-next-line: no-angle-bracket-type-assertion\r\n return window;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Checks if window object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a window\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: window is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasWindow() {\r\n return Boolean(typeof window === strShimObject && window);\r\n}\r\n/**\r\n * Returns the global window object if it is present otherwise null.\r\n * This helper is used to access the window object without causing an exception\r\n * \"Uncaught ReferenceError: window is not defined\"\r\n */\r\nexport function getWindow() {\r\n if (hasWindow()) {\r\n return window;\r\n }\r\n // Return the global instance or null\r\n return getGlobalInst(strWindow);\r\n}\r\n/**\r\n * Checks if document object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a document\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: document is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasDocument() {\r\n return Boolean(typeof document === strShimObject && document);\r\n}\r\n/**\r\n * Returns the global document object if it is present otherwise null.\r\n * This helper is used to access the document object without causing an exception\r\n * \"Uncaught ReferenceError: document is not defined\"\r\n */\r\nexport function getDocument() {\r\n if (hasDocument()) {\r\n return document;\r\n }\r\n return getGlobalInst(strDocument);\r\n}\r\n/**\r\n * Checks if navigator object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a navigator\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: navigator is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasNavigator() {\r\n return Boolean(typeof navigator === strShimObject && navigator);\r\n}\r\n/**\r\n * Returns the global navigator object if it is present otherwise null.\r\n * This helper is used to access the navigator object without causing an exception\r\n * \"Uncaught ReferenceError: navigator is not defined\"\r\n */\r\nexport function getNavigator() {\r\n if (hasNavigator()) {\r\n return navigator;\r\n }\r\n return getGlobalInst(strNavigator);\r\n}\r\n/**\r\n * Checks if history object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: history is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasHistory() {\r\n return Boolean(typeof history === strShimObject && history);\r\n}\r\n/**\r\n * Returns the global history object if it is present otherwise null.\r\n * This helper is used to access the history object without causing an exception\r\n * \"Uncaught ReferenceError: history is not defined\"\r\n */\r\nexport function getHistory() {\r\n if (hasHistory()) {\r\n return history;\r\n }\r\n return getGlobalInst(strHistory);\r\n}\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(checkForMock) {\r\n if (checkForMock && _enableMocks) {\r\n var mockLocation = getGlobalInst(\"__mockLocation\");\r\n if (mockLocation) {\r\n return mockLocation;\r\n }\r\n }\r\n if (typeof location === strShimObject && location) {\r\n return location;\r\n }\r\n return getGlobalInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n if (typeof console !== strShimUndefined) {\r\n return console;\r\n }\r\n return getGlobalInst(strConsole);\r\n}\r\n/**\r\n * Returns the performance object if it is present otherwise null.\r\n * This helper is used to access the performance object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getPerformance() {\r\n return getGlobalInst(strPerformance);\r\n}\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON() {\r\n return Boolean((typeof JSON === strShimObject && JSON) || getGlobalInst(strJSON) !== null);\r\n}\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON() {\r\n if (hasJSON()) {\r\n return JSON || getGlobalInst(strJSON);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto() {\r\n return getGlobalInst(strCrypto);\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto() {\r\n return getGlobalInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n var nav = getNavigator();\r\n if (nav && nav.product) {\r\n return nav.product === strReactNative;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n var nav = getNavigator();\r\n if (nav && (nav.userAgent !== _navUserAgentCheck || _isTrident === null)) {\r\n // Added to support test mocking of the user agent\r\n _navUserAgentCheck = nav.userAgent;\r\n var userAgent = (_navUserAgentCheck || \"\").toLowerCase();\r\n _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n }\r\n return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n if (userAgentStr === void 0) { userAgentStr = null; }\r\n if (!userAgentStr) {\r\n var navigator_1 = getNavigator() || {};\r\n userAgentStr = navigator_1 ? (navigator_1.userAgent || \"\").toLowerCase() : \"\";\r\n }\r\n var ua = (userAgentStr || \"\").toLowerCase();\r\n // Also check for documentMode in case X-UA-Compatible meta tag was included in HTML.\r\n if (strContains(ua, strMsie)) {\r\n var doc = getDocument() || {};\r\n return Math.max(parseInt(ua.split(strMsie)[1]), (doc[strDocumentMode] || 0));\r\n }\r\n else if (strContains(ua, strTrident)) {\r\n var tridentVer = parseInt(ua.split(strTrident)[1]);\r\n if (tridentVer) {\r\n return tridentVer + 4;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns string representation of an object suitable for diagnostics logging.\r\n */\r\nexport function dumpObj(object) {\r\n var objectTypeDump = Object[strShimPrototype].toString.call(object);\r\n var propertyValueDump = \"\";\r\n if (objectTypeDump === \"[object Error]\") {\r\n propertyValueDump = \"{ stack: '\" + object.stack + \"', message: '\" + object.message + \"', name: '\" + object.name + \"'\";\r\n }\r\n else if (hasJSON()) {\r\n propertyValueDump = getJSON().stringify(object);\r\n }\r\n return objectTypeDump + propertyValueDump;\r\n}\r\nexport function isSafari(userAgentStr) {\r\n if (!userAgentStr || !isString(userAgentStr)) {\r\n var navigator_2 = getNavigator() || {};\r\n userAgentStr = navigator_2 ? (navigator_2.userAgent || \"\").toLowerCase() : \"\";\r\n }\r\n var ua = (userAgentStr || \"\").toLowerCase();\r\n return (ua.indexOf(\"safari\") >= 0);\r\n}\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported() {\r\n if (_beaconsSupported === null) {\r\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n }\r\n return _beaconsSupported;\r\n}\r\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isFetchSupported(withKeepAlive) {\r\n var isSupported = false;\r\n try {\r\n var fetchApi = getGlobalInst(\"fetch\");\r\n isSupported = !!fetchApi;\r\n var request = getGlobalInst(\"Request\");\r\n if (isSupported && withKeepAlive && request) {\r\n isSupported = _hasProperty(request, \"keepalive\");\r\n }\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n if (_useXDomainRequest === null) {\r\n _useXDomainRequest = (typeof XDomainRequest !== \"undefined\");\r\n if (_useXDomainRequest && isXhrSupported()) {\r\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst(\"XMLHttpRequest\"), \"withCredentials\");\r\n }\r\n }\r\n return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n var isSupported = false;\r\n try {\r\n var xmlHttpRequest = getGlobalInst(\"XMLHttpRequest\");\r\n isSupported = !!xmlHttpRequest;\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\n//# sourceMappingURL=EnvUtils.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getGlobalInst } from \"./EnvUtils\";\r\nvar listenerFuncs = [\"eventsSent\", \"eventsDiscarded\", \"eventsSendRequest\", \"perfEvent\"];\r\nvar _aiNamespace = null;\r\nvar _debugListener;\r\nfunction _listenerProxyFunc(name, config) {\r\n return function () {\r\n var args = arguments;\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt) {\r\n var listener = dbgExt.listener;\r\n if (listener && listener[name]) {\r\n listener[name].apply(listener, args);\r\n }\r\n }\r\n };\r\n}\r\nfunction _getExtensionNamespace() {\r\n // Cache the lookup of the global namespace object\r\n var target = getGlobalInst(\"Microsoft\");\r\n if (target) {\r\n _aiNamespace = target[\"ApplicationInsights\"];\r\n }\r\n return _aiNamespace;\r\n}\r\nexport function getDebugExt(config) {\r\n var ns = _aiNamespace;\r\n if (!ns && config.disableDbgExt !== true) {\r\n ns = _aiNamespace || _getExtensionNamespace();\r\n }\r\n return ns ? ns[\"ChromeDbgExt\"] : null;\r\n}\r\nexport function getDebugListener(config) {\r\n if (!_debugListener) {\r\n _debugListener = {};\r\n for (var lp = 0; lp < listenerFuncs.length; lp++) {\r\n _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\r\n }\r\n }\r\n return _debugListener;\r\n}\r\n//# sourceMappingURL=DbgExtensionUtils.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { _InternalMessageId, LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { hasJSON, getJSON, getConsole } from \"./EnvUtils\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isFunction, isNullOrUndefined, isUndefined } from \"./HelperFuncs\";\r\nimport { getDebugExt } from \"./DbgExtensionUtils\";\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nvar AiUserActionablePrefix = \"AI: \";\r\n/**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nvar AIInternalMessagePrefix = \"AITR_\";\r\nvar strErrorToConsole = \"errorToConsole\";\r\nvar strWarnToConsole = \"warnToConsole\";\r\nfunction _sanitizeDiagnosticText(text) {\r\n if (text) {\r\n return \"\\\"\" + text.replace(/\\\"/g, \"\") + \"\\\"\";\r\n }\r\n return \"\";\r\n}\r\nfunction _logToConsole(func, message) {\r\n var theConsole = getConsole();\r\n if (!!theConsole) {\r\n var logFunc = \"log\";\r\n if (theConsole[func]) {\r\n logFunc = func;\r\n }\r\n if (isFunction(theConsole[logFunc])) {\r\n theConsole[logFunc](message);\r\n }\r\n }\r\n}\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var _self = this;\r\n _self.messageId = msgId;\r\n _self.message =\r\n (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n msgId;\r\n var strProps = \"\";\r\n if (hasJSON()) {\r\n strProps = getJSON().stringify(properties);\r\n }\r\n var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : \"\") +\r\n (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : \"\");\r\n _self.message += diagnosticText;\r\n }\r\n _InternalLogMessage.dataType = \"MessageData\";\r\n return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nexport function safeGetLogger(core, config) {\r\n return (core || {}).logger || new DiagnosticLogger(config);\r\n}\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n function DiagnosticLogger(config) {\r\n this.identifier = \"DiagnosticLogger\";\r\n /**\r\n * The internal logging queue\r\n */\r\n this.queue = [];\r\n /**\r\n * Count of internal messages sent\r\n */\r\n var _messageCount = 0;\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n var _messageLogged = {};\r\n dynamicProto(DiagnosticLogger, this, function (_self) {\r\n if (isNullOrUndefined(config)) {\r\n config = {};\r\n }\r\n _self.consoleLoggingLevel = function () { return _getConfigValue(\"loggingLevelConsole\", 0); };\r\n _self.telemetryLoggingLevel = function () { return _getConfigValue(\"loggingLevelTelemetry\", 1); };\r\n _self.maxInternalMessageLimit = function () { return _getConfigValue(\"maxMessageLimit\", 25); };\r\n _self.enableDebugExceptions = function () { return _getConfigValue(\"enableDebugExceptions\", false); };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n _self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n if (_self.enableDebugExceptions()) {\r\n throw message;\r\n }\r\n else {\r\n // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist\r\n var logFunc = severity === LoggingSeverity.CRITICAL ? strErrorToConsole : strWarnToConsole;\r\n if (!isUndefined(message.message)) {\r\n var logLevel = _self.consoleLoggingLevel();\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n var messageKey = +message.messageId;\r\n if (!_messageLogged[messageKey] && logLevel >= severity) {\r\n _self[logFunc](message.message);\r\n _messageLogged[messageKey] = true;\r\n }\r\n }\r\n else {\r\n // Only log traces if the console Logging Level is >= the throwInternal severity level\r\n if (logLevel >= severity) {\r\n _self[logFunc](message.message);\r\n }\r\n }\r\n _self.logInternalMessage(severity, message);\r\n }\r\n else {\r\n _debugExtMsg(\"throw\" + (severity === LoggingSeverity.CRITICAL ? \"Critical\" : \"Warning\"), message);\r\n }\r\n }\r\n };\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n _self.warnToConsole = function (message) {\r\n _logToConsole(\"warn\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n /**\r\n * This will write an error to the console if possible\r\n * @param message {string} - The error message\r\n */\r\n _self.errorToConsole = function (message) {\r\n _logToConsole(\"error\", message);\r\n _debugExtMsg(\"error\", message);\r\n };\r\n /**\r\n * Resets the internal message count\r\n */\r\n _self.resetInternalMessageCount = function () {\r\n _messageCount = 0;\r\n _messageLogged = {};\r\n };\r\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\n _self.logInternalMessage = function (severity, message) {\r\n if (_areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n var logMessage = true;\r\n var messageKey = AIInternalMessagePrefix + message.messageId;\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (_messageLogged[messageKey]) {\r\n logMessage = false;\r\n }\r\n else {\r\n _messageLogged[messageKey] = true;\r\n }\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= _self.telemetryLoggingLevel()) {\r\n _self.queue.push(message);\r\n _messageCount++;\r\n _debugExtMsg((severity === LoggingSeverity.CRITICAL ? \"error\" : \"warn\"), message);\r\n }\r\n // When throttle limit reached, send a special event\r\n if (_messageCount === _self.maxInternalMessageLimit()) {\r\n var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n var throttleMessage = new _InternalLogMessage(_InternalMessageId.MessageLimitPerPVExceeded, throttleLimitMessage, false);\r\n _self.queue.push(throttleMessage);\r\n if (severity === LoggingSeverity.CRITICAL) {\r\n _self.errorToConsole(throttleLimitMessage);\r\n }\r\n else {\r\n _self.warnToConsole(throttleLimitMessage);\r\n }\r\n }\r\n }\r\n };\r\n function _getConfigValue(name, defValue) {\r\n var value = config[name];\r\n if (!isNullOrUndefined(value)) {\r\n return value;\r\n }\r\n return defValue;\r\n }\r\n function _areInternalMessagesThrottled() {\r\n return _messageCount >= _self.maxInternalMessageLimit();\r\n }\r\n function _debugExtMsg(name, data) {\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt && dbgExt.diagLog) {\r\n dbgExt.diagLog(name, data);\r\n }\r\n }\r\n });\r\n }\r\n /**\r\n * When this is true the SDK will throw exceptions to aid in debugging.\r\n */\r\n DiagnosticLogger.prototype.enableDebugExceptions = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n /**\r\n * 0: OFF (default)\r\n * 1: CRITICAL\r\n * 2: >= WARNING\r\n */\r\n DiagnosticLogger.prototype.consoleLoggingLevel = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n /**\r\n * 0: OFF\r\n * 1: CRITICAL (default)\r\n * 2: >= WARNING\r\n */\r\n DiagnosticLogger.prototype.telemetryLoggingLevel = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 1;\r\n };\r\n /**\r\n * The maximum number of internal messages allowed to be sent per page view\r\n */\r\n DiagnosticLogger.prototype.maxInternalMessageLimit = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 25;\r\n };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n DiagnosticLogger.prototype.throwInternal = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n DiagnosticLogger.prototype.warnToConsole = function (message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * This will write an error to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n DiagnosticLogger.prototype.errorToConsole = function (message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Resets the internal message count\r\n */\r\n DiagnosticLogger.prototype.resetInternalMessageCount = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\n DiagnosticLogger.prototype.logInternalMessage = function (severity, message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\n//# sourceMappingURL=DiagnosticLogger.js.map","import dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateNow, isArray, isFunction, objDefineAccessors } from \"./HelperFuncs\";\r\nvar strExecutionContextKey = \"ctx\";\r\nvar _defaultPerfManager = null;\r\nvar PerfEvent = /** @class */ (function () {\r\n function PerfEvent(name, payloadDetails, isAsync) {\r\n var _self = this;\r\n var accessorDefined = false;\r\n _self.start = dateNow();\r\n _self.name = name;\r\n _self.isAsync = isAsync;\r\n _self.isChildEvt = function () { return false; };\r\n if (isFunction(payloadDetails)) {\r\n // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n var theDetails_1;\r\n accessorDefined = objDefineAccessors(_self, \"payload\", function () {\r\n // Delay the execution of the payloadDetails until needed\r\n if (!theDetails_1 && isFunction(payloadDetails)) {\r\n theDetails_1 = payloadDetails();\r\n // clear it out now so the referenced objects can be garbage collected\r\n payloadDetails = null;\r\n }\r\n return theDetails_1;\r\n });\r\n }\r\n _self.getCtx = function (key) {\r\n if (key) {\r\n // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent.ParentContextKey || key === PerfEvent.ChildrenContextKey) {\r\n return _self[key];\r\n }\r\n return (_self[strExecutionContextKey] || {})[key];\r\n }\r\n return null;\r\n };\r\n _self.setCtx = function (key, value) {\r\n if (key) {\r\n // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent.ParentContextKey) {\r\n // Simple assumption, if we are setting a parent then we must be a child\r\n if (!_self[key]) {\r\n _self.isChildEvt = function () { return true; };\r\n }\r\n _self[key] = value;\r\n }\r\n else if (key === PerfEvent.ChildrenContextKey) {\r\n _self[key] = value;\r\n }\r\n else {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n }\r\n };\r\n _self.complete = function () {\r\n var childTime = 0;\r\n var childEvts = _self.getCtx(PerfEvent.ChildrenContextKey);\r\n if (isArray(childEvts)) {\r\n for (var lp = 0; lp < childEvts.length; lp++) {\r\n var childEvt = childEvts[lp];\r\n if (childEvt) {\r\n childTime += childEvt.time;\r\n }\r\n }\r\n }\r\n _self.time = dateNow() - _self.start;\r\n _self.exTime = _self.time - childTime;\r\n _self.complete = function () { };\r\n if (!accessorDefined && isFunction(payloadDetails)) {\r\n // If we couldn't define the property set during complete -- to minimize the perf impact until after the time\r\n _self.payload = payloadDetails();\r\n }\r\n };\r\n }\r\n PerfEvent.ParentContextKey = \"parent\";\r\n PerfEvent.ChildrenContextKey = \"childEvts\";\r\n return PerfEvent;\r\n}());\r\nexport { PerfEvent };\r\nvar PerfManager = /** @class */ (function () {\r\n function PerfManager(manager) {\r\n /**\r\n * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n * Defined as private so it can be visualized via the DebugPlugin\r\n */\r\n this.ctx = {};\r\n dynamicProto(PerfManager, this, function (_self) {\r\n _self.create = function (src, payloadDetails, isAsync) {\r\n // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n // for now this is just a simple do everything.\r\n return new PerfEvent(src, payloadDetails, isAsync);\r\n };\r\n _self.fire = function (perfEvent) {\r\n if (perfEvent) {\r\n perfEvent.complete();\r\n if (manager && isFunction(manager.perfEvent)) {\r\n manager.perfEvent(perfEvent);\r\n }\r\n }\r\n };\r\n _self.setCtx = function (key, value) {\r\n if (key) {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n };\r\n _self.getCtx = function (key) {\r\n return (_self[strExecutionContextKey] || {})[key];\r\n };\r\n });\r\n }\r\n /**\r\n * Create a new event and start timing, the manager may return null/undefined to indicate that it does not\r\n * want to monitor this source event.\r\n * @param src The source name of the event\r\n * @param payloadDetails - An optional callback function to fetch the payload details for the event.\r\n * @param isAsync - Is the event occurring from a async event\r\n */\r\n PerfManager.prototype.create = function (src, payload, isAsync) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Complete the perfEvent and fire any notifications.\r\n * @param perfEvent Fire the event which will also complete the passed event\r\n */\r\n PerfManager.prototype.fire = function (perfEvent) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Set an execution context value\r\n * @param key - The context key name\r\n * @param value - The value\r\n */\r\n PerfManager.prototype.setCtx = function (key, value) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Get the execution context value\r\n * @param key - The context key\r\n */\r\n PerfManager.prototype.getCtx = function (key) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n if (mgrSource) {\r\n var perfMgr = mgrSource;\r\n if (isFunction(perfMgr[\"getPerfMgr\"])) {\r\n // Looks like a perf manager provider object\r\n perfMgr = perfMgr[\"getPerfMgr\"]();\r\n }\r\n if (perfMgr) {\r\n var perfEvt = void 0;\r\n var currentActive = perfMgr.getCtx(doPerfActiveKey);\r\n try {\r\n perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n if (perfEvt) {\r\n if (currentActive && perfEvt.setCtx) {\r\n perfEvt.setCtx(PerfEvent.ParentContextKey, currentActive);\r\n if (currentActive.getCtx && currentActive.setCtx) {\r\n var children = currentActive.getCtx(PerfEvent.ChildrenContextKey);\r\n if (!children) {\r\n children = [];\r\n currentActive.setCtx(PerfEvent.ChildrenContextKey, children);\r\n }\r\n children.push(perfEvt);\r\n }\r\n }\r\n // Set this event as the active event now\r\n perfMgr.setCtx(doPerfActiveKey, perfEvt);\r\n return func(perfEvt);\r\n }\r\n }\r\n catch (ex) {\r\n if (perfEvt && perfEvt.setCtx) {\r\n perfEvt.setCtx(\"exception\", ex);\r\n }\r\n }\r\n finally {\r\n // fire the perf event\r\n if (perfEvt) {\r\n perfMgr.fire(perfEvt);\r\n }\r\n // Reset the active event to the previous value\r\n perfMgr.setCtx(doPerfActiveKey, currentActive);\r\n }\r\n }\r\n }\r\n return func();\r\n}\r\n/**\r\n * Set the global performance manager to use when there is no core instance or it has not been initialized yet.\r\n * @param perfManager - The IPerfManager instance to use when no performance manager is supplied.\r\n */\r\nexport function setGblPerfMgr(perfManager) {\r\n _defaultPerfManager = perfManager;\r\n}\r\n/**\r\n * Get the current global performance manager that will be used with no performance manager is supplied.\r\n * @returns - The current default manager\r\n */\r\nexport function getGblPerfMgr() {\r\n return _defaultPerfManager;\r\n}\r\n//# sourceMappingURL=PerfManager.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { LoggingSeverity, _InternalMessageId } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { isFunction } from \"./HelperFuncs\";\r\nimport { dumpObj } from \"./EnvUtils\";\r\nvar TelemetryPluginChain = /** @class */ (function () {\r\n function TelemetryPluginChain(plugin, defItemCtx) {\r\n var _self = this;\r\n var _nextProxy = null;\r\n var _hasProcessTelemetry = isFunction(plugin.processTelemetry);\r\n var _hasSetNext = isFunction(plugin.setNextPlugin);\r\n _self._hasRun = false;\r\n _self.getPlugin = function () {\r\n return plugin;\r\n };\r\n _self.getNext = function () {\r\n return _nextProxy;\r\n };\r\n _self.setNext = function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n if (!itemCtx) {\r\n // Looks like a plugin didn't pass the (optional) context, so restore to the default\r\n itemCtx = defItemCtx;\r\n }\r\n var identifier = plugin ? plugin.identifier : \"TelemetryPluginChain\";\r\n doPerf(itemCtx ? itemCtx.core() : null, function () { return identifier + \":processTelemetry\"; }, function () {\r\n if (plugin && _hasProcessTelemetry) {\r\n _self._hasRun = true;\r\n try {\r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some\r\n // other form of error occurred\r\n itemCtx.setNext(_nextProxy);\r\n if (_hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin.setNextPlugin(_nextProxy);\r\n }\r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n _nextProxy && (_nextProxy._hasRun = false);\r\n plugin.processTelemetry(env, itemCtx);\r\n }\r\n catch (error) {\r\n var hasRun = _nextProxy && _nextProxy._hasRun;\r\n if (!_nextProxy || !hasRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.PluginException, \"Plugin [\" + plugin.identifier + \"] failed during processTelemetry - \" + dumpObj(error));\r\n }\r\n if (_nextProxy && !hasRun) {\r\n // As part of the failure the current plugin did not attempt to call the next plugin in the cahin\r\n // So rather than leave the pipeline dead in the water we call the next plugin\r\n _nextProxy.processTelemetry(env, itemCtx);\r\n }\r\n }\r\n }\r\n else if (_nextProxy) {\r\n _self._hasRun = true;\r\n // The underlying plugin is either not defined or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n _nextProxy.processTelemetry(env, itemCtx);\r\n }\r\n }, function () { return ({ item: env }); }, !(env.sync));\r\n };\r\n }\r\n return TelemetryPluginChain;\r\n}());\r\nexport { TelemetryPluginChain };\r\n//# sourceMappingURL=TelemetryPluginChain.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { TelemetryPluginChain } from \"./TelemetryPluginChain\";\r\nimport { arrForEach, isFunction, isNullOrUndefined, isUndefined } from \"./HelperFuncs\";\r\n/**\r\n * Creates the instance execution chain for the plugins\r\n */\r\nfunction _createProxyChain(plugins, itemCtx) {\r\n var proxies = [];\r\n if (plugins && plugins.length > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n var lastProxy = null;\r\n for (var idx = 0; idx < plugins.length; idx++) {\r\n var thePlugin = plugins[idx];\r\n if (thePlugin && isFunction(thePlugin.processTelemetry)) {\r\n // Only add plugins that are processors\r\n var newProxy = new TelemetryPluginChain(thePlugin, itemCtx);\r\n proxies.push(newProxy);\r\n if (lastProxy) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy.setNext(newProxy);\r\n }\r\n lastProxy = newProxy;\r\n }\r\n }\r\n }\r\n return proxies.length > 0 ? proxies[0] : null;\r\n}\r\nfunction _copyProxyChain(proxy, itemCtx, startAt) {\r\n var plugins = [];\r\n var add = startAt ? false : true;\r\n if (proxy) {\r\n while (proxy) {\r\n var thePlugin = proxy.getPlugin();\r\n if (add || thePlugin === startAt) {\r\n add = true;\r\n plugins.push(thePlugin);\r\n }\r\n proxy = proxy.getNext();\r\n }\r\n }\r\n if (!add) {\r\n plugins.push(startAt);\r\n }\r\n return _createProxyChain(plugins, itemCtx);\r\n}\r\nfunction _copyPluginChain(srcPlugins, itemCtx, startAt) {\r\n var plugins = srcPlugins;\r\n var add = false;\r\n if (startAt && srcPlugins) {\r\n plugins = [];\r\n arrForEach(srcPlugins, function (thePlugin) {\r\n if (add || thePlugin === startAt) {\r\n add = true;\r\n plugins.push(thePlugin);\r\n }\r\n });\r\n }\r\n if (startAt && !add) {\r\n if (!plugins) {\r\n plugins = [];\r\n }\r\n plugins.push(startAt);\r\n }\r\n return _createProxyChain(plugins, itemCtx);\r\n}\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\r\n function ProcessTelemetryContext(plugins, config, core, startAt) {\r\n var _self = this;\r\n var _nextProxy = null; // Null == No next plugin\r\n // There is no next element (null) vs not defined (undefined)\r\n if (startAt !== null) {\r\n if (plugins && isFunction(plugins.getPlugin)) {\r\n // We have a proxy chain object\r\n _nextProxy = _copyProxyChain(plugins, _self, startAt || plugins.getPlugin());\r\n }\r\n else {\r\n // We just have an array\r\n if (startAt) {\r\n _nextProxy = _copyPluginChain(plugins, _self, startAt);\r\n }\r\n else if (isUndefined(startAt)) {\r\n // Undefined means copy the existing chain\r\n _nextProxy = _createProxyChain(plugins, _self);\r\n }\r\n }\r\n }\r\n _self.core = function () {\r\n return core;\r\n };\r\n _self.diagLog = function () {\r\n return safeGetLogger(core, config);\r\n };\r\n _self.getCfg = function () {\r\n return config;\r\n };\r\n _self.getExtCfg = function (identifier, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = {}; }\r\n var theConfig;\r\n if (config) {\r\n var extConfig = config.extensionConfig;\r\n if (extConfig && identifier) {\r\n theConfig = extConfig[identifier];\r\n }\r\n }\r\n return (theConfig ? theConfig : defaultValue);\r\n };\r\n _self.getConfig = function (identifier, field, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var theValue;\r\n var extConfig = _self.getExtCfg(identifier, null);\r\n if (extConfig && !isNullOrUndefined(extConfig[field])) {\r\n theValue = extConfig[field];\r\n }\r\n else if (config && !isNullOrUndefined(config[field])) {\r\n theValue = config[field];\r\n }\r\n return !isNullOrUndefined(theValue) ? theValue : defaultValue;\r\n };\r\n _self.hasNext = function () {\r\n return _nextProxy != null;\r\n };\r\n _self.getNext = function () {\r\n return _nextProxy;\r\n };\r\n _self.setNext = function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n };\r\n _self.processNext = function (env) {\r\n var nextPlugin = _nextProxy;\r\n if (nextPlugin) {\r\n // Automatically move to the next plugin\r\n _nextProxy = nextPlugin.getNext();\r\n nextPlugin.processTelemetry(env, _self);\r\n }\r\n };\r\n _self.createNew = function (plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n return new ProcessTelemetryContext(plugins || _nextProxy, config, core, startAt);\r\n };\r\n }\r\n return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n//# sourceMappingURL=ProcessTelemetryContext.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var strIKey = \"iKey\";\r\nexport var strExtensionConfig = \"extensionConfig\";\r\n//# sourceMappingURL=Constants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { ProcessTelemetryContext } from \"./ProcessTelemetryContext\";\r\nimport { isFunction, isNullOrUndefined, setValue } from \"./HelperFuncs\";\r\nimport { strExtensionConfig } from \"./Constants\";\r\nvar strGetPlugin = \"getPlugin\";\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nvar BaseTelemetryPlugin = /** @class */ (function () {\r\n function BaseTelemetryPlugin() {\r\n var _self = this;\r\n var _isinitialized = false;\r\n var _rootCtx = null; // Used as the root context, holding the current config and initialized core\r\n var _nextPlugin = null; // Used for backward compatibility where plugins don't call the main pipeline\r\n _self.core = null;\r\n _self.diagLog = function (itemCtx) {\r\n return _self._getTelCtx(itemCtx).diagLog();\r\n };\r\n _self.isInitialized = function () {\r\n return _isinitialized;\r\n };\r\n _self.setInitialized = function (isInitialized) {\r\n _isinitialized = isInitialized;\r\n };\r\n // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n // Sub-classes of this base class *should* not be relying on this value and instead\r\n // should use processNext() function. If you require access to the plugin use the\r\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n _self.setNextPlugin = function (next) {\r\n _nextPlugin = next;\r\n };\r\n _self.processNext = function (env, itemCtx) {\r\n if (itemCtx) {\r\n // Normal core execution sequence\r\n itemCtx.processNext(env);\r\n }\r\n else if (_nextPlugin && isFunction(_nextPlugin.processTelemetry)) {\r\n // Looks like backward compatibility or out of band processing. And as it looks\r\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n _nextPlugin.processTelemetry(env, null);\r\n }\r\n };\r\n _self._getTelCtx = function (currentCtx) {\r\n if (currentCtx === void 0) { currentCtx = null; }\r\n var itemCtx = currentCtx;\r\n if (!itemCtx) {\r\n var rootCtx = _rootCtx || new ProcessTelemetryContext(null, {}, _self.core);\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // Looks like a chain object\r\n itemCtx = rootCtx.createNew(null, _nextPlugin[strGetPlugin]);\r\n }\r\n else {\r\n itemCtx = rootCtx.createNew(null, _nextPlugin);\r\n }\r\n }\r\n return itemCtx;\r\n };\r\n _self._baseTelInit = function (config, core, extensions, pluginChain) {\r\n if (config) {\r\n // Make sure the extensionConfig exists\r\n setValue(config, strExtensionConfig, [], null, isNullOrUndefined);\r\n }\r\n if (!pluginChain && core) {\r\n // Get the first plugin from the core\r\n pluginChain = core.getProcessTelContext().getNext();\r\n }\r\n var nextPlugin = _nextPlugin;\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[strGetPlugin]();\r\n }\r\n // Support legacy plugins where core was defined as a property\r\n _self.core = core;\r\n _rootCtx = new ProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n _isinitialized = true;\r\n };\r\n }\r\n BaseTelemetryPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n this._baseTelInit(config, core, extensions, pluginChain);\r\n };\r\n return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n//# sourceMappingURL=BaseTelemetryPlugin.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { arrForEach, isFunction } from \"./HelperFuncs\";\r\nvar processTelemetry = \"processTelemetry\";\r\nvar priority = \"priority\";\r\nvar setNextPlugin = \"setNextPlugin\";\r\nvar isInitialized = \"isInitialized\";\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config The current config for the instance\r\n * @param core THe current core instance\r\n * @param extensions The extensions\r\n */\r\nexport function initializePlugins(processContext, extensions) {\r\n // Set the next plugin and identified the uninitialized plugins\r\n var initPlugins = [];\r\n var lastPlugin = null;\r\n var proxy = processContext.getNext();\r\n while (proxy) {\r\n var thePlugin = proxy.getPlugin();\r\n if (thePlugin) {\r\n if (lastPlugin &&\r\n isFunction(lastPlugin[setNextPlugin]) &&\r\n isFunction(thePlugin[processTelemetry])) {\r\n // Set this plugin as the next for the previous one\r\n lastPlugin[setNextPlugin](thePlugin);\r\n }\r\n if (!isFunction(thePlugin[isInitialized]) || !thePlugin[isInitialized]()) {\r\n initPlugins.push(thePlugin);\r\n }\r\n lastPlugin = thePlugin;\r\n proxy = proxy.getNext();\r\n }\r\n }\r\n // Now initiatilize the plugins\r\n arrForEach(initPlugins, function (thePlugin) {\r\n thePlugin.initialize(processContext.getCfg(), processContext.core(), extensions, processContext.getNext());\r\n });\r\n}\r\nexport function sortPlugins(plugins) {\r\n // Sort by priority\r\n return plugins.sort(function (extA, extB) {\r\n var result = 0;\r\n var bHasProcess = isFunction(extB[processTelemetry]);\r\n if (isFunction(extA[processTelemetry])) {\r\n result = bHasProcess ? extA[priority] - extB[priority] : 1;\r\n }\r\n else if (bHasProcess) {\r\n result = -1;\r\n }\r\n return result;\r\n });\r\n // sort complete\r\n}\r\n//# sourceMappingURL=TelemetryHelpers.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin } from \"./BaseTelemetryPlugin\";\r\nimport { ProcessTelemetryContext } from \"./ProcessTelemetryContext\";\r\nimport { initializePlugins } from \"./TelemetryHelpers\";\r\nimport { arrForEach, objDefineAccessors, throwError } from \"./HelperFuncs\";\r\nvar ChannelControllerPriority = 500;\r\nvar ChannelValidationMessage = \"Channel has invalid priority\";\r\nvar ChannelController = /** @class */ (function (_super) {\r\n __extends(ChannelController, _super);\r\n function ChannelController() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"ChannelControllerPlugin\";\r\n _this.priority = ChannelControllerPriority; // in reserved range 100 to 200\r\n var _channelQueue;\r\n dynamicProto(ChannelController, _this, function (_self, _base) {\r\n _self.setNextPlugin = function (next) {\r\n // The Channel controller is last in pipeline\r\n };\r\n _self.processTelemetry = function (item, itemCtx) {\r\n if (_channelQueue) {\r\n arrForEach(_channelQueue, function (queues) {\r\n // pass on to first item in queue\r\n if (queues.length > 0) {\r\n // Copying the item context as we could have mutiple chains that are executing asynchronously\r\n // and calling _getDefTelCtx as it's possible that the caller doesn't pass any context\r\n var chainCtx = _this._getTelCtx(itemCtx).createNew(queues);\r\n chainCtx.processNext(item);\r\n }\r\n });\r\n }\r\n };\r\n _self.getChannelControls = function () {\r\n return _channelQueue;\r\n };\r\n _self.initialize = function (config, core, extensions) {\r\n if (_self.isInitialized()) {\r\n // already initialized\r\n return;\r\n }\r\n _base.initialize(config, core, extensions);\r\n _createChannelQueues((config || {}).channels, extensions);\r\n // Initialize the Queues\r\n arrForEach(_channelQueue, function (queue) { return initializePlugins(new ProcessTelemetryContext(queue, config, core), extensions); });\r\n };\r\n });\r\n function _checkQueuePriority(queue) {\r\n arrForEach(queue, function (queueItem) {\r\n if (queueItem.priority < ChannelControllerPriority) {\r\n throwError(ChannelValidationMessage + queueItem.identifier);\r\n }\r\n });\r\n }\r\n function _addChannelQueue(queue) {\r\n if (queue && queue.length > 0) {\r\n queue = queue.sort(function (a, b) {\r\n return a.priority - b.priority;\r\n });\r\n _checkQueuePriority(queue);\r\n _channelQueue.push(queue);\r\n }\r\n }\r\n function _createChannelQueues(channels, extensions) {\r\n _channelQueue = [];\r\n if (channels) {\r\n // Add and sort the configuration channel queues\r\n arrForEach(channels, function (queue) { return _addChannelQueue(queue); });\r\n }\r\n if (extensions) {\r\n // Create a new channel queue for any extensions with a priority > the ChannelControllerPriority\r\n var extensionQueue_1 = [];\r\n arrForEach(extensions, function (plugin) {\r\n if (plugin.priority > ChannelControllerPriority) {\r\n extensionQueue_1.push(plugin);\r\n }\r\n });\r\n _addChannelQueue(extensionQueue_1);\r\n }\r\n }\r\n return _this;\r\n }\r\n ChannelController.prototype.processTelemetry = function (item, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ChannelController.prototype.getChannelControls = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n ChannelController.prototype.initialize = function (config, core, extensions) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Static constructor, attempt to create accessors\r\n */\r\n // tslint:disable-next-line\r\n ChannelController._staticInit = (function () {\r\n var proto = ChannelController.prototype;\r\n // Dynamically create get/set property accessors\r\n objDefineAccessors(proto, \"ChannelControls\", proto.getChannelControls);\r\n objDefineAccessors(proto, \"channelQueue\", proto.getChannelControls);\r\n })();\r\n return ChannelController;\r\n}(BaseTelemetryPlugin));\r\nexport { ChannelController };\r\n//# sourceMappingURL=ChannelController.js.map","import { _InternalMessageId, LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { dumpObj, getDocument, getLocation, getNavigator, isIE } from \"./EnvUtils\";\r\nimport { arrForEach, dateNow, getExceptionName, isFunction, isNotNullOrUndefined, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, setValue, strContains, strEndsWith, strTrim } from \"./HelperFuncs\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strEnabled = \"enabled\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar strEmpty = \"\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc = getDocument();\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\r\nexport function _gblCookieMgr(config, logger) {\r\n // Stash the global instance against the BaseCookieMgr class\r\n var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n if (!inst) {\r\n // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n // that ultimately is never used\r\n inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n _globalCookieConfig[strConfigCookieMgr] = inst;\r\n }\r\n return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n if (cookieMgr) {\r\n return cookieMgr.isEnabled();\r\n }\r\n return true;\r\n}\r\nfunction _createCookieMgrConfig(rootConfig) {\r\n var cookieMgrCfg = rootConfig.cookieCfg = rootConfig.cookieCfg || {};\r\n // Sets the values from the root config if not already present on the cookieMgrCfg\r\n setValue(cookieMgrCfg, \"domain\", rootConfig.cookieDomain, isNotNullOrUndefined, isNullOrUndefined);\r\n setValue(cookieMgrCfg, \"path\", rootConfig.cookiePath || \"/\", null, isNullOrUndefined);\r\n if (isNullOrUndefined(cookieMgrCfg[strEnabled])) {\r\n // Set the enabled from the provided setting or the legacy root values\r\n var cookieEnabled = void 0;\r\n if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n }\r\n if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n }\r\n cookieMgrCfg[strEnabled] = cookieEnabled;\r\n }\r\n return cookieMgrCfg;\r\n}\r\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core\r\n * @param config\r\n * @returns\r\n */\r\nexport function safeGetCookieMgr(core, config) {\r\n var cookieMgr;\r\n if (core) {\r\n // Always returns an instance\r\n cookieMgr = core.getCookieMgr();\r\n }\r\n else if (config) {\r\n var cookieCfg = config.cookieCfg;\r\n if (cookieCfg[strConfigCookieMgr]) {\r\n cookieMgr = cookieCfg[strConfigCookieMgr];\r\n }\r\n else {\r\n cookieMgr = createCookieMgr(config);\r\n }\r\n }\r\n if (!cookieMgr) {\r\n // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n cookieMgr = _gblCookieMgr(config, (core || {}).logger);\r\n }\r\n return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n var cookieMgrConfig = _createCookieMgrConfig(rootConfig || _globalCookieConfig);\r\n var _path = cookieMgrConfig.path || \"/\";\r\n var _domain = cookieMgrConfig.domain;\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n var _enabled = cookieMgrConfig[strEnabled] !== false;\r\n var cookieMgr = {\r\n isEnabled: function () {\r\n var enabled = _enabled && areCookiesSupported(logger);\r\n // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n if (enabled && gblManager && cookieMgr !== gblManager) {\r\n // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n // As the global (deprecated) functions may have been called (for backward compatibility)\r\n enabled = _isMgrEnabled(gblManager);\r\n }\r\n return enabled;\r\n },\r\n setEnabled: function (value) {\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = value !== false;\r\n },\r\n set: function (name, value, maxAgeSec, domain, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n var values = {};\r\n var theValue = strTrim(value || strEmpty);\r\n var idx = theValue.indexOf(\";\");\r\n if (idx !== -1) {\r\n theValue = strTrim(value.substring(0, idx));\r\n values = _extractParts(value.substring(idx + 1));\r\n }\r\n // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n setValue(values, \"domain\", domain || _domain, isTruthy, isUndefined);\r\n if (!isNullOrUndefined(maxAgeSec)) {\r\n var _isIE = isIE();\r\n if (isUndefined(values[strExpires])) {\r\n var nowMs = dateNow();\r\n // Only add expires if not already present\r\n var expireMs = nowMs + (maxAgeSec * 1000);\r\n // Sanity check, if zero or -ve then ignore\r\n if (expireMs > 0) {\r\n var expiry = new Date();\r\n expiry.setTime(expireMs);\r\n setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || strEmpty, isTruthy);\r\n }\r\n }\r\n if (!_isIE) {\r\n // Only replace if not already present\r\n setValue(values, \"max-age\", strEmpty + maxAgeSec, null, isUndefined);\r\n }\r\n }\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.protocol === \"https:\") {\r\n setValue(values, \"secure\", null, null, isUndefined);\r\n // Only set same site if not also secure\r\n if (_allowUaSameSite === null) {\r\n _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {}).userAgent);\r\n }\r\n if (_allowUaSameSite) {\r\n setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n }\r\n }\r\n setValue(values, \"path\", path || _path, null, isUndefined);\r\n var setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n setCookieFn(name, _formatCookieValue(theValue, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n get: function (name) {\r\n var value = strEmpty;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n value = (cookieMgrConfig.getCookie || _getCookieValue)(name);\r\n }\r\n return value;\r\n },\r\n del: function (name, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n // Only remove the cookie if the manager and cookie support has not been disabled\r\n result = cookieMgr.purge(name, path);\r\n }\r\n return result;\r\n },\r\n purge: function (name, path) {\r\n var _a;\r\n var result = false;\r\n if (areCookiesSupported(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n var values = (_a = {},\r\n _a[\"path\"] = path ? path : \"/\",\r\n _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n _a);\r\n if (!isIE()) {\r\n // Set max age to expire now\r\n values[\"max-age\"] = \"0\";\r\n }\r\n var delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n delCookie(name, _formatCookieValue(strEmpty, values));\r\n result = true;\r\n }\r\n return result;\r\n }\r\n };\r\n // Associated this cookie manager with the config\r\n cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n if (_supportsCookies === null) {\r\n _supportsCookies = false;\r\n try {\r\n var doc = _doc || {};\r\n _supportsCookies = doc[strCookie] !== undefined;\r\n }\r\n catch (e) {\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotAccessCookie, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n var values = {};\r\n if (theValue && theValue.length) {\r\n var parts = strTrim(theValue).split(\";\");\r\n arrForEach(parts, function (thePart) {\r\n thePart = strTrim(thePart || strEmpty);\r\n if (thePart) {\r\n var idx = thePart.indexOf(\"=\");\r\n if (idx === -1) {\r\n values[thePart] = null;\r\n }\r\n else {\r\n values[strTrim(thePart.substring(0, idx))] = strTrim(thePart.substring(idx + 1));\r\n }\r\n }\r\n });\r\n }\r\n return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n if (isFunction(theDate[func])) {\r\n return theDate[func]();\r\n }\r\n return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n var cookieValue = value || strEmpty;\r\n objForEachKey(values, function (name, theValue) {\r\n cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : strEmpty);\r\n });\r\n return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n var cookieValue = strEmpty;\r\n if (_doc) {\r\n var theCookie = _doc[strCookie] || strEmpty;\r\n if (_parsedCookieValue !== theCookie) {\r\n _cookieCache = _extractParts(theCookie);\r\n _parsedCookieValue = theCookie;\r\n }\r\n cookieValue = strTrim(_cookieCache[name] || strEmpty);\r\n }\r\n return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n if (_doc) {\r\n _doc[strCookie] = name + \"=\" + cookieValue;\r\n }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n if (!isString(userAgent)) {\r\n return false;\r\n }\r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n return true;\r\n }\r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n return true;\r\n }\r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=CookieMgr.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { __spreadArray } from \"tslib\";\r\nimport { objCreateFn } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { ChannelController } from \"./ChannelController\";\r\nimport { ProcessTelemetryContext } from \"./ProcessTelemetryContext\";\r\nimport { initializePlugins, sortPlugins } from \"./TelemetryHelpers\";\r\nimport { LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { getGblPerfMgr, PerfManager } from \"./PerfManager\";\r\nimport { createCookieMgr } from \"./CookieMgr\";\r\nimport { arrForEach, isNullOrUndefined, toISOString, getSetValue, setValue, throwError, isNotTruthy, isFunction } from \"./HelperFuncs\";\r\nimport { strExtensionConfig, strIKey } from \"./Constants\";\r\nimport { DiagnosticLogger } from \"./DiagnosticLogger\";\r\nimport { getDebugListener } from \"./DbgExtensionUtils\";\r\nvar validationError = \"Extensions must provide callback to initialize\";\r\nvar strNotificationManager = \"_notificationManager\";\r\n/**\r\n * Helper to create the default performance manager\r\n * @param core\r\n * @param notificationMgr\r\n */\r\nfunction _createPerfManager(core, notificationMgr) {\r\n return new PerfManager(notificationMgr);\r\n}\r\nvar BaseCore = /** @class */ (function () {\r\n function BaseCore() {\r\n var _isInitialized = false;\r\n var _eventQueue;\r\n var _channelController;\r\n var _notificationManager;\r\n var _perfManager;\r\n var _cookieManager;\r\n dynamicProto(BaseCore, this, function (_self) {\r\n _self._extensions = new Array();\r\n _channelController = new ChannelController();\r\n // Use a default logger so initialization errors are not dropped on the floor with full logging\r\n _self.logger = new DiagnosticLogger({ loggingLevelConsole: LoggingSeverity.CRITICAL });\r\n _eventQueue = [];\r\n _self.isInitialized = function () { return _isInitialized; };\r\n _self.initialize = function (config, extensions, logger, notificationManager) {\r\n // Make sure core is only initialized once\r\n if (_self.isInitialized()) {\r\n throwError(\"Core should not be initialized more than once\");\r\n }\r\n if (!config || isNullOrUndefined(config.instrumentationKey)) {\r\n throwError(\"Please provide instrumentation key\");\r\n }\r\n _notificationManager = notificationManager;\r\n // For backward compatibility only\r\n _self[strNotificationManager] = notificationManager;\r\n _self.config = config || {};\r\n if (notificationManager && _self.config.disableDbgExt !== true) {\r\n notificationManager.addNotificationListener(getDebugListener(config));\r\n }\r\n if (_self.config.enablePerfMgr) {\r\n // Set the performance manager creation function if not defined\r\n setValue(_self.config, \"createPerfMgr\", _createPerfManager);\r\n }\r\n config.extensions = isNullOrUndefined(config.extensions) ? [] : config.extensions;\r\n // add notification to the extensions in the config so other plugins can access it\r\n var extConfig = getSetValue(config, strExtensionConfig);\r\n extConfig.NotificationManager = notificationManager;\r\n if (logger) {\r\n _self.logger = logger;\r\n }\r\n // Concat all available extensions\r\n var allExtensions = [];\r\n allExtensions.push.apply(allExtensions, __spreadArray(__spreadArray([], extensions, false), config.extensions, false));\r\n allExtensions = sortPlugins(allExtensions);\r\n var coreExtensions = [];\r\n var channelExtensions = [];\r\n // Check if any two extensions have the same priority, then warn to console\r\n // And extract the local extensions from the\r\n var extPriorities = {};\r\n // Extension validation\r\n arrForEach(allExtensions, function (ext) {\r\n if (isNullOrUndefined(ext) || isNullOrUndefined(ext.initialize)) {\r\n throwError(validationError);\r\n }\r\n var extPriority = ext.priority;\r\n var identifier = ext.identifier;\r\n if (ext && extPriority) {\r\n if (!isNullOrUndefined(extPriorities[extPriority])) {\r\n logger.warnToConsole(\"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n }\r\n else {\r\n // set a value\r\n extPriorities[extPriority] = identifier;\r\n }\r\n }\r\n // Split extensions to core and channelController\r\n if (!extPriority || extPriority < _channelController.priority) {\r\n // Add to core extension that will be managed by BaseCore\r\n coreExtensions.push(ext);\r\n }\r\n else {\r\n // Add all other extensions to be managed by the channel controller\r\n channelExtensions.push(ext);\r\n }\r\n });\r\n // Validation complete\r\n // Add the channelController to the complete extension collection and\r\n // to the end of the core extensions\r\n allExtensions.push(_channelController);\r\n coreExtensions.push(_channelController);\r\n // Sort the complete set of extensions by priority\r\n allExtensions = sortPlugins(allExtensions);\r\n _self._extensions = allExtensions;\r\n // initialize channel controller first, this will initialize all channel plugins\r\n initializePlugins(new ProcessTelemetryContext([_channelController], config, _self), allExtensions);\r\n initializePlugins(new ProcessTelemetryContext(coreExtensions, config, _self), allExtensions);\r\n // Now reset the extensions to just those being managed by Basecore\r\n _self._extensions = coreExtensions;\r\n if (_self.getTransmissionControls().length === 0) {\r\n throwError(\"No channels available\");\r\n }\r\n _isInitialized = true;\r\n _self.releaseQueue();\r\n };\r\n _self.getTransmissionControls = function () {\r\n return _channelController.getChannelControls();\r\n };\r\n _self.track = function (telemetryItem) {\r\n // setup default iKey if not passed in\r\n setValue(telemetryItem, strIKey, _self.config.instrumentationKey, null, isNotTruthy);\r\n // add default timestamp if not passed in\r\n setValue(telemetryItem, \"time\", toISOString(new Date()), null, isNotTruthy);\r\n // Common Schema 4.0\r\n setValue(telemetryItem, \"ver\", \"4.0\", null, isNullOrUndefined);\r\n if (_self.isInitialized()) {\r\n // Process the telemetry plugin chain\r\n _self.getProcessTelContext().processNext(telemetryItem);\r\n }\r\n else {\r\n // Queue events until all extensions are initialized\r\n _eventQueue.push(telemetryItem);\r\n }\r\n };\r\n _self.getProcessTelContext = function () {\r\n var extensions = _self._extensions;\r\n var thePlugins = extensions;\r\n // invoke any common telemetry processors before sending through pipeline\r\n if (!extensions || extensions.length === 0) {\r\n // Pass to Channel controller so data is sent to correct channel queues\r\n thePlugins = [_channelController];\r\n }\r\n return new ProcessTelemetryContext(thePlugins, _self.config, _self);\r\n };\r\n _self.getNotifyMgr = function () {\r\n if (!_notificationManager) {\r\n // Create Dummy notification manager\r\n _notificationManager = objCreateFn({\r\n addNotificationListener: function (listener) { },\r\n removeNotificationListener: function (listener) { },\r\n eventsSent: function (events) { },\r\n eventsDiscarded: function (events, reason) { },\r\n eventsSendRequest: function (sendReason, isAsync) { }\r\n });\r\n // For backward compatibility only\r\n _self[strNotificationManager] = _notificationManager;\r\n }\r\n return _notificationManager;\r\n };\r\n _self.getCookieMgr = function () {\r\n if (!_cookieManager) {\r\n _cookieManager = createCookieMgr(_self.config, _self.logger);\r\n }\r\n return _cookieManager;\r\n };\r\n _self.setCookieMgr = function (cookieMgr) {\r\n _cookieManager = cookieMgr;\r\n };\r\n _self.getPerfMgr = function () {\r\n if (!_perfManager) {\r\n if (_self.config && _self.config.enablePerfMgr && isFunction(_self.config.createPerfMgr)) {\r\n _perfManager = _self.config.createPerfMgr(_self, _self.getNotifyMgr());\r\n }\r\n }\r\n return _perfManager || getGblPerfMgr();\r\n };\r\n _self.setPerfMgr = function (perfMgr) {\r\n _perfManager = perfMgr;\r\n };\r\n _self.eventCnt = function () {\r\n return _eventQueue.length;\r\n };\r\n _self.releaseQueue = function () {\r\n if (_eventQueue.length > 0) {\r\n arrForEach(_eventQueue, function (event) {\r\n _self.getProcessTelContext().processNext(event);\r\n });\r\n _eventQueue = [];\r\n }\r\n };\r\n });\r\n }\r\n BaseCore.prototype.initialize = function (config, extensions, logger, notificationManager) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseCore.prototype.getTransmissionControls = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n BaseCore.prototype.track = function (telemetryItem) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseCore.prototype.getProcessTelContext = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n BaseCore.prototype.getNotifyMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Get the current cookie manager for this instance\r\n */\r\n BaseCore.prototype.getCookieMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Set the current cookie manager for this instance\r\n * @param cookieMgr - The manager, if set to null/undefined will cause the default to be created\r\n */\r\n BaseCore.prototype.setCookieMgr = function (cookieMgr) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseCore.prototype.getPerfMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n BaseCore.prototype.setPerfMgr = function (perfMgr) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseCore.prototype.eventCnt = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n BaseCore.prototype.releaseQueue = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return BaseCore;\r\n}());\r\nexport { BaseCore };\r\n//# sourceMappingURL=BaseCore.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * The EventsDiscardedReason enumeration contains a set of values that specify the reason for discarding an event.\r\n */\r\nexport var EventsDiscardedReason = {\r\n /**\r\n * Unknown.\r\n */\r\n Unknown: 0,\r\n /**\r\n * Status set to non-retryable.\r\n */\r\n NonRetryableStatus: 1,\r\n /**\r\n * The event is invalid.\r\n */\r\n InvalidEvent: 2,\r\n /**\r\n * The size of the event is too large.\r\n */\r\n SizeLimitExceeded: 3,\r\n /**\r\n * The server is not accepting events from this instrumentation key.\r\n */\r\n KillSwitch: 4,\r\n /**\r\n * The event queue is full.\r\n */\r\n QueueFull: 5\r\n};\r\n//# sourceMappingURL=EventsDiscardedReason.js.map","import dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrForEach, arrIndexOf } from \"./HelperFuncs\";\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n function NotificationManager(config) {\r\n this.listeners = [];\r\n var perfEvtsSendAll = !!(config || {}).perfEvtsSendAll;\r\n dynamicProto(NotificationManager, this, function (_self) {\r\n _self.addNotificationListener = function (listener) {\r\n _self.listeners.push(listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - AWTNotificationListener to remove.\r\n */\r\n _self.removeNotificationListener = function (listener) {\r\n var index = arrIndexOf(_self.listeners, listener);\r\n while (index > -1) {\r\n _self.listeners.splice(index, 1);\r\n index = arrIndexOf(_self.listeners, listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param {ITelemetryItem[]} events - The array of events that have been sent.\r\n */\r\n _self.eventsSent = function (events) {\r\n arrForEach(_self.listeners, function (listener) {\r\n if (listener && listener.eventsSent) {\r\n setTimeout(function () { return listener.eventsSent(events); }, 0);\r\n }\r\n });\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param {ITelemetryItem[]} events - The array of events that have been discarded by the SDK.\r\n * @param {number} reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n _self.eventsDiscarded = function (events, reason) {\r\n arrForEach(_self.listeners, function (listener) {\r\n if (listener && listener.eventsDiscarded) {\r\n setTimeout(function () { return listener.eventsDiscarded(events, reason); }, 0);\r\n }\r\n });\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param {number} sendReason - The reason why the event batch is being sent.\r\n * @param {boolean} isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n _self.eventsSendRequest = function (sendReason, isAsync) {\r\n arrForEach(_self.listeners, function (listener) {\r\n if (listener && listener.eventsSendRequest) {\r\n if (isAsync) {\r\n setTimeout(function () { return listener.eventsSendRequest(sendReason, isAsync); }, 0);\r\n }\r\n else {\r\n try {\r\n listener.eventsSendRequest(sendReason, isAsync);\r\n }\r\n catch (e) {\r\n // Catch errors to ensure we don't block sending the requests\r\n }\r\n }\r\n }\r\n });\r\n };\r\n _self.perfEvent = function (perfEvent) {\r\n if (perfEvent) {\r\n // Send all events or only parent events\r\n if (perfEvtsSendAll || !perfEvent.isChildEvt()) {\r\n arrForEach(_self.listeners, function (listener) {\r\n if (listener && listener.perfEvent) {\r\n if (perfEvent.isAsync) {\r\n setTimeout(function () { return listener.perfEvent(perfEvent); }, 0);\r\n }\r\n else {\r\n try {\r\n listener.perfEvent(perfEvent);\r\n }\r\n catch (e) {\r\n // Catch errors to ensure we don't block sending the requests\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n };\r\n });\r\n }\r\n /**\r\n * Adds a notification listener.\r\n * @param {INotificationListener} listener - The notification listener to be added.\r\n */\r\n NotificationManager.prototype.addNotificationListener = function (listener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - AWTNotificationListener to remove.\r\n */\r\n NotificationManager.prototype.removeNotificationListener = function (listener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param {ITelemetryItem[]} events - The array of events that have been sent.\r\n */\r\n NotificationManager.prototype.eventsSent = function (events) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param {ITelemetryItem[]} events - The array of events that have been discarded by the SDK.\r\n * @param {number} reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n NotificationManager.prototype.eventsDiscarded = function (events, reason) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param {number} sendReason - The reason why the event batch is being sent.\r\n * @param {boolean} isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n NotificationManager.prototype.eventsSendRequest = function (sendReason, isAsync) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n//# sourceMappingURL=NotificationManager.js.map","import { __extends } from \"tslib\";\r\nimport { BaseCore } from \"./BaseCore\";\r\nimport { EventsDiscardedReason } from \"../JavaScriptSDK.Enums/EventsDiscardedReason\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { _InternalLogMessage, DiagnosticLogger } from \"./DiagnosticLogger\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrForEach, isNullOrUndefined, toISOString, throwError } from \"./HelperFuncs\";\r\n\"use strict\";\r\nvar AppInsightsCore = /** @class */ (function (_super) {\r\n __extends(AppInsightsCore, _super);\r\n function AppInsightsCore() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Internal log poller\r\n */\r\n var _internalLogPoller = 0;\r\n dynamicProto(AppInsightsCore, _this, function (_self, _base) {\r\n _self.initialize = function (config, extensions, logger, notificationManager) {\r\n _base.initialize(config, extensions, logger || new DiagnosticLogger(config), notificationManager || new NotificationManager(config));\r\n };\r\n _self.track = function (telemetryItem) {\r\n doPerf(_self.getPerfMgr(), function () { return \"AppInsightsCore:track\"; }, function () {\r\n if (telemetryItem === null) {\r\n _notifyInvalidEvent(telemetryItem);\r\n // throw error\r\n throwError(\"Invalid telemetry item\");\r\n }\r\n // do basic validation before sending it through the pipeline\r\n _validateTelemetryItem(telemetryItem);\r\n _base.track(telemetryItem);\r\n }, function () { return ({ item: telemetryItem }); }, !(telemetryItem.sync));\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param {INotificationListener} listener - An INotificationListener object.\r\n */\r\n _self.addNotificationListener = function (listener) {\r\n var manager = _self.getNotifyMgr();\r\n if (manager) {\r\n manager.addNotificationListener(listener);\r\n }\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - INotificationListener to remove.\r\n */\r\n _self.removeNotificationListener = function (listener) {\r\n var manager = _self.getNotifyMgr();\r\n if (manager) {\r\n manager.removeNotificationListener(listener);\r\n }\r\n };\r\n /**\r\n * Periodically check logger.queue for log messages to be flushed\r\n */\r\n _self.pollInternalLogs = function (eventName) {\r\n var interval = _self.config.diagnosticLogInterval;\r\n if (!interval || !(interval > 0)) {\r\n interval = 10000;\r\n }\r\n if (_internalLogPoller) {\r\n _self.stopPollingInternalLogs();\r\n }\r\n _internalLogPoller = setInterval(function () {\r\n var queue = _self.logger ? _self.logger.queue : [];\r\n arrForEach(queue, function (logMessage) {\r\n var item = {\r\n name: eventName ? eventName : \"InternalMessageId: \" + logMessage.messageId,\r\n iKey: _self.config.instrumentationKey,\r\n time: toISOString(new Date()),\r\n baseType: _InternalLogMessage.dataType,\r\n baseData: { message: logMessage.message }\r\n };\r\n _self.track(item);\r\n });\r\n queue.length = 0;\r\n }, interval);\r\n return _internalLogPoller;\r\n };\r\n /**\r\n * Stop polling log messages from logger.queue\r\n */\r\n _self.stopPollingInternalLogs = function () {\r\n if (!_internalLogPoller)\r\n return;\r\n clearInterval(_internalLogPoller);\r\n _internalLogPoller = 0;\r\n };\r\n function _validateTelemetryItem(telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem.name)) {\r\n _notifyInvalidEvent(telemetryItem);\r\n throw Error(\"telemetry name required\");\r\n }\r\n }\r\n function _notifyInvalidEvent(telemetryItem) {\r\n var manager = _self.getNotifyMgr();\r\n if (manager) {\r\n manager.eventsDiscarded([telemetryItem], EventsDiscardedReason.InvalidEvent);\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n AppInsightsCore.prototype.initialize = function (config, extensions, logger, notificationManager) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsCore.prototype.track = function (telemetryItem) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param {INotificationListener} listener - An INotificationListener object.\r\n */\r\n AppInsightsCore.prototype.addNotificationListener = function (listener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - INotificationListener to remove.\r\n */\r\n AppInsightsCore.prototype.removeNotificationListener = function (listener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Periodically check logger.queue for\r\n */\r\n AppInsightsCore.prototype.pollInternalLogs = function (eventName) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n /**\r\n * Periodically check logger.queue for\r\n */\r\n AppInsightsCore.prototype.stopPollingInternalLogs = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return AppInsightsCore;\r\n}(BaseCore));\r\nexport { AppInsightsCore };\r\n//# sourceMappingURL=AppInsightsCore.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\r\nimport { dateNow } from \"./HelperFuncs\";\r\nvar UInt32Mask = 0x100000000;\r\nvar MaxUInt32 = 0xffffffff;\r\n// MWC based Random generator (for IE)\r\nvar _mwcSeeded = false;\r\nvar _mwcW = 123456789;\r\nvar _mwcZ = 987654321;\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue) {\r\n if (seedValue < 0) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n seedValue >>>= 0;\r\n }\r\n _mwcW = (123456789 + seedValue) & MaxUInt32;\r\n _mwcZ = (987654321 - seedValue) & MaxUInt32;\r\n _mwcSeeded = true;\r\n}\r\nfunction _autoSeedMwc() {\r\n // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n // and bitwise XOR with the current milliseconds\r\n try {\r\n var now = dateNow() & 0x7fffffff;\r\n _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);\r\n }\r\n catch (e) {\r\n // Don't crash if something goes wrong\r\n }\r\n}\r\n/**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue\r\n */\r\nexport function randomValue(maxValue) {\r\n if (maxValue > 0) {\r\n return Math.floor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function random32(signed) {\r\n var value;\r\n var c = getCrypto() || getMsCrypto();\r\n if (c && c.getRandomValues) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n }\r\n else if (isIE()) {\r\n // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n if (!_mwcSeeded) {\r\n // Set the seed for the Mwc algorithm\r\n _autoSeedMwc();\r\n }\r\n // Don't use Math.random for IE\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = mwcRandom32() & MaxUInt32;\r\n }\r\n else {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = Math.floor((UInt32Mask * Math.random()) | 0);\r\n }\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\r\nexport function mwcRandomSeed(value) {\r\n if (!value) {\r\n _autoSeedMwc();\r\n }\r\n else {\r\n _mwcSeed(value);\r\n }\r\n}\r\n/**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function mwcRandom32(signed) {\r\n _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n//# sourceMappingURL=RandomHelper.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { objCreateFn, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { _gblCookieMgr } from \"./CookieMgr\";\r\nimport { getWindow, getDocument, getPerformance, isIE } from \"./EnvUtils\";\r\nimport { arrForEach, arrIndexOf, arrMap, arrReduce, attachEvent, dateNow, detachEvent, hasOwnProperty, isArray, isBoolean, isDate, isError, isFunction, isNullOrUndefined, isNumber, isObject, isString, isTypeof, isUndefined, objDefineAccessors, objKeys, strTrim, toISOString } from \"./HelperFuncs\";\r\nimport { randomValue, random32, mwcRandomSeed, mwcRandom32 } from \"./RandomHelper\";\r\nvar strVisibilityChangeEvt = \"visibilitychange\";\r\nvar strPageHide = \"pagehide\";\r\nvar strPageShow = \"pageshow\";\r\nvar _cookieMgrs = null;\r\nvar _canUseCookies; // legacy supported config\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback) {\r\n var result = false;\r\n var w = getWindow();\r\n if (w) {\r\n result = attachEvent(w, eventName, callback);\r\n result = attachEvent(w[\"body\"], eventName, callback) || result;\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n result = attachEvent(doc, eventName, callback) || result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events An string array of event names to bind the listener to\r\n * @param listener The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addEventListeners(events, listener, excludeEvents) {\r\n var added = false;\r\n if (listener && events && isArray(events)) {\r\n var excluded_1 = [];\r\n arrForEach(events, function (name) {\r\n if (isString(name)) {\r\n if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\r\n added = addEventHandler(name, listener) || added;\r\n }\r\n else {\r\n excluded_1.push(name);\r\n }\r\n }\r\n });\r\n if (!added && excluded_1.length > 0) {\r\n // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\r\n added = addEventListeners(excluded_1, listener);\r\n }\r\n }\r\n return added;\r\n}\r\n/**\r\n * Listen to the 'beforeunload', 'unload' and 'pagehide' events which indicates a page unload is occurring,\r\n * this does NOT listen to the 'visibilitychange' event as while it does indicate that the page is being hidden\r\n * it does not *necessarily* mean that the page is being completely unloaded, it can mean that the user is\r\n * just navigating to a different Tab and may come back (without unloading the page). As such you may also\r\n * need to listen to the 'addPageHideEventListener' and 'addPageShowEventListener' events.\r\n * @param listener - The event callback to call when a page unload event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked, unless no other events can be.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageUnloadEventListener(listener, excludeEvents) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n return addEventListeners([\"beforeunload\", \"unload\", \"pagehide\"], listener, excludeEvents);\r\n}\r\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events\r\n * @param listener - The event callback to call when a page hide event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * Suggestion: pass as true if you are also calling addPageUnloadEventListener as that also hooks pagehide\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageHideEventListener(listener, excludeEvents) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"hidden\") {\r\n listener(evt);\r\n }\r\n }\r\n var pageUnloadAdded = false;\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strPageHide) === -1) {\r\n pageUnloadAdded = addEventHandler(strPageHide, listener);\r\n }\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageUnloadAdded = addEventHandler(strVisibilityChangeEvt, _handlePageVisibility) || pageUnloadAdded;\r\n }\r\n if (!pageUnloadAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageUnloadAdded = addPageHideEventListener(listener);\r\n }\r\n return pageUnloadAdded;\r\n}\r\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events\r\n * @param listener - The event callback to call when a page is show event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageShowEventListener(listener, excludeEvents) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"visible\") {\r\n listener(evt);\r\n }\r\n }\r\n var pageShowAdded = false;\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strPageShow) === -1) {\r\n pageShowAdded = addEventHandler(strPageShow, listener);\r\n }\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageShowAdded = addEventHandler(strVisibilityChangeEvt, _handlePageVisibility) || pageShowAdded;\r\n }\r\n if (!pageShowAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageShowAdded = addPageShowEventListener(listener);\r\n }\r\n return pageShowAdded;\r\n}\r\nexport function newGuid() {\r\n function randomHexDigit() {\r\n return randomValue(15); // Get a random value from 0..15\r\n }\r\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(GuidRegex, function (c) {\r\n var r = (randomHexDigit() | 0), v = (c === \"x\" ? r : r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n}\r\n/**\r\n * Return the current value of the Performance Api now() function (if available) and fallback to dateNow() if it is unavailable (IE9 or less)\r\n * https://caniuse.com/#search=performance.now\r\n */\r\nexport function perfNow() {\r\n var perf = getPerformance();\r\n if (perf && perf.now) {\r\n return perf.now();\r\n }\r\n return dateNow();\r\n}\r\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\nexport function newId(maxLength) {\r\n if (maxLength === void 0) { maxLength = 22; }\r\n var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Start with an initial random number, consuming the value in reverse byte order\r\n var number = random32() >>> 0; // Make sure it's a +ve number\r\n var chars = 0;\r\n var result = \"\";\r\n while (result.length < maxLength) {\r\n chars++;\r\n result += base64chars.charAt(number & 0x3F);\r\n number >>>= 6; // Zero fill with right shift\r\n if (chars === 5) {\r\n // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n // So add on another 30 bits and make sure it's +ve\r\n number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var len = value.length;\r\n var start = len - search.length;\r\n return value.substring(start >= 0 ? start : 0, len) === search;\r\n }\r\n return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n var oct = \"\", tmp;\r\n for (var a = 0; a < 4; a++) {\r\n tmp = random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n return oct.substr(0, 8) + oct.substr(9, 4) + \"4\" + oct.substr(13, 3) + clockSequenceHi + oct.substr(16, 3) + oct.substr(19, 12);\r\n}\r\n/**\r\n * Provides a collection of utility functions, included for backward compatibility with previous releases.\r\n * @deprecated Marking this instance as deprecated in favor of direct usage of the helper functions\r\n * as direct usage provides better tree-shaking and minification by avoiding the inclusion of the unused items\r\n * in your resulting code.\r\n */\r\nexport var CoreUtils = {\r\n _canUseCookies: undefined,\r\n isTypeof: isTypeof,\r\n isUndefined: isUndefined,\r\n isNullOrUndefined: isNullOrUndefined,\r\n hasOwnProperty: hasOwnProperty,\r\n isFunction: isFunction,\r\n isObject: isObject,\r\n isDate: isDate,\r\n isArray: isArray,\r\n isError: isError,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isBoolean: isBoolean,\r\n toISOString: toISOString,\r\n arrForEach: arrForEach,\r\n arrIndexOf: arrIndexOf,\r\n arrMap: arrMap,\r\n arrReduce: arrReduce,\r\n strTrim: strTrim,\r\n objCreate: objCreateFn,\r\n objKeys: objKeys,\r\n objDefineAccessors: objDefineAccessors,\r\n addEventHandler: addEventHandler,\r\n dateNow: dateNow,\r\n isIE: isIE,\r\n disableCookies: disableCookies,\r\n newGuid: newGuid,\r\n perfNow: perfNow,\r\n newId: newId,\r\n randomValue: randomValue,\r\n random32: random32,\r\n mwcRandomSeed: mwcRandomSeed,\r\n mwcRandom32: mwcRandom32,\r\n generateW3CId: generateW3CId\r\n};\r\nvar GuidRegex = /[xy]/g;\r\nexport var EventHelper = {\r\n Attach: attachEvent,\r\n AttachEvent: attachEvent,\r\n Detach: detachEvent,\r\n DetachEvent: detachEvent\r\n};\r\n/**\r\n * Helper to support backward compatibility for users that use the legacy cookie handling functions and the use the internal\r\n * CoreUtils._canUseCookies global flag to enable/disable cookies usage.\r\n * Note: This has the following deliberate side-effects\r\n * - Creates the global (legacy) cookie manager if it does not already exist\r\n * - Attempts to add \"listeners\" to the CoreUtils._canUseCookies property to support the legacy usage\r\n * @param config\r\n * @param logger\r\n * @returns\r\n */\r\nexport function _legacyCookieMgr(config, logger) {\r\n var cookieMgr = _gblCookieMgr(config, logger);\r\n var legacyCanUseCookies = CoreUtils._canUseCookies;\r\n if (_cookieMgrs === null) {\r\n _cookieMgrs = [];\r\n _canUseCookies = legacyCanUseCookies;\r\n // Dynamically create get/set property accessors for backward compatibility for enabling / disabling cookies\r\n // this WILL NOT work for ES3 browsers (< IE8)\r\n objDefineAccessors(CoreUtils, \"_canUseCookies\", function () {\r\n return _canUseCookies;\r\n }, function (value) {\r\n _canUseCookies = value;\r\n arrForEach(_cookieMgrs, function (mgr) {\r\n mgr.setEnabled(value);\r\n });\r\n });\r\n }\r\n if (arrIndexOf(_cookieMgrs, cookieMgr) === -1) {\r\n _cookieMgrs.push(cookieMgr);\r\n }\r\n if (isBoolean(legacyCanUseCookies)) {\r\n cookieMgr.setEnabled(legacyCanUseCookies);\r\n }\r\n if (isBoolean(_canUseCookies)) {\r\n cookieMgr.setEnabled(_canUseCookies);\r\n }\r\n return cookieMgr;\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().disable()\r\n * Force the SDK not to store and read any data from cookies.\r\n */\r\nexport function disableCookies() {\r\n _legacyCookieMgr().setEnabled(false);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().isEnabled()\r\n * Helper method to tell if document.cookie object is available and whether it can be used.\r\n */\r\nexport function canUseCookies(logger) {\r\n return _legacyCookieMgr(null, logger).isEnabled();\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().get()\r\n * helper method to access userId and sessionId cookie\r\n */\r\nexport function getCookie(logger, name) {\r\n return _legacyCookieMgr(null, logger).get(name);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().set()\r\n * helper method to set userId and sessionId cookie\r\n */\r\nexport function setCookie(logger, name, value, domain) {\r\n _legacyCookieMgr(null, logger).set(name, value, null, domain);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().del()\r\n * Deletes a cookie by setting it's expiration time in the past.\r\n * @param name - The name of the cookie to delete.\r\n */\r\nexport function deleteCookie(logger, name) {\r\n return _legacyCookieMgr(null, logger).del(name);\r\n}\r\n//# sourceMappingURL=CoreUtils.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the\r\nexport { Util, CorrelationIdHelper, DateTimeUtils, dateTimeUtilsNow, dateTimeUtilsDuration, UrlHelper, isInternalApplicationInsightsEndpoint } from \"./Util\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, strNotSpecified } from \"./Constants\";\r\nexport { Data as AIData } from \"./Interfaces/Contracts/Generated/Data\";\r\nexport { Base as AIBase } from \"./Interfaces/Contracts/Generated/Base\";\r\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\r\nexport { Event } from \"./Telemetry/Event\";\r\nexport { Exception } from \"./Telemetry/Exception\";\r\nexport { Metric } from \"./Telemetry/Metric\";\r\nexport { PageView } from \"./Telemetry/PageView\";\r\nexport { PageViewData } from \"./Interfaces/Contracts/Generated/PageViewData\";\r\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\r\nexport { Trace } from \"./Telemetry/Trace\";\r\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\r\nexport { Data } from \"./Telemetry/Common/Data\";\r\nexport { SeverityLevel } from \"./Interfaces/Contracts/Generated/SeverityLevel\";\r\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\r\nexport { ContextTagKeys } from \"./Interfaces/Contracts/Generated/ContextTagKeys\";\r\nexport { DataSanitizer, dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n//# sourceMappingURL=applicationinsights-common.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { LoggingSeverity, _InternalMessageId, hasJSON, getJSON, objForEachKey, isObject, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\r\n var origLength = key.length;\r\n var field = dataSanitizeKey(logger, key);\r\n // validation truncated the length. We need to add uniqueness\r\n if (field.length !== origLength) {\r\n var i = 0;\r\n var uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = field.substring(0, 150 /* MAX_NAME_LENGTH */ - 3) + dsPadNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n}\r\nexport function dataSanitizeKey(logger, name) {\r\n var nameTrunc;\r\n if (name) {\r\n // Remove any leading or trailing whitespace\r\n name = strTrim(name.toString());\r\n // truncate the string to 150 chars\r\n if (name.length > 150 /* MAX_NAME_LENGTH */) {\r\n nameTrunc = name.substring(0, 150 /* MAX_NAME_LENGTH */);\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.NameTooLong, \"name is too long. It has been truncated to \" + 150 /* MAX_NAME_LENGTH */ + \" characters.\", { name: name }, true);\r\n }\r\n }\r\n return nameTrunc || name;\r\n}\r\nexport function dataSanitizeString(logger, value, maxLength) {\r\n if (maxLength === void 0) { maxLength = 1024 /* MAX_STRING_LENGTH */; }\r\n var valueTrunc;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : 1024 /* MAX_STRING_LENGTH */; // in case default parameters dont work\r\n value = strTrim(value);\r\n if (value.toString().length > maxLength) {\r\n valueTrunc = value.toString().substring(0, maxLength);\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StringValueTooLong, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", { value: value }, true);\r\n }\r\n }\r\n return valueTrunc || value;\r\n}\r\nexport function dataSanitizeUrl(logger, url) {\r\n return dataSanitizeInput(logger, url, 2048 /* MAX_URL_LENGTH */, _InternalMessageId.UrlTooLong);\r\n}\r\nexport function dataSanitizeMessage(logger, message) {\r\n var messageTrunc;\r\n if (message) {\r\n if (message.length > 32768 /* MAX_MESSAGE_LENGTH */) {\r\n messageTrunc = message.substring(0, 32768 /* MAX_MESSAGE_LENGTH */);\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.MessageTruncated, \"message is too long, it has been truncated to \" + 32768 /* MAX_MESSAGE_LENGTH */ + \" characters.\", { message: message }, true);\r\n }\r\n }\r\n return messageTrunc || message;\r\n}\r\nexport function dataSanitizeException(logger, exception) {\r\n var exceptionTrunc;\r\n if (exception) {\r\n // Make surte its a string\r\n var value = \"\" + exception;\r\n if (value.length > 32768 /* MAX_EXCEPTION_LENGTH */) {\r\n exceptionTrunc = value.substring(0, 32768 /* MAX_EXCEPTION_LENGTH */);\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ExceptionTruncated, \"exception is too long, it has been truncated to \" + 32768 /* MAX_EXCEPTION_LENGTH */ + \" characters.\", { exception: exception }, true);\r\n }\r\n }\r\n return exceptionTrunc || exception;\r\n}\r\nexport function dataSanitizeProperties(logger, properties) {\r\n if (properties) {\r\n var tempProps_1 = {};\r\n objForEachKey(properties, function (prop, value) {\r\n if (isObject(value) && hasJSON()) {\r\n // Stringify any part C properties\r\n try {\r\n value = getJSON().stringify(value);\r\n }\r\n catch (e) {\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotSerializeObjectNonSerializable, \"custom property is not valid\", { exception: e }, true);\r\n }\r\n }\r\n value = dataSanitizeString(logger, value, 8192 /* MAX_PROPERTY_LENGTH */);\r\n prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\r\n tempProps_1[prop] = value;\r\n });\r\n properties = tempProps_1;\r\n }\r\n return properties;\r\n}\r\nexport function dataSanitizeMeasurements(logger, measurements) {\r\n if (measurements) {\r\n var tempMeasurements_1 = {};\r\n objForEachKey(measurements, function (measure, value) {\r\n measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\r\n tempMeasurements_1[measure] = value;\r\n });\r\n measurements = tempMeasurements_1;\r\n }\r\n return measurements;\r\n}\r\nexport function dataSanitizeId(logger, id) {\r\n return id ? dataSanitizeInput(logger, id, 128 /* MAX_ID_LENGTH */, _InternalMessageId.IdTooLong).toString() : id;\r\n}\r\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\r\n var inputTrunc;\r\n if (input) {\r\n input = strTrim(input);\r\n if (input.length > maxLength) {\r\n inputTrunc = input.substring(0, maxLength);\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", { data: input }, true);\r\n }\r\n }\r\n return inputTrunc || input;\r\n}\r\nexport function dsPadNumber(num) {\r\n var s = \"00\" + num;\r\n return s.substr(s.length - 3);\r\n}\r\n/**\r\n * Provides the DataSanitizer functions within the previous namespace.\r\n */\r\nexport var DataSanitizer = {\r\n MAX_NAME_LENGTH: 150 /* MAX_NAME_LENGTH */,\r\n MAX_ID_LENGTH: 128 /* MAX_ID_LENGTH */,\r\n MAX_PROPERTY_LENGTH: 8192 /* MAX_PROPERTY_LENGTH */,\r\n MAX_STRING_LENGTH: 1024 /* MAX_STRING_LENGTH */,\r\n MAX_URL_LENGTH: 2048 /* MAX_URL_LENGTH */,\r\n MAX_MESSAGE_LENGTH: 32768 /* MAX_MESSAGE_LENGTH */,\r\n MAX_EXCEPTION_LENGTH: 32768 /* MAX_EXCEPTION_LENGTH */,\r\n sanitizeKeyAndAddUniqueness: dataSanitizeKeyAndAddUniqueness,\r\n sanitizeKey: dataSanitizeKey,\r\n sanitizeString: dataSanitizeString,\r\n sanitizeUrl: dataSanitizeUrl,\r\n sanitizeMessage: dataSanitizeMessage,\r\n sanitizeException: dataSanitizeException,\r\n sanitizeProperties: dataSanitizeProperties,\r\n sanitizeMeasurements: dataSanitizeMeasurements,\r\n sanitizeId: dataSanitizeId,\r\n sanitizeInput: dataSanitizeInput,\r\n padNumber: dsPadNumber,\r\n trim: strTrim\r\n};\r\n//# sourceMappingURL=DataSanitizer.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Type of the metric data measurement.\r\n */\r\nexport var DataPointType;\r\n(function (DataPointType) {\r\n DataPointType[DataPointType[\"Measurement\"] = 0] = \"Measurement\";\r\n DataPointType[DataPointType[\"Aggregation\"] = 1] = \"Aggregation\";\r\n})(DataPointType || (DataPointType = {}));\r\n//# sourceMappingURL=DataPointType.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will\r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\nexport var strNotSpecified = \"not_specified\";\r\nexport var strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { objForEachKey, isNullOrUndefined, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified, strIkey } from \"./Constants\";\r\nvar TelemetryItemCreator = /** @class */ (function () {\r\n function TelemetryItemCreator() {\r\n }\r\n /**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item domain specific properties; part B\r\n * @param baseType telemetry item type. ie PageViewData\r\n * @param envelopeName name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties user defined custom properties; part C\r\n * @param systemProperties system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\n TelemetryItemCreator.create = function (item, baseType, envelopeName, logger, customProperties, systemProperties) {\r\n envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;\r\n if (isNullOrUndefined(item) ||\r\n isNullOrUndefined(baseType) ||\r\n isNullOrUndefined(envelopeName)) {\r\n throw Error(\"Input doesn't contain all required fields\");\r\n }\r\n var iKey = \"\";\r\n if (item[strIkey]) {\r\n iKey = item[strIkey];\r\n delete item[strIkey];\r\n }\r\n var telemetryItem = {\r\n name: envelopeName,\r\n time: toISOString(new Date()),\r\n iKey: iKey,\r\n ext: systemProperties ? systemProperties : {},\r\n tags: [],\r\n data: {},\r\n baseType: baseType,\r\n baseData: item // Part B\r\n };\r\n // Part C\r\n if (!isNullOrUndefined(customProperties)) {\r\n objForEachKey(customProperties, function (prop, value) {\r\n telemetryItem.data[prop] = value;\r\n });\r\n }\r\n return telemetryItem;\r\n };\r\n return TelemetryItemCreator;\r\n}());\r\nexport { TelemetryItemCreator };\r\n//# sourceMappingURL=TelemetryItemCreator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Instances of Event represent structured event records that can be grouped and searched by their properties. Event data item also creates a metric of event count by name.\r\n */\r\nvar EventData = /** @class */ (function () {\r\n function EventData() {\r\n /**\r\n * Schema version\r\n */\r\n this.ver = 2;\r\n /**\r\n * Collection of custom properties.\r\n */\r\n this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n this.measurements = {};\r\n }\r\n return EventData;\r\n}());\r\nexport { EventData };\r\n//# sourceMappingURL=EventData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { EventData } from \"../Interfaces/Contracts/Generated/EventData\";\r\nimport { dataSanitizeString, dataSanitizeProperties, dataSanitizeMeasurements } from \"./Common/DataSanitizer\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar Event = /** @class */ (function (_super) {\r\n __extends(Event, _super);\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n function Event(logger, name, properties, measurements) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n name: 1 /* Required */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */\r\n };\r\n _this.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n return _this;\r\n }\r\n Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n Event.dataType = \"EventData\";\r\n return Event;\r\n}(EventData));\r\nexport { Event };\r\n//# sourceMappingURL=Event.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { MessageData } from \"../Interfaces/Contracts/Generated/MessageData\";\r\nimport { dataSanitizeMessage, dataSanitizeProperties, dataSanitizeMeasurements } from \"./Common/DataSanitizer\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar Trace = /** @class */ (function (_super) {\r\n __extends(Trace, _super);\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n function Trace(logger, message, severityLevel, properties, measurements) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n message: 1 /* Required */,\r\n severityLevel: 0 /* Default */,\r\n properties: 0 /* Default */\r\n };\r\n message = message || strNotSpecified;\r\n _this.message = dataSanitizeMessage(logger, message);\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _this.severityLevel = severityLevel;\r\n }\r\n return _this;\r\n }\r\n Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n Trace.dataType = \"MessageData\";\r\n return Trace;\r\n}(MessageData));\r\nexport { Trace };\r\n//# sourceMappingURL=Trace.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Instances of Message represent printf-like trace statements that are text-searched. Log4Net, NLog and other text-based log file entries are translated into intances of this type. The message does not have measurements.\r\n */\r\nvar MessageData = /** @class */ (function () {\r\n function MessageData() {\r\n /**\r\n * Schema version\r\n */\r\n this.ver = 2;\r\n /**\r\n * Collection of custom properties.\r\n */\r\n this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n this.measurements = {};\r\n }\r\n return MessageData;\r\n}());\r\nexport { MessageData };\r\n//# sourceMappingURL=MessageData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * An instance of the Metric item is a list of measurements (single data points) and/or aggregations.\r\n */\r\nvar MetricData = /** @class */ (function () {\r\n function MetricData() {\r\n /**\r\n * Schema version\r\n */\r\n this.ver = 2;\r\n /**\r\n * List of metrics. Only one metric in the list is currently supported by Application Insights storage. If multiple data points were sent only the first one will be used.\r\n */\r\n this.metrics = [];\r\n /**\r\n * Collection of custom properties.\r\n */\r\n this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n this.measurements = {};\r\n }\r\n return MetricData;\r\n}());\r\nexport { MetricData };\r\n//# sourceMappingURL=MetricData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { DataPointType } from \"./DataPointType\";\r\n/**\r\n * Metric data single measurement.\r\n */\r\nvar DataPoint = /** @class */ (function () {\r\n function DataPoint() {\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n this.kind = DataPointType.Measurement;\r\n }\r\n return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { DataPoint as AIDataPoint } from \"../../Interfaces/Contracts/Generated/DataPoint\";\r\nvar DataPoint = /** @class */ (function (_super) {\r\n __extends(DataPoint, _super);\r\n function DataPoint() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n _this.aiDataContract = {\r\n name: 1 /* Required */,\r\n kind: 0 /* Default */,\r\n value: 1 /* Required */,\r\n count: 0 /* Default */,\r\n min: 0 /* Default */,\r\n max: 0 /* Default */,\r\n stdDev: 0 /* Default */\r\n };\r\n return _this;\r\n }\r\n return DataPoint;\r\n}(AIDataPoint));\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { MetricData } from \"../Interfaces/Contracts/Generated/MetricData\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nimport { DataPoint } from \"./Common/DataPoint\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar Metric = /** @class */ (function (_super) {\r\n __extends(Metric, _super);\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n function Metric(logger, name, value, count, min, max, stdDev, properties, measurements) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n metrics: 1 /* Required */,\r\n properties: 0 /* Default */\r\n };\r\n var dataPoint = new DataPoint();\r\n dataPoint.count = count > 0 ? count : undefined;\r\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n dataPoint.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n dataPoint.value = value;\r\n dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;\r\n _this.metrics = [dataPoint];\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n return _this;\r\n }\r\n Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n Metric.dataType = \"MetricData\";\r\n return Metric;\r\n}(MetricData));\r\nexport { Metric };\r\n//# sourceMappingURL=Metric.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { EventData } from \"./EventData\";\r\n/**\r\n * An instance of PageView represents a generic action on a page like a button click. It is also the base type for PageView.\r\n */\r\nvar PageViewData = /** @class */ (function (_super) {\r\n __extends(PageViewData, _super);\r\n function PageViewData() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Schema version\r\n */\r\n _this.ver = 2;\r\n /**\r\n * Collection of custom properties.\r\n */\r\n _this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n _this.measurements = {};\r\n return _this;\r\n }\r\n return PageViewData;\r\n}(EventData));\r\nexport { PageViewData };\r\n//# sourceMappingURL=PageViewData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\r\nexport function stringToBoolOrDefault(str, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n if (str === undefined || str === null) {\r\n return defaultValue;\r\n }\r\n return str.toString().toLowerCase() === \"true\";\r\n}\r\n/**\r\n * Convert ms to c# time span format\r\n */\r\nexport function msToTimeSpan(totalms) {\r\n if (isNaN(totalms) || totalms < 0) {\r\n totalms = 0;\r\n }\r\n totalms = Math.round(totalms);\r\n var ms = \"\" + totalms % 1000;\r\n var sec = \"\" + Math.floor(totalms / 1000) % 60;\r\n var min = \"\" + Math.floor(totalms / (1000 * 60)) % 60;\r\n var hour = \"\" + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n var days = Math.floor(totalms / (1000 * 60 * 60 * 24));\r\n ms = ms.length === 1 ? \"00\" + ms : ms.length === 2 ? \"0\" + ms : ms;\r\n sec = sec.length < 2 ? \"0\" + sec : sec;\r\n min = min.length < 2 ? \"0\" + min : min;\r\n hour = hour.length < 2 ? \"0\" + hour : hour;\r\n return (days > 0 ? days + \".\" : \"\") + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n}\r\nexport function getExtensionByName(extensions, identifier) {\r\n var extension = null;\r\n arrForEach(extensions, function (value) {\r\n if (value.identifier === identifier) {\r\n extension = value;\r\n return -1;\r\n }\r\n });\r\n return extension;\r\n}\r\nexport function isCrossOriginError(message, url, lineNumber, columnNumber, error) {\r\n return !error && isString(message) && (message === \"Script error.\" || message === \"Script error\");\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { PageViewData } from \"../Interfaces/Contracts/Generated/PageViewData\";\r\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar PageView = /** @class */ (function (_super) {\r\n __extends(PageView, _super);\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageView(logger, name, url, durationMs, properties, measurements, id) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n name: 0 /* Default */,\r\n url: 0 /* Default */,\r\n duration: 0 /* Default */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */,\r\n id: 0 /* Default */\r\n };\r\n _this.id = dataSanitizeId(logger, id);\r\n _this.url = dataSanitizeUrl(logger, url);\r\n _this.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n if (!isNaN(durationMs)) {\r\n _this.duration = msToTimeSpan(durationMs);\r\n }\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n return _this;\r\n }\r\n PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n PageView.dataType = \"PageviewData\";\r\n return PageView;\r\n}(PageViewData));\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { PageViewPerfData } from \"../Interfaces/Contracts/Generated/PageViewPerfData\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar PageViewPerformance = /** @class */ (function (_super) {\r\n __extends(PageViewPerformance, _super);\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n name: 0 /* Default */,\r\n url: 0 /* Default */,\r\n duration: 0 /* Default */,\r\n perfTotal: 0 /* Default */,\r\n networkConnect: 0 /* Default */,\r\n sentRequest: 0 /* Default */,\r\n receivedResponse: 0 /* Default */,\r\n domProcessing: 0 /* Default */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */\r\n };\r\n _this.url = dataSanitizeUrl(logger, url);\r\n _this.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n if (cs4BaseData) {\r\n _this.domProcessing = cs4BaseData.domProcessing;\r\n _this.duration = cs4BaseData.duration;\r\n _this.networkConnect = cs4BaseData.networkConnect;\r\n _this.perfTotal = cs4BaseData.perfTotal;\r\n _this.receivedResponse = cs4BaseData.receivedResponse;\r\n _this.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n return _this;\r\n }\r\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n return PageViewPerformance;\r\n}(PageViewPerfData));\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { PageViewData } from \"./PageViewData\";\r\n/**\r\n * An instance of PageViewPerf represents: a page view with no performance data, a page view with performance data, or just the performance data of an earlier page request.\r\n */\r\nvar PageViewPerfData = /** @class */ (function (_super) {\r\n __extends(PageViewPerfData, _super);\r\n function PageViewPerfData() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Schema version\r\n */\r\n _this.ver = 2;\r\n /**\r\n * Collection of custom properties.\r\n */\r\n _this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n _this.measurements = {};\r\n return _this;\r\n }\r\n return PageViewPerfData;\r\n}(PageViewData));\r\nexport { PageViewPerfData };\r\n//# sourceMappingURL=PageViewPerfData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Stack frame information.\r\n */\r\nvar StackFrame = /** @class */ (function () {\r\n function StackFrame() {\r\n }\r\n return StackFrame;\r\n}());\r\nexport { StackFrame };\r\n//# sourceMappingURL=StackFrame.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Exception details of the exception in a chain.\r\n */\r\nvar ExceptionDetails = /** @class */ (function () {\r\n function ExceptionDetails() {\r\n /**\r\n * Indicates if full exception stack is provided in the exception. The stack may be trimmed, such as in the case of a StackOverflow exception.\r\n */\r\n this.hasFullStack = true;\r\n /**\r\n * List of stack frames. Either stack or parsedStack should have a value.\r\n */\r\n this.parsedStack = [];\r\n }\r\n return ExceptionDetails;\r\n}());\r\nexport { ExceptionDetails };\r\n//# sourceMappingURL=ExceptionDetails.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __assign, __extends } from \"tslib\";\r\nimport { StackFrame } from \"../Interfaces/Contracts/Generated/StackFrame\";\r\nimport { ExceptionData } from \"../Interfaces/Contracts/Generated/ExceptionData\";\r\nimport { ExceptionDetails } from \"../Interfaces/Contracts/Generated/ExceptionDetails\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nimport { isNullOrUndefined, arrMap, isString, strTrim, isArray, isError, arrForEach, isObject, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar NoMethod = \"\";\r\nvar strError = \"error\";\r\nvar strStack = \"stack\";\r\nvar strStackDetails = \"stackDetails\";\r\nvar strErrorSrc = \"errorSrc\";\r\nvar strMessage = \"message\";\r\nvar strDescription = \"description\";\r\nfunction _stringify(value, convertToString) {\r\n var result = value;\r\n if (result && !isString(result)) {\r\n if (JSON && JSON.stringify) {\r\n result = JSON.stringify(value);\r\n if (convertToString && (!result || result === \"{}\")) {\r\n if (isFunction(value.toString)) {\r\n result = value.toString();\r\n }\r\n else {\r\n result = \"\" + value;\r\n }\r\n }\r\n }\r\n else {\r\n result = \"\" + value + \" - (Missing JSON.stringify)\";\r\n }\r\n }\r\n return result || \"\";\r\n}\r\nfunction _formatMessage(theEvent, errorType) {\r\n var evtMessage = theEvent;\r\n if (theEvent) {\r\n if (evtMessage && !isString(evtMessage)) {\r\n evtMessage = theEvent[strMessage] || theEvent[strDescription] || evtMessage;\r\n }\r\n // Make sure the message is a string\r\n if (evtMessage && !isString(evtMessage)) {\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n evtMessage = _stringify(evtMessage, true);\r\n }\r\n if (theEvent[\"filename\"]) {\r\n // Looks like an event object with filename\r\n evtMessage = evtMessage + \" @\" + (theEvent[\"filename\"] || \"\") + \":\" + (theEvent[\"lineno\"] || \"?\") + \":\" + (theEvent[\"colno\"] || \"?\");\r\n }\r\n }\r\n // Automatically add the error type to the message if it does already appear to be present\r\n if (errorType && errorType !== \"String\" && errorType !== \"Object\" && errorType !== \"Error\" && (evtMessage || \"\").indexOf(errorType) === -1) {\r\n evtMessage = errorType + \": \" + evtMessage;\r\n }\r\n return evtMessage || \"\";\r\n}\r\nfunction _isExceptionDetailsInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return \"hasFullStack\" in value && \"typeName\" in value;\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isExceptionInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isStackDetails(details) {\r\n return details && details.src && isString(details.src) && details.obj && isArray(details.obj);\r\n}\r\nfunction _convertStackObj(errorStack) {\r\n var src = errorStack || \"\";\r\n if (!isString(src)) {\r\n if (isString(src[strStack])) {\r\n src = src[strStack];\r\n }\r\n else {\r\n src = \"\" + src;\r\n }\r\n }\r\n var items = src.split(\"\\n\");\r\n return {\r\n src: src,\r\n obj: items\r\n };\r\n}\r\nfunction _getOperaStack(errorMessage) {\r\n var stack = [];\r\n var lines = errorMessage.split(\"\\n\");\r\n for (var lp = 0; lp < lines.length; lp++) {\r\n var entry = lines[lp];\r\n if (lines[lp + 1]) {\r\n entry += \"@\" + lines[lp + 1];\r\n lp++;\r\n }\r\n stack.push(entry);\r\n }\r\n return {\r\n src: errorMessage,\r\n obj: stack\r\n };\r\n}\r\nfunction _getStackFromErrorObj(errorObj) {\r\n var details = null;\r\n if (errorObj) {\r\n try {\r\n /* Using bracket notation is support older browsers (IE 7/8 -- dont remember the version) that throw when using dot\r\n notation for undefined objects and we don't want to loose the error from being reported */\r\n if (errorObj[strStack]) {\r\n // Chrome/Firefox\r\n details = _convertStackObj(errorObj[strStack]);\r\n }\r\n else if (errorObj[strError] && errorObj[strError][strStack]) {\r\n // Edge error event provides the stack and error object\r\n details = _convertStackObj(errorObj[strError][strStack]);\r\n }\r\n else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\r\n details = _convertStackObj(errorObj.exception[strStack]);\r\n }\r\n else if (_isStackDetails(errorObj)) {\r\n details = errorObj;\r\n }\r\n else if (_isStackDetails(errorObj[strStackDetails])) {\r\n details = errorObj[strStackDetails];\r\n }\r\n else if (window && window[\"opera\"] && errorObj[strMessage]) {\r\n // Opera\r\n details = _getOperaStack(errorObj.message);\r\n }\r\n else if (isString(errorObj)) {\r\n details = _convertStackObj(errorObj);\r\n }\r\n else {\r\n var evtMessage = errorObj[strMessage] || errorObj[strDescription] || \"\";\r\n if (isString(errorObj[strErrorSrc])) {\r\n if (evtMessage) {\r\n evtMessage += \"\\n\";\r\n }\r\n evtMessage += \" from \" + errorObj[strErrorSrc];\r\n }\r\n if (evtMessage) {\r\n details = _convertStackObj(evtMessage);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // something unexpected happened so to avoid failing to report any error lets swallow the exception\r\n // and fallback to the callee/caller method\r\n details = _convertStackObj(e);\r\n }\r\n }\r\n return details || {\r\n src: \"\",\r\n obj: null\r\n };\r\n}\r\nfunction _formatStackTrace(stackDetails) {\r\n var stack = \"\";\r\n if (stackDetails) {\r\n if (stackDetails.obj) {\r\n arrForEach(stackDetails.obj, function (entry) {\r\n stack += entry + \"\\n\";\r\n });\r\n }\r\n else {\r\n stack = stackDetails.src || \"\";\r\n }\r\n }\r\n return stack;\r\n}\r\nfunction _parseStack(stack) {\r\n var parsedStack;\r\n var frames = stack.obj;\r\n if (frames && frames.length > 0) {\r\n parsedStack = [];\r\n var level_1 = 0;\r\n var totalSizeInBytes_1 = 0;\r\n arrForEach(frames, function (frame) {\r\n var theFrame = frame.toString();\r\n if (_StackFrame.regex.test(theFrame)) {\r\n var parsedFrame = new _StackFrame(theFrame, level_1++);\r\n totalSizeInBytes_1 += parsedFrame.sizeInBytes;\r\n parsedStack.push(parsedFrame);\r\n }\r\n });\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n var exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\r\n var left = 0;\r\n var right = parsedStack.length - 1;\r\n var size = 0;\r\n var acceptedLeft = left;\r\n var acceptedRight = right;\r\n while (left < right) {\r\n // check size\r\n var lSize = parsedStack[left].sizeInBytes;\r\n var rSize = parsedStack[right].sizeInBytes;\r\n size += lSize + rSize;\r\n if (size > exceptionParsedStackThreshold) {\r\n // remove extra frames from the middle\r\n var howMany = acceptedRight - acceptedLeft + 1;\r\n parsedStack.splice(acceptedLeft, howMany);\r\n break;\r\n }\r\n // update pointers\r\n acceptedLeft = left;\r\n acceptedRight = right;\r\n left++;\r\n right--;\r\n }\r\n }\r\n }\r\n return parsedStack;\r\n}\r\nfunction _getErrorType(errorType) {\r\n // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n var typeName = \"\";\r\n if (errorType) {\r\n typeName = errorType.typeName || errorType.name || \"\";\r\n if (!typeName) {\r\n try {\r\n var funcNameRegex = /function (.{1,200})\\(/;\r\n var results = (funcNameRegex).exec((errorType).constructor.toString());\r\n typeName = (results && results.length > 1) ? results[1] : \"\";\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n }\r\n return typeName;\r\n}\r\n/**\r\n * Formats the provided errorObj for display and reporting, it may be a String, Object, integer or undefined depending on the browser.\r\n * @param errorObj The supplied errorObj\r\n */\r\nexport function _formatErrorCode(errorObj) {\r\n if (errorObj) {\r\n try {\r\n if (!isString(errorObj)) {\r\n var errorType = _getErrorType(errorObj);\r\n var result = _stringify(errorObj, false);\r\n if (!result || result === \"{}\") {\r\n if (errorObj[strError]) {\r\n // Looks like an MS Error Event\r\n errorObj = errorObj[strError];\r\n errorType = _getErrorType(errorObj);\r\n }\r\n result = _stringify(errorObj, true);\r\n }\r\n if (result.indexOf(errorType) !== 0 && errorType !== \"String\") {\r\n return errorType + \":\" + result;\r\n }\r\n return result;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n // Fallback to just letting the object format itself into a string\r\n return \"\" + (errorObj || \"\");\r\n}\r\nvar Exception = /** @class */ (function (_super) {\r\n __extends(Exception, _super);\r\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\r\n function Exception(logger, exception, properties, measurements, severityLevel, id) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n exceptions: 1 /* Required */,\r\n severityLevel: 0 /* Default */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */\r\n };\r\n if (!_isExceptionInternal(exception)) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n _this.exceptions = [new _ExceptionDetails(logger, exception, properties)];\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _this.severityLevel = severityLevel;\r\n }\r\n if (id) {\r\n _this.id = id;\r\n }\r\n }\r\n else {\r\n _this.exceptions = exception.exceptions;\r\n _this.properties = exception.properties;\r\n _this.measurements = exception.measurements;\r\n if (exception.severityLevel) {\r\n _this.severityLevel = exception.severityLevel;\r\n }\r\n if (exception.id) {\r\n _this.id = exception.id;\r\n }\r\n if (exception.problemGroup) {\r\n _this.problemGroup = exception.problemGroup;\r\n }\r\n // bool/int types, use isNullOrUndefined\r\n _this.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!isNullOrUndefined(exception.isManual)) {\r\n _this.isManual = exception.isManual;\r\n }\r\n }\r\n return _this;\r\n }\r\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n var errorType = _getErrorType(error || evt || message);\r\n return {\r\n message: _formatMessage(message, errorType),\r\n url: url,\r\n lineNumber: lineNumber,\r\n columnNumber: columnNumber,\r\n error: _formatErrorCode(error || evt || message),\r\n evt: _formatErrorCode(evt || message),\r\n typeName: errorType,\r\n stackDetails: _getStackFromErrorObj(stack || error || evt),\r\n errorSrc: errorSrc\r\n };\r\n };\r\n Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n var exceptions = exception.exceptions\r\n && arrMap(exception.exceptions, function (ex) { return _ExceptionDetails.CreateFromInterface(logger, ex); });\r\n var exceptionData = new Exception(logger, __assign(__assign({}, exception), { exceptions: exceptions }), properties, measurements);\r\n return exceptionData;\r\n };\r\n Exception.prototype.toInterface = function () {\r\n var _a = this, exceptions = _a.exceptions, properties = _a.properties, measurements = _a.measurements, severityLevel = _a.severityLevel, problemGroup = _a.problemGroup, id = _a.id, isManual = _a.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return {\r\n ver: \"4.0\",\r\n exceptions: exceptionDetailsInterface,\r\n severityLevel: severityLevel,\r\n properties: properties,\r\n measurements: measurements,\r\n problemGroup: problemGroup,\r\n id: id,\r\n isManual: isManual\r\n };\r\n };\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n return {\r\n exceptions: [\r\n {\r\n hasFullStack: true,\r\n message: message,\r\n stack: details,\r\n typeName: typeName\r\n }\r\n ]\r\n };\r\n };\r\n Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n Exception.dataType = \"ExceptionData\";\r\n Exception.formatError = _formatErrorCode;\r\n return Exception;\r\n}(ExceptionData));\r\nexport { Exception };\r\nvar _ExceptionDetails = /** @class */ (function (_super) {\r\n __extends(_ExceptionDetails, _super);\r\n function _ExceptionDetails(logger, exception, properties) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n id: 0 /* Default */,\r\n outerId: 0 /* Default */,\r\n typeName: 1 /* Required */,\r\n message: 1 /* Required */,\r\n hasFullStack: 0 /* Default */,\r\n stack: 0 /* Default */,\r\n parsedStack: 2 /* Array */\r\n };\r\n if (!_isExceptionDetailsInternal(exception)) {\r\n var error = exception;\r\n var evt = error && error.evt;\r\n if (!isError(error)) {\r\n error = error[strError] || evt || error;\r\n }\r\n _this.typeName = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n _this.message = dataSanitizeMessage(logger, _formatMessage(exception || error, _this.typeName)) || strNotSpecified;\r\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n _this.parsedStack = _parseStack(stack);\r\n _this[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\r\n _this.hasFullStack = isArray(_this.parsedStack) && _this.parsedStack.length > 0;\r\n if (properties) {\r\n properties.typeName = properties.typeName || _this.typeName;\r\n }\r\n }\r\n else {\r\n _this.typeName = exception.typeName;\r\n _this.message = exception.message;\r\n _this[strStack] = exception[strStack];\r\n _this.parsedStack = exception.parsedStack;\r\n _this.hasFullStack = exception.hasFullStack;\r\n }\r\n return _this;\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var parsedStack = this.parsedStack instanceof Array\r\n && arrMap(this.parsedStack, function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = {\r\n id: this.id,\r\n outerId: this.outerId,\r\n typeName: this.typeName,\r\n message: this.message,\r\n hasFullStack: this.hasFullStack,\r\n stack: this[strStack],\r\n parsedStack: parsedStack || undefined\r\n };\r\n return exceptionDetailsInterface;\r\n };\r\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n var parsedStack = (exception.parsedStack instanceof Array\r\n && arrMap(exception.parsedStack, function (frame) { return _StackFrame.CreateFromInterface(frame); }))\r\n || exception.parsedStack;\r\n var exceptionDetails = new _ExceptionDetails(logger, __assign(__assign({}, exception), { parsedStack: parsedStack }));\r\n return exceptionDetails;\r\n };\r\n return _ExceptionDetails;\r\n}(ExceptionDetails));\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function (_super) {\r\n __extends(_StackFrame, _super);\r\n function _StackFrame(sourceFrame, level) {\r\n var _this = _super.call(this) || this;\r\n _this.sizeInBytes = 0;\r\n _this.aiDataContract = {\r\n level: 1 /* Required */,\r\n method: 1 /* Required */,\r\n assembly: 0 /* Default */,\r\n fileName: 0 /* Default */,\r\n line: 0 /* Default */\r\n };\r\n // Not converting this to isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n var frame = sourceFrame;\r\n _this.level = level;\r\n _this.method = NoMethod;\r\n _this.assembly = strTrim(frame);\r\n _this.fileName = \"\";\r\n _this.line = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches.length >= 5) {\r\n _this.method = strTrim(matches[2]) || _this.method;\r\n _this.fileName = strTrim(matches[4]);\r\n _this.line = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _this.level = sourceFrame.level;\r\n _this.method = sourceFrame.method;\r\n _this.assembly = sourceFrame.assembly;\r\n _this.fileName = sourceFrame.fileName;\r\n _this.line = sourceFrame.line;\r\n _this.sizeInBytes = 0;\r\n }\r\n _this.sizeInBytes += _this.method.length;\r\n _this.sizeInBytes += _this.fileName.length;\r\n _this.sizeInBytes += _this.assembly.length;\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _this.sizeInBytes += _StackFrame.baseSize;\r\n _this.sizeInBytes += _this.level.toString().length;\r\n _this.sizeInBytes += _this.line.toString().length;\r\n return _this;\r\n }\r\n _StackFrame.CreateFromInterface = function (frame) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n };\r\n _StackFrame.prototype.toInterface = function () {\r\n return {\r\n level: this.level,\r\n method: this.method,\r\n assembly: this.assembly,\r\n fileName: this.fileName,\r\n line: this.line\r\n };\r\n };\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n _StackFrame.regex = /^([\\s]+at)?[\\s]{0,50}([^\\@\\()]+?)[\\s]{0,50}(\\@|\\()([^\\(\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n return _StackFrame;\r\n}(StackFrame));\r\nexport { _StackFrame };\r\n//# sourceMappingURL=Exception.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Defines the level of severity for the event.\r\n */\r\nexport var SeverityLevel;\r\n(function (SeverityLevel) {\r\n SeverityLevel[SeverityLevel[\"Verbose\"] = 0] = \"Verbose\";\r\n SeverityLevel[SeverityLevel[\"Information\"] = 1] = \"Information\";\r\n SeverityLevel[SeverityLevel[\"Warning\"] = 2] = \"Warning\";\r\n SeverityLevel[SeverityLevel[\"Error\"] = 3] = \"Error\";\r\n SeverityLevel[SeverityLevel[\"Critical\"] = 4] = \"Critical\";\r\n})(SeverityLevel || (SeverityLevel = {}));\r\n//# sourceMappingURL=SeverityLevel.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Type of storage to differentiate between local storage and session storage\r\n */\r\nexport var StorageType;\r\n(function (StorageType) {\r\n StorageType[StorageType[\"LocalStorage\"] = 0] = \"LocalStorage\";\r\n StorageType[StorageType[\"SessionStorage\"] = 1] = \"SessionStorage\";\r\n})(StorageType || (StorageType = {}));\r\nexport var DistributedTracingModes;\r\n(function (DistributedTracingModes) {\r\n /**\r\n * (Default) Send Application Insights correlation headers\r\n */\r\n DistributedTracingModes[DistributedTracingModes[\"AI\"] = 0] = \"AI\";\r\n /**\r\n * Send both W3C Trace Context headers and back-compatibility Application Insights headers\r\n */\r\n DistributedTracingModes[DistributedTracingModes[\"AI_AND_W3C\"] = 1] = \"AI_AND_W3C\";\r\n /**\r\n * Send W3C Trace Context headers\r\n */\r\n DistributedTracingModes[DistributedTracingModes[\"W3C\"] = 2] = \"W3C\";\r\n})(DistributedTracingModes || (DistributedTracingModes = {}));\r\n//# sourceMappingURL=Enums.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * An instance of Exception represents a handled or unhandled exception that occurred during execution of the monitored application.\r\n */\r\nvar ExceptionData = /** @class */ (function () {\r\n function ExceptionData() {\r\n /**\r\n * Schema version\r\n */\r\n this.ver = 2;\r\n /**\r\n * Exception chain - list of inner exceptions.\r\n */\r\n this.exceptions = [];\r\n /**\r\n * Collection of custom properties.\r\n */\r\n this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n this.measurements = {};\r\n }\r\n return ExceptionData;\r\n}());\r\nexport { ExceptionData };\r\n//# sourceMappingURL=ExceptionData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, LoggingSeverity, objForEachKey, _InternalMessageId } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\n/**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getLocalStorageObject() {\r\n if (utlCanUseLocalStorage()) {\r\n return _getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n try {\r\n if (isNullOrUndefined(getGlobal())) {\r\n return null;\r\n }\r\n var uid = new Date;\r\n var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\r\n storage.setItem(uid.toString(), uid.toString());\r\n var fail = storage.getItem(uid.toString()) !== uid.toString();\r\n storage.removeItem(uid.toString());\r\n if (!fail) {\r\n return storage;\r\n }\r\n }\r\n catch (exception) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getSessionStorageObject() {\r\n if (utlCanUseSessionStorage()) {\r\n return _getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return null;\r\n}\r\nexport function utlDisableStorage() {\r\n _canUseLocalStorage = false;\r\n _canUseSessionStorage = false;\r\n}\r\nexport function utlCanUseLocalStorage() {\r\n if (_canUseLocalStorage === undefined) {\r\n _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotReadLocalStorage, \"Browser failed read of local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetLocalStorage(logger, name, data) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotWriteLocalStorage, \"Browser failed write to local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.removeItem(name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserFailedRemovalFromLocalStorage, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlCanUseSessionStorage() {\r\n if (_canUseSessionStorage === undefined) {\r\n _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n var keys = [];\r\n if (utlCanUseSessionStorage()) {\r\n objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n keys.push(key);\r\n });\r\n }\r\n return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotReadSessionStorage, \"Browser failed read of session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetSessionStorage(logger, name, data) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotWriteSessionStorage, \"Browser failed write to session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.removeItem(name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserFailedRemovalFromSessionStorage, \"Browser failed removal of session storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=StorageHelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { isFunction, getDocument } from \"@microsoft/applicationinsights-core-js\";\r\nexport function createDomEvent(eventName) {\r\n var event = null;\r\n if (isFunction(Event)) { // Use Event constructor when available\r\n event = new Event(eventName);\r\n }\r\n else { // Event has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n }\r\n return event;\r\n}\r\n//# sourceMappingURL=DomHelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var RequestHeaders = {\r\n requestContextHeader: \"Request-Context\",\r\n requestContextTargetKey: \"appId\",\r\n requestContextAppIdFormat: \"appId=cid-v1:\",\r\n requestIdHeader: \"Request-Id\",\r\n traceParentHeader: \"traceparent\",\r\n traceStateHeader: \"tracestate\",\r\n sdkContextHeader: \"Sdk-Context\",\r\n sdkContextHeaderAppIdRequest: \"appId\",\r\n requestContextHeaderLowerCase: \"request-context\"\r\n};\r\n//# sourceMappingURL=RequestResponseHeaders.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nvar _document = getDocument() || {};\r\nvar _htmlAnchorIdx = 0;\r\n// Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\n// Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\r\nvar _htmlAnchorElement = [null, null, null, null, null];\r\nexport function urlParseUrl(url) {\r\n var anchorIdx = _htmlAnchorIdx;\r\n var anchorCache = _htmlAnchorElement;\r\n var tempAnchor = anchorCache[anchorIdx];\r\n if (!_document.createElement) {\r\n // Always create the temp instance if createElement is not available\r\n tempAnchor = { host: urlParseHost(url, true) };\r\n }\r\n else if (!anchorCache[anchorIdx]) {\r\n // Create and cache the unattached anchor instance\r\n tempAnchor = anchorCache[anchorIdx] = _document.createElement(\"a\");\r\n }\r\n tempAnchor.href = url;\r\n // Move the cache index forward\r\n anchorIdx++;\r\n if (anchorIdx >= anchorCache.length) {\r\n anchorIdx = 0;\r\n }\r\n _htmlAnchorIdx = anchorIdx;\r\n return tempAnchor;\r\n}\r\nexport function urlGetAbsoluteUrl(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n return result;\r\n}\r\nexport function urlGetPathName(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.pathname;\r\n }\r\n return result;\r\n}\r\nexport function urlGetCompleteUrl(method, absoluteUrl) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n }\r\n return absoluteUrl;\r\n}\r\n// Fallback method to grab host from url if document.createElement method is not available\r\nexport function urlParseHost(url, inclPort) {\r\n var fullHost = urlParseFullHost(url, inclPort) || \"\";\r\n if (fullHost) {\r\n var match = fullHost.match(/(www[0-9]?\\.)?(.[^/:]+)(\\:[\\d]+)?/i);\r\n if (match != null && match.length > 3 && isString(match[2]) && match[2].length > 0) {\r\n return match[2] + (match[3] || \"\");\r\n }\r\n }\r\n return fullHost;\r\n}\r\nexport function urlParseFullHost(url, inclPort) {\r\n var result = null;\r\n if (url) {\r\n var match = url.match(/(\\w*):\\/\\/(.[^/:]+)(\\:[\\d]+)?/i);\r\n if (match != null && match.length > 2 && isString(match[2]) && match[2].length > 0) {\r\n result = match[2] || \"\";\r\n if (inclPort && match.length > 2) {\r\n var protocol = (match[1] || \"\").toLowerCase();\r\n var port = match[3] || \"\";\r\n // IE includes the standard port so pass it off if it's the same as the protocol\r\n if (protocol === \"http\" && port === \":80\") {\r\n port = \"\";\r\n }\r\n else if (protocol === \"https\" && port === \":443\") {\r\n port = \"\";\r\n }\r\n result += port;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=UrlHelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getPerformance, getExceptionName as coreGetExceptionName, dumpObj, isNullOrUndefined, strTrim, random32, isArray, isError, isDate, newId, generateW3CId, toISOString, arrForEach, getIEVersion, attachEvent, dateNow, uaDisallowsSameSiteNone, disableCookies as coreDisableCookies, canUseCookies as coreCanUseCookies, getCookie as coreGetCookie, setCookie as coreSetCookie, deleteCookie as coreDeleteCookie, isBeaconsSupported } from \"@microsoft/applicationinsights-core-js\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { createDomEvent } from \"./DomHelperFuncs\";\r\nimport { stringToBoolOrDefault, msToTimeSpan, isCrossOriginError, getExtensionByName } from \"./HelperFuncs\";\r\nimport { strNotSpecified } from \"./Constants\";\r\nimport { utlCanUseLocalStorage, utlCanUseSessionStorage, utlDisableStorage, utlGetSessionStorage, utlGetSessionStorageKeys, utlGetLocalStorage, utlRemoveSessionStorage, utlRemoveStorage, utlSetSessionStorage, utlSetLocalStorage } from \"./StorageHelperFuncs\";\r\nimport { urlGetAbsoluteUrl, urlGetCompleteUrl, urlGetPathName, urlParseFullHost, urlParseHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n \"https://dc.services.visualstudio.com/v2/track\",\r\n \"https://breeze.aimon.applicationinsights.io/v2/track\",\r\n \"https://dc-int.services.visualstudio.com/v2/track\"\r\n];\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n return _internalEndpoints.indexOf(endpointUrl.toLowerCase()) !== -1;\r\n}\r\nexport var Util = {\r\n NotSpecified: strNotSpecified,\r\n createDomEvent: createDomEvent,\r\n disableStorage: utlDisableStorage,\r\n isInternalApplicationInsightsEndpoint: isInternalApplicationInsightsEndpoint,\r\n canUseLocalStorage: utlCanUseLocalStorage,\r\n getStorage: utlGetLocalStorage,\r\n setStorage: utlSetLocalStorage,\r\n removeStorage: utlRemoveStorage,\r\n canUseSessionStorage: utlCanUseSessionStorage,\r\n getSessionStorageKeys: utlGetSessionStorageKeys,\r\n getSessionStorage: utlGetSessionStorage,\r\n setSessionStorage: utlSetSessionStorage,\r\n removeSessionStorage: utlRemoveSessionStorage,\r\n disableCookies: coreDisableCookies,\r\n canUseCookies: coreCanUseCookies,\r\n disallowsSameSiteNone: uaDisallowsSameSiteNone,\r\n setCookie: coreSetCookie,\r\n stringToBoolOrDefault: stringToBoolOrDefault,\r\n getCookie: coreGetCookie,\r\n deleteCookie: coreDeleteCookie,\r\n trim: strTrim,\r\n newId: newId,\r\n random32: function () {\r\n return random32(true);\r\n },\r\n generateW3CId: generateW3CId,\r\n isArray: isArray,\r\n isError: isError,\r\n isDate: isDate,\r\n toISOStringForIE8: toISOString,\r\n getIEVersion: getIEVersion,\r\n msToTimeSpan: msToTimeSpan,\r\n isCrossOriginError: isCrossOriginError,\r\n dump: dumpObj,\r\n getExceptionName: coreGetExceptionName,\r\n addEventHandler: attachEvent,\r\n IsBeaconApiSupported: isBeaconsSupported,\r\n getExtension: getExtensionByName\r\n};\r\nexport var UrlHelper = {\r\n parseUrl: urlParseUrl,\r\n getAbsoluteUrl: urlGetAbsoluteUrl,\r\n getPathName: urlGetPathName,\r\n getCompleteUrl: urlGetCompleteUrl,\r\n parseHost: urlParseHost,\r\n parseFullHost: urlParseFullHost\r\n};\r\nexport var CorrelationIdHelper = {\r\n correlationIdPrefix: \"cid-v1:\",\r\n /**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\r\n canIncludeCorrelationHeader: function (config, requestUrl, currentHost) {\r\n if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n return false;\r\n }\r\n if (config && config.correlationHeaderExcludePatterns) {\r\n for (var i = 0; i < config.correlationHeaderExcludePatterns.length; i++) {\r\n if (config.correlationHeaderExcludePatterns[i].test(requestUrl)) {\r\n return false;\r\n }\r\n }\r\n }\r\n var requestHost = urlParseUrl(requestUrl).host.toLowerCase();\r\n if (requestHost && (requestHost.indexOf(\":443\") !== -1 || requestHost.indexOf(\":80\") !== -1)) {\r\n // [Bug #1260] IE can include the port even for http and https URLs so if present\r\n // try and parse it to remove if it matches the default protocol port\r\n requestHost = (urlParseFullHost(requestUrl, true) || \"\").toLowerCase();\r\n }\r\n if ((!config || !config.enableCorsCorrelation) && (requestHost && requestHost !== currentHost)) {\r\n return false;\r\n }\r\n var includedDomains = config && config.correlationHeaderDomains;\r\n if (includedDomains) {\r\n var matchExists_1;\r\n arrForEach(includedDomains, function (domain) {\r\n var regex = new RegExp(domain.toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n matchExists_1 = matchExists_1 || regex.test(requestHost);\r\n });\r\n if (!matchExists_1) {\r\n return false;\r\n }\r\n }\r\n var excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n if (!excludedDomains || excludedDomains.length === 0) {\r\n return true;\r\n }\r\n for (var i = 0; i < excludedDomains.length; i++) {\r\n var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n // Previously we always returned false for a falsy requestHost\r\n return requestHost && requestHost.length > 0;\r\n },\r\n /**\r\n * Combines target appId and target role name from response header.\r\n */\r\n getCorrelationContext: function (responseHeader) {\r\n if (responseHeader) {\r\n var correlationId = CorrelationIdHelper.getCorrelationContextValue(responseHeader, RequestHeaders.requestContextTargetKey);\r\n if (correlationId && correlationId !== CorrelationIdHelper.correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n },\r\n /**\r\n * Gets key from correlation response header\r\n */\r\n getCorrelationContextValue: function (responseHeader, key) {\r\n if (responseHeader) {\r\n var keyValues = responseHeader.split(\",\");\r\n for (var i = 0; i < keyValues.length; ++i) {\r\n var keyValue = keyValues[i].split(\"=\");\r\n if (keyValue.length === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\r\n var target, name = commandName, data = commandName;\r\n if (absoluteUrl && absoluteUrl.length > 0) {\r\n var parsedUrl = urlParseUrl(absoluteUrl);\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl.pathname != null) {\r\n var pathName = (parsedUrl.pathname.length === 0) ? \"/\" : parsedUrl.pathname;\r\n if (pathName.charAt(0) !== \"/\") {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl.pathname;\r\n name = dataSanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n }\r\n else {\r\n name = dataSanitizeString(logger, absoluteUrl);\r\n }\r\n }\r\n }\r\n else {\r\n target = commandName;\r\n name = commandName;\r\n }\r\n return {\r\n target: target,\r\n name: name,\r\n data: data\r\n };\r\n}\r\nexport function dateTimeUtilsNow() {\r\n // returns the window or webworker performance object\r\n var perf = getPerformance();\r\n if (perf && perf.now && perf.timing) {\r\n var now = perf.now() + perf.timing.navigationStart;\r\n // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n if (now > 0) {\r\n return now;\r\n }\r\n }\r\n return dateNow();\r\n}\r\nexport function dateTimeUtilsDuration(start, end) {\r\n var result = null;\r\n if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n return result;\r\n}\r\n/**\r\n * A utility class that helps getting time related parameters\r\n */\r\nexport var DateTimeUtils = {\r\n Now: dateTimeUtilsNow,\r\n GetDuration: dateTimeUtilsDuration\r\n};\r\n//# sourceMappingURL=Util.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\r\nimport { RemoteDependencyData as GeneratedRemoteDependencyData } from \"../Interfaces/Contracts/Generated/RemoteDependencyData\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nvar RemoteDependencyData = /** @class */ (function (_super) {\r\n __extends(RemoteDependencyData, _super);\r\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\r\n function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\r\n if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n id: 1 /* Required */,\r\n ver: 1 /* Required */,\r\n name: 0 /* Default */,\r\n resultCode: 0 /* Default */,\r\n duration: 0 /* Default */,\r\n success: 0 /* Default */,\r\n data: 0 /* Default */,\r\n target: 0 /* Default */,\r\n type: 0 /* Default */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */,\r\n kind: 0 /* Default */,\r\n value: 0 /* Default */,\r\n count: 0 /* Default */,\r\n min: 0 /* Default */,\r\n max: 0 /* Default */,\r\n stdDev: 0 /* Default */,\r\n dependencyKind: 0 /* Default */,\r\n dependencySource: 0 /* Default */,\r\n commandName: 0 /* Default */,\r\n dependencyTypeName: 0 /* Default */\r\n };\r\n _this.id = id;\r\n _this.duration = msToTimeSpan(value);\r\n _this.success = success;\r\n _this.resultCode = resultCode + \"\";\r\n _this.type = dataSanitizeString(logger, requestAPI);\r\n var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n _this.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n _this.target = dataSanitizeString(logger, dependencyFields.target);\r\n if (correlationContext) {\r\n _this.target = \"\".concat(_this.target, \" | \").concat(correlationContext);\r\n }\r\n _this.name = dataSanitizeString(logger, dependencyFields.name);\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n return _this;\r\n }\r\n RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n return RemoteDependencyData;\r\n}(GeneratedRemoteDependencyData));\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * An instance of Remote Dependency represents an interaction of the monitored component with a remote component/service like SQL or an HTTP endpoint.\r\n */\r\nvar RemoteDependencyData = /** @class */ (function () {\r\n function RemoteDependencyData() {\r\n /**\r\n * Schema version\r\n */\r\n this.ver = 2;\r\n /**\r\n * Indication of successful or unsuccessful call.\r\n */\r\n this.success = true;\r\n /**\r\n * Collection of custom properties.\r\n */\r\n this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n this.measurements = {};\r\n }\r\n return RemoteDependencyData;\r\n}());\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { LoggingSeverity, _InternalMessageId, getDocument, getLocation, arrForEach, isNullOrUndefined, getExceptionName, dumpObj } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nvar PageViewManager = /** @class */ (function () {\r\n function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n dynamicProto(PageViewManager, this, function (_self) {\r\n var intervalHandle = null;\r\n var itemQueue = [];\r\n var pageViewPerformanceSent = false;\r\n var _logger;\r\n if (core) {\r\n _logger = core.logger;\r\n }\r\n function _flushChannels() {\r\n if (core) {\r\n arrForEach(core.getTransmissionControls(), function (queues) {\r\n arrForEach(queues, function (q) { return q.flush(true); });\r\n });\r\n }\r\n }\r\n function _addQueue(cb) {\r\n itemQueue.push(cb);\r\n if (!intervalHandle) {\r\n intervalHandle = setInterval((function () {\r\n var allItems = itemQueue.slice(0);\r\n var doFlush = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (!item()) {\r\n // Not processed so rescheduled\r\n itemQueue.push(item);\r\n }\r\n else {\r\n doFlush = true;\r\n }\r\n });\r\n if (itemQueue.length === 0) {\r\n clearInterval(intervalHandle);\r\n intervalHandle = null;\r\n }\r\n if (doFlush) {\r\n // We process at least one item so flush the queue\r\n _flushChannels();\r\n }\r\n }), 100);\r\n }\r\n }\r\n _self.trackPageView = function (pageView, customProperties) {\r\n var name = pageView.name;\r\n if (isNullOrUndefined(name) || typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = pageView.name = doc && doc.title || \"\";\r\n }\r\n var uri = pageView.uri;\r\n if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n var location_1 = getLocation();\r\n uri = pageView.uri = location_1 && location_1.href || \"\";\r\n }\r\n // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n // do not provide the duration, set duration to undefined\r\n // Also this is case 4\r\n if (!pageViewPerformanceManager.isPerformanceTimingSupported()) {\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n _flushChannels();\r\n // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.NavigationTimingNotSupported, \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\r\n return;\r\n }\r\n var pageViewSent = false;\r\n var customDuration;\r\n // if the performance timing is supported by the browser, calculate the custom duration\r\n var start = pageViewPerformanceManager.getPerformanceTiming().navigationStart;\r\n if (start > 0) {\r\n customDuration = dateTimeUtilsDuration(start, +new Date);\r\n if (!pageViewPerformanceManager.shouldCollectDuration(customDuration)) {\r\n customDuration = undefined;\r\n }\r\n }\r\n // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n var duration;\r\n if (!isNullOrUndefined(customProperties) &&\r\n !isNullOrUndefined(customProperties.duration)) {\r\n duration = customProperties.duration;\r\n }\r\n if (overridePageViewDuration || !isNaN(duration)) {\r\n if (isNaN(duration)) {\r\n // case 3\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n customProperties[\"duration\"] = customDuration;\r\n }\r\n // case 2\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n _flushChannels();\r\n pageViewSent = true;\r\n }\r\n // now try to send the page view performance telemetry\r\n var maxDurationLimit = 60000;\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n // Queue the event for processing\r\n _addQueue(function () {\r\n var processed = false;\r\n try {\r\n if (pageViewPerformanceManager.isPerformanceTimingDataReady()) {\r\n processed = true;\r\n var pageViewPerformance = {\r\n name: name,\r\n uri: uri\r\n };\r\n pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\r\n if (!pageViewPerformance.isValid && !pageViewSent) {\r\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n // That's the best value we can get that makes sense.\r\n customProperties[\"duration\"] = customDuration;\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n }\r\n else {\r\n if (!pageViewSent) {\r\n customProperties[\"duration\"] = pageViewPerformance.durationMs;\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n }\r\n if (!pageViewPerformanceSent) {\r\n appInsights.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\r\n pageViewPerformanceSent = true;\r\n }\r\n }\r\n }\r\n else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {\r\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n processed = true;\r\n if (!pageViewSent) {\r\n customProperties[\"duration\"] = maxDurationLimit;\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailedCalc, \"trackPageView failed on page load calculation: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return processed;\r\n });\r\n };\r\n });\r\n }\r\n /**\r\n * Currently supported cases:\r\n * 1) (default case) track page view called with default parameters, overridePageViewDuration = false. Page view is sent with page view performance when navigation timing data is available.\r\n * a. If navigation timing is not supported then page view is sent right away with undefined duration. Page view performance is not sent.\r\n * 2) overridePageViewDuration = true, custom duration provided. Custom duration is used, page view sends right away.\r\n * 3) overridePageViewDuration = true, custom duration NOT provided. Page view is sent right away, duration is time spent from page load till now (or undefined if navigation timing is not supported).\r\n * 4) overridePageViewDuration = false, custom duration is provided. Page view is sent right away with custom duration.\r\n *\r\n * In all cases page view performance is sent once (only for the 1st call of trackPageView), or not sent if navigation timing is not supported.\r\n */\r\n PageViewManager.prototype.trackPageView = function (pageView, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n//# sourceMappingURL=PageViewManager.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { hasJSON, getJSON, dateNow, dumpObj, throwError } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n this.prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n this.pageVisitTimeTrackingHandler = pageVisitTimeTrackingHandler;\r\n this._logger = logger;\r\n }\r\n /**\r\n * Tracks the previous page visit time telemetry (if exists) and starts timing of new page visit time\r\n * @param currentPageName Name of page to begin timing for visit duration\r\n * @param currentPageUrl Url of page to begin timing for visit duration\r\n */\r\n PageVisitTimeManager.prototype.trackPreviousPageVisit = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = this.restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n this.pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.warnToConsole(\"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n */\r\n PageVisitTimeManager.prototype.restartPageVisitTimer = function (pageName, pageUrl) {\r\n try {\r\n var prevPageVisitData = this.stopPageVisitTimer();\r\n this.startPageVisitTimer(pageName, pageUrl);\r\n return prevPageVisitData;\r\n }\r\n catch (e) {\r\n this._logger.warnToConsole(\"Call to restart failed: \" + dumpObj(e));\r\n return null;\r\n }\r\n };\r\n /**\r\n * Starts timing visit duration of pageName\r\n * @param pageName\r\n * @returns {}\r\n */\r\n PageVisitTimeManager.prototype.startPageVisitTimer = function (pageName, pageUrl) {\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n if (utlGetSessionStorage(this._logger, this.prevPageVisitDataKeyName) != null) {\r\n throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n var currPageVisitData = new PageVisitData(pageName, pageUrl);\r\n var currPageVisitDataStr = getJSON().stringify(currPageVisitData);\r\n utlSetSessionStorage(this._logger, this.prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n }\r\n catch (e) {\r\n // TODO: Remove this catch in next phase, since if start is called twice in a row the exception needs to be propagated out\r\n this._logger.warnToConsole(\"Call to start failed: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n */\r\n PageVisitTimeManager.prototype.stopPageVisitTimer = function () {\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n // Define end time of page's visit\r\n var pageVisitEndTime = dateNow();\r\n // Try to retrieve page name and start time from session storage\r\n var pageVisitDataJsonStr = utlGetSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr && hasJSON()) {\r\n // if previous page data exists, set end time of visit\r\n var prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData.pageVisitStartTime;\r\n // Remove data from storage since we already used it\r\n utlRemoveSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n // Return page visit data\r\n return prevPageVisitData;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n return null;\r\n }\r\n catch (e) {\r\n this._logger.warnToConsole(\"Stop page visit timer failed: \" + dumpObj(e));\r\n return null;\r\n }\r\n };\r\n return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n function PageVisitData(pageName, pageUrl) {\r\n this.pageVisitStartTime = dateNow();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n//# sourceMappingURL=PageVisitTimeManager.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { LoggingSeverity, _InternalMessageId, getNavigator, getPerformance } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n this.MAX_DURATION_ALLOWED = 3600000; // 1h\r\n if (core) {\r\n this._logger = core.logger;\r\n }\r\n }\r\n PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n *\r\n * total = The difference between the load event of the current document is completed and the first recorded timestamp of the performance entry : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#duration\r\n * network = Redirect time + App Cache + DNS lookup time + TCP connection time\r\n * request = Request time : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#request_time\r\n * response = Response time\r\n * dom = Document load time : https://html.spec.whatwg.org/multipage/dom.html#document-load-timing-info\r\n * = Document processing time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#document_processing\r\n * + Loading time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#loading\r\n */\r\n var navigationTiming = this.getPerformanceNavigationTiming();\r\n var timing = this.getPerformanceTiming();\r\n var total = 0;\r\n var network = 0;\r\n var request = 0;\r\n var response = 0;\r\n var dom = 0;\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n total = navigationTiming.duration;\r\n /**\r\n * support both cases:\r\n * - startTime is always zero: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n * - for older browsers where the startTime is not zero\r\n */\r\n network = navigationTiming.startTime === 0 ? navigationTiming.connectEnd : dateTimeUtilsDuration(navigationTiming.startTime, navigationTiming.connectEnd);\r\n request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming.responseStart);\r\n response = dateTimeUtilsDuration(navigationTiming.responseStart, navigationTiming.responseEnd);\r\n dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming.loadEventEnd);\r\n }\r\n else {\r\n total = dateTimeUtilsDuration(timing.navigationStart, timing.loadEventEnd);\r\n network = dateTimeUtilsDuration(timing.navigationStart, timing.connectEnd);\r\n request = dateTimeUtilsDuration(timing.requestStart, timing.responseStart);\r\n response = dateTimeUtilsDuration(timing.responseStart, timing.responseEnd);\r\n dom = dateTimeUtilsDuration(timing.responseEnd, timing.loadEventEnd);\r\n }\r\n if (total === 0) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ErrorPVCalc, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!this.shouldCollectDuration(total, network, request, response, dom)) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.InvalidDurationValue, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ClientPerformanceMathError, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance.duration = msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n PageViewPerformanceManager.prototype.getPerformanceTiming = function () {\r\n if (this.isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n return null;\r\n };\r\n PageViewPerformanceManager.prototype.getPerformanceNavigationTiming = function () {\r\n if (this.isPerformanceNavigationTimingSupported()) {\r\n return getPerformance().getEntriesByType(\"navigation\")[0];\r\n }\r\n return null;\r\n };\r\n /**\r\n * Returns true is window PerformanceNavigationTiming API is supported, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceNavigationTimingSupported = function () {\r\n var perf = getPerformance();\r\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\").length > 0;\r\n };\r\n /**\r\n * Returns true is window performance timing API is supported, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingSupported = function () {\r\n var perf = getPerformance();\r\n return perf && perf.timing;\r\n };\r\n /**\r\n * As page loads different parts of performance timing numbers get set. When all of them are set we can report it.\r\n * Returns true if ready, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingDataReady = function () {\r\n var perf = getPerformance();\r\n var timing = perf ? perf.timing : 0;\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing.navigationStart > 0\r\n && timing.responseStart > 0\r\n && timing.requestStart > 0\r\n && timing.loadEventEnd > 0\r\n && timing.responseEnd > 0\r\n && timing.connectEnd > 0\r\n && timing.domLoading > 0;\r\n };\r\n /**\r\n * This method tells if given durations should be excluded from collection.\r\n */\r\n PageViewPerformanceManager.prototype.shouldCollectDuration = function () {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n var _navigator = getNavigator() || {};\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\r\n var userAgent = _navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i = 0; i < botAgentNames.length; i++) {\r\n isGoogleBot = isGoogleBot || userAgent.toLowerCase().indexOf(botAgentNames[i]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations.length; i++) {\r\n if (durations[i] < 0 || durations[i] >= this.MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map","/**\r\n * ApplicationInsights.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport { __assign, __extends } from \"tslib\";\r\nimport { PageViewPerformance, PageView, RemoteDependencyData, Event as EventTelemetry, TelemetryItemCreator, Metric, Exception, SeverityLevel, Trace, dateTimeUtilsDuration, PropertiesPluginIdentifier, AnalyticsPluginIdentifier, stringToBoolOrDefault, createDomEvent, strNotSpecified, isCrossOriginError, utlDisableStorage, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, LoggingSeverity, _InternalMessageId, getWindow, getDocument, getHistory, getLocation, doPerf, objForEachKey, isString, isFunction, isNullOrUndefined, arrForEach, generateW3CId, dumpObj, getExceptionName, safeGetCookieMgr } from \"@microsoft/applicationinsights-core-js\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { PageViewPerformanceManager } from \"./Telemetry/PageViewPerformanceManager\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\n\"use strict\";\r\nvar durationProperty = \"duration\";\r\nvar strEvent = \"event\";\r\nfunction _dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n }\r\n}\r\nfunction _getReason(error) {\r\n if (error && error.reason) {\r\n var reason = error.reason;\r\n if (!isString(reason) && isFunction(reason.toString)) {\r\n return reason.toString();\r\n }\r\n return dumpObj(reason);\r\n }\r\n // Pass the original object down which will eventually get evaluated for any message or description\r\n return error || \"\";\r\n}\r\nvar ApplicationInsights = /** @class */ (function (_super) {\r\n __extends(ApplicationInsights, _super);\r\n function ApplicationInsights() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\r\n _this.priority = 180; // take from reserved priority range 100- 200\r\n _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n var _eventTracking;\r\n var _pageTracking;\r\n var _properties;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n var _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var _prevUri; // Assigned in the constructor\r\n var _currUri;\r\n dynamicProto(ApplicationInsights, _this, function (_self, _base) {\r\n var location = getLocation(true);\r\n _prevUri = location && location.href || \"\";\r\n _self.getCookieMgr = function () {\r\n return safeGetCookieMgr(_self.core);\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n doPerf(_self.core, function () { return _self.identifier + \":processTelemetry\"; }, function () {\r\n var doNotSendItem = false;\r\n var telemetryInitializersCount = _self._telemetryInitializers.length;\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n var telemetryInitializer = _self._telemetryInitializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.apply(null, [env]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n }\r\n }\r\n if (!doNotSendItem) {\r\n _self.processNext(env, itemCtx);\r\n }\r\n }, function () { return ({ item: env }); }, !(env.sync));\r\n };\r\n _self.trackEvent = function (event, customProperties) {\r\n try {\r\n var telemetryItem = TelemetryItemCreator.create(event, EventTelemetry.dataType, EventTelemetry.envelopeType, _self.diagLog(), customProperties);\r\n _self.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n _self.startTrackEvent = function (name) {\r\n try {\r\n _eventTracking.start(name);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackEventFailed, \"startTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackEvent = function (name, properties, measurements) {\r\n try {\r\n _eventTracking.stop(name, undefined, properties); // Todo: Fix to pass measurements once type is updated\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackEventFailed, \"stopTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param {ITraceTelemetry} trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackTrace = function (trace, customProperties) {\r\n try {\r\n var telemetryItem = TelemetryItemCreator.create(trace, Trace.dataType, Trace.envelopeType, _self.diagLog(), customProperties);\r\n _self.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param {IMetricTelemetry} metric input object argument. Only name and average are mandatory.\r\n * @param {{[key: string]: any}} customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackMetric = function (metric, customProperties) {\r\n try {\r\n var telemetryItem = TelemetryItemCreator.create(metric, Metric.dataType, Metric.envelopeType, _self.diagLog(), customProperties);\r\n _self.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackMetricFailed, \"trackMetric failed, metric will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n _self.trackPageView = function (pageView, customProperties) {\r\n try {\r\n var inPv = pageView || {};\r\n _self._pageViewManager.trackPageView(inPv, __assign(__assign(__assign({}, inPv.properties), inPv.measurements), customProperties));\r\n if (_self.config.autoTrackPageVisitTime) {\r\n _self._pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);\r\n }\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, \"trackPageView failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView Page view item to be sent\r\n * @param properties Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n _self.sendPageViewInternal = function (pageView, properties, systemProperties) {\r\n var doc = getDocument();\r\n if (doc) {\r\n pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\r\n }\r\n var telemetryItem = TelemetryItemCreator.create(pageView, PageView.dataType, PageView.envelopeType, _self.diagLog(), properties, systemProperties);\r\n _self.core.track(telemetryItem);\r\n // reset ajaxes counter\r\n _trackAjaxAttempts = 0;\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n _self.sendPageViewPerformanceInternal = function (pageViewPerformance, properties, systemProperties) {\r\n var telemetryItem = TelemetryItemCreator.create(pageViewPerformance, PageViewPerformance.dataType, PageViewPerformance.envelopeType, _self.diagLog(), properties, systemProperties);\r\n _self.core.track(telemetryItem);\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n try {\r\n _self._pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\r\n _self.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, \"trackPageViewPerformance failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n _self.startTrackPage = function (name) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n _pageTracking.start(name);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackFailed, \"startTrackPage failed, page view may not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackPage = function (name, url, properties, measurement) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n if (typeof url !== \"string\") {\r\n var loc = getLocation();\r\n url = loc && loc.href || \"\";\r\n }\r\n _pageTracking.stop(name, url, properties, measurement);\r\n if (_self.config.autoTrackPageVisitTime) {\r\n _self._pageVisitTimeManager.trackPreviousPageVisit(name, url);\r\n }\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackFailed, \"stopTrackPage failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n _self.sendExceptionInternal = function (exception, customProperties, systemProperties) {\r\n var theError = exception.exception || exception.error || new Error(strNotSpecified);\r\n var exceptionPartB = new Exception(_self.diagLog(), theError, exception.properties || customProperties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n var telemetryItem = TelemetryItemCreator.create(exceptionPartB, Exception.dataType, Exception.envelopeType, _self.diagLog(), customProperties, systemProperties);\r\n _self.core.track(telemetryItem);\r\n };\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param {IExceptionTelemetry} exception Object which contains exception to be sent\r\n * @param {{[key: string]: any}} customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackException = function (exception, customProperties) {\r\n try {\r\n _self.sendExceptionInternal(exception, customProperties);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackExceptionFailed, \"trackException failed, exception will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof ApplicationInsights\r\n */\r\n _self._onerror = function (exception) {\r\n var error = exception && exception.error;\r\n var evt = exception && exception.evt;\r\n try {\r\n if (!evt) {\r\n var _window = getWindow();\r\n if (_window) {\r\n evt = _window[strEvent];\r\n }\r\n }\r\n var url = (exception && exception.url) || (getDocument() || {}).URL;\r\n // If no error source is provided assume the default window.onerror handler\r\n var errorSrc = exception.errorSrc || \"window.onerror@\" + url + \":\" + (exception.lineNumber || 0) + \":\" + (exception.columnNumber || 0);\r\n var properties = {\r\n errorSrc: errorSrc,\r\n url: url,\r\n lineNumber: exception.lineNumber || 0,\r\n columnNumber: exception.columnNumber || 0,\r\n message: exception.message\r\n };\r\n if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception.error)) {\r\n _sendCORSException(Exception.CreateAutoException(\"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\", url, exception.lineNumber || 0, exception.columnNumber || 0, error, evt, null, errorSrc), properties);\r\n }\r\n else {\r\n if (!exception.errorSrc) {\r\n exception.errorSrc = errorSrc;\r\n }\r\n _self.trackException({ exception: exception, severityLevel: SeverityLevel.Error }, properties);\r\n }\r\n }\r\n catch (e) {\r\n var errorString = error ? (error.name + \", \" + error.message) : \"null\";\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ExceptionWhileLoggingError, \"_onError threw exception while logging error, error will not be collected: \"\r\n + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });\r\n }\r\n };\r\n _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n _self._telemetryInitializers.push(telemetryInitializer);\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n return;\r\n }\r\n if (isNullOrUndefined(core)) {\r\n throw Error(\"Error initializing\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _self.setInitialized(false); // resetting the initialized state, just in case the following fails\r\n var ctx = _self._getTelCtx();\r\n var identifier = _self.identifier;\r\n _self.config = ctx.getExtCfg(identifier);\r\n // load default values if specified\r\n var defaults = ApplicationInsights.getDefaultConfig(config);\r\n if (defaults !== undefined) {\r\n objForEachKey(defaults, function (field, value) {\r\n // for each unspecified field, set the default value\r\n _self.config[field] = ctx.getConfig(identifier, field, value);\r\n if (_self.config[field] === undefined) {\r\n _self.config[field] = value;\r\n }\r\n });\r\n }\r\n // Todo: move this out of static state\r\n if (_self.config.isStorageUseDisabled) {\r\n utlDisableStorage();\r\n }\r\n var configGetters = {\r\n instrumentationKey: function () { return config.instrumentationKey; },\r\n accountId: function () { return _self.config.accountId || config.accountId; },\r\n sessionRenewalMs: function () { return _self.config.sessionRenewalMs || config.sessionRenewalMs; },\r\n sessionExpirationMs: function () { return _self.config.sessionExpirationMs || config.sessionExpirationMs; },\r\n sampleRate: function () { return _self.config.samplingPercentage || config.samplingPercentage; },\r\n sdkExtension: function () { return _self.config.sdkExtension || config.sdkExtension; },\r\n isBrowserLinkTrackingEnabled: function () { return _self.config.isBrowserLinkTrackingEnabled || config.isBrowserLinkTrackingEnabled; },\r\n appId: function () { return _self.config.appId || config.appId; }\r\n };\r\n _self._pageViewPerformanceManager = new PageViewPerformanceManager(_self.core);\r\n _self._pageViewManager = new PageViewManager(_this, _self.config.overridePageViewDuration, _self.core, _self._pageViewPerformanceManager);\r\n _self._pageVisitTimeManager = new PageVisitTimeManager(_self.diagLog(), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n _self._telemetryInitializers = _self._telemetryInitializers || [];\r\n _addDefaultTelemetryInitializers(configGetters);\r\n _eventTracking = new Timing(_self.diagLog(), \"trackEvent\");\r\n _eventTracking.action =\r\n function (name, url, duration, properties) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n properties[durationProperty] = duration.toString();\r\n _self.trackEvent({ name: name, properties: properties });\r\n };\r\n // initialize page view timing\r\n _pageTracking = new Timing(_self.diagLog(), \"trackPageView\");\r\n _pageTracking.action = function (name, url, duration, properties, measurements) {\r\n // duration must be a custom property in order for the collector to extract it\r\n if (isNullOrUndefined(properties)) {\r\n properties = {};\r\n }\r\n properties[durationProperty] = duration.toString();\r\n var pageViewItem = {\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n };\r\n _self.sendPageViewInternal(pageViewItem, properties);\r\n };\r\n var _window = getWindow();\r\n var _history = getHistory();\r\n var _location = getLocation(true);\r\n var instance = _this;\r\n if (_self.config.disableExceptionTracking === false &&\r\n !_self.config.autoExceptionInstrumented && _window) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n var onerror_1 = \"onerror\";\r\n var originalOnError_1 = _window[onerror_1];\r\n _window.onerror = function (message, url, lineNumber, columnNumber, error) {\r\n var evt = _window[strEvent];\r\n var handled = originalOnError_1 && originalOnError_1(message, url, lineNumber, columnNumber, error);\r\n if (handled !== true) { // handled could be typeof function\r\n instance._onerror(Exception.CreateAutoException(message, url, lineNumber, columnNumber, error, evt));\r\n }\r\n return handled;\r\n };\r\n _self.config.autoExceptionInstrumented = true;\r\n }\r\n if (_self.config.disableExceptionTracking === false &&\r\n _self.config.enableUnhandledPromiseRejectionTracking === true &&\r\n !_self.config.autoUnhandledPromiseInstrumented && _window) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n var onunhandledrejection_1 = \"onunhandledrejection\";\r\n var originalOnUnhandledRejection_1 = _window[onunhandledrejection_1];\r\n _window[onunhandledrejection_1] = function (error) {\r\n var evt = _window[strEvent];\r\n var handled = originalOnUnhandledRejection_1 && originalOnUnhandledRejection_1.call(_window, error);\r\n if (handled !== true) { // handled could be typeof function\r\n instance._onerror(Exception.CreateAutoException(_getReason(error), _location ? _location.href : \"\", 0, 0, error, evt));\r\n }\r\n return handled;\r\n };\r\n _self.config.autoUnhandledPromiseInstrumented = true;\r\n }\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n if (_self.config.enableAutoRouteTracking === true\r\n && _history && isFunction(_history.pushState) && isFunction(_history.replaceState)\r\n && _window\r\n && typeof Event !== \"undefined\") {\r\n var _self_1 = _this;\r\n // Find the properties plugin\r\n arrForEach(extensions, function (extension) {\r\n if (extension.identifier === PropertiesPluginIdentifier) {\r\n _properties = extension;\r\n }\r\n });\r\n _history.pushState = (function (f) { return function pushState() {\r\n var ret = f.apply(this, arguments);\r\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"pushState\"));\r\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n return ret;\r\n }; })(_history.pushState);\r\n _history.replaceState = (function (f) { return function replaceState() {\r\n var ret = f.apply(this, arguments);\r\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"replaceState\"));\r\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n return ret;\r\n }; })(_history.replaceState);\r\n if (_window.addEventListener) {\r\n _window.addEventListener(_self_1.config.namePrefix + \"popstate\", function () {\r\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n });\r\n _window.addEventListener(_self_1.config.namePrefix + \"locationchange\", function () {\r\n if (_properties && _properties.context && _properties.context.telemetryTrace) {\r\n _properties.context.telemetryTrace.traceID = generateW3CId();\r\n var traceLocationName = \"_unknown_\";\r\n if (_location && _location.pathname) {\r\n traceLocationName = _location.pathname + (_location.hash || \"\");\r\n }\r\n // This populates the ai.operation.name which has a maximum size of 1024 so we need to sanitize it\r\n _properties.context.telemetryTrace.name = dataSanitizeString(_self_1.diagLog(), traceLocationName);\r\n }\r\n if (_currUri) {\r\n _prevUri = _currUri;\r\n _currUri = _location && _location.href || \"\";\r\n }\r\n else {\r\n _currUri = _location && _location.href || \"\";\r\n }\r\n setTimeout((function (uri) {\r\n // todo: override start time so that it is not affected by autoRoutePVDelay\r\n _self_1.trackPageView({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n }).bind(_this, _prevUri), _self_1.autoRoutePVDelay);\r\n });\r\n }\r\n }\r\n _self.setInitialized(true);\r\n };\r\n /**\r\n * Log a page visit time\r\n * @param pageName Name of page\r\n * @param pageVisitDuration Duration of visit to the page in milleseconds\r\n */\r\n function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {\r\n var properties = { PageName: pageName, PageUrl: pageUrl };\r\n _self.trackMetric({\r\n name: \"PageVisitTime\",\r\n average: pageVisitTime,\r\n max: pageVisitTime,\r\n min: pageVisitTime,\r\n sampleCount: 1\r\n }, properties);\r\n }\r\n function _addDefaultTelemetryInitializers(configGetters) {\r\n if (!configGetters.isBrowserLinkTrackingEnabled()) {\r\n var browserLinkPaths_1 = [\"/browserLinkSignalR/\", \"/__browserLink/\"];\r\n var dropBrowserLinkRequests = function (envelope) {\r\n if (envelope.baseType === RemoteDependencyData.dataType) {\r\n var remoteData = envelope.baseData;\r\n if (remoteData) {\r\n for (var i = 0; i < browserLinkPaths_1.length; i++) {\r\n if (remoteData.target && remoteData.target.indexOf(browserLinkPaths_1[i]) >= 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n _addTelemetryInitializer(dropBrowserLinkRequests);\r\n }\r\n }\r\n function _addTelemetryInitializer(telemetryInitializer) {\r\n _self._telemetryInitializers.push(telemetryInitializer);\r\n }\r\n function _sendCORSException(exception, properties) {\r\n var telemetryItem = TelemetryItemCreator.create(exception, Exception.dataType, Exception.envelopeType, _self.diagLog(), properties);\r\n _self.core.track(telemetryItem);\r\n }\r\n });\r\n return _this;\r\n }\r\n ApplicationInsights.getDefaultConfig = function (config) {\r\n if (!config) {\r\n config = {};\r\n }\r\n // set default values\r\n config.sessionRenewalMs = 30 * 60 * 1000;\r\n config.sessionExpirationMs = 24 * 60 * 60 * 1000;\r\n config.disableExceptionTracking = stringToBoolOrDefault(config.disableExceptionTracking);\r\n config.autoTrackPageVisitTime = stringToBoolOrDefault(config.autoTrackPageVisitTime);\r\n config.overridePageViewDuration = stringToBoolOrDefault(config.overridePageViewDuration);\r\n config.enableUnhandledPromiseRejectionTracking = stringToBoolOrDefault(config.enableUnhandledPromiseRejectionTracking);\r\n if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {\r\n config.samplingPercentage = 100;\r\n }\r\n config.isStorageUseDisabled = stringToBoolOrDefault(config.isStorageUseDisabled);\r\n config.isBrowserLinkTrackingEnabled = stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);\r\n config.enableAutoRouteTracking = stringToBoolOrDefault(config.enableAutoRouteTracking);\r\n config.namePrefix = config.namePrefix || \"\";\r\n config.enableDebug = stringToBoolOrDefault(config.enableDebug);\r\n config.disableFlushOnBeforeUnload = stringToBoolOrDefault(config.disableFlushOnBeforeUnload);\r\n config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);\r\n return config;\r\n };\r\n /**\r\n * Get the current cookie manager for this instance\r\n */\r\n ApplicationInsights.prototype.getCookieMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n ApplicationInsights.prototype.processTelemetry = function (env, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ApplicationInsights.prototype.trackEvent = function (event, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n ApplicationInsights.prototype.startTrackEvent = function (name) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n ApplicationInsights.prototype.stopTrackEvent = function (name, properties, measurements) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param {ITraceTelemetry} trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype.trackTrace = function (trace, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param {IMetricTelemetry} metric input object argument. Only name and average are mandatory.\r\n * @param {{[key: string]: any}} customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype.trackMetric = function (metric, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n ApplicationInsights.prototype.trackPageView = function (pageView, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView Page view item to be sent\r\n * @param properties Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n ApplicationInsights.prototype.sendPageViewInternal = function (pageView, properties, systemProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n ApplicationInsights.prototype.sendPageViewPerformanceInternal = function (pageViewPerformance, properties, systemProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n ApplicationInsights.prototype.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n ApplicationInsights.prototype.startTrackPage = function (name) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n ApplicationInsights.prototype.stopTrackPage = function (name, url, properties, measurement) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n ApplicationInsights.prototype.sendExceptionInternal = function (exception, customProperties, systemProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param {IExceptionTelemetry} exception Object which contains exception to be sent\r\n * @param {{[key: string]: any}} customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype.trackException = function (exception, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype._onerror = function (exception) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ApplicationInsights.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ApplicationInsights.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ApplicationInsights.Version = \"2.7.3\"; // Not currently used anywhere\r\n return ApplicationInsights;\r\n}(BaseTelemetryPlugin));\r\nexport { ApplicationInsights };\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n function Timing(logger, name) {\r\n var _self = this;\r\n var _events = {};\r\n _self.start = function (name) {\r\n if (typeof _events[name] !== \"undefined\") {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, \"start was called more than once for this event without calling stop.\", { name: name, key: name }, true);\r\n }\r\n _events[name] = +new Date;\r\n };\r\n _self.stop = function (name, url, properties, measurements) {\r\n var start = _events[name];\r\n if (isNaN(start)) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StopCalledWithoutStart, \"stop was called without a corresponding start.\", { name: name, key: name }, true);\r\n }\r\n else {\r\n var end = +new Date;\r\n var duration = dateTimeUtilsDuration(start, end);\r\n _self.action(name, url, duration, properties, measurements);\r\n }\r\n delete _events[name];\r\n _events[name] = undefined;\r\n };\r\n }\r\n return Timing;\r\n}());\r\n//# sourceMappingURL=ApplicationInsights.js.map","import { __extends } from \"tslib\";\r\nimport { utlGetSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { LoggingSeverity, _InternalMessageId, getJSON, arrForEach, isFunction, arrIndexOf, isString, dumpObj, isArray, getExceptionName } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar BaseSendBuffer = /** @class */ (function () {\r\n function BaseSendBuffer(logger, config) {\r\n var _buffer = [];\r\n var _bufferFullMessageSent = false;\r\n this._get = function () {\r\n return _buffer;\r\n };\r\n this._set = function (buffer) {\r\n _buffer = buffer;\r\n return _buffer;\r\n };\r\n dynamicProto(BaseSendBuffer, this, function (_self) {\r\n _self.enqueue = function (payload) {\r\n if (_self.count() >= config.eventsLimitInMem()) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.InMemoryStorageBufferFull, \"Maximum in-memory buffer size reached: \" + _self.count(), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _buffer.push(payload);\r\n };\r\n _self.count = function () {\r\n return _buffer.length;\r\n };\r\n _self.size = function () {\r\n var size = _buffer.length;\r\n for (var lp = 0; lp < _buffer.length; lp++) {\r\n size += _buffer[lp].length;\r\n }\r\n if (!config.emitLineDelimitedJson()) {\r\n size += 2;\r\n }\r\n return size;\r\n };\r\n _self.clear = function () {\r\n _buffer = [];\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.getItems = function () {\r\n return _buffer.slice(0);\r\n };\r\n _self.batchPayloads = function (payload) {\r\n if (payload && payload.length > 0) {\r\n var batch = config.emitLineDelimitedJson() ?\r\n payload.join(\"\\n\") :\r\n \"[\" + payload.join(\",\") + \"]\";\r\n return batch;\r\n }\r\n return null;\r\n };\r\n });\r\n }\r\n BaseSendBuffer.prototype.enqueue = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseSendBuffer.prototype.count = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n BaseSendBuffer.prototype.size = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n BaseSendBuffer.prototype.clear = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseSendBuffer.prototype.getItems = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n BaseSendBuffer.prototype.batchPayloads = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return BaseSendBuffer;\r\n}());\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function (_super) {\r\n __extends(ArraySendBuffer, _super);\r\n function ArraySendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n dynamicProto(ArraySendBuffer, _this, function (_self, _base) {\r\n _self.markAsSent = function (payload) {\r\n _base.clear();\r\n };\r\n _self.clearSent = function (payload) {\r\n // not supported\r\n };\r\n });\r\n return _this;\r\n }\r\n ArraySendBuffer.prototype.markAsSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ArraySendBuffer.prototype.clearSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return ArraySendBuffer;\r\n}(BaseSendBuffer));\r\nexport { ArraySendBuffer };\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function (_super) {\r\n __extends(SessionStorageSendBuffer, _super);\r\n function SessionStorageSendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n var _bufferFullMessageSent = false;\r\n dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\r\n var bufferItems = _getBuffer(SessionStorageSendBuffer.BUFFER_KEY);\r\n var notDeliveredItems = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n var buffer = _self._set(bufferItems.concat(notDeliveredItems));\r\n // If the buffer has too many items, drop items from the end.\r\n if (buffer.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n buffer.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\r\n }\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, buffer);\r\n _self.enqueue = function (payload) {\r\n if (_self.count() >= SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionStorageBufferFull, \"Maximum buffer size reached: \" + _self.count(), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _base.enqueue(payload);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._get());\r\n };\r\n _self.clear = function () {\r\n _base.clear();\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._get());\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.markAsSent = function (payload) {\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._set(_removePayloadsFromBuffer(payload, _self._get())));\r\n var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n if (sentElements instanceof Array && payload instanceof Array) {\r\n sentElements = sentElements.concat(payload);\r\n if (sentElements.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.SessionStorageBufferFull, \"Sent buffer reached its maximum size: \" + sentElements.length, true);\r\n sentElements.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\r\n }\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\r\n }\r\n };\r\n _self.clearSent = function (payload) {\r\n var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\r\n };\r\n function _removePayloadsFromBuffer(payloads, buffer) {\r\n var remaining = [];\r\n arrForEach(buffer, function (value) {\r\n if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {\r\n remaining.push(value);\r\n }\r\n });\r\n return remaining;\r\n }\r\n function _getBuffer(key) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = utlGetSessionStorage(logger, prefixedKey);\r\n if (bufferJson) {\r\n var buffer_1 = getJSON().parse(bufferJson);\r\n if (isString(buffer_1)) {\r\n // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n buffer_1 = getJSON().parse(buffer_1);\r\n }\r\n if (buffer_1 && isArray(buffer_1)) {\r\n return buffer_1;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToRestoreStorageBuffer, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n function _setBuffer(key, buffer) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = JSON.stringify(buffer);\r\n utlSetSessionStorage(logger, prefixedKey, bufferJson);\r\n }\r\n catch (e) {\r\n // if there was an error, clear the buffer\r\n // telemetry is stored in the _buffer array so we won't loose any items\r\n utlSetSessionStorage(logger, prefixedKey, JSON.stringify([]));\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedToSetStorageBuffer, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", { exception: dumpObj(e) });\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n SessionStorageSendBuffer.prototype.enqueue = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.clear = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.markAsSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.clearSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\";\r\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\";\r\n // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n return SessionStorageSendBuffer;\r\n}(BaseSendBuffer));\r\nexport { SessionStorageSendBuffer };\r\n//# sourceMappingURL=SendBuffer.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _aiNameFunc(baseName) {\r\n var aiName = \"ai.\" + baseName + \".\";\r\n return function (name) {\r\n return aiName + name;\r\n };\r\n}\r\nvar _aiApplication = _aiNameFunc(\"application\");\r\nvar _aiDevice = _aiNameFunc(\"device\");\r\nvar _aiLocation = _aiNameFunc(\"location\");\r\nvar _aiOperation = _aiNameFunc(\"operation\");\r\nvar _aiSession = _aiNameFunc(\"session\");\r\nvar _aiUser = _aiNameFunc(\"user\");\r\nvar _aiCloud = _aiNameFunc(\"cloud\");\r\nvar _aiInternal = _aiNameFunc(\"internal\");\r\nvar ContextTagKeys = /** @class */ (function (_super) {\r\n __extends(ContextTagKeys, _super);\r\n function ContextTagKeys() {\r\n return _super.call(this) || this;\r\n }\r\n return ContextTagKeys;\r\n}(createClassFromInterface({\r\n applicationVersion: _aiApplication(\"ver\"),\r\n applicationBuild: _aiApplication(\"build\"),\r\n applicationTypeId: _aiApplication(\"typeId\"),\r\n applicationId: _aiApplication(\"applicationId\"),\r\n applicationLayer: _aiApplication(\"layer\"),\r\n deviceId: _aiDevice(\"id\"),\r\n deviceIp: _aiDevice(\"ip\"),\r\n deviceLanguage: _aiDevice(\"language\"),\r\n deviceLocale: _aiDevice(\"locale\"),\r\n deviceModel: _aiDevice(\"model\"),\r\n deviceFriendlyName: _aiDevice(\"friendlyName\"),\r\n deviceNetwork: _aiDevice(\"network\"),\r\n deviceNetworkName: _aiDevice(\"networkName\"),\r\n deviceOEMName: _aiDevice(\"oemName\"),\r\n deviceOS: _aiDevice(\"os\"),\r\n deviceOSVersion: _aiDevice(\"osVersion\"),\r\n deviceRoleInstance: _aiDevice(\"roleInstance\"),\r\n deviceRoleName: _aiDevice(\"roleName\"),\r\n deviceScreenResolution: _aiDevice(\"screenResolution\"),\r\n deviceType: _aiDevice(\"type\"),\r\n deviceMachineName: _aiDevice(\"machineName\"),\r\n deviceVMName: _aiDevice(\"vmName\"),\r\n deviceBrowser: _aiDevice(\"browser\"),\r\n deviceBrowserVersion: _aiDevice(\"browserVersion\"),\r\n locationIp: _aiLocation(\"ip\"),\r\n locationCountry: _aiLocation(\"country\"),\r\n locationProvince: _aiLocation(\"province\"),\r\n locationCity: _aiLocation(\"city\"),\r\n operationId: _aiOperation(\"id\"),\r\n operationName: _aiOperation(\"name\"),\r\n operationParentId: _aiOperation(\"parentId\"),\r\n operationRootId: _aiOperation(\"rootId\"),\r\n operationSyntheticSource: _aiOperation(\"syntheticSource\"),\r\n operationCorrelationVector: _aiOperation(\"correlationVector\"),\r\n sessionId: _aiSession(\"id\"),\r\n sessionIsFirst: _aiSession(\"isFirst\"),\r\n sessionIsNew: _aiSession(\"isNew\"),\r\n userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\r\n userAccountId: _aiUser(\"accountId\"),\r\n userAgent: _aiUser(\"userAgent\"),\r\n userId: _aiUser(\"id\"),\r\n userStoreRegion: _aiUser(\"storeRegion\"),\r\n userAuthUserId: _aiUser(\"authUserId\"),\r\n userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\r\n userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\r\n cloudName: _aiCloud(\"name\"),\r\n cloudRole: _aiCloud(\"role\"),\r\n cloudRoleVer: _aiCloud(\"roleVer\"),\r\n cloudRoleInstance: _aiCloud(\"roleInstance\"),\r\n cloudEnvironment: _aiCloud(\"environment\"),\r\n cloudLocation: _aiCloud(\"location\"),\r\n cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\r\n internalNodeName: _aiInternal(\"nodeName\"),\r\n internalSdkVersion: _aiInternal(\"sdkVersion\"),\r\n internalAgentVersion: _aiInternal(\"agentVersion\"),\r\n internalSnippet: _aiInternal(\"snippet\"),\r\n internalSdkSrc: _aiInternal(\"sdkSrc\")\r\n})));\r\nexport { ContextTagKeys };\r\n//# sourceMappingURL=ContextTagKeys.js.map","import { ContextTagKeys } from \"./Contracts/Generated/ContextTagKeys\";\r\nexport var Extensions = {\r\n UserExt: \"user\",\r\n DeviceExt: \"device\",\r\n TraceExt: \"trace\",\r\n WebExt: \"web\",\r\n AppExt: \"app\",\r\n OSExt: \"os\",\r\n SessionExt: \"ses\",\r\n SDKExt: \"sdk\"\r\n};\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n//# sourceMappingURL=PartAExtensions.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { Envelope as AIEnvelope } from \"../../Interfaces/Contracts/Generated/Envelope\";\r\nimport { dataSanitizeString } from \"./DataSanitizer\";\r\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../../Constants\";\r\nvar Envelope = /** @class */ (function (_super) {\r\n __extends(Envelope, _super);\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Envelope(logger, data, name) {\r\n var _this = _super.call(this) || this;\r\n _this.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n _this.data = data;\r\n _this.time = toISOString(new Date());\r\n _this.aiDataContract = {\r\n time: 1 /* Required */,\r\n iKey: 1 /* Required */,\r\n name: 1 /* Required */,\r\n sampleRate: function () {\r\n return (_this.sampleRate === 100) ? 4 /* Hidden */ : 1 /* Required */;\r\n },\r\n tags: 1 /* Required */,\r\n data: 1 /* Required */\r\n };\r\n return _this;\r\n }\r\n return Envelope;\r\n}(AIEnvelope));\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * System variables for a telemetry item.\r\n */\r\nvar Envelope = /** @class */ (function () {\r\n function Envelope() {\r\n /**\r\n * Envelope version. For internal use only. By assigning this the default, it will not be serialized within the payload unless changed to a value other than #1.\r\n */\r\n this.ver = 1;\r\n /**\r\n * Sampling rate used in application. This telemetry item represents 1 / sampleRate actual telemetry items.\r\n */\r\n this.sampleRate = 100.0;\r\n /**\r\n * Key/value collection of context properties. See ContextTagKeys for information on available properties.\r\n */\r\n this.tags = {};\r\n }\r\n return Envelope;\r\n}());\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Data struct to contain only C section with custom fields.\r\n */\r\nvar Base = /** @class */ (function () {\r\n function Base() {\r\n }\r\n return Base;\r\n}());\r\nexport { Base };\r\n//# sourceMappingURL=Base.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Base } from \"./Base\";\r\n/**\r\n * Data struct to contain both B and C sections.\r\n */\r\nvar Data = /** @class */ (function (_super) {\r\n __extends(Data, _super);\r\n function Data() {\r\n return _super.call(this) || this;\r\n }\r\n return Data;\r\n}(Base));\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { Data as AIData } from \"../../Interfaces/Contracts/Generated/Data\";\r\nvar Data = /** @class */ (function (_super) {\r\n __extends(Data, _super);\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Data(baseType, data) {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n _this.aiDataContract = {\r\n baseType: 1 /* Required */,\r\n baseData: 1 /* Required */\r\n };\r\n _this.baseType = baseType;\r\n _this.baseData = data;\r\n return _this;\r\n }\r\n return Data;\r\n}(AIData));\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","import { __assign } from \"tslib\";\r\nimport { Data, Envelope, RemoteDependencyData, Event, Exception, Metric, PageView, Trace, PageViewPerformance, CtxTagKeys, HttpMethod, SampleRate, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { LoggingSeverity, _InternalMessageId, hasJSON, getJSON, objForEachKey, isNullOrUndefined, isNumber, isString, toISOString, setValue, isTruthy, optimizeObject } from \"@microsoft/applicationinsights-core-js\";\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = \"baseType\";\r\nvar strBaseData = \"baseData\";\r\nvar strProperties = \"properties\";\r\nvar strTrue = \"true\";\r\nfunction _setValueIf(target, field, value) {\r\n return setValue(target, field, value, isTruthy);\r\n}\r\n/*\r\n * Maps Part A data from CS 4.0\r\n */\r\nfunction _extractPartAExtensions(logger, item, env) {\r\n // todo: switch to keys from common in this method\r\n var envTags = env.tags = env.tags || {};\r\n var itmExt = item.ext = item.ext || {};\r\n var itmTags = item.tags = item.tags || [];\r\n var extUser = itmExt.user;\r\n if (extUser) {\r\n _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n }\r\n var extApp = itmExt.app;\r\n if (extApp) {\r\n _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n }\r\n var extDevice = itmExt.device;\r\n if (extDevice) {\r\n _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceClass);\r\n _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceType);\r\n }\r\n var web = item.ext.web;\r\n if (web) {\r\n _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n var envData = env.data = env.data || {};\r\n var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n _setValueIf(envProps, \"domain\", web.domain);\r\n _setValueIf(envProps, \"isManual\", web.isManual ? strTrue : null);\r\n _setValueIf(envProps, \"screenRes\", web.screenRes);\r\n _setValueIf(envProps, \"userConsent\", web.userConsent ? strTrue : null);\r\n }\r\n var extOs = itmExt.os;\r\n if (extOs) {\r\n _setValueIf(envTags, CtxTagKeys.deviceOS, extOs.name);\r\n }\r\n // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n var extTrace = itmExt.trace;\r\n if (extTrace) {\r\n _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n _setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace.name));\r\n _setValueIf(envTags, CtxTagKeys.operationId, extTrace.traceID);\r\n }\r\n // Sample 4.0 schema\r\n // {\r\n // \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n // \"name\" : \"MetricWithNamespace\",\r\n // \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n // \"ext\": { \"cloud\": {\r\n // \"role\": \"WATSON3\",\r\n // \"roleInstance\": \"CO4AEAP00000260\"\r\n // },\r\n // \"device\": {}, \"correlation\": {} },\r\n // \"tags\": [\r\n // { \"amazon.region\" : \"east2\" },\r\n // { \"os.expid\" : \"wp:02df239\" }\r\n // ]\r\n // }\r\n var tgs = {};\r\n // deals with tags.push({object})\r\n for (var i = itmTags.length - 1; i >= 0; i--) {\r\n var tg = itmTags[i];\r\n objForEachKey(tg, function (key, value) {\r\n tgs[key] = value;\r\n });\r\n itmTags.splice(i, 1);\r\n }\r\n // deals with tags[key]=value (and handles hasOwnProperty)\r\n objForEachKey(itmTags, function (tg, value) {\r\n tgs[tg] = value;\r\n });\r\n var theTags = __assign(__assign({}, envTags), tgs);\r\n if (!theTags[CtxTagKeys.internalSdkVersion]) {\r\n // Append a version in case it is not already set\r\n theTags[CtxTagKeys.internalSdkVersion] = \"javascript:\".concat(EnvelopeCreator.Version);\r\n }\r\n env.tags = optimizeObject(theTags);\r\n}\r\nfunction _extractPropsAndMeasurements(data, properties, measurements) {\r\n if (!isNullOrUndefined(data)) {\r\n objForEachKey(data, function (key, value) {\r\n if (isNumber(value)) {\r\n measurements[key] = value;\r\n }\r\n else if (isString(value)) {\r\n properties[key] = value;\r\n }\r\n else if (hasJSON()) {\r\n properties[key] = getJSON().stringify(value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {\r\n if (!isNullOrUndefined(properties)) {\r\n objForEachKey(properties, function (key, value) {\r\n properties[key] = value || customUndefinedValue;\r\n });\r\n }\r\n}\r\n// TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\nfunction _createEnvelope(logger, envelopeType, telemetryItem, data) {\r\n var envelope = new Envelope(logger, data, envelopeType);\r\n _setValueIf(envelope, \"sampleRate\", telemetryItem[SampleRate]);\r\n if ((telemetryItem[strBaseData] || {}).startTime) {\r\n envelope.time = toISOString(telemetryItem[strBaseData].startTime);\r\n }\r\n envelope.iKey = telemetryItem.iKey;\r\n var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n envelope.name = envelope.name.replace(\"{0}\", iKeyNoDashes);\r\n // extract all extensions from ctx\r\n _extractPartAExtensions(logger, telemetryItem, envelope);\r\n // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n telemetryItem.tags = telemetryItem.tags || [];\r\n return optimizeObject(envelope);\r\n}\r\nfunction EnvelopeCreatorInit(logger, telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n}\r\nexport var EnvelopeCreator = {\r\n Version: \"2.7.3\"\r\n};\r\nexport function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n if (isNullOrUndefined(bd)) {\r\n logger.warnToConsole(\"Invalid input for dependency data\");\r\n return null;\r\n }\r\n var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd.name, bd.duration, bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n var data = new Data(RemoteDependencyData.dataType, remoteDepData);\r\n return _createEnvelope(logger, RemoteDependencyData.envelopeType, telemetryItem, data);\r\n}\r\nexport function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customProperties = {};\r\n var customMeasurements = {};\r\n if (telemetryItem[strBaseType] !== Event.dataType) {\r\n customProperties[\"baseTypeSource\"] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n }\r\n if (telemetryItem[strBaseType] === Event.dataType) { // take collection\r\n customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n }\r\n else { // if its not a known type, convert to custom event\r\n if (telemetryItem[strBaseData]) {\r\n _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n }\r\n }\r\n // Extract root level properties from part C telemetryItem.data\r\n _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var eventName = telemetryItem[strBaseData].name;\r\n var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n var data = new Data(Event.dataType, eventData);\r\n return _createEnvelope(logger, Event.envelopeType, telemetryItem, data);\r\n}\r\nexport function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Extract root level properties from part C telemetryItem.data\r\n var customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n var data = new Data(Exception.dataType, exData);\r\n return _createEnvelope(logger, Exception.envelopeType, telemetryItem, data);\r\n}\r\nexport function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var baseData = telemetryItem[strBaseData];\r\n var props = baseData[strProperties] || {};\r\n var measurements = baseData.measurements || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseMetricData = new Metric(logger, baseData.name, baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);\r\n var data = new Data(Metric.dataType, baseMetricData);\r\n return _createEnvelope(logger, Metric.envelopeType, telemetryItem, data);\r\n}\r\nexport function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n var strDuration = \"duration\";\r\n var duration;\r\n var baseData = telemetryItem[strBaseData];\r\n if (!isNullOrUndefined(baseData) &&\r\n !isNullOrUndefined(baseData[strProperties]) &&\r\n !isNullOrUndefined(baseData[strProperties][strDuration])) { // from part B properties\r\n duration = baseData[strProperties][strDuration];\r\n delete baseData[strProperties][strDuration];\r\n }\r\n else if (!isNullOrUndefined(telemetryItem.data) &&\r\n !isNullOrUndefined(telemetryItem.data[strDuration])) { // from custom properties\r\n duration = telemetryItem.data[strDuration];\r\n delete telemetryItem.data[strDuration];\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n var currentContextId;\r\n if (((telemetryItem.ext || {}).trace || {}).traceID) {\r\n currentContextId = telemetryItem.ext.trace.traceID;\r\n }\r\n var id = bd.id || currentContextId;\r\n var name = bd.name;\r\n var url = bd.uri;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd.measurements || {};\r\n // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.refUri)) {\r\n properties[\"refUri\"] = bd.refUri;\r\n }\r\n // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.pageType)) {\r\n properties[\"pageType\"] = bd.pageType;\r\n }\r\n // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n properties[\"isLoggedIn\"] = bd.isLoggedIn.toString();\r\n }\r\n // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd[strProperties])) {\r\n var pageTags = bd[strProperties];\r\n objForEachKey(pageTags, function (key, value) {\r\n properties[key] = value;\r\n });\r\n }\r\n _extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n var data = new Data(PageView.dataType, pageViewData);\r\n return _createEnvelope(logger, PageView.envelopeType, telemetryItem, data);\r\n}\r\nexport function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var bd = telemetryItem[strBaseData];\r\n var name = bd.name;\r\n var url = bd.uri || bd.url;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd.measurements || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n var data = new Data(PageViewPerformance.dataType, baseData);\r\n return _createEnvelope(logger, PageViewPerformance.envelopeType, telemetryItem, data);\r\n}\r\nexport function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var message = telemetryItem[strBaseData].message;\r\n var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n var props = telemetryItem[strBaseData][strProperties] || {};\r\n var measurements = telemetryItem[strBaseData].measurements || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n var data = new Data(Trace.dataType, baseData);\r\n return _createEnvelope(logger, Trace.envelopeType, telemetryItem, data);\r\n}\r\n//# sourceMappingURL=EnvelopeCreator.js.map","import { LoggingSeverity, _InternalMessageId, getJSON, objForEachKey, isFunction, isObject, isArray } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar Serializer = /** @class */ (function () {\r\n function Serializer(logger) {\r\n dynamicProto(Serializer, this, function (_self) {\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n _self.serialize = function (input) {\r\n var output = _serializeObject(input, \"root\");\r\n try {\r\n return getJSON().stringify(output);\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, (e && isFunction(e.toString)) ? e.toString() : \"Error serializing object\", null, true);\r\n }\r\n };\r\n function _serializeObject(source, name) {\r\n var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n var output = {};\r\n if (!source) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n return output;\r\n }\r\n if (source[circularReferenceCheck]) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CircularReferenceDetected, \"Circular reference detected while serializing object\", { name: name }, true);\r\n return output;\r\n }\r\n if (!source.aiDataContract) {\r\n // special case for measurements/properties/tags\r\n if (name === \"measurements\") {\r\n output = _serializeStringMap(source, \"number\", name);\r\n }\r\n else if (name === \"properties\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (name === \"tags\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (isArray(source)) {\r\n output = _serializeArray(source, name);\r\n }\r\n else {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotSerializeObjectNonSerializable, \"Attempting to serialize an object which does not implement ISerializable\", { name: name }, true);\r\n try {\r\n // verify that the object can be stringified\r\n getJSON().stringify(source);\r\n output = source;\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, (e && isFunction(e.toString)) ? e.toString() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n return output;\r\n }\r\n source[circularReferenceCheck] = true;\r\n objForEachKey(source.aiDataContract, function (field, contract) {\r\n var isRequired = (isFunction(contract)) ? (contract() & 1 /* Required */) : (contract & 1 /* Required */);\r\n var isHidden = (isFunction(contract)) ? (contract() & 4 /* Hidden */) : (contract & 4 /* Hidden */);\r\n var isArray = contract & 2 /* Array */;\r\n var isPresent = source[field] !== undefined;\r\n var isObj = isObject(source[field]) && source[field] !== null;\r\n if (isRequired && !isPresent && !isArray) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.MissingRequiredFieldSpecification, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n // If not in debug mode, continue and hope the error is permissible\r\n }\r\n else if (!isHidden) { // Don't serialize hidden fields\r\n var value = void 0;\r\n if (isObj) {\r\n if (isArray) {\r\n // special case; recurse on each object in the source array\r\n value = _serializeArray(source[field], field);\r\n }\r\n else {\r\n // recurse on the source object in this field\r\n value = _serializeObject(source[field], field);\r\n }\r\n }\r\n else {\r\n // assign the source field to the output even if undefined or required\r\n value = source[field];\r\n }\r\n // only emit this field if the value is defined\r\n if (value !== undefined) {\r\n output[field] = value;\r\n }\r\n }\r\n });\r\n delete source[circularReferenceCheck];\r\n return output;\r\n }\r\n function _serializeArray(sources, name) {\r\n var output;\r\n if (!!sources) {\r\n if (!isArray(sources)) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ItemNotInArray, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", { name: name }, true);\r\n }\r\n else {\r\n output = [];\r\n for (var i = 0; i < sources.length; i++) {\r\n var source = sources[i];\r\n var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n output.push(item);\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n function _serializeStringMap(map, expectedType, name) {\r\n var output;\r\n if (map) {\r\n output = {};\r\n objForEachKey(map, function (field, value) {\r\n if (expectedType === \"string\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else if (!value.toString) {\r\n output[field] = \"invalid field: toString() is not defined.\";\r\n }\r\n else {\r\n output[field] = value.toString();\r\n }\r\n }\r\n else if (expectedType === \"number\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else {\r\n var num = parseFloat(value);\r\n if (isNaN(num)) {\r\n output[field] = \"NaN\";\r\n }\r\n else {\r\n output[field] = num;\r\n }\r\n }\r\n }\r\n else {\r\n output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n logger.throwInternal(LoggingSeverity.CRITICAL, output[field], null, true);\r\n }\r\n });\r\n }\r\n return output;\r\n }\r\n });\r\n }\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n Serializer.prototype.serialize = function (input) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map","var _a;\r\nimport { __assign, __extends } from \"tslib\";\r\nimport { SessionStorageSendBuffer, ArraySendBuffer } from \"./SendBuffer\";\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\r\nimport { Serializer } from \"./Serializer\"; // todo move to channel\r\nimport { DisabledPropertyName, RequestHeaders, PageView, Event, Trace, Exception, Metric, PageViewPerformance, RemoteDependencyData, ProcessLegacy, BreezeChannelIdentifier, SampleRate, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalMessageId, LoggingSeverity, getWindow, getNavigator, getJSON, BaseTelemetryPlugin, objForEachKey, isNullOrUndefined, arrForEach, dateNow, dumpObj, getExceptionName, getIEVersion, throwError, objKeys, isBeaconsSupported, isFetchSupported, useXDomainRequest, isXhrSupported, isArray } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Offline } from \"./Offline\";\r\nimport { Sample } from \"./TelemetryProcessors/Sample\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar FetchSyncRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\r\nfunction _getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nfunction _getDefaultAppInsightsChannelConfig() {\r\n // set default values\r\n return {\r\n endpointUrl: function () { return \"https://dc.services.visualstudio.com/v2/track\"; },\r\n emitLineDelimitedJson: function () { return false; },\r\n maxBatchInterval: function () { return 15000; },\r\n maxBatchSizeInBytes: function () { return 102400; },\r\n disableTelemetry: function () { return false; },\r\n enableSessionStorageBuffer: function () { return true; },\r\n isRetryDisabled: function () { return false; },\r\n isBeaconApiDisabled: function () { return true; },\r\n disableXhr: function () { return false; },\r\n onunloadDisableFetch: function () { return false; },\r\n onunloadDisableBeacon: function () { return false; },\r\n instrumentationKey: function () { return undefined; },\r\n namePrefix: function () { return undefined; },\r\n samplingPercentage: function () { return 100; },\r\n customHeaders: function () { return undefined; },\r\n convertUndefined: function () { return undefined; },\r\n eventsLimitInMem: function () { return 10000; }\r\n };\r\n}\r\nvar EnvelopeTypeCreator = (_a = {},\r\n _a[Event.dataType] = EventEnvelopeCreator,\r\n _a[Trace.dataType] = TraceEnvelopeCreator,\r\n _a[PageView.dataType] = PageViewEnvelopeCreator,\r\n _a[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator,\r\n _a[Exception.dataType] = ExceptionEnvelopeCreator,\r\n _a[Metric.dataType] = MetricEnvelopeCreator,\r\n _a[RemoteDependencyData.dataType] = DependencyEnvelopeCreator,\r\n _a);\r\nvar Sender = /** @class */ (function (_super) {\r\n __extends(Sender, _super);\r\n function Sender() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 1001;\r\n _this.identifier = BreezeChannelIdentifier;\r\n /**\r\n * How many times in a row a retryable error condition has occurred.\r\n */\r\n var _consecutiveErrors;\r\n /**\r\n * The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n */\r\n var _retryAt;\r\n /**\r\n * The time of the last send operation.\r\n */\r\n var _lastSend;\r\n /**\r\n * Flag indicating that the sending should be paused\r\n */\r\n var _paused = false;\r\n /**\r\n * Handle to the timer for delayed sending of batches of data.\r\n */\r\n var _timeoutHandle;\r\n var _serializer;\r\n var _stamp_specific_redirects;\r\n var _headers = {};\r\n // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _syncFetchPayload = 0;\r\n /**\r\n * The sender to use if the payload size is too large\r\n */\r\n var _fallbackSender;\r\n /**\r\n * The identified sender to use for the synchronous unload stage\r\n */\r\n var _syncUnloadSender;\r\n _this._senderConfig = _getDefaultAppInsightsChannelConfig();\r\n dynamicProto(Sender, _this, function (_self, _base) {\r\n function _notImplemented() {\r\n throwError(\"Method not implemented.\");\r\n }\r\n _self.pause = function () {\r\n _clearScheduledTimer();\r\n _paused = true;\r\n };\r\n _self.resume = function () {\r\n if (_paused) {\r\n _paused = false;\r\n _retryAt = null;\r\n // flush if we have exceeded the max-size already\r\n if (_self._buffer.size() > _self._senderConfig.maxBatchSizeInBytes()) {\r\n _self.triggerSend(true, null, 10 /* MaxBatchSize */);\r\n }\r\n _setupTimer();\r\n }\r\n };\r\n _self.flush = function () {\r\n if (!_paused) {\r\n // Clear the normal schedule timer as we are going to try and flush ASAP\r\n _clearScheduledTimer();\r\n try {\r\n _self.triggerSend(true, null, 1 /* ManualFlush */);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FlushFailed, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n };\r\n _self.onunloadFlush = function () {\r\n if (!_paused) {\r\n if ((_self._senderConfig.onunloadDisableBeacon() === false || _self._senderConfig.isBeaconApiDisabled() === false) && isBeaconsSupported()) {\r\n try {\r\n _self.triggerSend(true, _doUnloadSend, 2 /* Unload */);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToSendQueuedTelemetry, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n else {\r\n _self.flush();\r\n }\r\n }\r\n };\r\n _self.teardown = _notImplemented;\r\n _self.addHeader = function (name, value) {\r\n _headers[name] = value;\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n var ctx = _self._getTelCtx();\r\n var identifier = _self.identifier;\r\n _serializer = new Serializer(core.logger);\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = 0;\r\n _self._sender = null;\r\n _stamp_specific_redirects = 0;\r\n var diagLog = _self.diagLog();\r\n var defaultConfig = _getDefaultAppInsightsChannelConfig();\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _self._senderConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };\r\n });\r\n _self._buffer = (_self._senderConfig.enableSessionStorageBuffer() && utlCanUseSessionStorage())\r\n ? new SessionStorageSendBuffer(diagLog, _self._senderConfig) : new ArraySendBuffer(diagLog, _self._senderConfig);\r\n _self._sample = new Sample(_self._senderConfig.samplingPercentage(), diagLog);\r\n if (!_validateInstrumentationKey(config)) {\r\n diagLog.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidInstrumentationKey, \"Invalid Instrumentation key \" + config.instrumentationKey);\r\n }\r\n if (!isInternalApplicationInsightsEndpoint(_self._senderConfig.endpointUrl()) && _self._senderConfig.customHeaders() && _self._senderConfig.customHeaders().length > 0) {\r\n arrForEach(_self._senderConfig.customHeaders(), function (customHeader) {\r\n _this.addHeader(customHeader.header, customHeader.value);\r\n });\r\n }\r\n var senderConfig = _self._senderConfig;\r\n var sendPostFunc = null;\r\n if (!senderConfig.disableXhr() && useXDomainRequest()) {\r\n sendPostFunc = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig.disableXhr() && isXhrSupported()) {\r\n sendPostFunc = _xhrSender;\r\n }\r\n if (!sendPostFunc && isFetchSupported()) {\r\n sendPostFunc = _fetchSender;\r\n }\r\n // always fallback to XHR\r\n _fallbackSender = sendPostFunc || _xhrSender;\r\n if (!senderConfig.isBeaconApiDisabled() && isBeaconsSupported()) {\r\n // Config is set to always used beacon sending\r\n sendPostFunc = _beaconSender;\r\n }\r\n _self._sender = sendPostFunc || _xhrSender;\r\n if (!senderConfig.onunloadDisableFetch() && isFetchSupported(true)) {\r\n // Try and use the fetch with keepalive\r\n _syncUnloadSender = _fetchKeepAliveSender;\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Try and use sendBeacon\r\n _syncUnloadSender = _beaconSender;\r\n }\r\n else if (!senderConfig.disableXhr() && useXDomainRequest()) {\r\n _syncUnloadSender = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig.disableXhr() && isXhrSupported()) {\r\n _syncUnloadSender = _xhrSender;\r\n }\r\n else {\r\n _syncUnloadSender = _fallbackSender;\r\n }\r\n };\r\n _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n try {\r\n // if master off switch is set, don't send any data\r\n if (_self._senderConfig.disableTelemetry()) {\r\n // Do not send/save data\r\n return;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSendEmptyTelemetry, \"Cannot send empty telemetry\");\r\n return;\r\n }\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem.baseType) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidEvent, \"Cannot send telemetry without baseData and baseType\");\r\n return;\r\n }\r\n if (!telemetryItem.baseType) {\r\n // Default\r\n telemetryItem.baseType = \"EventData\";\r\n }\r\n // ensure a sender was constructed\r\n if (!_self._sender) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.SenderNotInitialized, \"Sender was not initialized\");\r\n return;\r\n }\r\n // check if this item should be sampled in, else add sampleRate tag\r\n if (!_isSampledIn(telemetryItem)) {\r\n // Item is sampled out, do not send it\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TelemetrySampledAndNotSent, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample.sampleRate });\r\n return;\r\n }\r\n else {\r\n telemetryItem[SampleRate] = _self._sample.sampleRate;\r\n }\r\n var convertUndefined = _self._senderConfig.convertUndefined() || undefined;\r\n // construct an envelope that Application Insights endpoint can understand\r\n // if ikey of telemetry is provided and not empty, envelope will use this iKey instead of senderConfig iKey\r\n var defaultEnvelopeIkey = telemetryItem.iKey || _self._senderConfig.instrumentationKey();\r\n var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, itemCtx.diagLog(), convertUndefined);\r\n if (!aiEnvelope_1) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CreateEnvelopeError, \"Unable to create an AppInsights envelope\");\r\n return;\r\n }\r\n var doNotSendItem_1 = false;\r\n // this is for running in legacy mode, where customer may already have a custom initializer present\r\n if (telemetryItem.tags && telemetryItem.tags[ProcessLegacy]) {\r\n arrForEach(telemetryItem.tags[ProcessLegacy], function (callBack) {\r\n try {\r\n if (callBack && callBack(aiEnvelope_1) === false) {\r\n doNotSendItem_1 = true;\r\n itemCtx.diagLog().warnToConsole(\"Telemetry processor check returns false\");\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n delete telemetryItem.tags[ProcessLegacy];\r\n }\r\n if (doNotSendItem_1) {\r\n return; // do not send, no need to execute next plugin\r\n }\r\n // check if the incoming payload is too large, truncate if necessary\r\n var payload = _serializer.serialize(aiEnvelope_1);\r\n // flush if we would exceed the max-size limit by adding this item\r\n var buffer = _self._buffer;\r\n var bufferSize = buffer.size();\r\n if ((bufferSize + payload.length) > _self._senderConfig.maxBatchSizeInBytes()) {\r\n _self.triggerSend(true, null, 10 /* MaxBatchSize */);\r\n }\r\n // enqueue the payload\r\n buffer.enqueue(payload);\r\n // ensure an invocation timeout is set\r\n _setupTimer();\r\n }\r\n catch (e) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedAddingTelemetryToBuffer, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n // hand off the telemetry item to the next plugin\r\n _self.processNext(telemetryItem, itemCtx);\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n if (xhr.readyState === 4) {\r\n _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);\r\n }\r\n };\r\n /**\r\n * Immediately send buffered data\r\n * @param async {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n _self.triggerSend = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n if (!_paused) {\r\n try {\r\n var buffer = _self._buffer;\r\n // Send data only if disableTelemetry is false\r\n if (!_self._senderConfig.disableTelemetry()) {\r\n if (buffer.count() > 0) {\r\n var payload = buffer.getItems();\r\n _notifySendRequest(sendReason || 0 /* Undefined */, async);\r\n // invoke send\r\n if (forcedSender) {\r\n forcedSender.call(_this, payload, async);\r\n }\r\n else {\r\n _self._sender(payload, async);\r\n }\r\n }\r\n // update lastSend time to enable throttling\r\n _lastSend = +new Date;\r\n }\r\n else {\r\n buffer.clear();\r\n }\r\n _clearScheduledTimer();\r\n }\r\n catch (e) {\r\n /* Ignore this error for IE under v10 */\r\n var ieVer = getIEVersion();\r\n if (!ieVer || ieVer > 9) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TransmissionFailed, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * error handler\r\n */\r\n _self._onError = function (payload, message, event) {\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.OnError, \"Failed to send telemetry.\", { message: message });\r\n _self._buffer.clearSent(payload);\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n _self._onPartialSuccess = function (payload, results) {\r\n var failed = [];\r\n var retry = [];\r\n // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n var errors = results.errors.reverse();\r\n for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n var error = errors_1[_i];\r\n var extracted = payload.splice(error.index, 1)[0];\r\n if (_isRetriable(error.statusCode)) {\r\n retry.push(extracted);\r\n }\r\n else {\r\n // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n failed.push(extracted);\r\n }\r\n }\r\n if (payload.length > 0) {\r\n _self._onSuccess(payload, results.itemsAccepted);\r\n }\r\n if (failed.length > 0) {\r\n _self._onError(failed, _formatErrorMessageXhr(null, [\"partial success\", results.itemsAccepted, \"of\", results.itemsReceived].join(\" \")));\r\n }\r\n if (retry.length > 0) {\r\n _resendPayload(retry);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \"Partial success. \" +\r\n \"Delivered: \" + payload.length + \", Failed: \" + failed.length +\r\n \". Will retry to send \" + retry.length + \" our of \" + results.itemsReceived + \" items\");\r\n }\r\n };\r\n /**\r\n * success handler\r\n */\r\n _self._onSuccess = function (payload, countOfItemsInPayload) {\r\n _self._buffer.clearSent(payload);\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n _self._xdrOnLoad = function (xdr, payload) {\r\n var responseText = _getResponseText(xdr);\r\n if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n _consecutiveErrors = 0;\r\n _self._onSuccess(payload, 0);\r\n }\r\n else {\r\n var results = _parseResponse(responseText);\r\n if (results && results.itemsReceived && results.itemsReceived > results.itemsAccepted\r\n && !_self._senderConfig.isRetryDisabled()) {\r\n _self._onPartialSuccess(payload, results);\r\n }\r\n else {\r\n _self._onError(payload, _formatErrorMessageXdr(xdr));\r\n }\r\n }\r\n };\r\n function _isSampledIn(envelope) {\r\n return _self._sample.isSampledIn(envelope);\r\n }\r\n function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {\r\n var response = null;\r\n if (!_self._appId) {\r\n response = _parseResponse(res);\r\n if (response && response.appId) {\r\n _self._appId = response.appId;\r\n }\r\n }\r\n if ((status < 200 || status >= 300) && status !== 0) {\r\n // Update End Point url if permanent redirect or moved permanently\r\n // Updates the end point url before retry\r\n if (status === 301 || status === 307 || status === 308) {\r\n if (!_checkAndUpdateEndPointUrl(responseUrl)) {\r\n _self._onError(payload, errorMessage);\r\n return;\r\n }\r\n }\r\n if (!_self._senderConfig.isRetryDisabled() && _isRetriable(status)) {\r\n _resendPayload(payload);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" +\r\n \"Response code \" + status + \". Will retry to send \" + payload.length + \" items.\");\r\n }\r\n else {\r\n _self._onError(payload, errorMessage);\r\n }\r\n }\r\n else if (Offline.isOffline()) { // offline\r\n // Note: Don't check for status == 0, since adblock gives this code\r\n if (!_self._senderConfig.isRetryDisabled()) {\r\n var offlineBackOffMultiplier = 10; // arbritrary number\r\n _resendPayload(payload, offlineBackOffMultiplier);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". Offline - Response Code: \".concat(status, \". Offline status: \").concat(Offline.isOffline(), \". Will retry to send \").concat(payload.length, \" items.\"));\r\n }\r\n }\r\n else {\r\n // check if the xhr's responseURL or fetch's response.url is same as endpoint url\r\n // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\r\n _checkAndUpdateEndPointUrl(responseUrl);\r\n if (status === 206) {\r\n if (!response) {\r\n response = _parseResponse(res);\r\n }\r\n if (response && !_self._senderConfig.isRetryDisabled()) {\r\n _self._onPartialSuccess(payload, response);\r\n }\r\n else {\r\n _self._onError(payload, errorMessage);\r\n }\r\n }\r\n else {\r\n _consecutiveErrors = 0;\r\n _self._onSuccess(payload, countOfItemsInPayload);\r\n }\r\n }\r\n }\r\n function _checkAndUpdateEndPointUrl(responseUrl) {\r\n // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\r\n if (_stamp_specific_redirects >= 10) {\r\n // _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\r\n // _stamp_specific_redirects = 0;\r\n return false;\r\n }\r\n if (!isNullOrUndefined(responseUrl) && responseUrl !== \"\") {\r\n if (responseUrl !== _self._senderConfig.endpointUrl()) {\r\n _self._senderConfig.endpointUrl = function () { return responseUrl; };\r\n ++_stamp_specific_redirects;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _doUnloadSend(payload, isAsync) {\r\n if (_syncUnloadSender) {\r\n // We are unloading so always call the sender with sync set to false\r\n _syncUnloadSender(payload, false);\r\n }\r\n else {\r\n // Fallback to the previous beacon Sender (which causes a CORB warning on chrome now)\r\n _beaconSender(payload, isAsync);\r\n }\r\n }\r\n function _doBeaconSend(payload) {\r\n var nav = getNavigator();\r\n var buffer = _self._buffer;\r\n var url = _self._senderConfig.endpointUrl();\r\n var batch = _self._buffer.batchPayloads(payload);\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n var plainTextBatch = new Blob([batch], { type: \"text/plain;charset=UTF-8\" });\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n var queued = nav.sendBeacon(url, plainTextBatch);\r\n if (queued) {\r\n buffer.markAsSent(payload);\r\n // no response from beaconSender, clear buffer\r\n _self._onSuccess(payload, payload.length);\r\n }\r\n return queued;\r\n }\r\n /**\r\n * Send Beacon API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - not used\r\n * Note: Beacon API does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _beaconSender(payload, isAsync) {\r\n if (isArray(payload) && payload.length > 0) {\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n if (!_doBeaconSend(payload)) {\r\n // Failed to send entire payload so try and split data and try to send as much events as possible\r\n var droppedPayload = [];\r\n for (var lp = 0; lp < payload.length; lp++) {\r\n var thePayload = payload[lp];\r\n if (!_doBeaconSend([thePayload])) {\r\n // Can't send anymore, so split the batch and drop the rest\r\n droppedPayload.push(thePayload);\r\n }\r\n }\r\n if (droppedPayload.length > 0) {\r\n _fallbackSender(droppedPayload, true);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Send XMLHttpRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n */\r\n function _xhrSender(payload, isAsync) {\r\n var xhr = new XMLHttpRequest();\r\n var endPointUrl = _self._senderConfig.endpointUrl();\r\n try {\r\n xhr[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n xhr.open(\"POST\", endPointUrl, isAsync);\r\n xhr.setRequestHeader(\"Content-type\", \"application/json\");\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n xhr.setRequestHeader(RequestHeaders.sdkContextHeader, RequestHeaders.sdkContextHeaderAppIdRequest);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n xhr.setRequestHeader(headerName, _headers[headerName]);\r\n });\r\n xhr.onreadystatechange = function () { return _self._xhrReadyStateChange(xhr, payload, payload.length); };\r\n xhr.onerror = function (event) { return _self._onError(payload, _formatErrorMessageXhr(xhr), event); };\r\n // compose an array of payloads\r\n var batch = _self._buffer.batchPayloads(payload);\r\n xhr.send(batch);\r\n _self._buffer.markAsSent(payload);\r\n }\r\n function _fetchKeepAliveSender(payload, isAsync) {\r\n if (isArray(payload)) {\r\n var payloadSize = payload.length;\r\n for (var lp = 0; lp < payload.length; lp++) {\r\n payloadSize += payload[lp].length;\r\n }\r\n if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {\r\n _doFetchSender(payload, false);\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Fallback to beacon sender as we at least get told which events can't be scheduled\r\n _beaconSender(payload, isAsync);\r\n }\r\n else {\r\n // Payload is going to be too big so just try and send via XHR\r\n _fallbackSender && _fallbackSender(payload, true);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n }\r\n }\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - not used\r\n */\r\n function _fetchSender(payload, isAsync) {\r\n _doFetchSender(payload, true);\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - For fetch this identifies whether we are \"unloading\" (false) or a normal request\r\n */\r\n function _doFetchSender(payload, isAsync) {\r\n var _a;\r\n var endPointUrl = _self._senderConfig.endpointUrl();\r\n var batch = _self._buffer.batchPayloads(payload);\r\n var plainTextBatch = new Blob([batch], { type: \"application/json\" });\r\n var requestHeaders = new Headers();\r\n var batchLength = batch.length;\r\n var ignoreResponse = false;\r\n var responseHandled = false;\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n requestHeaders.append(RequestHeaders.sdkContextHeader, RequestHeaders.sdkContextHeaderAppIdRequest);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n requestHeaders.append(headerName, _headers[headerName]);\r\n });\r\n var init = (_a = {\r\n method: \"POST\",\r\n headers: requestHeaders,\r\n body: plainTextBatch\r\n },\r\n _a[DisabledPropertyName] = true // Mark so we don't attempt to track this request\r\n ,\r\n _a);\r\n if (!isAsync) {\r\n init.keepalive = true;\r\n // As a sync request (during unload), it is unlikely that we will get a chance to process the response so\r\n // just like beacon send assume that the events have been accepted and processed\r\n ignoreResponse = true;\r\n _syncFetchPayload += batchLength;\r\n }\r\n var request = new Request(endPointUrl, init);\r\n try {\r\n // Also try and tag the request (just in case the value in init is not copied over)\r\n request[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n _self._buffer.markAsSent(payload);\r\n try {\r\n fetch(request).then(function (response) {\r\n if (!isAsync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n if (!responseHandled) {\r\n responseHandled = true;\r\n /**\r\n * The Promise returned from fetch() won’t reject on HTTP error status even if the response is an HTTP 404 or 500.\r\n * Instead, it will resolve normally (with ok status set to false), and it will only reject on network failure\r\n * or if anything prevented the request from completing.\r\n */\r\n if (!response.ok) {\r\n _self._onError(payload, response.statusText);\r\n }\r\n else {\r\n response.text().then(function (text) {\r\n _checkResponsStatus(response.status, payload, response.url, payload.length, response.statusText, text);\r\n });\r\n }\r\n }\r\n })[\"catch\"](function (error) {\r\n if (!isAsync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n if (!responseHandled) {\r\n responseHandled = true;\r\n _self._onError(payload, error.message);\r\n }\r\n });\r\n }\r\n catch (e) {\r\n if (!responseHandled) {\r\n _self._onError(payload, dumpObj(e));\r\n }\r\n }\r\n if (ignoreResponse && !responseHandled) {\r\n // Assume success during unload processing as we most likely won't get the response\r\n responseHandled = true;\r\n _self._onSuccess(payload, payload.length);\r\n }\r\n }\r\n /**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\n function _parseResponse(response) {\r\n try {\r\n if (response && response !== \"\") {\r\n var result = getJSON().parse(response);\r\n if (result && result.itemsReceived && result.itemsReceived >= result.itemsAccepted &&\r\n result.itemsReceived - result.itemsAccepted === result.errors.length) {\r\n return result;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidBackendResponse, \"Cannot parse the response. \" + getExceptionName(e), {\r\n response: response\r\n });\r\n }\r\n return null;\r\n }\r\n /**\r\n * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n * @param payload\r\n */\r\n function _resendPayload(payload, linearFactor) {\r\n if (linearFactor === void 0) { linearFactor = 1; }\r\n if (!payload || payload.length === 0) {\r\n return;\r\n }\r\n var buffer = _self._buffer;\r\n buffer.clearSent(payload);\r\n _consecutiveErrors++;\r\n for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n var item = payload_1[_i];\r\n buffer.enqueue(item);\r\n }\r\n // setup timer\r\n _setRetryTime(linearFactor);\r\n _setupTimer();\r\n }\r\n /**\r\n * Calculates the time to wait before retrying in case of an error based on\r\n * http://en.wikipedia.org/wiki/Exponential_backoff\r\n */\r\n function _setRetryTime(linearFactor) {\r\n var SlotDelayInSeconds = 10;\r\n var delayInSeconds;\r\n if (_consecutiveErrors <= 1) {\r\n delayInSeconds = SlotDelayInSeconds;\r\n }\r\n else {\r\n var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n // tslint:disable-next-line:insecure-random\r\n var backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n backOffDelay = linearFactor * backOffDelay;\r\n delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\r\n }\r\n // TODO: Log the backoff time like the C# version does.\r\n var retryAfterTimeSpan = dateNow() + (delayInSeconds * 1000);\r\n // TODO: Log the retry at time like the C# version does.\r\n _retryAt = retryAfterTimeSpan;\r\n }\r\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && !_paused) {\r\n var retryInterval = _retryAt ? Math.max(0, _retryAt - dateNow()) : 0;\r\n var timerValue = Math.max(_self._senderConfig.maxBatchInterval(), retryInterval);\r\n _timeoutHandle = setTimeout(function () {\r\n _timeoutHandle = null;\r\n _self.triggerSend(true, null, 1 /* NormalSchedule */);\r\n }, timerValue);\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n clearTimeout(_timeoutHandle);\r\n _timeoutHandle = null;\r\n _retryAt = null;\r\n }\r\n /**\r\n * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n * @param statusCode\r\n */\r\n function _isRetriable(statusCode) {\r\n return statusCode === 408 // Timeout\r\n || statusCode === 429 // Too many requests.\r\n || statusCode === 500 // Internal server error.\r\n || statusCode === 503; // Service unavailable.\r\n }\r\n function _formatErrorMessageXhr(xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr.status + \",Response:\" + _getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n }\r\n /**\r\n * Send XDomainRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _xdrSender(payload, isAsync) {\r\n var buffer = _self._buffer;\r\n var _window = getWindow();\r\n var xdr = new XDomainRequest();\r\n xdr.onload = function () { return _self._xdrOnLoad(xdr, payload); };\r\n xdr.onerror = function (event) { return _self._onError(payload, _formatErrorMessageXdr(xdr), event); };\r\n // XDomainRequest requires the same protocol as the hosting page.\r\n // If the protocol doesn't match, we can't send the telemetry :(.\r\n var hostingProtocol = _window && _window.location && _window.location.protocol || \"\";\r\n if (_self._senderConfig.endpointUrl().lastIndexOf(hostingProtocol, 0) !== 0) {\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" +\r\n \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\");\r\n buffer.clear();\r\n return;\r\n }\r\n var endpointUrl = _self._senderConfig.endpointUrl().replace(/^(https?:)/, \"\");\r\n xdr.open(\"POST\", endpointUrl);\r\n // compose an array of payloads\r\n var batch = buffer.batchPayloads(payload);\r\n xdr.send(batch);\r\n buffer.markAsSent(payload);\r\n }\r\n function _formatErrorMessageXdr(xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + _getResponseText(xdr) || \"\";\r\n }\r\n return message;\r\n }\r\n // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n function _getNotifyMgr() {\r\n var func = \"getNotifyMgr\";\r\n if (_self.core[func]) {\r\n return _self.core[func]();\r\n }\r\n // using _self.core['_notificationManager'] for backward compatibility\r\n return _self.core[\"_notificationManager\"];\r\n }\r\n function _notifySendRequest(sendRequest, isAsync) {\r\n var manager = _getNotifyMgr();\r\n if (manager && manager.eventsSendRequest) {\r\n try {\r\n manager.eventsSendRequest(sendRequest, isAsync);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.NotificationException, \"send request notification failed: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n /**\r\n * Validate UUID Format\r\n * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n */\r\n function _validateInstrumentationKey(config) {\r\n var disableIKeyValidationFlag = isNullOrUndefined(config.disableInstrumentationKeyValidation) ? false : config.disableInstrumentationKeyValidation;\r\n if (disableIKeyValidationFlag) {\r\n return true;\r\n }\r\n var UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\r\n var regexp = new RegExp(UUID_Regex);\r\n return regexp.test(config.instrumentationKey);\r\n }\r\n });\r\n return _this;\r\n }\r\n Sender.constructEnvelope = function (orig, iKey, logger, convertUndefined) {\r\n var envelope;\r\n if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\r\n envelope = __assign(__assign({}, orig), { iKey: iKey });\r\n }\r\n else {\r\n envelope = orig;\r\n }\r\n var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;\r\n return creator(logger, envelope, convertUndefined);\r\n };\r\n /**\r\n * Pause the sending (transmission) of events, this will cause all events to be batched only until the maximum limits are\r\n * hit at which point new events are dropped. Will also cause events to NOT be sent during page unload, so if Session storage\r\n * is disabled events will be lost.\r\n * SessionStorage Limit is 2000 events, In-Memory (Array) Storage is 10,000 events (can be configured via the eventsLimitInMem).\r\n */\r\n Sender.prototype.pause = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Resume the sending (transmission) of events, this will restart the timer and any batched events will be sent using the normal\r\n * send interval.\r\n */\r\n Sender.prototype.resume = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Flush the batched events immediately (not synchronously).\r\n * Will not flush if the Sender has been paused.\r\n */\r\n Sender.prototype.flush = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Flush the batched events synchronously (if possible -- based on configuration).\r\n * Will not flush if the Send has been paused.\r\n */\r\n Sender.prototype.onunloadFlush = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Sender.prototype.teardown = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Sender.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Sender.prototype.processTelemetry = function (telemetryItem, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n Sender.prototype._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Immediately send buffered data\r\n * @param async {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n Sender.prototype.triggerSend = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * error handler\r\n */\r\n Sender.prototype._onError = function (payload, message, event) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n Sender.prototype._onPartialSuccess = function (payload, results) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * success handler\r\n */\r\n Sender.prototype._onSuccess = function (payload, countOfItemsInPayload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n Sender.prototype._xdrOnLoad = function (xdr, payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add header to request\r\n * @param name - Header name.\r\n * @param value - Header value.\r\n */\r\n Sender.prototype.addHeader = function (name, value) {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n };\r\n return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map","import { getWindow, getDocument, getNavigator, isUndefined, isNullOrUndefined, attachEvent } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\n/**\r\n * @description Monitors browser for offline events\r\n * @export default - Offline: Static instance of OfflineListener\r\n * @class OfflineListener\r\n */\r\nvar OfflineListener = /** @class */ (function () {\r\n function OfflineListener() {\r\n var _window = getWindow();\r\n var _document = getDocument();\r\n var isListening = false;\r\n var _onlineStatus = true;\r\n dynamicProto(OfflineListener, this, function (_self) {\r\n try {\r\n if (_window) {\r\n if (attachEvent(_window, \"online\", _setOnline)) {\r\n attachEvent(_window, \"offline\", _setOffline);\r\n isListening = true;\r\n }\r\n }\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (!isUndefined(target.ononline)) {\r\n target.ononline = _setOnline;\r\n target.onoffline = _setOffline;\r\n isListening = true;\r\n }\r\n }\r\n if (isListening) {\r\n // We are listening to events so lets set the current status rather than assuming we are online #1538\r\n var _navigator = getNavigator(); // Gets the window.navigator or workerNavigator depending on the global\r\n if (_navigator && !isNullOrUndefined(_navigator.onLine)) { // navigator.onLine is undefined in react-native\r\n _onlineStatus = _navigator.onLine;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // this makes react-native less angry\r\n isListening = false;\r\n }\r\n _self.isListening = isListening;\r\n _self.isOnline = function () {\r\n var result = true;\r\n var _navigator = getNavigator();\r\n if (isListening) {\r\n result = _onlineStatus;\r\n }\r\n else if (_navigator && !isNullOrUndefined(_navigator.onLine)) { // navigator.onLine is undefined in react-native\r\n result = _navigator.onLine;\r\n }\r\n return result;\r\n };\r\n _self.isOffline = function () {\r\n return !_self.isOnline();\r\n };\r\n function _setOnline() {\r\n _onlineStatus = true;\r\n }\r\n function _setOffline() {\r\n _onlineStatus = false;\r\n }\r\n });\r\n }\r\n OfflineListener.prototype.isOnline = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n OfflineListener.prototype.isOffline = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n OfflineListener.Offline = new OfflineListener;\r\n return OfflineListener;\r\n}());\r\nexport { OfflineListener };\r\nexport var Offline = OfflineListener.Offline;\r\n//# sourceMappingURL=Offline.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\nvar MIN_INPUT_LENGTH = 8;\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n function HashCodeScoreGenerator() {\r\n }\r\n HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n return score * 100;\r\n };\r\n HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n while (input.length < MIN_INPUT_LENGTH) {\r\n input = input.concat(input);\r\n }\r\n // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n var hash = 5381;\r\n for (var i = 0; i < input.length; ++i) {\r\n hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n hash = hash & hash;\r\n }\r\n return Math.abs(hash);\r\n };\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n//# sourceMappingURL=HashCodeScoreGenerator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { HashCodeScoreGenerator } from \"./HashCodeScoreGenerator\";\r\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n function SamplingScoreGenerator() {\r\n var _self = this;\r\n var hashCodeGenerator = new HashCodeScoreGenerator();\r\n var keys = new ContextTagKeys();\r\n _self.getSamplingScore = function (item) {\r\n var score = 0;\r\n if (item.tags && item.tags[keys.userId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item.tags[keys.userId]);\r\n }\r\n else if (item.ext && item.ext.user && item.ext.user.id) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.user.id);\r\n }\r\n else if (item.tags && item.tags[keys.operationId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item.tags[keys.operationId]);\r\n }\r\n else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace.traceID) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace.traceID);\r\n }\r\n else {\r\n // tslint:disable-next-line:insecure-random\r\n score = (Math.random() * 100);\r\n }\r\n return score;\r\n };\r\n }\r\n return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n//# sourceMappingURL=SamplingScoreGenerator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { SamplingScoreGenerator } from \"./SamplingScoreGenerators/SamplingScoreGenerator\";\r\nimport { Metric } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalMessageId, LoggingSeverity, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nvar Sample = /** @class */ (function () {\r\n function Sample(sampleRate, logger) {\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n this.INT_MAX_VALUE = 2147483647;\r\n var _logger = logger || safeGetLogger(null);\r\n if (sampleRate > 100 || sampleRate < 0) {\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SampleRateOutOfRange, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", { samplingRate: sampleRate }, true);\r\n sampleRate = 100;\r\n }\r\n this.sampleRate = sampleRate;\r\n this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n }\r\n /**\r\n * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n */\r\n Sample.prototype.isSampledIn = function (envelope) {\r\n var samplingPercentage = this.sampleRate; // 0 - 100\r\n var isSampledIn = false;\r\n if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n return true;\r\n }\r\n else if (envelope.baseType === Metric.dataType) {\r\n // exclude MetricData telemetry from sampling\r\n return true;\r\n }\r\n isSampledIn = this.samplingScoreGenerator.getSamplingScore(envelope) < samplingPercentage;\r\n return isSampledIn;\r\n };\r\n return Sample;\r\n}());\r\nexport { Sample };\r\n//# sourceMappingURL=Sample.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalMessageId, LoggingSeverity, safeGetCookieMgr, isFunction, newId, dumpObj, getExceptionName, dateNow, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nvar cookieNameConst = \"ai_session\";\r\nvar Session = /** @class */ (function () {\r\n function Session() {\r\n }\r\n return Session;\r\n}());\r\nexport { Session };\r\nvar _SessionManager = /** @class */ (function () {\r\n function _SessionManager(config, core) {\r\n var self = this;\r\n var _storageNamePrefix;\r\n var _cookieUpdatedTimestamp;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n dynamicProto(_SessionManager, self, function (_self) {\r\n if (!config) {\r\n config = {};\r\n }\r\n if (!isFunction(config.sessionExpirationMs)) {\r\n config.sessionExpirationMs = function () { return _SessionManager.acquisitionSpan; };\r\n }\r\n if (!isFunction(config.sessionRenewalMs)) {\r\n config.sessionRenewalMs = function () { return _SessionManager.renewalSpan; };\r\n }\r\n _self.config = config;\r\n // sessionCookiePostfix takes the preference if it is configured, otherwise takes namePrefix if configured.\r\n var sessionCookiePostfix = (_self.config.sessionCookiePostfix && _self.config.sessionCookiePostfix()) ?\r\n _self.config.sessionCookiePostfix() :\r\n ((_self.config.namePrefix && _self.config.namePrefix()) ? _self.config.namePrefix() : \"\");\r\n _storageNamePrefix = function () { return cookieNameConst + sessionCookiePostfix; };\r\n _self.automaticSession = new Session();\r\n _self.update = function () {\r\n // Always using Date getTime() as there is a bug in older IE instances that causes the performance timings to have the hi-bit set eg 0x800000000 causing\r\n // the number to be incorrect.\r\n var nowMs = dateNow();\r\n var isExpired = false;\r\n var session = _self.automaticSession;\r\n if (!session.id) {\r\n isExpired = !_initializeAutomaticSession(session, nowMs);\r\n }\r\n var sessionExpirationMs = _self.config.sessionExpirationMs();\r\n if (!isExpired && sessionExpirationMs > 0) {\r\n var sessionRenewalMs = _self.config.sessionRenewalMs();\r\n var timeSinceAcqMs = nowMs - session.acquisitionDate;\r\n var timeSinceRenewalMs = nowMs - session.renewalDate;\r\n isExpired = timeSinceAcqMs < 0 || timeSinceRenewalMs < 0; // expired if the acquisition or last renewal are in the future\r\n isExpired = isExpired || timeSinceAcqMs > sessionExpirationMs; // expired if the time since acquisition is more than session Expiration\r\n isExpired = isExpired || timeSinceRenewalMs > sessionRenewalMs; // expired if the time since last renewal is more than renewal period\r\n }\r\n // renew if acquisitionSpan or renewalSpan has elapsed\r\n if (isExpired) {\r\n // update automaticSession so session state has correct id\r\n _renew(nowMs);\r\n }\r\n else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n if (!_cookieUpdatedTimestamp || nowMs - _cookieUpdatedTimestamp > _SessionManager.cookieUpdateInterval) {\r\n _setCookie(session, nowMs);\r\n }\r\n }\r\n };\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n _self.backup = function () {\r\n var session = _self.automaticSession;\r\n _setStorage(session.id, session.acquisitionDate, session.renewalDate);\r\n };\r\n /**\r\n * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n * initialize the automatic session.\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSession(session, now) {\r\n var isValid = false;\r\n var cookieValue = _cookieManager.get(_storageNamePrefix());\r\n if (cookieValue && isFunction(cookieValue.split)) {\r\n isValid = _initializeAutomaticSessionWithData(session, cookieValue);\r\n }\r\n else {\r\n // There's no cookie, but we might have session data in local storage\r\n // This can happen if the session expired or the user actively deleted the cookie\r\n // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n var storageValue = utlGetLocalStorage(_logger, _storageNamePrefix());\r\n if (storageValue) {\r\n isValid = _initializeAutomaticSessionWithData(session, storageValue);\r\n }\r\n }\r\n return isValid || !!session.id;\r\n }\r\n /**\r\n * Extract id, acquisitionDate, and renewalDate from an ai_session payload string and\r\n * use this data to initialize automaticSession.\r\n *\r\n * @param {string} sessionData - The string stored in an ai_session cookie or local storage backup\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSessionWithData(session, sessionData) {\r\n var isValid = false;\r\n var sessionReset = \", session will be reset\";\r\n var tokens = sessionData.split(\"|\");\r\n if (tokens.length >= 2) {\r\n try {\r\n var acqMs = +tokens[1] || 0;\r\n var renewalMs = +tokens[2] || 0;\r\n if (isNaN(acqMs) || acqMs <= 0) {\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionRenewalDateIsZero, \"AI session acquisition date is 0\" + sessionReset);\r\n }\r\n else if (isNaN(renewalMs) || renewalMs <= 0) {\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionRenewalDateIsZero, \"AI session renewal date is 0\" + sessionReset);\r\n }\r\n else if (tokens[0]) {\r\n // Everything looks valid so set the values\r\n session.id = tokens[0];\r\n session.acquisitionDate = acqMs;\r\n session.renewalDate = renewalMs;\r\n isValid = true;\r\n }\r\n }\r\n catch (e) {\r\n _logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ErrorParsingAISessionCookie, \"Error parsing ai_session value [\" + (sessionData || \"\") + \"]\" + sessionReset + \" - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return isValid;\r\n }\r\n function _renew(nowMs) {\r\n var theConfig = (_self.config || {});\r\n var getNewId = (theConfig.getNewId ? theConfig.getNewId() : null) || newId;\r\n _self.automaticSession.id = getNewId(theConfig.idLength ? theConfig.idLength() : 22);\r\n _self.automaticSession.acquisitionDate = nowMs;\r\n _setCookie(_self.automaticSession, nowMs);\r\n // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n if (!utlCanUseLocalStorage()) {\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserDoesNotSupportLocalStorage, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n }\r\n function _setCookie(session, nowMs) {\r\n var acq = session.acquisitionDate;\r\n session.renewalDate = nowMs;\r\n var config = _self.config;\r\n var renewalPeriodMs = config.sessionRenewalMs();\r\n // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n var acqTimeLeftMs = (acq + config.sessionExpirationMs()) - nowMs;\r\n var cookie = [session.id, acq, nowMs];\r\n var maxAgeSec = 0;\r\n if (acqTimeLeftMs < renewalPeriodMs) {\r\n maxAgeSec = acqTimeLeftMs / 1000;\r\n }\r\n else {\r\n maxAgeSec = renewalPeriodMs / 1000;\r\n }\r\n var cookieDomain = config.cookieDomain ? config.cookieDomain() : null;\r\n // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\r\n // A cookie with 0 expiry in the session cookie will never expire for that browser session. If the browser is closed the cookie expires.\r\n // Depending on the browser, another instance does not inherit this cookie, however, another tab will\r\n _cookieManager.set(_storageNamePrefix(), cookie.join(\"|\"), config.sessionExpirationMs() > 0 ? maxAgeSec : null, cookieDomain);\r\n _cookieUpdatedTimestamp = nowMs;\r\n }\r\n function _setStorage(guid, acq, renewal) {\r\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n utlSetLocalStorage(_logger, _storageNamePrefix(), [guid, acq, renewal].join(\"|\"));\r\n }\r\n });\r\n }\r\n _SessionManager.prototype.update = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n _SessionManager.prototype.backup = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n _SessionManager.acquisitionSpan = 86400000; // 24 hours in ms\r\n _SessionManager.renewalSpan = 1800000; // 30 minutes in ms\r\n _SessionManager.cookieUpdateInterval = 60000; // 1 minute in ms\r\n return _SessionManager;\r\n}());\r\nexport { _SessionManager };\r\n//# sourceMappingURL=Session.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Application = /** @class */ (function () {\r\n function Application() {\r\n }\r\n return Application;\r\n}());\r\nexport { Application };\r\n//# sourceMappingURL=Application.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Device = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the Device class\r\n */\r\n function Device() {\r\n // don't attempt to fingerprint browsers\r\n this.id = \"browser\";\r\n // Device type is a dimension in our data platform\r\n // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n this.deviceClass = \"Browser\";\r\n }\r\n return Device;\r\n}());\r\nexport { Device };\r\n//# sourceMappingURL=Device.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Version = \"2.7.3\";\r\nvar Internal = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the internal telemetry data class.\r\n */\r\n function Internal(config) {\r\n this.sdkVersion = (config.sdkExtension && config.sdkExtension() ? config.sdkExtension() + \"_\" : \"\") + \"javascript:\" + Version;\r\n }\r\n return Internal;\r\n}());\r\nexport { Internal };\r\n//# sourceMappingURL=Internal.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlRemoveStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalMessageId, LoggingSeverity, safeGetCookieMgr, safeGetLogger, newId, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _validateUserInput(id) {\r\n // Validate:\r\n // 1. Id is a non-empty string.\r\n // 2. It does not contain special characters for cookies.\r\n if (typeof id !== \"string\" ||\r\n !id ||\r\n id.match(/,|;|=| |\\|/)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nvar User = /** @class */ (function () {\r\n function User(config, core) {\r\n /**\r\n * A flag indicating whether this represents a new user\r\n */\r\n this.isNewUser = false;\r\n /**\r\n * A flag indicating whether the user cookie has been set\r\n */\r\n this.isUserCookieSet = false;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _storageNamePrefix;\r\n dynamicProto(User, this, function (_self) {\r\n _self.config = config;\r\n var userCookiePostfix = (_self.config.userCookiePostfix && _self.config.userCookiePostfix()) ? _self.config.userCookiePostfix() : \"\";\r\n _storageNamePrefix = function () { return User.userCookieName + userCookiePostfix; };\r\n // get userId or create new one if none exists\r\n var cookie = _cookieManager.get(_storageNamePrefix());\r\n if (cookie) {\r\n _self.isNewUser = false;\r\n var params = cookie.split(User.cookieSeparator);\r\n if (params.length > 0) {\r\n _self.id = params[0];\r\n // we already have a cookie\r\n _self.isUserCookieSet = !!_self.id;\r\n }\r\n }\r\n function _generateNewId() {\r\n var theConfig = (config || {});\r\n var getNewId = (theConfig.getNewId ? theConfig.getNewId() : null) || newId;\r\n var id = getNewId(theConfig.idLength ? config.idLength() : 22);\r\n return id;\r\n }\r\n function _generateNewCookie(userId) {\r\n var acqStr = toISOString(new Date());\r\n _self.accountAcquisitionDate = acqStr;\r\n _self.isNewUser = true;\r\n var newCookie = [userId, acqStr];\r\n return newCookie;\r\n }\r\n function _setUserCookie(cookie) {\r\n // without expiration, cookies expire at the end of the session\r\n // set it to 365 days from now\r\n // 365 * 24 * 60 * 60 = 31536000\r\n var oneYear = 31536000;\r\n _self.isUserCookieSet = _cookieManager.set(_storageNamePrefix(), cookie, oneYear);\r\n }\r\n if (!_self.id) {\r\n _self.id = _generateNewId();\r\n var newCookie = _generateNewCookie(_self.id);\r\n _setUserCookie(newCookie.join(User.cookieSeparator));\r\n // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n // We should respect their wishes and clear ourselves from local storage\r\n var name_1 = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"ai_session\" : \"ai_session\";\r\n utlRemoveStorage(_logger, name_1);\r\n }\r\n // We still take the account id from the ctor param for backward compatibility.\r\n // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n _self.accountId = config.accountId ? config.accountId() : undefined;\r\n // Get the auth user id and account id from the cookie if exists\r\n // Cookie is in the pattern: |\r\n var authCookie = _cookieManager.get(User.authUserCookieName);\r\n if (authCookie) {\r\n authCookie = decodeURI(authCookie);\r\n var authCookieString = authCookie.split(User.cookieSeparator);\r\n if (authCookieString[0]) {\r\n _self.authenticatedId = authCookieString[0];\r\n }\r\n if (authCookieString.length > 1 && authCookieString[1]) {\r\n _self.accountId = authCookieString[1];\r\n }\r\n }\r\n _self.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // Validate inputs to ensure no cookie control characters.\r\n var isInvalidInput = !_validateUserInput(authenticatedUserId) || (accountId && !_validateUserInput(accountId));\r\n if (isInvalidInput) {\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SetAuthContextFailedAccountName, \"Setting auth user context failed. \" +\r\n \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\", true);\r\n return;\r\n }\r\n // Create cookie string.\r\n _self.authenticatedId = authenticatedUserId;\r\n var authCookie = _self.authenticatedId;\r\n if (accountId) {\r\n _self.accountId = accountId;\r\n authCookie = [_self.authenticatedId, _self.accountId].join(User.cookieSeparator);\r\n }\r\n if (storeInCookie) {\r\n // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n // Encoding the cookie to handle unexpected unicode characters.\r\n _cookieManager.set(User.authUserCookieName, encodeURI(authCookie));\r\n }\r\n };\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\r\n _self.clearAuthenticatedUserContext = function () {\r\n _self.authenticatedId = null;\r\n _self.accountId = null;\r\n _cookieManager.del(User.authUserCookieName);\r\n };\r\n _self.update = function (userId) {\r\n // Optimizations to avoid setting and processing the cookie when not needed\r\n if (_self.id !== userId || !_self.isUserCookieSet) {\r\n var user_id = userId ? userId : _generateNewId();\r\n var user_cookie = _generateNewCookie(user_id);\r\n _setUserCookie(user_cookie.join(User.cookieSeparator));\r\n }\r\n };\r\n });\r\n }\r\n /**\r\n * Sets the authenticated user id and the account id in this session.\r\n *\r\n * @param authenticatedUserId {string} - The authenticated user id. A unique and persistent string that represents each authenticated user in the service.\r\n * @param accountId {string} - An optional string to represent the account associated with the authenticated user.\r\n */\r\n User.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\r\n User.prototype.clearAuthenticatedUserContext = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Update or create the user cookie if cookies where previously disabled or the new userId does not match the existing value.\r\n * If you pass nothing a new random user id will be created.\r\n * @param userId - Specific either the current (via appInsights.context.user.id) or new id that you want to set\r\n */\r\n User.prototype.update = function (userId) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n User.cookieSeparator = \"|\";\r\n User.userCookieName = \"ai_user\";\r\n User.authUserCookieName = \"ai_authUser\";\r\n return User;\r\n}());\r\nexport { User };\r\n//# sourceMappingURL=User.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Location = /** @class */ (function () {\r\n function Location() {\r\n }\r\n return Location;\r\n}());\r\nexport { Location };\r\n//# sourceMappingURL=Location.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { generateW3CId, getLocation } from \"@microsoft/applicationinsights-core-js\";\r\nvar TelemetryTrace = /** @class */ (function () {\r\n function TelemetryTrace(id, parentId, name, logger) {\r\n var _self = this;\r\n _self.traceID = id || generateW3CId();\r\n _self.parentID = parentId;\r\n _self.name = name;\r\n var location = getLocation();\r\n if (!name && location && location.pathname) {\r\n _self.name = location.pathname;\r\n }\r\n _self.name = dataSanitizeString(logger, _self.name);\r\n }\r\n return TelemetryTrace;\r\n}());\r\nexport { TelemetryTrace };\r\n//# sourceMappingURL=TelemetryTrace.js.map","/**\r\n * TelemetryContext.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isString, objKeys, hasWindow, _InternalLogMessage, setValue, getSetValue } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Session, _SessionManager } from \"./Context/Session\";\r\nimport { Extensions, CtxTagKeys, PageView } from \"@microsoft/applicationinsights-common\";\r\nimport { Application } from \"./Context/Application\";\r\nimport { Device } from \"./Context/Device\";\r\nimport { Internal } from \"./Context/Internal\";\r\nimport { User } from \"./Context/User\";\r\nimport { Location } from \"./Context/Location\";\r\nimport { TelemetryTrace } from \"./Context/TelemetryTrace\";\r\nvar strExt = \"ext\";\r\nvar strTags = \"tags\";\r\nfunction _removeEmpty(target, name) {\r\n if (target && target[name] && objKeys(target[name]).length === 0) {\r\n delete target[name];\r\n }\r\n}\r\nvar TelemetryContext = /** @class */ (function () {\r\n function TelemetryContext(core, defaultConfig) {\r\n var _this = this;\r\n var logger = core.logger;\r\n this.appId = function () { return null; };\r\n this.getSessionId = function () { return null; };\r\n dynamicProto(TelemetryContext, this, function (_self) {\r\n _self.application = new Application();\r\n _self.internal = new Internal(defaultConfig);\r\n if (hasWindow()) {\r\n _self.sessionManager = new _SessionManager(defaultConfig, core);\r\n _self.device = new Device();\r\n _self.location = new Location();\r\n _self.user = new User(defaultConfig, core);\r\n _self.telemetryTrace = new TelemetryTrace(undefined, undefined, undefined, logger);\r\n _self.session = new Session();\r\n }\r\n _self.getSessionId = function () {\r\n var session = _self.session;\r\n var sesId = null;\r\n // If customer set session info, apply their context; otherwise apply context automatically generated\r\n if (session && isString(session.id)) {\r\n sesId = session.id;\r\n }\r\n else {\r\n // Gets the automatic session if it exists or an empty object\r\n var autoSession = (_self.sessionManager || {}).automaticSession;\r\n sesId = autoSession && isString(autoSession.id) ? autoSession.id : null;\r\n }\r\n return sesId;\r\n };\r\n _self.applySessionContext = function (evt, itemCtx) {\r\n setValue(getSetValue(evt.ext, Extensions.AppExt), \"sesId\", _self.getSessionId(), isString);\r\n };\r\n _self.applyOperatingSystemContxt = function (evt, itemCtx) {\r\n setValue(evt.ext, Extensions.OSExt, _self.os);\r\n };\r\n _self.applyApplicationContext = function (evt, itemCtx) {\r\n var application = _self.application;\r\n if (application) {\r\n // evt.ext.app\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.applicationVersion, application.ver, isString);\r\n setValue(tags, CtxTagKeys.applicationBuild, application.build, isString);\r\n }\r\n };\r\n _self.applyDeviceContext = function (evt, itemCtx) {\r\n var device = _self.device;\r\n if (device) {\r\n // evt.ext.device\r\n var extDevice = getSetValue(getSetValue(evt, strExt), Extensions.DeviceExt);\r\n setValue(extDevice, \"localId\", device.id, isString);\r\n setValue(extDevice, \"ip\", device.ip, isString);\r\n setValue(extDevice, \"model\", device.model, isString);\r\n setValue(extDevice, \"deviceClass\", device.deviceClass, isString);\r\n }\r\n };\r\n _self.applyInternalContext = function (evt, itemCtx) {\r\n var internal = _self.internal;\r\n if (internal) {\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.internalAgentVersion, internal.agentVersion, isString); // not mapped in CS 4.0\r\n setValue(tags, CtxTagKeys.internalSdkVersion, internal.sdkVersion, isString);\r\n if (evt.baseType === _InternalLogMessage.dataType || evt.baseType === PageView.dataType) {\r\n setValue(tags, CtxTagKeys.internalSnippet, internal.snippetVer, isString);\r\n setValue(tags, CtxTagKeys.internalSdkSrc, internal.sdkSrc, isString);\r\n }\r\n }\r\n };\r\n _self.applyLocationContext = function (evt, itemCtx) {\r\n var location = _this.location;\r\n if (location) {\r\n setValue(getSetValue(evt, strTags, []), CtxTagKeys.locationIp, location.ip, isString);\r\n }\r\n };\r\n _self.applyOperationContext = function (evt, itemCtx) {\r\n var telemetryTrace = _self.telemetryTrace;\r\n if (telemetryTrace) {\r\n var extTrace = getSetValue(getSetValue(evt, strExt), Extensions.TraceExt, { traceID: undefined, parentID: undefined });\r\n setValue(extTrace, \"traceID\", telemetryTrace.traceID, isString);\r\n setValue(extTrace, \"name\", telemetryTrace.name, isString);\r\n setValue(extTrace, \"parentID\", telemetryTrace.parentID, isString);\r\n }\r\n };\r\n _self.applyWebContext = function (evt, itemCtx) {\r\n var web = _this.web;\r\n if (web) {\r\n setValue(getSetValue(evt, strExt), Extensions.WebExt, web);\r\n }\r\n };\r\n _self.applyUserContext = function (evt, itemCtx) {\r\n var user = _self.user;\r\n if (user) {\r\n var tags = getSetValue(evt, strTags, []);\r\n // stays in tags\r\n setValue(tags, CtxTagKeys.userAccountId, user.accountId, isString);\r\n // CS 4.0\r\n var extUser = getSetValue(getSetValue(evt, strExt), Extensions.UserExt);\r\n setValue(extUser, \"id\", user.id, isString);\r\n setValue(extUser, \"authId\", user.authenticatedId, isString);\r\n }\r\n };\r\n _self.cleanUp = function (evt, itemCtx) {\r\n var ext = evt.ext;\r\n if (ext) {\r\n _removeEmpty(ext, Extensions.DeviceExt);\r\n _removeEmpty(ext, Extensions.UserExt);\r\n _removeEmpty(ext, Extensions.WebExt);\r\n _removeEmpty(ext, Extensions.OSExt);\r\n _removeEmpty(ext, Extensions.AppExt);\r\n _removeEmpty(ext, Extensions.TraceExt);\r\n }\r\n };\r\n });\r\n }\r\n TelemetryContext.prototype.applySessionContext = function (evt, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyOperatingSystemContxt = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyApplicationContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyDeviceContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyInternalContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyLocationContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyOperationContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyWebContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.applyUserContext = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n TelemetryContext.prototype.cleanUp = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return TelemetryContext;\r\n}());\r\nexport { TelemetryContext };\r\n//# sourceMappingURL=TelemetryContext.js.map","/**\r\n * PropertiesPlugin.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin, isNullOrUndefined, _InternalLogMessage, LoggingSeverity, _InternalMessageId, getNavigator, objForEachKey, getSetValue } from \"@microsoft/applicationinsights-core-js\";\r\nimport { TelemetryContext } from \"./TelemetryContext\";\r\nimport { PageView, BreezeChannelIdentifier, PropertiesPluginIdentifier, getExtensionByName } from \"@microsoft/applicationinsights-common\";\r\nvar PropertiesPlugin = /** @class */ (function (_super) {\r\n __extends(PropertiesPlugin, _super);\r\n function PropertiesPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 110;\r\n _this.identifier = PropertiesPluginIdentifier;\r\n var _breezeChannel; // optional. If exists, grab appId from it\r\n var _extensionConfig;\r\n dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n var ctx = _self._getTelCtx();\r\n var identifier = _self.identifier;\r\n var defaultConfig = PropertiesPlugin.getDefaultConfig();\r\n _extensionConfig = _extensionConfig || {};\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _extensionConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };\r\n });\r\n _self.context = new TelemetryContext(core, _extensionConfig);\r\n _breezeChannel = getExtensionByName(extensions, BreezeChannelIdentifier);\r\n _self.context.appId = function () { return _breezeChannel ? _breezeChannel[\"_appId\"] : null; };\r\n // Test hook to allow accessing the internal values -- explicitly not defined as an available property on the class\r\n _self[\"_extConfig\"] = _extensionConfig;\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event The event that needs to be processed\r\n */\r\n _self.processTelemetry = function (event, itemCtx) {\r\n if (isNullOrUndefined(event)) {\r\n // TODO(barustum): throw an internal event once we have support for internal logging\r\n }\r\n else {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n if (event.name === PageView.envelopeType) {\r\n itemCtx.diagLog().resetInternalMessageCount();\r\n }\r\n var theContext = (_self.context || {});\r\n if (theContext.session) {\r\n // If customer did not provide custom session id update the session manager\r\n if (typeof _self.context.session.id !== \"string\" && theContext.sessionManager) {\r\n theContext.sessionManager.update();\r\n }\r\n }\r\n var userCtx = theContext.user;\r\n if (userCtx && !userCtx.isUserCookieSet) {\r\n userCtx.update(theContext.user.id);\r\n }\r\n _processTelemetryInternal(event, itemCtx);\r\n if (userCtx && userCtx.isNewUser) {\r\n userCtx.isNewUser = false;\r\n var message = new _InternalLogMessage(_InternalMessageId.SendBrowserInfoOnUserInit, ((getNavigator() || {}).userAgent || \"\"));\r\n itemCtx.diagLog().logInternalMessage(LoggingSeverity.CRITICAL, message);\r\n }\r\n _self.processNext(event, itemCtx);\r\n }\r\n };\r\n function _processTelemetryInternal(evt, itemCtx) {\r\n // Set Part A fields\r\n getSetValue(evt, \"tags\", []);\r\n getSetValue(evt, \"ext\", {});\r\n var ctx = _self.context;\r\n ctx.applySessionContext(evt, itemCtx);\r\n ctx.applyApplicationContext(evt, itemCtx);\r\n ctx.applyDeviceContext(evt, itemCtx);\r\n ctx.applyOperationContext(evt, itemCtx);\r\n ctx.applyUserContext(evt, itemCtx);\r\n ctx.applyOperatingSystemContxt(evt, itemCtx);\r\n ctx.applyWebContext(evt, itemCtx);\r\n ctx.applyLocationContext(evt, itemCtx); // legacy tags\r\n ctx.applyInternalContext(evt, itemCtx); // legacy tags\r\n ctx.cleanUp(evt, itemCtx);\r\n }\r\n });\r\n return _this;\r\n }\r\n PropertiesPlugin.getDefaultConfig = function () {\r\n var defaultConfig = {\r\n instrumentationKey: function () { return undefined; },\r\n accountId: function () { return null; },\r\n sessionRenewalMs: function () { return 30 * 60 * 1000; },\r\n samplingPercentage: function () { return 100; },\r\n sessionExpirationMs: function () { return 24 * 60 * 60 * 1000; },\r\n cookieDomain: function () { return null; },\r\n sdkExtension: function () { return null; },\r\n isBrowserLinkTrackingEnabled: function () { return false; },\r\n appId: function () { return null; },\r\n getSessionId: function () { return null; },\r\n namePrefix: function () { return undefined; },\r\n sessionCookiePostfix: function () { return undefined; },\r\n userCookiePostfix: function () { return undefined; },\r\n idLength: function () { return 22; },\r\n getNewId: function () { return null; }\r\n };\r\n return defaultConfig;\r\n };\r\n PropertiesPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event The event that needs to be processed\r\n */\r\n PropertiesPlugin.prototype.processTelemetry = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return PropertiesPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default PropertiesPlugin;\r\n//# sourceMappingURL=PropertiesPlugin.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { strShimFunction, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { hasOwnProperty } from \"./HelperFuncs\";\r\nvar aiInstrumentHooks = \"_aiHooks\";\r\nvar cbNames = [\r\n \"req\", \"rsp\", \"hkErr\", \"fnErr\"\r\n];\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strConstructor = \"constructor\";\r\n/** @ignore */\r\nfunction _arrLoop(arr, fn) {\r\n if (arr) {\r\n for (var lp = 0; lp < arr.length; lp++) {\r\n if (fn(arr[lp], lp)) {\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @ignore */\r\nfunction _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {\r\n if (type >= 0 /* Request */ && type <= 2 /* HookError */) {\r\n _arrLoop(hooks, function (hook, idx) {\r\n var cbks = hook.cbks;\r\n var cb = cbks[cbNames[type]];\r\n if (cb) {\r\n // Set the specific hook context implementation using a lazy creation pattern\r\n callDetails.ctx = function () {\r\n var ctx = hookCtx[idx] = (hookCtx[idx] || {});\r\n return ctx;\r\n };\r\n try {\r\n cb.apply(callDetails.inst, cbArgs);\r\n }\r\n catch (err) {\r\n var orgEx = callDetails.err;\r\n try {\r\n // Report Hook error via the callback\r\n var hookErrorCb = cbks[cbNames[2 /* HookError */]];\r\n if (hookErrorCb) {\r\n callDetails.err = err;\r\n hookErrorCb.apply(callDetails.inst, cbArgs);\r\n }\r\n }\r\n catch (e) {\r\n // Not much we can do here -- swallowing the exception to avoid crashing the hosting app\r\n }\r\n finally {\r\n // restore the original exception (if any)\r\n callDetails.err = orgEx;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/** @ignore */\r\nfunction _createFunctionHook(aiHook) {\r\n // Define a temporary method that queues-up a the real method call\r\n return function () {\r\n var funcThis = this;\r\n // Capture the original arguments passed to the method\r\n var orgArgs = arguments;\r\n var hooks = aiHook.h;\r\n var funcArgs = {\r\n name: aiHook.n,\r\n inst: funcThis,\r\n ctx: null,\r\n set: _replaceArg\r\n };\r\n var hookCtx = [];\r\n var cbArgs = _createArgs([funcArgs], orgArgs);\r\n function _createArgs(target, theArgs) {\r\n _arrLoop(theArgs, function (arg) {\r\n target.push(arg);\r\n });\r\n return target;\r\n }\r\n function _replaceArg(idx, value) {\r\n orgArgs = _createArgs([], orgArgs);\r\n orgArgs[idx] = value;\r\n cbArgs = _createArgs([funcArgs], orgArgs);\r\n }\r\n // Call the pre-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0 /* Request */);\r\n // Call the original function was called\r\n var theFunc = aiHook.f;\r\n try {\r\n funcArgs.rslt = theFunc.apply(funcThis, orgArgs);\r\n }\r\n catch (err) {\r\n // Report the request callback\r\n funcArgs.err = err;\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3 /* FunctionError */);\r\n // rethrow the original exception so anyone listening for it can catch the exception\r\n throw err;\r\n }\r\n // Call the post-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1 /* Response */);\r\n return funcArgs.rslt;\r\n };\r\n}\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Object[\"getPrototypeOf\"];\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n if (target) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n // target[Constructor] May break if the constructor has been changed or removed\r\n var newProto = target[str__Proto] || target[strShimPrototype] || target[strConstructor];\r\n if (newProto) {\r\n return newProto;\r\n }\r\n }\r\n return null;\r\n}\r\n/** @ignore */\r\nfunction _getOwner(target, name, checkPrototype) {\r\n var owner = null;\r\n if (target) {\r\n if (hasOwnProperty(target, name)) {\r\n owner = target;\r\n }\r\n else if (checkPrototype) {\r\n owner = _getOwner(_getObjProto(target), name, false);\r\n }\r\n }\r\n return owner;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProto(target, funcName, callbacks) {\r\n if (target) {\r\n return InstrumentFunc(target[strShimPrototype], funcName, callbacks, false);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProtos(target, funcNames, callbacks) {\r\n if (target) {\r\n return InstrumentFuncs(target[strShimPrototype], funcNames, callbacks, false);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n */\r\nexport function InstrumentFunc(target, funcName, callbacks, checkPrototype) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n if (target && funcName && callbacks) {\r\n var owner = _getOwner(target, funcName, checkPrototype);\r\n if (owner) {\r\n var fn = owner[funcName];\r\n if (typeof fn === strShimFunction) {\r\n var aiHook_1 = fn[aiInstrumentHooks];\r\n if (!aiHook_1) {\r\n // Only hook the function once\r\n aiHook_1 = {\r\n i: 0,\r\n n: funcName,\r\n f: fn,\r\n h: []\r\n };\r\n // Override (hook) the original function\r\n var newFunc = _createFunctionHook(aiHook_1);\r\n newFunc[aiInstrumentHooks] = aiHook_1; // Tag and store the function hooks\r\n owner[funcName] = newFunc;\r\n }\r\n var theHook = {\r\n // tslint:disable:object-literal-shorthand\r\n id: aiHook_1.i,\r\n cbks: callbacks,\r\n rm: function () {\r\n // DO NOT Use () => { shorthand for the function as the this gets replaced\r\n // with the outer this and not the this for theHook instance.\r\n var id = this.id;\r\n _arrLoop(aiHook_1.h, function (hook, idx) {\r\n if (hook.id === id) {\r\n aiHook_1.h.splice(idx, 1);\r\n return 1;\r\n }\r\n });\r\n }\r\n // tslint:enable:object-literal-shorthand\r\n };\r\n aiHook_1.i++;\r\n aiHook_1.h.push(theHook);\r\n return theHook;\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n */\r\nexport function InstrumentFuncs(target, funcNames, callbacks, checkPrototype) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n var hooks = null;\r\n _arrLoop(funcNames, function (funcName) {\r\n var hook = InstrumentFunc(target, funcName, callbacks, checkPrototype);\r\n if (hook) {\r\n if (!hooks) {\r\n hooks = [];\r\n }\r\n hooks.push(hook);\r\n }\r\n });\r\n return hooks;\r\n}\r\n//# sourceMappingURL=InstrumentHooks.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dataSanitizeUrl, dateTimeUtilsDuration, urlGetAbsoluteUrl, urlGetCompleteUrl, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { objKeys, arrForEach, isNumber, isString, normalizeJsName, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar strProperties = \"properties\";\r\n/** @ignore */\r\nfunction _calcPerfDuration(resourceEntry, start, end) {\r\n var result = 0;\r\n var from = resourceEntry[start];\r\n var to = resourceEntry[end];\r\n if (from && to) {\r\n result = dateTimeUtilsDuration(from, to);\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\r\n var result = 0;\r\n var value = _calcPerfDuration(resourceEntry, start, end);\r\n if (value) {\r\n result = _setPerfValue(props, name, msToTimeSpan(value));\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfValue(props, name, value) {\r\n var strPerf = \"ajaxPerf\";\r\n var result = 0;\r\n if (props && name && value) {\r\n var perfData = props[strPerf] = (props[strPerf] || {});\r\n perfData[name] = value;\r\n result = 1;\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _populatePerfData(ajaxData, dependency) {\r\n /*\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API\r\n * | -startTime\r\n * | -redirectStart\r\n * | | -redirectEnd\r\n * | | | -fetchStart\r\n * | | | | -domainLookupStart\r\n * | | | | |- domainLookupEnd\r\n * | | | | | | -connectStart\r\n * | | | | | | | -secureConnectionStart\r\n * | | | | | | | | -connectEnd\r\n * | | | | | | | | | -requestStart\r\n * | | | | | | | | | | | -responseStart\r\n * | | | | | | | | | | | | | -responseEnd\r\n * +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+\r\n * |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |\r\n * |-------------------networkConnect----------------|\r\n * | |---------sentRequest--------|\r\n * |------------------------------------perfTotal-----------------------------------|\r\n */\r\n var resourceEntry = ajaxData.perfTiming;\r\n var props = dependency[strProperties] || {};\r\n var propsSet = 0;\r\n var strName = \"name\";\r\n var strStart = \"Start\";\r\n var strEnd = \"End\";\r\n var strDomainLookup = \"domainLookup\";\r\n var strConnect = \"connect\";\r\n var strRedirect = \"redirect\";\r\n var strRequest = \"request\";\r\n var strResponse = \"response\";\r\n var strDuration = \"duration\";\r\n var strStartTime = \"startTime\";\r\n var strDomainLookupStart = strDomainLookup + strStart;\r\n var strDomainLookupEnd = strDomainLookup + strEnd;\r\n var strConnectStart = strConnect + strStart;\r\n var strConnectEnd = strConnect + strEnd;\r\n var strRequestStart = strRequest + strStart;\r\n var strRequestEnd = strRequest + strEnd;\r\n var strResponseStart = strResponse + strStart;\r\n var strResponseEnd = strResponse + strEnd;\r\n var strRedirectStart = strRedirect + strStart;\r\n var strRedirectEnd = strRedirect = strEnd;\r\n var strTransferSize = \"transferSize\";\r\n var strEncodedBodySize = \"encodedBodySize\";\r\n var strDecodedBodySize = \"decodedBodySize\";\r\n var strServerTiming = \"serverTiming\";\r\n if (resourceEntry) {\r\n // redirect\r\n propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);\r\n // domainLookup\r\n propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);\r\n // connect\r\n propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);\r\n // request\r\n propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);\r\n // response\r\n propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);\r\n // Network connection time\r\n propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd);\r\n // Sent Request\r\n propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd);\r\n // PerfTotal / Duration\r\n var duration = resourceEntry[strDuration];\r\n if (!duration) {\r\n duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n }\r\n propsSet |= _setPerfValue(props, strDuration, duration);\r\n propsSet |= _setPerfValue(props, \"perfTotal\", duration);\r\n var serverTiming = resourceEntry[strServerTiming];\r\n if (serverTiming) {\r\n var server_1 = {};\r\n arrForEach(serverTiming, function (value, idx) {\r\n var name = normalizeJsName(value[strName] || \"\" + idx);\r\n var newValue = server_1[name] || {};\r\n objForEachKey(value, function (key, val) {\r\n if (key !== strName && isString(val) || isNumber(val)) {\r\n if (newValue[key]) {\r\n val = newValue[key] + \";\" + val;\r\n }\r\n if (val || !isString(val)) {\r\n // Only set the value if it has a value and it's not an empty string\r\n newValue[key] = val;\r\n }\r\n }\r\n });\r\n server_1[name] = newValue;\r\n });\r\n propsSet |= _setPerfValue(props, strServerTiming, server_1);\r\n }\r\n propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\r\n propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\r\n propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\r\n }\r\n else {\r\n if (ajaxData.perfMark) {\r\n propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n }\r\n }\r\n if (propsSet) {\r\n dependency[strProperties] = props;\r\n }\r\n}\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n function XHRMonitoringState() {\r\n var self = this;\r\n self.openDone = false;\r\n self.setRequestHeaderDone = false;\r\n self.sendDone = false;\r\n self.abortDone = false;\r\n // True, if onreadyStateChangeCallback function attached to xhr, otherwise false\r\n self.stateChangeAttached = false;\r\n }\r\n return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n function ajaxRecord(traceID, spanID, logger) {\r\n var self = this;\r\n var _logger = logger;\r\n var strResponseText = \"responseText\";\r\n // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of\r\n // this.XXXX = null\r\n self.perfMark = null;\r\n self.completed = false;\r\n self.requestHeadersSize = null;\r\n self.requestHeaders = null;\r\n self.responseReceivingDuration = null;\r\n self.callbackDuration = null;\r\n self.ajaxTotalDuration = null;\r\n self.aborted = 0;\r\n self.pageUrl = null;\r\n self.requestUrl = null;\r\n self.requestSize = 0;\r\n self.method = null;\r\n self.status = null;\r\n self.requestSentTime = null;\r\n self.responseStartedTime = null;\r\n self.responseFinishedTime = null;\r\n self.callbackFinishedTime = null;\r\n self.endTime = null;\r\n self.xhrMonitoringState = new XHRMonitoringState();\r\n self.clientFailure = 0;\r\n self.traceID = traceID;\r\n self.spanID = spanID;\r\n dynamicProto(ajaxRecord, self, function (self) {\r\n self.getAbsoluteUrl = function () {\r\n return self.requestUrl ? urlGetAbsoluteUrl(self.requestUrl) : null;\r\n };\r\n self.getPathName = function () {\r\n return self.requestUrl ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self.method, self.requestUrl)) : null;\r\n };\r\n self.CreateTrackItem = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n var _a;\r\n // round to 3 decimal points\r\n self.ajaxTotalDuration = Math.round(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n if (self.ajaxTotalDuration < 0) {\r\n return null;\r\n }\r\n var dependency = (_a = {\r\n id: \"|\" + self.traceID + \".\" + self.spanID,\r\n target: self.getAbsoluteUrl(),\r\n name: self.getPathName(),\r\n type: ajaxType,\r\n startTime: null,\r\n duration: self.ajaxTotalDuration,\r\n success: (+(self.status)) >= 200 && (+(self.status)) < 400,\r\n responseCode: (+(self.status)),\r\n method: self.method\r\n },\r\n _a[strProperties] = { HttpMethod: self.method },\r\n _a);\r\n if (self.requestSentTime) {\r\n // Set the correct dependency start time\r\n dependency.startTime = new Date();\r\n dependency.startTime.setTime(self.requestSentTime);\r\n }\r\n // Add Ajax perf details if available\r\n _populatePerfData(self, dependency);\r\n if (enableRequestHeaderTracking) {\r\n if (objKeys(self.requestHeaders).length > 0) {\r\n dependency[strProperties] = dependency[strProperties] || {};\r\n dependency[strProperties].requestHeaders = self.requestHeaders;\r\n }\r\n }\r\n if (getResponse) {\r\n var response = getResponse();\r\n if (response) {\r\n // enrich dependency target with correlation context from the server\r\n var correlationContext = response.correlationContext;\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n if (response.headerMap) {\r\n if (objKeys(response.headerMap).length > 0) {\r\n dependency[strProperties] = dependency[strProperties] || {};\r\n dependency[strProperties].responseHeaders = response.headerMap;\r\n }\r\n }\r\n if (self.errorStatusText && self.status >= 400) {\r\n var responseType = response.type;\r\n dependency[strProperties] = dependency[strProperties] || {};\r\n if (responseType === \"\" || responseType === \"text\") {\r\n dependency[strProperties][strResponseText] = response[strResponseText] ? response.statusText + \" - \" + response[strResponseText] : response.statusText;\r\n }\r\n if (responseType === \"json\") {\r\n dependency[strProperties][strResponseText] = response.response ? response.statusText + \" - \" + JSON.stringify(response.response) : response.statusText;\r\n }\r\n }\r\n }\r\n }\r\n return dependency;\r\n };\r\n });\r\n }\r\n ajaxRecord.prototype.getAbsoluteUrl = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n ajaxRecord.prototype.getPathName = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n ajaxRecord.prototype.CreateTrackItem = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n//# sourceMappingURL=ajaxRecord.js.map","import { generateW3CId } from \"@microsoft/applicationinsights-core-js\";\r\nvar Traceparent = /** @class */ (function () {\r\n function Traceparent(traceId, spanId) {\r\n var self = this;\r\n self.traceFlag = Traceparent.DEFAULT_TRACE_FLAG;\r\n self.version = Traceparent.DEFAULT_VERSION;\r\n if (traceId && Traceparent.isValidTraceId(traceId)) {\r\n self.traceId = traceId;\r\n }\r\n else {\r\n self.traceId = generateW3CId();\r\n }\r\n if (spanId && Traceparent.isValidSpanId(spanId)) {\r\n self.spanId = spanId;\r\n }\r\n else {\r\n self.spanId = generateW3CId().substr(0, 16);\r\n }\r\n }\r\n Traceparent.isValidTraceId = function (id) {\r\n return id.match(/^[0-9a-f]{32}$/) && id !== \"00000000000000000000000000000000\";\r\n };\r\n Traceparent.isValidSpanId = function (id) {\r\n return id.match(/^[0-9a-f]{16}$/) && id !== \"0000000000000000\";\r\n };\r\n Traceparent.prototype.toString = function () {\r\n var self = this;\r\n return \"\".concat(self.version, \"-\").concat(self.traceId, \"-\").concat(self.spanId, \"-\").concat(self.traceFlag);\r\n };\r\n Traceparent.DEFAULT_TRACE_FLAG = \"01\";\r\n Traceparent.DEFAULT_VERSION = \"00\";\r\n return Traceparent;\r\n}());\r\nexport { Traceparent };\r\n//# sourceMappingURL=TraceParent.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __assign, __extends } from \"tslib\";\r\nimport { RequestHeaders, CorrelationIdHelper, TelemetryItemCreator, RemoteDependencyData, dateTimeUtilsNow, DisabledPropertyName, PropertiesPluginIdentifier, DistributedTracingModes, isInternalApplicationInsightsEndpoint } from \"@microsoft/applicationinsights-common\";\r\nimport { isNullOrUndefined, arrForEach, isString, strTrim, isFunction, LoggingSeverity, _InternalMessageId, BaseTelemetryPlugin, getLocation, getGlobal, strPrototype, InstrumentFunc, InstrumentProto, getPerformance, objForEachKey, generateW3CId, getIEVersion, dumpObj, isXhrSupported, attachEvent } from \"@microsoft/applicationinsights-core-js\";\r\nimport { ajaxRecord } from \"./ajaxRecord\";\r\nimport { Traceparent } from \"./TraceParent\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar AJAX_MONITOR_PREFIX = \"ai.ajxmn.\";\r\nvar strDiagLog = \"diagLog\";\r\nvar strAjaxData = \"ajaxData\";\r\nvar strThrowInternal = \"throwInternal\";\r\nvar strFetch = \"fetch\";\r\n// Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)\r\nvar _markCount = 0;\r\n/** @Ignore */\r\nfunction _supportsFetch() {\r\n var _global = getGlobal();\r\n if (!_global ||\r\n isNullOrUndefined(_global.Request) ||\r\n isNullOrUndefined(_global.Request[strPrototype]) ||\r\n isNullOrUndefined(_global[strFetch])) {\r\n return null;\r\n }\r\n return _global[strFetch];\r\n}\r\n/**\r\n * Determines whether ajax monitoring can be enabled on this document\r\n * @returns True if Ajax monitoring is supported on this page, otherwise false\r\n * @ignore\r\n */\r\nfunction _supportsAjaxMonitoring(ajaxMonitorInstance) {\r\n var result = false;\r\n if (isXhrSupported()) {\r\n var proto = XMLHttpRequest[strPrototype];\r\n result = !isNullOrUndefined(proto) &&\r\n !isNullOrUndefined(proto.open) && // eslint-disable-line security/detect-non-literal-fs-filename -- false positive\r\n !isNullOrUndefined(proto.send) &&\r\n !isNullOrUndefined(proto.abort);\r\n }\r\n var ieVer = getIEVersion();\r\n if (ieVer && ieVer < 9) {\r\n result = false;\r\n }\r\n if (result) {\r\n // Disable if the XmlHttpRequest can't be extended or hooked\r\n try {\r\n var xhr = new XMLHttpRequest();\r\n xhr[strAjaxData] = {};\r\n // Check that we can update the prototype\r\n var theOpen = XMLHttpRequest[strPrototype].open;\r\n XMLHttpRequest[strPrototype].open = theOpen;\r\n }\r\n catch (e) {\r\n // We can't decorate the xhr object so disable monitoring\r\n result = false;\r\n _throwInternalCritical(ajaxMonitorInstance, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to enable XMLHttpRequest monitoring, extension is not supported\", {\r\n exception: dumpObj(e)\r\n });\r\n }\r\n }\r\n return result;\r\n}\r\n/** @Ignore */\r\nfunction _getFailedAjaxDiagnosticsMessage(xhr) {\r\n var result = \"\";\r\n try {\r\n if (!isNullOrUndefined(xhr) &&\r\n !isNullOrUndefined(xhr[strAjaxData]) &&\r\n !isNullOrUndefined(xhr[strAjaxData].requestUrl)) {\r\n result += \"(url: '\" + xhr[strAjaxData].requestUrl + \"')\";\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n ajaxMonitorInstance[strDiagLog]()[strThrowInternal](LoggingSeverity.CRITICAL, msgId, message, properties, isUserAct);\r\n}\r\n/** @ignore */\r\nfunction _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n ajaxMonitorInstance[strDiagLog]()[strThrowInternal](LoggingSeverity.WARNING, msgId, message, properties, isUserAct);\r\n}\r\n/** @Ignore */\r\nfunction _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {\r\n // tslint:disable-next-line\r\n return function (args) {\r\n _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(args.inst),\r\n exception: dumpObj(args.err)\r\n });\r\n };\r\n}\r\nfunction _indexOf(value, match) {\r\n if (value && match) {\r\n return value.indexOf(match);\r\n }\r\n return -1;\r\n}\r\nvar AjaxMonitor = /** @class */ (function (_super) {\r\n __extends(AjaxMonitor, _super);\r\n function AjaxMonitor() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AjaxMonitor.identifier;\r\n _this.priority = 120;\r\n var strTrackDependencyDataInternal = \"trackDependencyDataInternal\"; // Using string to help with minification\r\n var location = getLocation();\r\n var _fetchInitialized = false; // fetch monitoring initialized\r\n var _xhrInitialized = false; // XHR monitoring initialized\r\n var _currentWindowHost = location && location.host && location.host.toLowerCase();\r\n var _config = AjaxMonitor.getEmptyConfig();\r\n var _enableRequestHeaderTracking = false;\r\n var _enableAjaxErrorStatusText = false;\r\n var _trackAjaxAttempts = 0;\r\n var _context;\r\n var _isUsingW3CHeaders;\r\n var _isUsingAIHeaders;\r\n var _markPrefix;\r\n var _enableAjaxPerfTracking = false;\r\n var _maxAjaxCallsPerView = 0;\r\n var _enableResponseHeaderTracking = false;\r\n var _hooks = [];\r\n var _disabledUrls = {};\r\n var _excludeRequestFromAutoTrackingPatterns;\r\n var _addRequestContext;\r\n dynamicProto(AjaxMonitor, _this, function (_self, base) {\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n base.initialize(config, core, extensions, pluginChain);\r\n var ctx_1 = _self._getTelCtx();\r\n var defaultConfig = AjaxMonitor.getDefaultConfig();\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _config[field] = ctx_1.getConfig(AjaxMonitor.identifier, field, value);\r\n });\r\n var distributedTracingMode = _config.distributedTracingMode;\r\n _enableRequestHeaderTracking = _config.enableRequestHeaderTracking;\r\n _enableAjaxErrorStatusText = _config.enableAjaxErrorStatusText;\r\n _enableAjaxPerfTracking = _config.enableAjaxPerfTracking;\r\n _maxAjaxCallsPerView = _config.maxAjaxCallsPerView;\r\n _enableResponseHeaderTracking = _config.enableResponseHeaderTracking;\r\n _excludeRequestFromAutoTrackingPatterns = _config.excludeRequestFromAutoTrackingPatterns;\r\n _addRequestContext = _config.addRequestContext;\r\n _isUsingAIHeaders = distributedTracingMode === DistributedTracingModes.AI || distributedTracingMode === DistributedTracingModes.AI_AND_W3C;\r\n _isUsingW3CHeaders = distributedTracingMode === DistributedTracingModes.AI_AND_W3C || distributedTracingMode === DistributedTracingModes.W3C;\r\n if (_enableAjaxPerfTracking) {\r\n var iKey = config.instrumentationKey || \"unkwn\";\r\n if (iKey.length > 5) {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey.substring(iKey.length - 5) + \".\";\r\n }\r\n else {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey + \".\";\r\n }\r\n }\r\n if (_config.disableAjaxTracking === false) {\r\n _instrumentXhr();\r\n }\r\n _instrumentFetch();\r\n if (extensions.length > 0 && extensions) {\r\n var propExt = void 0, extIx = 0;\r\n while (!propExt && extIx < extensions.length) {\r\n if (extensions[extIx] && extensions[extIx].identifier === PropertiesPluginIdentifier) {\r\n propExt = extensions[extIx];\r\n }\r\n extIx++;\r\n }\r\n if (propExt) {\r\n _context = propExt.context; // we could move IPropertiesPlugin to common as well\r\n }\r\n }\r\n }\r\n };\r\n _self.teardown = function () {\r\n // Remove all instrumentation hooks\r\n arrForEach(_hooks, function (fn) {\r\n fn.rm();\r\n });\r\n _hooks = [];\r\n _fetchInitialized = false;\r\n _xhrInitialized = false;\r\n _self.setInitialized(false);\r\n };\r\n _self.trackDependencyData = function (dependency, properties) {\r\n _self[strTrackDependencyDataInternal](dependency, properties);\r\n };\r\n _self.includeCorrelationHeaders = function (ajaxData, input, init, xhr) {\r\n // Test Hook to allow the overriding of the location host\r\n var currentWindowHost = _self[\"_currentWindowHost\"] || _currentWindowHost;\r\n if (input) { // Fetch\r\n if (CorrelationIdHelper.canIncludeCorrelationHeader(_config, ajaxData.getAbsoluteUrl(), currentWindowHost)) {\r\n if (!init) {\r\n init = {};\r\n }\r\n // init headers override original request headers\r\n // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\r\n // not using original request headers will result in them being lost\r\n init.headers = new Headers(init.headers || (input instanceof Request ? (input.headers || {}) : {}));\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID;\r\n init.headers.set(RequestHeaders.requestIdHeader, id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\r\n }\r\n }\r\n var appId = _config.appId || (_context && _context.appId());\r\n if (appId) {\r\n init.headers.set(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceparent = new Traceparent(ajaxData.traceID, ajaxData.spanID);\r\n init.headers.set(RequestHeaders.traceParentHeader, traceparent.toString());\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\r\n }\r\n }\r\n }\r\n return init;\r\n }\r\n else if (xhr) { // XHR\r\n if (CorrelationIdHelper.canIncludeCorrelationHeader(_config, ajaxData.getAbsoluteUrl(), currentWindowHost)) {\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID;\r\n xhr.setRequestHeader(RequestHeaders.requestIdHeader, id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\r\n }\r\n }\r\n var appId = _config.appId || (_context && _context.appId());\r\n if (appId) {\r\n xhr.setRequestHeader(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceparent = new Traceparent(ajaxData.traceID, ajaxData.spanID);\r\n xhr.setRequestHeader(RequestHeaders.traceParentHeader, traceparent.toString());\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\r\n }\r\n }\r\n }\r\n return xhr;\r\n }\r\n return undefined;\r\n };\r\n _self[strTrackDependencyDataInternal] = function (dependency, properties, systemProperties) {\r\n if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {\r\n // Hack since expected format in w3c mode is |abc.def.\r\n // Non-w3c format is |abc.def\r\n // @todo Remove if better solution is available, e.g. handle in portal\r\n if ((_config.distributedTracingMode === DistributedTracingModes.W3C\r\n || _config.distributedTracingMode === DistributedTracingModes.AI_AND_W3C)\r\n && typeof dependency.id === \"string\" && dependency.id[dependency.id.length - 1] !== \".\") {\r\n dependency.id += \".\";\r\n }\r\n if (isNullOrUndefined(dependency.startTime)) {\r\n dependency.startTime = new Date();\r\n }\r\n var item = TelemetryItemCreator.create(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);\r\n _self.core.track(item);\r\n }\r\n else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {\r\n _throwInternalCritical(_self, _InternalMessageId.MaxAjaxPerPVExceeded, \"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\", true);\r\n }\r\n ++_trackAjaxAttempts;\r\n };\r\n // discard the header if it's defined as ignoreHeaders in ICorrelationConfig\r\n function _canIncludeHeaders(header) {\r\n var rlt = true;\r\n if (header || _config.ignoreHeaders) {\r\n arrForEach(_config.ignoreHeaders, (function (key) {\r\n if (key.toLowerCase() === header.toLowerCase()) {\r\n rlt = false;\r\n return -1;\r\n }\r\n }));\r\n }\r\n return rlt;\r\n }\r\n // Fetch Stuff\r\n function _instrumentFetch() {\r\n var fetch = _supportsFetch();\r\n if (!fetch) {\r\n return;\r\n }\r\n var global = getGlobal();\r\n var isPolyfill = fetch.polyfill;\r\n if (_config.disableFetchTracking === false) {\r\n _hooks.push(InstrumentFunc(global, strFetch, {\r\n // Add request hook\r\n req: function (callDetails, input, init) {\r\n var fetchData;\r\n if (_fetchInitialized &&\r\n !_isDisabledRequest(null, input, init) &&\r\n // If we have a polyfil and XHR instrumented then let XHR report otherwise we get duplicates\r\n !(isPolyfill && _xhrInitialized)) {\r\n var ctx = callDetails.ctx();\r\n fetchData = _createFetchRecord(input, init);\r\n var newInit = _self.includeCorrelationHeaders(fetchData, input, init);\r\n if (newInit !== init) {\r\n callDetails.set(1, newInit);\r\n }\r\n ctx.data = fetchData;\r\n }\r\n },\r\n rsp: function (callDetails, input) {\r\n var fetchData = callDetails.ctx().data;\r\n if (fetchData) {\r\n // Replace the result with the new promise from this code\r\n callDetails.rslt = callDetails.rslt.then(function (response) {\r\n _reportFetchMetrics(callDetails, (response || {}).status, input, response, fetchData, function () {\r\n var ajaxResponse = {\r\n statusText: response.statusText,\r\n headerMap: null,\r\n correlationContext: _getFetchCorrelationContext(response)\r\n };\r\n if (_enableResponseHeaderTracking) {\r\n var responseHeaderMap_1 = {};\r\n response.headers.forEach(function (value, name) {\r\n if (_canIncludeHeaders(name)) {\r\n responseHeaderMap_1[name] = value;\r\n }\r\n });\r\n ajaxResponse.headerMap = responseHeaderMap_1;\r\n }\r\n return ajaxResponse;\r\n });\r\n return response;\r\n })[\"catch\"](function (reason) {\r\n _reportFetchMetrics(callDetails, 0, input, null, fetchData, null, { error: reason.message });\r\n throw reason;\r\n });\r\n }\r\n },\r\n // Create an error callback to report any hook errors\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to monitor Window.fetch, monitoring data for this fetch call may be incorrect.\")\r\n }));\r\n _fetchInitialized = true;\r\n }\r\n else if (isPolyfill) {\r\n // If fetch is a polyfill we need to capture the request to ensure that we correctly track\r\n // disabled request URLS (i.e. internal urls) to ensure we don't end up in a constant loop\r\n // of reporting ourselves, for example React Native uses a polyfill for fetch\r\n // Note: Polyfill implementations that don't support the \"poyyfill\" tag are not supported\r\n // the workaround is to add a polyfill property to your fetch implementation before initializing\r\n // App Insights\r\n _hooks.push(InstrumentFunc(global, strFetch, {\r\n req: function (callDetails, input, init) {\r\n // Just call so that we record any disabled URL\r\n _isDisabledRequest(null, input, init);\r\n }\r\n }));\r\n }\r\n if (isPolyfill) {\r\n // retag the instrumented fetch with the same polyfill settings this is mostly for testing\r\n // But also supports multiple App Insights usages\r\n global[strFetch].polyfill = isPolyfill;\r\n }\r\n }\r\n function _hookProto(target, funcName, callbacks) {\r\n _hooks.push(InstrumentProto(target, funcName, callbacks));\r\n }\r\n function _instrumentXhr() {\r\n if (_supportsAjaxMonitoring(_self) && !_xhrInitialized) {\r\n // Instrument open\r\n _hookProto(XMLHttpRequest, \"open\", {\r\n req: function (args, method, url, async) {\r\n var xhr = args.inst;\r\n var ajaxData = xhr[strAjaxData];\r\n if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, true)) {\r\n if (!ajaxData || !ajaxData.xhrMonitoringState.openDone) {\r\n // Only create a single ajaxData (even when multiple AI instances are running)\r\n _openHandler(xhr, method, url, async);\r\n }\r\n // always attach to the on ready state change (required for handling multiple instances)\r\n _attachToOnReadyStateChange(xhr);\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n // Instrument send\r\n _hookProto(XMLHttpRequest, \"send\", {\r\n req: function (args, context) {\r\n var xhr = args.inst;\r\n var ajaxData = xhr[strAjaxData];\r\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState.sendDone) {\r\n _createMarkId(\"xhr\", ajaxData);\r\n ajaxData.requestSentTime = dateTimeUtilsNow();\r\n _self.includeCorrelationHeaders(ajaxData, undefined, undefined, xhr);\r\n ajaxData.xhrMonitoringState.sendDone = true;\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxSend, \"Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n // Instrument abort\r\n _hookProto(XMLHttpRequest, \"abort\", {\r\n req: function (args) {\r\n var xhr = args.inst;\r\n var ajaxData = xhr[strAjaxData];\r\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState.abortDone) {\r\n ajaxData.aborted = 1;\r\n ajaxData.xhrMonitoringState.abortDone = true;\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxAbort, \"Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n // Instrument setRequestHeader\r\n if (_enableRequestHeaderTracking) {\r\n _hookProto(XMLHttpRequest, \"setRequestHeader\", {\r\n req: function (args, header, value) {\r\n var xhr = args.inst;\r\n if (_isMonitoredXhrInstance(xhr) && _canIncludeHeaders(header)) {\r\n xhr[strAjaxData].requestHeaders[header] = value;\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxSetRequestHeader, \"Failed to monitor XMLHttpRequest.setRequestHeader, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n }\r\n _xhrInitialized = true;\r\n }\r\n }\r\n function _isDisabledRequest(xhr, request, init) {\r\n var isDisabled = false;\r\n var theUrl = ((!isString(request) ? (request || {}).url || \"\" : request) || \"\").toLowerCase();\r\n // check excludeRequestFromAutoTrackingPatterns before stripping off any query string\r\n arrForEach(_excludeRequestFromAutoTrackingPatterns, function (regex) {\r\n var theRegex = regex;\r\n if (isString(regex)) {\r\n theRegex = new RegExp(regex);\r\n }\r\n if (!isDisabled) {\r\n isDisabled = theRegex.test(theUrl);\r\n }\r\n });\r\n // if request url matches with exclude regex pattern, return true and no need to check for headers\r\n if (isDisabled) {\r\n return isDisabled;\r\n }\r\n var idx = _indexOf(theUrl, \"?\");\r\n var idx2 = _indexOf(theUrl, \"#\");\r\n if (idx === -1 || (idx2 !== -1 && idx2 < idx)) {\r\n idx = idx2;\r\n }\r\n if (idx !== -1) {\r\n // Strip off any Query string\r\n theUrl = theUrl.substring(0, idx);\r\n }\r\n // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\r\n if (!isNullOrUndefined(xhr)) {\r\n // Look on the XMLHttpRequest of the URL string value\r\n isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;\r\n }\r\n else if (!isNullOrUndefined(request)) { // fetch\r\n // Look for DisabledPropertyName in either Request or RequestInit\r\n isDisabled = (typeof request === \"object\" ? request[DisabledPropertyName] === true : false) ||\r\n (init ? init[DisabledPropertyName] === true : false);\r\n }\r\n // Also add extra check just in case the XHR or fetch objects where not decorated with the DisableProperty due to sealing or freezing\r\n if (!isDisabled && theUrl && isInternalApplicationInsightsEndpoint(theUrl)) {\r\n isDisabled = true;\r\n }\r\n if (isDisabled) {\r\n // Add the disabled url if not present\r\n if (!_disabledUrls[theUrl]) {\r\n _disabledUrls[theUrl] = 1;\r\n }\r\n }\r\n else {\r\n // Check to see if the url is listed as disabled\r\n if (_disabledUrls[theUrl]) {\r\n isDisabled = true;\r\n }\r\n }\r\n return isDisabled;\r\n }\r\n /// Verifies that particalar instance of XMLHttpRequest needs to be monitored\r\n /// Optional parameter. True if ajaxData must be excluded from verification\r\n /// True if instance needs to be monitored, otherwise false\r\n function _isMonitoredXhrInstance(xhr, excludeAjaxDataValidation) {\r\n var ajaxValidation = true;\r\n var initialized = _xhrInitialized;\r\n if (!isNullOrUndefined(xhr)) {\r\n ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(xhr[strAjaxData]);\r\n }\r\n // checking to see that all interested functions on xhr were instrumented\r\n return initialized\r\n // checking on ajaxData to see that it was not removed in user code\r\n && ajaxValidation;\r\n }\r\n function _openHandler(xhr, method, url, async) {\r\n var traceID = (_context && _context.telemetryTrace && _context.telemetryTrace.traceID) || generateW3CId();\r\n var spanID = generateW3CId().substr(0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());\r\n ajaxData.method = method;\r\n ajaxData.requestUrl = url;\r\n ajaxData.xhrMonitoringState.openDone = true;\r\n ajaxData.requestHeaders = {};\r\n ajaxData.async = async;\r\n ajaxData.errorStatusText = _enableAjaxErrorStatusText;\r\n xhr[strAjaxData] = ajaxData;\r\n }\r\n function _attachToOnReadyStateChange(xhr) {\r\n xhr[strAjaxData].xhrMonitoringState.stateChangeAttached = attachEvent(xhr, \"readystatechange\", function () {\r\n try {\r\n if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr)) {\r\n _onAjaxComplete(xhr);\r\n }\r\n }\r\n catch (e) {\r\n var exceptionText = dumpObj(e);\r\n // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n if (!exceptionText || _indexOf(exceptionText.toLowerCase(), \"c00c023f\") === -1) {\r\n _throwInternalCritical(_self, _InternalMessageId.FailedMonitorAjaxRSC, \"Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.\", {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),\r\n exception: exceptionText\r\n });\r\n }\r\n }\r\n });\r\n }\r\n function _getResponseText(xhr) {\r\n try {\r\n var responseType = xhr.responseType;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n // As per the specification responseText is only valid if the type is an empty string or \"text\"\r\n return xhr.responseText;\r\n }\r\n }\r\n catch (e) {\r\n // This shouldn't happen because of the above check -- but just in case, so just ignore\r\n }\r\n return null;\r\n }\r\n function _onAjaxComplete(xhr) {\r\n var ajaxData = xhr[strAjaxData];\r\n ajaxData.responseFinishedTime = dateTimeUtilsNow();\r\n ajaxData.status = xhr.status;\r\n function _reportXhrError(e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"ajaxDiagnosticsMessage\"] = _getFailedAjaxDiagnosticsMessage(xhr);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxDur, \"Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.\", errorProps);\r\n }\r\n _findPerfResourceEntry(\"xmlhttprequest\", ajaxData, function () {\r\n try {\r\n var dependency = ajaxData.CreateTrackItem(\"Ajax\", _enableRequestHeaderTracking, function () {\r\n var ajaxResponse = {\r\n statusText: xhr.statusText,\r\n headerMap: null,\r\n correlationContext: _getAjaxCorrelationContext(xhr),\r\n type: xhr.responseType,\r\n responseText: _getResponseText(xhr),\r\n response: xhr.response\r\n };\r\n if (_enableResponseHeaderTracking) {\r\n var headers = xhr.getAllResponseHeaders();\r\n if (headers) {\r\n // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\r\n // the regex converts the header string into an array of individual headers\r\n var arr = strTrim(headers).split(/[\\r\\n]+/);\r\n var responseHeaderMap_2 = {};\r\n arrForEach(arr, function (line) {\r\n var parts = line.split(\": \");\r\n var header = parts.shift();\r\n var value = parts.join(\": \");\r\n if (_canIncludeHeaders(header)) {\r\n responseHeaderMap_2[header] = value;\r\n }\r\n });\r\n ajaxResponse.headerMap = responseHeaderMap_2;\r\n }\r\n }\r\n return ajaxResponse;\r\n });\r\n var properties = void 0;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: xhr.status, xhr: xhr });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, _InternalMessageId.FailedAddingCustomDefinedRequestContext, \"Failed to add custom defined request context as configured call back may missing a null check.\");\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency.properties = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n _self[strTrackDependencyDataInternal](dependency);\r\n }\r\n else {\r\n _reportXhrError(null, {\r\n requestSentTime: ajaxData.requestSentTime,\r\n responseFinishedTime: ajaxData.responseFinishedTime\r\n });\r\n }\r\n }\r\n finally {\r\n // cleanup telemetry data\r\n try {\r\n xhr[strAjaxData] = null;\r\n }\r\n catch (e) {\r\n // May throw in environments that prevent extension or freeze xhr\r\n }\r\n }\r\n }, function (e) {\r\n _reportXhrError(e, null);\r\n });\r\n }\r\n function _getAjaxCorrelationContext(xhr) {\r\n try {\r\n var responseHeadersString = xhr.getAllResponseHeaders();\r\n if (responseHeadersString !== null) {\r\n var index = _indexOf(responseHeadersString.toLowerCase(), RequestHeaders.requestContextHeaderLowerCase);\r\n if (index !== -1) {\r\n var responseHeader = xhr.getResponseHeader(RequestHeaders.requestContextHeader);\r\n return CorrelationIdHelper.getCorrelationContext(responseHeader);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\", {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),\r\n exception: dumpObj(e)\r\n });\r\n }\r\n }\r\n function _createMarkId(type, ajaxData) {\r\n if (ajaxData.requestUrl && _markPrefix && _enableAjaxPerfTracking) {\r\n var performance_1 = getPerformance();\r\n if (performance_1 && isFunction(performance_1.mark)) {\r\n _markCount++;\r\n var markId = _markPrefix + type + \"#\" + _markCount;\r\n performance_1.mark(markId);\r\n var entries = performance_1.getEntriesByName(markId);\r\n if (entries && entries.length === 1) {\r\n ajaxData.perfMark = entries[0];\r\n }\r\n }\r\n }\r\n }\r\n function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {\r\n var perfMark = ajaxData.perfMark;\r\n var performance = getPerformance();\r\n var maxAttempts = _config.maxAjaxPerfLookupAttempts;\r\n var retryDelay = _config.ajaxPerfLookupDelay;\r\n var requestUrl = ajaxData.requestUrl;\r\n var attempt = 0;\r\n (function locateResourceTiming() {\r\n try {\r\n if (performance && perfMark) {\r\n attempt++;\r\n var perfTiming = null;\r\n var entries = performance.getEntries();\r\n for (var lp = entries.length - 1; lp >= 0; lp--) {\r\n var entry = entries[lp];\r\n if (entry) {\r\n if (entry.entryType === \"resource\") {\r\n if (entry.initiatorType === initiatorType &&\r\n (_indexOf(entry.name, requestUrl) !== -1 || _indexOf(requestUrl, entry.name) !== -1)) {\r\n perfTiming = entry;\r\n }\r\n }\r\n else if (entry.entryType === \"mark\" && entry.name === perfMark.name) {\r\n // We hit the start event\r\n ajaxData.perfTiming = perfTiming;\r\n break;\r\n }\r\n if (entry.startTime < perfMark.startTime - 1000) {\r\n // Fallback to try and reduce the time spent looking for the perf entry\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (!perfMark || // - we don't have a perfMark or\r\n ajaxData.perfTiming || // - we have not found the perf entry or\r\n attempt >= maxAttempts || // - we have tried too many attempts or\r\n ajaxData.async === false) { // - this is a sync request\r\n if (perfMark && isFunction(performance.clearMarks)) {\r\n // Remove the mark so we don't fill up the performance resources too much\r\n performance.clearMarks(perfMark.name);\r\n }\r\n ajaxData.perfAttempts = attempt;\r\n // just continue and report the track event\r\n trackCallback();\r\n }\r\n else {\r\n // We need to wait for the browser to populate the window.performance entry\r\n // This needs to be at least 1ms as waiting <= 1 (on firefox) is not enough time for fetch or xhr,\r\n // this is a scheduling issue for the browser implementation\r\n setTimeout(locateResourceTiming, retryDelay);\r\n }\r\n }\r\n catch (e) {\r\n reportError(e);\r\n }\r\n })();\r\n }\r\n function _createFetchRecord(input, init) {\r\n var traceID = (_context && _context.telemetryTrace && _context.telemetryTrace.traceID) || generateW3CId();\r\n var spanID = generateW3CId().substr(0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());\r\n ajaxData.requestSentTime = dateTimeUtilsNow();\r\n ajaxData.errorStatusText = _enableAjaxErrorStatusText;\r\n if (input instanceof Request) {\r\n ajaxData.requestUrl = input ? input.url : \"\";\r\n }\r\n else {\r\n ajaxData.requestUrl = input;\r\n }\r\n var method = \"GET\";\r\n if (init && init.method) {\r\n method = init.method;\r\n }\r\n else if (input && input instanceof Request) {\r\n method = input.method;\r\n }\r\n ajaxData.method = method;\r\n var requestHeaders = {};\r\n if (_enableRequestHeaderTracking) {\r\n var headers = new Headers((init ? init.headers : 0) || (input instanceof Request ? (input.headers || {}) : {}));\r\n headers.forEach(function (value, key) {\r\n if (_canIncludeHeaders(key)) {\r\n requestHeaders[key] = value;\r\n }\r\n });\r\n }\r\n ajaxData.requestHeaders = requestHeaders;\r\n _createMarkId(\"fetch\", ajaxData);\r\n return ajaxData;\r\n }\r\n function _getFailedFetchDiagnosticsMessage(input) {\r\n var result = \"\";\r\n try {\r\n if (!isNullOrUndefined(input)) {\r\n if (typeof (input) === \"string\") {\r\n result += \"(url: '\".concat(input, \"')\");\r\n }\r\n else {\r\n result += \"(url: '\".concat(input.url, \"')\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalCritical(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to grab failed fetch diagnostics message\", { exception: dumpObj(e) });\r\n }\r\n return result;\r\n }\r\n function _reportFetchMetrics(callDetails, status, input, response, ajaxData, getResponse, properties) {\r\n if (!ajaxData) {\r\n return;\r\n }\r\n function _reportFetchError(msgId, e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"fetchDiagnosticsMessage\"] = _getFailedFetchDiagnosticsMessage(input);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, msgId, \"Failed to calculate the duration of the fetch call, monitoring data for this fetch call won't be sent.\", errorProps);\r\n }\r\n ajaxData.responseFinishedTime = dateTimeUtilsNow();\r\n ajaxData.status = status;\r\n _findPerfResourceEntry(\"fetch\", ajaxData, function () {\r\n var dependency = ajaxData.CreateTrackItem(\"Fetch\", _enableRequestHeaderTracking, getResponse);\r\n var properties;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: status, request: input, response: response });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, _InternalMessageId.FailedAddingCustomDefinedRequestContext, \"Failed to add custom defined request context as configured call back may missing a null check.\");\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency.properties = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n _self[strTrackDependencyDataInternal](dependency);\r\n }\r\n else {\r\n _reportFetchError(_InternalMessageId.FailedMonitorAjaxDur, null, {\r\n requestSentTime: ajaxData.requestSentTime,\r\n responseFinishedTime: ajaxData.responseFinishedTime\r\n });\r\n }\r\n }, function (e) {\r\n _reportFetchError(_InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, e, null);\r\n });\r\n }\r\n function _getFetchCorrelationContext(response) {\r\n if (response && response.headers) {\r\n try {\r\n var responseHeader = response.headers.get(RequestHeaders.requestContextHeader);\r\n return CorrelationIdHelper.getCorrelationContext(responseHeader);\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\", {\r\n fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response),\r\n exception: dumpObj(e)\r\n });\r\n }\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n AjaxMonitor.getDefaultConfig = function () {\r\n var config = {\r\n maxAjaxCallsPerView: 500,\r\n disableAjaxTracking: false,\r\n disableFetchTracking: true,\r\n excludeRequestFromAutoTrackingPatterns: undefined,\r\n disableCorrelationHeaders: false,\r\n distributedTracingMode: DistributedTracingModes.AI_AND_W3C,\r\n correlationHeaderExcludedDomains: [\r\n \"*.blob.core.windows.net\",\r\n \"*.blob.core.chinacloudapi.cn\",\r\n \"*.blob.core.cloudapi.de\",\r\n \"*.blob.core.usgovcloudapi.net\"\r\n ],\r\n correlationHeaderDomains: undefined,\r\n correlationHeaderExcludePatterns: undefined,\r\n appId: undefined,\r\n enableCorsCorrelation: false,\r\n enableRequestHeaderTracking: false,\r\n enableResponseHeaderTracking: false,\r\n enableAjaxErrorStatusText: false,\r\n enableAjaxPerfTracking: false,\r\n maxAjaxPerfLookupAttempts: 3,\r\n ajaxPerfLookupDelay: 25,\r\n ignoreHeaders: [\r\n \"Authorization\",\r\n \"X-API-Key\",\r\n \"WWW-Authenticate\"\r\n ],\r\n addRequestContext: undefined\r\n };\r\n return config;\r\n };\r\n AjaxMonitor.getEmptyConfig = function () {\r\n var emptyConfig = this.getDefaultConfig();\r\n objForEachKey(emptyConfig, function (value) {\r\n emptyConfig[value] = undefined;\r\n });\r\n return emptyConfig;\r\n };\r\n AjaxMonitor.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AjaxMonitor.prototype.teardown = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {\r\n this.processNext(item, itemCtx);\r\n };\r\n /**\r\n * Logs dependency call\r\n * @param dependencyData dependency data object\r\n */\r\n AjaxMonitor.prototype.trackDependencyData = function (dependency, properties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AjaxMonitor.prototype.includeCorrelationHeaders = function (ajaxData, input, init, xhr) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Protected function to allow sub classes the chance to add additional properties to the dependency event\r\n * before it's sent. This function calls track, so sub-classes must call this function after they have\r\n * populated their properties.\r\n * @param dependencyData dependency data object\r\n */\r\n AjaxMonitor.prototype.trackDependencyDataInternal = function (dependency, properties, systemProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\r\n return AjaxMonitor;\r\n}(BaseTelemetryPlugin));\r\nexport { AjaxMonitor };\r\n//# sourceMappingURL=ajax.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { arrReduce, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nvar _FIELDS_SEPARATOR = \";\";\r\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\nexport function parseConnectionString(connectionString) {\r\n if (!connectionString) {\r\n return {};\r\n }\r\n var kvPairs = connectionString.split(_FIELDS_SEPARATOR);\r\n var result = arrReduce(kvPairs, function (fields, kv) {\r\n var kvParts = kv.split(_FIELD_KEY_VALUE_SEPARATOR);\r\n if (kvParts.length === 2) { // only save fields with valid formats\r\n var key = kvParts[0].toLowerCase();\r\n var value = kvParts[1];\r\n fields[key] = value;\r\n }\r\n return fields;\r\n }, {});\r\n if (objKeys(result).length > 0) {\r\n // this is a valid connection string, so parse the results\r\n if (result.endpointsuffix) {\r\n // use endpoint suffix where overrides are not provided\r\n var locationPrefix = result.location ? result.location + \".\" : \"\";\r\n result.ingestionendpoint = result.ingestionendpoint || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n }\r\n // apply the default endpoints\r\n result.ingestionendpoint = result.ingestionendpoint || DEFAULT_BREEZE_ENDPOINT;\r\n }\r\n return result;\r\n}\r\nexport var ConnectionStringParser = {\r\n parse: parseConnectionString\r\n};\r\n//# sourceMappingURL=ConnectionStringParser.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nvar ConfigurationManager = /** @class */ (function () {\r\n function ConfigurationManager() {\r\n }\r\n ConfigurationManager.getConfig = function (config, field, identifier, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var configValue;\r\n if (identifier && config.extensionConfig && config.extensionConfig[identifier] && !isNullOrUndefined(config.extensionConfig[identifier][field])) {\r\n configValue = config.extensionConfig[identifier][field];\r\n }\r\n else {\r\n configValue = config[field];\r\n }\r\n return !isNullOrUndefined(configValue) ? configValue : defaultValue;\r\n };\r\n return ConfigurationManager;\r\n}());\r\nexport { ConfigurationManager };\r\n//# sourceMappingURL=IConfig.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { AppInsightsCore, LoggingSeverity, _InternalMessageId, hasWindow, hasDocument, isReactNative, doPerf, objForEachKey, proxyAssign, arrForEach, isString, isFunction, isNullOrUndefined, isArray, throwError, addPageUnloadEventListener, addPageHideEventListener } from \"@microsoft/applicationinsights-core-js\";\r\nimport { ApplicationInsights } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { AjaxPlugin as DependenciesPlugin } from \"@microsoft/applicationinsights-dependencies-js\";\r\nimport { Util, CorrelationIdHelper, UrlHelper, DateTimeUtils, ConnectionStringParser, RequestHeaders, DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, AIData, AIBase, Envelope, Event, Exception, Metric, PageView, PageViewData, RemoteDependencyData, Trace, PageViewPerformance, Data, SeverityLevel, ConfigurationManager, ContextTagKeys, DataSanitizer, TelemetryItemCreator, CtxTagKeys, Extensions, DistributedTracingModes, PropertiesPluginIdentifier, BreezeChannelIdentifier, AnalyticsPluginIdentifier, parseConnectionString } from \"@microsoft/applicationinsights-common\";\r\n\"use strict\";\r\nvar _internalSdkSrc;\r\n// This is an exclude list of properties that should not be updated during initialization\r\n// They include a combination of private and internal property names\r\nvar _ignoreUpdateSnippetProperties = [\r\n \"snippet\", \"dependencies\", \"properties\", \"_snippetVersion\", \"appInsightsNew\", \"getSKUDefaults\"\r\n];\r\n// Re-exposing the Common classes as Telemetry, the list was taken by reviewing the generated code for the build while using\r\n// the previous configuration :-\r\n// import * as Common from \"@microsoft/applicationinsights-common\"\r\n// export const Telemetry = Common;\r\nvar fieldType = {\r\n Default: 0 /* Default */,\r\n Required: 1 /* Required */,\r\n Array: 2 /* Array */,\r\n Hidden: 4 /* Hidden */\r\n};\r\n/**\r\n * Telemetry type classes, e.g. PageView, Exception, etc\r\n */\r\nexport var Telemetry = {\r\n __proto__: null,\r\n PropertiesPluginIdentifier: PropertiesPluginIdentifier,\r\n BreezeChannelIdentifier: BreezeChannelIdentifier,\r\n AnalyticsPluginIdentifier: AnalyticsPluginIdentifier,\r\n Util: Util,\r\n CorrelationIdHelper: CorrelationIdHelper,\r\n UrlHelper: UrlHelper,\r\n DateTimeUtils: DateTimeUtils,\r\n ConnectionStringParser: ConnectionStringParser,\r\n FieldType: fieldType,\r\n RequestHeaders: RequestHeaders,\r\n DisabledPropertyName: DisabledPropertyName,\r\n ProcessLegacy: ProcessLegacy,\r\n SampleRate: SampleRate,\r\n HttpMethod: HttpMethod,\r\n DEFAULT_BREEZE_ENDPOINT: DEFAULT_BREEZE_ENDPOINT,\r\n AIData: AIData,\r\n AIBase: AIBase,\r\n Envelope: Envelope,\r\n Event: Event,\r\n Exception: Exception,\r\n Metric: Metric,\r\n PageView: PageView,\r\n PageViewData: PageViewData,\r\n RemoteDependencyData: RemoteDependencyData,\r\n Trace: Trace,\r\n PageViewPerformance: PageViewPerformance,\r\n Data: Data,\r\n SeverityLevel: SeverityLevel,\r\n ConfigurationManager: ConfigurationManager,\r\n ContextTagKeys: ContextTagKeys,\r\n DataSanitizer: DataSanitizer,\r\n TelemetryItemCreator: TelemetryItemCreator,\r\n CtxTagKeys: CtxTagKeys,\r\n Extensions: Extensions,\r\n DistributedTracingModes: DistributedTracingModes\r\n};\r\n/**\r\n * Application Insights API\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\r\nvar Initialization = /** @class */ (function () {\r\n function Initialization(snippet) {\r\n var _self = this;\r\n // initialize the queue and config in case they are undefined\r\n _self._snippetVersion = \"\" + (snippet.sv || snippet.version || \"\");\r\n snippet.queue = snippet.queue || [];\r\n snippet.version = snippet.version || 2.0; // Default to new version\r\n var config = snippet.config || {};\r\n if (config.connectionString) {\r\n var cs = parseConnectionString(config.connectionString);\r\n var ingest = cs.ingestionendpoint;\r\n config.endpointUrl = ingest ? \"\".concat(ingest, \"/v2/track\") : config.endpointUrl; // only add /v2/track when from connectionstring\r\n config.instrumentationKey = cs.instrumentationkey || config.instrumentationKey;\r\n }\r\n _self.appInsights = new ApplicationInsights();\r\n _self.properties = new PropertiesPlugin();\r\n _self.dependencies = new DependenciesPlugin();\r\n _self.core = new AppInsightsCore();\r\n _self._sender = new Sender();\r\n _self.snippet = snippet;\r\n _self.config = config;\r\n _self.getSKUDefaults();\r\n }\r\n // Analytics Plugin\r\n /**\r\n * Get the current cookie manager for this instance\r\n */\r\n Initialization.prototype.getCookieMgr = function () {\r\n return this.appInsights.getCookieMgr();\r\n };\r\n /**\r\n * Log a user action or other occurrence.\r\n * @param {IEventTelemetry} event\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackEvent = function (event, customProperties) {\r\n this.appInsights.trackEvent(event, customProperties);\r\n };\r\n /**\r\n * Logs that a page, or similar container was displayed to the user.\r\n * @param {IPageViewTelemetry} pageView\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackPageView = function (pageView) {\r\n var inPv = pageView || {};\r\n this.appInsights.trackPageView(inPv);\r\n };\r\n /**\r\n * Log a bag of performance information via the customProperties field.\r\n * @param {IPageViewPerformanceTelemetry} pageViewPerformance\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackPageViewPerformance = function (pageViewPerformance) {\r\n var inPvp = pageViewPerformance || {};\r\n this.appInsights.trackPageViewPerformance(inPvp);\r\n };\r\n /**\r\n * Log an exception that you have caught.\r\n * @param {IExceptionTelemetry} exception\r\n * @param {{[key: string]: any}} customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackException = function (exception, customProperties) {\r\n if (exception && !exception.exception && exception.error) {\r\n exception.exception = exception.error;\r\n }\r\n this.appInsights.trackException(exception, customProperties);\r\n };\r\n /**\r\n * Manually send uncaught exception telemetry. This method is automatically triggered\r\n * on a window.onerror event.\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype._onerror = function (exception) {\r\n this.appInsights._onerror(exception);\r\n };\r\n /**\r\n * Log a diagnostic scenario such entering or leaving a function.\r\n * @param {ITraceTelemetry} trace\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackTrace = function (trace, customProperties) {\r\n this.appInsights.trackTrace(trace, customProperties);\r\n };\r\n /**\r\n * Log a numeric value that is not associated with a specific event. Typically used\r\n * to send regular reports of performance indicators.\r\n *\r\n * To send a single measurement, just use the `name` and `average` fields\r\n * of {@link IMetricTelemetry}.\r\n *\r\n * If you take measurements frequently, you can reduce the telemetry bandwidth by\r\n * aggregating multiple measurements and sending the resulting average and modifying\r\n * the `sampleCount` field of {@link IMetricTelemetry}.\r\n * @param {IMetricTelemetry} metric input object argument. Only `name` and `average` are mandatory.\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackMetric = function (metric, customProperties) {\r\n this.appInsights.trackMetric(metric, customProperties);\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n Initialization.prototype.startTrackPage = function (name) {\r\n this.appInsights.startTrackPage(name);\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n Initialization.prototype.stopTrackPage = function (name, url, customProperties, measurements) {\r\n this.appInsights.stopTrackPage(name, url, customProperties, measurements);\r\n };\r\n Initialization.prototype.startTrackEvent = function (name) {\r\n this.appInsights.startTrackEvent(name);\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n Initialization.prototype.stopTrackEvent = function (name, properties, measurements) {\r\n this.appInsights.stopTrackEvent(name, properties, measurements); // Todo: Fix to pass measurements once type is updated\r\n };\r\n Initialization.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n return this.appInsights.addTelemetryInitializer(telemetryInitializer);\r\n };\r\n // Properties Plugin\r\n /**\r\n * Set the authenticated user id and the account id. Used for identifying a specific signed-in user. Parameters must not contain whitespace or ,;=|\r\n *\r\n * The method will only set the `authenticatedUserId` and `accountId` in the current page view. To set them for the whole session, you should set `storeInCookie = true`\r\n * @param {string} authenticatedUserId\r\n * @param {string} [accountId]\r\n * @param {boolean} [storeInCookie=false]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n this.properties.context.user.setAuthenticatedUserContext(authenticatedUserId, accountId, storeInCookie);\r\n };\r\n /**\r\n * Clears the authenticated user id and account id. The associated cookie is cleared, if present.\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.clearAuthenticatedUserContext = function () {\r\n this.properties.context.user.clearAuthenticatedUserContext();\r\n };\r\n // Dependencies Plugin\r\n /**\r\n * Log a dependency call (e.g. ajax)\r\n * @param {IDependencyTelemetry} dependency\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackDependencyData = function (dependency) {\r\n this.dependencies.trackDependencyData(dependency);\r\n };\r\n // Misc\r\n /**\r\n * Manually trigger an immediate send of all telemetry still in the buffer.\r\n * @param {boolean} [async=true]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.flush = function (async) {\r\n var _this = this;\r\n if (async === void 0) { async = true; }\r\n doPerf(this.core, function () { return \"AISKU.flush\"; }, function () {\r\n arrForEach(_this.core.getTransmissionControls(), function (channels) {\r\n arrForEach(channels, function (channel) {\r\n channel.flush(async);\r\n });\r\n });\r\n }, null, async);\r\n };\r\n /**\r\n * Manually trigger an immediate send of all telemetry still in the buffer using beacon Sender.\r\n * Fall back to xhr sender if beacon is not supported.\r\n * @param {boolean} [async=true]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.onunloadFlush = function (async) {\r\n if (async === void 0) { async = true; }\r\n arrForEach(this.core.getTransmissionControls(), function (channels) {\r\n arrForEach(channels, function (channel) {\r\n if (channel.onunloadFlush) {\r\n channel.onunloadFlush();\r\n }\r\n else {\r\n channel.flush(async);\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initialize this instance of ApplicationInsights\r\n * @returns {IApplicationInsights}\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.loadAppInsights = function (legacyMode, logger, notificationManager) {\r\n var _this = this;\r\n if (legacyMode === void 0) { legacyMode = false; }\r\n var _self = this;\r\n function _updateSnippetProperties(snippet) {\r\n if (snippet) {\r\n var snippetVer = \"\";\r\n if (!isNullOrUndefined(_self._snippetVersion)) {\r\n snippetVer += _self._snippetVersion;\r\n }\r\n if (legacyMode) {\r\n snippetVer += \".lg\";\r\n }\r\n if (_self.context && _self.context.internal) {\r\n _self.context.internal.snippetVer = snippetVer || \"-\";\r\n }\r\n // apply updated properties to the global instance (snippet)\r\n objForEachKey(_self, function (field, value) {\r\n if (isString(field) &&\r\n !isFunction(value) &&\r\n field && field[0] !== \"_\" && // Don't copy \"internal\" values\r\n _ignoreUpdateSnippetProperties.indexOf(field) === -1) {\r\n snippet[field] = value;\r\n }\r\n });\r\n }\r\n }\r\n // dont allow additional channels/other extensions for legacy mode; legacy mode is only to allow users to switch with no code changes!\r\n if (legacyMode && _self.config.extensions && _self.config.extensions.length > 0) {\r\n throwError(\"Extensions not allowed in legacy mode\");\r\n }\r\n doPerf(_self.core, function () { return \"AISKU.loadAppInsights\"; }, function () {\r\n var extensions = [];\r\n extensions.push(_self._sender);\r\n extensions.push(_self.properties);\r\n extensions.push(_self.dependencies);\r\n extensions.push(_self.appInsights);\r\n // initialize core\r\n _self.core.initialize(_self.config, extensions, logger, notificationManager);\r\n _self.context = _self.properties.context;\r\n if (_internalSdkSrc && _self.context) {\r\n _self.context.internal.sdkSrc = _internalSdkSrc;\r\n }\r\n _updateSnippetProperties(_self.snippet);\r\n // Empty queue of all api calls logged prior to sdk download\r\n _self.emptyQueue();\r\n _self.pollInternalLogs();\r\n _self.addHousekeepingBeforeUnload(_this);\r\n });\r\n return _self;\r\n };\r\n /**\r\n * Overwrite the lazy loaded fields of global window snippet to contain the\r\n * actual initialized API methods\r\n * @param {Snippet} snippet\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.updateSnippetDefinitions = function (snippet) {\r\n // apply full appInsights to the global instance\r\n // Note: This must be called before loadAppInsights is called\r\n proxyAssign(snippet, this, function (name) {\r\n // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\r\n return name && _ignoreUpdateSnippetProperties.indexOf(name) === -1;\r\n });\r\n };\r\n /**\r\n * Call any functions that were queued before the main script was loaded\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.emptyQueue = function () {\r\n var _self = this;\r\n // call functions that were queued before the main script was loaded\r\n try {\r\n if (isArray(_self.snippet.queue)) {\r\n // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n var length_1 = _self.snippet.queue.length;\r\n for (var i = 0; i < length_1; i++) {\r\n var call = _self.snippet.queue[i];\r\n call();\r\n }\r\n _self.snippet.queue = undefined;\r\n delete _self.snippet.queue;\r\n }\r\n }\r\n catch (exception) {\r\n var properties = {};\r\n if (exception && isFunction(exception.toString)) {\r\n properties.exception = exception.toString();\r\n }\r\n // need from core\r\n // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n // LoggingSeverity.WARNING,\r\n // _InternalMessageId.FailedToSendQueuedTelemetry,\r\n // \"Failed to send queued telemetry\",\r\n // properties);\r\n }\r\n };\r\n Initialization.prototype.pollInternalLogs = function () {\r\n this.core.pollInternalLogs();\r\n };\r\n Initialization.prototype.stopPollingInternalLogs = function () {\r\n this.core.stopPollingInternalLogs();\r\n };\r\n Initialization.prototype.addHousekeepingBeforeUnload = function (appInsightsInstance) {\r\n // Add callback to push events when the user navigates away\r\n if (hasWindow() || hasDocument()) {\r\n var performHousekeeping = function () {\r\n // Adds the ability to flush all data before the page unloads.\r\n // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\r\n // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n // Telemetry here will help us analyze how effective this approach is.\r\n // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n // impact on user experience.\r\n // appInsightsInstance.context._sender.triggerSend();\r\n appInsightsInstance.onunloadFlush(false);\r\n // Back up the current session to local storage\r\n // This lets us close expired sessions after the cookies themselves expire\r\n arrForEach(appInsightsInstance.appInsights.core[\"_extensions\"], function (ext) {\r\n if (ext.identifier === PropertiesPluginIdentifier) {\r\n if (ext && ext.context && ext.context._sessionManager) {\r\n ext.context._sessionManager.backup();\r\n }\r\n return -1;\r\n }\r\n });\r\n };\r\n var added = false;\r\n var excludePageUnloadEvents = appInsightsInstance.appInsights.config.disablePageUnloadEvents;\r\n if (!appInsightsInstance.appInsights.config.disableFlushOnBeforeUnload) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n added = addPageUnloadEventListener(performHousekeeping, excludePageUnloadEvents);\r\n // We also need to hook the pagehide and visibilitychange events as not all versions of Safari support load/unload events.\r\n added = addPageHideEventListener(performHousekeeping, excludePageUnloadEvents) || added;\r\n // A reactNative app may not have a window and therefore the beforeunload/pagehide events -- so don't\r\n // log the failure in this case\r\n if (!added && !isReactNative()) {\r\n appInsightsInstance.appInsights.core.logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToAddHandlerForOnBeforeUnload, \"Could not add handler for beforeunload and pagehide\");\r\n }\r\n }\r\n if (!added && !appInsightsInstance.appInsights.config.disableFlushOnUnload) {\r\n // If we didn't add the normal set then attempt to add the pagehide and visibilitychange only\r\n addPageHideEventListener(performHousekeeping, excludePageUnloadEvents);\r\n }\r\n }\r\n };\r\n Initialization.prototype.getSender = function () {\r\n return this._sender;\r\n };\r\n Initialization.prototype.getSKUDefaults = function () {\r\n var _self = this;\r\n _self.config.diagnosticLogInterval =\r\n _self.config.diagnosticLogInterval && _self.config.diagnosticLogInterval > 0 ? _self.config.diagnosticLogInterval : 10000;\r\n };\r\n return Initialization;\r\n}());\r\nexport { Initialization };\r\n// tslint:disable-next-line\r\n(function () {\r\n var sdkSrc = null;\r\n var isModule = false;\r\n var cdns = [\r\n \"://js.monitor.azure.com/\",\r\n \"://az416426.vo.msecnd.net/\"\r\n ];\r\n try {\r\n // Try and determine whether the sdk is being loaded from the CDN\r\n // currentScript is only valid during initial processing\r\n var scrpt = (document || {}).currentScript;\r\n if (scrpt) {\r\n sdkSrc = scrpt.src;\r\n // } else {\r\n // // We need to update to at least typescript 2.9 for this to work :-(\r\n // // Leaving as a stub for now so after we upgrade this breadcrumb is available\r\n // let meta = import.meta;\r\n // sdkSrc = (meta || {}).url;\r\n // isModule = true;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n if (sdkSrc) {\r\n try {\r\n var url = sdkSrc.toLowerCase();\r\n if (url) {\r\n var src = \"\";\r\n for (var idx = 0; idx < cdns.length; idx++) {\r\n if (url.indexOf(cdns[idx]) !== -1) {\r\n src = \"cdn\" + (idx + 1);\r\n if (url.indexOf(\"/scripts/\") === -1) {\r\n if (url.indexOf(\"/next/\") !== -1) {\r\n src += \"-next\";\r\n }\r\n else if (url.indexOf(\"/beta/\") !== -1) {\r\n src += \"-beta\";\r\n }\r\n }\r\n _internalSdkSrc = src + (isModule ? \".mod\" : \"\");\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n})();\r\n//# sourceMappingURL=Initialization.js.map","/**\r\n * ReactPlugin.ts\r\n * @copyright Microsoft 2019\r\n */\r\nimport { __extends } from \"tslib\";\r\nimport { BaseTelemetryPlugin, _InternalMessageId, LoggingSeverity, safeGetCookieMgr, arrForEach } from \"@microsoft/applicationinsights-core-js\";\r\nvar ReactPlugin = /** @class */ (function (_super) {\r\n __extends(ReactPlugin, _super);\r\n function ReactPlugin() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.priority = 185;\r\n _this.identifier = 'ReactPlugin';\r\n return _this;\r\n }\r\n ReactPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n var _this = this;\r\n _super.prototype.initialize.call(this, config, core, extensions, pluginChain);\r\n this._extensionConfig =\r\n config.extensionConfig && config.extensionConfig[this.identifier]\r\n ? config.extensionConfig[this.identifier]\r\n : { history: null };\r\n arrForEach(extensions, function (ext) {\r\n var identifier = ext.identifier;\r\n if (identifier === 'ApplicationInsightsAnalytics') {\r\n _this._analyticsPlugin = ext;\r\n }\r\n });\r\n if (this._extensionConfig.history) {\r\n this.addHistoryListener(this._extensionConfig.history);\r\n var pageViewTelemetry = {\r\n uri: this._extensionConfig.history.location.pathname\r\n };\r\n this.trackPageView(pageViewTelemetry);\r\n }\r\n };\r\n /**\r\n * Get the current cookie manager for this instance\r\n */\r\n ReactPlugin.prototype.getCookieMgr = function () {\r\n return safeGetCookieMgr(this.core);\r\n };\r\n /**\r\n * Get application insights instance.\r\n */\r\n ReactPlugin.prototype.getAppInsights = function () {\r\n return this._analyticsPlugin;\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event The event that needs to be processed\r\n */\r\n ReactPlugin.prototype.processTelemetry = function (event, itemCtx) {\r\n this.processNext(event, itemCtx);\r\n };\r\n ReactPlugin.prototype.trackMetric = function (metric, customProperties) {\r\n if (this._analyticsPlugin) {\r\n this._analyticsPlugin.trackMetric(metric, customProperties);\r\n }\r\n else {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"Analytics plugin is not available, React plugin telemetry will not be sent: \");\r\n }\r\n };\r\n ReactPlugin.prototype.trackPageView = function (pageView) {\r\n if (this._analyticsPlugin) {\r\n this._analyticsPlugin.trackPageView(pageView);\r\n }\r\n else {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"Analytics plugin is not available, React plugin telemetry will not be sent: \");\r\n }\r\n };\r\n ReactPlugin.prototype.trackEvent = function (event, customProperties) {\r\n if (this._analyticsPlugin) {\r\n this._analyticsPlugin.trackEvent(event, customProperties);\r\n }\r\n else {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"Analytics plugin is not available, React plugin telemetry will not be sent: \");\r\n }\r\n };\r\n ReactPlugin.prototype.trackException = function (exception, customProperties) {\r\n if (this._analyticsPlugin) {\r\n this._analyticsPlugin.trackException(exception, customProperties);\r\n }\r\n else {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"Analytics plugin is not available, React plugin telemetry will not be sent: \");\r\n }\r\n };\r\n ReactPlugin.prototype.trackTrace = function (trace, customProperties) {\r\n if (this._analyticsPlugin) {\r\n this._analyticsPlugin.trackTrace(trace, customProperties);\r\n }\r\n else {\r\n this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"Analytics plugin is not available, React plugin telemetry will not be sent: \");\r\n }\r\n };\r\n ReactPlugin.prototype.addHistoryListener = function (history) {\r\n var _this = this;\r\n var locationListener = function (arg) {\r\n // v4 of the history API passes \"location\" as the first argument, while v5 passes an object that contains location and action \r\n var locn = null;\r\n if (\"location\" in arg) {\r\n // Looks like v5\r\n locn = arg[\"location\"];\r\n }\r\n else {\r\n locn = arg;\r\n }\r\n // Timeout to ensure any changes to the DOM made by route changes get included in pageView telemetry\r\n setTimeout(function () {\r\n var pageViewTelemetry = { uri: locn.pathname };\r\n _this.trackPageView(pageViewTelemetry);\r\n }, 500);\r\n };\r\n history.listen(locationListener);\r\n };\r\n return ReactPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default ReactPlugin;\r\n//# sourceMappingURL=ReactPlugin.js.map","// AppInsights.js\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\nimport { ReactPlugin } from '@microsoft/applicationinsights-react-js';\nimport Config from '../Config';\n// import { createBrowserHistory } from 'history';\n\n// const browserHistory = createBrowserHistory({ basename: '' });\nconst reactPlugin = new ReactPlugin();\nconst appInsights = new ApplicationInsights({\n config: {\n instrumentationKey: Config.spently.logging.appInsights.key,\n extensions: [reactPlugin],\n extensionConfig: {\n [reactPlugin.identifier]: {},\n },\n },\n});\nappInsights.loadAppInsights();\nexport { reactPlugin, appInsights };\n","import { appInsights } from './AppInsights';\n\n/* eslint-disable no-console */\nexport const logDebug = (msg, obj) => {\n if (!obj) {\n console.log(msg);\n appInsights.trackTrace({ message: msg });\n } else {\n console.log(msg, obj);\n appInsights.trackTrace({ message: `${msg}: ${JSON.stringify(obj)}` });\n }\n};\n\nexport const logError = (msg, obj) => {\n if (!obj) {\n console.error(msg);\n appInsights.trackTrace({ message: msg });\n } else {\n console.error(msg, obj);\n appInsights.trackTrace({ message: `${msg}: ${JSON.stringify(obj)}` });\n }\n};\n","import React from 'react';\n\nvar SvgDragHandleIcon = function SvgDragHandleIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 4.5c-.552 0-1 .448-1 1v.5c0 .552.448 1 1 1h.5c.552 0 1-.448 1-1v-.5c0-.552-.448-1-1-1h-.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 8.75c-.552 0-1 .448-1 1v.5c0 .552.448 1 1 1h.5c.552 0 1-.448 1-1v-.5c0-.552-.448-1-1-1h-.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.5 14c0-.552.448-1 1-1h.5c.552 0 1 .448 1 1v.5c0 .552-.448 1-1 1h-.5c-.552 0-1-.448-1-1v-.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 4.5c-.552 0-1 .448-1 1v.5c0 .552.448 1 1 1h.5c.552 0 1-.448 1-1v-.5c0-.552-.448-1-1-1h-.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 9.75c0-.552.448-1 1-1h.5c.552 0 1 .448 1 1v.5c0 .552-.448 1-1 1h-.5c-.552 0-1-.448-1-1v-.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 13c-.552 0-1 .448-1 1v.5c0 .552.448 1 1 1h.5c.552 0 1-.448 1-1v-.5c0-.552-.448-1-1-1h-.5Z\"\n }));\n};\nSvgDragHandleIcon.displayName = \"DragHandleIcon\";\n\nexport { SvgDragHandleIcon as S };\n","/* eslint-disable no-underscore-dangle */\n/* eslint-disable jsx-a11y/mouse-events-have-key-events */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport { Icon, Popover, Stack } from '@shopify/polaris';\nimport { PlusCircleIcon, DragHandleIcon } from '@shopify/polaris-icons';\nimport React, { useState, useContext } from 'react';\nimport { Icons } from '../../util/superGrossIconFile';\nimport theme from '../util/theme';\nimport PanFilteredSelect from './PanFilteredSelect';\nimport { BaseComponentContext } from '../../state/BaseComponentContext';\n\nconst PanNavItem = ({\n item,\n onDragStart,\n onDroppedOn,\n childItems,\n availableComponents,\n updateTemplate,\n}) => {\n const [components] = useContext(BaseComponentContext);\n\n const [isHover, setIsHover] = useState(false);\n const [isOver, setIsOver] = useState(false);\n const [childOver, setChildOver] = useState(null);\n const [childAddOpen, setChildAddOpen] = useState(false);\n const {\n seperator,\n label,\n icon,\n destructive,\n onClick,\n selected,\n draggable,\n key,\n currentSelected,\n groupOption,\n } = item;\n const { colors } = theme();\n let clr = destructive ? colors.error : 'black';\n clr = selected ? colors.primary : clr;\n const border = selected && draggable ? `4px solid ${colors.primary}` : 'none';\n let bg = draggable && isHover ? 'rgb(237, 238, 239)' : 'transparent';\n bg = draggable && selected ? '#F2F7FE' : bg;\n\n const aboveDrop = isOver ? `4px solid ${colors.primary}` : 'none';\n const padding = isOver\n ? 'calc(0.4rem - 4px) 1.25rem 0.4rem'\n : '0.4rem 1.25rem';\n\n // map and assign the name value into the childItems\n const mappedChildItems = Object.fromEntries(\n Object.entries(childItems || {}).map(([ciKey, value]) => {\n const foundItem = (components || []).find((c) => c.key === value._id);\n\n return foundItem\n ? [ciKey, { ...value, name: foundItem.name }]\n : [ciKey, value];\n })\n );\n\n const newComps = (availableComponents || [])\n .filter((c) => groupOption?.supportedComponents.includes(c.key))\n .map((c) => ({\n key: c.name,\n content: (\n \n
\n {Icons[c.key]}\n
\n {c.name}\n
\n ),\n onAction: () => {\n const newComponent = {\n id: c.key,\n section: c.section,\n };\n\n c.options.forEach((opt) => {\n if (opt.defaultValue) {\n newComponent[opt.name] = opt.defaultValue;\n }\n });\n const nextColIndex = Object.keys(childItems).findIndex(\n (k, index) => k !== `${index + 1}`\n );\n const index =\n nextColIndex !== -1\n ? nextColIndex + 1\n : Object.keys(childItems).length + 1;\n\n updateTemplate(\n `columns.${index}`,\n null,\n { ...newComponent, _id: newComponent.id },\n key.split('-')[1]\n );\n setChildAddOpen(false);\n },\n }));\n\n return (\n <>\n {seperator &&
}\n setIsOver(true)}\n onDragLeave={() => setIsOver(false)}\n onDragStart={() => onDragStart(key)}\n />\n {\n onDragStart(key);\n }}\n style={{\n opacity: 0.9,\n display: 'flex',\n alignItems: 'center',\n backgroundColor: bg,\n justifyItems: 'stretch',\n padding,\n cursor: 'pointer',\n color: clr,\n lineHeight: '1.25rem',\n fontSize: '0.875rem',\n fontWeight: 600,\n borderLeft: border,\n }}\n onClick={onClick}\n onMouseOver={() => setIsHover(true)}\n onMouseLeave={() => setIsHover(false)}\n onDragOver={(evt) => {\n setIsOver(true);\n evt.preventDefault();\n }}\n onDragLeave={() => setIsOver(false)}\n onDrop={(evt) => {\n onDroppedOn(key);\n setIsOver(false);\n evt.preventDefault();\n }}\n >\n
{icon()}
\n
{label}
\n {isHover && draggable && }\n \n {childItems &&\n Object.keys(mappedChildItems).map((ciId) => {\n const ci = mappedChildItems[ciId];\n let cBg = childOver === ciId ? bg : 'transparent';\n if (currentSelected && ciId === currentSelected.child) {\n cBg = '#F2F7FE';\n }\n return (\n onDragStart(key)}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyItems: 'stretch',\n padding,\n background: cBg,\n borderLeft: childOver === ciId ? border : 'transparent',\n cursor: 'pointer',\n lineHeight: '1.25rem',\n fontSize: '0.875rem',\n fontWeight: 600,\n marginLeft: 24,\n }}\n onClick={() => onClick(ciId)}\n onMouseOver={() => {\n setIsHover(true);\n setChildOver(ciId);\n }}\n onMouseLeave={() => {\n setIsHover(false);\n setChildOver(null);\n }}\n onDragOver={(evt) => {\n setIsOver(true);\n evt.preventDefault();\n }}\n onDragLeave={() => setIsOver(false)}\n onDrop={(evt) => {\n onDroppedOn(key);\n setIsOver(false);\n evt.preventDefault();\n }}\n >\n
\n {Icons[ci._id] && Icons[ci._id]} />}\n
\n
{ci.name}
\n \n );\n })}\n {childItems && groupOption && (\n \n setChildAddOpen(true),\n selected: true,\n }}\n />\n \n }\n fullWidth\n autofocusTarget=\"first-node\"\n onClose={() => setChildAddOpen(false)}\n >\n \n \n )}\n \n );\n};\n\nexport default PanNavItem;\n","var styles = {\n \"DisplayText\": \"Polaris-SkeletonDisplayText__DisplayText\",\n \"sizeSmall\": \"Polaris-SkeletonDisplayText--sizeSmall\",\n \"sizeMedium\": \"Polaris-SkeletonDisplayText--sizeMedium\",\n \"sizeLarge\": \"Polaris-SkeletonDisplayText--sizeLarge\",\n \"sizeExtraLarge\": \"Polaris-SkeletonDisplayText--sizeExtraLarge\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport styles from './SkeletonDisplayText.scss.js';\n\nfunction SkeletonDisplayText({\n size = 'medium'\n}) {\n const className = classNames(styles.DisplayText, size && styles[variationName('size', size)]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n });\n}\n\nexport { SkeletonDisplayText };\n","import {\n Navigation,\n Scrollable,\n SkeletonDisplayText,\n Stack,\n} from '@shopify/polaris';\nimport React from 'react';\nimport theme from '../../../framework/util/theme';\n\nconst SkeletonNavItem = () => (\n \n \n \n \n);\n\nconst SkeletonComponentTree = () => (\n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n \n);\n\nexport default SkeletonComponentTree;\n","/* eslint-disable no-underscore-dangle */\nimport {\n Scrollable,\n Icon,\n Navigation,\n Heading,\n Popover,\n Stack,\n} from '@shopify/polaris';\nimport {\n PlusCircleIcon,\n LayoutFooterIcon,\n LayoutHeaderIcon,\n QuestionCircleIcon,\n SettingsIcon,\n} from '@shopify/polaris-icons';\nimport React, { useContext, useState } from 'react';\nimport { emailTypes } from '../../util/formatters';\nimport { Icons } from '../../util/superGrossIconFile';\nimport '../../cssOverrides/builder_componentTree.css';\nimport { logDebug } from '../../util/logging';\nimport { TemplateContext } from '../../state/TemplateContext';\nimport PanNavItem from '../../framework/ui/PanNavItem';\nimport { BaseComponentContext } from '../../state/BaseComponentContext';\nimport PanFilteredSelect from '../../framework/ui/PanFilteredSelect';\nimport theme from '../../framework/util/theme';\nimport SkeletonComponentTree from './sidebars/SkeletonComponentTree';\nimport {\n allComponentKeysInTemplate,\n filterAvailableComponents,\n} from './util/TemplateSelector';\n\nconst ComponentTree = ({ onSelect, selectedKey, onThemeSettings }) => {\n const query = new URLSearchParams(window.location.search);\n const isAF = !query.get('set');\n const [template, updateTemplate] = useContext(TemplateContext);\n const [components] = useContext(BaseComponentContext);\n const [draggingComponent, setDraggingCompnoent] = useState(null);\n const [newCompActive, setNewCompActive] = useState(false);\n const templateComponents = template ? template.components : [];\n const templateName =\n template &&\n template.templateId &&\n emailTypes[template.templateId.substring(0, 2)];\n const { colors } = theme();\n\n if (!template || !components) {\n return ;\n }\n\n const items = templateComponents.map((c, ind) => {\n const name = c && (c.id || c._id);\n const key = `${name}-${ind}`;\n const media = Icons[name] && Icons[name]} />;\n const component = components.filter((comp) => comp.key === name)[0];\n const realName = component.name;\n let { groupOption } = component;\n const isGroupComponent = !!groupOption;\n\n if (groupOption && c.columns && c.numColumns) {\n const numColumns = parseInt(c.numColumns, 10);\n const canAdd = numColumns > Object.keys(c.columns).length;\n groupOption = canAdd ? groupOption : null;\n }\n return {\n key,\n label: realName,\n draggable: true,\n onClick: (childId) => {\n const keyWithChild =\n typeof childId === 'string' ? `${key}-${childId}` : key;\n logDebug(`User selected ${keyWithChild}`);\n onSelect(keyWithChild);\n },\n icon: () => media || QuestionCircleIcon,\n selected: `${ind}` === selectedKey,\n children: c && isGroupComponent && (c.columns || []),\n groupOption,\n currentSelected: selectedKey,\n };\n });\n\n const tempKeys = allComponentKeysInTemplate(template);\n\n // components that available for selected template type\n const availableComponents = filterAvailableComponents(\n components,\n tempKeys,\n template\n );\n\n // component items that still avaliable to select for main template\n const availableComponentsItems = (availableComponents || [])\n // filter out component that only allow use once and already selected\n .map((c) => ({\n key: c.name,\n content: (\n \n
\n {Icons[c.key]}\n
\n {c.name}\n
\n ),\n onAction: () => {\n const newComponent = {\n _id: c.key,\n section: c.section,\n };\n\n c.options.forEach((opt) => {\n if (opt.defaultValue) {\n newComponent[opt.name] = opt.defaultValue;\n }\n });\n\n updateTemplate('ADD', null, JSON.stringify(newComponent));\n setNewCompActive(false);\n },\n }));\n\n return (\n \n \n {!isAF && (\n \n {templateName}\n \n )}\n onSelect('Header-999'),\n },\n ]}\n separator\n />\n
\n {items.map((item, index) => (\n setDraggingCompnoent(evt)}\n onDroppedOn={(evt) => {\n if (draggingComponent) {\n updateTemplate('REARANGE', draggingComponent, evt);\n setDraggingCompnoent(null);\n let newIndex = evt.split('-')[1];\n const oldParts = draggingComponent.split('-');\n const oldPath = oldParts[0];\n if (newIndex > oldParts[1]) {\n // Make up for the removed item\n newIndex = parseInt(newIndex, 10) - 1;\n }\n onSelect(`${oldPath}-${newIndex}`);\n }\n }}\n availableComponents={availableComponents}\n updateTemplate={updateTemplate}\n childItems={item.children}\n />\n ))}\n setNewCompActive(true),\n selected: true,\n }}\n onDroppedOn={(evt) => {\n updateTemplate('REARANGE', draggingComponent, evt);\n setDraggingCompnoent(null);\n const oldParts = draggingComponent.split('-');\n const oldPath = oldParts[0];\n onSelect(`${oldPath}-${template.components.length - 1}`);\n }}\n />\n }\n fullWidth\n autofocusTarget=\"first-node\"\n onClose={() => setNewCompActive(false)}\n >\n \n \n
\n onSelect('Footer-998'),\n },\n ]}\n />\n \n
\n \n );\n};\n\nexport default ComponentTree;\n","import { showComponentForRefType } from '../../../util/componentFilter';\n\n/**\n * Get all component keys present in the template, including conditional components.\n * @param {Object} template - The template object.\n * @returns {Array} - An array containing all the component keys.\n */\nexport const allComponentKeysInTemplate = (template) => {\n // Extract component keys from the main components array\n const componentTempKeys = template.components.map(({ _id }) => _id);\n\n // Extract keys from conditional components within the template\n let conditionalComponentsKeys = [];\n const conditionalComponents = template.components.filter(\n (c) => c.id === 'Conditional'\n );\n conditionalComponents.forEach((condc) => {\n conditionalComponentsKeys = conditionalComponentsKeys.concat(\n condc.columns\n ? Object.entries(condc.columns).map(([, value]) => value.id)\n : []\n );\n });\n\n // Combine and return all component keys\n return componentTempKeys.concat(conditionalComponentsKeys);\n};\n\n/**\n * Filter available components for selection based on visibility, template keys, notification types, and feature flags.\n * @param {Array} components - The array of components.\n * @param {Array} tempKeys - The array of template keys.\n * @param {Object} template - The template object.\n * @returns {Array} - The filtered array of components.\n */\nexport const filterAvailableComponents = (components, tempKeys, template) =>\n (components || []).filter(\n (c) =>\n c.visible &&\n (!c.maxPerTemplate || !tempKeys.includes(c.key)) &&\n showComponentForRefType(c.allowedNotificationTypes, template.templateId)\n );\n","export const getRefType = (templateId) => templateId.substring(0, 2);\nexport const getAfRefType = (templateId) => templateId.substring(0, 4);\n\nexport const showComponentForRefType = (\n allowedNotificationTypes,\n templateId\n) => {\n const afRefType = getAfRefType(templateId);\n const refType = getRefType(templateId);\n if (allowedNotificationTypes) {\n if (\n allowedNotificationTypes.find((el) => el === refType) ||\n allowedNotificationTypes.find((el) => el === afRefType)\n ) {\n return true;\n }\n return false;\n }\n return true;\n};\n","var styles = {\n \"Layout\": \"Polaris-Layout\",\n \"Section\": \"Polaris-Layout__Section\",\n \"Section-secondary\": \"Polaris-Layout__Section--secondary\",\n \"Section-fullWidth\": \"Polaris-Layout__Section--fullWidth\",\n \"Section-oneHalf\": \"Polaris-Layout__Section--oneHalf\",\n \"Section-oneThird\": \"Polaris-Layout__Section--oneThird\",\n \"AnnotatedSection\": \"Polaris-Layout__AnnotatedSection\",\n \"AnnotationWrapper\": \"Polaris-Layout__AnnotationWrapper\",\n \"AnnotationContent\": \"Polaris-Layout__AnnotationContent\",\n \"Annotation\": \"Polaris-Layout__Annotation\",\n \"AnnotationDescription\": \"Polaris-Layout__AnnotationDescription\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from '../../Layout.scss.js';\n\nfunction Section({\n children,\n secondary,\n fullWidth,\n oneHalf,\n oneThird\n}) {\n const className = classNames(styles.Section, secondary && styles['Section-secondary'], fullWidth && styles['Section-fullWidth'], oneHalf && styles['Section-oneHalf'], oneThird && styles['Section-oneThird']);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, children);\n}\n\nexport { Section };\n","import React from 'react';\nimport styles from './Layout.scss.js';\nimport { AnnotatedSection } from './components/AnnotatedSection/AnnotatedSection.js';\nimport { Section } from './components/Section/Section.js';\n\nconst Layout = function Layout({\n sectioned,\n children\n}) {\n const content = sectioned ? /*#__PURE__*/React.createElement(Section, null, children) : children;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Layout\n }, content);\n};\nLayout.AnnotatedSection = AnnotatedSection;\nLayout.Section = Section;\n\nexport { Layout };\n","import React from 'react';\nimport styles from '../../Layout.scss.js';\nimport { TextContainer } from '../../../TextContainer/TextContainer.js';\nimport { Heading } from '../../../Heading/Heading.js';\n\nfunction AnnotatedSection(props) {\n const {\n children,\n title,\n description,\n id\n } = props;\n const descriptionMarkup = typeof description === 'string' ? /*#__PURE__*/React.createElement(\"p\", null, description) : description;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.AnnotatedSection\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.AnnotationWrapper\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Annotation\n }, /*#__PURE__*/React.createElement(TextContainer, null, /*#__PURE__*/React.createElement(Heading, {\n id: id\n }, title), descriptionMarkup && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.AnnotationDescription\n }, descriptionMarkup))), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.AnnotationContent\n }, children)));\n}\n\nexport { AnnotatedSection };\n","import React from 'react';\n\nvar SvgMinusMinor = function SvgMinusMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.167 9h-8.334c-.46 0-.833.448-.833 1s.372 1 .833 1h8.334c.46 0 .833-.448.833-1s-.373-1-.833-1\"\n }));\n};\n\nexport { SvgMinusMinor as S };\n","import React from 'react';\n\nvar SvgTickSmallMinor = function SvgTickSmallMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.723 6.237a.94.94 0 0 1 .053 1.277l-5.366 6.193a.834.834 0 0 1-.611.293.83.83 0 0 1-.622-.264l-2.927-3.097a.94.94 0 0 1 0-1.278.82.82 0 0 1 1.207 0l2.297 2.43 4.763-5.498a.821.821 0 0 1 1.206-.056Z\"\n }));\n};\n\nexport { SvgTickSmallMinor as S };\n","import { createContext } from 'react';\n\nconst ListboxContext = /*#__PURE__*/createContext(undefined);\nconst WithinListboxContext = /*#__PURE__*/createContext(false);\nconst ActionContext = /*#__PURE__*/createContext(false);\n\nexport { ActionContext, ListboxContext, WithinListboxContext };\n","var styles = {\n \"Checkbox\": \"Polaris-Checkbox\",\n \"Input\": \"Polaris-Checkbox__Input\",\n \"keyFocused\": \"Polaris-Checkbox--keyFocused\",\n \"Backdrop\": \"Polaris-Checkbox__Backdrop\",\n \"Input-indeterminate\": \"Polaris-Checkbox__Input--indeterminate\",\n \"Icon\": \"Polaris-Checkbox__Icon\",\n \"hover\": \"Polaris-Checkbox--hover\",\n \"error\": \"Polaris-Checkbox--error\"\n};\n\nexport { styles as default };\n","var styles = {\n \"Choice\": \"Polaris-Choice\",\n \"labelHidden\": \"Polaris-Choice--labelHidden\",\n \"Label\": \"Polaris-Choice__Label\",\n \"Control\": \"Polaris-Choice__Control\",\n \"disabled\": \"Polaris-Choice--disabled\",\n \"Descriptions\": \"Polaris-Choice__Descriptions\",\n \"HelpText\": \"Polaris-Choice__HelpText\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './Choice.scss.js';\nimport { InlineError } from '../InlineError/InlineError.js';\n\nfunction Choice({\n id,\n label,\n disabled,\n error,\n children,\n labelHidden,\n helpText,\n onClick,\n onMouseOut,\n onMouseOver\n}) {\n const className = classNames(styles.Choice, labelHidden && styles.labelHidden, disabled && styles.disabled);\n const labelMarkup = /*#__PURE__*/React.createElement(\"label\", {\n className: className,\n htmlFor: id,\n onClick: onClick,\n onMouseOver: onMouseOver,\n onMouseOut: onMouseOut\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Control\n }, children), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Label\n }, label));\n const helpTextMarkup = helpText ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.HelpText,\n id: helpTextID(id)\n }, helpText) : null;\n const errorMarkup = error && typeof error !== 'boolean' && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Error\n }, /*#__PURE__*/React.createElement(InlineError, {\n message: error,\n fieldID: id\n }));\n const descriptionMarkup = helpTextMarkup || errorMarkup ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Descriptions\n }, errorMarkup, helpTextMarkup) : null;\n return descriptionMarkup ? /*#__PURE__*/React.createElement(\"div\", null, labelMarkup, descriptionMarkup) : labelMarkup;\n}\nfunction helpTextID(id) {\n return `${id}HelpText`;\n}\n\nexport { Choice, helpTextID };\n","import React, { forwardRef, useRef, useState, useContext, useImperativeHandle } from 'react';\nimport { MinusMinor, TickSmallMinor } from '@shopify/polaris-icons';\nimport { classNames } from '../../utilities/css.js';\nimport { useToggle } from '../../utilities/use-toggle.js';\nimport { Key } from '../../types.js';\nimport { WithinListboxContext } from '../../utilities/listbox/context.js';\nimport styles from './Checkbox.scss.js';\nimport { Choice, helpTextID } from '../Choice/Choice.js';\nimport { errorTextID } from '../InlineError/InlineError.js';\nimport { useUniqueId } from '../../utilities/unique-id/hooks.js';\nimport { Icon } from '../Icon/Icon.js';\n\nconst Checkbox = /*#__PURE__*/forwardRef(function Checkbox({\n ariaControls,\n ariaDescribedBy: ariaDescribedByProp,\n label,\n labelHidden,\n checked = false,\n helpText,\n disabled,\n id: idProp,\n name,\n value,\n error,\n onChange,\n onFocus,\n onBlur\n}, ref) {\n const inputNode = useRef(null);\n const id = useUniqueId('Checkbox', idProp);\n const {\n value: mouseOver,\n setTrue: handleMouseOver,\n setFalse: handleMouseOut\n } = useToggle(false);\n const [keyFocused, setKeyFocused] = useState(false);\n const isWithinListbox = useContext(WithinListboxContext);\n useImperativeHandle(ref, () => ({\n focus: () => {\n if (inputNode.current) {\n inputNode.current.focus();\n }\n }\n }));\n\n const handleBlur = () => {\n onBlur && onBlur();\n setKeyFocused(false);\n };\n\n const handleKeyUp = event => {\n const {\n keyCode\n } = event;\n\n if (keyCode === Key.Space || keyCode === Key.Tab) {\n !keyFocused && setKeyFocused(true);\n }\n };\n\n const handleOnClick = () => {\n if (onChange == null || inputNode.current == null || disabled) {\n return;\n }\n\n onChange(inputNode.current.checked, id);\n inputNode.current.focus();\n };\n\n const describedBy = [];\n\n if (error && typeof error !== 'boolean') {\n describedBy.push(errorTextID(id));\n }\n\n if (helpText) {\n describedBy.push(helpTextID(id));\n }\n\n if (ariaDescribedByProp) {\n describedBy.push(ariaDescribedByProp);\n }\n\n const ariaDescribedBy = describedBy.length ? describedBy.join(' ') : undefined;\n const wrapperClassName = classNames(styles.Checkbox, error && styles.error);\n const backdropClassName = classNames(styles.Backdrop, mouseOver && styles.hover);\n const isIndeterminate = checked === 'indeterminate';\n const isChecked = !isIndeterminate && Boolean(checked);\n const indeterminateAttributes = isIndeterminate ? {\n indeterminate: 'true',\n 'aria-checked': 'mixed'\n } : {\n 'aria-checked': isChecked\n };\n const iconSource = isIndeterminate ? MinusMinor : TickSmallMinor;\n const inputClassName = classNames(styles.Input, isIndeterminate && styles['Input-indeterminate'], keyFocused && styles.keyFocused);\n return /*#__PURE__*/React.createElement(Choice, {\n id: id,\n label: label,\n labelHidden: labelHidden,\n helpText: helpText,\n error: error,\n disabled: disabled,\n onMouseOver: handleMouseOver,\n onMouseOut: handleMouseOut\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: wrapperClassName\n }, /*#__PURE__*/React.createElement(\"input\", Object.assign({\n ref: inputNode,\n id: id,\n name: name,\n value: value,\n type: \"checkbox\",\n checked: isChecked,\n disabled: disabled,\n className: inputClassName,\n onBlur: handleBlur,\n onChange: noop,\n onClick: handleOnClick,\n onFocus: onFocus,\n onKeyUp: handleKeyUp,\n \"aria-invalid\": error != null,\n \"aria-controls\": ariaControls,\n \"aria-describedby\": ariaDescribedBy,\n role: isWithinListbox ? 'presentation' : 'checkbox'\n }, indeterminateAttributes)), /*#__PURE__*/React.createElement(\"span\", {\n className: backdropClassName,\n onClick: stopPropagation,\n onKeyUp: stopPropagation\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Icon\n }, /*#__PURE__*/React.createElement(Icon, {\n source: iconSource\n }))));\n});\n\nfunction noop() {}\n\nfunction stopPropagation(event) {\n event.stopPropagation();\n}\n\nexport { Checkbox };\n","import React from 'react';\n\nvar SvgXSmallIcon = function SvgXSmallIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.72 13.78a.75.75 0 1 0 1.06-1.06l-2.72-2.72 2.72-2.72a.75.75 0 0 0-1.06-1.06l-2.72 2.72-2.72-2.72a.75.75 0 0 0-1.06 1.06l2.72 2.72-2.72 2.72a.75.75 0 1 0 1.06 1.06l2.72-2.72 2.72 2.72Z\"\n }));\n};\nSvgXSmallIcon.displayName = \"XSmallIcon\";\n\nexport { SvgXSmallIcon as S };\n","import React from 'react';\n\nvar SvgCancelSmallMinor = function SvgCancelSmallMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.707 5.293a1 1 0 0 0-1.414 1.414l3.293 3.293-3.293 3.293a1 1 0 1 0 1.414 1.414l3.293-3.293 3.293 3.293a1 1 0 0 0 1.414-1.414l-3.293-3.293 3.293-3.293a1 1 0 0 0-1.414-1.414l-3.293 3.293-3.293-3.293Z\"\n }));\n};\n\nexport { SvgCancelSmallMinor as S };\n","import React from 'react';\n\nvar SvgCircleTickMajor = function SvgCircleTickMajor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M0 10a10 10 0 1 0 20 0 10 10 0 0 0-20 0zm15.2-1.8a1 1 0 0 0-1.4-1.4l-4.8 4.8-2.3-2.3a1 1 0 0 0-1.4 1.4l3 3c.4.4 1 .4 1.4 0l5.5-5.5z\"\n }));\n};\n\nexport { SvgCircleTickMajor as S };\n","import React from 'react';\n\nvar SvgCircleInformationMajor = function SvgCircleInformationMajor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10 20c5.514 0 10-4.486 10-10s-4.486-10-10-10-10 4.486-10 10 4.486 10 10 10zm1-6a1 1 0 1 1-2 0v-4a1 1 0 1 1 2 0v4zm-1-9a1 1 0 1 0 0 2 1 1 0 0 0 0-2z\"\n }));\n};\n\nexport { SvgCircleInformationMajor as S };\n","import React from 'react';\n\nvar SvgCircleAlertMajor = function SvgCircleAlertMajor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10 0c-5.514 0-10 4.486-10 10s4.486 10 10 10 10-4.486 10-10-4.486-10-10-10zm-1 6a1 1 0 1 1 2 0v4a1 1 0 1 1-2 0v-4zm1 9a1 1 0 1 0 0-2 1 1 0 0 0 0 2z\"\n }));\n};\n\nexport { SvgCircleAlertMajor as S };\n","import React from 'react';\n\nvar SvgDiamondAlertMajor = function SvgDiamondAlertMajor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.768.768a2.5 2.5 0 0 0-3.536 0l-7.464 7.464a2.5 2.5 0 0 0 0 3.536l7.464 7.464a2.5 2.5 0 0 0 3.536 0l7.464-7.464a2.5 2.5 0 0 0 0-3.536l-7.464-7.464zm-2.768 5.232a1 1 0 1 1 2 0v4a1 1 0 1 1-2 0v-4zm2 8a1 1 0 1 1-2 0 1 1 0 0 1 2 0z\"\n }));\n};\n\nexport { SvgDiamondAlertMajor as S };\n","var styles = {\n \"Banner\": \"Polaris-Banner\",\n \"statusCritical\": \"Polaris-Banner--statusCritical\",\n \"PrimaryAction\": \"Polaris-Banner__PrimaryAction\",\n \"Button\": \"Polaris-Banner__Button\",\n \"statusWarning\": \"Polaris-Banner--statusWarning\",\n \"statusInfo\": \"Polaris-Banner--statusInfo\",\n \"statusSuccess\": \"Polaris-Banner--statusSuccess\",\n \"ContentWrapper\": \"Polaris-Banner__ContentWrapper\",\n \"withinContentContainer\": \"Polaris-Banner--withinContentContainer\",\n \"Dismiss\": \"Polaris-Banner__Dismiss\",\n \"Ribbon\": \"Polaris-Banner__Ribbon\",\n \"keyFocused\": \"Polaris-Banner--keyFocused\",\n \"Actions\": \"Polaris-Banner__Actions\",\n \"withinPage\": \"Polaris-Banner--withinPage\",\n \"hasDismiss\": \"Polaris-Banner--hasDismiss\",\n \"Heading\": \"Polaris-Banner__Heading\",\n \"Content\": \"Polaris-Banner__Content\",\n \"SecondaryAction\": \"Polaris-Banner__SecondaryAction\",\n \"Text\": \"Polaris-Banner__Text\",\n \"pressed\": \"Polaris-Banner--pressed\",\n \"loading\": \"Polaris-Banner--loading\",\n \"Spinner\": \"Polaris-Banner__Spinner\"\n};\n\nexport { styles as default };\n","import React, { forwardRef, useContext, useRef, useState, useImperativeHandle } from 'react';\nimport { CancelSmallMinor, CircleInformationMajor, DiamondAlertMajor, CircleAlertMajor, CircleTickMajor } from '@shopify/polaris-icons';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport { BannerContext } from '../../utilities/banner-context.js';\nimport { WithinContentContext } from '../../utilities/within-content-context.js';\nimport styles from './Banner.scss.js';\nimport { unstyledButtonFrom } from '../UnstyledButton/utils.js';\nimport { useUniqueId } from '../../utilities/unique-id/hooks.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Heading } from '../Heading/Heading.js';\nimport { Spinner } from '../Spinner/Spinner.js';\nimport { ButtonGroup } from '../ButtonGroup/ButtonGroup.js';\nimport { Button } from '../Button/Button.js';\nimport { Icon } from '../Icon/Icon.js';\nimport { UnstyledLink } from '../UnstyledLink/UnstyledLink.js';\nimport { UnstyledButton } from '../UnstyledButton/UnstyledButton.js';\n\nconst Banner = /*#__PURE__*/forwardRef(function Banner({\n icon,\n action,\n secondaryAction,\n title,\n children,\n status,\n onDismiss,\n stopAnnouncements\n}, bannerRef) {\n const withinContentContainer = useContext(WithinContentContext);\n const id = useUniqueId('Banner');\n const i18n = useI18n();\n const {\n wrapperRef,\n handleKeyUp,\n handleBlur,\n handleMouseUp,\n shouldShowFocus\n } = useBannerFocus(bannerRef);\n const {\n defaultIcon,\n iconColor,\n ariaRoleType\n } = useBannerAttributes(status);\n const iconName = icon || defaultIcon;\n const className = classNames(styles.Banner, status && styles[variationName('status', status)], onDismiss && styles.hasDismiss, shouldShowFocus && styles.keyFocused, withinContentContainer ? styles.withinContentContainer : styles.withinPage);\n let headingMarkup = null;\n let headingID;\n\n if (title) {\n headingID = `${id}Heading`;\n headingMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Heading,\n id: headingID\n }, /*#__PURE__*/React.createElement(Heading, {\n element: \"p\"\n }, title));\n }\n\n const spinnerMarkup = action !== null && action !== void 0 && action.loading ? /*#__PURE__*/React.createElement(\"button\", {\n disabled: true,\n \"aria-busy\": true,\n className: classNames(styles.Button, styles.loading)\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Spinner\n }, /*#__PURE__*/React.createElement(Spinner, {\n size: \"small\",\n accessibilityLabel: i18n.translate('Polaris.Button.spinnerAccessibilityLabel')\n })), action.content) : null;\n const primaryActionMarkup = action ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.PrimaryAction\n }, action.loading ? spinnerMarkup : unstyledButtonFrom(action, {\n className: styles.Button\n })) : null;\n const secondaryActionMarkup = secondaryAction ? /*#__PURE__*/React.createElement(SecondaryActionFrom, {\n action: secondaryAction\n }) : null;\n const actionMarkup = action || secondaryAction ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Actions\n }, /*#__PURE__*/React.createElement(ButtonGroup, null, primaryActionMarkup, secondaryActionMarkup)) : null;\n let contentMarkup = null;\n let contentID;\n\n if (children || actionMarkup) {\n contentID = `${id}Content`;\n contentMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Content,\n id: contentID\n }, children, actionMarkup);\n }\n\n const dismissButton = onDismiss && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Dismiss\n }, /*#__PURE__*/React.createElement(Button, {\n plain: true,\n icon: CancelSmallMinor,\n onClick: onDismiss,\n accessibilityLabel: \"Dismiss notification\"\n }));\n return /*#__PURE__*/React.createElement(BannerContext.Provider, {\n value: true\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: className // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n ,\n tabIndex: 0,\n ref: wrapperRef,\n role: ariaRoleType,\n \"aria-live\": stopAnnouncements ? 'off' : 'polite',\n onMouseUp: handleMouseUp,\n onKeyUp: handleKeyUp,\n onBlur: handleBlur,\n \"aria-labelledby\": headingID,\n \"aria-describedby\": contentID\n }, dismissButton, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Ribbon\n }, /*#__PURE__*/React.createElement(Icon, {\n source: iconName,\n color: iconColor\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ContentWrapper\n }, headingMarkup, contentMarkup)));\n});\n\nfunction SecondaryActionFrom({\n action\n}) {\n if (action.url) {\n return /*#__PURE__*/React.createElement(UnstyledLink, {\n className: styles.SecondaryAction,\n url: action.url,\n external: action.external\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Text\n }, action.content));\n }\n\n return /*#__PURE__*/React.createElement(UnstyledButton, {\n className: styles.SecondaryAction,\n onClick: action.onAction\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Text\n }, action.content));\n}\n\nfunction useBannerAttributes(status) {\n switch (status) {\n case 'success':\n return {\n defaultIcon: CircleTickMajor,\n iconColor: 'success',\n ariaRoleType: 'status'\n };\n\n case 'info':\n return {\n defaultIcon: CircleInformationMajor,\n iconColor: 'highlight',\n ariaRoleType: 'status'\n };\n\n case 'warning':\n return {\n defaultIcon: CircleAlertMajor,\n iconColor: 'warning',\n ariaRoleType: 'alert'\n };\n\n case 'critical':\n return {\n defaultIcon: DiamondAlertMajor,\n iconColor: 'critical',\n ariaRoleType: 'alert'\n };\n\n default:\n return {\n defaultIcon: CircleInformationMajor,\n iconColor: 'base',\n ariaRoleType: 'status'\n };\n }\n}\n\nfunction useBannerFocus(bannerRef) {\n const wrapperRef = useRef(null);\n const [shouldShowFocus, setShouldShowFocus] = useState(false);\n useImperativeHandle(bannerRef, () => ({\n focus: () => {\n var _wrapperRef$current;\n\n (_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.focus();\n setShouldShowFocus(true);\n }\n }), []);\n\n const handleKeyUp = event => {\n if (event.target === wrapperRef.current) {\n setShouldShowFocus(true);\n }\n };\n\n const handleBlur = () => setShouldShowFocus(false);\n\n const handleMouseUp = event => {\n event.currentTarget.blur();\n setShouldShowFocus(false);\n };\n\n return {\n wrapperRef,\n handleKeyUp,\n handleBlur,\n handleMouseUp,\n shouldShowFocus\n };\n}\n\nexport { Banner };\n","import React from 'react';\nimport { UnstyledButton } from './UnstyledButton.js';\n\nfunction unstyledButtonFrom({\n content,\n onAction,\n ...action\n}, overrides, key) {\n return /*#__PURE__*/React.createElement(UnstyledButton, Object.assign({\n key: key,\n onClick: onAction\n }, action, overrides), content);\n}\n\nexport { unstyledButtonFrom };\n","var styles = {\n \"Select\": \"Polaris-Select\",\n \"disabled\": \"Polaris-Select--disabled\",\n \"Content\": \"Polaris-Select__Content\",\n \"InlineLabel\": \"Polaris-Select__InlineLabel\",\n \"Icon\": \"Polaris-Select__Icon\",\n \"Backdrop\": \"Polaris-Select__Backdrop\",\n \"SelectedOption\": \"Polaris-Select__SelectedOption\",\n \"Prefix\": \"Polaris-Select__Prefix\",\n \"Input\": \"Polaris-Select__Input\",\n \"error\": \"Polaris-Select--error\",\n \"hover\": \"Polaris-Select--hover\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { SelectMinor } from '@shopify/polaris-icons';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './Select.scss.js';\nimport { useUniqueId } from '../../utilities/unique-id/hooks.js';\nimport { Icon } from '../Icon/Icon.js';\nimport { Labelled, helpTextID } from '../Labelled/Labelled.js';\n\nconst PLACEHOLDER_VALUE = '';\nfunction Select({\n options: optionsProp,\n label,\n labelAction,\n labelHidden: labelHiddenProp,\n labelInline,\n disabled,\n helpText,\n placeholder,\n id: idProp,\n name,\n value = PLACEHOLDER_VALUE,\n error,\n onChange,\n onFocus,\n onBlur,\n requiredIndicator\n}) {\n const id = useUniqueId('Select', idProp);\n const labelHidden = labelInline ? true : labelHiddenProp;\n const className = classNames(styles.Select, error && styles.error, disabled && styles.disabled);\n const handleChange = onChange ? event => onChange(event.currentTarget.value, id) : undefined;\n const describedBy = [];\n\n if (helpText) {\n describedBy.push(helpTextID(id));\n }\n\n if (error) {\n describedBy.push(`${id}Error`);\n }\n\n const options = optionsProp || [];\n let normalizedOptions = options.map(normalizeOption);\n\n if (placeholder) {\n normalizedOptions = [{\n label: placeholder,\n value: PLACEHOLDER_VALUE,\n disabled: true\n }, ...normalizedOptions];\n }\n\n const inlineLabelMarkup = labelInline && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.InlineLabel\n }, label);\n const selectedOption = getSelectedOption(normalizedOptions, value);\n const prefixMarkup = selectedOption.prefix && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Prefix\n }, selectedOption.prefix);\n const contentMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Content,\n \"aria-hidden\": true,\n \"aria-disabled\": disabled\n }, inlineLabelMarkup, prefixMarkup, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.SelectedOption\n }, selectedOption.label), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Icon\n }, /*#__PURE__*/React.createElement(Icon, {\n source: SelectMinor\n })));\n const optionsMarkup = normalizedOptions.map(renderOption);\n return /*#__PURE__*/React.createElement(Labelled, {\n id: id,\n label: label,\n error: error,\n action: labelAction,\n labelHidden: labelHidden,\n helpText: helpText,\n requiredIndicator: requiredIndicator\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(\"select\", {\n id: id,\n name: name,\n value: value,\n className: styles.Input,\n disabled: disabled,\n onFocus: onFocus,\n onBlur: onBlur,\n onChange: handleChange,\n \"aria-invalid\": Boolean(error),\n \"aria-describedby\": describedBy.length ? describedBy.join(' ') : undefined,\n \"aria-required\": requiredIndicator\n }, optionsMarkup), contentMarkup, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Backdrop\n })));\n}\n\nfunction isString(option) {\n return typeof option === 'string';\n}\n\nfunction isGroup(option) {\n return typeof option === 'object' && 'options' in option && option.options != null;\n}\n\nfunction normalizeStringOption(option) {\n return {\n label: option,\n value: option\n };\n}\n/**\n * Converts a string option (and each string option in a Group) into\n * an Option object.\n */\n\n\nfunction normalizeOption(option) {\n if (isString(option)) {\n return normalizeStringOption(option);\n } else if (isGroup(option)) {\n const {\n title,\n options\n } = option;\n return {\n title,\n options: options.map(option => {\n return isString(option) ? normalizeStringOption(option) : option;\n })\n };\n }\n\n return option;\n}\n/**\n * Gets the text to display in the UI, for the currently selected option\n */\n\n\nfunction getSelectedOption(options, value) {\n const flatOptions = flattenOptions(options);\n let selectedOption = flatOptions.find(option => value === option.value);\n\n if (selectedOption === undefined) {\n // Get the first visible option (not the hidden placeholder)\n selectedOption = flatOptions.find(option => !option.hidden);\n }\n\n return selectedOption || {\n value: '',\n label: ''\n };\n}\n/**\n * Ungroups an options array\n */\n\n\nfunction flattenOptions(options) {\n let flatOptions = [];\n options.forEach(optionOrGroup => {\n if (isGroup(optionOrGroup)) {\n flatOptions = flatOptions.concat(optionOrGroup.options);\n } else {\n flatOptions.push(optionOrGroup);\n }\n });\n return flatOptions;\n}\n\nfunction renderSingleOption(option) {\n const {\n value,\n label,\n prefix: _prefix,\n ...rest\n } = option;\n return /*#__PURE__*/React.createElement(\"option\", Object.assign({\n key: value,\n value: value\n }, rest), label);\n}\n\nfunction renderOption(optionOrGroup) {\n if (isGroup(optionOrGroup)) {\n const {\n title,\n options\n } = optionOrGroup;\n return /*#__PURE__*/React.createElement(\"optgroup\", {\n label: title,\n key: title\n }, options.map(renderSingleOption));\n }\n\n return renderSingleOption(optionOrGroup);\n}\n\nexport { Select };\n","import { Select } from '@shopify/polaris';\nimport React from 'react';\n\nconst fonts = [\n {\n label: 'Shopify Default',\n value:\n // eslint-disable-next-line max-len\n \"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Fira Sans', Droid Sans, 'Helvetica Neue', sans-serif\",\n },\n {\n label: 'Arial',\n value: \"Arial, 'Helvetica Neue', Helvetica, sans-serif\",\n },\n {\n label: 'Georgia',\n value: \"'georgia', serif\",\n },\n {\n label: 'Comic Sans',\n value: \"'Comic Sans MS','Comic Sans',cursive\",\n },\n {\n label: 'Courier New',\n value:\n \"'Courier New', Courier, 'Lucida Sans Typewriter', 'Lucida Typewriter', monospace\",\n },\n {\n label: 'Lucida',\n value:\n \"'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', Geneva, Verdana, Arial, sans-serif\",\n },\n {\n label: 'Tahoma',\n value: 'Tahoma,Verdana, Segoe, sans-serif',\n },\n {\n label: 'Times New Roman',\n value:\n \"TimesNewRoman, 'Times New Roman', Times, Baskerville, Georgia, serif\",\n },\n {\n label: 'Trebuchet',\n value:\n \"'Trebuchet MS', 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', Tahoma, sans-serif\",\n },\n {\n label: 'Helvetica',\n value: \"Helvetica,'Helvetica Neue', Arial, sans-serif\",\n },\n {\n label: 'Calibri',\n value: \"Calibri, Candara, Segoe, 'Segoe UI', Optima, Arial, sans-serif\",\n },\n {\n label: 'Roboto',\n value: \"roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif\",\n googleFont: true,\n },\n {\n label: 'Open Sans',\n value: \"'open sans', Arial, 'Helvetica Neue', Helvetica, sans-serif\",\n googleFont: true,\n special: 'openSans',\n },\n {\n label: 'Oswald',\n value: 'oswald, Helvetica, Lucida, Arial, sans-serif',\n googleFont: true,\n },\n {\n label: 'Ubuntu',\n value: 'ubuntu, Helvetica, Calibri, Tahoma, sans-serif',\n googleFont: true,\n },\n {\n label: 'Lato',\n value: 'lato, Helvetica, Tahoma, Verdana, Segoe, sans-serif',\n googleFont: true,\n },\n {\n label: 'Bitter',\n value:\n \"bitter, Georgia, TimesNewRoman, 'Times New Roman', Times, Baskerville, Georgia, serif\",\n googleFont: true,\n },\n {\n label: 'Merriweather',\n value: \"merriweather, Georgia, 'georgia', serif\",\n googleFont: true,\n },\n {\n label: 'Lora',\n value:\n \"lora, Georgia, 'Palatino Linotype', 'Book Antiqua', Palatino, Georgia, serif\",\n googleFont: true,\n },\n {\n label: 'Great Vibes',\n value: \"'great vibes', Brush Script MT, Georgia, Helvetica, cursive\",\n googleFont: true,\n special: 'greatVibes',\n },\n {\n label: 'Pacifico',\n value: 'Pacifico, Brush Script MT, Georgia, Helvetica, cursive',\n googleFont: true,\n },\n {\n label: 'Montserrat',\n value: 'Montserrat, Helvetica, sans-serif',\n googleFont: true,\n },\n];\n\nconst FontSelector = ({ label, value, onChange }) => (\n ({ label: f.label, value: f.value }))}\n onChange={(evt) => {\n onChange(evt);\n }}\n value={value ? value.replaceAll('\"', \"'\") : fonts[0]}\n />\n);\n\nexport default FontSelector;\n","import React from 'react';\nimport { TextField } from '@shopify/polaris';\n\nconst CodeOption = ({ value, label, onChange, placeholder }) => (\n <>\n
{label}
\n \n \n);\n\nexport default CodeOption;\n","import React from 'react';\n\nvar SvgExchangeIcon = function SvgExchangeIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M15.5 11.364a2.501 2.501 0 1 1-1.5 0v-2.364a2.25 2.25 0 0 0-2.25-2.25h-.44l.47.47a.75.75 0 0 1-1.06 1.06l-1.75-1.75a.75.75 0 0 1 0-1.06l1.75-1.75a.75.75 0 1 1 1.06 1.06l-.47.47h.44a3.75 3.75 0 0 1 3.75 3.75v2.364Zm.25 2.386a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M6 11v-2.364a2.501 2.501 0 1 0-1.5 0v2.364a3.75 3.75 0 0 0 3.75 3.75h.44l-.47.47a.75.75 0 1 0 1.06 1.06l1.75-1.75a.75.75 0 0 0 0-1.06l-1.75-1.75a.75.75 0 0 0-1.06 1.06l.47.47h-.44a2.25 2.25 0 0 1-2.25-2.25Zm.25-4.75a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"\n }));\n};\nSvgExchangeIcon.displayName = \"ExchangeIcon\";\n\nexport { SvgExchangeIcon as S };\n","import React from 'react';\n\nvar SvgDeleteIcon = function SvgDeleteIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.5 8.25a.75.75 0 0 1 .75.75v4.25a.75.75 0 0 1-1.5 0v-4.25a.75.75 0 0 1 .75-.75Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.25 9a.75.75 0 0 0-1.5 0v4.25a.75.75 0 0 0 1.5 0v-4.25Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M7.25 5.25a2.75 2.75 0 0 1 5.5 0h3a.75.75 0 0 1 0 1.5h-.75v5.45c0 1.68 0 2.52-.327 3.162a3 3 0 0 1-1.311 1.311c-.642.327-1.482.327-3.162.327h-.4c-1.68 0-2.52 0-3.162-.327a3 3 0 0 1-1.311-1.311c-.327-.642-.327-1.482-.327-3.162v-5.45h-.75a.75.75 0 0 1 0-1.5h3Zm1.5 0a1.25 1.25 0 1 1 2.5 0h-2.5Zm-2.25 1.5h7v5.45c0 .865-.001 1.423-.036 1.848-.033.408-.09.559-.128.633a1.5 1.5 0 0 1-.655.655c-.074.038-.225.095-.633.128-.425.035-.983.036-1.848.036h-.4c-.865 0-1.423-.001-1.848-.036-.408-.033-.559-.09-.633-.128a1.5 1.5 0 0 1-.656-.655c-.037-.074-.094-.225-.127-.633-.035-.425-.036-.983-.036-1.848v-5.45Z\"\n }));\n};\nSvgDeleteIcon.displayName = \"DeleteIcon\";\n\nexport { SvgDeleteIcon as S };\n","import React, { useState } from 'react';\nimport { ActionList, Button, Popover, Stack } from '@shopify/polaris';\nimport { DeleteIcon, ExchangeIcon } from '@shopify/polaris-icons';\n\nconst imgPlaceholder = '/Content/images/placeholder.png';\n\nconst ImageOption = ({ value, onChange, setDisplayOptions }) => {\n const [popOpen, setPopOpen] = useState(false);\n\n const selectNewImage = () => {\n setDisplayOptions({\n themeVisible: false,\n showAdvanced: false,\n showImages: (newVal) => {\n onChange(newVal);\n setDisplayOptions({\n themeVisible: false,\n showAdvanced: false,\n showImages: false,\n showGlobal: false,\n });\n },\n showGlobal: false,\n });\n };\n\n if (value && value.toLowerCase() === imgPlaceholder) {\n return (\n \n \n \n );\n }\n\n const url = value;\n return (\n \n \n setPopOpen(!popOpen)}\n activator={\n \n }\n >\n {\n onChange(imgPlaceholder);\n setPopOpen(false);\n },\n },\n ]}\n />\n \n \n );\n};\n\nexport default ImageOption;\n","function clamp(number, min, max) {\n if (number < min) return min;\n if (number > max) return max;\n return number;\n}\n\nexport { clamp };\n","// Because everything is a float in JS, Number.toFixed sometimes rounds in the\n// \"wrong\" direction because of float imprecision. For instance:\n// `(1.005).toFixed(2)` is `1.00`, NOT `1.01` because 1.005 in floating point is\n// actually 1.004999995. By using exponentiation tricks here we can work around\n// this imprecision, so `roundNumberToDecimalPlaces(1.005)` returns the expected\n// value of `1.01`\n// See https://www.jacklmoore.com/notes/rounding-in-javascript/\nfunction roundNumberToDecimalPlaces(value, decimals) {\n const exponent = Number(`${value}e${decimals}`);\n const roundedExponent = Math.round(exponent);\n const numberWithDecimalPlaces = Number(`${roundedExponent}e-${decimals}`);\n return numberWithDecimalPlaces;\n}\n\nexport { roundNumberToDecimalPlaces };\n","import { clamp } from './clamp.js';\nimport { roundNumberToDecimalPlaces } from './roundNumberToDecimalPlaces.js';\n\nfunction rgbString(color) {\n const {\n red,\n green,\n blue\n } = color;\n\n if ('alpha' in color) {\n return `rgba(${red}, ${green}, ${blue}, ${color.alpha})`;\n } else {\n return `rgb(${red}, ${green}, ${blue})`;\n }\n}\nconst rgbaString = rgbString;\nfunction rgbToHex({\n red,\n green,\n blue\n}) {\n return `#${componentToHex(red)}${componentToHex(green)}${componentToHex(blue)}`;\n}\n\nfunction componentToHex(component) {\n const hex = component.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\nfunction hsbToHex(color) {\n return rgbToHex(hsbToRgb(color));\n}\n\nfunction rgbFromHueAndChroma(hue, chroma) {\n const huePrime = hue / 60;\n const hueDelta = 1 - Math.abs(huePrime % 2 - 1);\n const intermediateValue = chroma * hueDelta;\n let red = 0;\n let green = 0;\n let blue = 0;\n\n if (huePrime >= 0 && huePrime <= 1) {\n red = chroma;\n green = intermediateValue;\n blue = 0;\n }\n\n if (huePrime >= 1 && huePrime <= 2) {\n red = intermediateValue;\n green = chroma;\n blue = 0;\n }\n\n if (huePrime >= 2 && huePrime <= 3) {\n red = 0;\n green = chroma;\n blue = intermediateValue;\n }\n\n if (huePrime >= 3 && huePrime <= 4) {\n red = 0;\n green = intermediateValue;\n blue = chroma;\n }\n\n if (huePrime >= 4 && huePrime <= 5) {\n red = intermediateValue;\n green = 0;\n blue = chroma;\n }\n\n if (huePrime >= 5 && huePrime <= 6) {\n red = chroma;\n green = 0;\n blue = intermediateValue;\n }\n\n return {\n red,\n green,\n blue\n };\n} // implements https://en.wikipedia.org/wiki/HSL_and_HSV#From_HSV\n\n\nfunction hsbToRgb(color) {\n const {\n hue,\n saturation,\n brightness,\n alpha = 1\n } = color;\n const chroma = brightness * saturation;\n let {\n red,\n green,\n blue\n } = rgbFromHueAndChroma(hue, chroma);\n const chromaBrightnessDelta = brightness - chroma;\n red += chromaBrightnessDelta;\n green += chromaBrightnessDelta;\n blue += chromaBrightnessDelta;\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha\n };\n} // implements https://en.wikipedia.org/wiki/HSL_and_HSV#From_HSV\n\nfunction hslToRgb(color) {\n const {\n hue,\n saturation,\n lightness,\n alpha = 1\n } = color;\n const chroma = (1 - Math.abs(2 * (lightness / 100) - 1)) * (saturation / 100);\n let {\n red,\n green,\n blue\n } = rgbFromHueAndChroma(hue, chroma);\n const lightnessVal = lightness / 100 - chroma / 2;\n red += lightnessVal;\n green += lightnessVal;\n blue += lightnessVal;\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha\n };\n} // ref https://en.wikipedia.org/wiki/HSL_and_HSV\n\nfunction rgbToHsbl(color, type = 'b') {\n const {\n alpha = 1\n } = color;\n const red = color.red / 255;\n const green = color.green / 255;\n const blue = color.blue / 255;\n const largestComponent = Math.max(red, green, blue);\n const smallestComponent = Math.min(red, green, blue);\n const delta = largestComponent - smallestComponent;\n const lightness = (largestComponent + smallestComponent) / 2;\n let saturation = 0;\n\n if (largestComponent === 0) {\n saturation = 0;\n } else if (type === 'b') {\n saturation = delta / largestComponent;\n } else if (type === 'l') {\n const baseSaturation = lightness > 0.5 ? delta / (2 - largestComponent - smallestComponent) : delta / (largestComponent + smallestComponent);\n saturation = isNaN(baseSaturation) ? 0 : baseSaturation;\n }\n\n let huePercentage = 0;\n\n switch (largestComponent) {\n case red:\n huePercentage = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n\n case green:\n huePercentage = (blue - red) / delta + 2;\n break;\n\n case blue:\n huePercentage = (red - green) / delta + 4;\n }\n\n const hue = huePercentage / 6 * 360;\n const clampedHue = clamp(hue, 0, 360);\n return {\n hue: clampedHue ? roundNumberToDecimalPlaces(clampedHue, 2) : 0,\n saturation: roundNumberToDecimalPlaces(clamp(saturation, 0, 1), 4),\n brightness: roundNumberToDecimalPlaces(clamp(largestComponent, 0, 1), 4),\n lightness: roundNumberToDecimalPlaces(lightness, 4),\n alpha: roundNumberToDecimalPlaces(alpha, 4)\n };\n}\n\nfunction rgbToHsb(color) {\n const {\n hue,\n saturation,\n brightness,\n alpha = 1\n } = rgbToHsbl(color, 'b');\n return {\n hue,\n saturation,\n brightness,\n alpha\n };\n}\nfunction rgbToHsl(color) {\n const {\n hue,\n saturation: rawSaturation,\n lightness: rawLightness,\n alpha = 1\n } = rgbToHsbl(color, 'l');\n const saturation = roundNumberToDecimalPlaces(rawSaturation * 100, 2);\n const lightness = roundNumberToDecimalPlaces(rawLightness * 100, 2);\n return {\n hue,\n saturation,\n lightness,\n alpha\n };\n}\n\nexport { hsbToHex, hsbToRgb, hslToRgb, rgbString, rgbToHex, rgbToHsb, rgbToHsl, rgbaString };\n","var styles = {\n \"ColorPicker\": \"Polaris-ColorPicker\",\n \"MainColor\": \"Polaris-ColorPicker__MainColor\",\n \"fullWidth\": \"Polaris-ColorPicker--fullWidth\",\n \"Dragger\": \"Polaris-ColorPicker__Dragger\",\n \"ColorLayer\": \"Polaris-ColorPicker__ColorLayer\",\n \"HuePicker\": \"Polaris-ColorPicker__HuePicker\",\n \"AlphaPicker\": \"Polaris-ColorPicker__AlphaPicker\",\n \"Slidable\": \"Polaris-ColorPicker__Slidable\"\n};\n\nexport { styles as default };\n","import { clamp } from '../../../../utilities/clamp.js';\n\nconst VERTICAL_PADDING = 13;\nfunction calculateDraggerY(alpha, sliderHeight, draggerHeight) {\n const offset = offsetForAlpha(alpha, sliderHeight, draggerHeight);\n return clamp(offset, 0, sliderHeight);\n}\nfunction alphaForDraggerY(y, sliderHeight) {\n const offsetY = clamp(y, 0, sliderHeight);\n return alphaForOffset(offsetY, sliderHeight);\n}\nfunction alphaForOffset(offset, sliderHeight) {\n const selectionHeight = offset - VERTICAL_PADDING;\n const slidableArea = sliderHeight - VERTICAL_PADDING * 2;\n return clamp(1 - selectionHeight / slidableArea, 0, 1);\n}\n\nfunction offsetForAlpha(alpha, sliderHeight, draggerHeight) {\n const slidableArea = sliderHeight - (draggerHeight + VERTICAL_PADDING);\n return clamp((1 - alpha) * slidableArea + VERTICAL_PADDING, 0, sliderHeight - draggerHeight);\n}\n\nexport { alphaForDraggerY, alphaForOffset, calculateDraggerY };\n","import React, { PureComponent } from 'react';\nimport { isServer } from '../../../../utilities/target.js';\nimport styles from '../../ColorPicker.scss.js';\nimport { EventListener } from '../../../EventListener/EventListener.js';\n\nlet isDragging = false; // Required to solve a bug causing the underlying page/container to scroll\n// while trying to drag the ColorPicker controls.\n// This must be called as soon as possible to properly prevent the event.\n// `passive: false` must also be set, as it seems webkit has changed the \"default\" behaviour\n// https://bugs.webkit.org/show_bug.cgi?id=182521\n\nif (!isServer) {\n window.addEventListener('touchmove', event => {\n if (!isDragging) {\n return;\n }\n\n event.preventDefault();\n }, {\n passive: false\n });\n}\n\nclass Slidable extends PureComponent {\n constructor(...args) {\n super(...args);\n this.state = {\n dragging: false\n };\n this.node = null;\n this.draggerNode = null;\n\n this.setDraggerNode = node => {\n this.draggerNode = node;\n };\n\n this.setNode = node => {\n this.node = node;\n };\n\n this.startDrag = event => {\n if (isMouseDownEvent(event)) {\n this.handleDraggerMove(event.clientX, event.clientY);\n }\n\n isDragging = true;\n this.setState({\n dragging: true\n });\n };\n\n this.handleDragEnd = () => {\n isDragging = false;\n this.setState({\n dragging: false\n });\n };\n\n this.handleMove = event => {\n event.stopImmediatePropagation();\n event.stopPropagation();\n\n if (event.cancelable) {\n event.preventDefault();\n }\n\n if (isMouseMoveEvent(event)) {\n this.handleDraggerMove(event.clientX, event.clientY);\n return;\n }\n\n this.handleDraggerMove(event.touches[0].clientX, event.touches[0].clientY);\n };\n\n this.handleDraggerMove = (x, y) => {\n if (this.node == null) {\n return;\n }\n\n const {\n onChange\n } = this.props;\n const rect = this.node.getBoundingClientRect();\n const offsetX = x - rect.left;\n const offsetY = y - rect.top;\n onChange({\n x: offsetX,\n y: offsetY\n });\n };\n }\n\n componentDidMount() {\n const {\n onDraggerHeight\n } = this.props;\n\n if (onDraggerHeight == null) {\n return;\n }\n\n const {\n draggerNode\n } = this;\n\n if (draggerNode == null) {\n return;\n }\n\n onDraggerHeight(draggerNode.clientWidth);\n\n if (process.env.NODE_ENV === 'development') {\n setTimeout(() => {\n onDraggerHeight(draggerNode.clientWidth);\n }, 0);\n }\n }\n\n render() {\n const {\n dragging\n } = this.state;\n const {\n draggerX = 0,\n draggerY = 0\n } = this.props;\n const draggerPositioning = {\n transform: `translate3d(${draggerX}px, ${draggerY}px, 0)`\n };\n const moveListener = dragging ? /*#__PURE__*/React.createElement(EventListener, {\n event: \"mousemove\",\n handler: this.handleMove,\n passive: false\n }) : null;\n const touchMoveListener = dragging ? /*#__PURE__*/React.createElement(EventListener, {\n event: \"touchmove\",\n handler: this.handleMove,\n passive: false\n }) : null;\n const endDragListener = dragging ? /*#__PURE__*/React.createElement(EventListener, {\n event: \"mouseup\",\n handler: this.handleDragEnd\n }) : null;\n const touchEndListener = dragging ? /*#__PURE__*/React.createElement(EventListener, {\n event: \"touchend\",\n handler: this.handleDragEnd\n }) : null;\n const touchCancelListener = dragging ? /*#__PURE__*/React.createElement(EventListener, {\n event: \"touchcancel\",\n handler: this.handleDragEnd\n }) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.setNode,\n className: styles.Slidable,\n onMouseDown: this.startDrag,\n onTouchStart: this.startDrag\n }, endDragListener, moveListener, touchMoveListener, touchEndListener, touchCancelListener, /*#__PURE__*/React.createElement(\"div\", {\n style: draggerPositioning,\n className: styles.Dragger,\n ref: this.setDraggerNode\n }));\n }\n\n}\n\nfunction isMouseMoveEvent(event) {\n return event.type === 'mousemove';\n}\n\nfunction isMouseDownEvent(event) {\n return event.type === 'mousedown';\n}\n\nexport { Slidable };\n","import React, { PureComponent } from 'react';\nimport { hsbToRgb } from '../../../../utilities/color-transformers.js';\nimport styles from '../../ColorPicker.scss.js';\nimport { alphaForDraggerY, calculateDraggerY } from './utilities.js';\nimport { Slidable } from '../Slidable/Slidable.js';\n\nclass AlphaPicker extends PureComponent {\n constructor(...args) {\n super(...args);\n this.state = {\n sliderHeight: 0,\n draggerHeight: 0\n };\n\n this.setSliderHeight = node => {\n if (node == null) {\n return;\n }\n\n this.setState({\n sliderHeight: node.clientHeight\n });\n\n if (process.env.NODE_ENV === 'development') {\n setTimeout(() => {\n this.setState({\n sliderHeight: node.clientHeight\n });\n }, 0);\n }\n };\n\n this.setDraggerHeight = height => {\n this.setState({\n draggerHeight: height\n });\n };\n\n this.handleChange = ({\n y\n }) => {\n const {\n onChange\n } = this.props;\n const {\n sliderHeight\n } = this.state;\n const alpha = alphaForDraggerY(y, sliderHeight);\n onChange(alpha);\n };\n }\n\n render() {\n const {\n color,\n alpha\n } = this.props;\n const {\n sliderHeight,\n draggerHeight\n } = this.state;\n const draggerY = calculateDraggerY(alpha, sliderHeight, draggerHeight);\n const background = alphaGradientForColor(color);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.AlphaPicker,\n ref: this.setSliderHeight\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ColorLayer,\n style: {\n background\n }\n }), /*#__PURE__*/React.createElement(Slidable, {\n draggerY: draggerY,\n draggerX: 0,\n onChange: this.handleChange,\n onDraggerHeight: this.setDraggerHeight\n }));\n }\n\n}\n\nfunction alphaGradientForColor(color) {\n const {\n red,\n green,\n blue\n } = hsbToRgb(color);\n const rgb = `${red}, ${green}, ${blue}`;\n return `linear-gradient(to top, rgba(${rgb}, 0) 18px, rgba(${rgb}, 1) calc(100% - 18px))`;\n}\n\nexport { AlphaPicker };\n","import { clamp } from '../../../../utilities/clamp.js';\n\nconst VERTICAL_PADDING = 13;\nfunction calculateDraggerY(hue, sliderHeight, draggerHeight) {\n const offset = offsetForHue(hue, sliderHeight, draggerHeight);\n return clamp(offset, 0, sliderHeight);\n}\nfunction hueForDraggerY(y, sliderHeight) {\n const offsetY = clamp(y, 0, sliderHeight);\n return hueForOffset(offsetY, sliderHeight);\n}\n\nfunction hueForOffset(offset, sliderHeight) {\n const selectionHeight = offset - VERTICAL_PADDING;\n const slidableArea = sliderHeight - VERTICAL_PADDING * 2;\n return clamp(selectionHeight / slidableArea * 360, 0, 360);\n}\n\nfunction offsetForHue(hue, sliderHeight, draggerHeight) {\n const slidableArea = sliderHeight - (draggerHeight + VERTICAL_PADDING);\n return clamp(hue / 360 * slidableArea + VERTICAL_PADDING, 0, sliderHeight - draggerHeight);\n}\n\nexport { calculateDraggerY, hueForDraggerY };\n","import React, { PureComponent } from 'react';\nimport styles from '../../ColorPicker.scss.js';\nimport { hueForDraggerY, calculateDraggerY } from './utilities.js';\nimport { Slidable } from '../Slidable/Slidable.js';\n\nclass HuePicker extends PureComponent {\n constructor(...args) {\n super(...args);\n this.state = {\n sliderHeight: 0,\n draggerHeight: 0\n };\n\n this.setSliderHeight = node => {\n if (node == null) {\n return;\n }\n\n this.setState({\n sliderHeight: node.clientHeight\n });\n\n if (process.env.NODE_ENV === 'development') {\n setTimeout(() => {\n this.setState({\n sliderHeight: node.clientHeight\n });\n }, 0);\n }\n };\n\n this.setDraggerHeight = height => {\n this.setState({\n draggerHeight: height\n });\n };\n\n this.handleChange = ({\n y\n }) => {\n const {\n onChange\n } = this.props;\n const {\n sliderHeight\n } = this.state;\n const hue = hueForDraggerY(y, sliderHeight);\n onChange(hue);\n };\n }\n\n render() {\n const {\n hue\n } = this.props;\n const {\n sliderHeight,\n draggerHeight\n } = this.state;\n const draggerY = calculateDraggerY(hue, sliderHeight, draggerHeight);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.HuePicker,\n ref: this.setSliderHeight\n }, /*#__PURE__*/React.createElement(Slidable, {\n draggerY: draggerY,\n draggerX: 0,\n onChange: this.handleChange,\n onDraggerHeight: this.setDraggerHeight\n }));\n }\n\n}\n\nexport { HuePicker };\n","import React, { PureComponent } from 'react';\nimport debounce from 'lodash/debounce';\nimport { clamp } from '../../utilities/clamp.js';\nimport { classNames } from '../../utilities/css.js';\nimport { hsbToRgb } from '../../utilities/color-transformers.js';\nimport styles from './ColorPicker.scss.js';\nimport { AlphaPicker } from './components/AlphaPicker/AlphaPicker.js';\nimport { HuePicker } from './components/HuePicker/HuePicker.js';\nimport { Slidable } from './components/Slidable/Slidable.js';\nimport { EventListener } from '../EventListener/EventListener.js';\n\nconst RESIZE_DEBOUNCE_TIME_MS = 200;\nclass ColorPicker extends PureComponent {\n constructor(...args) {\n super(...args);\n this.state = {\n pickerSize: {\n width: 0,\n height: 0\n }\n };\n this.colorNode = null;\n this.handleResize = debounce(() => {\n const {\n colorNode\n } = this;\n\n if (colorNode == null) {\n return;\n }\n\n this.setState({\n pickerSize: {\n width: colorNode.clientWidth,\n height: colorNode.clientHeight\n }\n });\n }, RESIZE_DEBOUNCE_TIME_MS, {\n leading: true,\n trailing: true,\n maxWait: RESIZE_DEBOUNCE_TIME_MS\n });\n\n this.setColorNode = node => {\n this.colorNode = node;\n };\n\n this.handleHueChange = hue => {\n const {\n color: {\n brightness,\n saturation,\n alpha = 1\n },\n onChange\n } = this.props;\n onChange({\n hue,\n brightness,\n saturation,\n alpha\n });\n };\n\n this.handleAlphaChange = alpha => {\n const {\n color: {\n hue,\n brightness,\n saturation\n },\n onChange\n } = this.props;\n onChange({\n hue,\n brightness,\n saturation,\n alpha\n });\n };\n\n this.handleDraggerMove = ({\n x,\n y\n }) => {\n const {\n pickerSize\n } = this.state;\n const {\n color: {\n hue,\n alpha = 1\n },\n onChange\n } = this.props;\n const saturation = clamp(x / pickerSize.width, 0, 1);\n const brightness = clamp(1 - y / pickerSize.height, 0, 1);\n onChange({\n hue,\n saturation,\n brightness,\n alpha\n });\n };\n\n this.handlePickerDrag = event => {\n // prevents external elements from being selected\n event.preventDefault();\n };\n }\n\n componentDidMount() {\n const {\n colorNode\n } = this;\n\n if (colorNode == null) {\n return;\n }\n\n this.setState({\n pickerSize: {\n width: colorNode.clientWidth,\n height: colorNode.clientHeight\n }\n });\n\n if (process.env.NODE_ENV === 'development') {\n setTimeout(() => {\n this.setState({\n pickerSize: {\n width: colorNode.clientWidth,\n height: colorNode.clientHeight\n }\n });\n }, 0);\n }\n }\n\n render() {\n const {\n id,\n color,\n allowAlpha,\n fullWidth\n } = this.props;\n const {\n hue,\n saturation,\n brightness,\n alpha: providedAlpha\n } = color;\n const {\n pickerSize\n } = this.state;\n const alpha = providedAlpha != null && allowAlpha ? providedAlpha : 1;\n const {\n red,\n green,\n blue\n } = hsbToRgb({\n hue,\n saturation: 1,\n brightness: 1\n });\n const colorString = `rgba(${red}, ${green}, ${blue}, ${alpha})`;\n const draggerX = clamp(saturation * pickerSize.width, 0, pickerSize.width);\n const draggerY = clamp(pickerSize.height - brightness * pickerSize.height, 0, pickerSize.height);\n const alphaSliderMarkup = allowAlpha ? /*#__PURE__*/React.createElement(AlphaPicker, {\n alpha: alpha,\n color: color,\n onChange: this.handleAlphaChange\n }) : null;\n const className = classNames(styles.ColorPicker, fullWidth && styles.fullWidth);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n id: id,\n onMouseDown: this.handlePickerDrag\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.setColorNode,\n className: styles.MainColor\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ColorLayer,\n style: {\n backgroundColor: colorString\n }\n }), /*#__PURE__*/React.createElement(Slidable, {\n onChange: this.handleDraggerMove,\n draggerX: draggerX,\n draggerY: draggerY\n })), /*#__PURE__*/React.createElement(HuePicker, {\n hue: hue,\n onChange: this.handleHueChange\n }), alphaSliderMarkup, /*#__PURE__*/React.createElement(EventListener, {\n event: \"resize\",\n handler: this.handleResize\n }));\n }\n\n}\n\nexport { ColorPicker };\n","/* eslint-disable jsx-a11y/interactive-supports-focus, jsx-a11y/click-events-have-key-events */\nimport React, { useContext, useState } from 'react';\nimport {\n Popover,\n ColorPicker,\n hsbToHex,\n rgbToHsb,\n Stack,\n TextField,\n} from '@shopify/polaris';\nimport { TemplateContext } from '../../../state/TemplateContext';\n\n// https://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb\nconst hexToRgb = (hex) => {\n if (!hex || hex[0] !== '#') {\n return { red: 0, green: 0, blue: 0 };\n }\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n const replacedHex = hex.replace(\n shorthandRegex,\n (m, r, g, b) => r + r + g + g + b + b\n );\n\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(replacedHex);\n return result\n ? {\n red: parseInt(result[1], 16),\n green: parseInt(result[2], 16),\n blue: parseInt(result[3], 16),\n }\n : null;\n};\n\nconst MulticolorOption = ({ value, onChange, label }) => {\n const [picker, setPicker] = useState(false);\n const [template] = useContext(TemplateContext);\n const [textValue, setTextValue] = useState(value);\n const [pickedColor, setColor] = useState(rgbToHsb(hexToRgb(value)));\n\n // TODO: remove this as it's a temp fix for Followups\n if (!template.options.GlobalFont) {\n template.options.GlobalFont = {};\n }\n\n const onColorInputBlur = () => {\n if (hexToRgb(textValue)) {\n onChange(textValue);\n } else {\n onChange(value);\n setTextValue(value);\n }\n setPicker(false);\n };\n\n const ThemeColor = ({ color, colorLabel }) => {\n const style = {\n width: '1.75rem',\n height: '1.75rem',\n borderRadius: 3,\n border: '1px solid black',\n margin: '12px 0px',\n marginRight: '.5rem',\n backgroundColor: color,\n cursor: 'pointer',\n };\n\n return (\n {\n onChange(color);\n setTextValue(color);\n }}\n type=\"button\"\n title={colorLabel}\n aria-label={colorLabel}\n />\n );\n };\n\n return (\n \n setPicker(true)}\n style={{\n height: 40,\n width: 40,\n borderRadius: 40,\n boxShadow: 'inset 0 0 0 1px rgb(0 0 0 / 19%)',\n backgroundColor: value,\n }}\n />\n \n
\n {label}\n
\n {value}\n
\n
\n \n }\n onClose={() => setPicker(false)}\n >\n \n \n
\n {\n setColor(c);\n const hex = hsbToHex(c);\n setTextValue(hex);\n onChange(hex);\n }}\n />\n
\n
\n \n \n
\n
\n \n Template Colors\n
\n \n \n \n \n
\n \n
\n
\n \n\n // \n );\n};\n\nexport default MulticolorOption;\n","import React, { Component, createRef } from 'react';\nimport debounce from 'lodash/debounce';\nimport isEqual from 'lodash/isEqual';\nimport { classNames } from '../../../../utilities/css.js';\nimport { Key } from '../../../../types.js';\nimport sharedStyles from '../../RangeSlider.scss.js';\nimport styles from './DualThumb.scss.js';\nimport { Labelled } from '../../../Labelled/Labelled.js';\nimport { labelID } from '../../../Label/Label.js';\nimport { EventListener } from '../../../EventListener/EventListener.js';\nimport { FeaturesContext } from '../../../../utilities/features/context.js';\n\nvar Control;\n\n(function (Control) {\n Control[Control[\"Lower\"] = 0] = \"Lower\";\n Control[Control[\"Upper\"] = 1] = \"Upper\";\n})(Control || (Control = {}));\n\nclass DualThumb extends Component {\n constructor(...args) {\n super(...args);\n this.context = void 0;\n this.state = {\n value: sanitizeValue(this.props.value, this.props.min, this.props.max, this.props.step),\n trackWidth: 0,\n trackLeft: 0\n };\n this.track = /*#__PURE__*/createRef();\n this.trackWrapper = /*#__PURE__*/createRef();\n this.thumbLower = /*#__PURE__*/createRef();\n this.thumbUpper = /*#__PURE__*/createRef();\n this.setTrackPosition = debounce(() => {\n if (this.track.current) {\n const thumbSize = 16;\n const {\n width,\n left\n } = this.track.current.getBoundingClientRect();\n const adjustedTrackWidth = width - thumbSize;\n const adjustedTrackLeft = left + thumbSize / 2;\n const range = this.props.max - this.props.min;\n const minValuePosition = this.props.min / range * adjustedTrackWidth;\n this.setState({\n trackWidth: adjustedTrackWidth,\n trackLeft: adjustedTrackLeft - minValuePosition\n });\n }\n }, 40, {\n leading: true,\n trailing: true,\n maxWait: 40\n });\n\n this.handleMouseDownThumbLower = event => {\n if (event.button !== 0 || this.props.disabled) return;\n registerMouseMoveHandler(this.handleMouseMoveThumbLower);\n event.stopPropagation();\n };\n\n this.handleMouseMoveThumbLower = event => {\n const valueUpper = this.state.value[1];\n this.setValue([this.actualXPosition(event.clientX), valueUpper], Control.Upper);\n };\n\n this.handleTouchStartThumbLower = event => {\n if (this.props.disabled) return;\n registerTouchMoveHandler(this.handleTouchMoveThumbLower);\n event.stopPropagation();\n };\n\n this.handleTouchMoveThumbLower = event => {\n event.preventDefault();\n const valueUpper = this.state.value[1];\n this.setValue([this.actualXPosition(event.touches[0].clientX), valueUpper], Control.Upper);\n };\n\n this.handleMouseDownThumbUpper = event => {\n if (event.button !== 0 || this.props.disabled) return;\n registerMouseMoveHandler(this.handleMouseMoveThumbUpper);\n event.stopPropagation();\n };\n\n this.handleMouseMoveThumbUpper = event => {\n const valueLower = this.state.value[0];\n this.setValue([valueLower, this.actualXPosition(event.clientX)], Control.Lower);\n };\n\n this.handleTouchStartThumbUpper = event => {\n if (this.props.disabled) return;\n registerTouchMoveHandler(this.handleTouchMoveThumbUpper);\n event.stopPropagation();\n };\n\n this.handleTouchMoveThumbUpper = event => {\n event.preventDefault();\n const valueLower = this.state.value[0];\n this.setValue([valueLower, this.actualXPosition(event.touches[0].clientX)], Control.Lower);\n };\n\n this.handleKeypressLower = event => {\n if (this.props.disabled) return;\n const {\n incrementValueLower,\n decrementValueLower\n } = this;\n const handlerMap = {\n [Key.UpArrow]: incrementValueLower,\n [Key.RightArrow]: incrementValueLower,\n [Key.DownArrow]: decrementValueLower,\n [Key.LeftArrow]: decrementValueLower\n };\n const handler = handlerMap[event.keyCode];\n\n if (handler != null) {\n event.preventDefault();\n event.stopPropagation();\n handler();\n }\n };\n\n this.handleKeypressUpper = event => {\n if (this.props.disabled) return;\n const {\n incrementValueUpper,\n decrementValueUpper\n } = this;\n const handlerMap = {\n [Key.UpArrow]: incrementValueUpper,\n [Key.RightArrow]: incrementValueUpper,\n [Key.DownArrow]: decrementValueUpper,\n [Key.LeftArrow]: decrementValueUpper\n };\n const handler = handlerMap[event.keyCode];\n\n if (handler != null) {\n event.preventDefault();\n event.stopPropagation();\n handler();\n }\n };\n\n this.incrementValueLower = () => {\n this.setValue([this.state.value[0] + this.props.step, this.state.value[1]], Control.Upper);\n };\n\n this.decrementValueLower = () => {\n this.setValue([this.state.value[0] - this.props.step, this.state.value[1]], Control.Upper);\n };\n\n this.incrementValueUpper = () => {\n this.setValue([this.state.value[0], this.state.value[1] + this.props.step], Control.Lower);\n };\n\n this.decrementValueUpper = () => {\n this.setValue([this.state.value[0], this.state.value[1] - this.props.step], Control.Lower);\n };\n\n this.dispatchValue = () => {\n const {\n onChange,\n id\n } = this.props;\n const {\n value\n } = this.state;\n onChange(value, id);\n };\n\n this.setValue = (dirtyValue, control) => {\n const {\n props: {\n min,\n max,\n step\n },\n state: {\n value\n }\n } = this;\n const sanitizedValue = sanitizeValue(dirtyValue, min, max, step, control);\n\n if (isEqual(sanitizedValue, value) === false) {\n this.setState({\n value: sanitizedValue\n }, this.dispatchValue);\n }\n };\n\n this.handleMouseDownTrack = event => {\n if (event.button !== 0 || this.props.disabled) return;\n event.preventDefault();\n const clickXPosition = this.actualXPosition(event.clientX);\n const {\n value\n } = this.state;\n const distanceFromLowerThumb = Math.abs(value[0] - clickXPosition);\n const distanceFromUpperThumb = Math.abs(value[1] - clickXPosition);\n\n if (distanceFromLowerThumb <= distanceFromUpperThumb) {\n this.setValue([clickXPosition, value[1]], Control.Upper);\n registerMouseMoveHandler(this.handleMouseMoveThumbLower);\n\n if (this.thumbLower.current != null) {\n this.thumbLower.current.focus();\n }\n } else {\n this.setValue([value[0], clickXPosition], Control.Lower);\n registerMouseMoveHandler(this.handleMouseMoveThumbUpper);\n\n if (this.thumbUpper.current != null) {\n this.thumbUpper.current.focus();\n }\n }\n };\n\n this.handleTouchStartTrack = event => {\n if (this.props.disabled) return;\n event.preventDefault();\n const clickXPosition = this.actualXPosition(event.touches[0].clientX);\n const {\n value\n } = this.state;\n const distanceFromLowerThumb = Math.abs(value[0] - clickXPosition);\n const distanceFromUpperThumb = Math.abs(value[1] - clickXPosition);\n\n if (distanceFromLowerThumb <= distanceFromUpperThumb) {\n this.setValue([clickXPosition, value[1]], Control.Upper);\n registerTouchMoveHandler(this.handleTouchMoveThumbLower);\n\n if (this.thumbLower.current != null) {\n this.thumbLower.current.focus();\n }\n } else {\n this.setValue([value[0], clickXPosition], Control.Lower);\n registerTouchMoveHandler(this.handleTouchMoveThumbUpper);\n\n if (this.thumbUpper.current != null) {\n this.thumbUpper.current.focus();\n }\n }\n };\n\n this.actualXPosition = dirtyXPosition => {\n if (this.track.current) {\n const {\n min,\n max\n } = this.props;\n const {\n trackLeft,\n trackWidth\n } = this.state;\n const relativeX = dirtyXPosition - trackLeft;\n const percentageOfTrack = relativeX / trackWidth;\n return percentageOfTrack * (max - min);\n } else {\n return 0;\n }\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n const {\n min,\n step,\n max,\n value,\n onChange,\n id\n } = props;\n const {\n prevValue\n } = state;\n\n if (isEqual(prevValue, value)) {\n return null;\n }\n\n const sanitizedValue = sanitizeValue(value, min, max, step);\n\n if (!isEqual(value, sanitizedValue)) {\n onChange(sanitizedValue, id);\n }\n\n return {\n prevValue: value,\n value: sanitizedValue\n };\n }\n\n componentDidMount() {\n this.setTrackPosition();\n\n if (this.trackWrapper.current != null) {\n this.trackWrapper.current.addEventListener('touchstart', this.handleTouchStartTrack, {\n passive: false\n });\n }\n }\n\n componentWillUnmount() {\n if (this.trackWrapper.current != null) {\n this.trackWrapper.current.removeEventListener('touchstart', this.handleTouchStartTrack);\n }\n }\n\n render() {\n const {\n id,\n min,\n max,\n prefix,\n suffix,\n disabled,\n output,\n error,\n onFocus,\n onBlur,\n label,\n labelAction,\n labelHidden,\n helpText\n } = this.props;\n const {\n value\n } = this.state;\n const idLower = id;\n const idUpper = `${id}Upper`;\n const describedBy = [];\n\n if (error) {\n describedBy.push(`${id}Error`);\n }\n\n const ariaDescribedBy = describedBy.length ? describedBy.join(' ') : undefined;\n const trackWrapperClassName = classNames(styles.TrackWrapper, error && styles.error, disabled && styles.disabled);\n const thumbLowerClassName = classNames(styles.Thumbs, styles.ThumbLower, disabled && styles.disabled);\n const thumbUpperClassName = classNames(styles.Thumbs, styles.ThumbUpper, disabled && styles.disabled);\n const trackWidth = this.state.trackWidth;\n const range = max - min;\n const minValuePosition = min / range * trackWidth;\n const leftPositionThumbLower = value[0] / range * trackWidth - minValuePosition;\n const leftPositionThumbUpper = value[1] / range * trackWidth - minValuePosition;\n const outputLowerClassName = classNames(styles.Output, styles.OutputLower);\n const outputMarkupLower = !disabled && output ? /*#__PURE__*/React.createElement(\"output\", {\n htmlFor: idLower,\n className: outputLowerClassName,\n style: {\n left: `${leftPositionThumbLower}px`\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.OutputBubble\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.OutputText\n }, value[0]))) : null;\n const outputUpperClassName = classNames(styles.Output, styles.OutputUpper);\n const outputMarkupUpper = !disabled && output ? /*#__PURE__*/React.createElement(\"output\", {\n htmlFor: idUpper,\n className: outputUpperClassName,\n style: {\n left: `${leftPositionThumbUpper}px`\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.OutputBubble\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.OutputText\n }, value[1]))) : null;\n const cssVars = {\n '--pc-range-slider-progress-lower': `${leftPositionThumbLower}px`,\n '--pc-range-slider-progress-upper': `${leftPositionThumbUpper}px`\n };\n const prefixMarkup = prefix && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Prefix\n }, prefix);\n const suffixMarkup = suffix && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Suffix\n }, suffix);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Labelled, {\n id: id,\n label: label,\n error: error,\n action: labelAction,\n labelHidden: labelHidden,\n helpText: helpText\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.DualThumb, sharedStyles.RangeSlider)\n }, prefixMarkup, /*#__PURE__*/React.createElement(\"div\", {\n className: trackWrapperClassName,\n onMouseDown: this.handleMouseDownTrack,\n ref: this.trackWrapper\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Track,\n style: cssVars,\n ref: this.track\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles['Track--dashed']\n }), /*#__PURE__*/React.createElement(\"div\", {\n id: idLower,\n className: thumbLowerClassName,\n style: {\n left: `${leftPositionThumbLower}px`\n },\n role: \"slider\",\n \"aria-disabled\": disabled,\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": value[0],\n \"aria-invalid\": Boolean(error),\n \"aria-describedby\": ariaDescribedBy,\n \"aria-labelledby\": labelID(id),\n onFocus: onFocus,\n onBlur: onBlur,\n tabIndex: 0,\n onKeyDown: this.handleKeypressLower,\n onMouseDown: this.handleMouseDownThumbLower,\n onTouchStart: this.handleTouchStartThumbLower,\n ref: this.thumbLower\n }), outputMarkupLower, /*#__PURE__*/React.createElement(\"div\", {\n id: idUpper,\n className: thumbUpperClassName,\n style: {\n left: `${leftPositionThumbUpper}px`\n },\n role: \"slider\",\n \"aria-disabled\": disabled,\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": value[1],\n \"aria-invalid\": Boolean(error),\n \"aria-describedby\": ariaDescribedBy,\n \"aria-labelledby\": labelID(id),\n onFocus: onFocus,\n onBlur: onBlur,\n tabIndex: 0,\n onKeyDown: this.handleKeypressUpper,\n onMouseDown: this.handleMouseDownThumbUpper,\n onTouchStart: this.handleTouchStartThumbUpper,\n ref: this.thumbUpper\n }), outputMarkupUpper), suffixMarkup)), /*#__PURE__*/React.createElement(EventListener, {\n event: \"resize\",\n handler: this.setTrackPosition\n }));\n }\n\n}\nDualThumb.contextType = FeaturesContext;\n\nfunction registerMouseMoveHandler(handler) {\n document.addEventListener('mousemove', handler);\n document.addEventListener('mouseup', () => {\n document.removeEventListener('mousemove', handler);\n }, {\n once: true\n });\n}\n\nfunction registerTouchMoveHandler(handler) {\n const removeHandler = () => {\n document.removeEventListener('touchmove', handler);\n document.removeEventListener('touchend', removeHandler);\n document.removeEventListener('touchcancel', removeHandler);\n };\n\n document.addEventListener('touchmove', handler, {\n passive: false\n });\n document.addEventListener('touchend', removeHandler, {\n once: true\n });\n document.addEventListener('touchcancel', removeHandler, {\n once: true\n });\n}\n\nfunction sanitizeValue(value, min, max, step, control = Control.Upper) {\n let upperValue = inBoundsUpper(roundedToStep(value[1]));\n let lowerValue = inBoundsLower(roundedToStep(value[0]));\n const maxLowerValue = upperValue - step;\n const minUpperValue = lowerValue + step;\n\n if (control === Control.Upper && lowerValue > maxLowerValue) {\n lowerValue = maxLowerValue;\n } else if (control === Control.Lower && upperValue < minUpperValue) {\n upperValue = minUpperValue;\n }\n\n return [lowerValue, upperValue];\n\n function inBoundsUpper(value) {\n const lowerMin = min + step;\n\n if (value < lowerMin) {\n return lowerMin;\n } else if (value > max) {\n return max;\n } else {\n return value;\n }\n }\n\n function inBoundsLower(value) {\n const upperMax = max - step;\n\n if (value < min) {\n return min;\n } else if (value > upperMax) {\n return upperMax;\n } else {\n return value;\n }\n }\n\n function roundedToStep(value) {\n return Math.round(value / step) * step;\n }\n}\n\nexport { DualThumb };\n","var sharedStyles = {\n \"RangeSlider\": \"Polaris-RangeSlider\"\n};\n\nexport { sharedStyles as default };\n","var styles = {\n \"RangeSlider\": \"Polaris-RangeSlider-DualThumb__RangeSlider\",\n \"DualThumb\": \"Polaris-RangeSlider-DualThumb\",\n \"TrackWrapper\": \"Polaris-RangeSlider-DualThumb__TrackWrapper\",\n \"disabled\": \"Polaris-RangeSlider-DualThumb--disabled\",\n \"Track\": \"Polaris-RangeSlider-DualThumb__Track\",\n \"error\": \"Polaris-RangeSlider-DualThumb--error\",\n \"Track--dashed\": \"Polaris-RangeSlider-DualThumb--trackDashed\",\n \"Thumbs\": \"Polaris-RangeSlider-DualThumb__Thumbs\",\n \"Prefix\": \"Polaris-RangeSlider-DualThumb__Prefix\",\n \"Suffix\": \"Polaris-RangeSlider-DualThumb__Suffix\",\n \"Output\": \"Polaris-RangeSlider-DualThumb__Output\",\n \"OutputBubble\": \"Polaris-RangeSlider-DualThumb__OutputBubble\",\n \"OutputText\": \"Polaris-RangeSlider-DualThumb__OutputText\"\n};\n\nexport { styles as default };\n","var styles = {\n \"RangeSlider\": \"Polaris-RangeSlider-SingleThumb__RangeSlider\",\n \"SingleThumb\": \"Polaris-RangeSlider-SingleThumb\",\n \"disabled\": \"Polaris-RangeSlider-SingleThumb--disabled\",\n \"InputWrapper\": \"Polaris-RangeSlider-SingleThumb__InputWrapper\",\n \"Prefix\": \"Polaris-RangeSlider-SingleThumb__Prefix\",\n \"Suffix\": \"Polaris-RangeSlider-SingleThumb__Suffix\",\n \"Input\": \"Polaris-RangeSlider-SingleThumb__Input\",\n \"error\": \"Polaris-RangeSlider-SingleThumb--error\",\n \"Output\": \"Polaris-RangeSlider-SingleThumb__Output\",\n \"OutputBubble\": \"Polaris-RangeSlider-SingleThumb__OutputBubble\",\n \"OutputText\": \"Polaris-RangeSlider-SingleThumb__OutputText\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport { clamp } from '../../../../utilities/clamp.js';\nimport sharedStyles from '../../RangeSlider.scss.js';\nimport styles from './SingleThumb.scss.js';\nimport { invertNumber } from '../../utilities/invertNumber.js';\nimport { Labelled, helpTextID } from '../../../Labelled/Labelled.js';\n\nfunction SingleThumb(props) {\n const {\n id,\n error,\n helpText,\n value,\n min,\n max,\n disabled,\n output,\n prefix,\n suffix,\n label,\n labelAction,\n labelHidden,\n step,\n onBlur,\n onFocus\n } = props;\n const clampedValue = clamp(value, min, max);\n const describedBy = [];\n\n if (error) {\n describedBy.push(`${id}Error`);\n }\n\n if (helpText) {\n describedBy.push(helpTextID(id));\n }\n\n const ariaDescribedBy = describedBy.length ? describedBy.join(' ') : undefined;\n const sliderProgress = (clampedValue - min) * 100 / (max - min);\n const outputFactor = invertNumber((sliderProgress - 50) / 100);\n const cssVars = {\n '--pc-range-slider-min': min,\n '--pc-range-slider-max': max,\n '--pc-range-slider-current': clampedValue,\n '--pc-range-slider-progress': `${sliderProgress}%`,\n '--pc-range-slider-output-factor': `${outputFactor}`\n };\n const outputMarkup = !disabled && output && /*#__PURE__*/React.createElement(\"output\", {\n htmlFor: id,\n className: styles.Output\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.OutputBubble\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.OutputText\n }, clampedValue)));\n const prefixMarkup = prefix && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Prefix\n }, prefix);\n const suffixMarkup = suffix && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Suffix\n }, suffix);\n const className = classNames(styles.SingleThumb, sharedStyles.RangeSlider, error && styles.error, disabled && styles.disabled);\n /* eslint-disable @shopify/react-require-autocomplete */\n\n return /*#__PURE__*/React.createElement(Labelled, {\n id: id,\n label: label,\n error: error,\n action: labelAction,\n labelHidden: labelHidden,\n helpText: helpText\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: cssVars\n }, prefixMarkup, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.InputWrapper\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"range\",\n className: styles.Input,\n id: id,\n name: id,\n min: min,\n max: max,\n step: step,\n value: clampedValue,\n disabled: disabled,\n onChange: handleChange,\n onFocus: onFocus,\n onBlur: onBlur,\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": clampedValue,\n \"aria-invalid\": Boolean(error),\n \"aria-describedby\": ariaDescribedBy\n }), outputMarkup), suffixMarkup));\n /* eslint-enable @shopify/react-require-autocomplete */\n\n function handleChange(event) {\n const {\n onChange\n } = props;\n onChange && onChange(parseFloat(event.currentTarget.value), id);\n }\n}\n\nexport { SingleThumb };\n","function invertNumber(number) {\n if (Math.sign(number) === 1) {\n return -Math.abs(number);\n } else if (Math.sign(number) === -1) {\n return Math.abs(number);\n } else {\n return 0;\n }\n}\n\nexport { invertNumber };\n","import React from 'react';\nimport { DualThumb } from './components/DualThumb/DualThumb.js';\nimport { SingleThumb } from './components/SingleThumb/SingleThumb.js';\nimport { useUniqueId } from '../../utilities/unique-id/hooks.js';\n\nfunction RangeSlider({\n min = 0,\n max = 100,\n step = 1,\n value,\n ...rest\n}) {\n const id = useUniqueId('RangeSlider');\n const sharedProps = {\n id,\n min,\n max,\n step,\n ...rest\n };\n return isDualThumb(value) ? /*#__PURE__*/React.createElement(DualThumb, Object.assign({\n value: value\n }, sharedProps)) : /*#__PURE__*/React.createElement(SingleThumb, Object.assign({\n value: value\n }, sharedProps));\n}\n\nfunction isDualThumb(value) {\n return Array.isArray(value);\n}\n\nexport { RangeSlider };\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React, { useState } from 'react';\nimport { RangeSlider, TextField } from '@shopify/polaris';\n\nconst NumberOption = ({ value, unit, label, min, max, onChange }) => {\n const [editing, setEditing] = useState(false);\n const suffix = `${value}${unit ? ` ${unit}` : ''}`;\n const suffixStyle = { minWidth: '24px', textAlign: 'right' };\n\n const Text = () => {\n if (editing) {\n return (\n
\n {\n if (!val) {\n onChange(val);\n }\n if (/^\\+?(0|[1-9]\\d*)$/.test(val)) {\n const num = parseInt(val, 10);\n if (num <= max) {\n onChange(val);\n }\n }\n }}\n onBlur={() => {\n if (value < (min || 0)) {\n onChange(min || 0);\n }\n setEditing(false);\n }}\n />\n
\n );\n }\n return (\n
setEditing(true)}>\n

{suffix}

\n
\n );\n };\n\n return (\n }\n output\n />\n );\n};\n\nexport default NumberOption;\n","import React from 'react';\nimport { Button, Label, ButtonGroup } from '@shopify/polaris';\n\nconst PositionOption = ({ value, placeholder, label, updateValue }) => {\n const selected = value || placeholder;\n return (\n <>\n \n \n updateValue('left')}\n >\n Left\n \n updateValue('center')}\n >\n Center\n \n updateValue('right')}\n >\n Right\n \n \n \n );\n};\n\nexport default PositionOption;\n","import React from 'react';\nimport { FormLayout, Checkbox } from '@shopify/polaris';\n\nconst SocialOption = ({ value, onChange }) => {\n const socials = [\n {\n label: 'Facebook',\n name: 'Facebook',\n value: true,\n },\n {\n label: 'Twitter',\n name: 'Twitter',\n value: true,\n },\n {\n label: 'Pinterest',\n name: 'Pinterest',\n value: true,\n },\n {\n label: 'Snapchat',\n name: 'Snapchat',\n value: true,\n },\n {\n label: 'LinkedIn',\n name: 'Linkedin',\n value: true,\n },\n {\n label: 'Instagram',\n name: 'Instagram',\n value: true,\n },\n {\n label: 'YouTube',\n name: 'Youtube',\n value: true,\n },\n {\n label: 'Tiktok',\n name: 'Tiktok',\n value: true,\n },\n {\n label: 'RSSFeed',\n name: 'RSSFeed',\n value: false,\n },\n {\n label: 'Messenger',\n name: 'Messenger',\n value: true,\n },\n ];\n\n const { links } = value;\n\n // TODO: we need to fix this awful data structure on the servier\n const needsHack = Array.isArray(links[0]);\n const optVal = links.map((l) => {\n if (!needsHack) {\n return l;\n }\n const ret = {};\n l.forEach((val) => {\n ret[val.name] = val.value;\n });\n\n return ret;\n });\n return (\n \n {socials.map((ch) => {\n const optIndex = optVal.findIndex(\n (social) => social.name.toLowerCase() === ch.label.toLowerCase()\n );\n const checked = optIndex === -1 ? false : optVal[optIndex].value;\n\n return (\n {\n let social = optVal.filter(\n (l) => l.name.toLowerCase() === ch.name.toLowerCase()\n )[0];\n if (!social) {\n social = { label: ch.label, name: ch.name };\n optVal.push(social);\n }\n social.value = val;\n // TODO: Yup, we need to fix the gross here too.\n onChange(\n optVal.map((ov) =>\n needsHack\n ? [\n { name: 'label', value: ov.label },\n { name: 'name', value: ov.name },\n { name: 'value', value: ov.value },\n ]\n : ov\n )\n );\n }}\n />\n );\n })}\n \n );\n};\n\nexport default SocialOption;\n","function isSection(arr) {\n return typeof arr[0] === 'object' && Object.prototype.hasOwnProperty.call(arr[0], 'options');\n}\n\nexport { isSection };\n","var styles = {\n \"Loading\": \"Polaris-Autocomplete__Loading\",\n \"SectionWrapper\": \"Polaris-Autocomplete__SectionWrapper\"\n};\n\nexport { styles as default };\n","var styles = {\n \"Content\": \"Polaris-Autocomplete-MappedOption__Content\",\n \"Media\": \"Polaris-Autocomplete-MappedOption__Media\",\n \"singleSelectionMedia\": \"Polaris-Autocomplete-MappedOption--singleSelectionMedia\",\n \"disabledMedia\": \"Polaris-Autocomplete-MappedOption--disabledMedia\"\n};\n\nexport { styles as default };\n","var styles = {\n \"Listbox\": \"Polaris-Listbox\"\n};\n\nexport { styles as default };\n","import { createContext } from 'react';\n\nconst ComboboxTextFieldContext = /*#__PURE__*/createContext(undefined);\nconst ComboboxListboxContext = /*#__PURE__*/createContext({});\nconst ComboboxListboxOptionContext = /*#__PURE__*/createContext({});\n\nexport { ComboboxListboxContext, ComboboxListboxOptionContext, ComboboxTextFieldContext };\n","const listboxSectionDataSelector = {\n props: {\n 'data-polaris-listbox-section-item': true\n },\n selector: '[data-polaris-listbox-section-item]'\n};\nconst listboxWithinSectionDataSelector = {\n attribute: 'data-polaris-listbox-within-section-item'\n};\n\nexport { listboxSectionDataSelector, listboxWithinSectionDataSelector };\n","var styles = {\n \"TextOption\": \"Polaris-Listbox-TextOption\",\n \"allowMultiple\": \"Polaris-Listbox-TextOption--allowMultiple\",\n \"isAction\": \"Polaris-Listbox-TextOption--isAction\",\n \"disabled\": \"Polaris-Listbox-TextOption--disabled\",\n \"selected\": \"Polaris-Listbox-TextOption--selected\",\n \"Content\": \"Polaris-Listbox-TextOption__Content\",\n \"Checkbox\": \"Polaris-Listbox-TextOption__Checkbox\"\n};\n\nexport { styles as default };\n","import React, { memo, useContext } from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport { ComboboxListboxOptionContext } from '../../../../utilities/combobox/context.js';\nimport { ActionContext } from '../../../../utilities/listbox/context.js';\nimport styles from './TextOption.scss.js';\nimport { Checkbox } from '../../../Checkbox/Checkbox.js';\n\nconst TextOption = /*#__PURE__*/memo(function TextOption({\n children,\n selected,\n disabled\n}) {\n const {\n allowMultiple\n } = useContext(ComboboxListboxOptionContext);\n const isAction = useContext(ActionContext);\n const textOptionClassName = classNames(styles.TextOption, selected && !allowMultiple && styles.selected, disabled && styles.disabled, allowMultiple && styles.allowMultiple, isAction && styles.isAction);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: textOptionClassName\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Content\n }, allowMultiple && !isAction ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Checkbox\n }, /*#__PURE__*/React.createElement(Checkbox, {\n checked: selected,\n label: children\n })) : children));\n});\n\nexport { TextOption };\n","var styles = {\n \"ListItem\": \"Polaris-Listbox-Loading__ListItem\",\n \"Loading\": \"Polaris-Listbox-Loading\"\n};\n\nexport { styles as default };\n","import { useContext } from 'react';\nimport { ListboxContext } from './context.js';\n\nfunction useListbox() {\n const listbox = useContext(ListboxContext);\n\n if (!listbox) {\n throw new Error('No Listbox was provided. Listbox components must be wrapped in a Listbox');\n }\n\n return listbox;\n}\n\nexport { useListbox };\n","import React, { memo, useEffect } from 'react';\nimport styles from './Loading.scss.js';\nimport { useListbox } from '../../../../utilities/listbox/hooks.js';\nimport { Spinner } from '../../../Spinner/Spinner.js';\n\nconst Loading = /*#__PURE__*/memo(function LoadingOption({\n children,\n accessibilityLabel: label\n}) {\n const {\n setLoading\n } = useListbox();\n useEffect(() => {\n setLoading(label);\n return () => {\n setLoading(undefined);\n };\n }, [label, setLoading]);\n return /*#__PURE__*/React.createElement(\"li\", {\n className: styles.ListItem,\n role: \"presentation\"\n }, children ? children : /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Loading\n }, /*#__PURE__*/React.createElement(Spinner, {\n size: \"small\",\n accessibilityLabel: label\n })));\n});\n\nexport { Loading };\n","import { createContext } from 'react';\n\nconst SectionContext = /*#__PURE__*/createContext(null);\n\nexport { SectionContext };\n","var styles = {\n \"SectionGroup\": \"Polaris-Listbox-Section__SectionGroup\",\n \"noDivider\": \"Polaris-Listbox-Section--noDivider\"\n};\n\nexport { styles as default };\n","var styles = {\n \"Header\": \"Polaris-Listbox-Header\"\n};\n\nexport { styles as default };\n","import { useContext } from 'react';\nimport { SectionContext } from './context.js';\n\nfunction useSection() {\n const context = useContext(SectionContext);\n return context;\n}\n\nexport { useSection };\n","var styles = {\n \"Action\": \"Polaris-Listbox-Action\",\n \"ActionDivider\": \"Polaris-Listbox-Action__ActionDivider\",\n \"Icon\": \"Polaris-Listbox-Action__Icon\"\n};\n\nexport { styles as default };\n","var styles = {\n \"Option\": \"Polaris-Listbox-Option\",\n \"divider\": \"Polaris-Listbox-Option--divider\"\n};\n\nexport { styles as default };\n","import { createContext } from 'react';\n\nconst MappedActionContext = /*#__PURE__*/createContext({});\n\nexport { MappedActionContext };\n","import React, { memo, useContext, useRef, useCallback } from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from './Option.scss.js';\nimport { useListbox } from '../../../../utilities/listbox/hooks.js';\nimport { MappedActionContext } from '../../../../utilities/autocomplete/context.js';\nimport { useSection } from '../Section/hooks.js';\nimport { listboxWithinSectionDataSelector } from '../Section/selectors.js';\nimport { TextOption } from '../TextOption/TextOption.js';\nimport { useUniqueId } from '../../../../utilities/unique-id/hooks.js';\nimport { UnstyledLink } from '../../../UnstyledLink/UnstyledLink.js';\n\nconst Option = /*#__PURE__*/memo(function Option({\n value,\n children,\n selected,\n disabled = false,\n accessibilityLabel,\n divider\n}) {\n const {\n onOptionSelect\n } = useListbox();\n const {\n role,\n url,\n external,\n onAction,\n destructive\n } = useContext(MappedActionContext);\n const listItemRef = useRef(null);\n const domId = useUniqueId('ListboxOption');\n const sectionId = useSection();\n const isWithinSection = Boolean(sectionId);\n const handleOptionClick = useCallback(evt => {\n evt.preventDefault();\n onAction && onAction();\n\n if (listItemRef.current && !onAction) {\n onOptionSelect({\n domId,\n value,\n element: listItemRef.current,\n disabled\n });\n }\n }, [domId, onOptionSelect, value, disabled, onAction]); // prevents lost of focus on Textfield\n\n const handleMouseDown = evt => {\n evt.preventDefault();\n };\n\n const content = typeof children === 'string' ? /*#__PURE__*/React.createElement(TextOption, {\n selected: selected,\n disabled: disabled\n }, children) : children;\n const sectionAttributes = {\n [listboxWithinSectionDataSelector.attribute]: isWithinSection\n };\n const legacyRoleSupport = role || 'option';\n const contentMarkup = url ? /*#__PURE__*/React.createElement(UnstyledLink, {\n url: url,\n external: external\n }, content) : content;\n return /*#__PURE__*/React.createElement(\"li\", Object.assign({}, sectionAttributes, {\n \"data-within-section\": isWithinSection,\n \"data-listbox-option-value\": value,\n \"data-listbox-option-destructive\": destructive,\n className: classNames(styles.Option, divider && styles.divider),\n id: domId,\n ref: listItemRef,\n tabIndex: -1,\n onMouseDown: handleMouseDown,\n \"aria-disabled\": disabled,\n onClick: disabled ? undefined : handleOptionClick,\n role: legacyRoleSupport,\n \"aria-label\": accessibilityLabel,\n \"aria-selected\": selected,\n \"data-listbox-option\": true\n }), contentMarkup);\n});\n\nexport { Option };\n","import React, { useRef, useState, useEffect, useCallback, useMemo } from 'react';\nimport debounce from 'lodash/debounce';\nimport { classNames } from '../../utilities/css.js';\nimport { useToggle } from '../../utilities/use-toggle.js';\nimport { Key } from '../../types.js';\nimport { closestParentMatch } from '../../utilities/closest-parent-match.js';\nimport { scrollIntoView } from '../../utilities/scroll-into-view.js';\nimport styles from './Listbox.scss.js';\nimport { useComboboxListbox } from '../../utilities/combobox/hooks.js';\nimport { listboxSectionDataSelector } from './components/Section/selectors.js';\nimport { ListboxContext, WithinListboxContext } from '../../utilities/listbox/context.js';\nimport { TextOption } from './components/TextOption/TextOption.js';\nimport { Loading } from './components/Loading/Loading.js';\nimport { Section } from './components/Section/Section.js';\nimport { Header } from './components/Header/Header.js';\nimport { Action } from './components/Action/Action.js';\nimport { useUniqueId } from '../../utilities/unique-id/hooks.js';\nimport { KeypressListener } from '../KeypressListener/KeypressListener.js';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden.js';\nimport { Option } from './components/Option/Option.js';\n\nconst scrollable = {\n props: {\n 'data-polaris-scrollable': true\n },\n selector: '[data-polaris-scrollable]'\n};\nconst LISTBOX_OPTION_SELECTOR = '[data-listbox-option]';\nconst LISTBOX_OPTION_VALUE_ATTRIBUTE = 'data-listbox-option-value';\nconst DATA_ATTRIBUTE = 'data-focused';\nfunction Listbox({\n children,\n enableKeyboardControl,\n accessibilityLabel,\n onSelect\n}) {\n const listboxClassName = classNames(styles.Listbox);\n const {\n value: keyboardEventsEnabled,\n setTrue: enableKeyboardEvents,\n setFalse: disableKeyboardEvents\n } = useToggle(Boolean(enableKeyboardControl));\n const listId = useUniqueId('Listbox');\n const scrollableRef = useRef(null);\n const listboxRef = useRef(null);\n const [loading, setLoading] = useState();\n const [currentActiveOption, setCurrentActiveOption] = useState();\n const {\n setActiveOptionId,\n setListboxId,\n listboxId,\n textFieldLabelId,\n onOptionSelected,\n onKeyToBottom,\n textFieldFocused\n } = useComboboxListbox();\n const inCombobox = Boolean(setActiveOptionId);\n useEffect(() => {\n if (setListboxId && !listboxId) {\n setListboxId(listId);\n }\n }, [setListboxId, listboxId, listId]);\n useEffect(() => {\n if (!currentActiveOption || !setActiveOptionId) return;\n setActiveOptionId(currentActiveOption.domId);\n }, [currentActiveOption, setActiveOptionId]); // eslint-disable-next-line react-hooks/exhaustive-deps\n\n const handleScrollIntoView = useCallback(debounce((option, first) => {\n if (scrollableRef.current) {\n const {\n element\n } = option;\n const focusTarget = first ? closestParentMatch(element, listboxSectionDataSelector.selector) || element : element;\n scrollIntoView(focusTarget, scrollableRef.current);\n }\n }, 15), []);\n const handleChangeActiveOption = useCallback(nextOption => {\n setCurrentActiveOption(currentActiveOption => {\n if (currentActiveOption) {\n currentActiveOption.element.removeAttribute(DATA_ATTRIBUTE);\n }\n\n if (nextOption) {\n nextOption.element.setAttribute(DATA_ATTRIBUTE, 'true');\n\n if (scrollableRef.current) {\n const first = getNavigableOptions().findIndex(element => element.id === nextOption.element.id) === 0;\n handleScrollIntoView(nextOption, first);\n }\n\n return nextOption;\n } else {\n return undefined;\n }\n });\n }, [handleScrollIntoView]);\n useEffect(() => {\n if (listboxRef.current) {\n scrollableRef.current = listboxRef.current.closest(scrollable.selector);\n }\n }, []);\n useEffect(() => {\n if (enableKeyboardControl && !keyboardEventsEnabled) {\n enableKeyboardEvents();\n }\n }, [enableKeyboardControl, keyboardEventsEnabled, enableKeyboardEvents]);\n const onOptionSelect = useCallback(option => {\n handleChangeActiveOption(option);\n\n if (onOptionSelected) {\n onOptionSelected();\n }\n\n if (onSelect) onSelect(option.value);\n }, [handleChangeActiveOption, onSelect, onOptionSelected]);\n const listboxContext = useMemo(() => ({\n onOptionSelect,\n setLoading\n }), [onOptionSelect]);\n\n function findNextValidOption(type) {\n const isUp = type === 'up';\n const navItems = getNavigableOptions();\n let nextElement = currentActiveOption === null || currentActiveOption === void 0 ? void 0 : currentActiveOption.element;\n let count = -1;\n\n while (count++ < navItems.length) {\n var _nextElement2;\n\n let nextIndex;\n\n if (nextElement) {\n var _nextElement;\n\n const currentId = (_nextElement = nextElement) === null || _nextElement === void 0 ? void 0 : _nextElement.id;\n const currentIndex = navItems.findIndex(currentNavItem => currentNavItem.id === currentId);\n let increment = isUp ? -1 : 1;\n\n if (currentIndex === 0 && isUp) {\n increment = navItems.length - 1;\n } else if (currentIndex === navItems.length - 1 && !isUp) {\n increment = -(navItems.length - 1);\n }\n\n nextIndex = currentIndex + increment;\n nextElement = navItems[nextIndex];\n } else {\n nextIndex = isUp ? navItems.length - 1 : 0;\n nextElement = navItems[nextIndex];\n }\n\n if (((_nextElement2 = nextElement) === null || _nextElement2 === void 0 ? void 0 : _nextElement2.getAttribute('aria-disabled')) === 'true') continue;\n\n if (nextIndex === navItems.length - 1 && onKeyToBottom) {\n onKeyToBottom();\n }\n\n return nextElement;\n }\n\n return null;\n }\n\n function handleArrow(type, evt) {\n evt.preventDefault();\n const nextValidElement = findNextValidOption(type);\n if (!nextValidElement) return;\n const nextOption = {\n domId: nextValidElement.id,\n value: nextValidElement.getAttribute(LISTBOX_OPTION_VALUE_ATTRIBUTE) || '',\n element: nextValidElement,\n disabled: nextValidElement.getAttribute('aria-disabled') === 'true'\n };\n handleChangeActiveOption(nextOption);\n }\n\n function handleDownArrow(evt) {\n handleArrow('down', evt);\n }\n\n function handleUpArrow(evt) {\n handleArrow('up', evt);\n }\n\n function handleEnter(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n\n if (currentActiveOption) {\n onOptionSelect(currentActiveOption);\n }\n }\n\n function handleFocus() {\n if (enableKeyboardControl) return;\n enableKeyboardEvents();\n }\n\n function handleBlur(event) {\n event.stopPropagation();\n\n if (keyboardEventsEnabled) {\n handleChangeActiveOption();\n }\n\n if (enableKeyboardControl) return;\n disableKeyboardEvents();\n }\n\n const listeners = keyboardEventsEnabled || textFieldFocused ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(KeypressListener, {\n keyEvent: \"keydown\",\n keyCode: Key.DownArrow,\n handler: handleDownArrow\n }), /*#__PURE__*/React.createElement(KeypressListener, {\n keyEvent: \"keydown\",\n keyCode: Key.UpArrow,\n handler: handleUpArrow\n }), /*#__PURE__*/React.createElement(KeypressListener, {\n keyEvent: \"keydown\",\n keyCode: Key.Enter,\n handler: handleEnter\n })) : null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, listeners, /*#__PURE__*/React.createElement(VisuallyHidden, null, /*#__PURE__*/React.createElement(\"div\", {\n \"aria-live\": \"polite\"\n }, loading ? loading : null)), /*#__PURE__*/React.createElement(ListboxContext.Provider, {\n value: listboxContext\n }, /*#__PURE__*/React.createElement(WithinListboxContext.Provider, {\n value: true\n }, children ? /*#__PURE__*/React.createElement(\"ul\", {\n tabIndex: 0,\n role: \"listbox\",\n className: listboxClassName,\n \"aria-label\": inCombobox ? undefined : accessibilityLabel,\n \"aria-labelledby\": textFieldLabelId,\n \"aria-busy\": Boolean(loading),\n \"aria-activedescendant\": currentActiveOption && currentActiveOption.domId,\n id: listId,\n onFocus: inCombobox ? undefined : handleFocus,\n onBlur: inCombobox ? undefined : handleBlur,\n ref: listboxRef\n }, children) : null)));\n\n function getNavigableOptions() {\n var _listboxRef$current;\n\n return [...new Set((_listboxRef$current = listboxRef.current) === null || _listboxRef$current === void 0 ? void 0 : _listboxRef$current.querySelectorAll(LISTBOX_OPTION_SELECTOR))];\n }\n}\nListbox.Option = Option;\nListbox.TextOption = TextOption;\nListbox.Loading = Loading;\nListbox.Section = Section;\nListbox.Header = Header;\nListbox.Action = Action;\n\nexport { Listbox, scrollable };\n","import { useContext } from 'react';\nimport { ComboboxListboxContext, ComboboxTextFieldContext } from './context.js';\n\nfunction useComboboxTextField() {\n const context = useContext(ComboboxTextFieldContext);\n\n if (!context) {\n throw new Error('No Combobox was provided. Your component must be wrapped in a component.');\n }\n\n return context;\n}\nfunction useComboboxListbox() {\n const context = useContext(ComboboxListboxContext);\n return context;\n}\n\nexport { useComboboxListbox, useComboboxTextField };\n","function scrollIntoView(element, container) {\n requestAnimationFrame(() => {\n if (element) {\n const offset = element.offsetTop - container.scrollTop;\n container.scrollBy({\n top: offset\n });\n }\n });\n}\n\nexport { scrollIntoView };\n","function closestParentMatch(element, matcher) {\n let parent = element.parentElement;\n\n while (parent) {\n if (parent.matches(matcher)) return parent;\n parent = parent.parentElement;\n }\n\n return parent;\n}\n\nexport { closestParentMatch };\n","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport { listboxSectionDataSelector } from './selectors.js';\nimport { SectionContext } from './context.js';\nimport styles from './Section.scss.js';\nimport { useUniqueId } from '../../../../utilities/unique-id/hooks.js';\n\nfunction Section({\n children,\n divider = true,\n title\n}) {\n const sectionId = useUniqueId('ListboxSection');\n return /*#__PURE__*/React.createElement(SectionContext.Provider, {\n value: sectionId\n }, /*#__PURE__*/React.createElement(\"li\", Object.assign({\n role: \"presentation\"\n }, listboxSectionDataSelector.props), title, /*#__PURE__*/React.createElement(\"ul\", {\n role: \"group\",\n \"aria-labelledby\": sectionId,\n className: classNames(styles.SectionGroup, !divider && styles.noDivider)\n }, children)));\n}\n\nexport { Section };\n","import React from 'react';\nimport styles from './Header.scss.js';\nimport { useSection } from '../Section/hooks.js';\n\nfunction Header({\n children\n}) {\n const sectionId = useSection() || '';\n const content = typeof children === 'string' ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Header\n }, children) : children;\n return /*#__PURE__*/React.createElement(\"div\", {\n \"aria-hidden\": true,\n id: sectionId\n }, content);\n}\n\nexport { Header };\n","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport { ActionContext } from '../../../../utilities/listbox/context.js';\nimport styles from './Action.scss.js';\nimport { Option } from '../Option/Option.js';\nimport { TextOption } from '../TextOption/TextOption.js';\nimport { Icon } from '../../../Icon/Icon.js';\n\nfunction Action(props) {\n const {\n selected,\n disabled,\n children,\n icon,\n divider\n } = props;\n const iconMarkup = icon && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Icon\n }, /*#__PURE__*/React.createElement(Icon, {\n color: \"subdued\",\n source: icon\n }));\n const className = classNames(styles.Action, divider && styles.ActionDivider);\n return /*#__PURE__*/React.createElement(Option, props, /*#__PURE__*/React.createElement(ActionContext.Provider, {\n value: true\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(TextOption, {\n selected: selected,\n disabled: disabled\n }, iconMarkup, children))));\n}\n\nexport { Action };\n","import React, { memo } from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from './MappedOption.scss.js';\nimport { Listbox } from '../../../Listbox/Listbox.js';\n\nconst MappedOption = /*#__PURE__*/memo(function MappedOption({\n label,\n value,\n disabled,\n media,\n selected,\n singleSelection\n}) {\n const mediaClassNames = classNames(styles.Media, disabled && styles.disabledMedia, singleSelection && styles.singleSelectionMedia);\n const mediaMarkup = media ? /*#__PURE__*/React.createElement(\"div\", {\n className: mediaClassNames\n }, media) : null;\n const accessibilityLabel = typeof label === 'string' ? label : undefined;\n return /*#__PURE__*/React.createElement(Listbox.Option, {\n accessibilityLabel: accessibilityLabel,\n key: value,\n selected: selected,\n value: value,\n disabled: disabled\n }, /*#__PURE__*/React.createElement(Listbox.TextOption, {\n selected: selected,\n disabled: disabled\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Content\n }, mediaMarkup, label)));\n});\n\nexport { MappedOption };\n","var styles = {\n \"Listbox\": \"Polaris-Combobox__Listbox\"\n};\n\nexport { styles as default };\n","import React, { useState, Children, useRef, useCallback, useMemo } from 'react';\nimport styles from './Combobox.scss.js';\nimport { ComboboxTextFieldContext, ComboboxListboxContext, ComboboxListboxOptionContext } from '../../utilities/combobox/context.js';\nimport { TextField } from './components/TextField/TextField.js';\nimport { Popover } from '../Popover/Popover.js';\n\nfunction Combobox({\n children,\n activator,\n allowMultiple,\n onScrolledToBottom,\n preferredPosition = 'below'\n}) {\n const [popoverActive, setPopoverActive] = useState(false);\n const [activeOptionId, setActiveOptionId] = useState();\n const [textFieldLabelId, setTextFieldLabelId] = useState();\n const [listboxId, setListboxId] = useState();\n const [textFieldFocused, setTextFieldFocused] = useState(false);\n const shouldOpen = Boolean(!popoverActive && Children.count(children) > 0);\n const ref = useRef(null);\n const onOptionSelected = useCallback(() => {\n var _ref$current;\n\n if (!allowMultiple) {\n setPopoverActive(false);\n setActiveOptionId(undefined);\n return;\n }\n\n (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.forceUpdatePosition();\n }, [allowMultiple]);\n const handleClose = useCallback(() => {\n setPopoverActive(false);\n setActiveOptionId(undefined);\n }, []);\n const handleFocus = useCallback(() => {\n if (shouldOpen) {\n setPopoverActive(true);\n }\n }, [shouldOpen]);\n const handleChange = useCallback(() => {\n if (shouldOpen) {\n setPopoverActive(true);\n }\n }, [shouldOpen]);\n const handleBlur = useCallback(() => {\n if (popoverActive) {\n setPopoverActive(false);\n setActiveOptionId(undefined);\n }\n }, [popoverActive]);\n const textFieldContextValue = useMemo(() => ({\n activeOptionId,\n expanded: popoverActive,\n listboxId,\n setTextFieldFocused,\n setTextFieldLabelId,\n onTextFieldFocus: handleFocus,\n onTextFieldChange: handleChange,\n onTextFieldBlur: handleBlur\n }), [activeOptionId, popoverActive, listboxId, setTextFieldFocused, setTextFieldLabelId, handleFocus, handleChange, handleBlur]);\n const listboxOptionContextValue = useMemo(() => ({\n allowMultiple\n }), [allowMultiple]);\n const listboxContextValue = useMemo(() => ({\n setActiveOptionId,\n setListboxId,\n listboxId,\n textFieldLabelId,\n onOptionSelected,\n textFieldFocused,\n onKeyToBottom: onScrolledToBottom\n }), [setActiveOptionId, setListboxId, listboxId, textFieldLabelId, onOptionSelected, textFieldFocused, onScrolledToBottom]);\n return /*#__PURE__*/React.createElement(Popover, {\n ref: ref,\n active: popoverActive,\n onClose: handleClose,\n activator: /*#__PURE__*/React.createElement(ComboboxTextFieldContext.Provider, {\n value: textFieldContextValue\n }, activator),\n autofocusTarget: \"none\",\n preventFocusOnClose: true,\n fullWidth: true,\n preferInputActivator: false,\n preferredPosition: preferredPosition\n }, /*#__PURE__*/React.createElement(Popover.Pane, {\n onScrolledToBottom: onScrolledToBottom\n }, Children.count(children) > 0 ? /*#__PURE__*/React.createElement(ComboboxListboxContext.Provider, {\n value: listboxContextValue\n }, /*#__PURE__*/React.createElement(ComboboxListboxOptionContext.Provider, {\n value: listboxOptionContextValue\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Listbox\n }, children))) : null));\n}\nCombobox.TextField = TextField;\n\nexport { Combobox };\n","import React, { useMemo, useEffect, useCallback } from 'react';\nimport { useComboboxTextField } from '../../../../utilities/combobox/hooks.js';\nimport { TextField as TextField$1 } from '../../../TextField/TextField.js';\nimport { useUniqueId } from '../../../../utilities/unique-id/hooks.js';\nimport { labelID } from '../../../Label/Label.js';\n\nfunction TextField({\n value,\n id: idProp,\n onFocus,\n onBlur,\n onChange,\n ...rest\n}) {\n const comboboxTextFieldContext = useComboboxTextField();\n const {\n activeOptionId,\n listboxId,\n expanded,\n setTextFieldFocused,\n setTextFieldLabelId,\n onTextFieldFocus,\n onTextFieldChange,\n onTextFieldBlur\n } = comboboxTextFieldContext;\n const uniqueId = useUniqueId('ComboboxTextField');\n const textFieldId = useMemo(() => idProp || uniqueId, [uniqueId, idProp]);\n const labelId = useMemo(() => labelID(idProp || uniqueId), [uniqueId, idProp]);\n useEffect(() => {\n if (setTextFieldLabelId) setTextFieldLabelId(labelId);\n }, [labelId, setTextFieldLabelId]);\n const handleFocus = useCallback(() => {\n if (onFocus) onFocus();\n if (onTextFieldFocus) onTextFieldFocus();\n if (setTextFieldFocused) setTextFieldFocused(true);\n }, [onFocus, onTextFieldFocus, setTextFieldFocused]);\n const handleBlur = useCallback(() => {\n if (onBlur) onBlur();\n if (onTextFieldBlur) onTextFieldBlur();\n if (setTextFieldFocused) setTextFieldFocused(false);\n }, [onBlur, onTextFieldBlur, setTextFieldFocused]);\n const handleChange = useCallback((value, id) => {\n if (onChange) onChange(value, id);\n if (onTextFieldChange) onTextFieldChange();\n }, [onChange, onTextFieldChange]);\n return /*#__PURE__*/React.createElement(TextField$1, Object.assign({}, rest, {\n value: value,\n id: textFieldId,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n ariaAutocomplete: \"list\",\n \"aria-haspopup\": \"listbox\",\n ariaActiveDescendant: activeOptionId,\n ariaControls: listboxId,\n role: \"combobox\",\n ariaExpanded: expanded\n }));\n}\n\nexport { TextField };\n","var styles = {\n \"ActionContainer\": \"Polaris-Autocomplete-MappedAction__ActionContainer\",\n \"Action\": \"Polaris-Autocomplete-MappedAction__Action\",\n \"destructive\": \"Polaris-Autocomplete-MappedAction--destructive\",\n \"selected\": \"Polaris-Autocomplete-MappedAction--selected\",\n \"disabled\": \"Polaris-Autocomplete-MappedAction--disabled\",\n \"Prefix\": \"Polaris-Autocomplete-MappedAction__Prefix\",\n \"Suffix\": \"Polaris-Autocomplete-MappedAction__Suffix\",\n \"Content\": \"Polaris-Autocomplete-MappedAction__Content\",\n \"Text\": \"Polaris-Autocomplete-MappedAction__Text\",\n \"ContentWrap\": \"Polaris-Autocomplete-MappedAction__ContentWrap\"\n};\n\nexport { styles as default };\n","import React, { useMemo } from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from './MappedAction.scss.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\nimport { Icon } from '../../../Icon/Icon.js';\nimport { Badge } from '../../../Badge/Badge.js';\nimport { TextStyle } from '../../../TextStyle/TextStyle.js';\nimport { MappedActionContext } from '../../../../utilities/autocomplete/context.js';\nimport { Listbox } from '../../../Listbox/Listbox.js';\n\nfunction MappedAction({\n active,\n content,\n disabled,\n icon,\n image,\n prefix,\n suffix,\n ellipsis,\n role,\n url,\n external,\n onAction,\n destructive,\n badge,\n helpText,\n wrapOverflow = false\n}) {\n const i18n = useI18n();\n let prefixMarkup = null;\n const contentOverflowStyle = wrapOverflow ? styles.ContentWrap : undefined;\n\n if (prefix) {\n prefixMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Prefix\n }, prefix);\n } else if (icon) {\n prefixMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Prefix\n }, /*#__PURE__*/React.createElement(Icon, {\n source: icon\n }));\n } else if (image) {\n prefixMarkup = /*#__PURE__*/React.createElement(\"div\", {\n role: \"presentation\",\n className: styles.Prefix,\n style: {\n backgroundImage: `url(${image}`\n }\n });\n }\n\n const badgeMarkup = badge && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Suffix\n }, /*#__PURE__*/React.createElement(Badge, {\n status: badge.status\n }, badge.content));\n const suffixMarkup = suffix && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Suffix\n }, suffix);\n const contentText = ellipsis && content ? i18n.translate('Polaris.Autocomplete.ellipsis', {\n content\n }) : content;\n const contentMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Text\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: contentOverflowStyle\n }, contentText), helpText ? /*#__PURE__*/React.createElement(TextStyle, {\n variation: \"subdued\"\n }, helpText) : null);\n const context = useMemo(() => ({\n role,\n url,\n external,\n onAction,\n destructive\n }), [role, url, external, onAction, destructive]);\n const actionClassNames = classNames(styles.Action, disabled && styles.disabled, destructive && styles.destructive, active && styles.selected);\n return /*#__PURE__*/React.createElement(MappedActionContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ActionContainer\n }, /*#__PURE__*/React.createElement(Listbox.Action, {\n selected: active,\n disabled: disabled,\n value: content || ''\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: actionClassNames\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Content\n }, prefixMarkup, contentMarkup, badgeMarkup, suffixMarkup)))));\n}\n\nexport { MappedAction };\n","import React, { useCallback, useMemo } from 'react';\nimport { isSection } from '../../utilities/options.js';\nimport styles from './Autocomplete.scss.js';\nimport { MappedOption } from './components/MappedOption/MappedOption.js';\nimport { Combobox } from '../Combobox/Combobox.js';\nimport { MappedAction } from './components/MappedAction/MappedAction.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Listbox } from '../Listbox/Listbox.js';\n\n// TypeScript can't generate types that correctly infer the typing of\n// subcomponents so explicitly state the subcomponents in the type definition.\n// Letting this be implicit works in this project but fails in projects that use\n// generated *.d.ts files.\nconst Autocomplete = function Autocomplete({\n options,\n selected,\n textField,\n preferredPosition,\n listTitle,\n allowMultiple,\n loading,\n actionBefore,\n willLoadMoreResults,\n emptyState,\n onSelect,\n onLoadMoreResults\n}) {\n const i18n = useI18n();\n const buildMappedOptionFromOption = useCallback(options => {\n return options.map(option => /*#__PURE__*/React.createElement(MappedOption, Object.assign({\n key: option.id || option.value\n }, option, {\n selected: selected.includes(option.value),\n singleSelection: !allowMultiple\n })));\n }, [selected, allowMultiple]);\n const optionsMarkup = useMemo(() => {\n const conditionalOptions = loading && !willLoadMoreResults ? [] : options;\n\n if (isSection(conditionalOptions)) {\n const noOptionsAvailable = conditionalOptions.every(({\n options\n }) => options.length === 0);\n\n if (noOptionsAvailable) {\n return null;\n }\n\n const optionsMarkup = conditionalOptions.map(({\n options,\n title\n }) => {\n if (options.length === 0) {\n return null;\n }\n\n const optionMarkup = buildMappedOptionFromOption(options);\n return /*#__PURE__*/React.createElement(Listbox.Section, {\n divider: false,\n title: /*#__PURE__*/React.createElement(Listbox.Header, null, title),\n key: title\n }, optionMarkup);\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SectionWrapper\n }, optionsMarkup);\n }\n\n const optionList = conditionalOptions.length > 0 ? buildMappedOptionFromOption(conditionalOptions) : null;\n\n if (listTitle) {\n return /*#__PURE__*/React.createElement(Listbox.Section, {\n divider: false,\n title: /*#__PURE__*/React.createElement(Listbox.Header, null, listTitle)\n }, optionList);\n }\n\n return optionList;\n }, [listTitle, loading, options, willLoadMoreResults, buildMappedOptionFromOption]);\n const loadingMarkup = loading ? /*#__PURE__*/React.createElement(Listbox.Loading, {\n accessibilityLabel: i18n.translate('Polaris.Autocomplete.spinnerAccessibilityLabel')\n }) : null;\n const updateSelection = useCallback(newSelection => {\n if (allowMultiple) {\n if (selected.includes(newSelection)) {\n onSelect(selected.filter(option => option !== newSelection));\n } else {\n onSelect([...selected, newSelection]);\n }\n } else {\n onSelect([newSelection]);\n }\n }, [allowMultiple, onSelect, selected]);\n const actionMarkup = actionBefore && /*#__PURE__*/React.createElement(MappedAction, actionBefore);\n const emptyStateMarkup = emptyState && options.length < 1 && !loading && /*#__PURE__*/React.createElement(\"div\", {\n role: \"status\"\n }, emptyState);\n return /*#__PURE__*/React.createElement(Combobox, {\n activator: textField,\n allowMultiple: allowMultiple,\n onScrolledToBottom: onLoadMoreResults,\n preferredPosition: preferredPosition\n }, actionMarkup || optionsMarkup || loadingMarkup || emptyStateMarkup ? /*#__PURE__*/React.createElement(Listbox, {\n onSelect: updateSelection\n }, actionMarkup, optionsMarkup && (!loading || willLoadMoreResults) ? optionsMarkup : null, loadingMarkup, emptyStateMarkup) : null);\n};\nAutocomplete.TextField = Combobox.TextField;\n\nexport { Autocomplete };\n","import { useState, useEffect } from 'react';\n\n// Custom debounce hook\n// eslint-disable-next-line import/prefer-default-export\nconst useDebounce = (value, delay) => {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n // Set a timeout for the debounce effect\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n // Cleanup timeout if the value changes or component unmounts\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n\nexport default useDebounce;\n","// eslint-disable-next-line prettier/prettier\nimport React, {\n useRef,\n useState,\n useEffect,\n} from 'react';\nimport { Autocomplete, Icon } from '@shopify/polaris';\nimport { SearchIcon } from '@shopify/polaris-icons';\nimport { getSpently } from '../../../util/spentlyRest';\nimport useDebounce from '../../../util/Debounce';\n\nconst ProductsOption = ({ onChange, label }) => {\n const [loading, setLoading] = useState(false);\n const [filter, setFilter] = useState('');\n const [dropDownList, setDropdownList] = useState();\n const [prods, setProds] = useState(null);\n const [productError, setProductError] = useState(false);\n\n // the debounced input trimed value\n const debouncedInput = useDebounce(filter, 500);\n\n const debounceRef = useRef(debouncedInput);\n\n const applyProducts = (prod) => {\n setFilter(prod.label);\n onChange({\n src: prod.image ? prod.image.src : [],\n title: prod.label,\n handle: prod.handle,\n });\n };\n\n // trigger only on compponent first render\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n const loadData = async () => {\n setLoading(true);\n const response = await getSpently(`/api/Products`);\n const products = response.map((p) => ({\n label: p.title,\n value: `${p.id}`,\n handle: p.handle,\n image: p.image,\n }));\n setProds(products);\n setLoading(false);\n };\n\n if (!prods) {\n loadData();\n } else {\n setProds(prods);\n }\n }, [prods]);\n\n // update dropdown list when filter or product list changes\n useEffect(() => {\n const loadOptions = () => {\n if (filter !== '') {\n const results = prods.filter((option) =>\n option.label.toLowerCase().includes(filter.toLowerCase())\n );\n setDropdownList(results);\n } else {\n setDropdownList(prods);\n }\n };\n if (prods) {\n loadOptions();\n }\n }, [prods, filter]);\n\n // when debounced input changes, we want to search for products\n useEffect(() => {\n // send request to search from server\n const SearchProduct = async () => {\n const response = await getSpently(`/api/Product?title=${debouncedInput}`);\n if (response.length > 0) {\n const product = response.map((p) => ({\n label: p.title,\n value: `${p.id}`,\n handle: p.handle,\n image: p.image,\n }));\n setProds(product);\n } else {\n setProductError(`Could not find this product: ${filter}`);\n }\n setLoading(false);\n };\n\n if (\n debouncedInput &&\n dropDownList &&\n debouncedInput.length &&\n debouncedInput.trim() !== debounceRef.current && // only trigger search if there is a search term\n dropDownList.length === 0 // only trigger search if no products match the search\n ) {\n setLoading(true);\n\n // do not trigger a new search if the search term is the same as the last search after trim space\n debounceRef.current = debouncedInput.trim();\n\n SearchProduct();\n }\n }, [debouncedInput, dropDownList, filter, prods, setProds]);\n\n const textField = (\n {\n setFilter(txt);\n setProductError(false);\n }}\n selected={filter}\n label={label}\n value={filter}\n prefix={}\n placeholder=\"Search\"\n error={productError}\n />\n );\n return (\n <>\n {\n const prod = prods.find((p) => p.value === s[0]);\n applyProducts(prod);\n }}\n loading={loading}\n options={dropDownList || []}\n />\n \n );\n};\n\nexport default ProductsOption;\n","import React from 'react';\n\nconst OptionsContext = React.createContext({});\n\nexport default OptionsContext;\n","import { Select } from '@shopify/polaris';\nimport React, { useEffect, useState, useContext } from 'react';\nimport { getSpently } from '../../../util/spentlyRest';\nimport { getShop } from '../../util/auth';\nimport OptionsContext from '../../../state/OptionsContext';\n\nconst AllDropdownOption = {\n label: 'All Products',\n value: 'all',\n id: 'all',\n};\n\nconst CollectionsDropdown = ({\n value,\n onChange,\n defaultValue,\n label,\n isSetup,\n supportLabel,\n}) => {\n const [cols, setCols] = useState(null);\n const shop = getShop('spently');\n\n const {\n dropdown,\n setDropdown,\n customCursor,\n setCustomCursor,\n smartCursor,\n setSmartCursor,\n } = useContext(OptionsContext);\n\n function findCommonElements(arr1, arr2) {\n return arr1.some((item) => arr2.includes(item));\n }\n\n useEffect(() => {\n // add all option in the collection dropdown if default value is all,\n // otherwise remove all option for the dropdown\n const toggleAllOption = (toUpdatecols) => {\n if (!toUpdatecols) {\n return toUpdatecols;\n }\n\n const allOptionIndex = toUpdatecols.indexOf(AllDropdownOption);\n\n if (defaultValue === 'all' && allOptionIndex < 0) {\n toUpdatecols.push(AllDropdownOption);\n } else if (defaultValue !== 'all' && allOptionIndex > -1) {\n toUpdatecols.splice(allOptionIndex, 1);\n }\n\n return toUpdatecols;\n };\n\n const loadCollections = async () => {\n const colRes = await getSpently('/api/Collections');\n const fromStore = colRes.collections.map((c) => ({\n label: c.title,\n value: `${c.id}`,\n id: c.id,\n }));\n\n setCols(fromStore);\n setDropdown(fromStore);\n setCustomCursor(colRes.customLink);\n setSmartCursor(colRes.smartLink);\n\n if (colRes[0] && isSetup) {\n onChange(colRes[0].id);\n }\n };\n let matchCollections = null;\n\n if (dropdown.length !== 0 && cols != null) {\n const temp = findCommonElements(dropdown, cols);\n matchCollections = temp;\n }\n // First time load\n if (!cols && dropdown.length === 0) {\n loadCollections();\n }\n // Has more collections meaning we need to update dropdown\n else if (cols && matchCollections === null) {\n setDropdown(toggleAllOption(cols));\n }\n // If the two collections dont match it means we need to merge collections\n // and update cols\n else if (matchCollections === false) {\n const mergedCollections = cols.concat(dropdown);\n setCols(mergedCollections);\n setDropdown(mergedCollections);\n }\n // due to multiple component renders this is a fall back to ensure we\n // always update the dropdown menu\n else {\n setCols(toggleAllOption(dropdown));\n }\n }, [\n cols,\n defaultValue,\n shop,\n isSetup,\n onChange,\n dropdown,\n customCursor,\n smartCursor,\n setDropdown,\n setCustomCursor,\n setSmartCursor,\n supportLabel,\n ]);\n return (\n <>\n {\n if (!supportLabel) {\n onChange(selectedCollectionId);\n return;\n }\n\n const collectionName = cols.find(\n (collection) => collection.id === selectedCollectionId\n ).label;\n\n onChange([selectedCollectionId, collectionName].join('|'));\n }}\n options={cols}\n label={label}\n />\n \n );\n};\n\nexport default CollectionsDropdown;\n","import * as React from 'react';\n\nconst default_key = 'sharethis';\nconst social_icon = {\n display: 'inline-block',\n width: '50px',\n height: '50px',\n position: 'relative',\n overflow: 'hidden',\n verticalAlign: 'middle'\n};\nconst social_container = {\n position: 'absolute',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%'\n};\nconst social_svg = {\n ...social_container,\n borderRadius: '50%',\n fillRule: 'evenodd'\n};\nconst social_svg_g = {\n transition: 'fill 170ms ease-in-out',\n fill: 'transparent'\n};\nconst makeUriRegex = function () {\n let socials = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return new RegExp('(?:[/.]|^)($SOCIALS)([.]|$|/)'.replace('$SOCIALS', socials.join('|').replace(/\\./gu, '\\\\.')), 'u');\n};\nconst social_icons = new Map();\nconst network_names = new Set();\nlet uri_regex = makeUriRegex();\nfunction getNetworks() {\n return [...network_names];\n}\n\n// note: deprecate in v7\nfunction getKeys() {\n return getNetworks();\n}\nfunction register(social, icon) {\n social_icons.set(social, icon);\n network_names.add(social);\n uri_regex = makeUriRegex(\n // sort by longest string first\n [...network_names].sort((pre, post) => post.length - pre.length));\n return icon;\n}\nfunction networkFor(url) {\n if (!url) {\n return default_key;\n }\n if (url.startsWith('mailto:')) {\n return 'mailto';\n }\n return url.match(uri_regex)?.[1] || default_key;\n}\nconst SocialIcon = /*#__PURE__*/React.forwardRef(function SocialIcon(props, ref) {\n const {\n as = 'a',\n href,\n url,\n network,\n bgColor,\n fgColor,\n className,\n label,\n children,\n fallback,\n defaultSVG,\n ...rest\n } = props;\n const networkKey = network || networkFor(url);\n const ariaLabel = label || props['aria-label'] || networkKey;\n const fallbackIcon = (typeof fallback === 'string' ? social_icons.get(fallback) : fallback || defaultSVG) || social_icons.get(default_key);\n const {\n color,\n path\n } = networkKey === default_key ? fallbackIcon : social_icons.get(networkKey) || {};\n return /*#__PURE__*/React.createElement(as, {\n href: href || url,\n className: `social-icon${className ? ` ${className}` : ''}`,\n ...rest,\n style: {\n ...social_icon,\n ...rest.style\n },\n 'aria-label': ariaLabel,\n ref\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"social-container\",\n style: social_container\n }, /*#__PURE__*/React.createElement(\"svg\", {\n role: \"img\",\n \"aria-label\": `${ariaLabel} social icon`,\n className: \"social-svg\",\n viewBox: \"0 0 64 64\",\n style: social_svg\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"social-svg-icon\",\n style: {\n ...social_svg_g,\n fill: fgColor || 'white'\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: `M0,0H64V64H0Z${path}`\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"social-svg-mask\",\n style: {\n ...social_svg_g,\n fill: bgColor || color\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: path\n })))), children);\n});\n\nexport { SocialIcon, getKeys, getNetworks, networkFor, network_names, register, social_icons, uri_regex };\n","import { FormLayout, TextField } from '@shopify/polaris';\nimport React from 'react';\nimport { SocialIcon } from 'react-social-icons';\n\nconst SocialSettings = ({ settings, save }) => {\n const ThemedSocialIcon = ({ network }) => (\n \n );\n\n return (\n \n }\n onChange={(val) => save({ facebookUrl: val })}\n />\n }\n onChange={(val) => save({ instagramUrl: val })}\n />\n }\n onChange={(val) => save({ rssFeedUrl: val })}\n />\n }\n onChange={(val) => save({ twitterUrl: val })}\n />\n }\n onChange={(val) => save({ messengerUrl: val })}\n />\n }\n onChange={(val) => save({ youtubeUrl: val })}\n />\n }\n onChange={(val) => save({ pinterestUrl: val })}\n />\n }\n onChange={(val) => save({ snapchatUrl: val })}\n />\n }\n onChange={(val) => save({ linkedInUrl: val })}\n />\n }\n onChange={(val) => save({ tikTokUrl: val })}\n />\n \n );\n};\n\nexport default SocialSettings;\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_auth0 = register(\"auth0\", {\"color\":\"#191919\",\"path\":\"M0 0v64h64V0Zm34.088 16.287c3.965.307 7.705 1.604 9.787 2.45a2.73 2.73 0 0 1 1.707 2.523v8.164a.79.79 0 0 1-.92.776l-.77-.124c-5.246-.858-9.356-5.162-10.22-10.37l-.004-.003-.29-2.504c-.06-.393.202-.95.71-.912m-3.363.006c.507-.038.777.515.707.913l-.291 2.503c-.865 5.205-4.974 9.51-10.221 10.369v.004l-.77.124a.79.79 0 0 1-.92-.776v-8.164c0-1.107.676-2.104 1.707-2.522 2.086-.845 5.823-2.145 9.788-2.45m-10.82 15.92c.346 0 .762.12 1.019.149 7.168 1.403 10.496 6.133 10.496 15.089 0 .45-.45.758-.826.51-3.297-2.207-10.55-7.967-11.3-15.175-.014-.454.264-.574.61-.574m25.001 0c.347-.001.626.119.612.573-.75 7.208-8.005 12.968-11.301 15.175-.376.248-.826-.06-.826-.51 0-8.956 3.33-13.686 10.498-15.09.257-.028.67-.148 1.017-.149\"});\n\nexport { _socialIcons_auth0 as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_bandsintown = register(\"bandsintown\", {\"color\":\"#1B8793\",\"path\":\"M0 0v64h64V0zm32.6 24.7h5.6v7.8h-5.6zm-6.8 0h5.6v7.8h-5.6zM44.9 46H19.1V18h5.6v22.4h14.6v-1.1H25.8v-5.6h19V46zm0-13.4h-5.6V18h5.6z\"});\n\nexport { _socialIcons_bandsintown as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_behance = register(\"behance\", {\"color\":\"#007CFF\",\"path\":\"M40.4 30.1q-.9 0-1.5.3c-.4.2-.7.4-.9.7s-.4.6-.5.9-.2.6-.2.9h6c-.1-.9-.4-1.6-.8-2.1-.5-.5-1.2-.7-2.1-.7m-14.9 2.7h-4.4v5.1h4.3c.4 0 .8 0 1.1-.1.4-.1.7-.2 1-.4s.5-.4.7-.7.2-.7.2-1.2c0-1-.3-1.6-.8-2-.5-.5-1.2-.7-2.1-.7m1.5-3.3c.5-.3.7-.9.7-1.7 0-.4-.1-.8-.2-1.1q-.3-.45-.6-.6-.45-.3-.9-.3c-.3-.1-.7-.1-1-.1h-3.8V30h4.1c.6.1 1.2-.1 1.7-.5M0 0v64h64V0zm36.6 23.8h7.5v1.8h-7.5zm-4.7 14.3c-.4.7-.9 1.2-1.5 1.7-.6.4-1.3.8-2.1 1q-1.2.3-2.4.3H17V22.6h8.7c.9 0 1.7.1 2.4.2.7.2 1.3.4 1.9.8.5.4.9.8 1.2 1.4s.4 1.3.4 2.2-.2 1.7-.6 2.3-1 1.1-1.9 1.5c1.1.3 2 .9 2.5 1.7.6.8.8 1.8.8 3 .1.9-.1 1.7-.5 2.4M47 35.3h-9.6c0 1.1.4 2.1.9 2.6s1.3.8 2.4.8c.7 0 1.4-.2 1.9-.6s.9-.8 1-1.2h3.2c-.5 1.6-1.3 2.8-2.4 3.4-1.1.7-2.4 1-3.9 1-1.1 0-2-.2-2.9-.5-.8-.3-1.6-.8-2.2-1.4s-1-1.4-1.4-2.2c-.3-.9-.5-1.8-.5-2.8s.2-1.9.5-2.8.8-1.6 1.4-2.2 1.3-1.1 2.2-1.5c.8-.4 1.8-.5 2.8-.5 1.1 0 2.1.2 3 .7q1.2.6 2.1 1.8c.5.7.9 1.6 1.2 2.5.3.8.3 1.8.3 2.9\"});\n\nexport { _socialIcons_behance as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_bsky = register(\"bsky.app\", {\"color\":\"#1185fe\",\"path\":\"M0 0v64h64V0Zm45.498 17.766a2.84 2.84 0 0 1 1.354.312c.578.296.932.915 1.103 1.92.085.513.046 2.326-.086 3.666-.013.125-.038.494-.064.822-.02.322-.054.696-.067.82-.013.125-.039.434-.058.69-.027.25-.06.585-.073.736-.02.158-.046.408-.066.559-.099.92-.118 1.07-.13 1.104-.014.02-.041.244-.067.494-.171 1.662-1.354 3.376-2.938 4.263-1.261.703-2.667 1.045-4.336 1.051-.801.007-.927.041-.447.133.94.17 2.005.518 2.86.945 2.247 1.11 3.041 2.747 2.331 4.778-.118.322-.25.636-.302.695-.053.052-.092.131-.092.164 0 .066-.617 1.025-.8 1.242-.06.072-.219.264-.35.428-.355.434-1.004 1.097-1.346 1.373-.164.131-.31.25-.33.27-.184.203-1.333.946-1.938 1.261-.808.42-1.425.591-2.135.598-.722.006-.953-.033-1.439-.256-1.386-.63-2.418-2.34-3.39-5.586-.421-1.426-.54-1.826-.598-2.082-.066-.276-.131-.218-.256.223-.381 1.38-1.117 3.344-1.623 4.363-.92 1.853-1.927 2.937-3.11 3.357-.499.178-1.45.166-2.029-.025-1.452-.486-2.899-1.623-4.357-3.443-1.426-1.774-2.116-3.292-2.037-4.475.046-.69.118-.933.447-1.426.302-.453.841-.914 1.44-1.236.426-.23 1.28-.584 1.609-.676.111-.026.375-.099.592-.158.216-.066.453-.126.525-.139.867-.17 1.255-.255 1.295-.281.026-.02-.302-.04-.723-.047-.42 0-.947-.026-1.164-.053-.453-.059-1.445-.276-1.642-.36a6 6 0 0 0-.46-.17c-1.241-.441-2.378-1.33-3.087-2.427-.316-.486-.659-1.221-.73-1.576a10 10 0 0 1-.19-1.123c-.027-.217-.054-.466-.067-.558a33 33 0 0 1-.197-1.873c-.026-.29-.053-.632-.066-.756a72 72 0 0 1-.073-.756c-.02-.29-.05-.631-.064-.756-.164-1.938-.172-3.68-.008-4.238.302-1.019.73-1.466 1.623-1.715.29-.08 1.157-.078 1.531.008 1.183.25 3.576 1.655 5.008 2.93.072.065.237.21.361.322.927.828 2.543 2.522 3.358 3.521.23.29.447.553.486.592.033.04.139.17.23.289.093.118.196.25.23.29.098.104 1.065 1.43 1.486 2.042.492.71 1.201 1.847 1.378 2.229.138.282.256.387.256.236 0-.105.836-1.485 1.434-2.365 1.866-2.76 4.257-5.488 6.353-7.262.566-.473.769-.63 1.63-1.22 1.648-1.126 2.937-1.676 4.015-1.688\"});\n\nexport { _socialIcons_bsky as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_clubhouse = register(\"clubhouse\", {\"color\":\"#1F1F1A\",\"path\":\"M0 0v64.271h64.203V0zm32.694 15.453c1.277 0 2.24.566 2.804 1.842.824-.538 1.956-.738 2.92-.483 1.305.34 2.1 1.249 2.581 4.03.17.882.423 1.96.735 2.895.396 1.194.85 2.128 1.643 3.518.255.425.566.908.878 1.361l.256-.51c.764-1.562 2.268-3.093 4.45-3.093.937 0 1.956.34 2.522 1.305a3.04 3.04 0 0 1 .51 1.7c0 .737-.311 1.475-.566 2.042-.057.114-.084.17-.084.198-.652 1.36-1.53 3.066-1.53 5.05 0 5.76-2.127 8.71-3.77 10.242-1.674 1.562-4.28 2.893-7.313 2.893-2.152 0-4.393-.623-6.234-1.843-2.52-1.672-4.052-4.255-5.44-6.524-1.136-1.9-1.958-3.43-3.176-6.324-.708-1.617-1.36-3.293-1.897-5.079-.482-1.562-.228-2.696.393-3.433.625-.766 1.505-1.135 2.468-1.192.17 0 .34.001.51.03a6 6 0 0 1-.2-1.475c0-1.846 1.448-3.207 3.403-3.207.255 0 .51.028.736.085-.028-.312-.056-.567-.056-.822 0-2.016 1.644-3.206 3.457-3.206m0 1.704c-.822 0-1.812.424-1.812 1.502 0 .709.197 1.758.395 2.606.34.825.398 1.336.823 3.122.255 1.052.565 1.958.877 2.752.368.967.793 1.79 1.388 2.896.283.538.426.539 1.106.17.538-.284 1.33-.625 1.924-.824-1.02-2.211-1.869-4.057-2.294-5.616-.113-.454-.51-2.272-.623-3.066-.085-.794-.17-1.473-.368-2.21-.226-.908-.538-1.332-1.416-1.332m4.87 1.252c-.445-.004-.919.14-1.216.395-.312.283-.425.509-.34 1.132.142 1.364.368 2.414.623 3.406.595 2.325 1.585 4.142 2.095 5.22.17.368.313.511.596.483.397-.029.623-.058.878-.03.34.029.596.228.596.568 0 .283-.143.397-.653.51-1.048.227-2.38.595-3.684 1.333-1.107.626-2.07 1.392-2.948 2.498-.085.113-.172.17-.313.17-.198 0-.368-.227-.538-.454s-.283-.397-.283-.567c0-.199.085-.37.283-.624.312-.426.68-.737.68-.935 0-.142-.254-.482-.48-.879-.368-.68-.992-2.044-1.417-3.065-.651-1.56-1.105-3.546-1.36-4.766-.312-1.332-.794-1.702-1.53-1.702-1.02 0-1.698.595-1.698 1.503 0 .598.197 1.391.594 2.696.255.85.51 1.7.736 2.296a53 53 0 0 0 1.218 3.066c.368.822.906 1.787 1.16 2.269.142.255.397.68.397.935 0 .454-.338.708-.791.708-.255 0-.482-.113-.737-.51-.311-.457-.992-1.788-1.473-2.78-.369-.823-.992-2.3-1.304-3.32-.51-1.616-.85-2.24-1.727-2.213-.51.029-.936.2-1.247.568-.312.397-.339 1.02-.084 1.843.538 1.73 1.163 3.317 1.835 4.943 1.192 2.807 1.957 4.257 3.062 6.1 1.388 2.268 2.75 4.538 4.93 5.984 1.558 1.02 3.46 1.561 5.3 1.561 2.578 0 4.762-1.137 6.15-2.441 1.419-1.305 3.23-3.859 3.23-8.993 0-2.354 1.02-4.4 1.644-5.732.17-.34.537-1.049.537-1.56 0-.226-.055-.537-.197-.764-.255-.397-.652-.54-1.133-.54-1.504 0-2.468 1.136-3.006 2.128a7 7 0 0 0-.537 1.36c-.312 1.049-.624 1.475-1.53 2.212-.482.426-1.076.964-1.415 1.39-.567.767-.738 1.42-.88 2.44-.028.256-.51.369-1.104.369-.34 0-.453-.113-.453-.652 0-.567.198-1.418.623-2.183.595-1.05 1.246-1.617 1.898-2.156s.85-.765.963-1.105c-.595-.797-1.16-1.618-1.614-2.412-.822-1.446-1.36-2.526-1.784-3.83a25 25 0 0 1-.794-3.152c-.34-1.988-.679-2.497-1.33-2.667a1.8 1.8 0 0 0-.428-.054m-23.056.313c.206-.014.437.052.698.187.806.42 3.65 2.637 4.193 3.076.526.422.454.641.178 1.185-.275.544-.533.683-1.022.528-.978-.309-3.882-2.07-4.64-2.523-.684-.413-.773-.784-.296-1.689.264-.499.545-.742.889-.764m-1.79 9.45c.139-.014.296-.005.469.012.803.077 4.524.682 5.116.865.613.19.698.47.623 1.005-.095.696-.409.829-.81.841-.855.024-4.407-.129-5.218-.209-.706-.07-.992-.381-.915-1.404.062-.824.319-1.068.735-1.11m7.768 7.597c.308.018.54.218.713.653.255.637.08.89-.463 1.228-.6.372-3.78 2.04-4.499 2.305-.512.19-1.068.146-1.395-.824-.402-1.198.162-1.482.965-1.794.711-.275 3.66-1.344 4.345-1.53a1 1 0 0 1 .334-.038\"});\n\nexport { _socialIcons_clubhouse as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_codepen = register(\"codepen\", {\"color\":\"#151515\",\"path\":\"M0 0v64h64V0zm32 48c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16m.5-25.7q-.45-.3-.9 0l-9.1 5.9c-.2.2-.4.4-.4.7v6.2c0 .3.1.6.4.7l9.1 5.9q.45.3.9 0l9.1-5.9c.2-.2.4-.4.4-.7v-6.2c0-.3-.1-.6-.4-.7zm.3 2.2 6.8 4.5-3 2-3.7-2.5v-4zm-1.6 0v4L27.4 31l-3-2zm-7.4 6.1 2.1 1.4-2.1 1.4zm7.4 8.9L24.4 35l3-2 3.7 2.5v4zM32 34l-3-2 3-2 3 2zm.8 5.5v-4l3.7-2.5 3 2zm7.4-6.1L38.1 32l2.1-1.4z\"});\n\nexport { _socialIcons_codepen as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_developer = register(\"developer.mozilla\", {\"color\":\"#236ab4\",\"path\":\"M0 0v64h64V0zm32 48.35h-3.69v-32.7l-10.15 32.7h-4.15l10.11-32.7H32zm18 0h-3.69v-32.7l-10.12 32.7h-4.15l10.11-32.7H50z\"});\n\nexport { _socialIcons_developer as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_discord = register(\"discord\", {\"color\":\"#5865F2\",\"path\":\"M0 0v64h64V0zm36.903 18.5a29.6 29.6 0 0 1 7.374 2.269c4.045 5.914 6.055 12.585 5.313 20.283a29.6 29.6 0 0 1-9.05 4.537 21.7 21.7 0 0 1-1.936-3.12 19.3 19.3 0 0 0 3.055-1.46 11 11 0 0 1-.747-.562 21.25 21.25 0 0 1-18.082 0c-.242.186-.492.377-.748.562a19 19 0 0 0 3.05 1.457 22 22 0 0 1-1.937 3.123 29.7 29.7 0 0 1-9.043-4.54c-.633-6.638.632-13.37 5.299-20.275a29.8 29.8 0 0 1 7.38-2.274q.522.935.944 1.92a27.5 27.5 0 0 1 8.183 0q.422-.985.945-1.92m-10.97 18.467c-1.762 0-3.218-1.6-3.218-3.568s1.405-3.581 3.213-3.581c1.807 0 3.252 1.614 3.222 3.581-.031 1.968-1.42 3.568-3.216 3.568m11.875 0c-1.765 0-3.216-1.6-3.216-3.568s1.406-3.581 3.216-3.581 3.244 1.614 3.213 3.581c-.03 1.968-1.417 3.568-3.213 3.568\"});\n\nexport { _socialIcons_discord as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_dribbble = register(\"dribbble\", {\"color\":\"#ea4c89\",\"path\":\"M34.3 34.3c-7.7 2.7-10.5 8-10.7 8.5 2.3 1.8 5.2 2.9 8.4 2.9 1.9 0 3.7-.4 5.3-1.1-.2-1.2-1-5.4-3-10.3.1-.1.1 0 0 0m-3-6.7c-2.3-4-4.7-7.4-5.1-7.9-3.8 1.8-6.7 5.3-7.6 9.6.6-.1 6.3 0 12.7-1.7m1.7 4.5c.2-.1.4-.1.5-.2-.3-.8-.7-1.6-1.1-2.3-6.8 2-13.4 2-14 1.9v.4c0 3.5 1.3 6.7 3.5 9.1.3-.4 4-6.6 11.1-8.9m8.1-10.3c-2.4-2.1-5.6-3.4-9.1-3.4-1.1 0-2.2.1-3.2.4.4.5 2.9 3.9 5.1 8 4.9-1.9 6.9-4.7 7.2-5m-6.2 7c.3.7.6 1.3.9 2 .1.2.2.5.3.7 4.5-.6 9.1.3 9.5.4 0-3.2-1.2-6.2-3.1-8.5-.2.4-2.5 3.3-7.6 5.4m2.1 4.8c1.8 4.9 2.5 8.9 2.7 9.7 3.1-2.1 5.2-5.4 5.9-9.2-.6-.1-4.3-1.2-8.6-.5M0 0v64h64V0zm32 48c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16\"});\n\nexport { _socialIcons_dribbble as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_dropbox = register(\"dropbox\", {\"color\":\"#1081DE\",\"path\":\"M0 0v64h64V0zm41.5 41.2L32 46.9l-9.4-5.7v-2.1l2.8 1.8 6.6-5.5 6.6 5.5 2.8-1.8v2.1zm6.5-7.5-9.4 6.1-6.6-5.5-6.6 5.5-9.4-6.1 6.5-5.2-6.5-5.2 9.4-6.1 6.6 5.5 6.6-5.5 9.4 6.1-6.5 5.2zm-25.5-5.2 9.5 5.9 9.5-5.9-9.5-5.9z\"});\n\nexport { _socialIcons_dropbox as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_email = register(\"email\", {\"color\":\"#7f7f7f\",\"path\":\"M41.1 25H22.9l9.1 7.1zm2.9 1.6-12 9.3-12-9.3V39h24zM0 0v64h64V0zm47 42H17V22h30z\"});\n\nexport { _socialIcons_email as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_facebook = register(\"facebook\", {\"color\":\"#3b5998\",\"path\":\"M0 0v64h64V0zm39.6 22h-2.8c-2.2 0-2.6 1.1-2.6 2.6V28h5.3l-.7 5.3h-4.6V47h-5.5V33.3H24V28h4.6v-4c0-4.6 2.8-7 6.9-7 2 0 3.6.1 4.1.2z\"});\n\nexport { _socialIcons_facebook as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_fivehundredpix = register(\"fivehundredpix\", {\"color\":\"#222222\",\"path\":\"M33.3 31.3c-.4-.2-.7-.4-1.1-.6-.3-.1-.8-.1-.9-.1-1.1 0-1.9.6-2.2 2.1v.9c0 .1.1.4.2.7.3.9 1.4 1.3 2.1 1.3s1.2-.2 1.9-.6c.5-.3 1-.7 1.4-1.1.2-.2.5-.5.5-.6.1-.5-1.5-1.7-1.9-2m9.5-.7c-1.3 0-2.4 1-3.8 2.6 1.3 1.5 2.6 2.3 3.9 2.3 1.5 0 2.2-1.1 2.2-2.4.1-1.4-.8-2.5-2.3-2.5M0 0v64h64V0zm42.9 38.5c-2 0-3.8-1-5.7-3.3-2.2 2.4-3.7 3.3-5.7 3.3-1.8 0-3.7-.7-4.8-3.1-1.2 2.5-3.3 3.2-5.1 3.2-1.6 0-3.8-.4-5-2.5-.1-.1-.6-1.3-.6-1.6v-.7h3c.1 1.6 1.3 2.2 2.4 2.2 1.3 0 2.4-.9 2.6-2.6v-.7c-.2-1.8-1.3-2.4-2.6-2.4-.8 0-1.6.2-2.3 1.2h-2.7v-.2l1.5-8h8.4v2.5h-6.2l-.6 3.3c1-.9 2-1.1 2.9-1.1 1.4 0 3.2.6 4.1 2.6 1-2.4 3-3.2 4.7-3.2 2 0 3.9 1 5.8 3.5 2.1-2.6 3.7-3.5 5.8-3.5 3.3 0 5.1 2.4 5.1 5.4.1 3.1-1.7 5.7-5 5.7\"});\n\nexport { _socialIcons_fivehundredpix as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_foursquare = register(\"foursquare\", {\"color\":\"#0072b1\",\"path\":\"M39.7 20.4H26.4c-.6 0-1 .5-1 1v20.5c0 .1 0 .1.1 0 0 0 4.9-5.9 5.4-6.5.5-.7.8-.8 1.6-.8H37c.6 0 1-.5 1-.8.1-.3.6-3 .7-3.6.1-.5-.4-1.1-.9-1.1h-5.5c-.7 0-1.2-.5-1.2-1.2v-.8c0-.7.5-1.2 1.2-1.2h6.4c.5 0 .9-.4 1-.8l.7-3.6c.2-.6-.2-1.1-.7-1.1M0 0v64h64V0zm44 20.9-1 5.2c-.8 4.2-1.8 9-1.9 9.5-.2.9-.6 2.4-2.7 2.4h-5.1c-.2 0-.2 0-.4.2-.1.1-7.9 9.2-7.9 9.2-.6.7-1.6.6-2 .4-.4-.1-1-.6-1-1.8V19.7c0-1.1.7-2.8 3-2.8h16.5c2.4.1 3.1 1.5 2.5 4\"});\n\nexport { _socialIcons_foursquare as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_flickr = register(\"flickr\", {\"color\":\"#0063db\",\"path\":\"M38 27c-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5M0 0v64h64V0zm32 48c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16m-6-21c-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5\"});\n\nexport { _socialIcons_flickr as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_gitlab = register(\"gitlab\", {\"color\":\"#f96424\",\"path\":\"M0 0v64h64V0zm50.402 32.559-1.969-6.066v.007-.011L44.52 14.454a1.54 1.54 0 0 0-1.476-1.055c-.68.004-1.25.422-1.461 1.062l-3.715 11.426h-11.72l-3.722-11.426a1.52 1.52 0 0 0-1.46-1.062h-.009c-.664 0-1.257.422-1.472 1.062L15.58 26.488v.004s0 .004-.004.008q.005-.007.004-.008l-1.98 6.067c-.297.914.027 1.91.805 2.476l17.082 12.402q.006-.001.007.004c.008.004.016.012.024.016-.008-.004-.012-.012-.02-.016l.004.004h.004q.035.028.082.051l.008.008h.004l.004.004h.008q0 .005.003.004c.004 0 .004.004.008.004q.024.009.047.02.022.006.043.015v.004h.008q.006.004.012.003h.004c0 .004.007.004.011.004h.004q.03.011.063.016.012.007.023.008h.004l.008.004h.015q.004-.001.008.004h.004q.061.006.121.007h.004q.061 0 .121-.007h.004q.006-.005.012-.004h.012q.007-.002.007-.004h.004l.028-.008.062-.016h.004q.006.001.012-.004h.004s.004 0 .008-.003h.007v-.004c.016-.004.032-.012.047-.016l.043-.02.008-.003h.004q.004-.005.008-.004l.008-.004.011-.008q.042-.023.082-.05.002.001.004-.005h.004q.004-.005.008-.004L49.6 35.035a2.21 2.21 0 0 0 .8-2.476zm-7.352-16.98 3.352 10.309h-6.7zm2.766 12.051-1.367 1.75-10.086 12.91 4.77-14.66zM31.171 47.001q.005.004.004.008.001-.004-.004-.008m-1.527-4.707L18.199 27.63h6.68zm-8.688-26.715 3.356 10.309h-6.703zm-5.523 18.047a.47.47 0 0 1-.172-.527l1.473-4.512 10.773 13.805zM31.46 47.415q-.006-.007-.012-.008v-.004q-.013-.008-.02-.015-.022-.018-.039-.036c.004 0 .004.004.004.004s.004 0 .004.004c.028.024.051.047.078.067h.004s0 .004.004.004c-.008-.004-.015-.012-.023-.016m.543-3.504-2.805-8.625-2.484-7.656H37.3zm.574 3.477q-.013.008-.02.015-.004-.001-.003.004a.01.01 0 0 0-.008.008c-.008.004-.016.012-.024.016 0 0 0-.004.004-.004a1 1 0 0 0 .078-.067l.004-.004s.004 0 .004-.003zm15.996-13.762-12.074 8.761L47.28 28.59l1.465 4.508a.47.47 0 0 1-.172.528\"});\n\nexport { _socialIcons_gitlab as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_github = register(\"github\", {\"color\":\"#24292e\",\"path\":\"M0 0v64h64V0zm37.1 47.2c-.8.2-1.1-.3-1.1-.8V42c0-1.5-.5-2.5-1.1-3 3.6-.4 7.3-1.7 7.3-7.9 0-1.7-.6-3.2-1.6-4.3.2-.4.7-2-.2-4.2 0 0-1.3-.4-4.4 1.6-1.3-.4-2.6-.5-4-.5s-2.7.2-4 .5c-3.1-2.1-4.4-1.6-4.4-1.6-.9 2.2-.3 3.8-.2 4.2-1 1.1-1.6 2.5-1.6 4.3 0 6.1 3.7 7.5 7.3 7.9-.5.4-.9 1.1-1 2.1-.9.4-3.2 1.1-4.7-1.3 0 0-.8-1.5-2.5-1.6 0 0-1.6 0-.1 1 0 0 1 .5 1.8 2.3 0 0 .9 3.1 5.4 2.1v2.7c0 .4-.3.9-1.1.8-6.3-2-10.9-8-10.9-15.1 0-8.8 7.2-16 16-16s16 7.2 16 16c0 7.1-4.6 13.1-10.9 15.2\"});\n\nexport { _socialIcons_github as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_google = register(\"google\", {\"color\":\"#dd4b39\",\"path\":\"M0 0v64h64V0zm31.3 19.1q.45.45.9 1.2c.3.4.5.9.7 1.5q.3.9.3 2.1c0 1.4-.3 2.6-.9 3.4l-.9 1.2c-.4.4-.8.7-1.2 1.1-.2.2-.5.5-.7.8s-.4.7-.4 1.1.1.8.4 1c.2.3.4.5.6.7l1.4 1.1c.8.7 1.6 1.5 2.2 2.3s.9 2 .9 3.3c0 1.9-.9 3.7-2.6 5.2-1.8 1.6-4.3 2.4-7.7 2.4q-4.2 0-6.3-1.8-2.1-1.65-2.1-3.9c0-.7.2-1.6.7-2.5q.6-1.35 2.4-2.4c1.3-.7 2.7-1.2 4.1-1.5 1.4-.2 2.6-.3 3.5-.4-.3-.4-.5-.8-.8-1.2s-.4-.9-.4-1.5c0-.4 0-.6.2-.9.1-.2.2-.5.2-.7-.5.1-.9.1-1.3.1-2.1 0-3.8-.7-4.9-2-1.2-1.2-1.8-2.7-1.8-4.3 0-2 .8-3.8 2.5-5.4 1.1-.9 2.3-1.6 3.5-1.8s2.3-.4 3.4-.4h8L33 18.4h-2.5c.2.2.5.4.8.7M48 32h-4.3v4.2h-2.5V32H37v-2.5h4.2v-4.3h2.5v4.3H48zM27.1 19.1c-.6-.5-1.4-.7-2.2-.7-1.1 0-2 .5-2.7 1.3q-.9 1.35-.9 3c0 1.5.4 3 1.3 4.5.4.7.9 1.4 1.6 1.9.6.5 1.4.8 2.2.8 1.1 0 1.9-.4 2.6-1.1.3-.5.6-1 .7-1.6.1-.5.1-1 .1-1.4q0-2.4-1.2-4.8c-.4-.8-.9-1.5-1.5-1.9m-.2 17.1c-.2 0-.7 0-1.6.1-.8.1-1.7.3-2.5.6-.2.1-.5.2-.9.4s-.7.4-1.1.7q-.6.45-.9 1.2c-.3.5-.4 1.1-.4 1.8 0 1.4.6 2.6 1.9 3.5 1.2.9 2.9 1.4 5 1.4 1.9 0 3.3-.4 4.3-1.3 1-.8 1.5-1.8 1.5-3.1 0-1-.3-1.9-1-2.7-.7-.7-1.8-1.6-3.3-2.6z\"});\n\nexport { _socialIcons_google as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_google_play = register(\"google_play\", {\"color\":\"#40BBC1\",\"path\":\"M0 0v64h64V0zm40.4 27.1-3.6 3.6-12.3-12.3zM22 44.5V19.4c0-.4.1-.7.2-.9L35.6 32 22.2 45.4c-.1-.2-.2-.5-.2-.9m2.4 1.1 12.4-12.4 3.6 3.6zm22.7-12.4-5 2.8-4-4 3.9-3.9 5.1 2.8c1.2.5 1.2 1.6 0 2.3\"});\n\nexport { _socialIcons_google_play as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_instagram = register(\"instagram\", {\"color\":\"#e94475\",\"path\":\"M0 0v64h64V0zm39.88 25.89c.98 0 1.77-.79 1.77-1.77s-.79-1.77-1.77-1.77-1.77.79-1.77 1.77.79 1.77 1.77 1.77M32 24.42c-4.18 0-7.58 3.39-7.58 7.58s3.4 7.58 7.58 7.58 7.58-3.4 7.58-7.58-3.4-7.58-7.58-7.58m0 12.5c-2.72 0-4.92-2.2-4.92-4.92s2.2-4.92 4.92-4.92 4.92 2.2 4.92 4.92-2.2 4.92-4.92 4.92m0-17.02c3.94 0 4.41.02 5.96.09 1.45.06 2.23.3 2.75.51.69.27 1.18.58 1.7 1.1.51.52.83 1.01 1.1 1.7.2.52.44 1.3.51 2.74.07 1.56.09 2.02.09 5.97 0 3.94-.02 4.4-.09 5.96-.07 1.44-.31 2.22-.51 2.74-.27.69-.59 1.19-1.1 1.7-.52.52-1.01.84-1.7 1.1-.52.2-1.3.45-2.75.51-1.55.07-2.02.09-5.96.09s-4.41-.02-5.96-.09c-1.45-.06-2.23-.3-2.75-.51-.69-.27-1.18-.58-1.7-1.1-.51-.51-.83-1.01-1.1-1.7-.2-.52-.44-1.3-.51-2.74-.07-1.56-.09-2.02-.09-5.96 0-3.95.02-4.41.09-5.97.07-1.44.31-2.22.51-2.74.27-.69.59-1.18 1.1-1.7.52-.52 1.01-.84 1.7-1.1.52-.2 1.3-.45 2.75-.51 1.55-.08 2.02-.09 5.96-.09m0-2.66c-4.01 0-4.51.02-6.09.09-1.57.07-2.64.32-3.58.68-.97.38-1.79.89-2.61 1.71s-1.33 1.65-1.71 2.61c-.36.94-.61 2.01-.68 3.59-.07 1.57-.09 2.07-.09 6.08s.02 4.51.09 6.09c.07 1.57.32 2.64.68 3.58.38.98.89 1.8 1.71 2.62s1.65 1.32 2.61 1.7c.94.37 2.01.62 3.59.69 1.57.07 2.07.09 6.09.09 4.01 0 4.51-.02 6.08-.09s2.65-.32 3.59-.69c.97-.37 1.79-.88 2.61-1.7s1.33-1.65 1.71-2.62c.36-.93.61-2.01.68-3.58.07-1.58.09-2.08.09-6.09s-.02-4.51-.09-6.09c-.07-1.57-.32-2.64-.68-3.58-.38-.98-.89-1.8-1.71-2.62a7.3 7.3 0 0 0-2.61-1.7c-.94-.37-2.01-.62-3.59-.69-1.58-.06-2.08-.08-6.09-.08\"});\n\nexport { _socialIcons_instagram as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_groupme = register(\"groupme\", {\"color\":\"#00aff0\",\"path\":\"M0 0v64h64V0zm40.321 39.434a10.4 9.517 0 0 1-16.64 0 2.6 2.38 0 1 0-4.161 2.856 15.6 14.276 0 0 0 24.961 0 2.6 2.38 0 0 0-4.16-2.856m-17.42-12.848a2.6 2.38 0 0 0 0 4.759h1.3v1.19a2.6 2.38 0 0 0 5.2 0v-1.19h5.2v1.19a2.6 2.38 0 0 0 5.2 0v-1.19h1.3a2.6 2.38 0 0 0 0-4.759h-1.3v-4.758h1.3a2.6 2.38 0 0 0 0-4.759h-1.3v-1.19a2.6 2.38 0 0 0-5.2 0v1.19h-5.2v-1.19a2.6 2.38 0 0 0-5.2 0v1.19h-1.3a2.6 2.38 0 0 0 0 4.759h1.3v4.758zm6.5-4.758h5.2v4.758h-5.2z\"});\n\nexport { _socialIcons_groupme as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_itunes = register(\"itunes\", {\"color\":\"#E049D1\",\"path\":\"M0 0v64h64V0zm42.5 40c0 2.2-1.8 4-4 4h-2c-1.9 0-3.4-1.5-3.4-3.4s1.5-3.4 3.4-3.4h2.8c.8 0 1.4-.6 1.4-1.4v-11c0-.5-.4-.9-.9-.9h-.2l-12.1 2.4c-.4.1-.7.4-.7.9V43c0 2.2-1.8 4-4 4h-2c-1.9 0-3.4-1.5-3.4-3.4s1.5-3.4 3.4-3.4h2.8c.8 0 1.4-.6 1.4-1.4V21.3c0-.7.5-1.2 1.1-1.4l14.7-3h.3c.8 0 1.4.6 1.4 1.4z\"});\n\nexport { _socialIcons_itunes as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_itch = register(\"itch.io\", {\"color\":\"#fa5c5c\",\"path\":\"M0 0v64h64V0zm32 16c4.482 0 7.49.028 11.828.197 1.396.921 4.146 4.435 4.172 5.356v1.523c0 1.933-1.624 3.631-3.1 3.631-1.771 0-3.248-1.631-3.248-3.568 0 1.937-1.425 3.568-3.197 3.568-1.771 0-3.152-1.631-3.152-3.568 0 1.937-1.516 3.568-3.287 3.568h-.032c-1.771 0-3.287-1.631-3.287-3.568 0 1.937-1.38 3.568-3.152 3.568s-3.197-1.631-3.197-3.568c0 1.937-1.477 3.568-3.248 3.568-1.476 0-3.1-1.698-3.1-3.63v-1.524c.026-.921 2.776-4.434 4.172-5.356C21.407 16.077 27.518 16 32 16m-3.326 9.797a3.65 4.058 0 0 0 .619.892 3.716 4.13 0 0 0 2.602 1.178q.053 0 .105-.002l.107.002a3.716 4.13 0 0 0 2.602-1.178 3.65 4.058 0 0 0 .617-.892 3.655 4.063 0 0 0 .623.892c.669.727 1.585 1.178 2.596 1.178a3.714 4.129 0 0 0 2.601-1.178c.243-.263.427-.546.596-.875.169.33.404.611.647.875a3.717 4.132 0 0 0 2.601 1.178c.122 0 .25-.037.352-.076a66 66 0 0 1 .222 4.373l.002.006.008 1.73c-.027 3.46.307 11.21-1.373 13.116-2.603.674-7.395.982-12.201.984-4.806-.002-9.598-.31-12.201-.984-1.68-1.905-1.344-9.657-1.371-13.116.002-.666.005-1.147.008-1.73v-.006c.02-1.149.08-2.724.222-4.373.103.04.23.076.352.076a3.717 4.132 0 0 0 2.601-1.178c.243-.264.478-.545.647-.875.168.329.353.612.596.875a3.714 4.129 0 0 0 2.601 1.178c1.01 0 1.927-.45 2.596-1.178a3.655 4.063 0 0 0 .623-.892m9.324 3.84v.002h-.002c-1.058.002-1.997 0-3.162 1.414a24 24 0 0 0-2.834-.16 24 24 0 0 0-2.834.16c-1.165-1.413-2.104-1.412-3.162-1.414h-.002c-.5 0-2.5 0-3.893 4.35l-1.496 5.966c-1.109 4.44.354 4.549 2.18 4.553 2.708-.112 4.209-2.298 4.209-4.485 1.5.274 3.249.41 4.998.41s3.499-.136 4.998-.41c0 2.187 1.499 4.373 4.207 4.485 1.826-.004 3.29-.113 2.182-4.553l-1.496-5.967c-1.394-4.35-3.393-4.351-3.893-4.351M32 33.057s2.851 2.91 3.363 3.945l-1.865-.082v1.809c0 .084-.749.05-1.498.011-.75.039-1.498.073-1.498-.011v-1.81l-1.865.083c.512-1.034 3.36-3.943 3.363-3.945\"});\n\nexport { _socialIcons_itch as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_line = register(\"line.me\", {\"color\":\"#4cc764\",\"path\":\"M0 0h64v64H0Zm27.54 13.171a26 26 0 0 1 6.17-.319c3.058.196 5.992.9 8.776 2.19 3.394 1.572 6.257 3.797 8.336 6.945 1.942 2.94 2.79 6.171 2.425 9.69-.286 2.758-1.398 5.185-3.046 7.382s-3.614 4.082-5.734 5.811c-3.558 2.901-7.32 5.505-11.32 7.758-.463.26-.954.469-1.437.69a2.4 2.4 0 0 1-.457.14c-.9.212-1.32-.166-1.184-1.077.099-.663.247-1.32.322-1.986.062-.558.074-1.124.062-1.686-.01-.494-.3-.862-.747-1.026-.574-.211-1.166-.405-1.767-.504-4.812-.789-9.1-2.66-12.59-6.137-2.247-2.238-3.792-4.89-4.423-8.028-.762-3.794-.064-7.333 1.949-10.61 1.868-3.044 4.503-5.257 7.642-6.896 2.205-1.15 4.545-1.912 7.023-2.337m4.31 18.669v-2.078c.126.159.192.239.254.323 1.294 1.747 2.59 3.492 3.875 5.244.176.24.369.352.67.335.392-.022.787-.004 1.181-.006.414-.002.54-.12.541-.529q.003-4.543 0-9.085c0-.4-.133-.531-.542-.538-.394-.006-.788-.002-1.182-.001-.512.002-.618.107-.618.621v5.291c-.149-.192-.234-.299-.316-.409-1.28-1.73-2.563-3.458-3.837-5.193-.153-.209-.324-.318-.585-.313-.426.01-.852-.004-1.278.004-.369.008-.503.14-.504.51q-.006 4.575 0 9.15c.001.362.143.488.516.491q.639.005 1.279 0c.428-.002.545-.118.546-.555.002-1.066 0-2.132 0-3.263m12.106 1.473h-1.79v-1.558h.366q1.79.001 3.58-.001c.39 0 .52-.125.527-.514.008-.405.004-.81.001-1.216-.002-.507-.11-.614-.627-.614l-3.484-.002c-.123 0-.245-.012-.355-.018v-1.54h.38q1.773.001 3.546-.001c.409 0 .533-.124.539-.535q.01-.656-.001-1.312c-.006-.35-.137-.493-.486-.494q-2.925-.009-5.849 0c-.353 0-.48.14-.48.489q-.003 4.59 0 9.18c0 .356.125.479.484.48q2.907.003 5.816 0c.383 0 .51-.13.516-.525q.007-.624 0-1.248c-.003-.447-.122-.568-.574-.57-.681-.005-1.363-.002-2.109-.002m-26.32 1.893c.006.32.178.454.488.454 1.949-.002 3.898 0 5.847-.002.35 0 .476-.13.482-.486.006-.395.002-.79.002-1.184 0-.585-.087-.674-.66-.674l-3.451-.001c-.113 0-.226-.01-.365-.018v-7.159c0-.519-.106-.627-.612-.63q-.56-.003-1.118 0c-.515.001-.613.101-.613.622zm10.432-1.51v-7.606c0-.465-.117-.581-.589-.585q-.543-.002-1.085 0c-.58 0-.68.103-.681.693v8.756c0 .086-.004.171.002.256.024.286.163.451.468.45.468-.003.936.003 1.405-.002.34-.004.475-.144.478-.492.004-.468.001-.937.001-1.47z\"});\n\nexport { _socialIcons_line as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_leetcode = register(\"leetcode\", {\"color\":\"#E7A41F\",\"path\":\"M0 0h64v64H0zm42.05 42.07a2.12 2.12 0 0 0-3.069-.005l-3.77 3.885a4.65 4.65 0 0 1-6.616.06l-6.758-6.84c-1.824-1.846-2.143-4.74-.56-6.49l6.21-6.625c1.664-1.84 5.04-2.061 6.97-.45l5.508 4.596c.932.779 2.299.628 3.052-.336s.607-2.377-.326-3.156l-5.507-4.596c-1.204-1.005-2.649-1.641-4.161-1.917L36.5 16.5c.85-.91.947-2.264.04-3.116a2.245 2.245 0 0 0-3.181.107l-9.043 9.499-6.063 6.7c-3.252 3.594-2.908 9.19.548 12.688l6.79 6.871a8.887 8.887 0 0 0 12.685-.12l3.77-3.886a2.3 2.3 0 0 0 .005-3.173m-14.396-6.016c0 1.24.971 2.244 2.17 2.244H45.83c1.198 0 2.17-1.005 2.17-2.244s-.972-2.244-2.17-2.244H29.824c-1.199 0-2.17 1.005-2.17 2.244\"});\n\nexport { _socialIcons_leetcode as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_linkedin = register(\"linkedin\", {\"color\":\"#007fb1\",\"path\":\"M0 0v64h64V0zm25.8 44h-5.4V26.6h5.4zm-2.7-19.7c-1.7 0-3.1-1.4-3.1-3.1s1.4-3.1 3.1-3.1 3.1 1.4 3.1 3.1-1.4 3.1-3.1 3.1M46 44h-5.4v-8.4c0-2 0-4.6-2.8-4.6s-3.2 2.2-3.2 4.5V44h-5.4V26.6h5.2V29h.1c.7-1.4 2.5-2.8 5.1-2.8 5.5 0 6.5 3.6 6.5 8.3V44z\"});\n\nexport { _socialIcons_linkedin as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_linktree = register(\"linktree\", {\"color\":\"#39e09b\",\"path\":\"M0 0v64h64V0zm27.436 19.386c-.6-.948-2.162-.948-2.762 0L14.344 35.83c-.48.843.24 1.792 1.322 1.792h6.966v6.218c0 .633.6 1.16 1.321 1.16h4.083c.721 0 1.321-.527 1.321-1.16v-6.218h-1.921c-.84 0-1.441-.527-1.562-1.16 0-.21 0-.421.12-.635l5.766-9.17zm9.128 0c.6-.948 2.162-.948 2.762 0l10.33 16.444c.48.843-.24 1.792-1.322 1.792h-6.846v6.218c0 .633-.6 1.16-1.322 1.16h-4.323c-.72 0-1.32-.527-1.32-1.16v-6.218h1.921c.84 0 1.441-.527 1.561-1.16 0-.21 0-.421-.12-.635L32.12 26.66z\"});\n\nexport { _socialIcons_linktree as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_mailto = register(\"mailto\", {\"color\":\"#7f7f7f\",\"path\":\"M41.1 25H22.9l9.1 7.1zm2.9 1.6-12 9.3-12-9.3V39h24zM0 0v64h64V0zm47 42H17V22h30z\"});\n\nexport { _socialIcons_mailto as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_mastodon = register(\"mastodon\", {\"color\":\"#17063B\",\"path\":\"M-.135-.135v64.541h64.678V-.134ZM31.91 16c4.394-.016 8.82.462 11.213 1.488 0 0 4.875 2.042 4.875 8.992 0 0 .064 5.126-.684 8.688-.477 2.26-4.218 4.734-8.515 5.213-1.54.17-7.13 1.013-13.686-.48q-.002.5.069.995c.507 3.546 3.767 3.76 6.861 3.86 3.123.093 5.646-.723 5.646-.723l.13 2.639s-1.924 1.093-5.815 1.295c-2.144.113-4.811-.05-7.912-.815C15.994 45.143 16 34.754 16 26.48c0-6.95 4.883-8.992 4.883-8.992 2.27-.96 6.633-1.472 11.027-1.488m-4.703 5.3c-1.505-.036-3.027.51-4.016 1.532-1.802 1.918-1.406 3.174-1.406 11.816h3.569v-7.513c0-3.518 4.882-3.651 4.882.49v4.354h3.537v-4.354c0-4.141 4.887-4.006 4.887-.488v7.515h3.56v-.004c0-8.636.404-9.883-1.406-11.816-1.962-2.032-6.087-2.196-7.927.43l-.883 1.383-.887-1.383c-.916-1.306-2.405-1.924-3.91-1.961\"});\n\nexport { _socialIcons_mastodon as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_matrix = register(\"matrix\", {\"color\":\"#000000\",\"path\":\"M0 0v64h64V0zm16 16h3.04v.732h-2.198v30.536h2.197V48H16zm28.96 0H48v32h-3.04v-.732h2.198V16.732h-2.197zM29.769 26.104c.72 0 1.377.143 1.974.42.598.277 1.046.775 1.36 1.476q.509-.749 1.378-1.322.87-.574 2.061-.574.904 0 1.68.222c.517.147.955.382 1.324.707.368.327.652.745.861 1.268q.306.783.307 1.89v7.637h-3.131V31.36q0-.573-.043-1.082a2.3 2.3 0 0 0-.24-.88 1.5 1.5 0 0 0-.584-.596q-.39-.222-1.047-.223-.665 0-1.07.252a1.84 1.84 0 0 0-.641.666 2.6 2.6 0 0 0-.309.928 7.4 7.4 0 0 0-.08 1.047v6.357h-3.132v-6.4c0-.339-.005-.67-.024-1.002a2.8 2.8 0 0 0-.191-.918 1.4 1.4 0 0 0-.553-.67c-.259-.167-.635-.254-1.139-.254q-.224 0-.586.1a2 2 0 0 0-.705.375q-.344.277-.586.793-.24.519-.24 1.36v6.622H23.28v-11.42h2.953v1.541h.045a4.4 4.4 0 0 1 1.49-1.365c.578-.327 1.249-.486 2-.486\"});\n\nexport { _socialIcons_matrix as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_medium = register(\"medium\", {\"color\":\"#000000\",\"path\":\"M0 0v64h64V0zm25.025 22.914c4.985 0 9.026 4.068 9.026 9.086s-4.041 9.086-9.026 9.086S16 37.018 16 32s4.041-9.086 9.025-9.086m14.413.531c2.492 0 4.511 3.83 4.511 8.555h.002c0 4.724-2.021 8.555-4.514 8.555-2.492 0-4.511-3.831-4.511-8.555s2.02-8.555 4.511-8.555m6.974.89C47.288 24.336 48 27.768 48 32c0 4.231-.711 7.664-1.588 7.664S44.826 36.232 44.826 32s.71-7.664 1.586-7.664\"});\n\nexport { _socialIcons_medium as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_meetup = register(\"meetup\", {\"color\":\"#E51937\",\"path\":\"M0 0v64h64V0zm47.8 44.3c-.4.2-2.5.9-3.9 1-.6.1-1.1-.6-1.4-1.5C41 39.2 39 32 37.3 27.2c0 3.7-.3 10.8-.4 12-.1 1.7-.4 3.7-1.8 3.9-1.1.2-2.4.4-4 .4-1.3 0-1.8-.9-2.4-1.8-1-1.4-3.1-4.8-4.1-6.9.3 2.3.7 4.7.9 5.8.1.8 0 1.5-.6 1.9-1 .7-3.2 1.4-4.1 1.4-.8 0-1.5-.8-1.6-1.6-.7-3.4-1.2-8-1.1-11.1 0-2.8 0-5.9.2-8.3 0-.7.3-1.1.9-1.4 1.2-.5 3-.6 4.7-.3.8.1 1 .8 1.4 1.4 1.7 2.8 3.8 6.7 5.7 10.6 0-6.3 1.9-11.9 3.5-15.3.5-1.1.9-1.4 1.9-1.4 1.3 0 2.9.2 4.1.4 1.1.2 1.5 1.6 1.7 2.5 1.2 4.5 4.7 18.7 5.5 22.4.1 1 .6 2.2.1 2.5\"});\n\nexport { _socialIcons_meetup as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_misskey = register(\"misskey\", {\"color\":\"#86b300\",\"path\":\"M0 0h64v64H0Zm16.97 18.07c-.57 0-1.13.1-1.66.29-.94.33-1.72.93-2.32 1.78-.58.83-.87 1.75-.87 2.78v18.16c0 1.33.47 2.47 1.41 3.44.97.94 2.12 1.41 3.44 1.41 1.36 0 2.5-.47 3.44-1.41.97-.97 1.45-2.12 1.45-3.44v-3.3c.01-.72.75-.53 1.12 0 .7 1.21 2.33 2.24 3.9 2.24s3.15-.86 3.9-2.24c.28-.33 1.08-.9 1.16 0v3.3c0 1.33.47 2.47 1.41 3.44.97.94 2.12 1.41 3.44 1.41 1.35 0 2.5-.47 3.44-1.41.97-.97 1.45-2.12 1.45-3.44V22.92c0-1.02-.3-1.95-.91-2.78-.58-.86-1.34-1.45-2.28-1.78-.55-.19-1.11-.29-1.66-.29-1.49 0-2.75.58-3.77 1.74l-4.92 5.76c-.11.08-.48.72-1.26.72s-1.1-.63-1.21-.72l-4.96-5.76c-1-1.16-2.24-1.74-3.74-1.74m30.68 0c-1.16 0-2.16.41-2.98 1.24q-1.2 1.2-1.2 2.94c0 1.16.4 2.16 1.2 2.98.83.8 1.82 1.2 2.98 1.2s2.16-.4 2.99-1.2c.83-.83 1.24-1.82 1.24-2.98s-.41-2.14-1.24-2.94c-.84-.83-1.83-1.24-2.99-1.24m.04 9.2c-1.16 0-2.16.41-2.99 1.24s-1.24 1.82-1.24 2.99v10.24c0 1.16.41 2.16 1.24 2.98.83.8 1.82 1.2 2.99 1.2q1.74 0 2.94-1.2c.83-.83 1.24-1.82 1.24-2.98V31.5c0-1.16-.41-2.16-1.24-2.99-.8-.82-1.78-1.24-2.94-1.24\"});\n\nexport { _socialIcons_misskey as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_opensea = register(\"opensea\", {\"color\":\"#2081E2\",\"path\":\"M0 0h64v64H0Zm33 12.8c.5 0 .956.204 1.281.536.326.332.528.787.528 1.293v3.101l.375.106q.046.014.086.043c.092.069.222.172.39.297.132.105.275.232.445.363.34.273.744.627 1.188 1.031.118.102.235.208.34.313a27 27 0 0 1 1.824 1.847c.171.194.337.391.508.598.17.21.354.418.512.625.207.276.427.56.62.86.093.14.2.288.29.43.25.377.469.768.68 1.16.088.18.178.376.257.57a8.5 8.5 0 0 1 .54 1.59c.035.115.06.24.074.351v.027c.039.158.053.326.066.496a5.3 5.3 0 0 1-.094 1.641c-.05.234-.112.454-.191.688-.08.223-.16.455-.262.675-.197.457-.43.913-.707 1.34a8 8 0 0 1-.297.485c-.115.167-.234.326-.34.48a10 10 0 0 1-.457.59 6 6 0 0 1-.445.559c-.22.26-.428.505-.648.742a7 7 0 0 1-.418.453c-.142.158-.287.298-.418.43-.22.22-.404.393-.559.535l-.363.332a.3.3 0 0 1-.196.07h-2.8v3.594h3.527c.789 0 1.536-.28 2.14-.793.208-.181 1.112-.96 2.18-2.14a.3.3 0 0 1 .137-.083l9.734-2.816a.287.287 0 0 1 .364.277v2.059c0 .118-.07.223-.176.27-.644.275-2.852 1.29-3.77 2.566-2.34 3.258-4.127 7.918-8.125 7.918H24.14c-5.91 0-10.699-4.808-10.699-10.739v-.191c0-.158.128-.285.286-.285h9.296c.184 0 .318.17.301.351a3.17 3.17 0 0 0 .332 1.785 3.27 3.27 0 0 0 2.934 1.82h4.605v-3.593h-4.55a.294.294 0 0 1-.239-.46c.05-.077.105-.154.164-.243a33 33 0 0 0 1.657-2.645c.417-.73.822-1.506 1.148-2.289a5 5 0 0 0 .172-.43c.089-.25.18-.48.246-.714.066-.198.12-.404.172-.598a9.3 9.3 0 0 0 .219-2.098 10 10 0 0 0-.04-.87c-.013-.313-.05-.626-.09-.938a10 10 0 0 0-.128-.836 14 14 0 0 0-.266-1.25l-.035-.156c-.079-.286-.146-.562-.238-.848a32 32 0 0 0-.871-2.59c-.115-.325-.248-.637-.38-.949-.193-.47-.393-.896-.574-1.3a18 18 0 0 1-.25-.524 17 17 0 0 0-.269-.574c-.066-.142-.143-.271-.195-.403l-.563-1.039a.183.183 0 0 1 .207-.265l3.52.953h.008l.011.004.465.128.512.145.187.05v-2.09c0-1.008.805-1.827 1.805-1.827m-8.488 6.903a.28.28 0 0 1 .238.168c1.39 3.117 2.59 6.993 2.027 9.406-.24.993-.897 2.34-1.636 3.582q-.145.272-.313.528a.28.28 0 0 1-.234.125H16.03a.284.284 0 0 1-.242-.438l.137-.215 8.324-13.023a.28.28 0 0 1 .262-.133\"});\n\nexport { _socialIcons_opensea as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_patreon = register(\"patreon\", {\"color\":\"#000000\",\"path\":\"M0 0h64v64H0Zm52.853 23.459c-.008-5.72-4.462-10.41-9.69-12.1-6.492-2.1-15.053-1.796-21.252 1.127-7.511 3.546-9.871 11.312-9.959 19.055-.07 6.369.564 23.139 10.022 23.259 7.03.088 8.077-8.969 11.328-13.33 2.314-3.104 5.294-3.979 8.96-4.886 6.303-1.562 10.6-6.536 10.591-13.125m0 0\"});\n\nexport { _socialIcons_patreon as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_pinterest = register(\"pinterest\", {\"color\":\"#cb2128\",\"path\":\"M0 0v64h64V0zm32 48c-1.6 0-3.1-.2-4.5-.7.6-1 1.3-2.2 1.6-3.4.2-.7 1.1-4.4 1.1-4.4.6 1.1 2.2 2 3.9 2 5.1 0 8.6-4.7 8.6-11 0-4.7-4-9.2-10.1-9.2-7.6 0-11.4 5.5-11.4 10 0 2.8 1 5.2 3.3 6.1.4.1.7 0 .8-.4.1-.3.2-1 .3-1.3.1-.4.1-.5-.2-.9-.6-.8-1.1-1.7-1.1-3.1 0-4 3-7.7 7.9-7.7 4.3 0 6.7 2.6 6.7 6.1 0 4.6-2 8.5-5.1 8.5-1.7 0-2.9-1.4-2.5-3.1.5-2 1.4-4.2 1.4-5.7 0-1.3-.7-2.4-2.2-2.4-1.7 0-3.1 1.8-3.1 4.1 0 1.5.5 2.5.5 2.5s-1.8 7.4-2.1 8.7c-.3 1.2-.3 2.6-.3 3.7C19.9 44.2 16 38.6 16 32c0-8.8 7.2-16 16-16s16 7.2 16 16-7.2 16-16 16\"});\n\nexport { _socialIcons_pinterest as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_pixiv = register(\"pixiv\", {\"color\":\"#0097fa\",\"path\":\"M0 0v64h64V0zm33.553 16.469c-11.844 0-19.903 9.146-19.903 9.146l2.27 3.606s1.26.106.592-2.018c.573-1.086 1.698-2.545 3.892-4.232v24.008c-.946.268-2.194.768-1.34 1.623h6.518c.86-.861-.493-1.38-1.32-1.623v-5.663s4.469 1.756 9.29 1.756c4.234 0 8.088-1.26 10.954-3.537 2.869-2.264 4.712-5.642 4.703-9.506a12.75 12.75 0 0 0-4.41-9.709c-2.793-2.438-6.705-3.847-11.246-3.847zm-.397 2.027c3.601.003 6.425 1.36 8.338 3.43 1.907 2.075 2.948 4.83 2.957 8.04-.012 3.126-1.124 5.698-3.107 7.673-1.98 1.959-4.864 3.195-8.188 3.195h-.021c-3.699 0-6.816-.72-8.873-1.732V21.088c2.261-1.605 5.928-2.598 8.894-2.592\"});\n\nexport { _socialIcons_pixiv as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_ravelry = register(\"ravelry\", {\"color\":\"#EE6E62\",\"path\":\"M0 0h64v64H0Zm42.692 28.943s-2.184-.397-3.752-.397c-3.584 0-4.424 1.987-4.424 4.939v12.488H24.83V20.542h9.687v4.257c1.176-3.576 3.528-4.825 8.176-4.825z\"});\n\nexport { _socialIcons_ravelry as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_rdio = register(\"rdio\", {\"color\":\"#0475C5\",\"path\":\"M0 0v64h64V0zm43.9 30.5c.1.5.1 1 .1 1.5 0 6.4-5.1 11.6-12 11.6s-12-5.1-12-11.5V32c0-6.4 5.1-11.6 12-11.6 1.2 0 2.3.2 3.4.5v6.8l-.6-.3c-3-1-6.2.4-7.7 2.9v.1c-1.5 2.5-.8 5.3 2.1 6.3 3 1 6.2-.4 7.7-2.9v-.1c.5-.8.8-1.7.8-2.6v-9.3c.2.1.3.2.5.3.1.1.3.2.4.2 1.5 1 5.4 3.5 8.7 3.4 1.7.1.2 3.8-3.4 4.8\"});\n\nexport { _socialIcons_rdio as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_reddit = register(\"reddit\", {\"color\":\"#FF4500\",\"path\":\"M0 0v64h64V0zm53.344 32a4.67 4.67 0 0 0-7.903-3.2 22.77 22.77 0 0 0-12.32-3.937L35.2 14.88l6.848 1.441a3.2 3.2 0 0 0 3.02 2.852 3.2 3.2 0 1 0-2.602-4.805l-7.84-1.566a1 1 0 0 0-.754.136.98.98 0 0 0-.43.63l-2.37 11.105a22.8 22.8 0 0 0-12.477 3.937 4.672 4.672 0 1 0-5.152 7.648q-.06.704 0 1.407c0 7.168 8.351 12.992 18.656 12.992 10.3 0 18.656-5.824 18.656-12.992a9.4 9.4 0 0 0 0-1.406A4.68 4.68 0 0 0 53.344 32m-32 3.2a3.198 3.198 0 1 1 6.398 0 3.195 3.195 0 0 1-3.199 3.198c-1.766 0-3.2-1.43-3.2-3.199M39.938 44a12.3 12.3 0 0 1-7.907 2.465A12.3 12.3 0 0 1 24.13 44a.87.87 0 0 1 .055-1.16.87.87 0 0 1 1.16-.055A10.48 10.48 0 0 0 32 44.801a10.5 10.5 0 0 0 6.688-1.953.9.9 0 0 1 1.265.015.9.9 0 0 1-.016 1.266Zm-.579-5.473a3.2 3.2 0 0 1-3.199-3.199 3.198 3.198 0 1 1 6.398 0 3.2 3.2 0 0 1-3.23 3.328Zm0 0\"});\n\nexport { _socialIcons_reddit as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_rss = register(\"rss\", {\"color\":\"#EF8733\",\"path\":\"M0 0v64h64V0zm24 44c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4m11-1c-1.1 0-2-.9-2-2 0-5.5-4.5-10-10-10-1.1 0-2-.9-2-2s.9-2 2-2c7.7 0 14 6.3 14 14 0 1.1-.9 2-2 2m9 0c-1.1 0-2-.9-2-2 0-10.5-8.5-19-19-19-1.1 0-2-.9-2-2s.9-2 2-2c12.7 0 23 10.3 23 23 0 1.1-.9 2-2 2\"});\n\nexport { _socialIcons_rss as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_sharethis = register(\"sharethis\", {\"color\":\"#00BF00\",\"path\":\"M0 0h64v64H0zm28.388 32c0 .084-.02.163-.025.247l8.802 4.4a4.3 4.3 0 0 1 2.782-1.037 4.335 4.335 0 0 1 4.335 4.335 4.335 4.335 0 1 1-8.67 0c0-.086.02-.163.025-.247l-8.802-4.4a4.3 4.3 0 0 1-2.782 1.034 4.335 4.335 0 0 1 0-8.67c1.065 0 2.027.402 2.782 1.037l8.802-4.4c-.005-.083-.024-.162-.024-.249a4.333 4.333 0 0 1 4.334-4.332 4.335 4.335 0 0 1 0 8.67 4.28 4.28 0 0 1-2.782-1.04l-8.802 4.403c.005.084.024.163.024.25\"});\n\nexport { _socialIcons_sharethis as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_slack = register(\"slack\", {\"color\":\"#4A164A\",\"path\":\"M0 0v64h64V0Zm12.636 37.56c0 5.066 8 5.066 8 0v-3.8h-4c-2.209 0-4 1.7-4 3.8m25.28-6.346c2.21 0 4-1.702 4-3.8V17.287c0-5.066-8-5.066-8 0v10.127c0 2.113 1.815 3.82 4.04 3.8zm14.64-3.8c0-5.067-8-5.067-8 0v3.8h4c2.24.042 4.08-1.672 4.08-3.8zm-25.24 6.345c-2.209 0-4 1.702-4 3.8v10.127c0 5.067 8 5.067 8 0V37.559c0-2.098-1.79-3.8-4-3.8m10.64 10.127h-4v3.8c0 3.386 4.309 5.08 6.829 2.687s.735-6.487-2.829-6.487m10.68-10.127h-10.68c-5.324.009-5.324 7.592 0 7.6h10.68c5.325-.008 5.325-7.591 0-7.6m-21.32-10.145h-10.68c-5.342-.008-5.342 7.608 0 7.6h10.68c5.325-.009 5.325-7.592 0-7.6m0-10.127c-5.324.008-5.324 7.592 0 7.6h4v-3.8c0-2.126-1.804-3.8-4-3.8\"});\n\nexport { _socialIcons_slack as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_smugmug = register(\"smugmug\", {\"color\":\"#8cca1e\",\"path\":\"M0 0v64h64V0zm36.1 19.8c.2-1.3 1.3-2.6 3.2-2.8 2.4-.2 3.8 1.3 3.8 2.8 0 1.3-1.2 2.6-3.8 2.8-2.4.1-3.4-1.3-3.2-2.8m-13.6.4c.2-1.4 1.4-2.8 3.3-2.8 2.3 0 3.5 1.1 3.6 2.4.2 1.5-1.1 3.1-3.9 3.1-2.4.1-3.2-1.3-3-2.7M28.8 47c-10.9 0-12-17.5-6.9-17.5 12.1-.3 12.5-.3 19-1C51.7 27.4 39.2 47 28.8 47m11.5-15.4c-3.9 0-6.8.5-17.8.9-1.6.1-2.9 11.4 6.6 11.4 7.5 0 15.2-12.3 11.2-12.3\"});\n\nexport { _socialIcons_smugmug as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_snapchat = register(\"snapchat\", {\"color\":\"#FFC91B\",\"path\":\"M0 0v64h64V0zm47.927 39.545c-.326.76-1.702 1.318-4.21 1.707-.083.113-.17.511-.223.754a11 11 0 0 1-.183.743c-.104.357-.367.554-.74.554h-.037a4 4 0 0 1-.723-.089 8.5 8.5 0 0 0-1.706-.181c-.397 0-.809.034-1.222.103-.809.135-1.496.62-2.293 1.184-1.139.805-2.43 1.718-4.392 1.718-.088 0-.171-.003-.234-.006a2 2 0 0 1-.162.006c-1.962 0-3.253-.912-4.393-1.718-.796-.562-1.483-1.048-2.292-1.183a7.5 7.5 0 0 0-1.223-.103c-.716 0-1.288.112-1.706.193-.278.055-.519.102-.723.102-.505 0-.701-.308-.776-.565-.077-.262-.131-.51-.183-.751-.053-.244-.14-.644-.224-.758-2.507-.389-3.884-.948-4.21-1.711a.9.9 0 0 1-.071-.298.664.664 0 0 1 .555-.692c4.349-.716 6.308-5.181 6.389-5.371l.015-.032c.232-.471.284-.866.154-1.172-.251-.592-1.177-.885-1.789-1.08-.17-.054-.331-.105-.464-.157-1.482-.585-1.688-1.258-1.601-1.719.122-.64.903-1.07 1.555-1.07q.284 0 .507.104c.557.261 1.053.394 1.472.394.314 0 .513-.075.622-.136l-.048-.779c-.136-2.173-.307-4.877.403-6.469 2.111-4.732 6.585-5.1 7.905-5.1l.554-.005.078-.001h.001c1.324 0 5.807.368 7.919 5.103.711 1.593.54 4.299.403 6.474l-.006.092-.042.685c.099.055.272.121.537.134.4-.018.863-.149 1.379-.391.219-.103.454-.124.613-.124.232 0 .468.045.667.128l.002.001c.592.212.965.638.974 1.117.011.609-.533 1.135-1.617 1.564-.132.052-.293.103-.465.158-.612.194-1.538.488-1.788 1.079-.13.306-.079.701.154 1.172l.015.032c.081.189 2.038 4.654 6.389 5.371a.664.664 0 0 1 .555.691.9.9 0 0 1-.071.298\"});\n\nexport { _socialIcons_snapchat as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_soundcloud = register(\"soundcloud\", {\"color\":\"#FF5700\",\"path\":\"M0 0v64h64V0zm18.5 36.3c0 .7-.6 1.2-1.2 1.2-.7 0-1.2-.6-1.2-1.2v-4.9c0-.6.6-1.1 1.2-1.1.7 0 1.2.5 1.2 1.1zm4.9 1.2c0 .7-.6 1.2-1.2 1.2s-1.2-.5-1.2-1.2V29c0-.6.6-1.1 1.2-1.1s1.2.5 1.2 1.1zm5 0c0 .7-.6 1.2-1.2 1.2-.7 0-1.2-.6-1.2-1.2V26.2c0-.6.6-1.1 1.2-1.1.7 0 1.2.5 1.2 1.1zm15.2 1.2H31.4c-.3 0-.5-.2-.5-.5V24.3c0-.3.1-.4.4-.5.9-.3 1.8-.5 2.8-.5 4 0 7.4 3.1 7.7 7.1.5-.2 1.1-.3 1.7-.3 2.4 0 4.4 2 4.4 4.4.1 2.3-1.9 4.2-4.3 4.2\"});\n\nexport { _socialIcons_soundcloud as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_spotify = register(\"spotify\", {\"color\":\"#2EBD59\",\"path\":\"M39 37.7c-4.2-2.6-9.4-3.2-15.5-1.8-.5.1-.9.7-.8 1.2s.7.9 1.2.7q8.4-1.95 14.1 1.5c.5.3 1.1.1 1.4-.3.2-.4.1-1-.4-1.3m1.9-4.7c-4.9-3-12.2-3.9-18-2.1-.7.2-1 .9-.8 1.6s.9 1 1.6.8c5.1-1.5 11.6-.8 15.9 1.9.6.4 1.4.2 1.7-.4.4-.7.2-1.4-.4-1.8M0 0v64h64V0zm32 48c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16m11-20.4c-5.9-3.5-15.3-3.9-21-2.1-.8.2-1.2 1.1-1 1.9s1.1 1.2 1.9 1c4.9-1.5 13.4-1.2 18.6 1.9.7.4 1.6.2 2.1-.5.3-.8.1-1.8-.6-2.2\"});\n\nexport { _socialIcons_spotify as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_squarespace = register(\"squarespace\", {\"color\":\"#1C1C1C\",\"path\":\"M0 0v64h64V0zm39.6 21.1c.6.6.6 1.6 0 2.2s-1.6.6-2.2 0c-1.2-1.2-3.2-1.2-4.4 0l-9.8 9.8c-.6.6-1.6.6-2.2 0s-.6-1.6 0-2.2l9.8-9.8c2.5-2.4 6.4-2.4 8.8 0M17.8 36.4c-2.4-2.4-2.4-6.3 0-8.7l7.5-7.5c1.2-1.2 3.2-1.2 4.4 0L20 29.8c-1.2 1.2-1.2 3.2 0 4.4s3.2 1.2 4.4 0l9.8-9.8c.6-.6 1.6-.6 2.2 0s.6 1.6 0 2.2l-9.8 9.8c-2.5 2.4-6.4 2.4-8.8 0m6.6 6.5c-.6-.6-.6-1.6 0-2.2s1.6-.6 2.2 0c1.2 1.2 3.2 1.2 4.4 0l9.8-9.8c.6-.6 1.6-.6 2.2 0s.6 1.6 0 2.2l-9.8 9.8c-2.5 2.4-6.4 2.4-8.8 0m21.8-6.5-7.5 7.5c-1.2 1.2-3.2 1.2-4.4 0l9.6-9.6c1.2-1.2 1.2-3.2 0-4.4s-3.2-1.2-4.4 0l-9.8 9.8c-.6.6-1.6.6-2.2 0s-.6-1.6 0-2.2l9.8-9.8c2.4-2.4 6.3-2.4 8.7 0 2.6 2.3 2.6 6.3.2 8.7\"});\n\nexport { _socialIcons_squarespace as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_substack = register(\"substack\", {\"color\":\"#ff6719\",\"path\":\"M0 0h64v64H0Zm20.098 18.477v3.195h23.805v-3.195zm0 6.075v3.24h23.805v-3.24zm0 6.075v14.895c.972-.28 1.95-1.042 2.835-1.536l5.94-3.317c.735-.411 1.472-.818 2.205-1.234.239-.136.644-.475.925-.47.278.005.681.346.919.482q1.03.588 2.07 1.157c2.094 1.149 4.162 2.343 6.256 3.492.809.445 1.754 1.221 2.655 1.426V30.627z\"});\n\nexport { _socialIcons_substack as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_t = register(\"t.me\", {\"color\":\"#49a9e9\",\"path\":\"M0 0v64h64V0zm11.887 33.477c3.73-2.055 7.894-3.77 11.785-5.497 6.695-2.824 13.414-5.597 20.203-8.18 1.324-.44 3.695-.87 3.93 1.087-.13 2.773-.653 5.527-1.012 8.281-.914 6.055-1.969 12.094-2.996 18.133-.356 2.008-2.875 3.05-4.488 1.761-3.871-2.613-7.778-5.207-11.598-7.882-1.254-1.274-.094-3.102 1.027-4.012 3.188-3.145 6.575-5.816 9.598-9.121.816-1.973-1.594-.313-2.39.2-4.368 3.007-8.63 6.202-13.235 8.847-2.352 1.297-5.094.187-7.445-.535-2.11-.871-5.2-1.75-3.38-3.082m0 0\"});\n\nexport { _socialIcons_t as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_stackoverflow = register(\"stackoverflow\", {\"color\":\"#ed803d\",\"path\":\"M64 0v64H0V0zM46.145 37.265H42.8v10.038H19.376V37.265H16.03V50.65h30.115zm-6.688 2.46L23.023 36.27l.69-3.287 16.435 3.456zm.964-4.234-15.224-7.09 1.418-3.045 15.224 7.09zm1.895-3.811L29.41 20.932l2.15-2.58 12.906 10.747zm-7.27-16.688 2.695-2.004 10.022 13.476-2.695 2.004zm4.407 28.965H22.722v-3.346h16.73z\"});\n\nexport { _socialIcons_stackoverflow as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_telegram = register(\"telegram\", {\"color\":\"#49a9e9\",\"path\":\"M0 0v64h64V0zm11.887 33.477c3.73-2.055 7.894-3.77 11.785-5.497 6.695-2.824 13.414-5.597 20.203-8.18 1.324-.44 3.695-.87 3.93 1.087-.13 2.773-.653 5.527-1.012 8.281-.914 6.055-1.969 12.094-2.996 18.133-.356 2.008-2.875 3.05-4.488 1.761-3.871-2.613-7.778-5.207-11.598-7.882-1.254-1.274-.094-3.102 1.027-4.012 3.188-3.145 6.575-5.816 9.598-9.121.816-1.973-1.594-.313-2.39.2-4.368 3.007-8.63 6.202-13.235 8.847-2.352 1.297-5.094.187-7.445-.535-2.11-.871-5.2-1.75-3.38-3.082m0 0\"});\n\nexport { _socialIcons_telegram as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_threads = register(\"threads\", {\"color\":\"#000000\",\"path\":\"M0 0v64h64V0zm32.28 15.75h.02c3.718.026 6.827.982 9.241 2.84 2.272 1.75 3.872 4.238 4.753 7.404l-2.763.771c-1.495-5.362-5.278-8.102-11.245-8.145-3.94.03-6.918 1.267-8.855 3.678-1.81 2.259-2.747 5.523-2.783 9.702.036 4.18.971 7.443 2.785 9.702 1.937 2.415 4.918 3.652 8.857 3.678 3.552-.026 5.902-.855 7.855-2.77 2.23-2.184 2.19-4.864 1.476-6.496-.42-.962-1.184-1.76-2.214-2.368-.26 1.83-.843 3.311-1.74 4.43-1.199 1.49-2.898 2.306-5.05 2.423-1.628.088-3.198-.295-4.414-1.085-1.44-.933-2.28-2.355-2.372-4.013-.088-1.612.553-3.094 1.801-4.173 1.193-1.03 2.87-1.636 4.852-1.75 1.46-.081 2.827-.016 4.088.192-.169-1.004-.506-1.803-1.013-2.378-.696-.793-1.77-1.196-3.194-1.206h-.04c-1.144 0-2.697.315-3.685 1.787l-2.379-1.595c1.326-1.97 3.477-3.056 6.064-3.056h.058c4.326.026 6.904 2.676 7.16 7.297q.22.093.435.19c2.018.95 3.494 2.387 4.271 4.159 1.079 2.466 1.18 6.486-2.097 9.694-2.505 2.45-5.543 3.559-9.852 3.588h-.02c-4.85-.033-8.577-1.63-11.083-4.75-2.226-2.78-3.377-6.644-3.416-11.486v-.024c.04-4.846 1.19-8.706 3.42-11.485 2.502-3.123 6.233-4.722 11.079-4.755m1.368 16.669q-.49 0-1.001.03c-2.487.14-4.038 1.28-3.95 2.901.091 1.7 1.967 2.49 3.771 2.393 1.658-.088 3.816-.735 4.18-5.025-.917-.198-1.92-.3-3-.3\"});\n\nexport { _socialIcons_threads as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_tiktok = register(\"tiktok\", {\"color\":\"#000000\",\"path\":\"M0 0v64h64V0zm32.781 16h5.494c-.008 0-.064.526.075 1.34h-.008c.166.98.617 2.381 1.824 3.762a8.857 8.858 0 0 0 1.617 1.375 7 7 0 0 0 .631.367c1.405.7 2.777.913 3.453.84v5.457s-1.93-.081-3.361-.461c-1.996-.534-3.276-1.354-3.276-1.354s-.888-.587-.955-.627v11.274c0 .626-.164 2.194-.662 3.502a10.6 10.6 0 0 1-1.843 3.062s-1.227 1.52-3.381 2.541c-1.943.92-3.652.9-4.162.92 0 0-2.951.119-5.612-1.69l-.013-.013v.014a11.2 11.2 0 0 1-2.381-2.246c-.842-1.074-1.36-2.348-1.492-2.721v-.014c-.212-.634-.657-2.168-.59-3.648.106-2.609.983-4.216 1.215-4.616a10.8 10.8 0 0 1 2.351-2.902 10.2 10.2 0 0 1 7.867-2.3l-.006 5.595a4.6 4.6 0 0 0-1.427-.227c-2.56 0-4.637 2.09-4.637 4.668s2.076 4.666 4.637 4.666a4.6 4.6 0 0 0 2.273-.6 4.67 4.67 0 0 0 2.348-3.704v-.012a.2.2 0 0 0 .004-.047q.005-.054.006-.103c.012-.279.011-.563.011-.848z\"});\n\nexport { _socialIcons_tiktok as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_twitch = register(\"twitch\", {\"color\":\"#6441A5\",\"path\":\"M0 0v64h64V0zm47 35.8-7.6 7.6h-5.7l-3.8 3.8H26v-3.8h-7V23.1l1.9-5.1H47zm-17.8 7L33 39h7l4.5-4.5v-14h-21V39h5.7zm8.3-17.2H40v7.6h-2.5zm-7 0H33v7.6h-2.5z\"});\n\nexport { _socialIcons_twitch as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_tumblr = register(\"tumblr\", {\"color\":\"#2c4762\",\"path\":\"M0 0v64h64V0zm35.4 47c-6.5.1-9-4.7-9-8v-9.8h-3v-3.9c4.6-1.6 5.6-5.7 5.9-8.1 0-.2.1-.2.2-.2h4.4v7.6h6v4.5h-6v9.3c0 1.3.5 3 2.9 3 .8 0 1.9-.3 2.4-.5l1.4 4.3c-.5.8-3 1.8-5.2 1.8\"});\n\nexport { _socialIcons_tumblr as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_twitter = register(\"twitter\", {\"color\":\"#00aced\",\"path\":\"M0 0v64h64V0zm44.7 25.5v.8C44.7 35 38.1 45 26.1 45c-3.7 0-7.2-1.1-10.1-2.9.5.1 1 .1 1.6.1 3.1 0 5.9-1 8.2-2.8-2.9-.1-5.3-2-6.1-4.6.4.1.8.1 1.2.1.6 0 1.2-.1 1.7-.2-3-.6-5.3-3.3-5.3-6.4v-.1c.9.5 1.9.8 3 .8-1.8-1.2-2.9-3.2-2.9-5.5q0-1.8.9-3.3c3.2 4 8.1 6.6 13.5 6.9-.1-.5-.2-1-.2-1.5 0-3.6 2.9-6.6 6.6-6.6 1.9 0 3.6.8 4.8 2.1 1.5-.3 2.9-.8 4.2-1.6-.5 1.5-1.5 2.8-2.9 3.6 1.3-.2 2.6-.5 3.8-1-1 1.3-2.1 2.4-3.4 3.4\"});\n\nexport { _socialIcons_twitter as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_upwork = register(\"upwork\", {\"color\":\"#3da800\",\"path\":\"M0 0h64v64H0Zm24.938 17.111h5.6c1.1 3.8 3.099 8.2 5.599 12.1 1.6-5.5 5.6-9 10.9-9 6.1 0 11.1 5.002 11.1 11.102 0 6.4-5 11.398-11.1 11.398-3 0-5.5-.8-7.7-2.2l-2.4 11.901h-5.7l3.5-16.3c-1.5-2.1-2.9-4.5-4-6.7v2.5c0 6.1-4.9 11-10.9 11s-10.9-4.9-10.9-11V17.211h5.4v14.602c0 2.9 2.4 5.298 5.3 5.298s5.3-2.398 5.3-5.298zm22.199 8.801c-4.1 0-5.4 4-5.8 6.4v.1l-.6 2.2c1.8 1.5 4.1 2.5 6.3 2.5 2.9 0 5.6-2.5 5.7-5.6 0-3.1-2.5-5.6-5.6-5.6\"});\n\nexport { _socialIcons_upwork as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_vevo = register(\"vevo\", {\"color\":\"#ED1A3B\",\"path\":\"M0 0v64h64V0zm34.2 41.9c-1.4 2.1-2.9 3.1-5 3.1 0 0-3 .2-4.1-3.4L20 21h8.1l3 12.3c1.4-2.1 5.1-7.7 5.1-7.7 1.4-1.9 2.2-4.6 6.8-4.6h5z\"});\n\nexport { _socialIcons_vevo as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_vine = register(\"vine\", {\"color\":\"#00BF8F\",\"path\":\"M0 0v64h64V0zm38.4 21.5c-1.2 0-2.1 1.2-2.1 3.4 0 4.6 2.9 7.2 6.7 7.2.7 0 1.4-.1 2.2-.3v3.6c-1.3.3-2.5.4-3.6.4-2.5 5.3-7 9.8-8.6 10.7-1 .5-1.9.6-2.9-.1-1.9-1.1-8.9-6.9-11.2-25H24c1.3 10.9 4.4 16.5 7.9 20.7 1.9-1.9 3.7-4.4 5.2-7.3-3.4-1.7-5.5-5.5-5.5-10s2.6-7.9 7-7.9c4.3 0 6.6 2.7 6.6 7.3 0 1.7-.4 3.7-1 5.2-3.2.6-4.4-1.4-4.4-1.4.2-.8.6-2.1.6-3.3-.1-2.1-.9-3.2-2-3.2\"});\n\nexport { _socialIcons_vine as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_vimeo = register(\"vimeo\", {\"color\":\"#1ab7ea\",\"path\":\"M0 0v64h64V0zm40.9 37c-4.1 5.3-7.5 8-10.4 8-1.7 0-3.2-1.6-4.4-4.8-.8-3-1.6-5.9-2.4-8.9-.9-3.2-1.9-4.8-2.9-4.8-.2 0-1 .5-2.4 1.4L17 26c1.5-1.3 2.9-2.6 4.4-3.9 2-1.7 3.5-2.6 4.4-2.7 2.3-.2 3.8 1.4 4.3 4.8q.9 5.55 1.2 6.9c.7 3.1 1.4 4.6 2.2 4.6.6 0 1.6-1 2.8-3 1.3-2 1.9-3.5 2-4.5.2-1.7-.5-2.6-2-2.6-.7 0-1.5.2-2.2.5 1.5-4.8 4.3-7.2 8.4-7 3.1.1 4.5 2.1 4.4 6 0 2.8-2.1 6.8-6 11.9\"});\n\nexport { _socialIcons_vimeo as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_vk = register(\"vk\", {\"color\":\"#45668e\",\"path\":\"M0 0v64h64V0zm44.94 44.84h-.2c-2.17-.36-3.66-1.92-4.92-3.37-.72-.81-1.82-2.66-3.12-2.47-1.85.3-.93 3.52-1.71 4.9-.62 1.11-3.29.91-5.12.71-5.79-.62-8.75-3.77-11.35-7.14A64 64 0 0 1 11.6 26a10.6 10.6 0 0 1-1.51-4.49c.91-.81 2.47-.51 4.02-.51 1.31 0 3.36-.29 4.32.2.57.26 1.14 1.8 1.57 2.8a37 37 0 0 0 3.31 5.82c.56.81 1.41 2.35 2.41 2.14s1.06-2.63 1.1-4.18c0-1.77 0-4-.5-4.9S25 22 24.15 21.47c.73-1.49 2.72-1.63 5.12-1.63 2 0 4.84-.23 5.62 1.12s.25 3.85.2 5.71c-.06 2.09-.41 4.25 1 5.21 1.09-.12 1.68-1.2 2.31-2A28 28 0 0 0 41.72 24c.44-1 .91-2.65 1.71-3 1.21-.47 3.15-.1 4.92-.1 1.46 0 4.05-.41 4.52.61.39.85-.75 3-1.1 3.57a62 62 0 0 1-4.12 5.61c-.58.78-1.78 2-1.71 3.27.05.94 1 1.67 1.71 2.35a33 33 0 0 1 3.92 4.18c.47.62 1.5 2 1.4 2.76-.31 2.56-6.09.99-8.03 1.59\"});\n\nexport { _socialIcons_vk as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_vsco = register(\"vsco\", {\"color\":\"#83878A\",\"path\":\"M0 0v64h64V0zm18.5 34.5c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5S21 30.6 21 32c-.1 1.4-1.2 2.5-2.5 2.5m6.6 6.6c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5m.1-13.4c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5M32 48c-1.4 0-2.5-1.1-2.5-2.5S30.6 43 32 43s2.5 1.1 2.5 2.5S33.4 48 32 48m-2.5-16.1c0-1.4 1.1-2.5 2.5-2.5s2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5-2.5-1.1-2.5-2.5m2.5-11c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5m6.7 1.8c1.4 0 2.5 1.1 2.5 2.5s-1.1 2.5-2.5 2.5-2.5-1.1-2.5-2.5 1.1-2.5 2.5-2.5m.1 18.5c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5c-.1 1.4-1.2 2.5-2.5 2.5m6.7-6.7c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5S48 30.6 48 32s-1.1 2.5-2.5 2.5\"});\n\nexport { _socialIcons_vsco as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_wechat = register(\"wechat\", {\"color\":\"#00c80f\",\"path\":\"M65.6 65.6H-1.6V-1.6h67.2zM49.738 46.043c2.846-2.061 4.662-5.107 4.662-8.498 0-6.207-6.043-11.244-13.492-11.244-7.453 0-13.494 5.037-13.494 11.244 0 6.213 6.041 11.246 13.494 11.246 1.537 0 3.025-.221 4.402-.615l.395-.059c.262 0 .498.078.717.207l2.955 1.707.26.082a.45.45 0 0 0 .451-.449l-.074-.328-.605-2.271-.047-.287a.9.9 0 0 1 .376-.735M25.793 13.887C16.85 13.887 9.6 19.93 9.6 27.383c0 4.066 2.182 7.723 5.596 10.197.275.195.453.518.453.879l-.055.344-.732 2.725-.086.393c0 .301.24.541.539.541l.311-.1 3.545-2.049c.27-.152.551-.248.861-.248l.475.068a19 19 0 0 0 5.287.742l.891-.021a10.3 10.3 0 0 1-.543-3.309c0-6.793 6.611-12.305 14.768-12.305l.879.021c-1.225-6.443-7.918-11.374-15.996-11.374m10.615 21.859a1.798 1.798 0 1 1-.001-3.6 1.798 1.798 0 0 1 .001 3.6m8.996 0a1.798 1.798 0 1 1-.001-3.6 1.798 1.798 0 0 1 .001 3.6M20.395 25.221a2.16 2.16 0 1 1 .002-4.318 2.16 2.16 0 0 1-.002 4.318m10.796 0c-1.193 0-2.158-.965-2.158-2.158s.965-2.158 2.158-2.158 2.158.965 2.158 2.158-.964 2.158-2.158 2.158\"});\n\nexport { _socialIcons_wechat as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_x = register(\"x\", {\"color\":\"#000000\",\"path\":\"M0 0v64h64V0zm16 17.537h10.125l6.992 9.242 8.084-9.242h4.908L35.39 29.79 48 46.463h-9.875l-7.734-10.111-8.85 10.11h-4.908l11.465-13.105zm5.73 2.783 17.75 23.205h2.72L24.647 20.32z\"});\n\nexport { _socialIcons_x as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_whatsapp = register(\"whatsapp\", {\"color\":\"#25D366\",\"path\":\"M0 0v64h64V0zm48 31.59c0 8.605-7.031 15.586-15.71 15.586-2.755 0-5.34-.703-7.595-1.942L16 48l2.836-8.363a15.43 15.43 0 0 1-2.254-8.047c0-8.61 7.031-15.59 15.707-15.59C40.97 16 48 22.98 48 31.59M32.29 18.484c-7.282 0-13.208 5.88-13.208 13.106 0 2.867.938 5.52 2.516 7.68l-1.649 4.867 5.074-1.61a13.2 13.2 0 0 0 7.27 2.164c7.281 0 13.207-5.875 13.207-13.101s-5.926-13.106-13.21-13.106m7.933 16.696c-.098-.16-.352-.258-.739-.45-.382-.187-2.277-1.113-2.629-1.242-.355-.125-.613-.191-.867.192-.258.383-.996 1.242-1.218 1.5-.227.254-.45.285-.836.093-.387-.191-1.625-.593-3.098-1.894-1.145-1.012-1.918-2.262-2.14-2.645-.223-.382-.024-.59.167-.78.176-.173.387-.446.578-.669.196-.223.258-.383.387-.637.129-.257.063-.48-.035-.671-.094-.192-.867-2.07-1.188-2.836s-.64-.637-.863-.637c-.226 0-.484-.031-.738-.031a1.4 1.4 0 0 0-1.027.476c-.356.383-1.348 1.309-1.348 3.188s1.379 3.695 1.57 3.949c.196.258 2.664 4.238 6.578 5.77 3.914 1.53 3.914 1.019 4.621.956.707-.066 2.278-.925 2.602-1.816.32-.894.32-1.66.223-1.816m0 0\"});\n\nexport { _socialIcons_whatsapp as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_xiaohongshu = register(\"xiaohongshu\", {\"color\":\"#ff2741\",\"path\":\"M8.494-.006h47.784c4.552 0 8.596 3.953 8.715 8.5V56.28a8.91 8.91 90 0 1-8.717 8.702H8.509A8.92 8.92 90 0 1 .004 56.26V8.514C.114 4.038 4.018.12 8.494-.006m4.247 23.213c-.033 5.045-.016 10.092-.041 15.138a.533.533 90 0 1-.54.66c-.607.036-1.217.015-1.826.02a61 61 0 0 0 1.307 2.978c1.148-.038 2.458.201 3.438-.55.88-.656 1.162-1.82 1.145-2.87 0-5.125 0-10.253-.023-15.378a263 263 0 0 0-3.46.002m14.236-.228q-1.29 2.963-2.63 5.9c-.254.586-.56 1.363-.028 1.893.683.62 1.686.381 2.524.437-.581 1.467-1.346 2.861-1.836 4.364-.271.741.407 1.495 1.148 1.503 1.343.091 2.69 0 4.036.035.44-.982.881-1.962 1.313-2.95-.785 0-1.577.056-2.348-.099.835-2.096 1.825-4.125 2.71-6.196-1.083-.127-2.31.226-3.3-.196.483-1.625 1.361-3.115 1.98-4.696-1.192-.005-2.38-.013-3.568.005zm18.469.013v1.322h-2.33v3.536c.779 0 1.556 0 2.332.016q.03 1.523 0 3.066c-1.167.023-2.338 0-3.506.018a149 149 0 0 0 0 3.529c1.17.013 2.344 0 3.514 0v7.512h3.516v-7.507c1.711 0 3.42-.025 5.13 0 .602-.05 1.29.37 1.27 1.033a28 28 90 0 1 0 2.813.574.574 90 0 1-.538.607c-.978.07-1.958 0-2.938.033.432 1.015.85 2.03 1.34 3.033 1.613-.083 3.583.323 4.812-1.015 1.167-1.082.817-2.793.865-4.204-.073-1.485.29-3.163-.632-4.463-.784-1.102-2.198-1.401-3.473-1.424-.076-1.777.348-3.856-.96-5.3-1.218-1.367-3.18-1.372-4.866-1.306v-1.32c-1.193.013-2.366.015-3.536.02zM32.9 24.317v3.534h2.206v10.596c-1.053.018-2.11 0-3.163.013a315 315 0 0 0-1.61 3.528c3.93.016 7.87 0 11.79 0V38.46c-1.13 0-2.262 0-3.392-.013V27.843h2.214v-3.536c-2.676.005-5.36 0-8.045.01m23.19.325c-.985.746-.662 2.112-.705 3.175.657 0 1.317.036 1.975-.022 1.056-.097 1.85-1.328 1.426-2.323-.332-1.092-1.807-1.567-2.696-.83M6.86 27.848c-.178 2.315-.358 4.628-.526 6.943a5.6 5.6 90 0 1-.335 1.539 156 156 0 0 0 1.823 4.061c1.421-1.901 1.95-4.298 2.097-6.625.124-1.98.345-3.958.416-5.94-1.165.04-2.323.012-3.476.022m11.71 0 .508 6.44c.185 2.153.741 4.347 2.056 6.093a172 172 0 0 0 1.82-4.062 5.5 5.5 90 0 1-.355-1.546c-.167-2.307-.35-4.615-.528-6.923q-1.757-.01-3.508-.002zm4.357 13.884c1.797.53 3.7.167 5.546.266a295 295 0 0 0 1.612-3.536c-1.845-.071-3.724.193-5.534-.272q-.83 1.765-1.632 3.542zM48.94 27.86c.762.109 1.777-.31 2.359.304.096.927.025 1.859.035 2.793h-2.37q-.024-1.549-.024-3.097\"});\n\nexport { _socialIcons_xiaohongshu as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_xing = register(\"xing\", {\"color\":\"#0698A0\",\"path\":\"M1.008 0C.45 0 0 .45 0 1.01v62.11c0 .56.45 1.01 1.008 1.01h62.02c.56 0 1.009-.45 1.009-1.01V1.01c0-.56-.45-1.01-1.009-1.01ZM41.72 16.032h5.482c.327 0 .585.106.723.296.143.197.139.459-.012.714L35.898 35.145a.025.025 0 0 0 0 .032l7.65 11.91c.152.257.156.517.012.715-.138.19-.394.295-.721.295h-5.42c-.83 0-1.247-.47-1.516-.88l-7.71-12.056c.386-.58 12.074-18.248 12.074-18.248.291-.446.642-.88 1.452-.88m-22.794 6.334h5.425c.832 0 1.24.456 1.51.867l3.731 5.544-5.857 8.828c-.277.427-.668.893-1.48.893h-5.426c-.326 0-.571-.125-.71-.315-.142-.198-.15-.453 0-.709l5.766-8.672c.006-.01.006-.015 0-.025l-3.668-5.413c-.152-.258-.175-.513-.032-.71.138-.192.414-.288.74-.288\"});\n\nexport { _socialIcons_xing as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_yandex = register(\"yandex\", {\"color\":\"#fc3f1d\",\"path\":\"M0 0v64h64V0Zm18.656 16h5.91l7.248 15.793c2.124 4.604 3.05 6.998 3.05 12.293V48H29.46v-3.223c0-4.374-.507-6.539-2.262-10.314zm21.008 0h5.68L38.51 31.47h-5.586z\"});\n\nexport { _socialIcons_yandex as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_yelp = register(\"yelp\", {\"color\":\"#B90C04\",\"path\":\"M0 0v64h64V0zm22.4 37.9q-.6 0-.9-.6c-.1-.3-.2-.7-.3-1.3-.2-1.7 0-4.2.5-5 .2-.4.6-.6 1-.6.3 0 .5.1 5.5 2.1l1.5.6c.5.2.9.7.8 1.4 0 .6-.4 1.1-.9 1.2l-2.1.7c-4.7 1.5-4.8 1.5-5.1 1.5M33 41c0 4.9 0 5-.1 5.3-.1.4-.4.6-.9.7-1.2.2-5.1-1.2-6-2.2q-.3-.3-.3-.6c0-.2 0-.3.1-.4.1-.2.2-.4 3.7-4.5l1-1.2c.3-.4 1-.6 1.5-.4.6.2.9.7.9 1.2.1-.1.1 2.1.1 2.1m-.8-10.2c-.3.1-1 .3-2-1.2 0 0-6.4-10.1-6.5-10.4s0-.7.3-1.1c1-1 6.1-2.4 7.5-2.1.4.1.7.4.9.8.1.4.7 9.8.8 11.9 0 1.8-.8 2-1 2.1m3.2.5 1.3-1.8c2.8-3.9 3-4.1 3.2-4.2.3-.2.7-.2 1.1 0 1.1.5 3.4 3.9 3.5 5.2 0 .4-.1.8-.5 1-.2.1-.4.2-5.7 1.5-.8.2-1.3.3-1.6.4-.5.1-1.1-.1-1.4-.6-.2-.5-.2-1.1.1-1.5m9.3 8.3c-.2 1.3-2.7 4.5-3.9 5-.4.2-.8.1-1.1-.1-.2-.2-.4-.5-3.2-5l-.8-1.3c-.3-.5-.3-1.1.1-1.6s.9-.6 1.4-.5l2.1.7c4.6 1.5 4.8 1.6 5 1.7.4.3.5.7.4 1.1\"});\n\nexport { _socialIcons_yelp as default };\n","import { register } from '../component.js';\nimport 'react';\n\nvar _socialIcons_youtube = register(\"youtube\", {\"color\":\"#ff3333\",\"path\":\"M0 0v64h64V0zm47 33.1c0 2.4-.3 4.9-.3 4.9s-.3 2.1-1.2 3c-1.1 1.2-2.4 1.2-3 1.3-4.2.2-10.5.3-10.5.3s-7.8-.1-10.2-.3c-.7-.1-2.2-.1-3.3-1.3-.9-.9-1.2-3-1.2-3s-.3-2.4-.3-4.9v-2.3c0-2.4.3-4.9.3-4.9s.3-2.1 1.2-3c1.1-1.2 2.4-1.2 3-1.3 4.2-.3 10.5-.3 10.5-.3s6.3 0 10.5.3c.6.1 1.9.1 3 1.3.9.9 1.2 3 1.2 3s.3 2.4.3 4.9zm-18.1 2.8 8.1-4.2-8.1-4.2z\"});\n\nexport { _socialIcons_youtube as default };\n","import { Button, Modal } from '@shopify/polaris';\nimport React, { useState, useEffect } from 'react';\nimport { logError } from '../../../util/logging';\nimport { getSpently, postSpently } from '../../../util/spentlyRest';\nimport SocialSettings from '../../settings/SocialSettings';\n\nconst EditSocialLinks = ({ label }) => {\n const [open, setOpen] = useState(false);\n const [saving, setSaving] = useState(false);\n const [settings, setSettings] = useState(null);\n const [originalSettings, setOriginalSettings] = useState(null);\n\n useEffect(() => {\n const loadSettings = async () => {\n const severSettings = await getSpently('/api/settings');\n setOriginalSettings(severSettings);\n setSettings(severSettings);\n };\n\n if (!settings) {\n loadSettings();\n }\n }, [settings]);\n\n return (\n {\n setOpen(true);\n }}\n disabled={!settings}\n >\n {label}\n \n }\n open={open}\n onClose={() => setOpen(false)}\n title={label}\n primaryAction={{\n content: 'Save',\n loading: saving,\n onAction: async () => {\n setSaving(true);\n setOriginalSettings(settings);\n await postSpently('/api/settings', settings, () => {\n logError('Could not save Settings.');\n });\n setSaving(false);\n setOpen(false);\n },\n }}\n secondaryActions={[\n {\n content: 'Cancel',\n onAction: () => {\n setSettings(originalSettings);\n setOpen(false);\n },\n },\n ]}\n >\n \n setSettings({ ...settings, ...newVals })}\n />\n \n \n );\n};\n\nexport default EditSocialLinks;\n","import { FormLayout, TextField } from '@shopify/polaris';\nimport React from 'react';\n\nconst NavLink = ({ index, value = { text: '', url: '' }, onChange }) => (\n \n {\n onChange({ ...value, text: newVal });\n }}\n autoComplete=\"off\"\n />\n {\n onChange({ ...value, url: newVal });\n }}\n autoComplete=\"off\"\n />\n \n);\nexport default NavLink;\n","import { Button, FormLayout, Modal } from '@shopify/polaris';\nimport React, {\n useState,\n useContext,\n useEffect,\n useCallback,\n useMemo,\n} from 'react';\nimport { TemplateContext } from '../../../state/TemplateContext';\nimport NavLink from './NavLink';\n\nconst EditLinks = ({ label }) => {\n const [open, setOpen] = useState(false);\n const [saving, setSaving] = useState(false);\n const [{ options }, updateTemplate] = useContext(TemplateContext);\n const defaultNavLinks = useMemo(\n () => [\n {\n key: '0',\n url: '',\n text: 'SHOP',\n },\n {\n key: '1',\n url: '',\n text: 'BLOG',\n },\n {\n key: '2',\n url: '',\n text: 'ABOUT',\n },\n {\n key: '3',\n url: '',\n text: 'FAQ',\n },\n ],\n []\n );\n const [links, setLinks] = useState([]);\n\n useEffect(() => {\n const NavLinks = options.Settings.NavLinks || defaultNavLinks;\n if (open) {\n setLinks([...NavLinks]);\n }\n }, [open, defaultNavLinks, options.Settings.NavLinks]);\n\n const onSave = useCallback(() => {\n setSaving(true);\n updateTemplate('NavLinks', options.Settings.NavLinks, links, 'Settings');\n setSaving(false);\n setOpen(false);\n }, [links, options.Settings.NavLinks, updateTemplate]);\n\n const onChangeLinkValue = useCallback(\n (value, index) =>\n setLinks((prev) => {\n const arr = [...prev];\n arr[index] = value;\n return arr;\n }),\n []\n );\n\n return (\n {\n setOpen(true);\n }}\n >\n {label}\n \n }\n onClose={() => {\n setOpen(false);\n }}\n title=\"Edit Navigation Links\"\n primaryAction={{\n content: 'Save',\n loading: saving,\n onAction: onSave,\n }}\n secondaryActions={[\n {\n content: 'Cancel',\n onAction: () => {\n const NavLinks = options.Settings.NavLinks || defaultNavLinks;\n setLinks([...NavLinks]);\n setOpen(false);\n },\n },\n ]}\n >\n \n \n {links.map((link, index) => (\n onChangeLinkValue(v, index)}\n />\n ))}\n \n \n \n );\n};\n\nexport default EditLinks;\n","import { Button } from '@shopify/polaris';\nimport React, { useCallback, useState, useContext } from 'react';\nimport { getSpently } from '../../../util/spentlyRest';\nimport OptionsContext from '../../../state/OptionsContext';\n\nconst LoadMoreCollections = () => {\n const [, setCols] = useState(null);\n const {\n setDropdown,\n customCursor,\n setCustomCursor,\n smartCursor,\n setSmartCursor,\n disabled,\n setDisable,\n } = useContext(OptionsContext);\n\n const getMoreResults = useCallback(async () => {\n setDisable(true);\n const colRes = await getSpently(\n `/api/Collections?cc=${encodeURIComponent(\n customCursor\n )}&sc=${encodeURIComponent(smartCursor)}`\n );\n\n const fromStore = colRes.collections.map((c) => ({\n label: c.title,\n value: `${c.id}`,\n id: c.id,\n }));\n setDropdown(fromStore);\n setSmartCursor(colRes.smartLink);\n setCustomCursor(colRes.customLink);\n setCols([...fromStore]);\n\n setDisable(false);\n\n if (colRes.smartLink == null && colRes.customLink == null) {\n setDisable(true);\n }\n }, [\n customCursor,\n smartCursor,\n setDropdown,\n setSmartCursor,\n setCustomCursor,\n setDisable,\n ]);\n\n return (\n \n );\n};\n\nexport default LoadMoreCollections;\n","/* eslint-disable max-lines */\n/* eslint-disable react/no-danger, no-console */\n\nimport {\n Select,\n TextField,\n Button,\n FormLayout,\n Checkbox,\n Banner,\n} from '@shopify/polaris';\nimport React from 'react';\nimport FontSelector from '../../framework/ui/forms/FontSelector';\nimport CodeOption from './options/CodeOption';\nimport ImageOption from './options/ImageOption';\nimport MulticolorOption from './options/MulticolorOption';\nimport NumberOption from './options/NumberOption';\nimport PositionOption from './options/PositionOption';\nimport SocialOption from './options/SocialOption';\nimport ProductsOption from './options/ProductsOption';\nimport CollectionsDropdown from '../../framework/ui/shopify/CollectionsDropdown';\nimport EditSocialLinks from './actions/EditSocialLinks';\nimport EditLinks from './actions/EditLinks';\nimport LoadMoreCollections from './actions/LoadMoreCollections';\n\nconst BuilderOption = ({\n option,\n onChange,\n dependsOnValue, // the current value of the option that this option depends on\n values,\n setDisplayOptions,\n isGlobal,\n}) => {\n const label = option.label || option.name;\n let optVal =\n values && values[option.name] !== undefined\n ? values[option.name]\n : option.defaultValue;\n\n if (option.name && option.name.indexOf('.') !== -1) {\n const parts = option.name.split('.');\n if (values[parts[0]]) {\n optVal = values[parts[0]][parts[1]];\n }\n }\n const relatedTo = values && values[option.relatedTo];\n const updateValue = (newVal) => {\n onChange(option.name || option.label, newVal);\n };\n\n // Check if the option can render based on the dependsOnValue condition\n // return true if the option can render, false otherwise\n const checkDependsOnValueCondition = () => {\n // option.dependsOnValue is the value that this option depends on (for dropwdowns)\n if (!dependsOnValue || !option.dependsOnValue) {\n return true;\n }\n\n const dependsOnValueList = option.dependsOnValue.split(',');\n\n return dependsOnValueList.indexOf(dependsOnValue) > -1;\n };\n\n const updateTextValue = (newVal) => {\n const updatedValue = newVal.replaceAll('\\n', '
');\n onChange(option.name || option.label, updatedValue);\n };\n\n // check if the dependsOnValue is the same as the option.dependsOnValue, if not, we do not render the option\n if (!checkDependsOnValueCondition()) {\n return null;\n }\n\n if (\n (option.relatedTo && !relatedTo) ||\n (option.dependsOnBkwd && dependsOnValue) ||\n (option.dependsOn && !dependsOnValue) ||\n (option.name && option.name.indexOf('gbl') === 0 && !isGlobal) ||\n option.name === 'multiColorGblToggle'\n ) {\n return null;\n }\n\n /**\n * Retrieves the collection dropdown value based on the provided option value and updated option.\n * @param {string} optValue - The original option value.\n * @param {Object} updatedOption - The updated option object.\n * @returns {string} - The collection dropdown value.\n */\n const getCollectionDropdownValue = (optValue, updatedOption) => {\n // Use the provided optValue or fallback to the first option's value from the updatedOption\n const optionValue =\n optValue || (updatedOption.options[0] && updatedOption.options[0].value);\n\n // Check if optionValue exists and split it to get the collection dropdown value\n return optionValue?.toString().split('|')[0];\n };\n\n switch (option.type) {\n case 'message':\n return (\n \n
\n \n );\n case 'reco-upgrade':\n return (\n \n
\n \n );\n\n case 'separator':\n return
;\n case 'collection':\n return (\n \n );\n case 'dropdown':\n return (\n {\n const withRemoved = { ...f };\n delete withRemoved.googleFont;\n return withRemoved;\n })}\n onChange={updateValue}\n value={optVal || (option.options[0] && option.options[0].value)}\n />\n );\n case 'code':\n return (\n \n );\n case 'image':\n return (\n \n );\n case 'position':\n return (\n \n );\n case 'number':\n return (\n \n );\n case 'text':\n return ;\n case 'textarea':\n case 'editor':\n return (\n ', '\\n')}\n multiline={4}\n />\n );\n case 'title':\n return (\n \n );\n case 'sectionTitle':\n return

{label}

;\n\n case 'products':\n return (\n \n );\n case 'checkbox':\n return (\n \n );\n case 'social':\n return ;\n case 'checkboxes':\n return (\n \n {option.defaultValue.map((ch) => {\n const optIndex = optVal.findIndex(\n (social) => social.name.toLowerCase() === ch.label.toLowerCase()\n );\n const checked = optIndex === -1 ? false : optVal[optIndex].value;\n\n return (\n {\n optVal[optIndex].value = val;\n updateValue(optVal);\n }}\n />\n );\n })}\n \n );\n case 'multicolor':\n return (\n \n );\n case 'button':\n switch (option.action) {\n case 'editSocialLinks':\n return ;\n case 'editNavLinks':\n return ;\n case 'loadMoreCollections':\n return ;\n default:\n return (\n {\n console.log(\n `Button clicked, we need to implement: ${option.action}`\n );\n }}\n >\n {label}\n \n );\n }\n case 'font':\n return (\n \n );\n default:\n console.log(`Found an option we do not support ${option.type}`, option);\n return null;\n }\n};\n\nexport default BuilderOption;\n","import { Scrollable } from '@shopify/polaris';\nimport React from 'react';\nimport theme from '../../../framework/util/theme';\n\nconst RightSidebar = ({ styleOverrides, children, footer }) => {\n const { colors } = theme();\n const containerStyles = {\n height: 'calc(100vh - 3.5rem)',\n width: '18.5vw',\n margin: '-16px -28px 0 -16px',\n backgroundColor: colors.surface,\n display: 'flex',\n flexDirection: 'column',\n };\n\n return (\n
\n \n {children}\n \n {footer}\n
\n );\n};\n\nexport default RightSidebar;\n","import {\n Stack,\n Heading,\n Button,\n FormLayout,\n Checkbox,\n Layout,\n} from '@shopify/polaris';\nimport { XSmallIcon, SettingsIcon } from '@shopify/polaris-icons';\nimport React, { useContext, useState } from 'react';\nimport PanNavItem from '../../../framework/ui/PanNavItem';\nimport { TemplateContext } from '../../../state/TemplateContext';\n// eslint-disable-next-line import/no-cycle\nimport BuilderOption from '../BuilderOption';\nimport RightSidebar from './RightSidebar';\n\nconst OptionsSideBar = ({\n components,\n currentSelected,\n handleChange,\n displayOptions,\n setDisplayOptions,\n clearSelected,\n currentSelectedComponent,\n}) => {\n const [, updateTemplate] = useContext(TemplateContext);\n\n const [optVal, setOptVal] = useState(\n currentSelected.child\n ? currentSelectedComponent.columns[currentSelected.child]\n : currentSelectedComponent\n );\n let currentComponent =\n components && components.find((c) => c.key === currentSelected.name);\n\n if (currentSelected.child) {\n currentComponent =\n components &&\n // eslint-disable-next-line no-underscore-dangle\n components.find((c) => c.key === optVal.id || c.key === optVal._id);\n }\n\n const optionChange = async (n, evt) => {\n const newOpts = { ...optVal };\n if (currentSelected.child) {\n const cid = currentSelected.child;\n const prop = cid ? `columns.${cid}.${n}` : n;\n const oldVal = currentSelectedComponent.columns[cid][n];\n newOpts[n] = evt;\n setOptVal(newOpts);\n handleChange(prop, oldVal, evt);\n } else {\n const oldVal = currentSelectedComponent[n] || newOpts[n];\n newOpts[n] = evt;\n setOptVal(newOpts);\n handleChange(n, oldVal, evt);\n }\n };\n\n const any =\n currentComponent && currentComponent.options.some((o) => o.advanced);\n\n let childComponent = null;\n if (currentSelected.child) {\n const childType =\n // eslint-disable-next-line no-underscore-dangle\n currentSelectedComponent.columns[currentSelected.child]._id;\n childComponent = components && components.find((c) => c.key === childType);\n }\n\n return (\n {\n if (currentSelected.child) {\n updateTemplate(\n 'REMOVECHILD',\n null,\n JSON.stringify(\n currentSelectedComponent.columns[currentSelected.child]\n ),\n currentSelected\n );\n } else {\n updateTemplate(\n 'REMOVE',\n JSON.stringify(currentSelectedComponent),\n currentSelected.key\n );\n }\n // setShowAdvanced(false);\n clearSelected();\n },\n }}\n />\n }\n >\n {currentComponent && (\n \n \n
\n \n {currentComponent.name}\n
\n \n {any && (\n \n setDisplayOptions({ ...displayOptions, showAdvanced: e })\n }\n />\n )}\n {currentComponent && currentComponent.global && (\n {\n setDisplayOptions({ ...displayOptions, showGlobal: val });\n optionChange(currentComponent.global, val);\n }}\n />\n )}\n \n
\n \n
\n \n {currentComponent &&\n currentComponent.html &&\n (currentSelected.child\n ? childComponent.options\n : currentComponent.options\n ).map(\n (o) =>\n (!o.advanced || displayOptions.showAdvanced) && (\n \n )\n )}\n \n
\n
\n
\n )}\n \n );\n};\n\nexport default OptionsSideBar;\n","import React from 'react';\n\nvar SvgThemeEditIcon = function SvgThemeEditIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M7.25 3.5a3.75 3.75 0 0 0-3.75 3.75v5.5a3.75 3.75 0 0 0 3.75 3.75h1a.75.75 0 0 0 0-1.5h-1a2.25 2.25 0 0 1-2.25-2.25v-3.25h5.5v2.75a.75.75 0 0 0 1.5 0v-7.25h.75a2.25 2.25 0 0 1 2.25 2.25v1a.75.75 0 0 0 1.5 0v-1a3.75 3.75 0 0 0-3.75-3.75h-5.5Zm3.25 1.5v3h-5.5v-.75a2.25 2.25 0 0 1 2.25-2.25h3.25Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.03 12.371a.5.5 0 0 0 0-.707l-1.06-1.06a.5.5 0 0 0-.708 0l-.957.957 1.768 1.767.957-.957Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m15.366 14.035-1.768-1.767-2.45 2.449a2 2 0 0 0-.585 1.407l-.002.698a.25.25 0 0 0 .25.25l.698-.002a2 2 0 0 0 1.408-.586l2.449-2.449Z\"\n }));\n};\nSvgThemeEditIcon.displayName = \"ThemeEditIcon\";\n\nexport { SvgThemeEditIcon as S };\n","import { TextStyle, Heading, Stack } from '@shopify/polaris';\nimport { ThemeEditIcon } from '@shopify/polaris-icons';\nimport React from 'react';\nimport RightSidebar from './RightSidebar';\n\nconst TipsSidebar = () => (\n \n \n
\n \n
\n Customize your templates\n \n Select a section or block in the sidebar to start.\n \n
\n
\n);\n\nexport default TipsSidebar;\n","import { Stack } from '@shopify/polaris';\nimport React, { useContext } from 'react';\nimport { TemplateContext } from '../../../state/TemplateContext';\nimport BuilderOption from '../BuilderOption';\n\nconst ButtonSettings = () => {\n const [{ options }, updateTemplate] = useContext(TemplateContext);\n const btnSettings = options.GlobalButton;\n\n const change = (propName, val) => {\n const prop =\n propName === 'ButtonColor' ? `gbl${propName}` : `gblBtn${propName}`;\n updateTemplate(prop, btnSettings[prop], val, 'GlobalButton');\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default ButtonSettings;\n","import { Stack } from '@shopify/polaris';\nimport React, { useContext } from 'react';\nimport { TemplateContext } from '../../../state/TemplateContext';\nimport BuilderOption from '../BuilderOption';\n\nconst DiscountSettings = () => {\n const [{ options }, updateTemplate] = useContext(TemplateContext);\n const disSettings = options.GlobalDiscount || {};\n\n const change = (propName, val) => {\n const prop = `gblDis${propName}`;\n updateTemplate(prop, disSettings[prop], val, 'GlobalDiscount');\n };\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default DiscountSettings;\n","import { Stack } from '@shopify/polaris';\nimport React, { useContext } from 'react';\nimport { TemplateContext } from '../../../state/TemplateContext';\nimport BuilderOption from '../BuilderOption';\n\nconst DividerSettings = () => {\n const [{ options }, updateTemplate] = useContext(TemplateContext);\n const divSettings = options.GlobalDivider;\n\n const change = (propName, val) => {\n const prop = `gblDiv${propName}`;\n updateTemplate(prop, divSettings[prop], val, 'GlobalDivider');\n };\n\n return (\n \n \n \n \n \n \n );\n};\n\nexport default DividerSettings;\n","import { Stack } from '@shopify/polaris';\nimport React, { useContext } from 'react';\nimport { TemplateContext } from '../../../state/TemplateContext';\nimport BuilderOption from '../BuilderOption';\n\nconst EmailSettings = () => {\n const [{ options }, updateTemplate] = useContext(TemplateContext);\n const emailSettings = options.Settings;\n\n const change = (propName, val) => {\n updateTemplate(propName, emailSettings[propName], val, 'Settings');\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default EmailSettings;\n","import { Subheading, Stack } from '@shopify/polaris';\nimport React from 'react';\nimport BuilderOption from '../../BuilderOption';\n\nconst BodyFont = ({ settings, setFontSettings }) => (\n \n BODY FONT\n \n \n \n \n \n \n \n \n);\n\nexport default BodyFont;\n","import { Subheading, Stack } from '@shopify/polaris';\nimport React from 'react';\nimport BuilderOption from '../../BuilderOption';\n\nconst ButtonFont = ({ settings, setFontSettings }) => (\n \n BUTTON FONT\n \n \n \n \n \n \n \n);\n\nexport default ButtonFont;\n","import { Stack, Subheading } from '@shopify/polaris';\nimport React from 'react';\nimport BuilderOption from '../../BuilderOption';\n\nconst HeaderFont = ({ settings, setFontSettings }) => (\n \n HEADER FONT\n \n \n \n \n \n \n \n \n \n);\n\nexport default HeaderFont;\n","import { Stack } from '@shopify/polaris';\nimport React, { useState } from 'react';\nimport { HeaderFont, BodyFont, ButtonFont } from './fonts';\n\nconst FontSettings = ({ values, updateTemplate }) => {\n const [optVal, setOptVal] = useState(values);\n\n const updateFont = async (n, evt) => {\n const newOpts = { ...optVal };\n const oldVal = values[n] || newOpts[n];\n newOpts[n] = evt;\n setOptVal(newOpts);\n updateTemplate(n, oldVal, evt, 'GlobalFont');\n };\n\n return (\n \n \n
\n \n
\n \n
\n
\n );\n};\n\nexport default FontSettings;\n","import { Stack } from '@shopify/polaris';\nimport React, { useContext } from 'react';\nimport { TemplateContext } from '../../../state/TemplateContext';\nimport BuilderOption from '../BuilderOption';\n\nconst RecommendationSettings = () => {\n const [{ options }, updateTemplate] = useContext(TemplateContext);\n const recSettings = options.GlobalRecommendation || {};\n\n const change = (propName, val) => {\n const prop = `gblRecommended${propName}`;\n updateTemplate(prop, recSettings[prop], val, 'GlobalRecommendation');\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default RecommendationSettings;\n","import React, { useState } from 'react';\nimport {\n Heading,\n Stack,\n Button,\n Subheading,\n TextStyle,\n Scrollable,\n Collapsible,\n} from '@shopify/polaris';\nimport { XSmallIcon } from '@shopify/polaris-icons';\nimport {\n ButtonSettings,\n EmailSettings,\n DividerSettings,\n DiscountSettings,\n FontSettings,\n RecommendationSettings,\n} from '../themeSettings';\nimport './sidebars.scss';\n\nconst ThemeSidebar = ({ options, clearSelected, handleChange }) => {\n const [opened, setOpened] = useState(null);\n\n const Section = ({ children }) => (\n setOpened(opened === children ? null : children)}\n >\n \n {children} Styles\n \n \n );\n return (\n
\n \n \n \n Template Settings\n
\n );\n};\n\nexport default ThemeSidebar;\n","/* eslint-disable react/no-danger */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React from 'react';\nimport theme from '../../framework/util/theme';\nimport { buildHtmlForComponent } from '../../util/builder';\nimport { logError } from '../../util/logging';\n\nconst RenderedComponent = ({\n components,\n component,\n selected,\n componentName,\n renderKey,\n componentChange,\n global,\n setId,\n recType,\n}) => {\n let html = '';\n\n const toRender = { ...component, recType };\n if (!component) {\n logError('component is null for', componentName);\n return null;\n }\n // NOTE: uncomment the next line for options to use with the Tester.\n // console.log('building with', JSON.stringify(toRender, null, 4));\n // eslint-disable-next-line no-underscore-dangle\n // if (component._id === 'Referral') {\n // console.log(\n // 'building with',\n // JSON.stringify({ ...toRender, global, setId }, null, 4)\n // );\n // }\n\n try {\n const vals = { ...toRender, global, setId };\n if (vals.preview === undefined) {\n vals.preview = true;\n }\n\n // Added global settings to the group child elements\n if (vals.columns) {\n Object.keys(vals.columns).forEach((key) => {\n vals.columns[key].global = global;\n });\n }\n\n html = buildHtmlForComponent(componentName, vals, components);\n } catch (error) {\n logError('Liquid error ', error);\n html = `Could not parse HTML for component: ${componentName}`;\n }\n\n if (selected) {\n html = `
${html}
`;\n }\n\n return (\n {\n e.stopPropagation();\n e.preventDefault();\n if (renderKey && componentChange) {\n componentChange(renderKey);\n }\n }}\n dangerouslySetInnerHTML={{ __html: html }}\n />\n );\n};\n\nexport default RenderedComponent;\n","import { Stack } from '@shopify/polaris';\nimport React, { useCallback, useContext } from 'react';\nimport { TemplateContext } from '../../../state/TemplateContext';\nimport BuilderOption from '../BuilderOption';\n\nconst NavigationSideBar = ({ setDisplayOptions }) => {\n const [{ options }, updateTemplate] = useContext(TemplateContext);\n const values = options.NavigationBar;\n const change = useCallback(\n (propName, val) => {\n updateTemplate(propName, values[propName], val, 'NavigationBar');\n },\n [updateTemplate, values]\n );\n\n const Option = ({ option }) => (\n \n );\n\n const ColorOption = useCallback(\n ({ option }) =>
\n \n \n);\n\nexport default StyleCollapsible;\n","import { Heading, Stack } from '@shopify/polaris';\nimport React, { useCallback, useContext, useState } from 'react';\nimport { TemplateContext } from '../../../state/TemplateContext';\nimport BuilderOption from '../BuilderOption';\nimport RightSidebar from './RightSidebar';\nimport NavigationSideBar from '../themeSettings/NavigationSideBar';\nimport StyleCollapsible from './StyleCollapsible';\n\nconst HeaderSidebar = ({ setDisplayOptions }) => {\n const [{ options }, updateTemplate] = useContext(TemplateContext);\n const [opened, setOpened] = useState(null);\n const values = options.TemplateHeader;\n\n const change = useCallback(\n (propName, val) => {\n updateTemplate(propName, values[propName], val, 'TemplateHeader');\n },\n [updateTemplate, values]\n );\n\n const Option = ({ option }) => (\n \n );\n\n const ColorOption = useCallback(\n ({ option }) =>
\n );\n\n return (\n \n \n Image sidebar\n \n {errorMessage}\n {images && (\n \n \n \n )}\n {images &&\n images.map((i) => {\n const url = i.imageUrl;\n return (\n {\n updateImage(i.imageUrl);\n }}\n >\n \n \n );\n })}\n \n \n \n );\n};\n\nexport default ImageSidebar;\n","import React, { useContext } from 'react';\nimport { TemplateContext } from '../../state/TemplateContext';\n\nconst MagicPreview = () => {\n const [template] = useContext(TemplateContext);\n\n const PreviewText = () => (\n \n );\n\n const PreviewTextSmall = () => (\n \n );\n\n const PreviewTextTiny = () => (\n \n );\n\n const PreviewHeader = () => (\n \n );\n\n return (\n \n
\n \n \n \n \n \n \n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n );\n};\n\nexport default MagicPreview;\n","import {\n DropZone,\n Heading,\n Modal,\n Spinner,\n Subheading,\n TextContainer,\n TextStyle,\n} from '@shopify/polaris';\nimport React, { useContext, useState } from 'react';\nimport { TemplateContext } from '../../state/TemplateContext';\nimport { logError } from '../../util/logging';\nimport { uploadSpently } from '../../util/spentlyRest';\nimport MagicPreview from './MagicPreview';\nimport MulticolorOption from './options/MulticolorOption';\n\nimport './styles/MagicPreview.scss';\n\nconst MagicModal = () => {\n const [open, setOpen] = useState(\n window.location.search.indexOf('&set=true') >= 0\n );\n const [template, updateTemplate, , undo] = useContext(TemplateContext);\n const options = template && template.options;\n\n const handleDrop = async (_allImages, accepted) => {\n // TODO: to match the functionality of the old site, we upload absolutely everything,\n // that's probably not something we want to do going forward.\n\n if (accepted.length > 0) {\n const res = await uploadSpently('/api/Media', accepted[0], (error) => {\n logError('could not upload file', error);\n });\n updateTemplate(\n 'image',\n options.TemplateHeader.image,\n res.url,\n 'TemplateHeader'\n );\n // setBgImage(accepted[0]);\n }\n };\n\n let currentImg = template && template.options.TemplateHeader.image;\n if (currentImg === '/Content/images/placeholder.png') {\n currentImg = null;\n }\n\n return (\n setOpen(false)}\n title=\"Select your brand colors\"\n primaryAction={{\n content: 'Confirm',\n onAction: () => {\n setOpen(false);\n },\n }}\n secondaryActions={[\n {\n content: 'Skip',\n onAction: () => {\n const toUndo = template.updates.length;\n for (let index = 0; index < toUndo; index += 1) {\n undo();\n }\n setOpen(false);\n },\n },\n ]}\n >\n {!template && (\n \n \n
\n )}\n {template && (\n \n \n These colors will be applied across all notifications within your\n template set. They can also be adjusted within the builder at any\n time.\n \n \n \n Logo\n \n \n {currentImg && (\n \n )}\n {!currentImg && (\n <>\n Add Files\n \n \n Accepts .gif, .jpg, .png\n \n \n \n )}\n
\n }\n />\n \n {\n updateTemplate(\n 'backgroundColor',\n options.Settings.backgroundColor,\n val,\n 'Settings'\n );\n }}\n />\n {\n updateTemplate(\n 'gblHeaderColor',\n options.GlobalFont.gblHeaderColor,\n val,\n 'GlobalFont'\n );\n }}\n />\n {\n updateTemplate(\n 'gblBodyColor',\n options.GlobalFont.gblBodyColor,\n val,\n 'GlobalFont'\n );\n }}\n />\n {\n updateTemplate(\n 'gblButtonColor',\n options.GlobalButton.gblButtonColor,\n val,\n 'GlobalButton'\n );\n }}\n />\n
\n
\n \n
\n
\n \n )}\n \n );\n};\n\nexport default MagicModal;\n","import React from 'react';\n\nconst ModalStyleHack = ({ hideClose }) => {\n const hiddenCss = hideClose\n ? '.Polaris-Modal-CloseButton { display: none; }'\n : '';\n const modalPadding = '.Polaris-Modal-Section { padding: 0 }';\n const buttonFix =\n '.Polaris-Button--primary { background: rgba(0, 71, 98, 1) } ' +\n '.Polaris-Button--primary:hover { background: rgba(97, 97, 97, 1) }';\n const footerOverride =\n '.Polaris-Stack.Polaris-Stack--alignmentCenter { margin-right: 18rem } ' +\n '.Polaris-Modal-Footer { width: 100%; }';\n return (\n \n );\n};\n\nexport default ModalStyleHack;\n","import { Modal, Stack, TextContainer } from '@shopify/polaris';\nimport React from 'react';\nimport ModalStyleHack from '../util/ModalStyleHack';\nimport { Icons } from '../../../util/superGrossIconFile';\n\nconst ErrorModal = (error) => {\n // eslint-disable-next-line no-console\n console.log(error);\n return (\n <>\n \n {\n const store = window.sessionStorage['spently-shop'];\n const shopifyUrl = `https://${store}.myshopify.com/admin`;\n window.location.href = shopifyUrl;\n },\n }}\n secondaryActions={{\n content: 'Reload UpOrder',\n onAction: () => {\n sessionStorage.clear();\n window.location.reload();\n },\n }}\n >\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n Something’s gone wrong.\n \n \n
\n \n

Sorry, it looks like UpOrder has encountered an error.

\n
\n
\n \n
\n
\n {Icons.messageIcon}\n
\n \n

\n If you’re having issues using UpOrder, you can\n reach out to us using the Intercom button in the bottom\n left of your screen or email us at support@uporder.com.\n If you’ve encountered this error before, we\n recommend getting in touch.\n

\n
\n
\n \n
\n \n

To continue working, you can try reloading UpOrder.

\n
\n \n \n \n \n \n \n );\n};\n\nexport default ErrorModal;\n","import Config from '../Config';\n\n// Get the Google Analytics tracking ID from the configuration\nconst trackingId = Config.spently.googleAnalytics.tracking_id;\nconst GoogleAnalyticsEvent = {\n NEW_TEMPLATE_SET: 'new_template_set',\n PUPBLISH: 'publish_template',\n START_TRAIL: 'start_trail',\n};\n\n// Function to send a Google Analytics event\nconst sendGoogleAnalyticsEvent = (eventName, eventDetail) => {\n if (window.gtag) {\n window.gtag('event', eventName, eventDetail);\n }\n};\n\n// Function to insert the data layer update script\nconst insertDataLayerUpdateScript = () => {\n // Create and execute the configuration script\n const configScript = document.createElement('script');\n // get and send store name to google analytics\n const storeName = window.sessionStorage['spently-shop'];\n configScript.innerHTML = `\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', '${trackingId}',{\n 'user_id':'${storeName}'\n });\n `;\n\n document.head.appendChild(configScript);\n};\n\n// Function to insert the Google Analytics script\nconst insertGoogleAnalyticsScript = () => {\n // Create script element\n const script = document.createElement('script');\n script.async = true;\n script.src = `https://www.googletagmanager.com/gtag/js?id=${trackingId}`;\n // push config to datalayer after script loaded\n script.onload = insertDataLayerUpdateScript;\n\n // Append script to head\n document.head.appendChild(script);\n};\n\n// Function to attach the Google Analytics script to the window's onload event\nconst attachGoogleAnalyticsScript = () => {\n if (window.attachEvent) {\n // For older versions of Internet Explorer\n window.attachEvent('onload', insertGoogleAnalyticsScript);\n } else {\n // For modern browsers\n window.addEventListener('load', insertGoogleAnalyticsScript, false);\n }\n};\n\nexport {\n attachGoogleAnalyticsScript,\n sendGoogleAnalyticsEvent,\n GoogleAnalyticsEvent,\n};\n","import Config from '../Config';\nimport {\n getUser,\n getShop,\n getCompanyId,\n isInternalEmail,\n} from '../framework/util/auth';\n\n// get valid customer email from session\nconst getEmailFromSession = () => {\n try {\n const { email } = getUser('spently');\n if (!isInternalEmail(email)) {\n return email;\n }\n\n return '';\n } catch (ex) {\n return '';\n }\n};\n\n// send tracking event to intercom\nexport const sendIntercomEvent = (eventName) => {\n window.Intercom('trackEvent', eventName);\n};\n\nexport const IntercomEvent = {\n // every time user go to template builder page\n VISITED_TEMPLATEBUILDER: 'visited-templatebuilder',\n // every time user go to template publish page\n VISITED_EXPORTALL: 'visited-exportall',\n // every time user click “Copy to Clipboard” button on publish page\n CLICK_COPY: 'click-copy',\n};\n\n// eslint-disable-next-line import/prefer-default-export\nexport const getIntercomSettings = () => {\n const shopName = getShop('spently');\n const companyId = getCompanyId('spently');\n const email = getEmailFromSession();\n const shopifyWebsite = `https://${shopName}.myshopify.com`;\n\n // if email is not from pantastic.com or spentlyhq.com, send email to intercom\n return email\n ? {\n email,\n website: shopifyWebsite,\n app_id: Config.spently.intercom.app_id,\n username: shopName,\n account_type: 'Shopify',\n user_id: companyId,\n }\n : {\n website: shopifyWebsite,\n app_id: Config.spently.intercom.app_id,\n username: shopName,\n account_type: 'Shopify',\n user_id: companyId,\n };\n};\n\n// eslint-disable-next-line\nexport const attachIntercomScript = () => { var w = window; var ic = w.Intercom; if (typeof ic === \"function\") { ic('reattach_activator'); ic('update', w.intercomSettings); } else { var d = document; var i = function () { i.c(arguments); }; i.q = []; i.c = function (args) { i.q.push(args); }; w.Intercom = i; var l = function () { var s = d.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'https://widget.intercom.io/widget/' + Config.spently.intercom.app_id; var x = d.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x); }; if (w.attachEvent) { w.attachEvent('onload', l); } else { w.addEventListener('load', l, false); } } };\n","/* eslint-disable no-underscore-dangle */\n/* eslint-disable max-lines */\nimport React, { useEffect, useState, useContext, useRef } from 'react';\nimport {\n Frame,\n Stack,\n Page,\n Scrollable,\n Loading,\n Toast,\n} from '@shopify/polaris';\nimport { getSpently } from '../util/spentlyRest';\nimport BuilderTopBar from '../widgets/BuilderTopBar';\nimport ComponentTree from '../widgets/builder/ComponentTree';\nimport OptionsSideBar from '../widgets/builder/sidebars/OptionsSidebar';\nimport TipsSidebar from '../widgets/builder/sidebars/TipsSidebar';\nimport ThemeSidebar from '../widgets/builder/sidebars/ThemeSidebar';\nimport RenderedComponent from '../widgets/builder/RenderedComponent';\nimport { TemplateContext } from '../state/TemplateContext';\nimport HeaderSidebar from '../widgets/builder/sidebars/HeaderSidebar';\nimport FooterSidebar from '../widgets/builder/sidebars/FooterSidebar';\nimport SavedModal from '../widgets/builder/SavedModal';\nimport { BaseComponentContext } from '../state/BaseComponentContext';\nimport ImageSidebar from '../widgets/builder/sidebars/ImageSidebar';\nimport MagicModal from '../widgets/builder/MagicModal';\nimport ErrorModal from '../widgets/builder/modals/ErrorModal';\nimport OptionsContext from '../state/OptionsContext';\nimport {\n sendGoogleAnalyticsEvent,\n GoogleAnalyticsEvent,\n} from '../widgets/googleAnalytics';\nimport { sendIntercomEvent, IntercomEvent } from '../widgets/intercom';\n\nconst Builder = () => {\n const [device, setDevice] = useState('desktop');\n const [components] = useContext(BaseComponentContext);\n const [saveActive, setSaveActive] = useState(false);\n const [toastDismissed, setToastDismissed] = useState(false);\n const [currentSelected, setCurrentSelected] = useState({});\n const [dropdown, setDropdown] = useState([]);\n const [customCursor, setCustomCursor] = useState([]);\n const [smartCursor, setSmartCursor] = useState([]);\n const [disabled, setDisable] = useState(false);\n const [template, updateTemplate, setTemplate] = useContext(TemplateContext);\n const [displayOptions, setDisplayOptions] = useState({\n themeVisible: false,\n showAdvanced: false,\n showImages: false,\n showGlobal: false,\n });\n const [errorState, setIsErrorState] = useState({\n isError: false,\n exception: null,\n });\n const query = new URLSearchParams(window.location.search);\n const set = query.get('set') || '';\n const templateId = query.get('template') || query.get('templateId');\n const currentTemplate = useRef();\n\n // new template set, send google analytics event\n if (set === 'true' && template) {\n sendGoogleAnalyticsEvent(GoogleAnalyticsEvent.NEW_TEMPLATE_SET, {});\n }\n\n useEffect(() => {\n // always update currentTemplate when template change\n currentTemplate.current = template;\n\n // make currentSelected and currentTemplate.current consistent to update on template change\n if (\n currentTemplate.current &&\n currentTemplate.current.templateId !== template.templateId\n ) {\n // when template change, reset currentSelected\n setCurrentSelected({});\n\n currentTemplate.current = template;\n }\n }, [template]);\n\n useEffect(() => {\n const loadTemplate = async () => {\n const qs = set ? `setId=${set}` : `afId=${query.get('afId')}`;\n const temp = await getSpently(\n `/api/template?${qs}&templateId=${templateId}`\n );\n\n // send VISITED_TEMPLATEBUILDER event to intercom on builder page template loaded\n sendIntercomEvent(IntercomEvent.VISITED_TEMPLATEBUILDER);\n if (components) {\n setTemplate(temp, components);\n }\n };\n if (!template) {\n loadTemplate();\n }\n });\n const warnUser = (e) => {\n if (template.updates.length > 0) {\n e.preventDefault();\n e.returnValue = '';\n }\n };\n useEffect(() => {\n window.addEventListener('beforeunload', warnUser);\n return () => {\n window.removeEventListener('beforeunload', warnUser);\n };\n });\n const componentChange = (key) => {\n try {\n const parts = key.split('-');\n const currentComponent = components.find((c) => c.key === parts[0]);\n const options = template.components[parts[1]];\n const child =\n !!parts[2] &&\n components.find(\n (c) =>\n c.key ===\n (options.columns[parts[2]].id\n ? options.columns[parts[2]].id\n : options.columns[parts[2]]._id) // some id is store with _id\n );\n let showGlobal = false;\n if (options) {\n showGlobal =\n options && parts[2]\n ? options.columns[parts[2]][child.global]\n : options[currentComponent.global];\n }\n setDisplayOptions({\n themeVisible: false,\n showAdvanced: false,\n showImages: false,\n showGlobal,\n });\n setCurrentSelected({ name: parts[0], key: parts[1], child: parts[2] });\n setTimeout(\n () => document.getElementById('selected-component').scrollIntoView(),\n 100\n );\n } catch (error) {\n setIsErrorState({ isError: true, error });\n }\n };\n\n const styleSettings =\n template && template.options && template.options.Settings\n ? template.options.Settings\n : {};\n const containerStyle = {\n width: device === 'mobile' ? 320 : styleSettings.width,\n margin: '0 auto',\n marginBottom: `${styleSettings.paddingBottom}px`,\n padding: `${styleSettings.paddingVert}px ${styleSettings.paddingHoriz}px`,\n backgroundColor: styleSettings.emailColor,\n };\n\n const currentComponent =\n components && components.find((c) => c.key === currentSelected.name);\n const handleOptionChange = (name, oldVal, newVal, overrideKey) => {\n updateTemplate(name, oldVal, newVal, overrideKey || currentSelected.key);\n };\n\n const renderSidebar = () => {\n try {\n if (device === 'wide') {\n return null;\n }\n if (displayOptions.showImages) {\n return ;\n }\n if (displayOptions.themeVisible) {\n return (\n \n setDisplayOptions({ ...displayOptions, themeVisible: false })\n }\n handleChange={handleOptionChange}\n options={template.options}\n />\n );\n }\n if (currentSelected && currentSelected.name === 'Header') {\n return ;\n }\n if (currentSelected && currentSelected.name === 'Footer') {\n return ;\n }\n\n if (currentComponent && currentTemplate.current) {\n return (\n \n {\n setCurrentSelected({});\n setDisplayOptions({ ...displayOptions, themeVisible: false });\n }}\n handleChange={handleOptionChange}\n currentSelected={currentSelected}\n currentSelectedComponent={\n currentTemplate.current.components[currentSelected.key]\n }\n />\n \n );\n }\n return ;\n } catch (error) {\n setIsErrorState({ isError: true, error });\n return null;\n }\n };\n const renderTopBar = () => {\n try {\n return (\n setSaveActive(true)}\n setDevice={setDevice}\n copmonents={components}\n type={template ? template.templateId : null}\n />\n );\n } catch (error) {\n setIsErrorState({ isError: true, error });\n return null;\n }\n };\n\n if (errorState.isError) {\n return ;\n }\n return (\n
\n \n {(!template || !components) && }\n \n \n {device !== 'wide' && (\n {\n setDisplayOptions({\n ...displayOptions,\n themeVisible: true,\n });\n setCurrentSelected({});\n }}\n setDisplayOptions={setDisplayOptions}\n />\n )}\n \n {template && components && (\n \n
\n ({\n label: data.text,\n value: data.url,\n }))\n : [\n { key: '0', url: '', label: 'SHOP' },\n { key: '1', url: '', label: 'BLOG' },\n { key: '2', url: '', label: 'ABOUT' },\n { key: '3', url: '', label: 'FAQ' },\n ],\n ...template.options.TemplateHeader,\n }}\n global={template.options}\n components={components}\n selected={currentSelected.name === 'Header'}\n />\n {template.components.map((c, index) => {\n // eslint-disable-next-line no-underscore-dangle\n const key = `${c._id || c.id}-${index}`;\n const selected = `${index}` === currentSelected.key;\n return (\n \n );\n })}\n \n
\n \n )}\n
\n {renderSidebar()}\n
\n
\n\n {query.get('upgraded') && !toastDismissed && (\n setToastDismissed(true)}\n />\n )}\n \n \n {set && }\n
\n );\n};\nexport default Builder;\n","import React from 'react';\n\nvar SvgNoteAddIcon = function SvgNoteAddIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.5 6.25c0-1.519 1.231-2.75 2.75-2.75h7.5c1.519 0 2.75 1.231 2.75 2.75v4.25c0 .414-.336.75-.75.75s-.75-.336-.75-.75v-4.25c0-.69-.56-1.25-1.25-1.25h-7.5c-.69 0-1.25.56-1.25 1.25v7.5c0 .69.56 1.25 1.25 1.25h4.25c.414 0 .75.336.75.75s-.336.75-.75.75h-4.25c-1.519 0-2.75-1.231-2.75-2.75v-7.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 12.25c.414 0 .75.336.75.75v1.25h1.25c.414 0 .75.336.75.75s-.336.75-.75.75h-1.25v1.25c0 .414-.336.75-.75.75s-.75-.336-.75-.75v-1.25h-1.25c-.414 0-.75-.336-.75-.75s.336-.75.75-.75h1.25v-1.25c0-.414.336-.75.75-.75Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.55 7.25c0-.387.313-.7.7-.7h5.5c.387 0 .7.313.7.7 0 .387-.313.7-.7.7h-5.5c-.387 0-.7-.313-.7-.7Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.25 9.05c-.387 0-.7.313-.7.7 0 .387.313.7.7.7h2.25c.387 0 .7-.313.7-.7 0-.387-.313-.7-.7-.7h-2.25Z\"\n }));\n};\nSvgNoteAddIcon.displayName = \"NoteAddIcon\";\n\nexport { SvgNoteAddIcon as S };\n","import React from 'react';\n\nvar SvgStarFilledIcon = function SvgStarFilledIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.128 4.123c-.453-.95-1.803-.95-2.256 0l-1.39 2.912-3.199.421c-1.042.138-1.46 1.422-.697 2.146l2.34 2.222-.587 3.172c-.192 1.034.901 1.828 1.825 1.327l2.836-1.54 2.836 1.54c.924.501 2.017-.293 1.825-1.327l-.587-3.172 2.34-2.222c.762-.724.345-2.008-.697-2.146l-3.2-.421-1.389-2.912Z\"\n }));\n};\nSvgStarFilledIcon.displayName = \"StarFilledIcon\";\n\nexport { SvgStarFilledIcon as S };\n","import React from 'react';\n\nvar SvgLockIcon = function SvgLockIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.75 13.05a1.5 1.5 0 1 0-1.5 0v.45a.75.75 0 0 0 1.5 0v-.45Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M6.25 7.095v-.345a3.75 3.75 0 1 1 7.5 0v.345a3.001 3.001 0 0 1 2.25 2.905v4a3 3 0 0 1-3 3h-6a3 3 0 0 1-3-3v-4a3 3 0 0 1 2.25-2.905Zm1.5-.345a2.25 2.25 0 0 1 4.5 0v.25h-4.5v-.25Zm-2.25 3.25a1.5 1.5 0 0 1 1.5-1.5h6a1.5 1.5 0 0 1 1.5 1.5v4a1.5 1.5 0 0 1-1.5 1.5h-6a1.5 1.5 0 0 1-1.5-1.5v-4Z\"\n }));\n};\nSvgLockIcon.displayName = \"LockIcon\";\n\nexport { SvgLockIcon as S };\n","import React, { useState } from 'react';\nimport { TopBar } from '@shopify/polaris';\nimport {\n StarFilledIcon,\n ExitIcon,\n QuestionCircleIcon,\n NoteAddIcon,\n LockIcon,\n} from '@shopify/polaris-icons';\nimport { getUser, logout } from '../framework/util/auth';\nimport ErrorModal from '../widgets/builder/modals/ErrorModal';\n\nconst UserMenu = () => {\n const [userMenuOpen, setUserMenuOpen] = useState(false);\n\n try {\n const user = getUser('spently');\n\n const uName = user ? `${user.first_name} ${user.last_name}` : '';\n return (\n setUserMenuOpen(!userMenuOpen)}\n actions={[\n {\n items: [\n {\n content: 'Logout',\n onAction: logout,\n icon: ExitIcon,\n },\n ],\n },\n {\n items: [\n {\n content: 'Submit feedback',\n icon: NoteAddIcon,\n onAction: () => {\n window.open('https://forms.gle/KSvS6GDQ8vd3FAaC6', '_blank');\n },\n },\n {\n content: 'UpOrder Help Desk',\n icon: QuestionCircleIcon,\n url: 'https://help.uporder.com',\n },\n {\n content: 'Leave a review',\n icon: StarFilledIcon,\n url: 'https://apps.shopify.com/uporder#reviews',\n },\n {\n content: 'Privacy policy',\n icon: LockIcon,\n onAction: () => {\n window.open('https://uporder.com/privacy-policy', '_blank');\n },\n },\n ],\n },\n ]}\n />\n );\n } catch (e) {\n return ;\n }\n};\n\nexport default UserMenu;\n","import React from 'react';\n\nvar SvgHomeIcon = function SvgHomeIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M8.344 3.692a2.25 2.25 0 0 1 3.312 0l3.854 4.19a3.75 3.75 0 0 1 .99 2.538v3.33a2.75 2.75 0 0 1-2.75 2.75h-1.75a1.5 1.5 0 0 1-1.5-1.5v-2h-1v2a1.5 1.5 0 0 1-1.5 1.5h-1.75a2.75 2.75 0 0 1-2.75-2.75v-3.33c0-.94.353-1.847.99-2.539l3.854-4.189Zm2.208 1.016a.75.75 0 0 0-1.104 0l-3.854 4.189a2.25 2.25 0 0 0-.594 1.523v3.33c0 .69.56 1.25 1.25 1.25h1.75v-2a1.5 1.5 0 0 1 1.5-1.5h1a1.5 1.5 0 0 1 1.5 1.5v2h1.75c.69 0 1.25-.56 1.25-1.25v-3.33a2.25 2.25 0 0 0-.594-1.523l-3.854-4.19Z\"\n }));\n};\nSvgHomeIcon.displayName = \"HomeIcon\";\n\nexport { SvgHomeIcon as S };\n","import React from 'react';\n\nvar SvgNotificationIcon = function SvgNotificationIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"m7.252 14.424-2.446-.281c-1.855-.213-2.38-2.659-.778-3.616l.065-.038a2.887 2.887 0 0 0 1.407-2.48v-.509a4.5 4.5 0 0 1 9 0v.51c0 1.016.535 1.958 1.408 2.479l.065.038c1.602.957 1.076 3.403-.778 3.616l-2.543.292v.365a2.7 2.7 0 0 1-5.4 0v-.376Zm3.9.076h-2.4v.3a1.2 1.2 0 0 0 2.4 0v-.3Zm-3.152-1.5h4l3.024-.348a.452.452 0 0 0 .18-.837l-.065-.038a4.414 4.414 0 0 1-.747-.562 4.387 4.387 0 0 1-1.392-3.205v-.51a3 3 0 0 0-6 0v.51a4.387 4.387 0 0 1-2.138 3.767l-.065.038a.452.452 0 0 0 .18.838l3.023.347Z\"\n }));\n};\nSvgNotificationIcon.displayName = \"NotificationIcon\";\n\nexport { SvgNotificationIcon as S };\n","import React from 'react';\n\nvar SvgListBulletedFilledIcon = function SvgListBulletedFilledIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 6.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 11.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.5 15a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 4a1 1 0 0 0 0 2h8.5a1 1 0 1 0 0-2h-8.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.5 10a1 1 0 0 1 1-1h8.5a1 1 0 1 1 0 2h-8.5a1 1 0 0 1-1-1Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 14a1 1 0 1 0 0 2h8.5a1 1 0 1 0 0-2h-8.5Z\"\n }));\n};\nSvgListBulletedFilledIcon.displayName = \"ListBulletedFilledIcon\";\n\nexport { SvgListBulletedFilledIcon as S };\n","import React from 'react';\n\nvar SvgStatusIcon = function SvgStatusIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.25 4.55a5.501 5.501 0 1 0 6.25 5.45.75.75 0 0 1 1.5 0 7 7 0 1 1-7-7 .75.75 0 0 1 .75.75v4.95a1.5 1.5 0 1 1-1.5 0v-1.346a2.751 2.751 0 1 0 3.5 2.646.75.75 0 0 1 1.5 0 4.25 4.25 0 1 1-5-4.184v-1.265Z\"\n }));\n};\nSvgStatusIcon.displayName = \"StatusIcon\";\n\nexport { SvgStatusIcon as S };\n","import React from 'react';\nimport {\n HomeIcon,\n NotificationIcon,\n SettingsIcon,\n StatusIcon,\n ListBulletedFilledIcon,\n} from '@shopify/polaris-icons';\nimport { Navigation } from '@shopify/polaris';\nimport { useLocation } from 'react-router-dom';\n\nconst Nav = () => {\n const location = useLocation();\n if (location.pathname === '/Builder') {\n return null;\n }\n const menuList = [\n {\n url: '/',\n exactMatch: true,\n label: 'Home',\n icon: HomeIcon,\n subNavigationItems: [\n {\n url: '/',\n exactMatch: true,\n disabled: false,\n icon: null,\n label: 'Analytics',\n },\n {\n url: '/Reports',\n label: 'Reports',\n },\n ],\n },\n {\n url: '/Notifications',\n label: 'Notification Templates',\n icon: NotificationIcon,\n },\n {\n url: '/Features',\n label: 'Feature Management',\n icon: ListBulletedFilledIcon,\n },\n {\n url: '/CompanySettings',\n label: 'Settings',\n icon: SettingsIcon,\n },\n {\n url: '/Usage',\n label: 'Usage & Plans',\n icon: StatusIcon,\n },\n ];\n\n return (\n \n \n \n );\n};\n\nexport default Nav;\n","var styles = {\n \"EmptyState\": \"Polaris-EmptyState\",\n \"Section\": \"Polaris-EmptyState__Section\",\n \"Details\": \"Polaris-EmptyState__Details\",\n \"Image\": \"Polaris-EmptyState__Image\",\n \"ImageContainer\": \"Polaris-EmptyState__ImageContainer\",\n \"DetailsContainer\": \"Polaris-EmptyState__DetailsContainer\",\n \"withinContentContainer\": \"Polaris-EmptyState--withinContentContainer\",\n \"Content\": \"Polaris-EmptyState__Content\",\n \"imageContained\": \"Polaris-EmptyState--imageContained\",\n \"fullWidth\": \"Polaris-EmptyState--fullWidth\",\n \"Actions\": \"Polaris-EmptyState__Actions\",\n \"FooterContent\": \"Polaris-EmptyState__FooterContent\"\n};\n\nexport { styles as default };\n","import React, { useContext } from 'react';\nimport { classNames } from '../../utilities/css.js';\nimport { WithinContentContext } from '../../utilities/within-content-context.js';\nimport styles from './EmptyState.scss.js';\nimport { Image } from '../Image/Image.js';\nimport { buttonFrom } from '../Button/utils.js';\nimport { TextContainer } from '../TextContainer/TextContainer.js';\nimport { Stack } from '../Stack/Stack.js';\nimport { DisplayText } from '../DisplayText/DisplayText.js';\n\nfunction EmptyState({\n children,\n heading,\n image,\n largeImage,\n imageContained,\n fullWidth = false,\n action,\n secondaryAction,\n footerContent\n}) {\n const withinContentContainer = useContext(WithinContentContext);\n const className = classNames(styles.EmptyState, fullWidth && styles.fullWidth, imageContained && styles.imageContained, withinContentContainer && styles.withinContentContainer);\n const imageMarkup = largeImage ? /*#__PURE__*/React.createElement(Image, {\n alt: \"\",\n role: \"presentation\",\n className: styles.Image,\n source: largeImage,\n sourceSet: [{\n source: image,\n descriptor: '568w'\n }, {\n source: largeImage,\n descriptor: '1136w'\n }],\n sizes: \"(max-width: 568px) 60vw\"\n }) : /*#__PURE__*/React.createElement(Image, {\n role: \"presentation\",\n alt: \"\",\n className: styles.Image,\n source: image\n });\n const secondaryActionMarkup = secondaryAction ? buttonFrom(secondaryAction, {}) : null;\n const footerContentMarkup = footerContent ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.FooterContent\n }, /*#__PURE__*/React.createElement(TextContainer, null, footerContent)) : null;\n const headingSize = withinContentContainer ? 'small' : 'medium';\n const primaryActionMarkup = action ? buttonFrom(action, {\n primary: true,\n size: 'medium'\n }) : null;\n const headingMarkup = heading ? /*#__PURE__*/React.createElement(DisplayText, {\n size: headingSize\n }, heading) : null;\n const childrenMarkup = children ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Content\n }, children) : null;\n const textContentMarkup = headingMarkup || children ? /*#__PURE__*/React.createElement(TextContainer, null, headingMarkup, childrenMarkup) : null;\n const actionsMarkup = primaryActionMarkup || secondaryActionMarkup ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Actions\n }, /*#__PURE__*/React.createElement(Stack, {\n alignment: \"center\",\n distribution: \"center\",\n spacing: \"tight\"\n }, primaryActionMarkup, secondaryActionMarkup)) : null;\n const detailsMarkup = textContentMarkup || actionsMarkup || footerContentMarkup ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.DetailsContainer\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Details\n }, textContentMarkup, actionsMarkup, footerContentMarkup)) : /*#__PURE__*/React.createElement(\"div\", {\n className: styles.DetailsContainer\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Section\n }, detailsMarkup, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ImageContainer\n }, imageMarkup)));\n}\n\nexport { EmptyState };\n","/*!\n * Chart.js v3.7.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\nconst requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\nfunction throttled(fn, thisArg, updateFn) {\n const updateArgs = updateFn || ((args) => Array.prototype.slice.call(args));\n let ticking = false;\n let args = [];\n return function(...rest) {\n args = updateArgs(rest);\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\nfunction debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\nconst _toLeftRightCenter = (align) => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\nconst _textX = (align, left, right, rtl) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\nfunction noop() {}\nconst uid = (function() {\n let id = 0;\n return function() {\n return id++;\n };\n}());\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\nconst isNumberFinite = (value) => (typeof value === 'number' || value instanceof Number) && isFinite(+value);\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : value / dimension;\nconst toDimension = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\nfunction _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n for (let i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!isObject(source)) {\n continue;\n }\n const keys = Object.keys(source);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n return merge(target, source, {merger: _mergerIf});\n}\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\nconst emptyString = '';\nconst dot = '.';\nfunction indexOfDotOrLength(key, start) {\n const idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n let pos = 0;\n let idx = indexOfDotOrLength(key, pos);\n while (obj && idx > pos) {\n obj = obj[key.substr(pos, idx - pos)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n return obj;\n}\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value) => typeof value !== 'undefined';\nconst isFunction = (value) => typeof value === 'function';\nconst setsEqual = (a, b) => {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\nfunction _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\nfunction _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b) => a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\nfunction _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < (-0.5 * PI)) {\n angle += TAU;\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\nfunction _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nconst atEdge = (t) => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\nconst effects = {\n linear: t => t,\n easeInQuad: t => t * t,\n easeOutQuad: t => -t * (t - 2),\n easeInOutQuad: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n easeInCubic: t => t * t * t,\n easeOutCubic: t => (t -= 1) * t * t + 1,\n easeInOutCubic: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: t => t * t * t * t,\n easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n easeInOutQuart: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: t => t * t * t * t * t,\n easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n easeInOutQuint: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n easeOutSine: t => Math.sin(t * HALF_PI),\n easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: t => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: t => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: t => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: t => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: t => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic(t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack(t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack(t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n easeOutBounce(t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n easeInOutBounce: t => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n};\n\n/*!\n * @kurkle/color v0.1.9\n * https://github.com/kurkle/color#readme\n * (c) 2020 Jukka Kurkela\n * Released under the MIT License\n */\nconst map = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = '0123456789ABCDEF';\nconst h1 = (b) => hex[b & 0xF];\nconst h2 = (b) => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = (b) => (((b & 0xF0) >> 4) === (b & 0xF));\nfunction isShort(v) {\n\treturn eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\n}\nfunction hexParse(str) {\n\tvar len = str.length;\n\tvar ret;\n\tif (str[0] === '#') {\n\t\tif (len === 4 || len === 5) {\n\t\t\tret = {\n\t\t\t\tr: 255 & map[str[1]] * 17,\n\t\t\t\tg: 255 & map[str[2]] * 17,\n\t\t\t\tb: 255 & map[str[3]] * 17,\n\t\t\t\ta: len === 5 ? map[str[4]] * 17 : 255\n\t\t\t};\n\t\t} else if (len === 7 || len === 9) {\n\t\t\tret = {\n\t\t\t\tr: map[str[1]] << 4 | map[str[2]],\n\t\t\t\tg: map[str[3]] << 4 | map[str[4]],\n\t\t\t\tb: map[str[5]] << 4 | map[str[6]],\n\t\t\t\ta: len === 9 ? (map[str[7]] << 4 | map[str[8]]) : 255\n\t\t\t};\n\t\t}\n\t}\n\treturn ret;\n}\nfunction hexString(v) {\n\tvar f = isShort(v) ? h1 : h2;\n\treturn v\n\t\t? '#' + f(v.r) + f(v.g) + f(v.b) + (v.a < 255 ? f(v.a) : '')\n\t\t: v;\n}\nfunction round(v) {\n\treturn v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n\treturn lim(round(v * 2.55), 0, 255);\n}\nfunction n2b(v) {\n\treturn lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n\treturn lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n\treturn lim(round(v * 100), 0, 100);\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n\tconst m = RGB_RE.exec(str);\n\tlet a = 255;\n\tlet r, g, b;\n\tif (!m) {\n\t\treturn;\n\t}\n\tif (m[7] !== r) {\n\t\tconst v = +m[7];\n\t\ta = 255 & (m[8] ? p2b(v) : v * 255);\n\t}\n\tr = +m[1];\n\tg = +m[3];\n\tb = +m[5];\n\tr = 255 & (m[2] ? p2b(r) : r);\n\tg = 255 & (m[4] ? p2b(g) : g);\n\tb = 255 & (m[6] ? p2b(b) : b);\n\treturn {\n\t\tr: r,\n\t\tg: g,\n\t\tb: b,\n\t\ta: a\n\t};\n}\nfunction rgbString(v) {\n\treturn v && (\n\t\tv.a < 255\n\t\t\t? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n\t\t\t: `rgb(${v.r}, ${v.g}, ${v.b})`\n\t);\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n\tconst a = s * Math.min(l, 1 - l);\n\tconst f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n\treturn [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n\tconst f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n\treturn [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n\tconst rgb = hsl2rgbn(h, 1, 0.5);\n\tlet i;\n\tif (w + b > 1) {\n\t\ti = 1 / (w + b);\n\t\tw *= i;\n\t\tb *= i;\n\t}\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] *= 1 - w - b;\n\t\trgb[i] += w;\n\t}\n\treturn rgb;\n}\nfunction rgb2hsl(v) {\n\tconst range = 255;\n\tconst r = v.r / range;\n\tconst g = v.g / range;\n\tconst b = v.b / range;\n\tconst max = Math.max(r, g, b);\n\tconst min = Math.min(r, g, b);\n\tconst l = (max + min) / 2;\n\tlet h, s, d;\n\tif (max !== min) {\n\t\td = max - min;\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\t\th = max === r\n\t\t\t? ((g - b) / d) + (g < b ? 6 : 0)\n\t\t\t: max === g\n\t\t\t\t? (b - r) / d + 2\n\t\t\t\t: (r - g) / d + 4;\n\t\th = h * 60 + 0.5;\n\t}\n\treturn [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n\treturn (\n\t\tArray.isArray(a)\n\t\t\t? f(a[0], a[1], a[2])\n\t\t\t: f(a, b, c)\n\t).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n\treturn calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n\treturn calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n\treturn calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n\treturn (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n\tconst m = HUE_RE.exec(str);\n\tlet a = 255;\n\tlet v;\n\tif (!m) {\n\t\treturn;\n\t}\n\tif (m[5] !== v) {\n\t\ta = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n\t}\n\tconst h = hue(+m[2]);\n\tconst p1 = +m[3] / 100;\n\tconst p2 = +m[4] / 100;\n\tif (m[1] === 'hwb') {\n\t\tv = hwb2rgb(h, p1, p2);\n\t} else if (m[1] === 'hsv') {\n\t\tv = hsv2rgb(h, p1, p2);\n\t} else {\n\t\tv = hsl2rgb(h, p1, p2);\n\t}\n\treturn {\n\t\tr: v[0],\n\t\tg: v[1],\n\t\tb: v[2],\n\t\ta: a\n\t};\n}\nfunction rotate(v, deg) {\n\tvar h = rgb2hsl(v);\n\th[0] = hue(h[0] + deg);\n\th = hsl2rgb(h);\n\tv.r = h[0];\n\tv.g = h[1];\n\tv.b = h[2];\n}\nfunction hslString(v) {\n\tif (!v) {\n\t\treturn;\n\t}\n\tconst a = rgb2hsl(v);\n\tconst h = a[0];\n\tconst s = n2p(a[1]);\n\tconst l = n2p(a[2]);\n\treturn v.a < 255\n\t\t? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n\t\t: `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map$1 = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n\tconst unpacked = {};\n\tconst keys = Object.keys(names);\n\tconst tkeys = Object.keys(map$1);\n\tlet i, j, k, ok, nk;\n\tfor (i = 0; i < keys.length; i++) {\n\t\tok = nk = keys[i];\n\t\tfor (j = 0; j < tkeys.length; j++) {\n\t\t\tk = tkeys[j];\n\t\t\tnk = nk.replace(k, map$1[k]);\n\t\t}\n\t\tk = parseInt(names[ok], 16);\n\t\tunpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n\t}\n\treturn unpacked;\n}\nlet names$1;\nfunction nameParse(str) {\n\tif (!names$1) {\n\t\tnames$1 = unpack();\n\t\tnames$1.transparent = [0, 0, 0, 0];\n\t}\n\tconst a = names$1[str.toLowerCase()];\n\treturn a && {\n\t\tr: a[0],\n\t\tg: a[1],\n\t\tb: a[2],\n\t\ta: a.length === 4 ? a[3] : 255\n\t};\n}\nfunction modHSL(v, i, ratio) {\n\tif (v) {\n\t\tlet tmp = rgb2hsl(v);\n\t\ttmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n\t\ttmp = hsl2rgb(tmp);\n\t\tv.r = tmp[0];\n\t\tv.g = tmp[1];\n\t\tv.b = tmp[2];\n\t}\n}\nfunction clone(v, proto) {\n\treturn v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n\tvar v = {r: 0, g: 0, b: 0, a: 255};\n\tif (Array.isArray(input)) {\n\t\tif (input.length >= 3) {\n\t\t\tv = {r: input[0], g: input[1], b: input[2], a: 255};\n\t\t\tif (input.length > 3) {\n\t\t\t\tv.a = n2b(input[3]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tv = clone(input, {r: 0, g: 0, b: 0, a: 1});\n\t\tv.a = n2b(v.a);\n\t}\n\treturn v;\n}\nfunction functionParse(str) {\n\tif (str.charAt(0) === 'r') {\n\t\treturn rgbParse(str);\n\t}\n\treturn hueParse(str);\n}\nclass Color {\n\tconstructor(input) {\n\t\tif (input instanceof Color) {\n\t\t\treturn input;\n\t\t}\n\t\tconst type = typeof input;\n\t\tlet v;\n\t\tif (type === 'object') {\n\t\t\tv = fromObject(input);\n\t\t} else if (type === 'string') {\n\t\t\tv = hexParse(input) || nameParse(input) || functionParse(input);\n\t\t}\n\t\tthis._rgb = v;\n\t\tthis._valid = !!v;\n\t}\n\tget valid() {\n\t\treturn this._valid;\n\t}\n\tget rgb() {\n\t\tvar v = clone(this._rgb);\n\t\tif (v) {\n\t\t\tv.a = b2n(v.a);\n\t\t}\n\t\treturn v;\n\t}\n\tset rgb(obj) {\n\t\tthis._rgb = fromObject(obj);\n\t}\n\trgbString() {\n\t\treturn this._valid ? rgbString(this._rgb) : this._rgb;\n\t}\n\thexString() {\n\t\treturn this._valid ? hexString(this._rgb) : this._rgb;\n\t}\n\thslString() {\n\t\treturn this._valid ? hslString(this._rgb) : this._rgb;\n\t}\n\tmix(color, weight) {\n\t\tconst me = this;\n\t\tif (color) {\n\t\t\tconst c1 = me.rgb;\n\t\t\tconst c2 = color.rgb;\n\t\t\tlet w2;\n\t\t\tconst p = weight === w2 ? 0.5 : weight;\n\t\t\tconst w = 2 * p - 1;\n\t\t\tconst a = c1.a - c2.a;\n\t\t\tconst w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\t\tw2 = 1 - w1;\n\t\t\tc1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n\t\t\tc1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n\t\t\tc1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n\t\t\tc1.a = p * c1.a + (1 - p) * c2.a;\n\t\t\tme.rgb = c1;\n\t\t}\n\t\treturn me;\n\t}\n\tclone() {\n\t\treturn new Color(this.rgb);\n\t}\n\talpha(a) {\n\t\tthis._rgb.a = n2b(a);\n\t\treturn this;\n\t}\n\tclearer(ratio) {\n\t\tconst rgb = this._rgb;\n\t\trgb.a *= 1 - ratio;\n\t\treturn this;\n\t}\n\tgreyscale() {\n\t\tconst rgb = this._rgb;\n\t\tconst val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n\t\trgb.r = rgb.g = rgb.b = val;\n\t\treturn this;\n\t}\n\topaquer(ratio) {\n\t\tconst rgb = this._rgb;\n\t\trgb.a *= 1 + ratio;\n\t\treturn this;\n\t}\n\tnegate() {\n\t\tconst v = this._rgb;\n\t\tv.r = 255 - v.r;\n\t\tv.g = 255 - v.g;\n\t\tv.b = 255 - v.b;\n\t\treturn this;\n\t}\n\tlighten(ratio) {\n\t\tmodHSL(this._rgb, 2, ratio);\n\t\treturn this;\n\t}\n\tdarken(ratio) {\n\t\tmodHSL(this._rgb, 2, -ratio);\n\t\treturn this;\n\t}\n\tsaturate(ratio) {\n\t\tmodHSL(this._rgb, 1, ratio);\n\t\treturn this;\n\t}\n\tdesaturate(ratio) {\n\t\tmodHSL(this._rgb, 1, -ratio);\n\t\treturn this;\n\t}\n\trotate(deg) {\n\t\trotate(this._rgb, deg);\n\t\treturn this;\n\t}\n}\nfunction index_esm(input) {\n\treturn new Color(input);\n}\n\nconst isPatternOrGradient = (value) => value instanceof CanvasGradient || value instanceof CanvasPattern;\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n constructor(_descriptors) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n}\nvar defaults = new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\nfunction _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\nfunction _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n let type, xOffset, yOffset, size, cornerRadius;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch (style) {\n default:\n ctx.arc(x, y, radius, 0, TAU);\n ctx.closePath();\n break;\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n ctx.rect(x - size, y - size, 2 * size, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'line':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\nfunction renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n ctx.restore();\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction addRoundedRectPath(ctx, rect) {\n const {x, y, w, h, radius} = rect;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nconst FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\nfunction toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\nfunction toTRBL(value) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\nfunction toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\nfunction resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\nfunction _addGrace(minmax, grace, beginAtZero) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {lo, hi};\n}\nconst _lookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] < value);\nconst _rlookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] >= value);\nfunction _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n delete array._chartjs;\n}\nfunction _arrayUnique(items) {\n const set = new Set();\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n if (set.size === ilen) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction _createResolver(scopes, prefixes = [''], rootScopes = scopes, fallback, getTarget = () => scopes[0]) {\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope) => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback),\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get(target, prop) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value;\n delete target._keys;\n return true;\n }\n });\n}\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get(target, prop, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\nfunction _descriptors(proxy, defaults = {scriptable: true, indexable: true}) {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters' &&\n (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n const value = resolve();\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop];\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, value, target, receiver) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n return value;\n }\n return target;\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis) => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01;\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\nfunction monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\nfunction splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element) => window.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\nfunction getCanvasPosition(evt, canvas) {\n const e = evt.native || evt;\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const {offsetX, offsetY} = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\nfunction getRelativePosition(evt, chart) {\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(evt, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect();\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = v => Math.round(v * 10) / 10;\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n height = round1(width / 2);\n }\n return {\n width,\n height\n };\n}\nfunction retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n const canvas = chart.canvas;\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\nconst supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n }\n return passiveSupported;\n}());\nfunction readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\nfunction _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x(x) {\n return x;\n },\n setWidth(w) {\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) {\n return x;\n },\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n let {start, end, loop} = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n return result;\n}\nfunction _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n while (start < count && points[start].skip) {\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while (end > start && points[end % count].skip) {\n end--;\n }\n end %= count;\n return {start, end};\n}\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { _toLeftRightCenter as $, _rlookupByKey as A, getAngleFromPoint as B, toPadding as C, each as D, getMaximumSize as E, _getParentNode as F, readUsedSize as G, HALF_PI as H, throttled as I, supportsEventListenerOptions as J, _isDomSupported as K, log10 as L, _factorize as M, finiteOrDefault as N, callback as O, PI as P, _addGrace as Q, toDegrees as R, _measureText as S, TAU as T, _int16Range as U, _alignPixel as V, clipArea as W, renderText as X, unclipArea as Y, toFont as Z, _arrayUnique as _, resolve as a, _angleDiff as a$, _alignStartEnd as a0, overrides as a1, merge as a2, _capitalize as a3, descriptors as a4, isFunction as a5, _attachContext as a6, _createResolver as a7, _descriptors as a8, mergeIf as a9, restoreTextDirection as aA, noop as aB, distanceBetweenPoints as aC, _setMinAndMaxByKey as aD, niceNum as aE, almostWhole as aF, almostEquals as aG, _decimalPlaces as aH, _longestText as aI, _filterBetween as aJ, _lookup as aK, getHoverColor as aL, clone$1 as aM, _merger as aN, _mergerIf as aO, _deprecated as aP, toFontString as aQ, splineCurve as aR, splineCurveMonotone as aS, getStyle as aT, fontString as aU, toLineHeight as aV, PITAU as aW, INFINITY as aX, RAD_PER_DEG as aY, QUARTER_PI as aZ, TWO_THIRDS_PI as a_, uid as aa, debounce as ab, retinaScale as ac, clearCanvas as ad, setsEqual as ae, _elementsEqual as af, _isClickEvent as ag, _isBetween as ah, _readValueToProps as ai, _updateBezierControlPoints as aj, _computeSegments as ak, _boundSegments as al, _steppedInterpolation as am, _bezierInterpolation as an, _pointInLine as ao, _steppedLineTo as ap, _bezierCurveTo as aq, drawPoint as ar, addRoundedRectPath as as, toTRBL as at, toTRBLCorners as au, _boundSegment as av, _normalizeAngle as aw, getRtlAdapter as ax, overrideTextDirection as ay, _textX as az, isArray as b, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, createContext as h, isObject as i, defined as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, isNumber as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _limitValue as w, _lookupByKey as x, getRelativePosition as y, _isPointInArea as z };\n","/*!\n * Chart.js v3.7.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, d as defaults, i as isObject, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as createContext, j as defined, s as sign, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as isNumber, w as _limitValue, x as _lookupByKey, y as getRelativePosition$1, z as _isPointInArea, A as _rlookupByKey, B as getAngleFromPoint, C as toPadding, D as each, E as getMaximumSize, F as _getParentNode, G as readUsedSize, I as throttled, J as supportsEventListenerOptions, K as _isDomSupported, L as log10, M as _factorize, N as finiteOrDefault, O as callback, Q as _addGrace, R as toDegrees, S as _measureText, U as _int16Range, V as _alignPixel, W as clipArea, X as renderText, Y as unclipArea, Z as toFont, $ as _toLeftRightCenter, a0 as _alignStartEnd, a1 as overrides, a2 as merge, a3 as _capitalize, a4 as descriptors, a5 as isFunction, a6 as _attachContext, a7 as _createResolver, a8 as _descriptors, a9 as mergeIf, aa as uid, ab as debounce, ac as retinaScale, ad as clearCanvas, ae as setsEqual, af as _elementsEqual, ag as _isClickEvent, ah as _isBetween, ai as _readValueToProps, aj as _updateBezierControlPoints, ak as _computeSegments, al as _boundSegments, am as _steppedInterpolation, an as _bezierInterpolation, ao as _pointInLine, ap as _steppedLineTo, aq as _bezierCurveTo, ar as drawPoint, as as addRoundedRectPath, at as toTRBL, au as toTRBLCorners, av as _boundSegment, aw as _normalizeAngle, ax as getRtlAdapter, ay as overrideTextDirection, az as _textX, aA as restoreTextDirection, aB as noop, aC as distanceBetweenPoints, aD as _setMinAndMaxByKey, aE as niceNum, aF as almostWhole, aG as almostEquals, aH as _decimalPlaces, aI as _longestText, aJ as _filterBetween, aK as _lookup } from './chunks/helpers.segment.js';\nexport { d as defaults } from './chunks/helpers.segment.js';\n\nclass Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for (; i >= 0; --i) {\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color(from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || (elapsed < duration));\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n\nconst numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n});\nconst animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n});\ndefaults.describe('animations', {\n _fallback: 'animation',\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0\n },\n }\n }\n});\nclass Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n }\n}\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\nclass DatasetController {\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = () => this.getContext(index, active);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([this.index, ...args]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n const {start, end, reverse, top, bottom} = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\nclass BarController extends DatasetController {\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const metasets = iScale.getMatchingVisibleMetas(this._type);\n const stacked = iScale.options.stacked;\n const ilen = metasets.length;\n const stacks = [];\n let i, item;\n for (i = 0; i < ilen; ++i) {\n item = metasets[i];\n if (!item.controller.options.grouped) {\n continue;\n }\n if (typeof dataIndex !== 'undefined') {\n const val = item.controller.getParsed(dataIndex)[\n item.controller._cachedMeta.vScale.axis\n ];\n if (isNullOrUndef(val) || isNaN(val)) {\n continue;\n }\n }\n if (stacked === false || stacks.indexOf(item.stack) === -1 ||\n\t\t\t\t(stacked === undefined && item.stack === undefined)) {\n stacks.push(item.stack);\n }\n if (item.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1;\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n head = base + size;\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n};\n\nclass BubbleController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\nclass DoughnutController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i) => +data[i];\n if (isObject(data[start])) {\n const {key = 'value'} = this._parsing;\n getter = (i) => +resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n update(mode) {\n const chart = this.chart;\n const {chartArea} = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const {circumference, rotation} = this._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n let startAngle = this._getRotation();\n let i;\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r',\n};\nDoughnutController.descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing',\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(tooltipItem) {\n let dataLabel = tooltipItem.label;\n const value = ': ' + tooltipItem.formattedValue;\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n return dataLabel;\n }\n }\n }\n }\n};\n\nclass LineController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false,\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n};\nfunction getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(\n _lookupByKey(_parsed, iScale.axis, min).lo,\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n _lookupByKey(_parsed, iScale.axis, max).hi + 1,\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max)).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {start, count};\n}\nfunction scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nclass PolarAreaController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - (radiusLength * this.index);\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const dataset = this.getDataset();\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(dataset.data[i]) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const dataset = this.getDataset();\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index) => {\n if (!isNaN(dataset.data[index]) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nclass PieController extends DoughnutController {\n}\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nclass RadarController extends DatasetController {\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const dataset = this.getDataset();\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, dataset.data[i]);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n};\n\nclass ScatterController extends LineController {\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPolarAreaController: PolarAreaController,\nPieController: PieController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\nclass DateAdapter {\n constructor(options) {\n this.options = options || {};\n }\n formats() {\n return abstract();\n }\n parse(value, format) {\n return abstract();\n }\n format(timestamp, format) {\n return abstract();\n }\n add(timestamp, amount, unit) {\n return abstract();\n }\n diff(a, b, unit) {\n return abstract();\n }\n startOf(timestamp, unit, weekday) {\n return abstract();\n }\n endOf(timestamp, unit) {\n return abstract();\n }\n}\nDateAdapter.override = function(members) {\n Object.assign(DateAdapter.prototype, members);\n};\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction getRelativePosition(e, chart) {\n if ('native' in e) {\n return {\n x: e.x,\n y: e.y\n };\n }\n return getRelativePosition$1(e, chart);\n}\nfunction evaluateAllVisibleItems(chart, handler) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n let index, data, element;\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n ({index, data} = metasets[i]);\n for (let j = 0, jlen = data.length; j < jlen; ++j) {\n element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n return {lo: 0, hi: data.length - 1};\n}\nfunction optimizedEvaluateItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\nfunction getIntersectItems(chart, position, axis, useFinalPosition) {\n const items = [];\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n optimizedEvaluateItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const {startAngle, endAngle} = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n const {angle} = getAngleFromPoint(element, {x: position.x, y: position.y});\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({element, datasetIndex, index});\n }\n }\n optimizedEvaluateItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = _isPointInArea(center, chart.chartArea, chart._minPadding);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({element, datasetIndex, index});\n }\n }\n optimizedEvaluateItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition) {\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return [];\n }\n return axis === 'r' && !intersect\n ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition);\n}\nfunction getAxisItems(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const items = [];\n const axis = options.axis;\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateAllVisibleItems(chart, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n intersectsItem = true;\n }\n });\n if (options.intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\nvar Interaction = {\n modes: {\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition)\n : getNearestItems(chart, position, axis, false, useFinalPosition);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n return elements;\n },\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition) :\n getNearestItems(chart, position, axis, false, useFinalPosition);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n return items;\n },\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n return getIntersectItems(chart, position, axis, useFinalPosition);\n },\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition);\n },\n x(chart, e, options, useFinalPosition) {\n return getAxisItems(chart, e, {axis: 'x', intersect: options.intersect}, useFinalPosition);\n },\n y(chart, e, options, useFinalPosition) {\n return getAxisItems(chart, e, {axis: 'y', intersect: options.intersect}, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\ndefaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n chart.boxes.push(item);\n },\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {left: 0, top: 0, right: 0, bottom: 0});\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = value => value === null || value === '';\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition$1(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList) {\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, (args) => {\n const event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\nclass DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n constructor() {\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n tooltipPosition(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n return this;\n }\n const ret = {};\n props.forEach(prop => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\nElement.defaults = {};\nElement.defaultRoutes = undefined;\n\nconst formatters = {\n values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = tickValue / (Math.pow(10, Math.floor(log10(tickValue))));\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\nvar Ticks = {formatters};\n\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash',\n});\ndefaults.describe('scales', {\n _fallback: 'scale',\n});\ndefaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n});\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return (lines * font.lineHeight) + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\nclass Scale extends Element {\n constructor(cfg) {\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {min, max};\n }\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = this.ticks.length;\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [this]);\n }\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const {min, max} = this;\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const optsAtIndex = grid.setContext(this.getContext(i));\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = grid.borderDash || [];\n const borderDashOffset = optsAtIndex.borderDashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n if (isHorizontal) {\n x = pixel;\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = y + textOffset - labelPadding.top;\n let left = x - labelPadding.left;\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor,\n };\n }\n items.push({\n rotation,\n label,\n font,\n color,\n strokeColor,\n strokeWidth,\n textOffset,\n textAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {textAlign, x};\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n drawBorder() {\n const {chart, ctx, options: {grid}} = this;\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n const tickFont = item.font;\n const label = item.label;\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n let y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n each(arg, item => {\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = new Registry();\n\nclass PluginService {\n constructor() {\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\nfunction allPlugins(config) {\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n }\n }\n return plugins;\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, plugins, options, all) {\n const result = [];\n const context = chart.getContext();\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, plugin, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, plugin, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n return config.createResolver(scopes, context, [''], {scriptable: false, indexable: false, allKeys: true});\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const firstIDs = Object.create(null);\n const scales = Object.create(null);\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const {options, type} = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {type},\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).reduce((acc, key) => acc || isFunction(value[key]), false);\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"3.7.1\";\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys) {\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas can be reused.'\n );\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {size: newSize});\n callback(options.onResize, [this, newSize], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {mode});\n this._layers.sort(compare2Level('z', '_idx'));\n const {_active, _lastEvent} = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const {_hiddenIndices} = this;\n const changes = this._getUniformDataChanges() || [];\n for (const {method, start, count} of changes) {\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx) => new Set(\n _dataChanges\n .filter(c => c[0] === idx)\n .map((c, i) => i + ',' + c.splice(1).join(','))\n );\n const changeSet = makeSet(0);\n for (let i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet)\n .map(c => c.split(','))\n .map(a => ({method: a[1], start: +a[2], count: +a[3]}));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n this._resize(width, height);\n this._resizeBeforeDraw = null;\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = this.chartArea;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const {canvas, ctx} = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n this.notifyPlugins('destroy');\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type) => _add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = () => {\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = () => {\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: _isPointInArea(e, this.chartArea, this._minPadding)\n };\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const {_active: lastActive = [], options} = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [e, active, this], this);\n if (isClick) {\n callback(options.onClick, [e, active, this], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nconst invalidatePlugins = () => each(Chart.instances, (chart) => chart._plugins.invalidate());\nconst enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable,\n value: defaults\n },\n instances: {\n enumerable,\n value: instances\n },\n overrides: {\n enumerable,\n value: overrides\n },\n registry: {\n enumerable,\n value: registry\n },\n version: {\n enumerable,\n value: version\n },\n getChart: {\n enumerable,\n value: getChart\n },\n register: {\n enumerable,\n value: (...items) => {\n registry.add(...items);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable,\n value: (...items) => {\n registry.remove(...items);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\nfunction pathArc(ctx, element, offset, spacing, end) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), startAngle + (innerStart / innerRadius), true);\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.fill();\n return endAngle;\n}\nfunction drawFullCircleBorders(ctx, element, inner) {\n const {x, y, startAngle, pixelMargin, fullCircles} = element;\n const outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n const innerRadius = element.innerRadius + pixelMargin;\n let i;\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\nfunction drawBorder(ctx, element, offset, spacing, endAngle) {\n const {options} = element;\n const {borderWidth, borderJoinStyle} = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.stroke();\n}\nclass ArcElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = this.options.spacing / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const betweenAngles = _circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return (betweenAngles && withinRadius);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference',\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const {options, circumference} = this;\n const offset = (options.offset || 0) / 2;\n const spacing = (options.spacing || 0) / 2;\n this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n let radiusOffset = 0;\n if (offset) {\n radiusOffset = offset / 2;\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n if (this.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n const endAngle = drawArc(ctx, this, radiusOffset, spacing);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle);\n ctx.restore();\n }\n}\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let {move = true, reverse} = params || {};\n let i, point, prev;\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n constructor(cfg) {\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || (this.points.length - start);\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\nclass PointElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n return options.radius + options.hitRadius;\n }\n}\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {left, top, right, bottom};\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds\n\t\t&& (skipX || _isBetween(x, bounds.left, bounds.right))\n\t\t&& (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nLineElement: LineElement,\nPointElement: PointElement,\nBarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for (i = 0; i < samples - 2; i++) {\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const {x: pointAx, y: pointAy} = data[a];\n maxArea = area = -1;\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs(\n (pointAx - avgX) * (data[j].y - pointAy) -\n (pointAx - data[j].x) * (avgY - pointAy)\n );\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX,\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {value: data});\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset) => {\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const {iScale} = meta;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {start, count};\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false,\n },\n beforeElementsUpdate: (chart, args, options) => {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex) => {\n const {_data, indexAxis} = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n if (meta.type !== 'line') {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let {start, count} = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\nfunction decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n if (fill[0] === '-' || fill[0] === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n }\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\nfunction computeLinearBoundary(source) {\n const {scale = {}, fill} = source;\n let target = null;\n let horizontal;\n if (fill === 'start') {\n target = scale.bottom;\n } else if (fill === 'end') {\n target = scale.top;\n } else if (isObject(fill)) {\n target = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n target = scale.getBasePixel();\n }\n if (isNumberFinite(target)) {\n horizontal = scale.isHorizontal();\n return {\n x: horizontal ? target : null,\n y: horizontal ? null : target\n };\n }\n return null;\n}\nclass simpleArc {\n constructor(opts) {\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const {x, y, radius} = this;\n bounds = bounds || {start: 0, end: TAU};\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const {x, y, radius} = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\nfunction computeCircularBoundary(source) {\n const {scale, fill} = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const target = [];\n const start = options.reverse ? scale.max : scale.min;\n const end = options.reverse ? scale.min : scale.max;\n let i, center, value;\n if (fill === 'start') {\n value = start;\n } else if (fill === 'end') {\n value = end;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n if (options.grid.circular) {\n center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for (i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction findSegmentEnd(start, end, points) {\n for (;end > start; end--) {\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction pointsFromSegments(boundary, line) {\n const {x = null, y = null} = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({start, end}) => {\n end = findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({x: first.x, y});\n points.push({x: last.x, y});\n } else if (x !== null) {\n points.push({x, y: first.y});\n points.push({x, y: last.y});\n }\n });\n return points;\n}\nfunction buildStackLine(source) {\n const {scale, index, line} = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(createBoundaryLine({x: null, y: scale.bottom}, line));\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n for (let j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({points, options: {}});\n}\nfunction getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for (let i = 0; i < metas.length; i++) {\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for (let j = 0; j < linesBelow.length; j++) {\n const line = linesBelow[j];\n const {first, last, point} = findPoint(line, sourcePoint, 'x');\n if (!point || (first && last)) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\nfunction findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {first, last, point};\n}\nfunction getTarget(source) {\n const {chart, fill, line} = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return createBoundaryLine(boundary, line);\n}\nfunction createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {tension: 0},\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [index];\n let target;\n if (!propagate) {\n return fill;\n }\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\nfunction _clip(ctx, target, clipY) {\n const {segments, points} = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments) {\n const {start, end} = segment;\n const firstPoint = points[start];\n const lastPoint = points[findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {move: lineLoop});\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {property, start, end};\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments) {\n let {start, end} = segment;\n end = findSegmentEnd(start, end, points);\n const bounds = getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments) {\n const subBounds = getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources) {\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction clipBounds(ctx, scale, bounds) {\n const {top, bottom} = scale.chart.chartArea;\n const {property, start, end} = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\nfunction _fill(ctx, cfg) {\n const {line, target, property, color, scale} = cfg;\n const segments = _segments(line, target, property);\n for (const {source: src, target: tgt, start, end} of segments) {\n const {style: {backgroundColor = color} = {}} = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {move: lineLoop, reverse: true});\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction doFill(ctx, cfg) {\n const {line, target, above, below, area, scale} = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n _clip(ctx, target, area.top);\n _fill(ctx, {line, target, color: above, scale, property});\n ctx.restore();\n ctx.save();\n _clip(ctx, target, area.bottom);\n }\n _fill(ctx, {line, target, color: below, scale, property});\n ctx.restore();\n}\nfunction drawfill(ctx, source, area) {\n const target = getTarget(source);\n const {line, scale, axis} = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const {above = color, below = color} = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {line, target, above, below, area, scale, axis});\n unclipArea(ctx);\n }\n}\nvar plugin_filler = {\n id: 'filler',\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw) {\n drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (source) {\n drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!source || source.fill === false || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config) {\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const {options, ctx} = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {color: fontColor, padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxWidth * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right)\n && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width)\n && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\nfunction isListened(type, opts) {\n if (type === 'mousemove' && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color}} = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n\nclass Title extends Element {\n constructor(config) {\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst positioners = {\n average(items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let x = 0;\n let y = 0;\n let count = 0;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {width, height};\n}\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\nfunction determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nclass Tooltip extends Element {\n constructor(config) {\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart || config._chart;\n this._chart = this.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const {callbacks} = options;\n const beforeTitle = callbacks.beforeTitle.apply(this, [context]);\n const title = callbacks.title.apply(this, [context]);\n const afterTitle = callbacks.afterTitle.apply(this, [context]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(this, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(this, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n const beforeFooter = callbacks.beforeFooter.apply(this, [tooltipItems]);\n const footer = callbacks.footer.apply(this, [tooltipItems]);\n const afterFooter = callbacks.afterFooter.apply(this, [tooltipItems]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(this, context));\n labelPointStyles.push(scoped.labelPointStyle.call(this, context));\n labelTextColors.push(scoped.labelTextColor.call(this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {chart: this.chart, tooltip: this, replay});\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColors = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = labelColors.borderWidth || 1;\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n const borderRadius = toTRBLCorners(labelColors.borderRadius);\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({chart, options});\n }\n },\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n if (tooltip) {\n tooltip.draw(chart.ctx);\n }\n chart.notifyPlugins('afterTooltipDraw', args);\n },\n afterEvent(chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nDecimation: plugin_decimation,\nFiller: plugin_filler,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels) => {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({index, label: raw});\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\nclass CategoryScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const {index, label} of added) {\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for (; j < numSpaces; ++j) {\n ticks.push({value: Math.round((niceMin + j * spacing) * factor) / factor});\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = 1;\n if (max >= Number.MAX_SAFE_INTEGER || min <= Number.MIN_SAFE_INTEGER) {\n offset = Math.abs(max * 0.05);\n }\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, Math.floor(log10(tickVal))));\n return remain === 1;\n}\nfunction generateTicks(generationOptions, dataRange) {\n const endExp = Math.floor(log10(dataRange.max));\n const endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n const ticks = [];\n let tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n let exp = Math.floor(log10(tickVal));\n let significand = Math.floor(tickVal / Math.pow(10, exp));\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n do {\n ticks.push({value: tickVal, major: isMajor(tickVal)});\n ++significand;\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || (exp === endExp && significand < endSignificand));\n const lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({value: lastTick, major: isMajor(tickVal)});\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n const exp = (v, m) => Math.pow(10, Math.floor(log10(v)) + m);\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n if (this._zero && this.min !== this._suggestedMin && min === exp(this.min, 0)) {\n setMin(exp(min, -1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined\n ? '0'\n : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\nfunction fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(\n orig.l - limits.l,\n limits.r - orig.r,\n orig.t - limits.t,\n limits.b - orig.b\n );\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const extra = getTickBackdropHeight(opts) / 2;\n const outerDistance = scale.drawingArea;\n const additionalAngle = opts.pointLabels.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i], additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const size = labelSizes[i];\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n for (let i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign, left, top, right, bottom} = scale._pointLabelItems[i];\n const {backdropColor} = optsAtIndex;\n if (!isNullOrUndef(backdropColor)) {\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n ctx.fillRect(left - padding.left, top - padding.top, right - left + padding.width, bottom - top + padding.height);\n }\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const {color, lineWidth} = gridLineOpts;\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n constructor(cfg) {\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels()\n .map((value, index) => {\n const label = callback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n })\n .filter((v, i) => this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid} = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const optsAtIndex = grid.setContext(this.getContext(index - 1));\n drawRadiusLine(this, optsAtIndex, offset, labelCount);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for (i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index) => {\n if (index === 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback(label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\n\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\nconst UNITS = (Object.keys(INTERVALS));\nfunction sorter(a, b) {\n return a - b;\n}\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, parser)\n : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n return +value;\n}\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n constructor(props) {\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n initOffsets(timestamps) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(timeOpts.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort((a, b) => a - b).map(x => +x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n const label = this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n const formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], this) : label;\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return (this._cache.data = this.normalize(timestamps));\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n constructor(props) {\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales,\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, plugin_filler as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, elements, layouts, plugins, registerables, registry, scales };\n","import {Chart, registerables} from '../dist/chart.esm';\n\nChart.register(...registerables);\n\nexport default Chart;\n","import type { MouseEvent } from 'react';\nimport type {\n ChartType,\n ChartData,\n DefaultDataPoint,\n ChartDataset,\n ChartOptions,\n Chart,\n} from 'chart.js';\n\nimport type { ForwardedRef } from './types';\n\nconst defaultDatasetIdKey = 'label';\n\nexport function reforwardRef(ref: ForwardedRef, value: T) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nexport function setOptions<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(chart: Chart, nextOptions: ChartOptions) {\n chart.options = { ...nextOptions };\n}\n\nexport function setLabels<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextLabels: TLabel[] | undefined\n) {\n currentData.labels = nextLabels;\n}\n\nexport function setDatasets<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextDatasets: ChartDataset[],\n datasetIdKey = defaultDatasetIdKey\n) {\n const addedDatasets: ChartDataset[] = [];\n\n currentData.datasets = nextDatasets.map(nextDataset => {\n // given the new set, find it's current match\n const currentDataset = currentData.datasets.find(\n dataset => dataset[datasetIdKey] === nextDataset[datasetIdKey]\n );\n\n // There is no original to update, so simply add new one\n if (\n !currentDataset ||\n !nextDataset.data ||\n addedDatasets.includes(currentDataset)\n ) {\n return { ...nextDataset };\n }\n\n addedDatasets.push(currentDataset);\n\n Object.assign(currentDataset, nextDataset);\n\n return currentDataset;\n });\n}\n\nexport function cloneData<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(data: ChartData, datasetIdKey = defaultDatasetIdKey) {\n const nextData: ChartData = {\n labels: [],\n datasets: [],\n };\n\n setLabels(nextData, data.labels);\n setDatasets(nextData, data.datasets, datasetIdKey);\n\n return nextData;\n}\n\n/**\n * Get dataset from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getDatasetAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'dataset',\n { intersect: true },\n false\n );\n}\n\n/**\n * Get single dataset element from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getElementAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'nearest',\n { intersect: true },\n false\n );\n}\n\n/**\n * Get all dataset elements from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getElementsAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'index',\n { intersect: true },\n false\n );\n}\n","import React, { useEffect, useRef, forwardRef } from 'react';\nimport { Chart as ChartJS } from 'chart.js';\nimport type { ChartType, DefaultDataPoint } from 'chart.js';\n\nimport type { ForwardedRef, ChartProps, TypedChartComponent } from './types';\nimport {\n reforwardRef,\n cloneData,\n setOptions,\n setLabels,\n setDatasets,\n} from './utils';\n\nfunction ChartComponent<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n {\n height = 150,\n width = 300,\n redraw = false,\n datasetIdKey,\n type,\n data,\n options,\n plugins = [],\n fallbackContent,\n ...props\n }: ChartProps,\n ref: ForwardedRef>\n) {\n type TypedChartJS = ChartJS;\n\n const canvasRef = useRef(null);\n const chartRef = useRef();\n\n const renderChart = () => {\n if (!canvasRef.current) return;\n\n chartRef.current = new ChartJS(canvasRef.current, {\n type,\n data: cloneData(data, datasetIdKey),\n options,\n plugins,\n });\n\n reforwardRef(ref, chartRef.current);\n };\n\n const destroyChart = () => {\n reforwardRef(ref, null);\n\n if (chartRef.current) {\n chartRef.current.destroy();\n chartRef.current = null;\n }\n };\n\n useEffect(() => {\n if (!redraw && chartRef.current && options) {\n setOptions(chartRef.current, options);\n }\n }, [redraw, options]);\n\n useEffect(() => {\n if (!redraw && chartRef.current) {\n setLabels(chartRef.current.config.data, data.labels);\n }\n }, [redraw, data.labels]);\n\n useEffect(() => {\n if (!redraw && chartRef.current && data.datasets) {\n setDatasets(chartRef.current.config.data, data.datasets, datasetIdKey);\n }\n }, [redraw, data.datasets]);\n\n useEffect(() => {\n if (!chartRef.current) return;\n\n if (redraw) {\n destroyChart();\n setTimeout(renderChart);\n } else {\n chartRef.current.update();\n }\n }, [redraw, options, data.labels, data.datasets]);\n\n useEffect(() => {\n renderChart();\n\n return () => destroyChart();\n }, []);\n\n return (\n \n {fallbackContent}\n \n );\n}\n\nexport const Chart = forwardRef(ChartComponent) as TypedChartComponent;\n","import React, { forwardRef } from 'react';\nimport {\n Chart as ChartJS,\n LineController,\n BarController,\n RadarController,\n DoughnutController,\n PolarAreaController,\n BubbleController,\n PieController,\n ScatterController,\n} from 'chart.js';\nimport type { ChartType, ChartComponentLike } from 'chart.js';\n\nimport type {\n ChartProps,\n ChartJSOrUndefined,\n TypedChartComponent,\n} from './types';\nimport { Chart } from './chart';\n\nfunction createTypedChart(\n type: T,\n registerables: ChartComponentLike\n) {\n ChartJS.register(registerables);\n\n return forwardRef, Omit, 'type'>>(\n (props, ref) => \n ) as TypedChartComponent;\n}\n\nexport const Line = /* #__PURE__ */ createTypedChart('line', LineController);\n\nexport const Bar = /* #__PURE__ */ createTypedChart('bar', BarController);\n\nexport const Radar = /* #__PURE__ */ createTypedChart('radar', RadarController);\n\nexport const Doughnut = /* #__PURE__ */ createTypedChart(\n 'doughnut',\n DoughnutController\n);\n\nexport const PolarArea = /* #__PURE__ */ createTypedChart(\n 'polarArea',\n PolarAreaController\n);\n\nexport const Bubble = /* #__PURE__ */ createTypedChart(\n 'bubble',\n BubbleController\n);\n\nexport const Pie = /* #__PURE__ */ createTypedChart('pie', PieController);\n\nexport const Scatter = /* #__PURE__ */ createTypedChart(\n 'scatter',\n ScatterController\n);\n","import React from 'react';\n\nvar SvgCalendarIcon = function SvgCalendarIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M7.75 3.5a.75.75 0 0 0-1.5 0v.407a3.075 3.075 0 0 0-.702.252 3.75 3.75 0 0 0-1.64 1.639c-.226.444-.32.924-.365 1.47-.043.531-.043 1.187-.043 2v1.464c0 .813 0 1.469.043 2 .045.546.14 1.026.366 1.47a3.75 3.75 0 0 0 1.639 1.64c.444.226.924.32 1.47.365.531.043 1.187.043 2 .043h3.383c.323 0 .542 0 .735-.02a3.75 3.75 0 0 0 3.344-3.344c.02-.193.02-.412.02-.735v-2.883c0-.813 0-1.469-.043-2-.045-.546-.14-1.026-.366-1.47a3.75 3.75 0 0 0-1.639-1.64 3.076 3.076 0 0 0-.702-.251v-.407a.75.75 0 0 0-1.5 0v.259c-.373-.009-.794-.009-1.268-.009h-1.964c-.474 0-.895 0-1.268.009v-.259Zm-1.521 1.995c.197-.1.458-.17.912-.207.462-.037 1.057-.038 1.909-.038h1.9c.853 0 1.447 0 1.91.038.453.037.714.107.912.207.423.216.767.56.983.984.1.197.17.458.207.912.014.18.024.38.029.609h-9.982c.006-.228.015-.429.03-.61.036-.453.106-.714.206-.911a2.25 2.25 0 0 1 .984-.984Zm-1.229 4.005v1.2c0 .853 0 1.447.038 1.91.037.453.107.714.207.912.216.423.56.767.984.983.197.1.458.17.912.207.462.037 1.057.038 1.909.038h3.306c.385 0 .52-.001.626-.012a2.25 2.25 0 0 0 2.006-2.006c.011-.106.012-.241.012-.626v-2.606h-10Z\"\n }));\n};\nSvgCalendarIcon.displayName = \"CalendarIcon\";\n\nexport { SvgCalendarIcon as S };\n","import React from 'react';\n\nvar SvgArrowRightMinor = function SvgArrowRightMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m17.707 9.293-5-5a.999.999 0 1 0-1.414 1.414l3.293 3.293h-11.586a1 1 0 1 0 0 2h11.586l-3.293 3.293a.999.999 0 1 0 1.414 1.414l5-5a.999.999 0 0 0 0-1.414z\"\n }));\n};\n\nexport { SvgArrowRightMinor as S };\n","const WEEK_LENGTH = 7;\nfunction getWeeksForMonth(month, year, weekStartsOn = 0) {\n const firstOfMonth = new Date(year, month, 1);\n const firstDayOfWeek = firstOfMonth.getDay();\n const weeks = [[]];\n let currentWeek = weeks[0];\n let currentDate = firstOfMonth;\n const orderedWeekday = getOrderedWeekdays(weekStartsOn);\n\n for (let i = 0; i < orderedWeekday.indexOf(firstDayOfWeek); i++) {\n currentWeek.push(null);\n }\n\n while (currentDate.getMonth() === month) {\n if (currentWeek.length === WEEK_LENGTH) {\n currentWeek = [];\n weeks.push(currentWeek);\n }\n\n currentWeek.push(currentDate);\n currentDate = new Date(year, month, currentDate.getDate() + 1);\n }\n\n while (currentWeek.length < 7) {\n currentWeek.push(null);\n }\n\n return weeks;\n}\nfunction dateIsInRange(day, range) {\n if (day == null) {\n return false;\n }\n\n const {\n start,\n end\n } = range;\n return Boolean(start && day > start && end && day < end);\n}\nfunction dateIsSelected(day, range) {\n if (day == null) {\n return false;\n }\n\n const {\n start,\n end\n } = range;\n return Boolean(start && isSameDay(start, day) || end && isSameDay(end, day));\n}\nfunction isSameDay(day1, day2) {\n return day1.getDate() === day2.getDate() && day1.getMonth() === day2.getMonth() && day1.getFullYear() === day2.getFullYear();\n}\nfunction getNewRange(range, selected) {\n if (range == null) {\n return {\n start: selected,\n end: selected\n };\n }\n\n const {\n start,\n end\n } = range;\n\n if (end && (isDateAfter(start, end) || isDateBefore(start, end))) {\n return {\n start: selected,\n end: selected\n };\n }\n\n if (start) {\n if (isDateBefore(selected, start)) {\n return {\n start: selected,\n end: selected\n };\n }\n\n return {\n start,\n end: selected\n };\n }\n\n if (end) {\n if (isDateBefore(selected, end)) {\n return {\n start: selected,\n end\n };\n }\n\n return {\n start: start || end,\n end: selected\n };\n }\n\n return {\n start: selected,\n end: selected\n };\n}\nfunction getNextDisplayMonth(month) {\n if (month === 11) {\n return 0;\n }\n\n return month + 1;\n}\nfunction getNextDisplayYear(month, year) {\n if (month === 11) {\n return year + 1;\n }\n\n return year;\n}\nfunction getPreviousDisplayMonth(month) {\n if (month === 0) {\n return 11;\n }\n\n return month - 1;\n}\nfunction getPreviousDisplayYear(month, year) {\n if (month === 0) {\n return year - 1;\n }\n\n return year;\n}\nfunction isDateAfter(date, dateToCompare) {\n return date.getTime() > dateToCompare.getTime();\n}\nfunction isDateBefore(date, dateToCompare) {\n return date.getTime() < dateToCompare.getTime();\n}\nconst WEEKDAYS = [0, 1, 2, 3, 4, 5, 6];\nfunction getOrderedWeekdays(weekStartsOn) {\n const weekDays = [...WEEKDAYS];\n const restOfDays = weekDays.splice(weekStartsOn);\n return [...restOfDays, ...weekDays];\n}\n\nexport { dateIsInRange, dateIsSelected, getNewRange, getNextDisplayMonth, getNextDisplayYear, getOrderedWeekdays, getPreviousDisplayMonth, getPreviousDisplayYear, getWeeksForMonth, isDateAfter, isDateBefore, isSameDay };\n","function monthName(month) {\n switch (month) {\n case 0:\n return 'january';\n\n case 1:\n return 'february';\n\n case 2:\n return 'march';\n\n case 3:\n return 'april';\n\n case 4:\n return 'may';\n\n case 5:\n return 'june';\n\n case 6:\n return 'july';\n\n case 7:\n return 'august';\n\n case 8:\n return 'september';\n\n case 9:\n return 'october';\n\n case 10:\n return 'november';\n\n case 11:\n return 'december';\n }\n}\nfunction weekdayName(weekday) {\n switch (weekday) {\n case 0:\n return 'sunday';\n\n case 1:\n return 'monday';\n\n case 2:\n return 'tuesday';\n\n case 3:\n return 'wednesday';\n\n case 4:\n return 'thursday';\n\n case 5:\n return 'friday';\n\n case 6:\n return 'saturday';\n }\n}\n\nexport { monthName, weekdayName };\n","var styles = {\n \"DatePicker\": \"Polaris-DatePicker\",\n \"MonthLayout\": \"Polaris-DatePicker__MonthLayout\",\n \"MonthContainer\": \"Polaris-DatePicker__MonthContainer\",\n \"Month\": \"Polaris-DatePicker__Month\",\n \"Month-current\": \"Polaris-DatePicker__Month--current\",\n \"DayCell\": \"Polaris-DatePicker__DayCell\",\n \"DayCell-inRange\": \"Polaris-DatePicker__DayCell--inRange\",\n \"Day\": \"Polaris-DatePicker__Day\",\n \"Day-today\": \"Polaris-DatePicker__Day--today\",\n \"Day-inRange\": \"Polaris-DatePicker__Day--inRange\",\n \"Day-selected\": \"Polaris-DatePicker__Day--selected\",\n \"Day-disabled\": \"Polaris-DatePicker__Day--disabled\",\n \"EmptyDayCell\": \"Polaris-DatePicker__EmptyDayCell\",\n \"Weekday\": \"Polaris-DatePicker__Weekday\",\n \"Weekday-current\": \"Polaris-DatePicker__Weekday--current\",\n \"Header\": \"Polaris-DatePicker__Header\",\n \"Title\": \"Polaris-DatePicker__Title\",\n \"Day-firstInRange\": \"Polaris-DatePicker__Day--firstInRange\",\n \"Day-hasRange\": \"Polaris-DatePicker__Day--hasRange\",\n \"Day-hoverRight\": \"Polaris-DatePicker__Day--hoverRight\",\n \"Day-lastInRange\": \"Polaris-DatePicker__Day--lastInRange\",\n \"Week\": \"Polaris-DatePicker__Week\"\n};\n\nexport { styles as default };\n","import React, { memo } from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from '../../DatePicker.scss.js';\n\nconst Weekday = /*#__PURE__*/memo(function Weekday({\n label,\n title,\n current\n}) {\n const className = classNames(styles.Weekday, current && styles['Weekday-current']);\n return /*#__PURE__*/React.createElement(\"th\", {\n \"aria-label\": label,\n scope: \"col\",\n className: className\n }, title);\n});\n\nexport { Weekday };\n","import React, { memo, useRef, useEffect } from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport { isSameDay } from '../../../../utilities/dates.js';\nimport { monthName } from '../../utilities.js';\nimport styles from '../../DatePicker.scss.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\n\nconst Day = /*#__PURE__*/memo(function Day({\n day,\n focused,\n onClick,\n onHover = noop,\n onFocus = noop,\n selected,\n inRange,\n inHoveringRange,\n disabled,\n lastDayOfMonth,\n isLastSelectedDay,\n isFirstSelectedDay,\n isHoveringRight,\n rangeIsDifferent,\n weekday,\n selectedAccessibilityLabelPrefix\n}) {\n const i18n = useI18n();\n const dayNode = useRef(null);\n const hoverValue = lastDayOfMonth || day;\n useEffect(() => {\n if (focused && dayNode.current) {\n dayNode.current.focus();\n }\n }, [focused]);\n\n if (!day) {\n return /*#__PURE__*/React.createElement(\"td\", {\n className: styles.EmptyDayCell,\n onMouseOver: () => onHover(hoverValue)\n });\n }\n\n const handleClick = onClick && !disabled ? onClick.bind(null, day) : noop;\n const today = isSameDay(new Date(), day);\n const dayCellClassName = classNames(styles.DayCell, selected && styles['DayCell-selected'], (inRange || inHoveringRange) && !disabled && styles['DayCell-inRange'], isLastSelectedDay && styles['DayCell-lastInRange'], isFirstSelectedDay && styles['DayCell-firstInRange'], isHoveringRight && styles['DayCell-hoverRight'], rangeIsDifferent && styles['DayCell-hasRange']);\n const dayClassName = classNames(styles.Day, selected && styles['Day-selected'], disabled && styles['Day-disabled'], today && styles['Day-today'], (inRange || inHoveringRange) && !disabled && styles['Day-inRange'], isLastSelectedDay && styles['Day-lastInRange'], isFirstSelectedDay && styles['Day-firstInRange'], isHoveringRight && styles['Day-hoverRight'], rangeIsDifferent && styles['Day-hasRange']);\n const date = day.getDate();\n const tabIndex = (focused || selected || today || date === 1) && !disabled ? 0 : -1;\n const ariaLabel = [selected && selectedAccessibilityLabelPrefix ? `${selectedAccessibilityLabelPrefix} ` : '', `${today ? i18n.translate('Polaris.DatePicker.today') : ''}`, `${weekday ? weekday : ''} `, `${i18n.translate(`Polaris.DatePicker.months.${monthName(day.getMonth())}`)} `, `${date} `, `${day.getFullYear()}`].join('');\n return /*#__PURE__*/React.createElement(\"td\", {\n className: dayCellClassName\n }, /*#__PURE__*/React.createElement(\"button\", {\n onFocus: () => onFocus(day),\n type: \"button\",\n ref: dayNode,\n tabIndex: tabIndex,\n className: dayClassName,\n onMouseOver: () => onHover(hoverValue),\n onClick: handleClick,\n \"aria-label\": ariaLabel,\n \"aria-disabled\": disabled,\n \"aria-pressed\": selected\n }, date));\n});\n\nfunction noop() {}\n\nexport { Day };\n","import React, { useMemo, useCallback } from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport { getWeeksForMonth, getOrderedWeekdays, getNewRange, isDateBefore, isDateAfter, isSameDay, dateIsSelected, dateIsInRange } from '../../../../utilities/dates.js';\nimport styles from '../../DatePicker.scss.js';\nimport { weekdayName, monthName } from '../../utilities.js';\nimport { Weekday } from '../Weekday/Weekday.js';\nimport { Day } from '../Day/Day.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\n\nfunction Month({\n focusedDate,\n selected,\n hoverDate,\n disableDatesBefore,\n disableDatesAfter,\n allowRange,\n onChange = noop,\n onHover = noop,\n onFocus = noop,\n month,\n year,\n weekStartsOn,\n accessibilityLabelPrefixes\n}) {\n const i18n = useI18n();\n const isInHoveringRange = allowRange ? hoveringDateIsInRange : () => false;\n const now = new Date();\n const current = now.getMonth() === month && now.getFullYear() === year;\n const className = classNames(styles.Title, current && styles['Month-current']);\n const weeks = useMemo(() => getWeeksForMonth(month, year, weekStartsOn), [month, weekStartsOn, year]);\n const weekdays = getOrderedWeekdays(weekStartsOn).map(weekday => /*#__PURE__*/React.createElement(Weekday, {\n key: weekday,\n title: i18n.translate(`Polaris.DatePicker.daysAbbreviated.${weekdayName(weekday)}`),\n label: weekdayLabel(weekday),\n current: current && new Date().getDay() === weekday\n }));\n const handleDateClick = useCallback(selectedDate => {\n onChange(getNewRange(allowRange ? selected : undefined, selectedDate));\n }, [allowRange, onChange, selected]);\n const lastDayOfMonth = useMemo(() => new Date(year, month + 1, 0), [month, year]);\n\n function renderWeek(day, dayIndex) {\n if (day == null) {\n return /*#__PURE__*/React.createElement(Day, {\n key: dayIndex,\n onHover: onHover,\n lastDayOfMonth: lastDayOfMonth\n });\n }\n\n const disabled = disableDatesBefore && isDateBefore(day, disableDatesBefore) || disableDatesAfter && isDateAfter(day, disableDatesAfter);\n const isFirstSelectedDay = allowRange && selected && isDateStart(day, selected);\n const isLastSelectedDay = allowRange && selected && (!isSameDay(selected.start, selected.end) && isDateEnd(day, selected) || hoverDate && isSameDay(selected.start, selected.end) && isDateAfter(hoverDate, selected.start) && isSameDay(day, hoverDate) && !isFirstSelectedDay);\n const rangeIsDifferent = !(selected && isSameDay(selected.start, selected.end));\n const isHoveringRight = hoverDate && isDateBefore(day, hoverDate);\n const [firstAccessibilityLabelPrefix, lastAccessibilityLabelPrefix] = accessibilityLabelPrefixes;\n let accessibilityLabelPrefix;\n\n if (allowRange && isFirstSelectedDay || !allowRange && firstAccessibilityLabelPrefix) {\n accessibilityLabelPrefix = firstAccessibilityLabelPrefix;\n } else if (allowRange && isLastSelectedDay) {\n accessibilityLabelPrefix = lastAccessibilityLabelPrefix;\n }\n\n return /*#__PURE__*/React.createElement(Day, {\n selectedAccessibilityLabelPrefix: accessibilityLabelPrefix,\n weekday: weekdayLabel(dayIndex),\n focused: focusedDate != null && isSameDay(day, focusedDate),\n day: day,\n key: dayIndex,\n onFocus: onFocus,\n onClick: handleDateClick,\n onHover: onHover,\n selected: selected != null && dateIsSelected(day, selected),\n inRange: selected != null && dateIsInRange(day, selected),\n disabled: disabled,\n inHoveringRange: selected != null && hoverDate != null && isInHoveringRange(day, selected, hoverDate),\n isLastSelectedDay: isLastSelectedDay,\n isFirstSelectedDay: isFirstSelectedDay,\n isHoveringRight: isHoveringRight,\n rangeIsDifferent: rangeIsDifferent\n });\n }\n\n const weeksMarkup = weeks.map((week, index) => /*#__PURE__*/React.createElement(\"tr\", {\n className: styles.Week,\n key: index\n }, week.map(renderWeek)));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.MonthContainer\n }, /*#__PURE__*/React.createElement(\"table\", {\n role: \"grid\",\n className: styles.Month\n }, /*#__PURE__*/React.createElement(\"caption\", {\n className: className\n }, i18n.translate(`Polaris.DatePicker.months.${monthName(month)}`), ' ', year), /*#__PURE__*/React.createElement(\"thead\", null, /*#__PURE__*/React.createElement(\"tr\", {\n className: styles.WeekHeadings\n }, weekdays)), /*#__PURE__*/React.createElement(\"tbody\", null, weeksMarkup)));\n\n function weekdayLabel(weekday) {\n return i18n.translate(`Polaris.DatePicker.days.${weekdayName(weekday)}`);\n }\n}\n\nfunction noop() {}\n\nfunction hoveringDateIsInRange(day, range, hoverEndDate) {\n if (day == null) {\n return false;\n }\n\n const {\n start,\n end\n } = range;\n return Boolean(isSameDay(start, end) && day > start && day <= hoverEndDate);\n}\n\nfunction isDateEnd(day, range) {\n if (day == null) return false;\n const {\n end\n } = range;\n return Boolean(end && isSameDay(end, day));\n}\n\nfunction isDateStart(day, range) {\n if (day == null) return false;\n const {\n start\n } = range;\n return Boolean(start && isSameDay(start, day));\n}\n\nexport { Month };\n","import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { ArrowLeftMinor, ArrowRightMinor } from '@shopify/polaris-icons';\nimport { classNames } from '../../utilities/css.js';\nimport { isDateBefore, isDateAfter, getNextDisplayYear, getNextDisplayMonth, getPreviousDisplayYear, getPreviousDisplayMonth } from '../../utilities/dates.js';\nimport { monthName } from './utilities.js';\nimport styles from './DatePicker.scss.js';\nimport { Month } from './components/Month/Month.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Button } from '../Button/Button.js';\n\nfunction DatePicker({\n id,\n selected,\n month,\n year,\n allowRange,\n multiMonth,\n disableDatesBefore,\n disableDatesAfter,\n weekStartsOn = 0,\n dayAccessibilityLabelPrefix,\n onMonthChange,\n onChange = noop\n}) {\n const i18n = useI18n();\n const [hoverDate, setHoverDate] = useState(undefined);\n const [focusDate, setFocusDate] = useState(undefined);\n useEffect(() => {\n setFocusDate(undefined);\n }, [selected]);\n const handleFocus = useCallback(date => {\n setFocusDate(date);\n }, []);\n const setFocusDateAndHandleMonthChange = useCallback(date => {\n if (onMonthChange) {\n onMonthChange(date.getMonth(), date.getFullYear());\n }\n\n setHoverDate(date);\n setFocusDate(date);\n }, [onMonthChange]);\n const handleDateSelection = useCallback(range => {\n const {\n end\n } = range;\n setHoverDate(end);\n setFocusDate(new Date(end));\n onChange(range);\n }, [onChange]);\n const handleMonthChangeClick = useCallback((month, year) => {\n if (!onMonthChange) {\n return;\n }\n\n setFocusDate(undefined);\n onMonthChange(month, year);\n }, [onMonthChange]);\n const handleHover = useCallback(date => {\n setHoverDate(date);\n }, []);\n const handleKeyUp = useCallback(event => {\n const {\n key\n } = event;\n const range = deriveRange(selected);\n const focusedDate = focusDate || range && range.start;\n\n if (focusedDate == null) {\n return;\n }\n\n if (key === 'ArrowUp') {\n const previousWeek = new Date(focusedDate);\n previousWeek.setDate(focusedDate.getDate() - 7);\n\n if (!(disableDatesBefore && isDateBefore(previousWeek, disableDatesBefore))) {\n setFocusDateAndHandleMonthChange(previousWeek);\n }\n }\n\n if (key === 'ArrowDown') {\n const nextWeek = new Date(focusedDate);\n nextWeek.setDate(focusedDate.getDate() + 7);\n\n if (!(disableDatesAfter && isDateAfter(nextWeek, disableDatesAfter))) {\n setFocusDateAndHandleMonthChange(nextWeek);\n }\n }\n\n if (key === 'ArrowRight') {\n const tomorrow = new Date(focusedDate);\n tomorrow.setDate(focusedDate.getDate() + 1);\n\n if (!(disableDatesAfter && isDateAfter(tomorrow, disableDatesAfter))) {\n setFocusDateAndHandleMonthChange(tomorrow);\n }\n }\n\n if (key === 'ArrowLeft') {\n const yesterday = new Date(focusedDate);\n yesterday.setDate(focusedDate.getDate() - 1);\n\n if (!(disableDatesBefore && isDateBefore(yesterday, disableDatesBefore))) {\n setFocusDateAndHandleMonthChange(yesterday);\n }\n }\n }, [disableDatesAfter, disableDatesBefore, focusDate, selected, setFocusDateAndHandleMonthChange]);\n const showNextYear = getNextDisplayYear(month, year);\n const showNextMonth = getNextDisplayMonth(month);\n const showNextToNextYear = getNextDisplayYear(showNextMonth, showNextYear);\n const showNextToNextMonth = getNextDisplayMonth(showNextMonth);\n const showPreviousYear = getPreviousDisplayYear(month, year);\n const showPreviousMonth = getPreviousDisplayMonth(month);\n const previousMonthName = i18n.translate(`Polaris.DatePicker.months.${monthName(showPreviousMonth)}`);\n const nextMonth = multiMonth ? i18n.translate(`Polaris.DatePicker.months.${monthName(showNextToNextMonth)}`) : i18n.translate(`Polaris.DatePicker.months.${monthName(showNextMonth)}`);\n const nextYear = multiMonth ? showNextToNextYear : showNextYear;\n const monthIsSelected = useMemo(() => deriveRange(selected), [selected]);\n const firstDatePickerAccessibilityLabelPrefix = allowRange ? i18n.translate(`Polaris.DatePicker.start`) : dayAccessibilityLabelPrefix;\n const secondDatePickerAccessibilityLabelPrefix = i18n.translate(`Polaris.DatePicker.end`);\n const accessibilityLabelPrefixes = [firstDatePickerAccessibilityLabelPrefix, secondDatePickerAccessibilityLabelPrefix];\n const secondDatePicker = multiMonth ? /*#__PURE__*/React.createElement(Month, {\n onFocus: handleFocus,\n focusedDate: focusDate,\n month: showNextMonth,\n year: showNextYear,\n selected: monthIsSelected,\n hoverDate: hoverDate,\n onChange: handleDateSelection,\n onHover: handleHover,\n disableDatesBefore: disableDatesBefore,\n disableDatesAfter: disableDatesAfter,\n allowRange: allowRange,\n weekStartsOn: weekStartsOn,\n accessibilityLabelPrefixes: accessibilityLabelPrefixes\n }) : null;\n const datePickerClassName = classNames(styles.DatePicker);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: datePickerClassName,\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Header\n }, /*#__PURE__*/React.createElement(Button, {\n plain: true,\n icon: ArrowLeftMinor,\n accessibilityLabel: i18n.translate('Polaris.DatePicker.previousMonth', {\n previousMonthName,\n showPreviousYear\n }),\n onClick: () => handleMonthChangeClick(showPreviousMonth, showPreviousYear)\n }), /*#__PURE__*/React.createElement(Button, {\n plain: true,\n icon: ArrowRightMinor,\n accessibilityLabel: i18n.translate('Polaris.DatePicker.nextMonth', {\n nextMonth,\n nextYear\n }),\n onClick: () => handleMonthChangeClick(showNextMonth, showNextYear)\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.MonthLayout\n }, /*#__PURE__*/React.createElement(Month, {\n onFocus: handleFocus,\n focusedDate: focusDate,\n month: month,\n year: year,\n selected: deriveRange(selected),\n hoverDate: hoverDate,\n onChange: handleDateSelection,\n onHover: handleHover,\n disableDatesBefore: disableDatesBefore,\n disableDatesAfter: disableDatesAfter,\n allowRange: allowRange,\n weekStartsOn: weekStartsOn,\n accessibilityLabelPrefixes: accessibilityLabelPrefixes\n }), secondDatePicker));\n}\n\nfunction noop() {}\n\nfunction handleKeyDown(event) {\n const {\n key\n } = event;\n\n if (key === 'ArrowUp' || key === 'ArrowDown' || key === 'ArrowLeft' || key === 'ArrowRight') {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n\nfunction deriveRange(selected) {\n return selected instanceof Date ? {\n start: selected,\n end: selected\n } : selected;\n}\n\nexport { DatePicker };\n","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\n\nexport default function startOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var cleanDate = toDate(dirtyDate);\n var date = new Date(0);\n date.setFullYear(cleanDate.getFullYear(), 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import {\n Button,\n DatePicker,\n Popover,\n Select,\n Stack,\n TextField,\n} from '@shopify/polaris';\nimport { add, startOfMonth, startOfYear } from 'date-fns';\nimport React, { useState, useCallback } from 'react';\nimport { logError } from '../util/logging';\n\nconst DatePickerDropdown = ({ range, updateRange }) => {\n const [{ month, year }, setDate] = useState({\n month: range.start.getMonth(),\n year: range.start.getFullYear(),\n });\n\n const [startDate, setStartDate] = useState(range.start);\n const [endDate, setEndDate] = useState(range.end);\n\n const handleMonthChange = useCallback(\n (m, y) => setDate({ month: m, year: y }),\n []\n );\n const [open, setOpen] = useState(false);\n const options = [\n { label: 'Custom', value: 'custom' },\n { label: 'Today', value: 'today' },\n { label: 'Yesterday', value: 'yesterday' },\n { label: 'Last 7 days', value: 'lastWeek' },\n { label: 'Last 30 days', value: 'last30' },\n { label: 'Last 90 days', value: 'lastThreeMonths' },\n { label: 'Last 365 days', value: 'last365' },\n { label: 'Last Month', value: 'lastMonth' },\n { label: 'Last Year', value: 'lastYear' },\n { label: 'Year to date', value: 'yearToDate' },\n ];\n\n const [selected, setSelected] = useState('custom');\n\n const handleSelectChange = useCallback((value) => {\n switch (value) {\n case 'today':\n setStartDate(new Date());\n setEndDate(new Date());\n break;\n case 'yesterday':\n setStartDate(add(new Date(), { days: -1 }));\n setEndDate(add(new Date(), { days: -1 }));\n break;\n case 'lastWeek':\n setEndDate(new Date());\n setStartDate(add(new Date(), { days: -7 }));\n break;\n case 'last30':\n setEndDate(new Date());\n setStartDate(add(new Date(), { days: -30 }));\n break;\n case 'lastThreeMonths':\n setEndDate(new Date());\n setStartDate(add(new Date(), { days: -90 }));\n break;\n case 'last365':\n setEndDate(new Date());\n setStartDate(add(new Date(), { days: -365 }));\n break;\n case 'lastYear':\n setStartDate(add(startOfYear(new Date()), { years: -1 }));\n setEndDate(add(startOfYear(new Date()), { days: -1 }));\n break;\n case 'lastMonth':\n setEndDate(add(startOfMonth(new Date()), { days: -1 }));\n setStartDate(add(startOfMonth(new Date()), { months: -1 }));\n break;\n case 'yearToDate':\n setEndDate(new Date());\n setStartDate(startOfYear(new Date()));\n break;\n default:\n logError(\n 'Received a data picker dropdown selecting that is not supported',\n value\n );\n break;\n }\n setSelected(value);\n }, []);\n\n const activator = (\n \n );\n\n return (\n setOpen(false)}\n fluidContent\n sectioned\n >\n \n \n
\n \n \n \n setStartDate(val)}\n />\n setEndDate(val)}\n />\n \n {\n setStartDate(val.start);\n setEndDate(val.end);\n }}\n onMonthChange={handleMonthChange}\n selected={{ start: startDate, end: endDate }}\n multiMonth\n allowRange\n />\n \n
\n
\n \n \n \n {\n updateRange({ start: startDate, end: endDate });\n setOpen(false);\n }}\n >\n Apply\n \n \n \n
\n \n );\n};\n\nexport default DatePickerDropdown;\n","var styles = {\n \"SkeletonBodyText\": \"Polaris-SkeletonBodyText\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport styles from './SkeletonBodyText.scss.js';\n\nfunction SkeletonBodyText({\n lines = 3\n}) {\n const bodyTextLines = [];\n\n for (let i = 0; i < lines; i++) {\n bodyTextLines.push( /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SkeletonBodyText,\n key: i\n }));\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, bodyTextLines);\n}\n\nexport { SkeletonBodyText };\n","import en from '../locales/en.json';\nimport fr from '../locales/fr.json';\n\nconst lang = navigator.language.substr(0, 2);\nconst languages = {\n en,\n fr,\n};\n\nexport const getLang = () => lang;\n\nexport const translate = (key) => {\n const l = 'en';\n return languages[l][key] || `Missing ${l} - ${key}`;\n};\n","import React from 'react';\nimport {\n Layout,\n Card,\n Stack,\n TextStyle,\n DisplayText,\n SkeletonBodyText,\n SkeletonDisplayText,\n} from '@shopify/polaris';\nimport { translate } from '../../util/localizer';\n\nconst HalfCard = ({\n title,\n leftTitleKey,\n leftValue,\n rightTitleKey,\n rightValue,\n}) => {\n const leftTitle = translate(leftTitleKey);\n const rightTitle = translate(rightTitleKey);\n const displayTitle = () => {\n if (leftValue) {\n return title;\n }\n\n return (\n
\n \n
\n );\n };\n\n const SubTitle = ({ children }) => (\n \n {children}\n \n );\n const Value = ({ children }) => (\n <>\n {children !== undefined && (\n \n {children}\n \n )}\n {children === undefined && }\n \n );\n return (\n \n \n \n \n {leftTitle}\n {leftValue}\n \n \n {rightTitle}\n {rightValue}\n \n \n \n \n );\n};\n\nexport default HalfCard;\n","import React from 'react';\nimport {\n Card,\n Stack,\n DisplayText,\n TextStyle,\n SkeletonDisplayText,\n} from '@shopify/polaris';\nimport { translate } from '../../util/localizer';\n\nconst SingleRow = ({ titleKey, value }) => {\n const title = translate(titleKey);\n return (\n \n
\n {/* TODO: this is a hack that needs to be removed */}\n \n {title}\n {value && (\n \n {value}\n \n )}\n {!value && (\n
\n \n
\n )}\n
\n
\n
\n );\n};\n\nexport default SingleRow;\n","import React from 'react';\nimport { Card, DisplayText, SkeletonDisplayText } from '@shopify/polaris';\nimport { translate } from '../../util/localizer';\n\nconst SingleValue = ({ titleKey, value }) => {\n const title = translate(titleKey);\n return (\n \n {value !== undefined && {value}}\n {value === undefined && }\n \n );\n};\n\nexport default SingleValue;\n","export const formatCurrency = (val) => {\n if (val === undefined) {\n return '';\n }\n return `$${val.toFixed(2).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,')}`;\n};\n\nexport const formatPercentage = (val1, val2) => {\n if (val1 !== undefined && val2 === undefined) {\n return val1 > 1 ? val1 : `${(val1 * 100).toFixed(0)}%`;\n }\n if (val1 === 0 || val2 === 0) {\n return '0%';\n }\n return `${((val1 / val2) * 100).toFixed(0)}%`;\n};\n\nexport const formatDate = (date) => {\n const months = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n ];\n const currentDate = new Date(date);\n const day = currentDate.getDate();\n const month = months[currentDate.getMonth()];\n const year = currentDate.getFullYear();\n\n return `${month} ${day}, ${year}`;\n};\n","import {\n Page,\n Layout,\n Card,\n Stack,\n Loading,\n Banner,\n EmptyState,\n DisplayText,\n} from '@shopify/polaris';\nimport React, { useContext, useEffect, useState } from 'react';\nimport 'chart.js/auto';\nimport { Chart } from 'react-chartjs-2';\nimport { useHistory } from 'react-router-dom';\nimport { CalendarIcon } from '@shopify/polaris-icons';\nimport DatePickerDropdown from '../components/DatePickerDropdown';\nimport { getSpently } from '../util/spentlyRest';\nimport HalfCard from '../widgets/dashboard/HalfCard';\nimport SingleRow from '../widgets/dashboard/SingleRow';\nimport SingleValue from '../widgets/dashboard/SingleValue';\nimport { formatEmailType, urlDate } from '../util/formatters';\nimport { formatCurrency, formatPercentage } from '../framework/util/formatters';\nimport { DateRangeContext } from '../state/DateRangeContext';\nimport { translate } from '../util/localizer';\nimport theme from '../framework/util/theme';\n\nconst Dashboard = () => {\n const [results, setResults] = useState(null);\n const [error, setError] = useState(null);\n const [range, setRange] = useContext(DateRangeContext);\n const history = useHistory();\n const { colors } = theme();\n\n useEffect(() => {\n const load = async () => {\n const r = await getSpently(\n `/api/Dashboard?start=${urlDate(range.start)}&end=${urlDate(\n range.end\n )} 23:59:59`,\n setError\n );\n setResults(r);\n };\n\n load();\n }, [range]);\n\n if (error) {\n return (\n \n

{error.statusText}

\n \n );\n }\n\n const data = {\n labels: [],\n datasets: [\n {\n label: 'Revenue',\n maxBarThickness: 180,\n barThickness: 160,\n data: [],\n backgroundColor: [],\n borderColor: [],\n borderWidth: 1,\n },\n ],\n };\n\n if (results) {\n results.notificationData\n .sort((a, b) => b.total - a.total)\n .forEach((not) => {\n data.labels.push(formatEmailType(not.emailType));\n data.datasets[0].data.push(not.total.toFixed(2));\n data.datasets[0].backgroundColor.push(colors.graph.fill);\n data.datasets[0].borderColor.push(colors.graph.border);\n });\n }\n\n const options = {\n scales: {\n y: {\n beginAtZero: true,\n },\n x: {\n responsive: false,\n },\n },\n plugins: {\n tooltip: {\n callbacks: { label: (value) => formatCurrency(value.parsed.y) },\n },\n },\n onClick: (_, elements) => {\n if (elements[0]) {\n const { index } = elements[0];\n const notData = results.notificationData.sort(\n (a, b) => b.total - a.total\n )[index];\n history.push(`/Reports?emailType=${notData.emailType}`);\n }\n },\n };\n\n const {\n repeatPurchaseInsights: repeat = {},\n discountsInsights: discounts = {},\n checkoutRecoveryInsights: checkouts = {},\n } = results || {};\n\n const { lifeTimeRoi, revenuePerPeriod } = results || {};\n const { totalOpens, totalClicks, distinctOpens, distinctClicks } =\n results || {};\n\n const showChart = results && results.notificationData.length > 0;\n const errorMsg = \"We couldn't find any data in the range you selected.\";\n\n return (\n \n {!results && }\n \n \n \n \n \n\n \n \n \n\n \n \n \n {\n setResults(null);\n setRange(r);\n }}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {showChart && (\n
\n \n \n
\n
\n )}\n {results && !showChart && (\n \n \n {errorMsg}\n

Try selecting a different date range.

\n
\n )}\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Dashboard;\n","var styles = {\n \"MediaCard\": \"Polaris-MediaCard\",\n \"portrait\": \"Polaris-MediaCard--portrait\",\n \"MediaContainer\": \"Polaris-MediaCard__MediaContainer\",\n \"sizeSmall\": \"Polaris-MediaCard--sizeSmall\",\n \"InfoContainer\": \"Polaris-MediaCard__InfoContainer\",\n \"Popover\": \"Polaris-MediaCard__Popover\",\n \"Heading\": \"Polaris-MediaCard__Heading\",\n \"PrimaryAction\": \"Polaris-MediaCard__PrimaryAction\",\n \"SecondaryAction\": \"Polaris-MediaCard__SecondaryAction\",\n \"ActionContainer\": \"Polaris-MediaCard__ActionContainer\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { HorizontalDotsMinor } from '@shopify/polaris-icons';\nimport { useToggle } from '../../utilities/use-toggle.js';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './MediaCard.scss.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Button } from '../Button/Button.js';\nimport { Popover } from '../Popover/Popover.js';\nimport { ActionList } from '../ActionList/ActionList.js';\nimport { buttonFrom } from '../Button/utils.js';\nimport { Card } from '../Card/Card.js';\nimport { Stack } from '../Stack/Stack.js';\nimport { Heading } from '../Heading/Heading.js';\nimport { ButtonGroup } from '../ButtonGroup/ButtonGroup.js';\n\nfunction MediaCard({\n title,\n children,\n primaryAction,\n secondaryAction,\n description,\n popoverActions = [],\n portrait = false,\n size = 'medium'\n}) {\n const i18n = useI18n();\n const {\n value: popoverActive,\n toggle: togglePopoverActive\n } = useToggle(false);\n let headerMarkup = null;\n\n if (title) {\n const headerContent = typeof title === 'string' ? /*#__PURE__*/React.createElement(Heading, null, title) : title;\n headerMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Heading\n }, headerContent);\n }\n\n const popoverActivator = /*#__PURE__*/React.createElement(Button, {\n icon: HorizontalDotsMinor,\n onClick: togglePopoverActive,\n size: \"slim\",\n plain: true,\n accessibilityLabel: i18n.translate('Polaris.MediaCard.popoverButton')\n });\n const popoverActionsMarkup = popoverActions.length > 0 ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Popover\n }, /*#__PURE__*/React.createElement(Popover, {\n active: popoverActive,\n activator: popoverActivator,\n onClose: togglePopoverActive,\n preferredAlignment: \"left\",\n preferredPosition: \"below\"\n }, /*#__PURE__*/React.createElement(ActionList, {\n items: popoverActions,\n onActionAnyItem: togglePopoverActive\n }))) : null;\n const primaryActionMarkup = primaryAction ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.PrimaryAction\n }, buttonFrom(primaryAction)) : null;\n const secondaryActionMarkup = secondaryAction ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SecondaryAction\n }, buttonFrom(secondaryAction, {\n plain: true\n })) : null;\n const actionClassName = classNames(styles.ActionContainer, portrait && styles.portrait);\n const actionMarkup = primaryActionMarkup || secondaryActionMarkup ? /*#__PURE__*/React.createElement(\"div\", {\n className: actionClassName\n }, /*#__PURE__*/React.createElement(ButtonGroup, null, primaryActionMarkup, secondaryActionMarkup)) : null;\n const mediaCardClassName = classNames(styles.MediaCard, portrait && styles.portrait);\n const mediaContainerClassName = classNames(styles.MediaContainer, portrait && styles.portrait, size === 'small' && styles.sizeSmall);\n const infoContainerClassName = classNames(styles.InfoContainer, portrait && styles.portrait, size === 'small' && styles.sizeSmall);\n return /*#__PURE__*/React.createElement(Card, null, /*#__PURE__*/React.createElement(\"div\", {\n className: mediaCardClassName\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: mediaContainerClassName\n }, children), /*#__PURE__*/React.createElement(\"div\", {\n className: infoContainerClassName\n }, /*#__PURE__*/React.createElement(Card.Section, null, popoverActionsMarkup, /*#__PURE__*/React.createElement(Stack, {\n vertical: true,\n spacing: \"tight\"\n }, headerMarkup, /*#__PURE__*/React.createElement(\"p\", {\n className: styles.Description\n }, description), actionMarkup)))));\n}\n\nexport { MediaCard };\n","var styles = {\n \"SkeletonThumbnail\": \"Polaris-SkeletonThumbnail\",\n \"sizeSmall\": \"Polaris-SkeletonThumbnail--sizeSmall\",\n \"sizeMedium\": \"Polaris-SkeletonThumbnail--sizeMedium\",\n \"sizeLarge\": \"Polaris-SkeletonThumbnail--sizeLarge\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport styles from './SkeletonThumbnail.scss.js';\n\nfunction SkeletonThumbnail({\n size = 'medium'\n}) {\n const className = classNames(styles.SkeletonThumbnail, size && styles[variationName('size', size)]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n });\n}\n\nexport { SkeletonThumbnail };\n","import {\n MediaCard,\n SkeletonThumbnail,\n Stack,\n Card,\n SkeletonBodyText,\n DisplayText,\n EmptyState,\n} from '@shopify/polaris';\nimport React, { useEffect, useState } from 'react';\nimport { getSpently } from '../../util/spentlyRest';\n\nconst PanCardList = ({\n card,\n vertical,\n url,\n massageData,\n emptyMessage,\n emptyFile,\n}) => {\n const [results, setResults] = useState(null);\n useEffect(() => {\n const loadData = async () => {\n const response = await getSpently(url);\n if (massageData) {\n setResults(massageData(response));\n } else {\n setResults(response);\n }\n };\n\n if (!results) {\n loadData();\n }\n });\n\n const verticalSkeleton = () => (\n }>\n \n \n );\n\n const horizontalSkeleton = () => (\n \n \n \n \n \n \n \n \n \n \n );\n\n if (!results) {\n return (\n \n {!vertical && verticalSkeleton()}\n {!vertical && verticalSkeleton()}\n {!vertical && verticalSkeleton()}\n {!vertical && verticalSkeleton()}\n {vertical && horizontalSkeleton()}\n {vertical && horizontalSkeleton()}\n {vertical && horizontalSkeleton()}\n \n );\n }\n\n if (emptyMessage && results.length === 0) {\n return (\n \n \n {emptyMessage}\n \n \n );\n }\n\n return (\n \n {results.map(card)}\n \n );\n};\n\nexport default PanCardList;\n","import { Modal, TextContainer } from '@shopify/polaris';\nimport React, { useState } from 'react';\n\nconst PanConfirmModal = ({ active, title, description, cancel, action }) => {\n const [loading, setLoading] = useState(false);\n return (\n
\n {\n setLoading(true);\n action();\n },\n destructive: true,\n }}\n secondaryActions={[\n {\n content: 'Cancel',\n onAction: cancel,\n },\n ]}\n >\n \n \n

{description}

\n
\n
\n \n
\n );\n};\n\nexport default PanConfirmModal;\n","/* eslint-disable max-len */\nimport { MediaCard } from '@shopify/polaris';\nimport React from 'react';\nimport '../../cssOverrides/PanStyling.scss';\n\nconst PanMediaCard = ({\n title,\n url,\n primaryAction,\n secondaryAction,\n popoverActions,\n fallbackSrc,\n className,\n}) => (\n
\n \n {\n e.target.onError = null;\n if (fallbackSrc) {\n e.target.src = fallbackSrc;\n }\n }}\n alt={title}\n style={{\n objectFit: 'cover',\n objectPosition: 'center',\n display: 'block',\n margin: '0 auto',\n maxWidth: 200,\n padding: 6,\n }}\n />\n \n
\n);\n\nexport default PanMediaCard;\n","import { Page } from '@shopify/polaris';\nimport React, { useState } from 'react';\nimport PanCardList from '../framework/ui/PanCardList';\nimport PanConfirmModal from '../framework/ui/PanConfirmModal';\nimport PanMediaCard from '../framework/ui/PanMediaCard';\nimport { deleteSpently, postSpently } from '../util/spentlyRest';\n\nconst Notifications = () => {\n const [confirmState, setConfirmState] = useState({ active: false });\n\n return (\n \n (\n {\n setConfirmState({\n active: true,\n action: async () => {\n await deleteSpently(`/api/notifications/${n.id}`);\n setConfirmState({ ...confirmState, active: false });\n document.location = '/Notifications';\n },\n });\n },\n },\n {\n content: 'Duplicate',\n onAction: async () => {\n await postSpently(`/api/notifications/${n.id}/duplicate`);\n document.location = '/Notifications';\n },\n },\n ]}\n />\n )}\n />\n {\n setConfirmState({ ...confirmState, active: false });\n }}\n title=\"Delete Notification Set?\"\n description=\"Please note that this operation is non-reversable\"\n active={confirmState.active}\n action={confirmState.action}\n />\n \n );\n};\n\nexport default Notifications;\n","import React from 'react';\n\nvar SvgEnableSelectionMinor = function SvgEnableSelectionMinor(props) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M4.5 3a1.5 1.5 0 0 0-1.5 1.5v11a1.5 1.5 0 0 0 1.5 1.5h11a1.5 1.5 0 0 0 1.5-1.5v-11a1.5 1.5 0 0 0-1.5-1.5h-11zm9.207 5.707a1 1 0 0 0-1.414-1.414l-3.293 3.293-1.293-1.293a1 1 0 0 0-1.414 1.414l2 2a1 1 0 0 0 1.414 0l4-4z\"\n }));\n};\n\nexport { SvgEnableSelectionMinor as S };\n","import { useRef } from 'react';\n\nconst UNIQUE_IDENTIFIER = Symbol('unique_identifier');\n/**\n * useLazyRef provides a lazy initial value, similar to lazy\n * initial state the initialValue is the value used during\n * initialization and disregarded after that. Use this hook\n * for expensive initialization.\n * @param initialValue - A function that will return the initial\n * value and be disregarded after that\n * @returns MutableRefObject - Returns a ref object with the\n * results from invoking initial value\n * @example\n * function ComponentExample() {\n * const title = useLazyRef(() => someExpensiveComputation());\n * return

{title.current}

;\n * }\n */\n\nfunction useLazyRef(initialValue) {\n const lazyRef = useRef(UNIQUE_IDENTIFIER);\n\n if (lazyRef.current === UNIQUE_IDENTIFIER) {\n lazyRef.current = initialValue();\n }\n\n return lazyRef;\n}\n\nexport { useLazyRef };\n","var styles = {\n \"FiltersWrapper\": \"Polaris-ResourceList__FiltersWrapper\",\n \"ResourceList\": \"Polaris-ResourceList\",\n \"HeaderOuterWrapper\": \"Polaris-ResourceList__HeaderOuterWrapper\",\n \"HeaderWrapper-disabled\": \"Polaris-ResourceList__HeaderWrapper--disabled\",\n \"HeaderWrapper-overlay\": \"Polaris-ResourceList__HeaderWrapper--overlay\",\n \"HeaderWrapper\": \"Polaris-ResourceList__HeaderWrapper\",\n \"HeaderWrapper-isSticky\": \"Polaris-ResourceList__HeaderWrapper--isSticky\",\n \"HeaderContentWrapper\": \"Polaris-ResourceList__HeaderContentWrapper\",\n \"HeaderWrapper-inSelectMode\": \"Polaris-ResourceList__HeaderWrapper--inSelectMode\",\n \"SortWrapper\": \"Polaris-ResourceList__SortWrapper\",\n \"AlternateToolWrapper\": \"Polaris-ResourceList__AlternateToolWrapper\",\n \"HeaderWrapper-hasSelect\": \"Polaris-ResourceList__HeaderWrapper--hasSelect\",\n \"HeaderWrapper-hasAlternateTool\": \"Polaris-ResourceList__HeaderWrapper--hasAlternateTool\",\n \"HeaderWrapper-hasSort\": \"Polaris-ResourceList__HeaderWrapper--hasSort\",\n \"HeaderTitleWrapper\": \"Polaris-ResourceList__HeaderTitleWrapper\",\n \"BulkActionsWrapper\": \"Polaris-ResourceList__BulkActionsWrapper\",\n \"CheckableButtonWrapper\": \"Polaris-ResourceList__CheckableButtonWrapper\",\n \"SelectButtonWrapper\": \"Polaris-ResourceList__SelectButtonWrapper\",\n \"EmptySearchResultWrapper\": \"Polaris-ResourceList__EmptySearchResultWrapper\",\n \"ResourceListWrapper\": \"Polaris-ResourceList__ResourceListWrapper\",\n \"ItemWrapper\": \"Polaris-ResourceList__ItemWrapper\",\n \"ItemWrapper-isLoading\": \"Polaris-ResourceList__ItemWrapper--isLoading\",\n \"SpinnerContainer\": \"Polaris-ResourceList__SpinnerContainer\",\n \"LoadingOverlay\": \"Polaris-ResourceList__LoadingOverlay\",\n \"DisabledPointerEvents\": \"Polaris-ResourceList__DisabledPointerEvents\",\n \"disableTextSelection\": \"Polaris-ResourceList--disableTextSelection\"\n};\n\nexport { styles as default };\n","var styles = {\n \"CheckboxWrapper\": \"Polaris-ResourceItem__CheckboxWrapper\",\n \"ResourceItem\": \"Polaris-ResourceItem\",\n \"persistActions\": \"Polaris-ResourceItem--persistActions\",\n \"Actions\": \"Polaris-ResourceItem__Actions\",\n \"ItemWrapper\": \"Polaris-ResourceItem__ItemWrapper\",\n \"focusedInner\": \"Polaris-ResourceItem--focusedInner\",\n \"focused\": \"Polaris-ResourceItem--focused\",\n \"selected\": \"Polaris-ResourceItem--selected\",\n \"Link\": \"Polaris-ResourceItem__Link\",\n \"Button\": \"Polaris-ResourceItem__Button\",\n \"Container\": \"Polaris-ResourceItem__Container\",\n \"alignmentLeading\": \"Polaris-ResourceItem--alignmentLeading\",\n \"alignmentTrailing\": \"Polaris-ResourceItem--alignmentTrailing\",\n \"alignmentCenter\": \"Polaris-ResourceItem--alignmentCenter\",\n \"alignmentFill\": \"Polaris-ResourceItem--alignmentFill\",\n \"alignmentBaseline\": \"Polaris-ResourceItem--alignmentBaseline\",\n \"Owned\": \"Polaris-ResourceItem__Owned\",\n \"OwnedNoMedia\": \"Polaris-ResourceItem__OwnedNoMedia\",\n \"Handle\": \"Polaris-ResourceItem__Handle\",\n \"selectMode\": \"Polaris-ResourceItem--selectMode\",\n \"selectable\": \"Polaris-ResourceItem--selectable\",\n \"Media\": \"Polaris-ResourceItem__Media\",\n \"Content\": \"Polaris-ResourceItem__Content\",\n \"Disclosure\": \"Polaris-ResourceItem__Disclosure\",\n \"ListItem\": \"Polaris-ResourceItem__ListItem\"\n};\n\nexport { styles as default };\n","const SELECT_ALL_ITEMS = 'All';\n\nexport { SELECT_ALL_ITEMS };\n","import { createContext } from 'react';\n\nconst ResourceListContext = /*#__PURE__*/createContext({});\n\nexport { ResourceListContext };\n","import React, { useContext, Component, createRef } from 'react';\nimport { HorizontalDotsMinor } from '@shopify/polaris-icons';\nimport isEqual from 'lodash/isEqual';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport styles from './ResourceItem.scss.js';\nimport { SELECT_ALL_ITEMS } from '../../utilities/resource-list/types.js';\nimport { ResourceListContext } from '../../utilities/resource-list/context.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Checkbox } from '../Checkbox/Checkbox.js';\nimport { ButtonGroup } from '../ButtonGroup/ButtonGroup.js';\nimport { buttonsFrom } from '../Button/utils.js';\nimport { Popover } from '../Popover/Popover.js';\nimport { Button } from '../Button/Button.js';\nimport { ActionList } from '../ActionList/ActionList.js';\nimport { UnstyledLink } from '../UnstyledLink/UnstyledLink.js';\nimport { globalIdGeneratorFactory } from '../../utilities/unique-id/unique-id-factory.js';\n\nconst getUniqueCheckboxID = globalIdGeneratorFactory('ResourceListItemCheckbox');\nconst getUniqueOverlayID = globalIdGeneratorFactory('ResourceListItemOverlay');\n\nclass BaseResourceItem extends Component {\n constructor(...args) {\n super(...args);\n this.state = {\n actionsMenuVisible: false,\n focused: false,\n focusedInner: false,\n selected: isSelected(this.props.id, this.props.context.selectedItems)\n };\n this.node = null;\n this.checkboxId = getUniqueCheckboxID();\n this.overlayId = getUniqueOverlayID();\n this.buttonOverlay = /*#__PURE__*/createRef();\n\n this.setNode = node => {\n this.node = node;\n };\n\n this.handleFocus = event => {\n if (event.target === this.buttonOverlay.current || this.node && event.target === this.node.querySelector(`#${this.overlayId}`)) {\n this.setState({\n focused: true,\n focusedInner: false\n });\n } else if (this.node && this.node.contains(event.target)) {\n this.setState({\n focused: true,\n focusedInner: true\n });\n }\n };\n\n this.handleBlur = ({\n relatedTarget\n }) => {\n if (this.node && relatedTarget instanceof Element && this.node.contains(relatedTarget)) {\n return;\n }\n\n this.setState({\n focused: false,\n focusedInner: false\n });\n };\n\n this.handleMouseOut = () => {\n this.state.focused && this.setState({\n focused: false,\n focusedInner: false\n });\n };\n\n this.handleLargerSelectionArea = event => {\n stopPropagation(event);\n this.handleSelection(!this.state.selected, event.nativeEvent.shiftKey);\n };\n\n this.handleSelection = (value, shiftKey) => {\n const {\n id,\n sortOrder,\n context: {\n onSelectionChange\n }\n } = this.props;\n\n if (id == null || onSelectionChange == null) {\n return;\n }\n\n this.setState({\n focused: value,\n focusedInner: value\n });\n onSelectionChange(value, id, sortOrder, shiftKey);\n };\n\n this.handleClick = event => {\n stopPropagation(event);\n const {\n id,\n onClick,\n url,\n context: {\n selectMode\n }\n } = this.props;\n const {\n ctrlKey,\n metaKey\n } = event.nativeEvent;\n const anchor = this.node && this.node.querySelector('a');\n\n if (selectMode) {\n this.handleLargerSelectionArea(event);\n return;\n }\n\n if (anchor === event.target) {\n return;\n }\n\n if (onClick) {\n onClick(id);\n }\n\n if (url && (ctrlKey || metaKey)) {\n window.open(url, '_blank');\n return;\n }\n\n if (url && anchor) {\n anchor.click();\n }\n };\n\n this.handleKeyUp = event => {\n const {\n onClick = noop,\n context: {\n selectMode\n }\n } = this.props;\n const {\n key\n } = event;\n\n if (key === 'Enter' && this.props.url && !selectMode) {\n onClick();\n }\n };\n\n this.handleActionsClick = () => {\n this.setState(({\n actionsMenuVisible\n }) => ({\n actionsMenuVisible: !actionsMenuVisible\n }));\n };\n\n this.handleCloseRequest = () => {\n this.setState({\n actionsMenuVisible: false\n });\n };\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const selected = isSelected(nextProps.id, nextProps.context.selectedItems);\n\n if (prevState.selected === selected) {\n return null;\n }\n\n return {\n selected\n };\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const {\n children: nextChildren,\n context: {\n selectedItems: nextSelectedItems,\n ...restNextContext\n },\n ...restNextProps\n } = nextProps;\n const {\n children,\n context: {\n selectedItems,\n ...restContext\n },\n ...restProps\n } = this.props;\n const nextSelectMode = nextProps.context.selectMode;\n return !isEqual(this.state, nextState) || this.props.context.selectMode !== nextSelectMode || !nextProps.context.selectMode && (!isEqual(restProps, restNextProps) || !isEqual(restContext, restNextContext));\n }\n\n render() {\n const {\n children,\n url,\n external,\n media,\n shortcutActions,\n ariaControls,\n ariaExpanded,\n persistActions = false,\n accessibilityLabel,\n name,\n context: {\n selectable,\n selectMode,\n loading,\n resourceName\n },\n i18n,\n verticalAlignment,\n dataHref\n } = this.props;\n const {\n actionsMenuVisible,\n focused,\n focusedInner,\n selected\n } = this.state;\n let ownedMarkup = null;\n let handleMarkup = null;\n const mediaMarkup = media ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Media\n }, media) : null;\n\n if (selectable) {\n const checkboxAccessibilityLabel = name || accessibilityLabel || i18n.translate('Polaris.Common.checkbox');\n handleMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Handle,\n onClick: this.handleLargerSelectionArea\n }, /*#__PURE__*/React.createElement(\"div\", {\n onClick: stopPropagation,\n className: styles.CheckboxWrapper\n }, /*#__PURE__*/React.createElement(\"div\", {\n onChange: this.handleLargerSelectionArea\n }, /*#__PURE__*/React.createElement(Checkbox, {\n id: this.checkboxId,\n label: checkboxAccessibilityLabel,\n labelHidden: true,\n checked: selected,\n disabled: loading\n }))));\n }\n\n if (media || selectable) {\n ownedMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.Owned, !mediaMarkup && styles.OwnedNoMedia)\n }, handleMarkup, mediaMarkup);\n }\n\n const className = classNames(styles.ResourceItem, focused && styles.focused, selectable && styles.selectable, selected && styles.selected, selectMode && styles.selectMode, persistActions && styles.persistActions, focusedInner && styles.focusedInner);\n const listItemClassName = classNames(styles.ListItem, focused && !focusedInner && styles.focused);\n let actionsMarkup = null;\n let disclosureMarkup = null;\n\n if (shortcutActions && !loading) {\n if (persistActions) {\n actionsMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Actions,\n onClick: stopPropagation\n }, /*#__PURE__*/React.createElement(ButtonGroup, null, buttonsFrom(shortcutActions, {\n plain: true\n })));\n const disclosureAccessibilityLabel = name ? i18n.translate('Polaris.ResourceList.Item.actionsDropdownLabel', {\n accessibilityLabel: name\n }) : i18n.translate('Polaris.ResourceList.Item.actionsDropdown');\n disclosureMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Disclosure,\n onClick: stopPropagation\n }, /*#__PURE__*/React.createElement(Popover, {\n activator: /*#__PURE__*/React.createElement(Button, {\n accessibilityLabel: disclosureAccessibilityLabel,\n onClick: this.handleActionsClick,\n plain: true,\n icon: HorizontalDotsMinor\n }),\n onClose: this.handleCloseRequest,\n active: actionsMenuVisible\n }, /*#__PURE__*/React.createElement(ActionList, {\n items: shortcutActions\n })));\n } else {\n actionsMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Actions,\n onClick: stopPropagation\n }, /*#__PURE__*/React.createElement(ButtonGroup, {\n segmented: true\n }, buttonsFrom(shortcutActions, {\n size: 'slim'\n })));\n }\n }\n\n const content = children ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Content\n }, children) : null;\n const containerClassName = classNames(styles.Container, verticalAlignment && styles[variationName('alignment', verticalAlignment)]);\n const containerMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName,\n id: this.props.id\n }, ownedMarkup, content, actionsMarkup, disclosureMarkup);\n const tabIndex = loading ? -1 : 0;\n const ariaLabel = accessibilityLabel || i18n.translate('Polaris.ResourceList.Item.viewItem', {\n itemName: name || resourceName && resourceName.singular || ''\n });\n const accessibleMarkup = url ? /*#__PURE__*/React.createElement(UnstyledLink, {\n \"aria-describedby\": this.props.id,\n \"aria-label\": ariaLabel,\n className: styles.Link,\n url: url,\n external: external,\n tabIndex: tabIndex,\n id: this.overlayId\n }) : /*#__PURE__*/React.createElement(\"button\", {\n className: styles.Button,\n \"aria-label\": ariaLabel,\n \"aria-controls\": ariaControls,\n \"aria-expanded\": ariaExpanded,\n onClick: this.handleClick,\n tabIndex: tabIndex,\n ref: this.buttonOverlay\n });\n return /*#__PURE__*/React.createElement(\"li\", {\n className: listItemClassName,\n \"data-href\": dataHref\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ItemWrapper\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.setNode,\n className: className,\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyUp: this.handleKeyUp,\n onMouseOut: this.handleMouseOut,\n \"data-href\": url\n }, accessibleMarkup, containerMarkup)));\n }\n\n}\n\nfunction noop() {}\n\nfunction stopPropagation(event) {\n event.stopPropagation();\n}\n\nfunction isSelected(id, selectedItems) {\n return Boolean(selectedItems && (Array.isArray(selectedItems) && selectedItems.includes(id) || selectedItems === SELECT_ALL_ITEMS));\n}\n\nfunction ResourceItem(props) {\n return /*#__PURE__*/React.createElement(BaseResourceItem, Object.assign({}, props, {\n context: useContext(ResourceListContext),\n i18n: useI18n()\n }));\n}\n\nexport { ResourceItem };\n","var styles = {\n \"Group\": \"Polaris-BulkActions__Group\",\n \"Group-measuring\": \"Polaris-BulkActions__Group--measuring\",\n \"Group-entering\": \"Polaris-BulkActions__Group--entering\",\n \"Group-exiting\": \"Polaris-BulkActions__Group--exiting\",\n \"Group-entered\": \"Polaris-BulkActions__Group--entered\",\n \"Group-exited\": \"Polaris-BulkActions__Group--exited\",\n \"Group-smallScreen\": \"Polaris-BulkActions__Group--smallScreen\",\n \"Group-largeScreen\": \"Polaris-BulkActions__Group--largeScreen\",\n \"ButtonGroupWrapper\": \"Polaris-BulkActions__ButtonGroupWrapper\",\n \"BulkActionButton\": \"Polaris-BulkActions__BulkActionButton\",\n \"CheckableContainer\": \"Polaris-BulkActions__CheckableContainer\",\n \"disabled\": \"Polaris-BulkActions--disabled\",\n \"PaginatedSelectAll\": \"Polaris-BulkActions__PaginatedSelectAll\",\n \"Slide\": \"Polaris-BulkActions__Slide\",\n \"Slide-appear\": \"Polaris-BulkActions__Slide--appear\",\n \"Slide-enter\": \"Polaris-BulkActions__Slide--enter\",\n \"Slide-exit\": \"Polaris-BulkActions__Slide--exit\",\n \"Slide-appearing\": \"Polaris-BulkActions__Slide--appearing\",\n \"Slide-entering\": \"Polaris-BulkActions__Slide--entering\"\n};\n\nexport { styles as default };\n","import React, { useRef } from 'react';\nimport { useComponentDidMount } from '../../../../utilities/use-component-did-mount.js';\nimport styles from '../../BulkActions.scss.js';\nimport { Indicator } from '../../../Indicator/Indicator.js';\nimport { Button } from '../../../Button/Button.js';\n\nfunction BulkActionButton({\n handleMeasurement,\n url,\n external,\n onAction,\n content,\n disclosure,\n accessibilityLabel,\n disabled,\n indicator\n}) {\n const bulkActionButton = useRef(null);\n useComponentDidMount(() => {\n if (handleMeasurement && bulkActionButton.current) {\n const width = bulkActionButton.current.getBoundingClientRect().width;\n handleMeasurement(width);\n }\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.BulkActionButton,\n ref: bulkActionButton\n }, /*#__PURE__*/React.createElement(Button, {\n external: external,\n url: url,\n \"aria-label\": accessibilityLabel,\n onClick: onAction,\n disabled: disabled,\n disclosure: disclosure\n }, content), indicator && /*#__PURE__*/React.createElement(Indicator, null));\n}\n\nexport { BulkActionButton };\n","import React from 'react';\nimport { useToggle } from '../../../../utilities/use-toggle.js';\nimport { BulkActionButton } from '../BulkActionButton/BulkActionButton.js';\nimport { Popover } from '../../../Popover/Popover.js';\nimport { ActionList } from '../../../ActionList/ActionList.js';\n\nfunction BulkActionMenu({\n title,\n actions,\n isNewBadgeInBadgeActions\n}) {\n const {\n value: isVisible,\n toggle: toggleMenuVisibility\n } = useToggle(false);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Popover, {\n active: isVisible,\n activator: /*#__PURE__*/React.createElement(BulkActionButton, {\n disclosure: true,\n onAction: toggleMenuVisibility,\n content: title,\n indicator: isNewBadgeInBadgeActions\n }),\n onClose: toggleMenuVisibility,\n preferInputActivator: true\n }, /*#__PURE__*/React.createElement(ActionList, {\n items: actions,\n onActionAnyItem: toggleMenuVisibility\n })));\n}\n\nexport { BulkActionMenu };\n","var styles = {\n \"CheckableButton\": \"Polaris-CheckableButton\",\n \"CheckableButton-measuring\": \"Polaris-CheckableButton__CheckableButton--measuring\",\n \"CheckableButton-plain\": \"Polaris-CheckableButton__CheckableButton--plain\",\n \"CheckableButton-selectMode\": \"Polaris-CheckableButton__CheckableButton--selectMode\",\n \"CheckableButton-selected\": \"Polaris-CheckableButton__CheckableButton--selected\",\n \"Checkbox\": \"Polaris-CheckableButton__Checkbox\",\n \"Label\": \"Polaris-CheckableButton__Label\"\n};\n\nexport { styles as default };\n","import React, { useRef, useContext, useEffect } from 'react';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './CheckableButton.scss.js';\nimport { ResourceListContext } from '../../utilities/resource-list/context.js';\nimport { Checkbox } from '../Checkbox/Checkbox.js';\n\nfunction CheckableButton({\n accessibilityLabel,\n label = '',\n onToggleAll,\n selected,\n selectMode,\n plain,\n measuring,\n disabled,\n smallScreen\n}) {\n const checkBoxRef = useRef(null);\n const {\n registerCheckableButtons\n } = useContext(ResourceListContext);\n let currentKey = 'bulkLg';\n\n if (plain) {\n currentKey = 'plain';\n } else if (smallScreen) {\n currentKey = 'bulkSm';\n }\n\n useEffect(() => {\n if (checkBoxRef.current && registerCheckableButtons) {\n registerCheckableButtons(currentKey, checkBoxRef.current);\n }\n }, [currentKey, registerCheckableButtons]);\n const className = plain ? classNames(styles.CheckableButton, styles['CheckableButton-plain']) : classNames(styles.CheckableButton, selectMode && styles['CheckableButton-selectMode'], selected && styles['CheckableButton-selected'], measuring && styles['CheckableButton-measuring']);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n onClick: onToggleAll\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Checkbox\n }, /*#__PURE__*/React.createElement(Checkbox, {\n label: accessibilityLabel,\n labelHidden: true,\n checked: selected,\n disabled: disabled,\n onChange: onToggleAll,\n ref: checkBoxRef\n })), /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Label\n }, label));\n}\n\nexport { CheckableButton };\n","import React, { PureComponent, createRef } from 'react';\nimport debounce from 'lodash/debounce';\nimport { Transition, CSSTransition } from 'react-transition-group';\nimport { classNames } from '../../utilities/css.js';\nimport { clamp } from '../../utilities/clamp.js';\nimport styles from './BulkActions.scss.js';\nimport { BulkActionMenu } from './components/BulkActionMenu/BulkActionMenu.js';\nimport { CheckableButton } from '../CheckableButton/CheckableButton.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Button } from '../Button/Button.js';\nimport { Popover } from '../Popover/Popover.js';\nimport { BulkActionButton } from './components/BulkActionButton/BulkActionButton.js';\nimport { ActionList } from '../ActionList/ActionList.js';\nimport { ButtonGroup } from '../ButtonGroup/ButtonGroup.js';\nimport { tokens } from '../../tokens/tokens.js';\nimport { EventListener } from '../EventListener/EventListener.js';\n\nconst MAX_PROMOTED_ACTIONS = 2;\nconst slideClasses = {\n appear: classNames(styles.Slide, styles['Slide-appear']),\n appearActive: classNames(styles.Slide, styles['Slide-appearing']),\n enter: classNames(styles.Slide, styles['Slide-enter']),\n enterActive: classNames(styles.Slide, styles['Slide-entering']),\n exit: classNames(styles.Slide, styles['Slide-exit'])\n};\n\nclass BulkActionsInner extends PureComponent {\n constructor(...args) {\n super(...args);\n this.state = {\n smallScreenPopoverVisible: false,\n largeScreenPopoverVisible: false,\n containerWidth: 0,\n measuring: true\n };\n this.containerNode = null;\n this.largeScreenButtonsNode = null;\n this.moreActionsNode = null;\n this.checkableWrapperNode = /*#__PURE__*/createRef();\n this.largeScreenGroupNode = /*#__PURE__*/createRef();\n this.smallScreenGroupNode = /*#__PURE__*/createRef();\n this.promotedActionsWidths = [];\n this.bulkActionsWidth = 0;\n this.addedMoreActionsWidthForMeasuring = 0;\n this.handleResize = debounce(() => {\n const {\n smallScreenPopoverVisible,\n largeScreenPopoverVisible\n } = this.state;\n\n if (this.containerNode) {\n const containerWidth = this.containerNode.getBoundingClientRect().width;\n\n if (containerWidth > 0) {\n this.setState({\n containerWidth\n });\n }\n }\n\n if (smallScreenPopoverVisible || largeScreenPopoverVisible) {\n this.setState({\n smallScreenPopoverVisible: false,\n largeScreenPopoverVisible: false\n });\n }\n }, 50, {\n trailing: true\n });\n\n this.setLargeScreenButtonsNode = node => {\n this.largeScreenButtonsNode = node;\n };\n\n this.setContainerNode = node => {\n this.containerNode = node;\n };\n\n this.setMoreActionsNode = node => {\n this.moreActionsNode = node;\n };\n\n this.setSelectMode = val => {\n const {\n onSelectModeToggle\n } = this.props;\n\n if (onSelectModeToggle) {\n onSelectModeToggle(val);\n }\n };\n\n this.toggleSmallScreenPopover = () => {\n if (this.props.onMoreActionPopoverToggle) {\n this.props.onMoreActionPopoverToggle(this.state.smallScreenPopoverVisible);\n }\n\n this.setState(({\n smallScreenPopoverVisible\n }) => ({\n smallScreenPopoverVisible: !smallScreenPopoverVisible\n }));\n };\n\n this.toggleLargeScreenPopover = () => {\n if (this.props.onMoreActionPopoverToggle) {\n this.props.onMoreActionPopoverToggle(this.state.largeScreenPopoverVisible);\n }\n\n this.setState(({\n largeScreenPopoverVisible\n }) => ({\n largeScreenPopoverVisible: !largeScreenPopoverVisible\n }));\n };\n\n this.handleMeasurement = width => {\n const {\n measuring\n } = this.state;\n\n if (measuring) {\n this.promotedActionsWidths.push(width);\n }\n };\n }\n\n numberOfPromotedActionsToRender() {\n const {\n promotedActions\n } = this.props;\n const {\n containerWidth,\n measuring\n } = this.state;\n\n if (!promotedActions) {\n return 0;\n }\n\n if (containerWidth >= this.bulkActionsWidth || measuring) {\n return promotedActions.length;\n }\n\n let sufficientSpace = false;\n let counter = promotedActions.length - 1;\n let totalWidth = 0;\n\n while (!sufficientSpace && counter >= 0) {\n totalWidth += this.promotedActionsWidths[counter];\n const widthWithRemovedAction = this.bulkActionsWidth - totalWidth + this.addedMoreActionsWidthForMeasuring;\n\n if (containerWidth >= widthWithRemovedAction) {\n sufficientSpace = true;\n } else {\n counter--;\n }\n }\n\n return clamp(counter, 0, promotedActions.length);\n }\n\n hasActions() {\n const {\n promotedActions,\n actions\n } = this.props;\n return Boolean(promotedActions && promotedActions.length > 0 || actions && actions.length > 0);\n }\n\n actionSections() {\n const {\n actions\n } = this.props;\n\n if (!actions || actions.length === 0) {\n return;\n }\n\n if (instanceOfBulkActionListSectionArray(actions)) {\n return actions;\n }\n\n if (instanceOfBulkActionArray(actions)) {\n return [{\n items: actions\n }];\n }\n }\n\n rolledInPromotedActions() {\n const {\n promotedActions\n } = this.props;\n const numberOfPromotedActionsToRender = this.numberOfPromotedActionsToRender();\n\n if (!promotedActions || promotedActions.length === 0 || numberOfPromotedActionsToRender >= promotedActions.length) {\n return [];\n }\n\n const rolledInPromotedActions = promotedActions.map(action => {\n if (instanceOfMenuGroupDescriptor(action)) {\n return {\n items: [...action.actions]\n };\n }\n\n return {\n items: [action]\n };\n });\n return rolledInPromotedActions.slice(numberOfPromotedActionsToRender);\n } // eslint-disable-next-line @typescript-eslint/member-ordering\n\n\n componentDidMount() {\n const {\n actions,\n promotedActions\n } = this.props;\n\n if (promotedActions && !actions && this.moreActionsNode) {\n this.addedMoreActionsWidthForMeasuring = this.moreActionsNode.getBoundingClientRect().width;\n }\n\n this.bulkActionsWidth = this.largeScreenButtonsNode ? this.largeScreenButtonsNode.getBoundingClientRect().width - this.addedMoreActionsWidthForMeasuring : 0;\n\n if (this.containerNode) {\n this.setState({\n containerWidth: this.containerNode.getBoundingClientRect().width,\n measuring: false\n });\n }\n } // eslint-disable-next-line @typescript-eslint/member-ordering\n\n\n render() {\n const {\n selectMode,\n accessibilityLabel,\n label = '',\n onToggleAll,\n selected,\n smallScreen,\n disabled,\n promotedActions,\n paginatedSelectAllText = null,\n paginatedSelectAllAction,\n i18n\n } = this.props;\n const actionSections = this.actionSections();\n\n if (promotedActions && promotedActions.length > MAX_PROMOTED_ACTIONS && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(i18n.translate('Polaris.ResourceList.BulkActions.warningMessage', {\n maxPromotedActions: MAX_PROMOTED_ACTIONS\n }));\n }\n\n const {\n smallScreenPopoverVisible,\n largeScreenPopoverVisible,\n measuring\n } = this.state;\n const paginatedSelectAllActionMarkup = paginatedSelectAllAction ? /*#__PURE__*/React.createElement(Button, {\n onClick: paginatedSelectAllAction.onAction,\n plain: true,\n disabled: disabled\n }, paginatedSelectAllAction.content) : null;\n const paginatedSelectAllTextMarkup = paginatedSelectAllText && paginatedSelectAllAction ? /*#__PURE__*/React.createElement(\"span\", {\n \"aria-live\": \"polite\"\n }, paginatedSelectAllText) : paginatedSelectAllText;\n const paginatedSelectAllMarkup = paginatedSelectAllActionMarkup || paginatedSelectAllTextMarkup ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.PaginatedSelectAll\n }, paginatedSelectAllTextMarkup, \" \", paginatedSelectAllActionMarkup) : null;\n const cancelButton = /*#__PURE__*/React.createElement(Button, {\n onClick: this.setSelectMode.bind(this, false),\n disabled: disabled\n }, i18n.translate('Polaris.Common.cancel'));\n const numberOfPromotedActionsToRender = this.numberOfPromotedActionsToRender();\n const allActionsPopover = this.hasActions() ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Popover,\n ref: this.setMoreActionsNode\n }, /*#__PURE__*/React.createElement(Popover, {\n active: smallScreenPopoverVisible,\n activator: /*#__PURE__*/React.createElement(BulkActionButton, {\n disclosure: true,\n onAction: this.toggleSmallScreenPopover,\n content: i18n.translate('Polaris.ResourceList.BulkActions.actionsActivatorLabel'),\n disabled: disabled,\n indicator: this.isNewBadgeInBadgeActions()\n }),\n onClose: this.toggleSmallScreenPopover\n }, /*#__PURE__*/React.createElement(ActionList, {\n items: promotedActions,\n sections: actionSections,\n onActionAnyItem: this.toggleSmallScreenPopover\n }))) : null;\n const promotedActionsMarkup = promotedActions && numberOfPromotedActionsToRender > 0 ? [...promotedActions].slice(0, numberOfPromotedActionsToRender).map((action, index) => {\n if (instanceOfMenuGroupDescriptor(action)) {\n return /*#__PURE__*/React.createElement(BulkActionMenu, Object.assign({\n key: index\n }, action, {\n isNewBadgeInBadgeActions: this.isNewBadgeInBadgeActions()\n }));\n }\n\n return /*#__PURE__*/React.createElement(BulkActionButton, Object.assign({\n key: index,\n disabled: disabled\n }, action, {\n handleMeasurement: this.handleMeasurement\n }));\n }) : null;\n const rolledInPromotedActions = this.rolledInPromotedActions();\n const activatorLabel = !promotedActions || promotedActions && numberOfPromotedActionsToRender === 0 && !measuring ? i18n.translate('Polaris.ResourceList.BulkActions.actionsActivatorLabel') : i18n.translate('Polaris.ResourceList.BulkActions.moreActionsActivatorLabel');\n let combinedActions = [];\n\n if (actionSections && rolledInPromotedActions.length > 0) {\n combinedActions = [...rolledInPromotedActions, ...actionSections];\n } else if (actionSections) {\n combinedActions = actionSections;\n } else if (rolledInPromotedActions.length > 0) {\n combinedActions = [...rolledInPromotedActions];\n }\n\n const actionsPopover = actionSections || rolledInPromotedActions.length > 0 || measuring ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Popover,\n ref: this.setMoreActionsNode\n }, /*#__PURE__*/React.createElement(Popover, {\n active: largeScreenPopoverVisible,\n activator: /*#__PURE__*/React.createElement(BulkActionButton, {\n disclosure: true,\n onAction: this.toggleLargeScreenPopover,\n content: activatorLabel,\n disabled: disabled,\n indicator: this.isNewBadgeInBadgeActions()\n }),\n onClose: this.toggleLargeScreenPopover\n }, /*#__PURE__*/React.createElement(ActionList, {\n sections: combinedActions,\n onActionAnyItem: this.toggleLargeScreenPopover\n }))) : null;\n const checkableButtonProps = {\n accessibilityLabel,\n label,\n selected,\n selectMode,\n onToggleAll,\n measuring,\n disabled\n };\n const smallScreenGroup = smallScreen ? /*#__PURE__*/React.createElement(Transition, {\n timeout: 0,\n in: selectMode,\n key: \"smallGroup\",\n nodeRef: this.smallScreenGroupNode\n }, status => {\n const smallScreenGroupClassName = classNames(styles.Group, styles['Group-smallScreen'], styles[`Group-${status}`]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: smallScreenGroupClassName,\n ref: this.smallScreenGroupNode\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ButtonGroupWrapper\n }, /*#__PURE__*/React.createElement(ButtonGroup, {\n segmented: true\n }, /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.checkableWrapperNode,\n in: selectMode,\n timeout: parseInt(tokens.motion['duration-200'], 10),\n classNames: slideClasses,\n appear: !selectMode\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.CheckableContainer,\n ref: this.checkableWrapperNode\n }, /*#__PURE__*/React.createElement(CheckableButton, Object.assign({}, checkableButtonProps, {\n smallScreen: true\n })))), allActionsPopover, cancelButton)), paginatedSelectAllMarkup);\n }) : null;\n const largeGroupContent = promotedActionsMarkup || actionsPopover ? /*#__PURE__*/React.createElement(ButtonGroup, {\n segmented: true\n }, /*#__PURE__*/React.createElement(CheckableButton, checkableButtonProps), promotedActionsMarkup, actionsPopover) : /*#__PURE__*/React.createElement(CheckableButton, checkableButtonProps);\n const largeScreenGroup = smallScreen ? null : /*#__PURE__*/React.createElement(Transition, {\n timeout: 0,\n in: selectMode,\n key: \"largeGroup\",\n nodeRef: this.largeScreenGroupNode\n }, status => {\n const largeScreenGroupClassName = classNames(styles.Group, styles['Group-largeScreen'], !measuring && styles[`Group-${status}`], measuring && styles['Group-measuring']);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: largeScreenGroupClassName,\n ref: this.largeScreenGroupNode\n }, /*#__PURE__*/React.createElement(EventListener, {\n event: \"resize\",\n handler: this.handleResize\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ButtonGroupWrapper,\n ref: this.setLargeScreenButtonsNode\n }, largeGroupContent), paginatedSelectAllMarkup);\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.setContainerNode\n }, smallScreenGroup, largeScreenGroup);\n }\n\n isNewBadgeInBadgeActions() {\n const actions = this.actionSections();\n if (!actions) return false;\n\n for (const action of actions) {\n for (const item of action.items) {\n var _item$badge;\n\n if (((_item$badge = item.badge) === null || _item$badge === void 0 ? void 0 : _item$badge.status) === 'new') return true;\n }\n }\n\n return false;\n }\n\n}\n\nfunction instanceOfBulkActionListSectionArray(actions) {\n const validList = actions.filter(action => {\n return action.items;\n });\n return actions.length === validList.length;\n}\n\nfunction instanceOfBulkActionArray(actions) {\n const validList = actions.filter(action => {\n return !action.items;\n });\n return actions.length === validList.length;\n}\n\nfunction instanceOfMenuGroupDescriptor(action) {\n return 'title' in action;\n}\n\nfunction BulkActions(props) {\n const i18n = useI18n();\n return /*#__PURE__*/React.createElement(BulkActionsInner, Object.assign({}, props, {\n i18n: i18n\n }));\n}\n\nexport { BulkActions };\n","import React, { Component } from 'react';\nimport { getRectForNode } from '../../utilities/geometry.js';\nimport { useStickyManager } from '../../utilities/sticky-manager/hooks.js';\n\nclass StickyInner extends Component {\n constructor(...args) {\n super(...args);\n this.state = {\n isSticky: false,\n style: {}\n };\n this.placeHolderNode = null;\n this.stickyNode = null;\n\n this.setPlaceHolderNode = node => {\n this.placeHolderNode = node;\n };\n\n this.setStickyNode = node => {\n this.stickyNode = node;\n };\n\n this.handlePositioning = (stick, top = 0, left = 0, width = 0) => {\n const {\n isSticky\n } = this.state;\n\n if (stick && !isSticky || !stick && isSticky) {\n this.adjustPlaceHolderNode(stick);\n this.setState({\n isSticky: !isSticky\n });\n }\n\n const style = stick ? {\n position: 'fixed',\n top,\n left,\n width\n } : {};\n this.setState({\n style\n });\n };\n\n this.adjustPlaceHolderNode = add => {\n if (this.placeHolderNode && this.stickyNode) {\n this.placeHolderNode.style.paddingBottom = add ? `${getRectForNode(this.stickyNode).height}px` : '0px';\n }\n };\n }\n\n componentDidMount() {\n const {\n boundingElement,\n offset = false,\n disableWhenStacked = false,\n stickyManager\n } = this.props;\n if (!this.stickyNode || !this.placeHolderNode) return;\n stickyManager.registerStickyItem({\n stickyNode: this.stickyNode,\n placeHolderNode: this.placeHolderNode,\n handlePositioning: this.handlePositioning,\n offset,\n boundingElement,\n disableWhenStacked\n });\n }\n\n componentWillUnmount() {\n const {\n stickyManager\n } = this.props;\n if (!this.stickyNode) return;\n stickyManager.unregisterStickyItem(this.stickyNode);\n }\n\n render() {\n const {\n style,\n isSticky\n } = this.state;\n const {\n children\n } = this.props;\n const childrenContent = isFunction(children) ? children(isSticky) : children;\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.setPlaceHolderNode\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: this.setStickyNode,\n style: style\n }, childrenContent));\n }\n\n} // This should have a typeguard instead of using Function\n// eslint-disable-next-line @typescript-eslint/ban-types\n\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction Sticky(props) {\n const stickyManager = useStickyManager();\n return /*#__PURE__*/React.createElement(StickyInner, Object.assign({}, props, {\n stickyManager: stickyManager\n }));\n}\n\nexport { Sticky };\n","import { useContext } from 'react';\nimport { MissingAppProviderError } from '../errors.js';\nimport { StickyManagerContext } from './context.js';\n\nfunction useStickyManager() {\n const stickyManager = useContext(StickyManagerContext);\n\n if (!stickyManager) {\n throw new MissingAppProviderError('No StickyManager was provided.');\n }\n\n return stickyManager;\n}\n\nexport { useStickyManager };\n","import React from 'react';\nimport { DisplayText } from '../DisplayText/DisplayText.js';\nimport emptySearch from './illustrations/empty-search.svg.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Stack } from '../Stack/Stack.js';\nimport { TextStyle } from '../TextStyle/TextStyle.js';\nimport { Image } from '../Image/Image.js';\n\nfunction EmptySearchResult({\n title,\n description,\n withIllustration\n}) {\n const i18n = useI18n();\n const altText = i18n.translate('Polaris.EmptySearchResult.altText');\n const descriptionMarkup = description ? /*#__PURE__*/React.createElement(\"p\", null, description) : null;\n const illustrationMarkup = withIllustration ? /*#__PURE__*/React.createElement(Image, {\n alt: altText,\n source: emptySearch,\n draggable: false\n }) : null;\n return /*#__PURE__*/React.createElement(Stack, {\n alignment: \"center\",\n vertical: true\n }, illustrationMarkup, /*#__PURE__*/React.createElement(DisplayText, {\n size: \"small\"\n }, title), /*#__PURE__*/React.createElement(TextStyle, {\n variation: \"subdued\"\n }, descriptionMarkup));\n}\n\nexport { EmptySearchResult };\n","const img = \"data:image/svg+xml,%3csvg width='60' height='60' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M41.87 24a17.87 17.87 0 11-35.74 0 17.87 17.87 0 0135.74 0zm-3.15 18.96a24 24 0 114.24-4.24L59.04 54.8a3 3 0 11-4.24 4.24L38.72 42.96z' fill='%238C9196'/%3e%3c/svg%3e\";\n var emptySearch = img;\n\nexport { emptySearch as default };\n","import React, { useState, useReducer, useRef, useCallback, useEffect, Children } from 'react';\nimport debounce from 'lodash/debounce';\nimport { EnableSelectionMinor } from '@shopify/polaris-icons';\nimport { classNames } from '../../utilities/css.js';\nimport { isElementOfType } from '../../utilities/components.js';\nimport { useLazyRef } from '../../utilities/use-lazy-ref.js';\nimport styles from './ResourceList.scss.js';\nimport { Select } from '../Select/Select.js';\nimport { ResourceItem } from '../ResourceItem/ResourceItem.js';\nimport { SELECT_ALL_ITEMS } from '../../utilities/resource-list/types.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { BulkActions } from '../BulkActions/BulkActions.js';\nimport { Button } from '../Button/Button.js';\nimport { CheckableButton } from '../CheckableButton/CheckableButton.js';\nimport { Sticky } from '../Sticky/Sticky.js';\nimport { EventListener } from '../EventListener/EventListener.js';\nimport { EmptySearchResult } from '../EmptySearchResult/EmptySearchResult.js';\nimport { Spinner } from '../Spinner/Spinner.js';\nimport { ResourceListContext } from '../../utilities/resource-list/context.js';\n\nconst SMALL_SCREEN_WIDTH = 458;\nconst SMALL_SPINNER_HEIGHT = 28;\nconst LARGE_SPINNER_HEIGHT = 45;\n\nfunction getAllItemsOnPage(items, idForItem) {\n return items.map((item, index) => {\n return idForItem(item, index);\n });\n}\n\nconst isSmallScreen = () => {\n return typeof window === 'undefined' ? false : window.innerWidth < SMALL_SCREEN_WIDTH;\n};\n\nfunction defaultIdForItem(item, index) {\n return Object.prototype.hasOwnProperty.call(item, 'id') ? item.id : index.toString();\n}\n\nconst ResourceList = function ResourceList({\n items,\n filterControl,\n emptyState,\n emptySearchState,\n resourceName: resourceNameProp,\n promotedBulkActions,\n bulkActions,\n selectedItems = [],\n isFiltered,\n selectable,\n hasMoreItems,\n loading,\n showHeader,\n totalItemsCount,\n sortValue,\n sortOptions,\n alternateTool,\n onSortChange,\n onSelectionChange,\n renderItem,\n idForItem = defaultIdForItem,\n resolveItemId\n}) {\n const i18n = useI18n();\n const [selectMode, setSelectMode] = useState(Boolean(selectedItems && selectedItems.length > 0));\n const [loadingPosition, setLoadingPositionState] = useState(0);\n const [lastSelected, setLastSelected] = useState();\n const [smallScreen, setSmallScreen] = useState(isSmallScreen());\n const forceUpdate = useReducer((x = 0) => x + 1, 0)[1];\n const [checkableButtons, setCheckableButtons] = useState(new Map());\n const defaultResourceName = useLazyRef(() => ({\n singular: i18n.translate('Polaris.ResourceList.defaultItemSingular'),\n plural: i18n.translate('Polaris.ResourceList.defaultItemPlural')\n }));\n const listRef = useRef(null);\n\n const handleSelectMode = selectMode => {\n setSelectMode(selectMode);\n\n if (!selectMode && onSelectionChange) {\n onSelectionChange([]);\n }\n };\n\n const handleResize = debounce(() => {\n const newSmallScreen = isSmallScreen();\n\n if (selectedItems && selectedItems.length === 0 && selectMode && !newSmallScreen) {\n handleSelectMode(false);\n }\n\n if (smallScreen !== newSmallScreen) {\n setSmallScreen(newSmallScreen);\n }\n }, 50, {\n leading: true,\n trailing: true,\n maxWait: 50\n });\n const isSelectable = Boolean(promotedBulkActions && promotedBulkActions.length > 0 || bulkActions && bulkActions.length > 0 || selectable);\n\n const bulkSelectState = () => {\n let selectState = 'indeterminate';\n\n if (!selectedItems || Array.isArray(selectedItems) && selectedItems.length === 0) {\n selectState = false;\n } else if (selectedItems === SELECT_ALL_ITEMS || Array.isArray(selectedItems) && selectedItems.length === items.length) {\n selectState = true;\n }\n\n return selectState;\n };\n\n const resourceName = resourceNameProp ? resourceNameProp : defaultResourceName.current;\n\n const headerTitle = () => {\n const itemsCount = items.length;\n const resource = !loading && (!totalItemsCount && itemsCount === 1 || totalItemsCount === 1) ? resourceName.singular : resourceName.plural;\n\n if (loading) {\n return i18n.translate('Polaris.ResourceList.loading', {\n resource\n });\n } else if (totalItemsCount) {\n return i18n.translate('Polaris.ResourceList.showingTotalCount', {\n itemsCount,\n totalItemsCount,\n resource\n });\n } else {\n return i18n.translate('Polaris.ResourceList.showing', {\n itemsCount,\n resource\n });\n }\n };\n\n const bulkActionsLabel = () => {\n const selectedItemsCount = selectedItems === SELECT_ALL_ITEMS ? `${items.length}+` : selectedItems.length;\n return i18n.translate('Polaris.ResourceList.selected', {\n selectedItemsCount\n });\n };\n\n const bulkActionsAccessibilityLabel = () => {\n const selectedItemsCount = selectedItems.length;\n const totalItemsCount = items.length;\n const allSelected = selectedItemsCount === totalItemsCount;\n\n if (totalItemsCount === 1 && allSelected) {\n return i18n.translate('Polaris.ResourceList.a11yCheckboxDeselectAllSingle', {\n resourceNameSingular: resourceName.singular\n });\n } else if (totalItemsCount === 1) {\n return i18n.translate('Polaris.ResourceList.a11yCheckboxSelectAllSingle', {\n resourceNameSingular: resourceName.singular\n });\n } else if (allSelected) {\n return i18n.translate('Polaris.ResourceList.a11yCheckboxDeselectAllMultiple', {\n itemsLength: items.length,\n resourceNamePlural: resourceName.plural\n });\n } else {\n return i18n.translate('Polaris.ResourceList.a11yCheckboxSelectAllMultiple', {\n itemsLength: items.length,\n resourceNamePlural: resourceName.plural\n });\n }\n };\n\n const paginatedSelectAllText = () => {\n if (!isSelectable || !hasMoreItems) {\n return;\n }\n\n if (selectedItems === SELECT_ALL_ITEMS) {\n return i18n.translate(isFiltered ? 'Polaris.ResourceList.allFilteredItemsSelected' : 'Polaris.ResourceList.allItemsSelected', {\n itemsLength: items.length,\n resourceNamePlural: resourceName.plural\n });\n }\n };\n\n const paginatedSelectAllAction = () => {\n if (!isSelectable || !hasMoreItems) {\n return;\n }\n\n const actionText = selectedItems === SELECT_ALL_ITEMS ? i18n.translate('Polaris.Common.undo') : i18n.translate(isFiltered ? 'Polaris.ResourceList.selectAllFilteredItems' : 'Polaris.ResourceList.selectAllItems', {\n itemsLength: items.length,\n resourceNamePlural: resourceName.plural\n });\n return {\n content: actionText,\n onAction: handleSelectAllItemsInStore\n };\n };\n\n const emptySearchResultText = {\n title: i18n.translate('Polaris.ResourceList.emptySearchResultTitle', {\n resourceNamePlural: resourceName.plural\n }),\n description: i18n.translate('Polaris.ResourceList.emptySearchResultDescription')\n };\n\n const handleSelectAllItemsInStore = () => {\n const newlySelectedItems = selectedItems === SELECT_ALL_ITEMS ? getAllItemsOnPage(items, idForItem) : SELECT_ALL_ITEMS;\n\n if (onSelectionChange) {\n onSelectionChange(newlySelectedItems);\n }\n };\n\n const setLoadingPosition = useCallback(() => {\n if (listRef.current != null) {\n if (typeof window === 'undefined') {\n return;\n }\n\n const overlay = listRef.current.getBoundingClientRect();\n const viewportHeight = Math.max(document.documentElement ? document.documentElement.clientHeight : 0, window.innerHeight || 0);\n const overflow = viewportHeight - overlay.height;\n const spinnerHeight = items.length === 1 ? SMALL_SPINNER_HEIGHT : LARGE_SPINNER_HEIGHT;\n const spinnerPosition = overflow > 0 ? (overlay.height - spinnerHeight) / 2 : (viewportHeight - overlay.top - spinnerHeight) / 2;\n setLoadingPositionState(spinnerPosition);\n }\n }, [listRef, items.length]);\n const itemsExist = items.length > 0;\n useEffect(() => {\n if (loading) {\n setLoadingPosition();\n }\n }, [loading, setLoadingPosition]);\n useEffect(() => {\n if (selectedItems && selectedItems.length > 0 && !selectMode) {\n setSelectMode(true);\n }\n\n if ((!selectedItems || selectedItems.length === 0) && !isSmallScreen()) {\n setSelectMode(false);\n }\n }, [selectedItems, selectMode]);\n useEffect(() => {\n forceUpdate();\n }, [forceUpdate, items]);\n\n const renderItemWithId = (item, index) => {\n const id = idForItem(item, index);\n const itemContent = renderItem(item, id, index);\n\n if (process.env.NODE_ENV === 'development' && !isElementOfType(itemContent, ResourceItem)) {\n // eslint-disable-next-line no-console\n console.warn(' renderItem function should return a .');\n }\n\n return itemContent;\n };\n\n const handleMultiSelectionChange = (lastSelected, currentSelected, resolveItemId) => {\n const min = Math.min(lastSelected, currentSelected);\n const max = Math.max(lastSelected, currentSelected);\n return items.slice(min, max + 1).map(resolveItemId);\n };\n\n const handleCheckableButtonRegistration = (key, button) => {\n if (!checkableButtons.get(key)) {\n setCheckableButtons(new Map(checkableButtons).set(key, button));\n }\n };\n\n const handleSelectionChange = (selected, id, sortOrder, shiftKey) => {\n if (selectedItems == null || onSelectionChange == null) {\n return;\n }\n\n let newlySelectedItems = selectedItems === SELECT_ALL_ITEMS ? getAllItemsOnPage(items, idForItem) : [...selectedItems];\n\n if (sortOrder !== undefined) {\n setLastSelected(sortOrder);\n }\n\n const lastSelectedFromState = lastSelected;\n let selectedIds = [id];\n\n if (shiftKey && lastSelectedFromState != null && sortOrder !== undefined && resolveItemId) {\n selectedIds = handleMultiSelectionChange(lastSelectedFromState, sortOrder, resolveItemId);\n }\n\n newlySelectedItems = [...new Set([...newlySelectedItems, ...selectedIds])];\n\n if (!selected) {\n for (const selectedId of selectedIds) {\n newlySelectedItems.splice(newlySelectedItems.indexOf(selectedId), 1);\n }\n }\n\n if (newlySelectedItems.length === 0 && !isSmallScreen()) {\n handleSelectMode(false);\n } else if (newlySelectedItems.length > 0) {\n handleSelectMode(true);\n }\n\n if (onSelectionChange) {\n onSelectionChange(newlySelectedItems);\n }\n };\n\n const handleToggleAll = () => {\n let newlySelectedItems;\n\n if (Array.isArray(selectedItems) && selectedItems.length === items.length || selectedItems === SELECT_ALL_ITEMS) {\n newlySelectedItems = [];\n } else {\n newlySelectedItems = items.map((item, index) => {\n return idForItem(item, index);\n });\n }\n\n if (newlySelectedItems.length === 0 && !isSmallScreen()) {\n handleSelectMode(false);\n } else if (newlySelectedItems.length > 0) {\n handleSelectMode(true);\n }\n\n let checkbox;\n\n if (isSmallScreen()) {\n checkbox = checkableButtons.get('bulkSm');\n } else if (newlySelectedItems.length === 0) {\n checkbox = checkableButtons.get('plain');\n } else {\n checkbox = checkableButtons.get('bulkLg');\n }\n\n if (onSelectionChange) {\n onSelectionChange(newlySelectedItems);\n } // setTimeout ensures execution after the Transition on BulkActions\n\n\n setTimeout(() => {\n checkbox && checkbox.focus();\n }, 0);\n };\n\n const bulkActionsMarkup = isSelectable ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.BulkActionsWrapper\n }, /*#__PURE__*/React.createElement(BulkActions, {\n label: bulkActionsLabel(),\n accessibilityLabel: bulkActionsAccessibilityLabel(),\n selected: bulkSelectState(),\n onToggleAll: handleToggleAll,\n selectMode: selectMode,\n onSelectModeToggle: handleSelectMode,\n promotedActions: promotedBulkActions,\n paginatedSelectAllAction: paginatedSelectAllAction(),\n paginatedSelectAllText: paginatedSelectAllText(),\n actions: bulkActions,\n disabled: loading,\n smallScreen: smallScreen\n })) : null;\n const filterControlMarkup = filterControl ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.FiltersWrapper\n }, filterControl) : null;\n const sortingSelectMarkup = sortOptions && sortOptions.length > 0 && !alternateTool ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SortWrapper\n }, /*#__PURE__*/React.createElement(Select, {\n label: i18n.translate('Polaris.ResourceList.sortingLabel'),\n labelInline: !smallScreen,\n labelHidden: smallScreen,\n options: sortOptions,\n onChange: onSortChange,\n value: sortValue,\n disabled: selectMode\n })) : null;\n const alternateToolMarkup = alternateTool && !sortingSelectMarkup ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.AlternateToolWrapper\n }, alternateTool) : null;\n const headerTitleMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.HeaderTitleWrapper\n }, headerTitle());\n const selectButtonMarkup = isSelectable ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SelectButtonWrapper\n }, /*#__PURE__*/React.createElement(Button, {\n disabled: selectMode,\n icon: EnableSelectionMinor,\n onClick: () => handleSelectMode(true)\n }, i18n.translate('Polaris.ResourceList.selectButtonText'))) : null;\n const checkableButtonMarkup = isSelectable ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.CheckableButtonWrapper\n }, /*#__PURE__*/React.createElement(CheckableButton, {\n accessibilityLabel: bulkActionsAccessibilityLabel(),\n label: headerTitle(),\n onToggleAll: handleToggleAll,\n plain: true,\n disabled: loading\n })) : null;\n const needsHeader = isSelectable || sortOptions && sortOptions.length > 0 || alternateTool;\n const headerWrapperOverlay = loading ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles['HeaderWrapper-overlay']\n }) : null;\n const showEmptyState = emptyState && !itemsExist && !loading;\n const showEmptySearchState = !showEmptyState && filterControl && !itemsExist && !loading;\n const headerMarkup = !showEmptyState && showHeader !== false && !showEmptySearchState && (showHeader || needsHeader) && listRef.current && /*#__PURE__*/React.createElement(\"div\", {\n className: styles.HeaderOuterWrapper\n }, /*#__PURE__*/React.createElement(Sticky, {\n boundingElement: listRef.current\n }, isSticky => {\n const headerClassName = classNames(styles.HeaderWrapper, sortOptions && sortOptions.length > 0 && !alternateTool && styles['HeaderWrapper-hasSort'], alternateTool && styles['HeaderWrapper-hasAlternateTool'], isSelectable && styles['HeaderWrapper-hasSelect'], loading && styles['HeaderWrapper-disabled'], isSelectable && selectMode && styles['HeaderWrapper-inSelectMode'], isSticky && styles['HeaderWrapper-isSticky']);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: headerClassName\n }, /*#__PURE__*/React.createElement(EventListener, {\n event: \"resize\",\n handler: handleResize\n }), headerWrapperOverlay, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.HeaderContentWrapper\n }, headerTitleMarkup, checkableButtonMarkup, alternateToolMarkup, sortingSelectMarkup, selectButtonMarkup), bulkActionsMarkup);\n }));\n const emptySearchStateMarkup = showEmptySearchState ? emptySearchState || /*#__PURE__*/React.createElement(\"div\", {\n className: styles.EmptySearchResultWrapper\n }, /*#__PURE__*/React.createElement(EmptySearchResult, Object.assign({}, emptySearchResultText, {\n withIllustration: true\n }))) : null;\n const emptyStateMarkup = showEmptyState ? emptyState : null;\n const defaultTopPadding = 8;\n const topPadding = loadingPosition > 0 ? loadingPosition : defaultTopPadding;\n const spinnerStyle = {\n paddingTop: `${topPadding}px`\n };\n const spinnerSize = items.length < 2 ? 'small' : 'large';\n const loadingOverlay = loading ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"li\", {\n className: styles.SpinnerContainer,\n style: spinnerStyle\n }, /*#__PURE__*/React.createElement(Spinner, {\n size: spinnerSize,\n accessibilityLabel: \"Items are loading\"\n })), /*#__PURE__*/React.createElement(\"li\", {\n className: styles.LoadingOverlay\n })) : null;\n const className = classNames(styles.ItemWrapper, loading && styles['ItemWrapper-isLoading']);\n const loadingWithoutItemsMarkup = loading && !itemsExist ? /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n tabIndex: -1\n }, loadingOverlay) : null;\n const resourceListClassName = classNames(styles.ResourceList, loading && styles.disabledPointerEvents, selectMode && styles.disableTextSelection);\n const listMarkup = itemsExist ? /*#__PURE__*/React.createElement(\"ul\", {\n className: resourceListClassName,\n ref: listRef,\n \"aria-live\": \"polite\",\n \"aria-busy\": loading\n }, loadingOverlay, Children.toArray(items.map(renderItemWithId))) : null; // This is probably a legit error but I don't have the time to refactor this\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n\n const context = {\n selectable: isSelectable,\n selectedItems,\n selectMode,\n resourceName,\n loading,\n onSelectionChange: handleSelectionChange,\n registerCheckableButtons: handleCheckableButtonRegistration\n };\n return /*#__PURE__*/React.createElement(ResourceListContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ResourceListWrapper\n }, filterControlMarkup, headerMarkup, listMarkup, emptySearchStateMarkup, emptyStateMarkup, loadingWithoutItemsMarkup));\n};\nResourceList.Item = ResourceItem;\n\nexport { ResourceList };\n","import React from 'react';\nimport { Modal, TextContainer, Stack } from '@shopify/polaris';\nimport { Icons } from '../../../util/superGrossIconFile';\n\nconst FeatureConfirmModal = ({ feature, onCancel, onFeatureConfirm }) => (\n \n \n \n \n
\n \n

Please read the following carefully before proceeding.

\n
\n
\n \n \n \n

\n Enabling this feature requires updating your permissions. will\n need to grant access to the following scope(s)\n

\n \n \n {Object.entries(feature.shopifyScopes).map(([key, value]) => (\n
\n \n {key}\n

\n \n {value}\n

\n
\n ))}\n \n
\n \n
\n \n
\n
\n {Icons.messageIcon}\n
\n \n

\n If you choose to disable this feature in the future, please\n contact our support team using the Intercom button at the\n bottom left of your screen or by emailing\n support@uporder.com.\n

\n
\n \n
\n
\n
\n
\n
\n \n);\n\nexport default FeatureConfirmModal;\n","import React from 'react';\n// eslint-disable-next-line import/no-unresolved\nimport '../cssOverrides/SwitchButton.scss';\n\nfunction SwitchButton({ disabled, checked, onChange }) {\n const handleToggle = () => {\n const newState = !checked;\n onChange(newState);\n };\n\n return (\n
\n \n
\n \n
\n );\n}\n\nexport default SwitchButton;\n","// FeatureList.js\nimport React, { useEffect, useState, useCallback } from 'react';\nimport { Icon, Page, Card, ResourceList, TextStyle } from '@shopify/polaris';\nimport { getSpently, postSpently } from '../util/spentlyRest';\nimport FeatureConfirmModal from '../widgets/builder/modals/FeatureConfirmModal';\nimport SwitchButton from '../components/SwitchButton';\nimport { Icons } from '../util/superGrossIconFile';\n\nconst FeatureList = () => {\n const [features, setFeatures] = useState([]);\n const [selectedFeature, setSelectedFeature] = useState(null);\n const [openModal, setOpenModal] = useState(false);\n\n const updateSelectedFeature = (previusFeature) => {\n const feature = { ...previusFeature };\n // toggle the feature's enabled status\n feature.enabled = !previusFeature.enabled;\n setSelectedFeature(feature);\n };\n\n useEffect(() => {\n // Fetch the list of features from an API\n const loadFeaturelist = async () => {\n const featureUrl = '/api/features';\n const featuresResponse = await getSpently(featureUrl);\n\n setFeatures(featuresResponse);\n };\n loadFeaturelist();\n }, []);\n\n // handle when user confirm the modal dialog\n const handleFeatureConfirm = useCallback(async () => {\n if (!selectedFeature) {\n return;\n }\n\n const featureBeforeUpdate = features.find(\n (f) => f.key === selectedFeature.key\n );\n updateSelectedFeature(featureBeforeUpdate);\n setOpenModal(false);\n }, [features, selectedFeature]);\n\n useEffect(() => {\n // will not trigger sever call if the selected feature is null or the modal is open\n if (!selectedFeature || openModal) {\n return;\n }\n\n const updateFeatureFlag = async () => {\n const results = await getSpently(`/api/features/enabled`);\n sessionStorage.setItem(\n `spently-featureFlags`,\n results ? JSON.stringify(results.enabled) : '[]'\n );\n };\n\n const updateFeature = async () => {\n const result = await postSpently(`/api/feature`, {\n key: selectedFeature.key,\n enabled: selectedFeature.enabled,\n });\n\n if (result.reload) {\n // redirect user to re-authenticate for the new feature\n const shop = window.sessionStorage['spently-shop'];\n sessionStorage.clear();\n window.location.href = `${window.location.origin}?shop=${shop}`;\n } else {\n updateFeatureFlag();\n }\n };\n updateFeature();\n }, [openModal, selectedFeature]);\n\n // update the feature list when the selected feature changes\n useEffect(() => {\n // will not trigger sever call if the selected feature is null or the modal is open\n if (!selectedFeature || openModal) {\n return;\n }\n\n // If the selected feature changes, update the feature list\n setFeatures(() =>\n features.map((f) => {\n if (f.key === selectedFeature.key) {\n return { ...selectedFeature };\n }\n return f;\n })\n );\n }, [features, openModal, selectedFeature]);\n\n // handle when user click 'enable' button\n // we don't update the feature's enabled status directly\n // the feauture's enabled status will be only loaded from server\n const onToggle = async (key) => {\n const featureBeforeUpdate = features.find((f) => f.key === key);\n updateSelectedFeature(featureBeforeUpdate);\n\n // if the feature doesn't require any shopify scopes, we can enable it directly\n if (Object.keys(featureBeforeUpdate.shopifyScopes).length === 0) {\n updateSelectedFeature(featureBeforeUpdate);\n } else {\n // trigger to open modal\n setOpenModal(true);\n }\n };\n\n // handle cancel from the modal\n const handleCancel = useCallback(() => {\n setSelectedFeature(null);\n setOpenModal(false);\n }, []);\n\n // disbale the switch button if the feature require any shopify scopes and already enabled\n const disbaleSwitchButton = (feature) =>\n Object.keys(feature.shopifyScopes).length > 0 && feature.enabled;\n\n // render the feature card\n const featureCard = (cardTitle, cardFeatures) => (\n \n
\n {\n const { key, featureName, featureDescription, enabled } = item;\n return (\n \n \n \n Icons[key]} />\n
\n\n \n

\n {featureName}\n

\n

{featureDescription}

\n
\n onToggle(key)}\n />\n \n \n );\n }}\n />\n \n \n );\n return (\n <>\n \n {featureCard(\n 'Features',\n features.filter((f) => !f.isThirdParty) // show non-third party features\n )}\n {featureCard(\n 'Third party components',\n features.filter((f) => f.isThirdParty) // show third party features\n )}\n \n {openModal ? (\n \n ) : null}\n \n );\n};\n\nexport default FeatureList;\n","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function (date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, _options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (_date, _flags, value, _options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n },\n incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n subPriority: 1,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n subPriority: 1,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function (date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function (date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function (string, token, _match, _options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\nexport default parsers;","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport parsers from \"./_lib/parsers/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar TIMEZONE_UNIT_PRIORITY = 10; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward (toDate no longer accepts a string)\n * toDate(1392098430000) // Unix to timestamp\n * toDate(new Date(2014, 1, 11, 11, 30, 30)) // Cloning the date\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, dirtyOptions) {\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n }; // If timezone isn't specified, it will be set to the system timezone\n\n var setters = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n subPriority: -1,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\n }\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n subPriority: parser.subPriority || 0,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\n\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n\n if (isNaN(date)) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * parseISO('2016-01-01')\n * ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n * and returns `Invalid Date` if the date is invalid.\n *\n * ```javascript\n * parseISO('2018-13-32')\n * //=> Invalid Date\n * ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n * if it fails to parse a string argument. Instead, it returns `Invalid Date`.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? 2 : toInteger(options.additionalDigits);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null; // either year or century is null, not both\n\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\n\nexport default function addHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function (value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n\n};\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarDays from \"../differenceInCalendarDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\n\nfunction compareLocalAsc(dateLeft, dateRight) {\n var diff = dateLeft.getFullYear() - dateRight.getFullYear() || dateLeft.getMonth() - dateRight.getMonth() || dateLeft.getDate() - dateRight.getDate() || dateLeft.getHours() - dateRight.getHours() || dateLeft.getMinutes() - dateRight.getMinutes() || dateLeft.getSeconds() - dateRight.getSeconds() || dateLeft.getMilliseconds() - dateRight.getMilliseconds();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.floor(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full days according to the local timezone\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * const result = differenceInDays(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 1)\n * )\n//=> 92\n */\n\n\nexport default function differenceInDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareLocalAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarDays(dateLeft, dateRight));\n dateLeft.setDate(dateLeft.getDate() - sign * difference); // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastDayNotFull = Number(compareLocalAsc(dateLeft, dateRight) === -sign);\n var result = sign * (difference - isLastDayNotFull); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport endOfDay from \"../endOfDay/index.js\";\nimport endOfMonth from \"../endOfMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\n\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarMonths from \"../differenceInCalendarMonths/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport isLastDayOfMonth from \"../isLastDayOfMonth/index.js\";\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n var result; // Check for the difference of less than month\n\n if (difference < 1) {\n result = 0;\n } else {\n if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n dateLeft.setDate(30);\n }\n\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign; // Check for cases of one full calendar month\n\n if (isLastDayOfMonth(toDate(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n } // Prevent negative zero\n\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","/*!\n * chartjs-adapter-date-fns v2.0.0\n * https://www.chartjs.org\n * (c) 2021 chartjs-adapter-date-fns Contributors\n * Released under the MIT license\n */\nimport { _adapters } from 'chart.js';\nimport { toDate, parse, parseISO, isValid, format, addYears, addQuarters, addMonths, addWeeks, addDays, addHours, addMinutes, addSeconds, addMilliseconds, differenceInYears, differenceInQuarters, differenceInMonths, differenceInWeeks, differenceInDays, differenceInHours, differenceInMinutes, differenceInSeconds, differenceInMilliseconds, startOfYear, startOfQuarter, startOfMonth, startOfWeek, startOfDay, startOfHour, startOfMinute, startOfSecond, endOfYear, endOfQuarter, endOfMonth, endOfWeek, endOfDay, endOfHour, endOfMinute, endOfSecond } from 'date-fns';\n\nconst FORMATS = {\n datetime: 'MMM d, yyyy, h:mm:ss aaaa',\n millisecond: 'h:mm:ss.SSS aaaa',\n second: 'h:mm:ss aaaa',\n minute: 'h:mm aaaa',\n hour: 'ha',\n day: 'MMM d',\n week: 'PP',\n month: 'MMM yyyy',\n quarter: 'qqq - yyyy',\n year: 'yyyy'\n};\n\n_adapters._date.override({\n _id: 'date-fns', // DEBUG\n\n formats: function() {\n return FORMATS;\n },\n\n parse: function(value, fmt) {\n if (value === null || typeof value === 'undefined') {\n return null;\n }\n const type = typeof value;\n if (type === 'number' || value instanceof Date) {\n value = toDate(value);\n } else if (type === 'string') {\n if (typeof fmt === 'string') {\n value = parse(value, fmt, new Date(), this.options);\n } else {\n value = parseISO(value, this.options);\n }\n }\n return isValid(value) ? value.getTime() : null;\n },\n\n format: function(time, fmt) {\n return format(time, fmt, this.options);\n },\n\n add: function(time, amount, unit) {\n switch (unit) {\n case 'millisecond': return addMilliseconds(time, amount);\n case 'second': return addSeconds(time, amount);\n case 'minute': return addMinutes(time, amount);\n case 'hour': return addHours(time, amount);\n case 'day': return addDays(time, amount);\n case 'week': return addWeeks(time, amount);\n case 'month': return addMonths(time, amount);\n case 'quarter': return addQuarters(time, amount);\n case 'year': return addYears(time, amount);\n default: return time;\n }\n },\n\n diff: function(max, min, unit) {\n switch (unit) {\n case 'millisecond': return differenceInMilliseconds(max, min);\n case 'second': return differenceInSeconds(max, min);\n case 'minute': return differenceInMinutes(max, min);\n case 'hour': return differenceInHours(max, min);\n case 'day': return differenceInDays(max, min);\n case 'week': return differenceInWeeks(max, min);\n case 'month': return differenceInMonths(max, min);\n case 'quarter': return differenceInQuarters(max, min);\n case 'year': return differenceInYears(max, min);\n default: return 0;\n }\n },\n\n startOf: function(time, unit, weekday) {\n switch (unit) {\n case 'second': return startOfSecond(time);\n case 'minute': return startOfMinute(time);\n case 'hour': return startOfHour(time);\n case 'day': return startOfDay(time);\n case 'week': return startOfWeek(time);\n case 'isoWeek': return startOfWeek(time, {weekStartsOn: +weekday});\n case 'month': return startOfMonth(time);\n case 'quarter': return startOfQuarter(time);\n case 'year': return startOfYear(time);\n default: return time;\n }\n },\n\n endOf: function(time, unit) {\n switch (unit) {\n case 'second': return endOfSecond(time);\n case 'minute': return endOfMinute(time);\n case 'hour': return endOfHour(time);\n case 'day': return endOfDay(time);\n case 'week': return endOfWeek(time);\n case 'month': return endOfMonth(time);\n case 'quarter': return endOfQuarter(time);\n case 'year': return endOfYear(time);\n default: return time;\n }\n }\n});\n","function measureColumn(tableData) {\n return function (column, index) {\n const {\n firstVisibleColumnIndex,\n tableLeftVisibleEdge: tableStart,\n tableRightVisibleEdge: tableEnd\n } = tableData;\n const leftEdge = column.offsetLeft;\n const rightEdge = leftEdge + column.offsetWidth;\n const isVisibleLeft = isEdgeVisible(leftEdge, tableStart, tableEnd);\n const isVisibleRight = isEdgeVisible(rightEdge, tableStart, tableEnd);\n const isVisible = isVisibleLeft || isVisibleRight;\n\n if (isVisible) {\n tableData.firstVisibleColumnIndex = Math.min(firstVisibleColumnIndex, index);\n }\n\n return {\n leftEdge,\n rightEdge,\n isVisible\n };\n };\n}\nfunction isEdgeVisible(position, start, end) {\n const minVisiblePixels = 30;\n return position >= start + minVisiblePixels && position <= end - minVisiblePixels;\n}\nfunction getPrevAndCurrentColumns(tableData, columnData) {\n const {\n firstVisibleColumnIndex\n } = tableData;\n const previousColumnIndex = Math.max(firstVisibleColumnIndex - 1, 0);\n const previousColumn = columnData[previousColumnIndex];\n const currentColumn = columnData[firstVisibleColumnIndex];\n return {\n previousColumn,\n currentColumn\n };\n}\n\nexport { getPrevAndCurrentColumns, isEdgeVisible, measureColumn };\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addSeconds\n * @category Second Helpers\n * @summary Add the specified number of seconds to the given date.\n *\n * @description\n * Add the specified number of seconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the seconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 seconds to 10 July 2014 12:45:00:\n * const result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:45:30\n */\n\nexport default function addSeconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * 1000);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 60000;\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\n\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\n\nexport default function addWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var days = amount * 7;\n return addDays(dirtyDate, days);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addQuarters\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the quarters added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * const result = addQuarters(new Date(2014, 8, 1), 1)\n * //=> Mon Dec 01 2014 00:00:00\n */\n\nexport default function addQuarters(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var months = amount * 3;\n return addMonths(dirtyDate, months);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\n\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import { millisecondsInMinute } from \"../constants/index.js\";\nimport differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInMinutes\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the signed number of full (rounded towards 0) minutes between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of minutes\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * const result = differenceInMinutes(\n * new Date(2014, 6, 2, 12, 20, 0),\n * new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n *\n * @example\n * // How many minutes are between 10:01:59 and 10:00:00\n * const result = differenceInMinutes(\n * new Date(2000, 0, 1, 10, 0, 0),\n * new Date(2000, 0, 1, 10, 1, 59)\n * )\n * //=> -1\n */\n\nexport default function differenceInMinutes(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInMinute;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import { millisecondsInHour } from \"../constants/index.js\";\nimport differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInHours\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of hours\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * const result = differenceInHours(\n * new Date(2014, 6, 2, 19, 0),\n * new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\n\nexport default function differenceInHours(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInHour;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import differenceInDays from \"../differenceInDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInWeeks\n * @category Week Helpers\n * @summary Get the number of full weeks between the given dates.\n *\n * @description\n * Get the number of full weeks between two dates. Fractional weeks are\n * truncated towards zero by default.\n *\n * One \"full week\" is the distance between a local time in one day to the same\n * local time 7 days earlier or later. A full week can sometimes be less than\n * or more than 7*24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 7*24-hour periods, use this instead:\n * `Math.floor(differenceInHours(dateLeft, dateRight)/(7*24))|0`.\n *\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of full weeks\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInWeeks(new Date(2014, 6, 20), new Date(2014, 6, 5))\n * //=> 2\n *\n * // How many full weeks are between\n * // 1 March 2020 0:00 and 6 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 8 weeks (54 days),\n * // even if DST starts and the period has\n * // only 54*24-1 hours.\n * const result = differenceInWeeks(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 6)\n * )\n * //=> 8\n */\n\nexport default function differenceInWeeks(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInDays(dateLeft, dateRight) / 7;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import differenceInMonths from \"../differenceInMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInQuarters\n * @category Quarter Helpers\n * @summary Get the number of quarters between the given dates.\n *\n * @description\n * Get the number of quarters between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of full quarters\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full quarters are between 31 December 2013 and 2 July 2014?\n * const result = differenceInQuarters(new Date(2014, 6, 2), new Date(2013, 11, 31))\n * //=> 2\n */\n\nexport default function differenceInQuarters(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMonths(dateLeft, dateRight) / 3;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarYears from \"../differenceInCalendarYears/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInYears\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))\n * //=> 1\n */\n\nexport default function differenceInYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarYears(dateLeft, dateRight)); // Set both dates to a valid leap year for accurate comparison when dealing\n // with leap days\n\n dateLeft.setFullYear(1584);\n dateRight.setFullYear(1584); // Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastYearNotFull = compareAsc(dateLeft, dateRight) === -sign;\n var result = sign * (difference - Number(isLastYearNotFull)); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfSecond\n * @category Second Helpers\n * @summary Return the start of a second for the given date.\n *\n * @description\n * Return the start of a second for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a second\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a second for 1 December 2014 22:15:45.400:\n * const result = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.000\n */\n\nexport default function startOfSecond(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setMilliseconds(0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMinute\n * @category Minute Helpers\n * @summary Return the start of a minute for the given date.\n *\n * @description\n * Return the start of a minute for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a minute\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a minute for 1 December 2014 22:15:45.400:\n * const result = startOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:00\n */\n\nexport default function startOfMinute(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setSeconds(0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfHour\n * @category Hour Helpers\n * @summary Return the start of an hour for the given date.\n *\n * @description\n * Return the start of an hour for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an hour\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an hour for 2 September 2014 11:55:00:\n * const result = startOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:00:00\n */\n\nexport default function startOfHour(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setMinutes(0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\n\nexport default function startOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3;\n date.setMonth(month, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfSecond\n * @category Second Helpers\n * @summary Return the end of a second for the given date.\n *\n * @description\n * Return the end of a second for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a second\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a second for 1 December 2014 22:15:45.400:\n * const result = endOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.999\n */\n\nexport default function endOfSecond(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setMilliseconds(999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMinute\n * @category Minute Helpers\n * @summary Return the end of a minute for the given date.\n *\n * @description\n * Return the end of a minute for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a minute\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a minute for 1 December 2014 22:15:45.400:\n * const result = endOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:59.999\n */\n\nexport default function endOfMinute(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setSeconds(59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfHour\n * @category Hour Helpers\n * @summary Return the end of an hour for the given date.\n *\n * @description\n * Return the end of an hour for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of an hour\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of an hour for 2 September 2014 11:55:00:\n * const result = endOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:59:59.999\n */\n\nexport default function endOfHour(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setMinutes(59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport default function endOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfQuarter\n * @category Quarter Helpers\n * @summary Return the end of a year quarter for the given date.\n *\n * @description\n * Return the end of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a quarter for 2 September 2014 11:55:00:\n * const result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3 + 3;\n date.setMonth(month, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * var result = endOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\n\nexport default function endOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n date.setFullYear(year + 1, 0, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","var styles = {\n \"DataTable\": \"Polaris-DataTable\",\n \"condensed\": \"Polaris-DataTable--condensed\",\n \"Navigation\": \"Polaris-DataTable__Navigation\",\n \"Pip\": \"Polaris-DataTable__Pip\",\n \"Pip-visible\": \"Polaris-DataTable__Pip--visible\",\n \"ScrollContainer\": \"Polaris-DataTable__ScrollContainer\",\n \"Table\": \"Polaris-DataTable__Table\",\n \"hoverable\": \"Polaris-DataTable--hoverable\",\n \"Cell\": \"Polaris-DataTable__Cell\",\n \"TableRow\": \"Polaris-DataTable__TableRow\",\n \"Cell-firstColumn\": \"Polaris-DataTable__Cell--firstColumn\",\n \"Cell-numeric\": \"Polaris-DataTable__Cell--numeric\",\n \"Cell-truncated\": \"Polaris-DataTable__Cell--truncated\",\n \"Cell-header\": \"Polaris-DataTable__Cell--header\",\n \"Cell-sortable\": \"Polaris-DataTable__Cell--sortable\",\n \"Cell-verticalAlignTop\": \"Polaris-DataTable__Cell--verticalAlignTop\",\n \"Cell-verticalAlignBottom\": \"Polaris-DataTable__Cell--verticalAlignBottom\",\n \"Cell-verticalAlignMiddle\": \"Polaris-DataTable__Cell--verticalAlignMiddle\",\n \"Cell-verticalAlignBaseline\": \"Polaris-DataTable__Cell--verticalAlignBaseline\",\n \"Icon\": \"Polaris-DataTable__Icon\",\n \"Heading\": \"Polaris-DataTable__Heading\",\n \"Heading-left\": \"Polaris-DataTable__Heading--left\",\n \"Cell-sorted\": \"Polaris-DataTable__Cell--sorted\",\n \"Cell-total\": \"Polaris-DataTable__Cell--total\",\n \"Cell-total-footer\": \"Polaris-DataTable--cellTotalFooter\",\n \"Footer\": \"Polaris-DataTable__Footer\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { CaretDownMinor, CaretUpMinor } from '@shopify/polaris-icons';\nimport { classNames, variationName } from '../../../../utilities/css.js';\nimport { headerCell } from '../../../shared.js';\nimport styles from '../../DataTable.scss.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\nimport { Icon } from '../../../Icon/Icon.js';\n\nfunction Cell({\n content,\n contentType,\n firstColumn,\n truncate,\n header,\n total,\n totalInFooter,\n sorted,\n sortable,\n sortDirection,\n verticalAlign = 'top',\n defaultSortDirection = 'ascending',\n onSort,\n colSpan\n}) {\n const i18n = useI18n();\n const numeric = contentType === 'numeric';\n const className = classNames(styles.Cell, styles[`Cell-${variationName('verticalAlign', verticalAlign)}`], firstColumn && styles['Cell-firstColumn'], firstColumn && truncate && styles['Cell-truncated'], header && styles['Cell-header'], total && styles['Cell-total'], totalInFooter && styles['Cell-total-footer'], numeric && styles['Cell-numeric'], sortable && styles['Cell-sortable'], sorted && styles['Cell-sorted']);\n const headerClassName = classNames(header && styles.Heading, header && contentType === 'text' && styles['Heading-left']);\n const iconClassName = classNames(sortable && styles.Icon);\n const direction = sorted && sortDirection ? sortDirection : defaultSortDirection;\n const source = direction === 'descending' ? CaretDownMinor : CaretUpMinor;\n const oppositeDirection = sortDirection === 'ascending' ? 'descending' : 'ascending';\n const sortAccessibilityLabel = i18n.translate('Polaris.DataTable.sortAccessibilityLabel', {\n direction: sorted ? oppositeDirection : direction\n });\n const iconMarkup = /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }, /*#__PURE__*/React.createElement(Icon, {\n source: source,\n accessibilityLabel: sortAccessibilityLabel\n }));\n const sortableHeadingContent = /*#__PURE__*/React.createElement(\"button\", {\n className: headerClassName,\n onClick: onSort\n }, iconMarkup, content);\n const columnHeadingContent = sortable ? sortableHeadingContent : content;\n const colSpanProp = colSpan && colSpan > 1 ? {\n colSpan\n } : {};\n const headingMarkup = header ? /*#__PURE__*/React.createElement(\"th\", Object.assign({}, headerCell.props, colSpanProp, {\n className: className,\n scope: \"col\",\n \"aria-sort\": sortDirection\n }), columnHeadingContent) : /*#__PURE__*/React.createElement(\"th\", Object.assign({\n className: className,\n scope: \"row\"\n }, colSpanProp), content);\n const cellMarkup = header || firstColumn ? headingMarkup : /*#__PURE__*/React.createElement(\"td\", Object.assign({\n className: className\n }, colSpanProp), content);\n return cellMarkup;\n}\n\nexport { Cell };\n","import React from 'react';\nimport { ChevronLeftMinor, ChevronRightMinor } from '@shopify/polaris-icons';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from '../../DataTable.scss.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\nimport { Button } from '../../../Button/Button.js';\n\nfunction Navigation({\n columnVisibilityData,\n isScrolledFarthestLeft,\n isScrolledFarthestRight,\n navigateTableLeft,\n navigateTableRight\n}) {\n const i18n = useI18n();\n const pipMarkup = columnVisibilityData.map((column, index) => {\n const className = classNames(styles.Pip, column.isVisible && styles['Pip-visible']);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n key: `pip-${index}`\n });\n });\n const leftA11yLabel = i18n.translate('Polaris.DataTable.navAccessibilityLabel', {\n direction: 'left'\n });\n const rightA11yLabel = i18n.translate('Polaris.DataTable.navAccessibilityLabel', {\n direction: 'right'\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Navigation\n }, /*#__PURE__*/React.createElement(Button, {\n plain: true,\n icon: ChevronLeftMinor,\n disabled: isScrolledFarthestLeft,\n accessibilityLabel: leftA11yLabel,\n onClick: navigateTableLeft\n }), pipMarkup, /*#__PURE__*/React.createElement(Button, {\n plain: true,\n icon: ChevronRightMinor,\n disabled: isScrolledFarthestRight,\n accessibilityLabel: rightA11yLabel,\n onClick: navigateTableRight\n }));\n}\n\nexport { Navigation };\n","import React, { PureComponent, createRef } from 'react';\nimport debounce from 'lodash/debounce';\nimport isEqual from 'lodash/isEqual';\nimport { classNames } from '../../utilities/css.js';\nimport { headerCell } from '../shared.js';\nimport { measureColumn, getPrevAndCurrentColumns } from './utilities.js';\nimport styles from './DataTable.scss.js';\nimport { Cell } from './components/Cell/Cell.js';\nimport { Navigation } from './components/Navigation/Navigation.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { EventListener } from '../EventListener/EventListener.js';\n\nclass DataTableInner extends PureComponent {\n constructor(...args) {\n super(...args);\n this.state = {\n condensed: false,\n columnVisibilityData: [],\n isScrolledFarthestLeft: true,\n isScrolledFarthestRight: false\n };\n this.dataTable = /*#__PURE__*/createRef();\n this.scrollContainer = /*#__PURE__*/createRef();\n this.table = /*#__PURE__*/createRef();\n this.handleResize = debounce(() => {\n const {\n table: {\n current: table\n },\n scrollContainer: {\n current: scrollContainer\n }\n } = this;\n let condensed = false;\n\n if (table && scrollContainer) {\n condensed = table.scrollWidth > scrollContainer.clientWidth;\n }\n\n this.setState({\n condensed,\n ...this.calculateColumnVisibilityData(condensed)\n });\n });\n\n this.calculateColumnVisibilityData = condensed => {\n const {\n table: {\n current: table\n },\n scrollContainer: {\n current: scrollContainer\n },\n dataTable: {\n current: dataTable\n }\n } = this;\n\n if (condensed && table && scrollContainer && dataTable) {\n const headerCells = table.querySelectorAll(headerCell.selector);\n\n if (headerCells.length > 0) {\n const firstVisibleColumnIndex = headerCells.length - 1;\n const tableLeftVisibleEdge = scrollContainer.scrollLeft;\n const tableRightVisibleEdge = scrollContainer.scrollLeft + dataTable.offsetWidth;\n const tableData = {\n firstVisibleColumnIndex,\n tableLeftVisibleEdge,\n tableRightVisibleEdge\n };\n const columnVisibilityData = [...headerCells].map(measureColumn(tableData));\n const lastColumn = columnVisibilityData[columnVisibilityData.length - 1];\n return {\n columnVisibilityData,\n ...getPrevAndCurrentColumns(tableData, columnVisibilityData),\n isScrolledFarthestLeft: tableLeftVisibleEdge === 0,\n isScrolledFarthestRight: lastColumn.rightEdge <= tableRightVisibleEdge\n };\n }\n }\n\n return {\n columnVisibilityData: [],\n previousColumn: undefined,\n currentColumn: undefined\n };\n };\n\n this.scrollListener = () => {\n this.setState(prevState => ({ ...this.calculateColumnVisibilityData(prevState.condensed)\n }));\n };\n\n this.navigateTable = direction => {\n const {\n currentColumn,\n previousColumn\n } = this.state;\n const {\n current: scrollContainer\n } = this.scrollContainer;\n\n const handleScroll = () => {\n if (!currentColumn || !previousColumn) {\n return;\n }\n\n if (scrollContainer) {\n scrollContainer.scrollLeft = direction === 'right' ? currentColumn.rightEdge : previousColumn.leftEdge;\n requestAnimationFrame(() => {\n this.setState(prevState => ({ ...this.calculateColumnVisibilityData(prevState.condensed)\n }));\n });\n }\n };\n\n return handleScroll;\n };\n\n this.renderHeadings = (heading, headingIndex) => {\n const {\n sortable,\n truncate = false,\n columnContentTypes,\n defaultSortDirection,\n initialSortColumnIndex = 0,\n verticalAlign\n } = this.props;\n const {\n sortDirection = defaultSortDirection,\n sortedColumnIndex = initialSortColumnIndex\n } = this.state;\n let sortableHeadingProps;\n const id = `heading-cell-${headingIndex}`;\n\n if (sortable) {\n const isSortable = sortable[headingIndex];\n const isSorted = isSortable && sortedColumnIndex === headingIndex;\n const direction = isSorted ? sortDirection : 'none';\n sortableHeadingProps = {\n defaultSortDirection,\n sorted: isSorted,\n sortable: isSortable,\n sortDirection: direction,\n onSort: this.defaultOnSort(headingIndex)\n };\n }\n\n return /*#__PURE__*/React.createElement(Cell, Object.assign({\n header: true,\n key: id,\n content: heading,\n contentType: columnContentTypes[headingIndex],\n firstColumn: headingIndex === 0,\n truncate: truncate\n }, sortableHeadingProps, {\n verticalAlign: verticalAlign\n }));\n };\n\n this.totalsRowHeading = () => {\n const {\n i18n,\n totals,\n totalsName\n } = this.props;\n const totalsLabel = totalsName ? totalsName : {\n singular: i18n.translate('Polaris.DataTable.totalRowHeading'),\n plural: i18n.translate('Polaris.DataTable.totalsRowHeading')\n };\n return totals && totals.filter(total => total !== '').length > 1 ? totalsLabel.plural : totalsLabel.singular;\n };\n\n this.renderTotals = (total, index) => {\n const id = `totals-cell-${index}`;\n const {\n truncate = false,\n verticalAlign\n } = this.props;\n let content;\n let contentType;\n\n if (index === 0) {\n content = this.totalsRowHeading();\n }\n\n if (total !== '' && index > 0) {\n contentType = 'numeric';\n content = total;\n }\n\n const totalInFooter = this.props.showTotalsInFooter;\n return /*#__PURE__*/React.createElement(Cell, {\n total: true,\n totalInFooter: totalInFooter,\n firstColumn: index === 0,\n key: id,\n content: content,\n contentType: contentType,\n truncate: truncate,\n verticalAlign: verticalAlign\n });\n };\n\n this.getColSpan = (rowLength, headingsLength, contentTypesLength, cellIndex) => {\n const rowLen = rowLength ? rowLength : 1;\n const colLen = headingsLength ? headingsLength : contentTypesLength;\n const colSpan = Math.floor(colLen / rowLen);\n const remainder = colLen % rowLen;\n return cellIndex === 0 ? colSpan + remainder : colSpan;\n };\n\n this.defaultRenderRow = (row, index) => {\n const {\n columnContentTypes,\n truncate = false,\n verticalAlign,\n hoverable = true,\n headings\n } = this.props;\n const className = classNames(styles.TableRow, hoverable && styles.hoverable);\n return /*#__PURE__*/React.createElement(\"tr\", {\n key: `row-${index}`,\n className: className\n }, row.map((content, cellIndex) => {\n const id = `cell-${cellIndex}-row-${index}`;\n const colSpan = this.getColSpan(row.length, headings.length, columnContentTypes.length, cellIndex);\n return /*#__PURE__*/React.createElement(Cell, {\n key: id,\n content: content,\n contentType: columnContentTypes[cellIndex],\n firstColumn: cellIndex === 0,\n truncate: truncate,\n verticalAlign: verticalAlign,\n colSpan: colSpan\n });\n }));\n };\n\n this.defaultOnSort = headingIndex => {\n const {\n onSort,\n defaultSortDirection = 'ascending',\n initialSortColumnIndex\n } = this.props;\n const {\n sortDirection = defaultSortDirection,\n sortedColumnIndex = initialSortColumnIndex\n } = this.state;\n let newSortDirection = defaultSortDirection;\n\n if (sortedColumnIndex === headingIndex) {\n newSortDirection = sortDirection === 'ascending' ? 'descending' : 'ascending';\n }\n\n const handleSort = () => {\n this.setState({\n sortDirection: newSortDirection,\n sortedColumnIndex: headingIndex\n }, () => {\n if (onSort) {\n onSort(headingIndex, newSortDirection);\n }\n });\n };\n\n return handleSort;\n };\n }\n\n componentDidMount() {\n // We need to defer the calculation in development so the styles have time to be injected.\n if (process.env.NODE_ENV === 'development') {\n setTimeout(() => {\n this.handleResize();\n }, 10);\n } else {\n this.handleResize();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (isEqual(prevProps, this.props)) {\n return;\n }\n\n this.handleResize();\n }\n\n componentWillUnmount() {\n this.handleResize.cancel();\n }\n\n render() {\n const {\n headings,\n totals,\n showTotalsInFooter,\n rows,\n footerContent,\n hideScrollIndicator = false\n } = this.props;\n const {\n condensed,\n columnVisibilityData,\n isScrolledFarthestLeft,\n isScrolledFarthestRight\n } = this.state;\n const className = classNames(styles.DataTable, condensed && styles.condensed);\n const wrapperClassName = classNames(styles.TableWrapper, condensed && styles.condensed);\n const headingMarkup = /*#__PURE__*/React.createElement(\"tr\", null, headings.map(this.renderHeadings));\n const totalsMarkup = totals ? /*#__PURE__*/React.createElement(\"tr\", null, totals.map(this.renderTotals)) : null;\n const bodyMarkup = rows.map(this.defaultRenderRow);\n const footerMarkup = footerContent ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Footer\n }, footerContent) : null;\n const headerTotalsMarkup = !showTotalsInFooter ? totalsMarkup : null;\n const footerTotalsMarkup = showTotalsInFooter ? /*#__PURE__*/React.createElement(\"tfoot\", null, totalsMarkup) : null;\n const navigationMarkup = hideScrollIndicator ? null : /*#__PURE__*/React.createElement(Navigation, {\n columnVisibilityData: columnVisibilityData,\n isScrolledFarthestLeft: isScrolledFarthestLeft,\n isScrolledFarthestRight: isScrolledFarthestRight,\n navigateTableLeft: this.navigateTable('left'),\n navigateTableRight: this.navigateTable('right')\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperClassName\n }, navigationMarkup, /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n ref: this.dataTable\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ScrollContainer,\n ref: this.scrollContainer\n }, /*#__PURE__*/React.createElement(EventListener, {\n event: \"resize\",\n handler: this.handleResize\n }), /*#__PURE__*/React.createElement(EventListener, {\n capture: true,\n event: \"scroll\",\n handler: this.scrollListener\n }), /*#__PURE__*/React.createElement(\"table\", {\n className: styles.Table,\n ref: this.table\n }, /*#__PURE__*/React.createElement(\"thead\", null, headingMarkup, headerTotalsMarkup), /*#__PURE__*/React.createElement(\"tbody\", null, bodyMarkup), footerTotalsMarkup)), footerMarkup));\n }\n\n}\n\nfunction DataTable(props) {\n const i18n = useI18n();\n return /*#__PURE__*/React.createElement(DataTableInner, Object.assign({}, props, {\n i18n: i18n\n }));\n}\n\nexport { DataTable };\n","// Compressed representation of the Grapheme_Cluster_Break=Extend\n// information from\n// http://www.unicode.org/Public/13.0.0/ucd/auxiliary/GraphemeBreakProperty.txt.\n// Each pair of elements represents a range, as an offet from the\n// previous range and a length. Numbers are in base-36, with the empty\n// string being a shorthand for 1.\nlet extend = /*@__PURE__*/\"lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o\".split(\",\").map(s => s ? parseInt(s, 36) : 1);\n// Convert offsets into absolute values\nfor (let i = 1; i < extend.length; i++)\n extend[i] += extend[i - 1];\nfunction isExtendingChar(code) {\n for (let i = 1; i < extend.length; i += 2)\n if (extend[i] > code)\n return extend[i - 1] <= code;\n return false;\n}\nfunction isRegionalIndicator(code) {\n return code >= 0x1F1E6 && code <= 0x1F1FF;\n}\nconst ZWJ = 0x200d;\n/**\nReturns a next grapheme cluster break _after_ (not equal to)\n`pos`, if `forward` is true, or before otherwise. Returns `pos`\nitself if no further cluster break is available in the string.\nMoves across surrogate pairs, extending characters (when\n`includeExtending` is true), characters joined with zero-width\njoiners, and flag emoji.\n*/\nfunction findClusterBreak(str, pos, forward = true, includeExtending = true) {\n return (forward ? nextClusterBreak : prevClusterBreak)(str, pos, includeExtending);\n}\nfunction nextClusterBreak(str, pos, includeExtending) {\n if (pos == str.length)\n return pos;\n // If pos is in the middle of a surrogate pair, move to its start\n if (pos && surrogateLow(str.charCodeAt(pos)) && surrogateHigh(str.charCodeAt(pos - 1)))\n pos--;\n let prev = codePointAt(str, pos);\n pos += codePointSize(prev);\n while (pos < str.length) {\n let next = codePointAt(str, pos);\n if (prev == ZWJ || next == ZWJ || includeExtending && isExtendingChar(next)) {\n pos += codePointSize(next);\n prev = next;\n }\n else if (isRegionalIndicator(next)) {\n let countBefore = 0, i = pos - 2;\n while (i >= 0 && isRegionalIndicator(codePointAt(str, i))) {\n countBefore++;\n i -= 2;\n }\n if (countBefore % 2 == 0)\n break;\n else\n pos += 2;\n }\n else {\n break;\n }\n }\n return pos;\n}\nfunction prevClusterBreak(str, pos, includeExtending) {\n while (pos > 0) {\n let found = nextClusterBreak(str, pos - 2, includeExtending);\n if (found < pos)\n return found;\n pos--;\n }\n return 0;\n}\nfunction surrogateLow(ch) { return ch >= 0xDC00 && ch < 0xE000; }\nfunction surrogateHigh(ch) { return ch >= 0xD800 && ch < 0xDC00; }\n/**\nFind the code point at the given position in a string (like the\n[`codePointAt`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt)\nstring method).\n*/\nfunction codePointAt(str, pos) {\n let code0 = str.charCodeAt(pos);\n if (!surrogateHigh(code0) || pos + 1 == str.length)\n return code0;\n let code1 = str.charCodeAt(pos + 1);\n if (!surrogateLow(code1))\n return code0;\n return ((code0 - 0xd800) << 10) + (code1 - 0xdc00) + 0x10000;\n}\n/**\nGiven a Unicode codepoint, return the JavaScript string that\nrespresents it (like\n[`String.fromCodePoint`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint)).\n*/\nfunction fromCodePoint(code) {\n if (code <= 0xffff)\n return String.fromCharCode(code);\n code -= 0x10000;\n return String.fromCharCode((code >> 10) + 0xd800, (code & 1023) + 0xdc00);\n}\n/**\nThe first character that takes up two positions in a JavaScript\nstring. It is often useful to compare with this after calling\n`codePointAt`, to figure out whether your character takes up 1 or\n2 index positions.\n*/\nfunction codePointSize(code) { return code < 0x10000 ? 1 : 2; }\n\n/**\nCount the column position at the given offset into the string,\ntaking extending characters and tab size into account.\n*/\nfunction countColumn(string, tabSize, to = string.length) {\n let n = 0;\n for (let i = 0; i < to;) {\n if (string.charCodeAt(i) == 9) {\n n += tabSize - (n % tabSize);\n i++;\n }\n else {\n n++;\n i = findClusterBreak(string, i);\n }\n }\n return n;\n}\n/**\nFind the offset that corresponds to the given column position in a\nstring, taking extending characters and tab size into account. By\ndefault, the string length is returned when it is too short to\nreach the column. Pass `strict` true to make it return -1 in that\nsituation.\n*/\nfunction findColumn(string, col, tabSize, strict) {\n for (let i = 0, n = 0;;) {\n if (n >= col)\n return i;\n if (i == string.length)\n break;\n n += string.charCodeAt(i) == 9 ? tabSize - (n % tabSize) : 1;\n i = findClusterBreak(string, i);\n }\n return strict === true ? -1 : string.length;\n}\n\n/**\nThe data structure for documents.\n*/\nclass Text {\n /**\n @internal\n */\n constructor() { }\n /**\n Get the line description around the given position.\n */\n lineAt(pos) {\n if (pos < 0 || pos > this.length)\n throw new RangeError(`Invalid position ${pos} in document of length ${this.length}`);\n return this.lineInner(pos, false, 1, 0);\n }\n /**\n Get the description for the given (1-based) line number.\n */\n line(n) {\n if (n < 1 || n > this.lines)\n throw new RangeError(`Invalid line number ${n} in ${this.lines}-line document`);\n return this.lineInner(n, true, 1, 0);\n }\n /**\n Replace a range of the text with the given content.\n */\n replace(from, to, text) {\n let parts = [];\n this.decompose(0, from, parts, 2 /* To */);\n if (text.length)\n text.decompose(0, text.length, parts, 1 /* From */ | 2 /* To */);\n this.decompose(to, this.length, parts, 1 /* From */);\n return TextNode.from(parts, this.length - (to - from) + text.length);\n }\n /**\n Append another document to this one.\n */\n append(other) {\n return this.replace(this.length, this.length, other);\n }\n /**\n Retrieve the text between the given points.\n */\n slice(from, to = this.length) {\n let parts = [];\n this.decompose(from, to, parts, 0);\n return TextNode.from(parts, to - from);\n }\n /**\n Test whether this text is equal to another instance.\n */\n eq(other) {\n if (other == this)\n return true;\n if (other.length != this.length || other.lines != this.lines)\n return false;\n let start = this.scanIdentical(other, 1), end = this.length - this.scanIdentical(other, -1);\n let a = new RawTextCursor(this), b = new RawTextCursor(other);\n for (let skip = start, pos = start;;) {\n a.next(skip);\n b.next(skip);\n skip = 0;\n if (a.lineBreak != b.lineBreak || a.done != b.done || a.value != b.value)\n return false;\n pos += a.value.length;\n if (a.done || pos >= end)\n return true;\n }\n }\n /**\n Iterate over the text. When `dir` is `-1`, iteration happens\n from end to start. This will return lines and the breaks between\n them as separate strings, and for long lines, might split lines\n themselves into multiple chunks as well.\n */\n iter(dir = 1) { return new RawTextCursor(this, dir); }\n /**\n Iterate over a range of the text. When `from` > `to`, the\n iterator will run in reverse.\n */\n iterRange(from, to = this.length) { return new PartialTextCursor(this, from, to); }\n /**\n Return a cursor that iterates over the given range of lines,\n _without_ returning the line breaks between, and yielding empty\n strings for empty lines.\n \n When `from` and `to` are given, they should be 1-based line numbers.\n */\n iterLines(from, to) {\n let inner;\n if (from == null) {\n inner = this.iter();\n }\n else {\n if (to == null)\n to = this.lines + 1;\n let start = this.line(from).from;\n inner = this.iterRange(start, Math.max(start, to == this.lines + 1 ? this.length : to <= 1 ? 0 : this.line(to - 1).to));\n }\n return new LineCursor(inner);\n }\n /**\n @internal\n */\n toString() { return this.sliceString(0); }\n /**\n Convert the document to an array of lines (which can be\n deserialized again via [`Text.of`](https://codemirror.net/6/docs/ref/#text.Text^of)).\n */\n toJSON() {\n let lines = [];\n this.flatten(lines);\n return lines;\n }\n /**\n Create a `Text` instance for the given array of lines.\n */\n static of(text) {\n if (text.length == 0)\n throw new RangeError(\"A document must have at least one line\");\n if (text.length == 1 && !text[0])\n return Text.empty;\n return text.length <= 32 /* Branch */ ? new TextLeaf(text) : TextNode.from(TextLeaf.split(text, []));\n }\n}\n// Leaves store an array of line strings. There are always line breaks\n// between these strings. Leaves are limited in size and have to be\n// contained in TextNode instances for bigger documents.\nclass TextLeaf extends Text {\n constructor(text, length = textLength(text)) {\n super();\n this.text = text;\n this.length = length;\n }\n get lines() { return this.text.length; }\n get children() { return null; }\n lineInner(target, isLine, line, offset) {\n for (let i = 0;; i++) {\n let string = this.text[i], end = offset + string.length;\n if ((isLine ? line : end) >= target)\n return new Line(offset, end, line, string);\n offset = end + 1;\n line++;\n }\n }\n decompose(from, to, target, open) {\n let text = from <= 0 && to >= this.length ? this\n : new TextLeaf(sliceText(this.text, from, to), Math.min(to, this.length) - Math.max(0, from));\n if (open & 1 /* From */) {\n let prev = target.pop();\n let joined = appendText(text.text, prev.text.slice(), 0, text.length);\n if (joined.length <= 32 /* Branch */) {\n target.push(new TextLeaf(joined, prev.length + text.length));\n }\n else {\n let mid = joined.length >> 1;\n target.push(new TextLeaf(joined.slice(0, mid)), new TextLeaf(joined.slice(mid)));\n }\n }\n else {\n target.push(text);\n }\n }\n replace(from, to, text) {\n if (!(text instanceof TextLeaf))\n return super.replace(from, to, text);\n let lines = appendText(this.text, appendText(text.text, sliceText(this.text, 0, from)), to);\n let newLen = this.length + text.length - (to - from);\n if (lines.length <= 32 /* Branch */)\n return new TextLeaf(lines, newLen);\n return TextNode.from(TextLeaf.split(lines, []), newLen);\n }\n sliceString(from, to = this.length, lineSep = \"\\n\") {\n let result = \"\";\n for (let pos = 0, i = 0; pos <= to && i < this.text.length; i++) {\n let line = this.text[i], end = pos + line.length;\n if (pos > from && i)\n result += lineSep;\n if (from < end && to > pos)\n result += line.slice(Math.max(0, from - pos), to - pos);\n pos = end + 1;\n }\n return result;\n }\n flatten(target) {\n for (let line of this.text)\n target.push(line);\n }\n scanIdentical() { return 0; }\n static split(text, target) {\n let part = [], len = -1;\n for (let line of text) {\n part.push(line);\n len += line.length + 1;\n if (part.length == 32 /* Branch */) {\n target.push(new TextLeaf(part, len));\n part = [];\n len = -1;\n }\n }\n if (len > -1)\n target.push(new TextLeaf(part, len));\n return target;\n }\n}\n// Nodes provide the tree structure of the `Text` type. They store a\n// number of other nodes or leaves, taking care to balance themselves\n// on changes. There are implied line breaks _between_ the children of\n// a node (but not before the first or after the last child).\nclass TextNode extends Text {\n constructor(children, length) {\n super();\n this.children = children;\n this.length = length;\n this.lines = 0;\n for (let child of children)\n this.lines += child.lines;\n }\n lineInner(target, isLine, line, offset) {\n for (let i = 0;; i++) {\n let child = this.children[i], end = offset + child.length, endLine = line + child.lines - 1;\n if ((isLine ? endLine : end) >= target)\n return child.lineInner(target, isLine, line, offset);\n offset = end + 1;\n line = endLine + 1;\n }\n }\n decompose(from, to, target, open) {\n for (let i = 0, pos = 0; pos <= to && i < this.children.length; i++) {\n let child = this.children[i], end = pos + child.length;\n if (from <= end && to >= pos) {\n let childOpen = open & ((pos <= from ? 1 /* From */ : 0) | (end >= to ? 2 /* To */ : 0));\n if (pos >= from && end <= to && !childOpen)\n target.push(child);\n else\n child.decompose(from - pos, to - pos, target, childOpen);\n }\n pos = end + 1;\n }\n }\n replace(from, to, text) {\n if (text.lines < this.lines)\n for (let i = 0, pos = 0; i < this.children.length; i++) {\n let child = this.children[i], end = pos + child.length;\n // Fast path: if the change only affects one child and the\n // child's size remains in the acceptable range, only update\n // that child\n if (from >= pos && to <= end) {\n let updated = child.replace(from - pos, to - pos, text);\n let totalLines = this.lines - child.lines + updated.lines;\n if (updated.lines < (totalLines >> (5 /* BranchShift */ - 1)) &&\n updated.lines > (totalLines >> (5 /* BranchShift */ + 1))) {\n let copy = this.children.slice();\n copy[i] = updated;\n return new TextNode(copy, this.length - (to - from) + text.length);\n }\n return super.replace(pos, end, updated);\n }\n pos = end + 1;\n }\n return super.replace(from, to, text);\n }\n sliceString(from, to = this.length, lineSep = \"\\n\") {\n let result = \"\";\n for (let i = 0, pos = 0; i < this.children.length && pos <= to; i++) {\n let child = this.children[i], end = pos + child.length;\n if (pos > from && i)\n result += lineSep;\n if (from < end && to > pos)\n result += child.sliceString(from - pos, to - pos, lineSep);\n pos = end + 1;\n }\n return result;\n }\n flatten(target) {\n for (let child of this.children)\n child.flatten(target);\n }\n scanIdentical(other, dir) {\n if (!(other instanceof TextNode))\n return 0;\n let length = 0;\n let [iA, iB, eA, eB] = dir > 0 ? [0, 0, this.children.length, other.children.length]\n : [this.children.length - 1, other.children.length - 1, -1, -1];\n for (;; iA += dir, iB += dir) {\n if (iA == eA || iB == eB)\n return length;\n let chA = this.children[iA], chB = other.children[iB];\n if (chA != chB)\n return length + chA.scanIdentical(chB, dir);\n length += chA.length + 1;\n }\n }\n static from(children, length = children.reduce((l, ch) => l + ch.length + 1, -1)) {\n let lines = 0;\n for (let ch of children)\n lines += ch.lines;\n if (lines < 32 /* Branch */) {\n let flat = [];\n for (let ch of children)\n ch.flatten(flat);\n return new TextLeaf(flat, length);\n }\n let chunk = Math.max(32 /* Branch */, lines >> 5 /* BranchShift */), maxChunk = chunk << 1, minChunk = chunk >> 1;\n let chunked = [], currentLines = 0, currentLen = -1, currentChunk = [];\n function add(child) {\n let last;\n if (child.lines > maxChunk && child instanceof TextNode) {\n for (let node of child.children)\n add(node);\n }\n else if (child.lines > minChunk && (currentLines > minChunk || !currentLines)) {\n flush();\n chunked.push(child);\n }\n else if (child instanceof TextLeaf && currentLines &&\n (last = currentChunk[currentChunk.length - 1]) instanceof TextLeaf &&\n child.lines + last.lines <= 32 /* Branch */) {\n currentLines += child.lines;\n currentLen += child.length + 1;\n currentChunk[currentChunk.length - 1] = new TextLeaf(last.text.concat(child.text), last.length + 1 + child.length);\n }\n else {\n if (currentLines + child.lines > chunk)\n flush();\n currentLines += child.lines;\n currentLen += child.length + 1;\n currentChunk.push(child);\n }\n }\n function flush() {\n if (currentLines == 0)\n return;\n chunked.push(currentChunk.length == 1 ? currentChunk[0] : TextNode.from(currentChunk, currentLen));\n currentLen = -1;\n currentLines = currentChunk.length = 0;\n }\n for (let child of children)\n add(child);\n flush();\n return chunked.length == 1 ? chunked[0] : new TextNode(chunked, length);\n }\n}\nText.empty = /*@__PURE__*/new TextLeaf([\"\"], 0);\nfunction textLength(text) {\n let length = -1;\n for (let line of text)\n length += line.length + 1;\n return length;\n}\nfunction appendText(text, target, from = 0, to = 1e9) {\n for (let pos = 0, i = 0, first = true; i < text.length && pos <= to; i++) {\n let line = text[i], end = pos + line.length;\n if (end >= from) {\n if (end > to)\n line = line.slice(0, to - pos);\n if (pos < from)\n line = line.slice(from - pos);\n if (first) {\n target[target.length - 1] += line;\n first = false;\n }\n else\n target.push(line);\n }\n pos = end + 1;\n }\n return target;\n}\nfunction sliceText(text, from, to) {\n return appendText(text, [\"\"], from, to);\n}\nclass RawTextCursor {\n constructor(text, dir = 1) {\n this.dir = dir;\n this.done = false;\n this.lineBreak = false;\n this.value = \"\";\n this.nodes = [text];\n this.offsets = [dir > 0 ? 1 : (text instanceof TextLeaf ? text.text.length : text.children.length) << 1];\n }\n nextInner(skip, dir) {\n this.done = this.lineBreak = false;\n for (;;) {\n let last = this.nodes.length - 1;\n let top = this.nodes[last], offsetValue = this.offsets[last], offset = offsetValue >> 1;\n let size = top instanceof TextLeaf ? top.text.length : top.children.length;\n if (offset == (dir > 0 ? size : 0)) {\n if (last == 0) {\n this.done = true;\n this.value = \"\";\n return this;\n }\n if (dir > 0)\n this.offsets[last - 1]++;\n this.nodes.pop();\n this.offsets.pop();\n }\n else if ((offsetValue & 1) == (dir > 0 ? 0 : 1)) {\n this.offsets[last] += dir;\n if (skip == 0) {\n this.lineBreak = true;\n this.value = \"\\n\";\n return this;\n }\n skip--;\n }\n else if (top instanceof TextLeaf) {\n // Move to the next string\n let next = top.text[offset + (dir < 0 ? -1 : 0)];\n this.offsets[last] += dir;\n if (next.length > Math.max(0, skip)) {\n this.value = skip == 0 ? next : dir > 0 ? next.slice(skip) : next.slice(0, next.length - skip);\n return this;\n }\n skip -= next.length;\n }\n else {\n let next = top.children[offset + (dir < 0 ? -1 : 0)];\n if (skip > next.length) {\n skip -= next.length;\n this.offsets[last] += dir;\n }\n else {\n if (dir < 0)\n this.offsets[last]--;\n this.nodes.push(next);\n this.offsets.push(dir > 0 ? 1 : (next instanceof TextLeaf ? next.text.length : next.children.length) << 1);\n }\n }\n }\n }\n next(skip = 0) {\n if (skip < 0) {\n this.nextInner(-skip, (-this.dir));\n skip = this.value.length;\n }\n return this.nextInner(skip, this.dir);\n }\n}\nclass PartialTextCursor {\n constructor(text, start, end) {\n this.value = \"\";\n this.done = false;\n this.cursor = new RawTextCursor(text, start > end ? -1 : 1);\n this.pos = start > end ? text.length : 0;\n this.from = Math.min(start, end);\n this.to = Math.max(start, end);\n }\n nextInner(skip, dir) {\n if (dir < 0 ? this.pos <= this.from : this.pos >= this.to) {\n this.value = \"\";\n this.done = true;\n return this;\n }\n skip += Math.max(0, dir < 0 ? this.pos - this.to : this.from - this.pos);\n let limit = dir < 0 ? this.pos - this.from : this.to - this.pos;\n if (skip > limit)\n skip = limit;\n limit -= skip;\n let { value } = this.cursor.next(skip);\n this.pos += (value.length + skip) * dir;\n this.value = value.length <= limit ? value : dir < 0 ? value.slice(value.length - limit) : value.slice(0, limit);\n this.done = !this.value;\n return this;\n }\n next(skip = 0) {\n if (skip < 0)\n skip = Math.max(skip, this.from - this.pos);\n else if (skip > 0)\n skip = Math.min(skip, this.to - this.pos);\n return this.nextInner(skip, this.cursor.dir);\n }\n get lineBreak() { return this.cursor.lineBreak && this.value != \"\"; }\n}\nclass LineCursor {\n constructor(inner) {\n this.inner = inner;\n this.afterBreak = true;\n this.value = \"\";\n this.done = false;\n }\n next(skip = 0) {\n let { done, lineBreak, value } = this.inner.next(skip);\n if (done) {\n this.done = true;\n this.value = \"\";\n }\n else if (lineBreak) {\n if (this.afterBreak) {\n this.value = \"\";\n }\n else {\n this.afterBreak = true;\n this.next();\n }\n }\n else {\n this.value = value;\n this.afterBreak = false;\n }\n return this;\n }\n get lineBreak() { return false; }\n}\nif (typeof Symbol != \"undefined\") {\n Text.prototype[Symbol.iterator] = function () { return this.iter(); };\n RawTextCursor.prototype[Symbol.iterator] = PartialTextCursor.prototype[Symbol.iterator] =\n LineCursor.prototype[Symbol.iterator] = function () { return this; };\n}\n/**\nThis type describes a line in the document. It is created\non-demand when lines are [queried](https://codemirror.net/6/docs/ref/#text.Text.lineAt).\n*/\nclass Line {\n /**\n @internal\n */\n constructor(\n /**\n The position of the start of the line.\n */\n from, \n /**\n The position at the end of the line (_before_ the line break,\n or at the end of document for the last line).\n */\n to, \n /**\n This line's line number (1-based).\n */\n number, \n /**\n The line's content.\n */\n text) {\n this.from = from;\n this.to = to;\n this.number = number;\n this.text = text;\n }\n /**\n The length of the line (not including any line break after it).\n */\n get length() { return this.to - this.from; }\n}\n\nexport { Line, Text, codePointAt, codePointSize, countColumn, findClusterBreak, findColumn, fromCodePoint };\n","import {\n DataTable,\n Stack,\n Pagination,\n Spinner,\n EmptyState,\n DisplayText,\n} from '@shopify/polaris';\nimport { SearchIcon } from '@shopify/polaris-icons';\nimport React, { useState, useEffect, useCallback } from 'react';\nimport theme from '../util/theme';\n\nconst PanTable = ({\n url,\n headings,\n types,\n mapper,\n get,\n emptyWarningMessage,\n}) => {\n const [state, setState] = useState({\n data: null,\n currentPage: 1,\n pageCount: 1,\n });\n const [loading, setLoading] = useState(true);\n const pageSize = 25;\n\n const loadData = useCallback(\n async (newPage) => {\n setLoading(true);\n // setState({ ...state, loading: true });\n const p = newPage || state.currentPage;\n const response = await get(`${url}&page=${p}&pageSize=${pageSize}`);\n const mapped = mapper(response);\n setState({\n data: mapped.data,\n currentPage: p,\n pageCount: mapped.pageCount,\n });\n setLoading(false);\n },\n [get, mapper, state, url]\n );\n\n useEffect(() => {\n if (!state.data) {\n loadData();\n }\n }, [state, loadData]);\n\n if (loading) {\n return (\n
\n \n
\n \n
\n
\n );\n }\n\n if (state.data.length === 0) {\n const { colors } = theme();\n return (\n \n \n No Records Found\n

{emptyWarningMessage}

\n
\n );\n }\n\n return (\n \n 1}\n onNext={() => loadData(state.currentPage + 1)}\n onPrevious={() => loadData(state.currentPage - 1)}\n />\n \n }\n />\n );\n};\n\nexport default PanTable;\n","import { Card } from '@shopify/polaris';\nimport React from 'react';\nimport PanTable from '../../framework/ui/PanTable';\nimport { getSpently } from '../../util/spentlyRest';\nimport { urlDate } from '../../util/formatters';\nimport { formatDate } from '../../framework/util/formatters';\nimport { downloadCsv } from '../../framework/util/rest';\n\nconst RoiTable = ({ emailType, range }) => {\n const mapper = (response) => {\n const res = response[0];\n return {\n data: res.ROIData.map((r) => [\n r.order,\n r.emailSentDate ? formatDate(r.emailSentDate) : 'N/A',\n r.engagementDate ? formatDate(r.engagementDate) : 'N/A',\n r.email,\n r.value,\n r.discountCode,\n r.category,\n ]),\n pageCount: res.pages,\n };\n };\n\n const q = `start=${urlDate(range.start)}&end=${urlDate(range.end)} 23:59:59`;\n\n const downloadFile = async () => {\n downloadCsv(`api/roi/export?${q}`, 'RoiReport');\n };\n return (\n \n \n \n );\n};\nexport default RoiTable;\n","import React from 'react';\nimport { Stack, Heading, TextStyle } from '@shopify/polaris';\n\nconst DataListRow = ({ name, value }) => (\n \n

{name}

\n \n {value}\n \n
\n);\n\nexport default DataListRow;\n","import { Card, Stack } from '@shopify/polaris';\nimport React from 'react';\nimport DataListRow from '../../components/DataListRow';\nimport {\n formatCurrency,\n formatPercentage,\n} from '../../framework/util/formatters';\n\nconst ReportStats = ({ results }) => (\n \n
\n \n \n \n \n \n \n \n \n {results.emailsSent > 0 ? (\n \n ) : null}\n \n
\n
\n);\n\nexport default ReportStats;\n","/* eslint-disable max-lines */\nimport {\n Card,\n DisplayText,\n Layout,\n Banner,\n Button,\n Page,\n Stack,\n TextStyle,\n Loading,\n Popover,\n EmptyState,\n} from '@shopify/polaris';\nimport React, { useState, useEffect, useContext } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport 'chart.js/auto';\nimport { Chart } from 'react-chartjs-2';\nimport 'chartjs-adapter-date-fns';\nimport { add, format, parseISO } from 'date-fns';\nimport { CalendarIcon } from '@shopify/polaris-icons';\nimport { getSpently } from '../util/spentlyRest';\nimport DatePickerDropdown from '../components/DatePickerDropdown';\nimport { emailTypes, formatEmailType, urlDate } from '../util/formatters';\nimport { formatCurrency } from '../framework/util/formatters';\nimport { DateRangeContext } from '../state/DateRangeContext';\nimport RoiTable from '../widgets/reports/RoiTable';\nimport ReportStats from '../widgets/reports/ReportStats';\nimport PanFilteredSelect from '../framework/ui/PanFilteredSelect';\nimport theme from '../framework/util/theme';\n\nconst Reports = () => {\n const query = new URLSearchParams(useLocation().search);\n const emailType = query.get('emailType');\n const { colors } = theme();\n\n const [results, setResults] = useState(null);\n const [error, setError] = useState(null);\n const [range, setRange] = useContext(DateRangeContext);\n const [typeSelector, setTypeSelector] = useState(false);\n\n useEffect(() => {\n const load = async () => {\n let qs = `?start=${urlDate(range.start)}&end=${urlDate(\n range.end\n )} 23:59:59`;\n if (emailType) {\n qs += `&emailType=${emailType}`;\n }\n const r = await getSpently(`/api/Report${qs}`, setError);\n setResults(r);\n };\n\n load();\n }, [range, emailType]);\n\n if (error) {\n return (\n \n

{error.statusText}

\n
\n );\n }\n\n if (!results) {\n return (\n \n \n \n );\n }\n const data = {\n labels: [],\n datasets: [\n {\n label: 'Revenue',\n data: [],\n fill: true,\n backgroundColor: colors.graph.fill,\n borderColor: colors.graph.border,\n lineTension: 0,\n },\n ],\n };\n\n const opts = {\n maintainAspectRatio: false,\n responsive: true,\n tooltips: {\n callbacks: {\n label: (obj) => formatCurrency(parseFloat(obj.value)),\n title: (obj) => format(parseISO(obj[0].label), 'dd-MMM-yyyy'),\n },\n },\n scales: {\n x: {\n type: 'time',\n min: range.start,\n max: range.end,\n time: {\n parser: 'yyyy-MM-dd',\n minUnit: 'week',\n displayFormats: {\n hour: 'MMM dd',\n day: 'MMM dd',\n week: 'MMM dd',\n month: 'MMM yyyy',\n },\n },\n },\n y: {\n beginAtZero: true,\n },\n },\n plugins: {\n tooltip: {\n callbacks: { label: (value) => formatCurrency(value.parsed.y) },\n },\n },\n };\n\n if (results.roiByTimePeriod.length === 1) {\n // In the case of a single data point we'll put in extras just to make\n // it look nice and centered.\n const single = results.roiByTimePeriod[0];\n data.labels.push(add(parseISO(single.period), { days: -1 }));\n data.datasets[0].data.push(null);\n data.labels.push(results.roiByTimePeriod[0].period);\n data.datasets[0].data.push(results.roiByTimePeriod[0].value);\n data.labels.push(add(parseISO(single.period), { days: 1 }));\n data.datasets[0].data.push(null);\n } else {\n results.roiByTimePeriod\n .sort((a, b) => (a.period > b.period ? 1 : -1))\n .forEach((result) => {\n data.labels.push(result.period);\n data.datasets[0].data.push(result.value);\n });\n }\n\n const showChart = results && results.roiByTimePeriod.length > 0;\n const errorMsg = \"We couldn't find any data in the range you selected.\";\n return (\n \n \n \n \n \n \n \n setTypeSelector(!typeSelector)}\n >\n \n {formatEmailType(results.emailType)}\n \n \n }\n autofocusTarget=\"first-node\"\n active={typeSelector}\n onClose={() => setTypeSelector(!typeSelector)}\n >\n \n ({\n key: emailTypes[et],\n content: emailTypes[et],\n onAction: () => {\n document.location = `/Reports?emailType=${et}`;\n },\n })),\n },\n ]}\n />\n \n \n \n \n {formatCurrency(results.revenue)}\n \n \n \n \n \n\n \n \n \n {\n setResults(null);\n setRange(r);\n }}\n />\n \n \n \n \n \n \n \n \n \n \n {results && !showChart && (\n
\n \n \n {errorMsg}\n

Try selecting a different date range.

\n
\n
\n )}\n {showChart && (\n \n )}\n \n
\n
\n\n \n \n \n
\n
\n \n \n \n
\n
\n );\n};\n\nexport default Reports;\n","import {\n Card,\n Layout,\n Page,\n Stack,\n RangeSlider,\n DisplayText,\n TextStyle,\n Loading,\n SkeletonDisplayText,\n SkeletonBodyText,\n} from '@shopify/polaris';\nimport React, { useEffect, useState } from 'react';\nimport PanTable from '../framework/ui/PanTable';\nimport { formatCurrency, formatDate } from '../framework/util/formatters';\nimport { getSpently } from '../util/spentlyRest';\n\nconst Usage = () => {\n const [billing, setBilling] = useState(null);\n\n useEffect(() => {\n const loadBilling = async () => {\n const billResponse = await getSpently('/api/account/billing');\n setBilling(billResponse);\n };\n\n if (!billing) {\n loadBilling();\n }\n }, [billing, setBilling]);\n\n const renderTop = () => (\n <>\n {billing && (\n \n )}\n {!billing && (\n <>\n
\n \n \n )}\n \n

0

\n

2500

\n

5000

\n
\n\n \n
\n \n Plan resets:\n {billing && (\n \n {formatDate(billing.resetDate)}\n \n )}\n {!billing && (\n
\n \n
\n )}\n
\n Revenue from UpOrder this cycle\n {billing && (\n \n ${billing.revenue}\n \n )}\n {!billing && (\n
\n \n
\n )}\n
\n \n );\n\n const mapper = (records) => ({\n data: records.usageCharges.map((uc) => [\n formatDate(uc.CreatedAt),\n formatCurrency(uc.Price),\n `${formatDate(uc.CycleStart)} to ${formatDate(uc.CycleEnd)}`,\n uc.Description,\n ]),\n pageCount: records.pages,\n });\n\n return (\n <>\n {!billing && }\n \n \n \n \n
{renderTop()}
\n
\n
\n \n \n
\n
Want to know how well your emails are performing?
\n
\n

\n Head over to the new analytics page and find out how each of\n your emails is performing and get a more in-depth view of\n where your revenue is coming from.\n

\n
\n
\n
\n \n \n \n \n \n
\n
\n \n );\n};\n\nexport default Usage;\n","import { memo, useEffect } from 'react';\nimport { useFrame } from '../../utilities/frame/hooks.js';\n\n// that the interface defining the props is defined in this file, not imported\n// from elsewhere. This silly workaround ensures that the Props Explorer table\n// is generated correctly.\n\nconst ContextualSaveBar = /*#__PURE__*/memo(function ContextualSaveBar({\n message,\n saveAction,\n discardAction,\n alignContentFlush,\n fullWidth,\n contextControl,\n secondaryMenu\n}) {\n const {\n setContextualSaveBar,\n removeContextualSaveBar\n } = useFrame();\n useEffect(() => {\n setContextualSaveBar({\n message,\n saveAction,\n discardAction,\n alignContentFlush,\n fullWidth,\n contextControl,\n secondaryMenu\n });\n }, [message, saveAction, discardAction, alignContentFlush, setContextualSaveBar, fullWidth, contextControl, secondaryMenu]);\n useEffect(() => {\n return removeContextualSaveBar;\n }, [removeContextualSaveBar]);\n return null;\n});\n\nexport { ContextualSaveBar };\n","import {\n Card,\n Layout,\n Page,\n FormLayout,\n TextField,\n Loading,\n Toast,\n ContextualSaveBar,\n} from '@shopify/polaris';\nimport React, { useEffect, useState } from 'react';\nimport { getSpently, postSpently } from '../util/spentlyRest';\nimport SocialSettings from '../widgets/settings/SocialSettings';\n\nconst CompanySettings = () => {\n const [settings, setSettings] = useState({});\n const [dirty, setDirty] = useState(false);\n const [saving, setSaving] = useState(false);\n const [active, setActive] = useState(false);\n const [error, setError] = useState(false);\n\n useEffect(() => {\n const loadSettings = async () =>\n setSettings(await getSpently('/api/settings'));\n\n if (!settings.companyId) {\n loadSettings();\n }\n });\n\n const saveSettings = async () => {\n setSaving(true);\n await postSpently('/api/settings', settings, () => {\n setError('Could not save Settings.');\n });\n setDirty(false);\n setSaving(false);\n setActive(true);\n };\n\n if (!settings.companyId) {\n return ;\n }\n const save = (newVals) => {\n setDirty(true);\n setSettings({ ...settings, ...newVals });\n };\n\n return (\n <>\n {dirty && (\n document.location.reload() }}\n />\n )}\n \n \n \n \n \n save({ companyName: val })}\n />\n save({ companyWebsiteUrl: val })}\n />\n save({ companySupportEmail: val })}\n />\n save({ companyPhone: val })}\n />\n save({ companyAddress: val })}\n />\n save({ companyCity: val })}\n />\n save({ companyProvince: val })}\n />\n save({ companyCountry: val })}\n />\n save({ companyPostal: val })}\n />\n \n \n \n \n \n \n \n \n \n {active && (\n setActive(!active)}\n />\n )}\n \n \n );\n};\n\nexport default CompanySettings;\n","import { Text, findClusterBreak } from '@codemirror/text';\nexport { Text } from '@codemirror/text';\n\nconst DefaultSplit = /\\r\\n?|\\n/;\n/**\nDistinguishes different ways in which positions can be mapped.\n*/\nvar MapMode = /*@__PURE__*/(function (MapMode) {\n /**\n Map a position to a valid new position, even when its context\n was deleted.\n */\n MapMode[MapMode[\"Simple\"] = 0] = \"Simple\";\n /**\n Return null if deletion happens across the position.\n */\n MapMode[MapMode[\"TrackDel\"] = 1] = \"TrackDel\";\n /**\n Return null if the character _before_ the position is deleted.\n */\n MapMode[MapMode[\"TrackBefore\"] = 2] = \"TrackBefore\";\n /**\n Return null if the character _after_ the position is deleted.\n */\n MapMode[MapMode[\"TrackAfter\"] = 3] = \"TrackAfter\";\nreturn MapMode})(MapMode || (MapMode = {}));\n/**\nA change description is a variant of [change set](https://codemirror.net/6/docs/ref/#state.ChangeSet)\nthat doesn't store the inserted text. As such, it can't be\napplied, but is cheaper to store and manipulate.\n*/\nclass ChangeDesc {\n // Sections are encoded as pairs of integers. The first is the\n // length in the current document, and the second is -1 for\n // unaffected sections, and the length of the replacement content\n // otherwise. So an insertion would be (0, n>0), a deletion (n>0,\n // 0), and a replacement two positive numbers.\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n sections) {\n this.sections = sections;\n }\n /**\n The length of the document before the change.\n */\n get length() {\n let result = 0;\n for (let i = 0; i < this.sections.length; i += 2)\n result += this.sections[i];\n return result;\n }\n /**\n The length of the document after the change.\n */\n get newLength() {\n let result = 0;\n for (let i = 0; i < this.sections.length; i += 2) {\n let ins = this.sections[i + 1];\n result += ins < 0 ? this.sections[i] : ins;\n }\n return result;\n }\n /**\n False when there are actual changes in this set.\n */\n get empty() { return this.sections.length == 0 || this.sections.length == 2 && this.sections[1] < 0; }\n /**\n Iterate over the unchanged parts left by these changes.\n */\n iterGaps(f) {\n for (let i = 0, posA = 0, posB = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n if (ins < 0) {\n f(posA, posB, len);\n posB += len;\n }\n else {\n posB += ins;\n }\n posA += len;\n }\n }\n /**\n Iterate over the ranges changed by these changes. (See\n [`ChangeSet.iterChanges`](https://codemirror.net/6/docs/ref/#state.ChangeSet.iterChanges) for a\n variant that also provides you with the inserted text.)\n \n When `individual` is true, adjacent changes (which are kept\n separate for [position mapping](https://codemirror.net/6/docs/ref/#state.ChangeDesc.mapPos)) are\n reported separately.\n */\n iterChangedRanges(f, individual = false) {\n iterChanges(this, f, individual);\n }\n /**\n Get a description of the inverted form of these changes.\n */\n get invertedDesc() {\n let sections = [];\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n if (ins < 0)\n sections.push(len, ins);\n else\n sections.push(ins, len);\n }\n return new ChangeDesc(sections);\n }\n /**\n Compute the combined effect of applying another set of changes\n after this one. The length of the document after this set should\n match the length before `other`.\n */\n composeDesc(other) { return this.empty ? other : other.empty ? this : composeSets(this, other); }\n /**\n Map this description, which should start with the same document\n as `other`, over another set of changes, so that it can be\n applied after it. When `before` is true, map as if the changes\n in `other` happened before the ones in `this`.\n */\n mapDesc(other, before = false) { return other.empty ? this : mapSet(this, other, before); }\n mapPos(pos, assoc = -1, mode = MapMode.Simple) {\n let posA = 0, posB = 0;\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++], endA = posA + len;\n if (ins < 0) {\n if (endA > pos)\n return posB + (pos - posA);\n posB += len;\n }\n else {\n if (mode != MapMode.Simple && endA >= pos &&\n (mode == MapMode.TrackDel && posA < pos && endA > pos ||\n mode == MapMode.TrackBefore && posA < pos ||\n mode == MapMode.TrackAfter && endA > pos))\n return null;\n if (endA > pos || endA == pos && assoc < 0 && !len)\n return pos == posA || assoc < 0 ? posB : posB + ins;\n posB += ins;\n }\n posA = endA;\n }\n if (pos > posA)\n throw new RangeError(`Position ${pos} is out of range for changeset of length ${posA}`);\n return posB;\n }\n /**\n Check whether these changes touch a given range. When one of the\n changes entirely covers the range, the string `\"cover\"` is\n returned.\n */\n touchesRange(from, to = from) {\n for (let i = 0, pos = 0; i < this.sections.length && pos <= to;) {\n let len = this.sections[i++], ins = this.sections[i++], end = pos + len;\n if (ins >= 0 && pos <= to && end >= from)\n return pos < from && end > to ? \"cover\" : true;\n pos = end;\n }\n return false;\n }\n /**\n @internal\n */\n toString() {\n let result = \"\";\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n result += (result ? \" \" : \"\") + len + (ins >= 0 ? \":\" + ins : \"\");\n }\n return result;\n }\n /**\n Serialize this change desc to a JSON-representable value.\n */\n toJSON() { return this.sections; }\n /**\n Create a change desc from its JSON representation (as produced\n by [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeDesc.toJSON).\n */\n static fromJSON(json) {\n if (!Array.isArray(json) || json.length % 2 || json.some(a => typeof a != \"number\"))\n throw new RangeError(\"Invalid JSON representation of ChangeDesc\");\n return new ChangeDesc(json);\n }\n}\n/**\nA change set represents a group of modifications to a document. It\nstores the document length, and can only be applied to documents\nwith exactly that length.\n*/\nclass ChangeSet extends ChangeDesc {\n /**\n @internal\n */\n constructor(sections, \n /**\n @internal\n */\n inserted) {\n super(sections);\n this.inserted = inserted;\n }\n /**\n Apply the changes to a document, returning the modified\n document.\n */\n apply(doc) {\n if (this.length != doc.length)\n throw new RangeError(\"Applying change set to a document with the wrong length\");\n iterChanges(this, (fromA, toA, fromB, _toB, text) => doc = doc.replace(fromB, fromB + (toA - fromA), text), false);\n return doc;\n }\n mapDesc(other, before = false) { return mapSet(this, other, before, true); }\n /**\n Given the document as it existed _before_ the changes, return a\n change set that represents the inverse of this set, which could\n be used to go from the document created by the changes back to\n the document as it existed before the changes.\n */\n invert(doc) {\n let sections = this.sections.slice(), inserted = [];\n for (let i = 0, pos = 0; i < sections.length; i += 2) {\n let len = sections[i], ins = sections[i + 1];\n if (ins >= 0) {\n sections[i] = ins;\n sections[i + 1] = len;\n let index = i >> 1;\n while (inserted.length < index)\n inserted.push(Text.empty);\n inserted.push(len ? doc.slice(pos, pos + len) : Text.empty);\n }\n pos += len;\n }\n return new ChangeSet(sections, inserted);\n }\n /**\n Combine two subsequent change sets into a single set. `other`\n must start in the document produced by `this`. If `this` goes\n `docA` → `docB` and `other` represents `docB` → `docC`, the\n returned value will represent the change `docA` → `docC`.\n */\n compose(other) { return this.empty ? other : other.empty ? this : composeSets(this, other, true); }\n /**\n Given another change set starting in the same document, maps this\n change set over the other, producing a new change set that can be\n applied to the document produced by applying `other`. When\n `before` is `true`, order changes as if `this` comes before\n `other`, otherwise (the default) treat `other` as coming first.\n \n Given two changes `A` and `B`, `A.compose(B.map(A))` and\n `B.compose(A.map(B, true))` will produce the same document. This\n provides a basic form of [operational\n transformation](https://en.wikipedia.org/wiki/Operational_transformation),\n and can be used for collaborative editing.\n */\n map(other, before = false) { return other.empty ? this : mapSet(this, other, before, true); }\n /**\n Iterate over the changed ranges in the document, calling `f` for\n each, with the range in the original document (`fromA`-`toA`)\n and the range that replaces it in the new document\n (`fromB`-`toB`).\n \n When `individual` is true, adjacent changes are reported\n separately.\n */\n iterChanges(f, individual = false) {\n iterChanges(this, f, individual);\n }\n /**\n Get a [change description](https://codemirror.net/6/docs/ref/#state.ChangeDesc) for this change\n set.\n */\n get desc() { return new ChangeDesc(this.sections); }\n /**\n @internal\n */\n filter(ranges) {\n let resultSections = [], resultInserted = [], filteredSections = [];\n let iter = new SectionIter(this);\n done: for (let i = 0, pos = 0;;) {\n let next = i == ranges.length ? 1e9 : ranges[i++];\n while (pos < next || pos == next && iter.len == 0) {\n if (iter.done)\n break done;\n let len = Math.min(iter.len, next - pos);\n addSection(filteredSections, len, -1);\n let ins = iter.ins == -1 ? -1 : iter.off == 0 ? iter.ins : 0;\n addSection(resultSections, len, ins);\n if (ins > 0)\n addInsert(resultInserted, resultSections, iter.text);\n iter.forward(len);\n pos += len;\n }\n let end = ranges[i++];\n while (pos < end) {\n if (iter.done)\n break done;\n let len = Math.min(iter.len, end - pos);\n addSection(resultSections, len, -1);\n addSection(filteredSections, len, iter.ins == -1 ? -1 : iter.off == 0 ? iter.ins : 0);\n iter.forward(len);\n pos += len;\n }\n }\n return { changes: new ChangeSet(resultSections, resultInserted),\n filtered: new ChangeDesc(filteredSections) };\n }\n /**\n Serialize this change set to a JSON-representable value.\n */\n toJSON() {\n let parts = [];\n for (let i = 0; i < this.sections.length; i += 2) {\n let len = this.sections[i], ins = this.sections[i + 1];\n if (ins < 0)\n parts.push(len);\n else if (ins == 0)\n parts.push([len]);\n else\n parts.push([len].concat(this.inserted[i >> 1].toJSON()));\n }\n return parts;\n }\n /**\n Create a change set for the given changes, for a document of the\n given length, using `lineSep` as line separator.\n */\n static of(changes, length, lineSep) {\n let sections = [], inserted = [], pos = 0;\n let total = null;\n function flush(force = false) {\n if (!force && !sections.length)\n return;\n if (pos < length)\n addSection(sections, length - pos, -1);\n let set = new ChangeSet(sections, inserted);\n total = total ? total.compose(set.map(total)) : set;\n sections = [];\n inserted = [];\n pos = 0;\n }\n function process(spec) {\n if (Array.isArray(spec)) {\n for (let sub of spec)\n process(sub);\n }\n else if (spec instanceof ChangeSet) {\n if (spec.length != length)\n throw new RangeError(`Mismatched change set length (got ${spec.length}, expected ${length})`);\n flush();\n total = total ? total.compose(spec.map(total)) : spec;\n }\n else {\n let { from, to = from, insert } = spec;\n if (from > to || from < 0 || to > length)\n throw new RangeError(`Invalid change range ${from} to ${to} (in doc of length ${length})`);\n let insText = !insert ? Text.empty : typeof insert == \"string\" ? Text.of(insert.split(lineSep || DefaultSplit)) : insert;\n let insLen = insText.length;\n if (from == to && insLen == 0)\n return;\n if (from < pos)\n flush();\n if (from > pos)\n addSection(sections, from - pos, -1);\n addSection(sections, to - from, insLen);\n addInsert(inserted, sections, insText);\n pos = to;\n }\n }\n process(changes);\n flush(!total);\n return total;\n }\n /**\n Create an empty changeset of the given length.\n */\n static empty(length) {\n return new ChangeSet(length ? [length, -1] : [], []);\n }\n /**\n Create a changeset from its JSON representation (as produced by\n [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeSet.toJSON).\n */\n static fromJSON(json) {\n if (!Array.isArray(json))\n throw new RangeError(\"Invalid JSON representation of ChangeSet\");\n let sections = [], inserted = [];\n for (let i = 0; i < json.length; i++) {\n let part = json[i];\n if (typeof part == \"number\") {\n sections.push(part, -1);\n }\n else if (!Array.isArray(part) || typeof part[0] != \"number\" || part.some((e, i) => i && typeof e != \"string\")) {\n throw new RangeError(\"Invalid JSON representation of ChangeSet\");\n }\n else if (part.length == 1) {\n sections.push(part[0], 0);\n }\n else {\n while (inserted.length < i)\n inserted.push(Text.empty);\n inserted[i] = Text.of(part.slice(1));\n sections.push(part[0], inserted[i].length);\n }\n }\n return new ChangeSet(sections, inserted);\n }\n}\nfunction addSection(sections, len, ins, forceJoin = false) {\n if (len == 0 && ins <= 0)\n return;\n let last = sections.length - 2;\n if (last >= 0 && ins <= 0 && ins == sections[last + 1])\n sections[last] += len;\n else if (len == 0 && sections[last] == 0)\n sections[last + 1] += ins;\n else if (forceJoin) {\n sections[last] += len;\n sections[last + 1] += ins;\n }\n else\n sections.push(len, ins);\n}\nfunction addInsert(values, sections, value) {\n if (value.length == 0)\n return;\n let index = (sections.length - 2) >> 1;\n if (index < values.length) {\n values[values.length - 1] = values[values.length - 1].append(value);\n }\n else {\n while (values.length < index)\n values.push(Text.empty);\n values.push(value);\n }\n}\nfunction iterChanges(desc, f, individual) {\n let inserted = desc.inserted;\n for (let posA = 0, posB = 0, i = 0; i < desc.sections.length;) {\n let len = desc.sections[i++], ins = desc.sections[i++];\n if (ins < 0) {\n posA += len;\n posB += len;\n }\n else {\n let endA = posA, endB = posB, text = Text.empty;\n for (;;) {\n endA += len;\n endB += ins;\n if (ins && inserted)\n text = text.append(inserted[(i - 2) >> 1]);\n if (individual || i == desc.sections.length || desc.sections[i + 1] < 0)\n break;\n len = desc.sections[i++];\n ins = desc.sections[i++];\n }\n f(posA, endA, posB, endB, text);\n posA = endA;\n posB = endB;\n }\n }\n}\nfunction mapSet(setA, setB, before, mkSet = false) {\n let sections = [], insert = mkSet ? [] : null;\n let a = new SectionIter(setA), b = new SectionIter(setB);\n for (let posA = 0, posB = 0;;) {\n if (a.ins == -1) {\n posA += a.len;\n a.next();\n }\n else if (b.ins == -1 && posB < posA) {\n let skip = Math.min(b.len, posA - posB);\n b.forward(skip);\n addSection(sections, skip, -1);\n posB += skip;\n }\n else if (b.ins >= 0 && (a.done || posB < posA || posB == posA && (b.len < a.len || b.len == a.len && !before))) {\n addSection(sections, b.ins, -1);\n while (posA > posB && !a.done && posA + a.len < posB + b.len) {\n posA += a.len;\n a.next();\n }\n posB += b.len;\n b.next();\n }\n else if (a.ins >= 0) {\n let len = 0, end = posA + a.len;\n for (;;) {\n if (b.ins >= 0 && posB > posA && posB + b.len < end) {\n len += b.ins;\n posB += b.len;\n b.next();\n }\n else if (b.ins == -1 && posB < end) {\n let skip = Math.min(b.len, end - posB);\n len += skip;\n b.forward(skip);\n posB += skip;\n }\n else {\n break;\n }\n }\n addSection(sections, len, a.ins);\n if (insert)\n addInsert(insert, sections, a.text);\n posA = end;\n a.next();\n }\n else if (a.done && b.done) {\n return insert ? new ChangeSet(sections, insert) : new ChangeDesc(sections);\n }\n else {\n throw new Error(\"Mismatched change set lengths\");\n }\n }\n}\nfunction composeSets(setA, setB, mkSet = false) {\n let sections = [];\n let insert = mkSet ? [] : null;\n let a = new SectionIter(setA), b = new SectionIter(setB);\n for (let open = false;;) {\n if (a.done && b.done) {\n return insert ? new ChangeSet(sections, insert) : new ChangeDesc(sections);\n }\n else if (a.ins == 0) { // Deletion in A\n addSection(sections, a.len, 0, open);\n a.next();\n }\n else if (b.len == 0 && !b.done) { // Insertion in B\n addSection(sections, 0, b.ins, open);\n if (insert)\n addInsert(insert, sections, b.text);\n b.next();\n }\n else if (a.done || b.done) {\n throw new Error(\"Mismatched change set lengths\");\n }\n else {\n let len = Math.min(a.len2, b.len), sectionLen = sections.length;\n if (a.ins == -1) {\n let insB = b.ins == -1 ? -1 : b.off ? 0 : b.ins;\n addSection(sections, len, insB, open);\n if (insert && insB)\n addInsert(insert, sections, b.text);\n }\n else if (b.ins == -1) {\n addSection(sections, a.off ? 0 : a.len, len, open);\n if (insert)\n addInsert(insert, sections, a.textBit(len));\n }\n else {\n addSection(sections, a.off ? 0 : a.len, b.off ? 0 : b.ins, open);\n if (insert && !b.off)\n addInsert(insert, sections, b.text);\n }\n open = (a.ins > len || b.ins >= 0 && b.len > len) && (open || sections.length > sectionLen);\n a.forward2(len);\n b.forward(len);\n }\n }\n}\nclass SectionIter {\n constructor(set) {\n this.set = set;\n this.i = 0;\n this.next();\n }\n next() {\n let { sections } = this.set;\n if (this.i < sections.length) {\n this.len = sections[this.i++];\n this.ins = sections[this.i++];\n }\n else {\n this.len = 0;\n this.ins = -2;\n }\n this.off = 0;\n }\n get done() { return this.ins == -2; }\n get len2() { return this.ins < 0 ? this.len : this.ins; }\n get text() {\n let { inserted } = this.set, index = (this.i - 2) >> 1;\n return index >= inserted.length ? Text.empty : inserted[index];\n }\n textBit(len) {\n let { inserted } = this.set, index = (this.i - 2) >> 1;\n return index >= inserted.length && !len ? Text.empty\n : inserted[index].slice(this.off, len == null ? undefined : this.off + len);\n }\n forward(len) {\n if (len == this.len)\n this.next();\n else {\n this.len -= len;\n this.off += len;\n }\n }\n forward2(len) {\n if (this.ins == -1)\n this.forward(len);\n else if (len == this.ins)\n this.next();\n else {\n this.ins -= len;\n this.off += len;\n }\n }\n}\n\n/**\nA single selection range. When\n[`allowMultipleSelections`](https://codemirror.net/6/docs/ref/#state.EditorState^allowMultipleSelections)\nis enabled, a [selection](https://codemirror.net/6/docs/ref/#state.EditorSelection) may hold\nmultiple ranges. By default, selections hold exactly one range.\n*/\nclass SelectionRange {\n /**\n @internal\n */\n constructor(\n /**\n The lower boundary of the range.\n */\n from, \n /**\n The upper boundary of the range.\n */\n to, flags) {\n this.from = from;\n this.to = to;\n this.flags = flags;\n }\n /**\n The anchor of the range—the side that doesn't move when you\n extend it.\n */\n get anchor() { return this.flags & 16 /* Inverted */ ? this.to : this.from; }\n /**\n The head of the range, which is moved when the range is\n [extended](https://codemirror.net/6/docs/ref/#state.SelectionRange.extend).\n */\n get head() { return this.flags & 16 /* Inverted */ ? this.from : this.to; }\n /**\n True when `anchor` and `head` are at the same position.\n */\n get empty() { return this.from == this.to; }\n /**\n If this is a cursor that is explicitly associated with the\n character on one of its sides, this returns the side. -1 means\n the character before its position, 1 the character after, and 0\n means no association.\n */\n get assoc() { return this.flags & 4 /* AssocBefore */ ? -1 : this.flags & 8 /* AssocAfter */ ? 1 : 0; }\n /**\n The bidirectional text level associated with this cursor, if\n any.\n */\n get bidiLevel() {\n let level = this.flags & 3 /* BidiLevelMask */;\n return level == 3 ? null : level;\n }\n /**\n The goal column (stored vertical offset) associated with a\n cursor. This is used to preserve the vertical position when\n [moving](https://codemirror.net/6/docs/ref/#view.EditorView.moveVertically) across\n lines of different length.\n */\n get goalColumn() {\n let value = this.flags >> 5 /* GoalColumnOffset */;\n return value == 33554431 /* NoGoalColumn */ ? undefined : value;\n }\n /**\n Map this range through a change, producing a valid range in the\n updated document.\n */\n map(change, assoc = -1) {\n let from, to;\n if (this.empty) {\n from = to = change.mapPos(this.from, assoc);\n }\n else {\n from = change.mapPos(this.from, 1);\n to = change.mapPos(this.to, -1);\n }\n return from == this.from && to == this.to ? this : new SelectionRange(from, to, this.flags);\n }\n /**\n Extend this range to cover at least `from` to `to`.\n */\n extend(from, to = from) {\n if (from <= this.anchor && to >= this.anchor)\n return EditorSelection.range(from, to);\n let head = Math.abs(from - this.anchor) > Math.abs(to - this.anchor) ? from : to;\n return EditorSelection.range(this.anchor, head);\n }\n /**\n Compare this range to another range.\n */\n eq(other) {\n return this.anchor == other.anchor && this.head == other.head;\n }\n /**\n Return a JSON-serializable object representing the range.\n */\n toJSON() { return { anchor: this.anchor, head: this.head }; }\n /**\n Convert a JSON representation of a range to a `SelectionRange`\n instance.\n */\n static fromJSON(json) {\n if (!json || typeof json.anchor != \"number\" || typeof json.head != \"number\")\n throw new RangeError(\"Invalid JSON representation for SelectionRange\");\n return EditorSelection.range(json.anchor, json.head);\n }\n}\n/**\nAn editor selection holds one or more selection ranges.\n*/\nclass EditorSelection {\n /**\n @internal\n */\n constructor(\n /**\n The ranges in the selection, sorted by position. Ranges cannot\n overlap (but they may touch, if they aren't empty).\n */\n ranges, \n /**\n The index of the _main_ range in the selection (which is\n usually the range that was added last).\n */\n mainIndex = 0) {\n this.ranges = ranges;\n this.mainIndex = mainIndex;\n }\n /**\n Map a selection through a change. Used to adjust the selection\n position for changes.\n */\n map(change, assoc = -1) {\n if (change.empty)\n return this;\n return EditorSelection.create(this.ranges.map(r => r.map(change, assoc)), this.mainIndex);\n }\n /**\n Compare this selection to another selection.\n */\n eq(other) {\n if (this.ranges.length != other.ranges.length ||\n this.mainIndex != other.mainIndex)\n return false;\n for (let i = 0; i < this.ranges.length; i++)\n if (!this.ranges[i].eq(other.ranges[i]))\n return false;\n return true;\n }\n /**\n Get the primary selection range. Usually, you should make sure\n your code applies to _all_ ranges, by using methods like\n [`changeByRange`](https://codemirror.net/6/docs/ref/#state.EditorState.changeByRange).\n */\n get main() { return this.ranges[this.mainIndex]; }\n /**\n Make sure the selection only has one range. Returns a selection\n holding only the main range from this selection.\n */\n asSingle() {\n return this.ranges.length == 1 ? this : new EditorSelection([this.main]);\n }\n /**\n Extend this selection with an extra range.\n */\n addRange(range, main = true) {\n return EditorSelection.create([range].concat(this.ranges), main ? 0 : this.mainIndex + 1);\n }\n /**\n Replace a given range with another range, and then normalize the\n selection to merge and sort ranges if necessary.\n */\n replaceRange(range, which = this.mainIndex) {\n let ranges = this.ranges.slice();\n ranges[which] = range;\n return EditorSelection.create(ranges, this.mainIndex);\n }\n /**\n Convert this selection to an object that can be serialized to\n JSON.\n */\n toJSON() {\n return { ranges: this.ranges.map(r => r.toJSON()), main: this.mainIndex };\n }\n /**\n Create a selection from a JSON representation.\n */\n static fromJSON(json) {\n if (!json || !Array.isArray(json.ranges) || typeof json.main != \"number\" || json.main >= json.ranges.length)\n throw new RangeError(\"Invalid JSON representation for EditorSelection\");\n return new EditorSelection(json.ranges.map((r) => SelectionRange.fromJSON(r)), json.main);\n }\n /**\n Create a selection holding a single range.\n */\n static single(anchor, head = anchor) {\n return new EditorSelection([EditorSelection.range(anchor, head)], 0);\n }\n /**\n Sort and merge the given set of ranges, creating a valid\n selection.\n */\n static create(ranges, mainIndex = 0) {\n if (ranges.length == 0)\n throw new RangeError(\"A selection needs at least one range\");\n for (let pos = 0, i = 0; i < ranges.length; i++) {\n let range = ranges[i];\n if (range.empty ? range.from <= pos : range.from < pos)\n return normalized(ranges.slice(), mainIndex);\n pos = range.to;\n }\n return new EditorSelection(ranges, mainIndex);\n }\n /**\n Create a cursor selection range at the given position. You can\n safely ignore the optional arguments in most situations.\n */\n static cursor(pos, assoc = 0, bidiLevel, goalColumn) {\n return new SelectionRange(pos, pos, (assoc == 0 ? 0 : assoc < 0 ? 4 /* AssocBefore */ : 8 /* AssocAfter */) |\n (bidiLevel == null ? 3 : Math.min(2, bidiLevel)) |\n ((goalColumn !== null && goalColumn !== void 0 ? goalColumn : 33554431 /* NoGoalColumn */) << 5 /* GoalColumnOffset */));\n }\n /**\n Create a selection range.\n */\n static range(anchor, head, goalColumn) {\n let goal = (goalColumn !== null && goalColumn !== void 0 ? goalColumn : 33554431 /* NoGoalColumn */) << 5 /* GoalColumnOffset */;\n return head < anchor ? new SelectionRange(head, anchor, 16 /* Inverted */ | goal | 8 /* AssocAfter */)\n : new SelectionRange(anchor, head, goal | (head > anchor ? 4 /* AssocBefore */ : 0));\n }\n}\nfunction normalized(ranges, mainIndex = 0) {\n let main = ranges[mainIndex];\n ranges.sort((a, b) => a.from - b.from);\n mainIndex = ranges.indexOf(main);\n for (let i = 1; i < ranges.length; i++) {\n let range = ranges[i], prev = ranges[i - 1];\n if (range.empty ? range.from <= prev.to : range.from < prev.to) {\n let from = prev.from, to = Math.max(range.to, prev.to);\n if (i <= mainIndex)\n mainIndex--;\n ranges.splice(--i, 2, range.anchor > range.head ? EditorSelection.range(to, from) : EditorSelection.range(from, to));\n }\n }\n return new EditorSelection(ranges, mainIndex);\n}\nfunction checkSelection(selection, docLength) {\n for (let range of selection.ranges)\n if (range.to > docLength)\n throw new RangeError(\"Selection points outside of document\");\n}\n\nlet nextID = 0;\n/**\nA facet is a labeled value that is associated with an editor\nstate. It takes inputs from any number of extensions, and combines\nthose into a single output value.\n\nExamples of facets are the [theme](https://codemirror.net/6/docs/ref/#view.EditorView^theme) styles\nassociated with an editor or the [tab\nsize](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize) (which is reduced to a single\nvalue, using the input with the hightest precedence).\n*/\nclass Facet {\n constructor(\n /**\n @internal\n */\n combine, \n /**\n @internal\n */\n compareInput, \n /**\n @internal\n */\n compare, isStatic, \n /**\n @internal\n */\n extensions) {\n this.combine = combine;\n this.compareInput = compareInput;\n this.compare = compare;\n this.isStatic = isStatic;\n this.extensions = extensions;\n /**\n @internal\n */\n this.id = nextID++;\n this.default = combine([]);\n }\n /**\n Define a new facet.\n */\n static define(config = {}) {\n return new Facet(config.combine || ((a) => a), config.compareInput || ((a, b) => a === b), config.compare || (!config.combine ? sameArray : (a, b) => a === b), !!config.static, config.enables);\n }\n /**\n Returns an extension that adds the given value for this facet.\n */\n of(value) {\n return new FacetProvider([], this, 0 /* Static */, value);\n }\n /**\n Create an extension that computes a value for the facet from a\n state. You must take care to declare the parts of the state that\n this value depends on, since your function is only called again\n for a new state when one of those parts changed.\n \n In most cases, you'll want to use the\n [`provide`](https://codemirror.net/6/docs/ref/#state.StateField^define^config.provide) option when\n defining a field instead.\n */\n compute(deps, get) {\n if (this.isStatic)\n throw new Error(\"Can't compute a static facet\");\n return new FacetProvider(deps, this, 1 /* Single */, get);\n }\n /**\n Create an extension that computes zero or more values for this\n facet from a state.\n */\n computeN(deps, get) {\n if (this.isStatic)\n throw new Error(\"Can't compute a static facet\");\n return new FacetProvider(deps, this, 2 /* Multi */, get);\n }\n from(field, get) {\n if (!get)\n get = x => x;\n return this.compute([field], state => get(state.field(field)));\n }\n}\nfunction sameArray(a, b) {\n return a == b || a.length == b.length && a.every((e, i) => e === b[i]);\n}\nclass FacetProvider {\n constructor(dependencies, facet, type, value) {\n this.dependencies = dependencies;\n this.facet = facet;\n this.type = type;\n this.value = value;\n this.id = nextID++;\n }\n dynamicSlot(addresses) {\n var _a;\n let getter = this.value;\n let compare = this.facet.compareInput;\n let id = this.id, idx = addresses[id] >> 1, multi = this.type == 2 /* Multi */;\n let depDoc = false, depSel = false, depAddrs = [];\n for (let dep of this.dependencies) {\n if (dep == \"doc\")\n depDoc = true;\n else if (dep == \"selection\")\n depSel = true;\n else if ((((_a = addresses[dep.id]) !== null && _a !== void 0 ? _a : 1) & 1) == 0)\n depAddrs.push(addresses[dep.id]);\n }\n return {\n create(state) {\n state.values[idx] = getter(state);\n return 1 /* Changed */;\n },\n update(state, tr) {\n if ((depDoc && tr.docChanged) || (depSel && (tr.docChanged || tr.selection)) ||\n depAddrs.some(addr => (ensureAddr(state, addr) & 1 /* Changed */) > 0)) {\n let newVal = getter(state);\n if (multi ? !compareArray(newVal, state.values[idx], compare) : !compare(newVal, state.values[idx])) {\n state.values[idx] = newVal;\n return 1 /* Changed */;\n }\n }\n return 0;\n },\n reconfigure(state, oldState) {\n let newVal = getter(state);\n let oldAddr = oldState.config.address[id];\n if (oldAddr != null) {\n let oldVal = getAddr(oldState, oldAddr);\n if (multi ? compareArray(newVal, oldVal, compare) : compare(newVal, oldVal)) {\n state.values[idx] = oldVal;\n return 0;\n }\n }\n state.values[idx] = newVal;\n return 1 /* Changed */;\n }\n };\n }\n}\nfunction compareArray(a, b, compare) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!compare(a[i], b[i]))\n return false;\n return true;\n}\nfunction dynamicFacetSlot(addresses, facet, providers) {\n let providerAddrs = providers.map(p => addresses[p.id]);\n let providerTypes = providers.map(p => p.type);\n let dynamic = providerAddrs.filter(p => !(p & 1));\n let idx = addresses[facet.id] >> 1;\n function get(state) {\n let values = [];\n for (let i = 0; i < providerAddrs.length; i++) {\n let value = getAddr(state, providerAddrs[i]);\n if (providerTypes[i] == 2 /* Multi */)\n for (let val of value)\n values.push(val);\n else\n values.push(value);\n }\n return facet.combine(values);\n }\n return {\n create(state) {\n for (let addr of providerAddrs)\n ensureAddr(state, addr);\n state.values[idx] = get(state);\n return 1 /* Changed */;\n },\n update(state, tr) {\n if (!dynamic.some(dynAddr => ensureAddr(state, dynAddr) & 1 /* Changed */))\n return 0;\n let value = get(state);\n if (facet.compare(value, state.values[idx]))\n return 0;\n state.values[idx] = value;\n return 1 /* Changed */;\n },\n reconfigure(state, oldState) {\n let depChanged = providerAddrs.some(addr => ensureAddr(state, addr) & 1 /* Changed */);\n let oldProviders = oldState.config.facets[facet.id], oldValue = oldState.facet(facet);\n if (oldProviders && !depChanged && sameArray(providers, oldProviders)) {\n state.values[idx] = oldValue;\n return 0;\n }\n let value = get(state);\n if (facet.compare(value, oldValue)) {\n state.values[idx] = oldValue;\n return 0;\n }\n state.values[idx] = value;\n return 1 /* Changed */;\n }\n };\n}\nconst initField = /*@__PURE__*/Facet.define({ static: true });\n/**\nFields can store additional information in an editor state, and\nkeep it in sync with the rest of the state.\n*/\nclass StateField {\n constructor(\n /**\n @internal\n */\n id, createF, updateF, compareF, \n /**\n @internal\n */\n spec) {\n this.id = id;\n this.createF = createF;\n this.updateF = updateF;\n this.compareF = compareF;\n this.spec = spec;\n /**\n @internal\n */\n this.provides = undefined;\n }\n /**\n Define a state field.\n */\n static define(config) {\n let field = new StateField(nextID++, config.create, config.update, config.compare || ((a, b) => a === b), config);\n if (config.provide)\n field.provides = config.provide(field);\n return field;\n }\n create(state) {\n let init = state.facet(initField).find(i => i.field == this);\n return ((init === null || init === void 0 ? void 0 : init.create) || this.createF)(state);\n }\n /**\n @internal\n */\n slot(addresses) {\n let idx = addresses[this.id] >> 1;\n return {\n create: (state) => {\n state.values[idx] = this.create(state);\n return 1 /* Changed */;\n },\n update: (state, tr) => {\n let oldVal = state.values[idx];\n let value = this.updateF(oldVal, tr);\n if (this.compareF(oldVal, value))\n return 0;\n state.values[idx] = value;\n return 1 /* Changed */;\n },\n reconfigure: (state, oldState) => {\n if (oldState.config.address[this.id] != null) {\n state.values[idx] = oldState.field(this);\n return 0;\n }\n state.values[idx] = this.create(state);\n return 1 /* Changed */;\n }\n };\n }\n /**\n Returns an extension that enables this field and overrides the\n way it is initialized. Can be useful when you need to provide a\n non-default starting value for the field.\n */\n init(create) {\n return [this, initField.of({ field: this, create })];\n }\n /**\n State field instances can be used as\n [`Extension`](https://codemirror.net/6/docs/ref/#state.Extension) values to enable the field in a\n given state.\n */\n get extension() { return this; }\n}\nconst Prec_ = { lowest: 4, low: 3, default: 2, high: 1, highest: 0 };\nfunction prec(value) {\n return (ext) => new PrecExtension(ext, value);\n}\n/**\nBy default extensions are registered in the order they are found\nin the flattened form of nested array that was provided.\nIndividual extension values can be assigned a precedence to\noverride this. Extensions that do not have a precedence set get\nthe precedence of the nearest parent with a precedence, or\n[`default`](https://codemirror.net/6/docs/ref/#state.Prec.default) if there is no such parent. The\nfinal ordering of extensions is determined by first sorting by\nprecedence and then by order within each precedence.\n*/\nconst Prec = {\n /**\n The lowest precedence level. Meant for things that should end up\n near the end of the extension order.\n */\n lowest: /*@__PURE__*/prec(Prec_.lowest),\n /**\n A lower-than-default precedence, for extensions.\n */\n low: /*@__PURE__*/prec(Prec_.low),\n /**\n The default precedence, which is also used for extensions\n without an explicit precedence.\n */\n default: /*@__PURE__*/prec(Prec_.default),\n /**\n A higher-than-default precedence, for extensions that should\n come before those with default precedence.\n */\n high: /*@__PURE__*/prec(Prec_.high),\n /**\n The highest precedence level, for extensions that should end up\n near the start of the precedence ordering.\n */\n highest: /*@__PURE__*/prec(Prec_.highest),\n // FIXME Drop these in some future breaking version\n /**\n Backwards-compatible synonym for `Prec.lowest`.\n */\n fallback: /*@__PURE__*/prec(Prec_.lowest),\n /**\n Backwards-compatible synonym for `Prec.high`.\n */\n extend: /*@__PURE__*/prec(Prec_.high),\n /**\n Backwards-compatible synonym for `Prec.highest`.\n */\n override: /*@__PURE__*/prec(Prec_.highest)\n};\nclass PrecExtension {\n constructor(inner, prec) {\n this.inner = inner;\n this.prec = prec;\n }\n}\n/**\nExtension compartments can be used to make a configuration\ndynamic. By [wrapping](https://codemirror.net/6/docs/ref/#state.Compartment.of) part of your\nconfiguration in a compartment, you can later\n[replace](https://codemirror.net/6/docs/ref/#state.Compartment.reconfigure) that part through a\ntransaction.\n*/\nclass Compartment {\n /**\n Create an instance of this compartment to add to your [state\n configuration](https://codemirror.net/6/docs/ref/#state.EditorStateConfig.extensions).\n */\n of(ext) { return new CompartmentInstance(this, ext); }\n /**\n Create an [effect](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) that\n reconfigures this compartment.\n */\n reconfigure(content) {\n return Compartment.reconfigure.of({ compartment: this, extension: content });\n }\n /**\n Get the current content of the compartment in the state, or\n `undefined` if it isn't present.\n */\n get(state) {\n return state.config.compartments.get(this);\n }\n}\nclass CompartmentInstance {\n constructor(compartment, inner) {\n this.compartment = compartment;\n this.inner = inner;\n }\n}\nclass Configuration {\n constructor(base, compartments, dynamicSlots, address, staticValues, facets) {\n this.base = base;\n this.compartments = compartments;\n this.dynamicSlots = dynamicSlots;\n this.address = address;\n this.staticValues = staticValues;\n this.facets = facets;\n this.statusTemplate = [];\n while (this.statusTemplate.length < dynamicSlots.length)\n this.statusTemplate.push(0 /* Unresolved */);\n }\n staticFacet(facet) {\n let addr = this.address[facet.id];\n return addr == null ? facet.default : this.staticValues[addr >> 1];\n }\n static resolve(base, compartments, oldState) {\n let fields = [];\n let facets = Object.create(null);\n let newCompartments = new Map();\n for (let ext of flatten(base, compartments, newCompartments)) {\n if (ext instanceof StateField)\n fields.push(ext);\n else\n (facets[ext.facet.id] || (facets[ext.facet.id] = [])).push(ext);\n }\n let address = Object.create(null);\n let staticValues = [];\n let dynamicSlots = [];\n for (let field of fields) {\n address[field.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => field.slot(a));\n }\n let oldFacets = oldState === null || oldState === void 0 ? void 0 : oldState.config.facets;\n for (let id in facets) {\n let providers = facets[id], facet = providers[0].facet;\n let oldProviders = oldFacets && oldFacets[id] || [];\n if (providers.every(p => p.type == 0 /* Static */)) {\n address[facet.id] = (staticValues.length << 1) | 1;\n if (sameArray(oldProviders, providers)) {\n staticValues.push(oldState.facet(facet));\n }\n else {\n let value = facet.combine(providers.map(p => p.value));\n staticValues.push(oldState && facet.compare(value, oldState.facet(facet)) ? oldState.facet(facet) : value);\n }\n }\n else {\n for (let p of providers) {\n if (p.type == 0 /* Static */) {\n address[p.id] = (staticValues.length << 1) | 1;\n staticValues.push(p.value);\n }\n else {\n address[p.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => p.dynamicSlot(a));\n }\n }\n address[facet.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => dynamicFacetSlot(a, facet, providers));\n }\n }\n let dynamic = dynamicSlots.map(f => f(address));\n return new Configuration(base, newCompartments, dynamic, address, staticValues, facets);\n }\n}\nfunction flatten(extension, compartments, newCompartments) {\n let result = [[], [], [], [], []];\n let seen = new Map();\n function inner(ext, prec) {\n let known = seen.get(ext);\n if (known != null) {\n if (known >= prec)\n return;\n let found = result[known].indexOf(ext);\n if (found > -1)\n result[known].splice(found, 1);\n if (ext instanceof CompartmentInstance)\n newCompartments.delete(ext.compartment);\n }\n seen.set(ext, prec);\n if (Array.isArray(ext)) {\n for (let e of ext)\n inner(e, prec);\n }\n else if (ext instanceof CompartmentInstance) {\n if (newCompartments.has(ext.compartment))\n throw new RangeError(`Duplicate use of compartment in extensions`);\n let content = compartments.get(ext.compartment) || ext.inner;\n newCompartments.set(ext.compartment, content);\n inner(content, prec);\n }\n else if (ext instanceof PrecExtension) {\n inner(ext.inner, ext.prec);\n }\n else if (ext instanceof StateField) {\n result[prec].push(ext);\n if (ext.provides)\n inner(ext.provides, prec);\n }\n else if (ext instanceof FacetProvider) {\n result[prec].push(ext);\n if (ext.facet.extensions)\n inner(ext.facet.extensions, prec);\n }\n else {\n let content = ext.extension;\n if (!content)\n throw new Error(`Unrecognized extension value in extension set (${ext}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);\n inner(content, prec);\n }\n }\n inner(extension, Prec_.default);\n return result.reduce((a, b) => a.concat(b));\n}\nfunction ensureAddr(state, addr) {\n if (addr & 1)\n return 2 /* Computed */;\n let idx = addr >> 1;\n let status = state.status[idx];\n if (status == 4 /* Computing */)\n throw new Error(\"Cyclic dependency between fields and/or facets\");\n if (status & 2 /* Computed */)\n return status;\n state.status[idx] = 4 /* Computing */;\n let changed = state.computeSlot(state, state.config.dynamicSlots[idx]);\n return state.status[idx] = 2 /* Computed */ | changed;\n}\nfunction getAddr(state, addr) {\n return addr & 1 ? state.config.staticValues[addr >> 1] : state.values[addr >> 1];\n}\n\nconst languageData = /*@__PURE__*/Facet.define();\nconst allowMultipleSelections = /*@__PURE__*/Facet.define({\n combine: values => values.some(v => v),\n static: true\n});\nconst lineSeparator = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : undefined,\n static: true\n});\nconst changeFilter = /*@__PURE__*/Facet.define();\nconst transactionFilter = /*@__PURE__*/Facet.define();\nconst transactionExtender = /*@__PURE__*/Facet.define();\nconst readOnly = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : false\n});\n\n/**\nAnnotations are tagged values that are used to add metadata to\ntransactions in an extensible way. They should be used to model\nthings that effect the entire transaction (such as its [time\nstamp](https://codemirror.net/6/docs/ref/#state.Transaction^time) or information about its\n[origin](https://codemirror.net/6/docs/ref/#state.Transaction^userEvent)). For effects that happen\n_alongside_ the other changes made by the transaction, [state\neffects](https://codemirror.net/6/docs/ref/#state.StateEffect) are more appropriate.\n*/\nclass Annotation {\n /**\n @internal\n */\n constructor(\n /**\n The annotation type.\n */\n type, \n /**\n The value of this annotation.\n */\n value) {\n this.type = type;\n this.value = value;\n }\n /**\n Define a new type of annotation.\n */\n static define() { return new AnnotationType(); }\n}\n/**\nMarker that identifies a type of [annotation](https://codemirror.net/6/docs/ref/#state.Annotation).\n*/\nclass AnnotationType {\n /**\n Create an instance of this annotation.\n */\n of(value) { return new Annotation(this, value); }\n}\n/**\nRepresentation of a type of state effect. Defined with\n[`StateEffect.define`](https://codemirror.net/6/docs/ref/#state.StateEffect^define).\n*/\nclass StateEffectType {\n /**\n @internal\n */\n constructor(\n // The `any` types in these function types are there to work\n // around TypeScript issue #37631, where the type guard on\n // `StateEffect.is` mysteriously stops working when these properly\n // have type `Value`.\n /**\n @internal\n */\n map) {\n this.map = map;\n }\n /**\n Create a [state effect](https://codemirror.net/6/docs/ref/#state.StateEffect) instance of this\n type.\n */\n of(value) { return new StateEffect(this, value); }\n}\n/**\nState effects can be used to represent additional effects\nassociated with a [transaction](https://codemirror.net/6/docs/ref/#state.Transaction.effects). They\nare often useful to model changes to custom [state\nfields](https://codemirror.net/6/docs/ref/#state.StateField), when those changes aren't implicit in\ndocument or selection changes.\n*/\nclass StateEffect {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n type, \n /**\n The value of this effect.\n */\n value) {\n this.type = type;\n this.value = value;\n }\n /**\n Map this effect through a position mapping. Will return\n `undefined` when that ends up deleting the effect.\n */\n map(mapping) {\n let mapped = this.type.map(this.value, mapping);\n return mapped === undefined ? undefined : mapped == this.value ? this : new StateEffect(this.type, mapped);\n }\n /**\n Tells you whether this effect object is of a given\n [type](https://codemirror.net/6/docs/ref/#state.StateEffectType).\n */\n is(type) { return this.type == type; }\n /**\n Define a new effect type. The type parameter indicates the type\n of values that his effect holds.\n */\n static define(spec = {}) {\n return new StateEffectType(spec.map || (v => v));\n }\n /**\n Map an array of effects through a change set.\n */\n static mapEffects(effects, mapping) {\n if (!effects.length)\n return effects;\n let result = [];\n for (let effect of effects) {\n let mapped = effect.map(mapping);\n if (mapped)\n result.push(mapped);\n }\n return result;\n }\n}\n/**\nThis effect can be used to reconfigure the root extensions of\nthe editor. Doing this will discard any extensions\n[appended](https://codemirror.net/6/docs/ref/#state.StateEffect^appendConfig), but does not reset\nthe content of [reconfigured](https://codemirror.net/6/docs/ref/#state.Compartment.reconfigure)\ncompartments.\n*/\nStateEffect.reconfigure = /*@__PURE__*/StateEffect.define();\n/**\nAppend extensions to the top-level configuration of the editor.\n*/\nStateEffect.appendConfig = /*@__PURE__*/StateEffect.define();\n/**\nChanges to the editor state are grouped into transactions.\nTypically, a user action creates a single transaction, which may\ncontain any number of document changes, may change the selection,\nor have other effects. Create a transaction by calling\n[`EditorState.update`](https://codemirror.net/6/docs/ref/#state.EditorState.update).\n*/\nclass Transaction {\n /**\n @internal\n */\n constructor(\n /**\n The state from which the transaction starts.\n */\n startState, \n /**\n The document changes made by this transaction.\n */\n changes, \n /**\n The selection set by this transaction, or undefined if it\n doesn't explicitly set a selection.\n */\n selection, \n /**\n The effects added to the transaction.\n */\n effects, \n /**\n @internal\n */\n annotations, \n /**\n Whether the selection should be scrolled into view after this\n transaction is dispatched.\n */\n scrollIntoView) {\n this.startState = startState;\n this.changes = changes;\n this.selection = selection;\n this.effects = effects;\n this.annotations = annotations;\n this.scrollIntoView = scrollIntoView;\n /**\n @internal\n */\n this._doc = null;\n /**\n @internal\n */\n this._state = null;\n if (selection)\n checkSelection(selection, changes.newLength);\n if (!annotations.some((a) => a.type == Transaction.time))\n this.annotations = annotations.concat(Transaction.time.of(Date.now()));\n }\n /**\n The new document produced by the transaction. Contrary to\n [`.state`](https://codemirror.net/6/docs/ref/#state.Transaction.state)`.doc`, accessing this won't\n force the entire new state to be computed right away, so it is\n recommended that [transaction\n filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) use this getter\n when they need to look at the new document.\n */\n get newDoc() {\n return this._doc || (this._doc = this.changes.apply(this.startState.doc));\n }\n /**\n The new selection produced by the transaction. If\n [`this.selection`](https://codemirror.net/6/docs/ref/#state.Transaction.selection) is undefined,\n this will [map](https://codemirror.net/6/docs/ref/#state.EditorSelection.map) the start state's\n current selection through the changes made by the transaction.\n */\n get newSelection() {\n return this.selection || this.startState.selection.map(this.changes);\n }\n /**\n The new state created by the transaction. Computed on demand\n (but retained for subsequent access), so itis recommended not to\n access it in [transaction\n filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) when possible.\n */\n get state() {\n if (!this._state)\n this.startState.applyTransaction(this);\n return this._state;\n }\n /**\n Get the value of the given annotation type, if any.\n */\n annotation(type) {\n for (let ann of this.annotations)\n if (ann.type == type)\n return ann.value;\n return undefined;\n }\n /**\n Indicates whether the transaction changed the document.\n */\n get docChanged() { return !this.changes.empty; }\n /**\n Indicates whether this transaction reconfigures the state\n (through a [configuration compartment](https://codemirror.net/6/docs/ref/#state.Compartment) or\n with a top-level configuration\n [effect](https://codemirror.net/6/docs/ref/#state.StateEffect^reconfigure).\n */\n get reconfigured() { return this.startState.config != this.state.config; }\n /**\n Returns true if the transaction has a [user\n event](https://codemirror.net/6/docs/ref/#state.Transaction^userEvent) annotation that is equal to\n or more specific than `event`. For example, if the transaction\n has `\"select.pointer\"` as user event, `\"select\"` and\n `\"select.pointer\"` will match it.\n */\n isUserEvent(event) {\n let e = this.annotation(Transaction.userEvent);\n return !!(e && (e == event || e.length > event.length && e.slice(0, event.length) == event && e[event.length] == \".\"));\n }\n}\n/**\nAnnotation used to store transaction timestamps.\n*/\nTransaction.time = /*@__PURE__*/Annotation.define();\n/**\nAnnotation used to associate a transaction with a user interface\nevent. Holds a string identifying the event, using a\ndot-separated format to support attaching more specific\ninformation. The events used by the core libraries are:\n\n - `\"input\"` when content is entered\n - `\"input.type\"` for typed input\n - `\"input.type.compose\"` for composition\n - `\"input.paste\"` for pasted input\n - `\"input.drop\"` when adding content with drag-and-drop\n - `\"input.complete\"` when autocompleting\n - `\"delete\"` when the user deletes content\n - `\"delete.selection\"` when deleting the selection\n - `\"delete.forward\"` when deleting forward from the selection\n - `\"delete.backward\"` when deleting backward from the selection\n - `\"delete.cut\"` when cutting to the clipboard\n - `\"move\"` when content is moved\n - `\"move.drop\"` when content is moved within the editor through drag-and-drop\n - `\"select\"` when explicitly changing the selection\n - `\"select.pointer\"` when selecting with a mouse or other pointing device\n - `\"undo\"` and `\"redo\"` for history actions\n\nUse [`isUserEvent`](https://codemirror.net/6/docs/ref/#state.Transaction.isUserEvent) to check\nwhether the annotation matches a given event.\n*/\nTransaction.userEvent = /*@__PURE__*/Annotation.define();\n/**\nAnnotation indicating whether a transaction should be added to\nthe undo history or not.\n*/\nTransaction.addToHistory = /*@__PURE__*/Annotation.define();\n/**\nAnnotation indicating (when present and true) that a transaction\nrepresents a change made by some other actor, not the user. This\nis used, for example, to tag other people's changes in\ncollaborative editing.\n*/\nTransaction.remote = /*@__PURE__*/Annotation.define();\nfunction joinRanges(a, b) {\n let result = [];\n for (let iA = 0, iB = 0;;) {\n let from, to;\n if (iA < a.length && (iB == b.length || b[iB] >= a[iA])) {\n from = a[iA++];\n to = a[iA++];\n }\n else if (iB < b.length) {\n from = b[iB++];\n to = b[iB++];\n }\n else\n return result;\n if (!result.length || result[result.length - 1] < from)\n result.push(from, to);\n else if (result[result.length - 1] < to)\n result[result.length - 1] = to;\n }\n}\nfunction mergeTransaction(a, b, sequential) {\n var _a;\n let mapForA, mapForB, changes;\n if (sequential) {\n mapForA = b.changes;\n mapForB = ChangeSet.empty(b.changes.length);\n changes = a.changes.compose(b.changes);\n }\n else {\n mapForA = b.changes.map(a.changes);\n mapForB = a.changes.mapDesc(b.changes, true);\n changes = a.changes.compose(mapForA);\n }\n return {\n changes,\n selection: b.selection ? b.selection.map(mapForB) : (_a = a.selection) === null || _a === void 0 ? void 0 : _a.map(mapForA),\n effects: StateEffect.mapEffects(a.effects, mapForA).concat(StateEffect.mapEffects(b.effects, mapForB)),\n annotations: a.annotations.length ? a.annotations.concat(b.annotations) : b.annotations,\n scrollIntoView: a.scrollIntoView || b.scrollIntoView\n };\n}\nfunction resolveTransactionInner(state, spec, docSize) {\n let sel = spec.selection, annotations = asArray(spec.annotations);\n if (spec.userEvent)\n annotations = annotations.concat(Transaction.userEvent.of(spec.userEvent));\n return {\n changes: spec.changes instanceof ChangeSet ? spec.changes\n : ChangeSet.of(spec.changes || [], docSize, state.facet(lineSeparator)),\n selection: sel && (sel instanceof EditorSelection ? sel : EditorSelection.single(sel.anchor, sel.head)),\n effects: asArray(spec.effects),\n annotations,\n scrollIntoView: !!spec.scrollIntoView\n };\n}\nfunction resolveTransaction(state, specs, filter) {\n let s = resolveTransactionInner(state, specs.length ? specs[0] : {}, state.doc.length);\n if (specs.length && specs[0].filter === false)\n filter = false;\n for (let i = 1; i < specs.length; i++) {\n if (specs[i].filter === false)\n filter = false;\n let seq = !!specs[i].sequential;\n s = mergeTransaction(s, resolveTransactionInner(state, specs[i], seq ? s.changes.newLength : state.doc.length), seq);\n }\n let tr = new Transaction(state, s.changes, s.selection, s.effects, s.annotations, s.scrollIntoView);\n return extendTransaction(filter ? filterTransaction(tr) : tr);\n}\n// Finish a transaction by applying filters if necessary.\nfunction filterTransaction(tr) {\n let state = tr.startState;\n // Change filters\n let result = true;\n for (let filter of state.facet(changeFilter)) {\n let value = filter(tr);\n if (value === false) {\n result = false;\n break;\n }\n if (Array.isArray(value))\n result = result === true ? value : joinRanges(result, value);\n }\n if (result !== true) {\n let changes, back;\n if (result === false) {\n back = tr.changes.invertedDesc;\n changes = ChangeSet.empty(state.doc.length);\n }\n else {\n let filtered = tr.changes.filter(result);\n changes = filtered.changes;\n back = filtered.filtered.invertedDesc;\n }\n tr = new Transaction(state, changes, tr.selection && tr.selection.map(back), StateEffect.mapEffects(tr.effects, back), tr.annotations, tr.scrollIntoView);\n }\n // Transaction filters\n let filters = state.facet(transactionFilter);\n for (let i = filters.length - 1; i >= 0; i--) {\n let filtered = filters[i](tr);\n if (filtered instanceof Transaction)\n tr = filtered;\n else if (Array.isArray(filtered) && filtered.length == 1 && filtered[0] instanceof Transaction)\n tr = filtered[0];\n else\n tr = resolveTransaction(state, asArray(filtered), false);\n }\n return tr;\n}\nfunction extendTransaction(tr) {\n let state = tr.startState, extenders = state.facet(transactionExtender), spec = tr;\n for (let i = extenders.length - 1; i >= 0; i--) {\n let extension = extenders[i](tr);\n if (extension && Object.keys(extension).length)\n spec = mergeTransaction(tr, resolveTransactionInner(state, extension, tr.changes.newLength), true);\n }\n return spec == tr ? tr : new Transaction(state, tr.changes, tr.selection, spec.effects, spec.annotations, spec.scrollIntoView);\n}\nconst none = [];\nfunction asArray(value) {\n return value == null ? none : Array.isArray(value) ? value : [value];\n}\n\n/**\nThe categories produced by a [character\ncategorizer](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer). These are used\ndo things like selecting by word.\n*/\nvar CharCategory = /*@__PURE__*/(function (CharCategory) {\n /**\n Word characters.\n */\n CharCategory[CharCategory[\"Word\"] = 0] = \"Word\";\n /**\n Whitespace.\n */\n CharCategory[CharCategory[\"Space\"] = 1] = \"Space\";\n /**\n Anything else.\n */\n CharCategory[CharCategory[\"Other\"] = 2] = \"Other\";\nreturn CharCategory})(CharCategory || (CharCategory = {}));\nconst nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\nlet wordChar;\ntry {\n wordChar = /*@__PURE__*/new RegExp(\"[\\\\p{Alphabetic}\\\\p{Number}_]\", \"u\");\n}\ncatch (_) { }\nfunction hasWordChar(str) {\n if (wordChar)\n return wordChar.test(str);\n for (let i = 0; i < str.length; i++) {\n let ch = str[i];\n if (/\\w/.test(ch) || ch > \"\\x80\" && (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)))\n return true;\n }\n return false;\n}\nfunction makeCategorizer(wordChars) {\n return (char) => {\n if (!/\\S/.test(char))\n return CharCategory.Space;\n if (hasWordChar(char))\n return CharCategory.Word;\n for (let i = 0; i < wordChars.length; i++)\n if (char.indexOf(wordChars[i]) > -1)\n return CharCategory.Word;\n return CharCategory.Other;\n };\n}\n\n/**\nThe editor state class is a persistent (immutable) data structure.\nTo update a state, you [create](https://codemirror.net/6/docs/ref/#state.EditorState.update) a\n[transaction](https://codemirror.net/6/docs/ref/#state.Transaction), which produces a _new_ state\ninstance, without modifying the original object.\n\nAs such, _never_ mutate properties of a state directly. That'll\njust break things.\n*/\nclass EditorState {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n config, \n /**\n The current document.\n */\n doc, \n /**\n The current selection.\n */\n selection, \n /**\n @internal\n */\n values, computeSlot, tr) {\n this.config = config;\n this.doc = doc;\n this.selection = selection;\n this.values = values;\n this.status = config.statusTemplate.slice();\n this.computeSlot = computeSlot;\n // Fill in the computed state immediately, so that further queries\n // for it made during the update return this state\n if (tr)\n tr._state = this;\n for (let i = 0; i < this.config.dynamicSlots.length; i++)\n ensureAddr(this, i << 1);\n this.computeSlot = null;\n }\n field(field, require = true) {\n let addr = this.config.address[field.id];\n if (addr == null) {\n if (require)\n throw new RangeError(\"Field is not present in this state\");\n return undefined;\n }\n ensureAddr(this, addr);\n return getAddr(this, addr);\n }\n /**\n Create a [transaction](https://codemirror.net/6/docs/ref/#state.Transaction) that updates this\n state. Any number of [transaction specs](https://codemirror.net/6/docs/ref/#state.TransactionSpec)\n can be passed. Unless\n [`sequential`](https://codemirror.net/6/docs/ref/#state.TransactionSpec.sequential) is set, the\n [changes](https://codemirror.net/6/docs/ref/#state.TransactionSpec.changes) (if any) of each spec\n are assumed to start in the _current_ document (not the document\n produced by previous specs), and its\n [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection) and\n [effects](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) are assumed to refer\n to the document created by its _own_ changes. The resulting\n transaction contains the combined effect of all the different\n specs. For [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection), later\n specs take precedence over earlier ones.\n */\n update(...specs) {\n return resolveTransaction(this, specs, true);\n }\n /**\n @internal\n */\n applyTransaction(tr) {\n let conf = this.config, { base, compartments } = conf;\n for (let effect of tr.effects) {\n if (effect.is(Compartment.reconfigure)) {\n if (conf) {\n compartments = new Map;\n conf.compartments.forEach((val, key) => compartments.set(key, val));\n conf = null;\n }\n compartments.set(effect.value.compartment, effect.value.extension);\n }\n else if (effect.is(StateEffect.reconfigure)) {\n conf = null;\n base = effect.value;\n }\n else if (effect.is(StateEffect.appendConfig)) {\n conf = null;\n base = asArray(base).concat(effect.value);\n }\n }\n let startValues;\n if (!conf) {\n conf = Configuration.resolve(base, compartments, this);\n let intermediateState = new EditorState(conf, this.doc, this.selection, conf.dynamicSlots.map(() => null), (state, slot) => slot.reconfigure(state, this), null);\n startValues = intermediateState.values;\n }\n else {\n startValues = tr.startState.values.slice();\n }\n new EditorState(conf, tr.newDoc, tr.newSelection, startValues, (state, slot) => slot.update(state, tr), tr);\n }\n /**\n Create a [transaction spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec) that\n replaces every selection range with the given content.\n */\n replaceSelection(text) {\n if (typeof text == \"string\")\n text = this.toText(text);\n return this.changeByRange(range => ({ changes: { from: range.from, to: range.to, insert: text },\n range: EditorSelection.cursor(range.from + text.length) }));\n }\n /**\n Create a set of changes and a new selection by running the given\n function for each range in the active selection. The function\n can return an optional set of changes (in the coordinate space\n of the start document), plus an updated range (in the coordinate\n space of the document produced by the call's own changes). This\n method will merge all the changes and ranges into a single\n changeset and selection, and return it as a [transaction\n spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec), which can be passed to\n [`update`](https://codemirror.net/6/docs/ref/#state.EditorState.update).\n */\n changeByRange(f) {\n let sel = this.selection;\n let result1 = f(sel.ranges[0]);\n let changes = this.changes(result1.changes), ranges = [result1.range];\n let effects = asArray(result1.effects);\n for (let i = 1; i < sel.ranges.length; i++) {\n let result = f(sel.ranges[i]);\n let newChanges = this.changes(result.changes), newMapped = newChanges.map(changes);\n for (let j = 0; j < i; j++)\n ranges[j] = ranges[j].map(newMapped);\n let mapBy = changes.mapDesc(newChanges, true);\n ranges.push(result.range.map(mapBy));\n changes = changes.compose(newMapped);\n effects = StateEffect.mapEffects(effects, newMapped).concat(StateEffect.mapEffects(asArray(result.effects), mapBy));\n }\n return {\n changes,\n selection: EditorSelection.create(ranges, sel.mainIndex),\n effects\n };\n }\n /**\n Create a [change set](https://codemirror.net/6/docs/ref/#state.ChangeSet) from the given change\n description, taking the state's document length and line\n separator into account.\n */\n changes(spec = []) {\n if (spec instanceof ChangeSet)\n return spec;\n return ChangeSet.of(spec, this.doc.length, this.facet(EditorState.lineSeparator));\n }\n /**\n Using the state's [line\n separator](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator), create a\n [`Text`](https://codemirror.net/6/docs/ref/#text.Text) instance from the given string.\n */\n toText(string) {\n return Text.of(string.split(this.facet(EditorState.lineSeparator) || DefaultSplit));\n }\n /**\n Return the given range of the document as a string.\n */\n sliceDoc(from = 0, to = this.doc.length) {\n return this.doc.sliceString(from, to, this.lineBreak);\n }\n /**\n Get the value of a state [facet](https://codemirror.net/6/docs/ref/#state.Facet).\n */\n facet(facet) {\n let addr = this.config.address[facet.id];\n if (addr == null)\n return facet.default;\n ensureAddr(this, addr);\n return getAddr(this, addr);\n }\n /**\n Convert this state to a JSON-serializable object. When custom\n fields should be serialized, you can pass them in as an object\n mapping property names (in the resulting object, which should\n not use `doc` or `selection`) to fields.\n */\n toJSON(fields) {\n let result = {\n doc: this.sliceDoc(),\n selection: this.selection.toJSON()\n };\n if (fields)\n for (let prop in fields) {\n let value = fields[prop];\n if (value instanceof StateField)\n result[prop] = value.spec.toJSON(this.field(fields[prop]), this);\n }\n return result;\n }\n /**\n Deserialize a state from its JSON representation. When custom\n fields should be deserialized, pass the same object you passed\n to [`toJSON`](https://codemirror.net/6/docs/ref/#state.EditorState.toJSON) when serializing as\n third argument.\n */\n static fromJSON(json, config = {}, fields) {\n if (!json || typeof json.doc != \"string\")\n throw new RangeError(\"Invalid JSON representation for EditorState\");\n let fieldInit = [];\n if (fields)\n for (let prop in fields) {\n let field = fields[prop], value = json[prop];\n fieldInit.push(field.init(state => field.spec.fromJSON(value, state)));\n }\n return EditorState.create({\n doc: json.doc,\n selection: EditorSelection.fromJSON(json.selection),\n extensions: config.extensions ? fieldInit.concat([config.extensions]) : fieldInit\n });\n }\n /**\n Create a new state. You'll usually only need this when\n initializing an editor—updated states are created by applying\n transactions.\n */\n static create(config = {}) {\n let configuration = Configuration.resolve(config.extensions || [], new Map);\n let doc = config.doc instanceof Text ? config.doc\n : Text.of((config.doc || \"\").split(configuration.staticFacet(EditorState.lineSeparator) || DefaultSplit));\n let selection = !config.selection ? EditorSelection.single(0)\n : config.selection instanceof EditorSelection ? config.selection\n : EditorSelection.single(config.selection.anchor, config.selection.head);\n checkSelection(selection, doc.length);\n if (!configuration.staticFacet(allowMultipleSelections))\n selection = selection.asSingle();\n return new EditorState(configuration, doc, selection, configuration.dynamicSlots.map(() => null), (state, slot) => slot.create(state), null);\n }\n /**\n The size (in columns) of a tab in the document, determined by\n the [`tabSize`](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize) facet.\n */\n get tabSize() { return this.facet(EditorState.tabSize); }\n /**\n Get the proper [line-break](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator)\n string for this state.\n */\n get lineBreak() { return this.facet(EditorState.lineSeparator) || \"\\n\"; }\n /**\n Returns true when the editor is\n [configured](https://codemirror.net/6/docs/ref/#state.EditorState^readOnly) to be read-only.\n */\n get readOnly() { return this.facet(readOnly); }\n /**\n Look up a translation for the given phrase (via the\n [`phrases`](https://codemirror.net/6/docs/ref/#state.EditorState^phrases) facet), or return the\n original string if no translation is found.\n */\n phrase(phrase) {\n for (let map of this.facet(EditorState.phrases))\n if (Object.prototype.hasOwnProperty.call(map, phrase))\n return map[phrase];\n return phrase;\n }\n /**\n Find the values for a given language data field, provided by the\n the [`languageData`](https://codemirror.net/6/docs/ref/#state.EditorState^languageData) facet.\n */\n languageDataAt(name, pos, side = -1) {\n let values = [];\n for (let provider of this.facet(languageData)) {\n for (let result of provider(this, pos, side)) {\n if (Object.prototype.hasOwnProperty.call(result, name))\n values.push(result[name]);\n }\n }\n return values;\n }\n /**\n Return a function that can categorize strings (expected to\n represent a single [grapheme cluster](https://codemirror.net/6/docs/ref/#text.findClusterBreak))\n into one of:\n \n - Word (contains an alphanumeric character or a character\n explicitly listed in the local language's `\"wordChars\"`\n language data, which should be a string)\n - Space (contains only whitespace)\n - Other (anything else)\n */\n charCategorizer(at) {\n return makeCategorizer(this.languageDataAt(\"wordChars\", at).join(\"\"));\n }\n /**\n Find the word at the given position, meaning the range\n containing all [word](https://codemirror.net/6/docs/ref/#state.CharCategory.Word) characters\n around it. If no word characters are adjacent to the position,\n this returns null.\n */\n wordAt(pos) {\n let { text, from, length } = this.doc.lineAt(pos);\n let cat = this.charCategorizer(pos);\n let start = pos - from, end = pos - from;\n while (start > 0) {\n let prev = findClusterBreak(text, start, false);\n if (cat(text.slice(prev, start)) != CharCategory.Word)\n break;\n start = prev;\n }\n while (end < length) {\n let next = findClusterBreak(text, end);\n if (cat(text.slice(end, next)) != CharCategory.Word)\n break;\n end = next;\n }\n return start == end ? null : EditorSelection.range(start + from, end + from);\n }\n}\n/**\nA facet that, when enabled, causes the editor to allow multiple\nranges to be selected. Be careful though, because by default the\neditor relies on the native DOM selection, which cannot handle\nmultiple selections. An extension like\n[`drawSelection`](https://codemirror.net/6/docs/ref/#view.drawSelection) can be used to make\nsecondary selections visible to the user.\n*/\nEditorState.allowMultipleSelections = allowMultipleSelections;\n/**\nConfigures the tab size to use in this state. The first\n(highest-precedence) value of the facet is used. If no value is\ngiven, this defaults to 4.\n*/\nEditorState.tabSize = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : 4\n});\n/**\nThe line separator to use. By default, any of `\"\\n\"`, `\"\\r\\n\"`\nand `\"\\r\"` is treated as a separator when splitting lines, and\nlines are joined with `\"\\n\"`.\n\nWhen you configure a value here, only that precise separator\nwill be used, allowing you to round-trip documents through the\neditor without normalizing line separators.\n*/\nEditorState.lineSeparator = lineSeparator;\n/**\nThis facet controls the value of the\n[`readOnly`](https://codemirror.net/6/docs/ref/#state.EditorState.readOnly) getter, which is\nconsulted by commands and extensions that implement editing\nfunctionality to determine whether they should apply. It\ndefaults to false, but when its highest-precedence value is\n`true`, such functionality disables itself.\n\nNot to be confused with\n[`EditorView.editable`](https://codemirror.net/6/docs/ref/#view.EditorView^editable), which\ncontrols whether the editor's DOM is set to be editable (and\nthus focusable).\n*/\nEditorState.readOnly = readOnly;\n/**\nRegisters translation phrases. The\n[`phrase`](https://codemirror.net/6/docs/ref/#state.EditorState.phrase) method will look through\nall objects registered with this facet to find translations for\nits argument.\n*/\nEditorState.phrases = /*@__PURE__*/Facet.define();\n/**\nA facet used to register [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt) providers.\n*/\nEditorState.languageData = languageData;\n/**\nFacet used to register change filters, which are called for each\ntransaction (unless explicitly\n[disabled](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter)), and can suppress\npart of the transaction's changes.\n\nSuch a function can return `true` to indicate that it doesn't\nwant to do anything, `false` to completely stop the changes in\nthe transaction, or a set of ranges in which changes should be\nsuppressed. Such ranges are represented as an array of numbers,\nwith each pair of two number indicating the start and end of a\nrange. So for example `[10, 20, 100, 110]` suppresses changes\nbetween 10 and 20, and between 100 and 110.\n*/\nEditorState.changeFilter = changeFilter;\n/**\nFacet used to register a hook that gets a chance to update or\nreplace transaction specs before they are applied. This will\nonly be applied for transactions that don't have\n[`filter`](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter) set to `false`. You\ncan either return a single transaction spec (possibly the input\ntransaction), or an array of specs (which will be combined in\nthe same way as the arguments to\n[`EditorState.update`](https://codemirror.net/6/docs/ref/#state.EditorState.update)).\n\nWhen possible, it is recommended to avoid accessing\n[`Transaction.state`](https://codemirror.net/6/docs/ref/#state.Transaction.state) in a filter,\nsince it will force creation of a state that will then be\ndiscarded again, if the transaction is actually filtered.\n\n(This functionality should be used with care. Indiscriminately\nmodifying transaction is likely to break something or degrade\nthe user experience.)\n*/\nEditorState.transactionFilter = transactionFilter;\n/**\nThis is a more limited form of\n[`transactionFilter`](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter),\nwhich can only add\n[annotations](https://codemirror.net/6/docs/ref/#state.TransactionSpec.annotations) and\n[effects](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects). _But_, this type\nof filter runs even the transaction has disabled regular\n[filtering](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter), making it suitable\nfor effects that don't need to touch the changes or selection,\nbut do want to process every transaction.\n\nExtenders run _after_ filters, when both are applied.\n*/\nEditorState.transactionExtender = transactionExtender;\nCompartment.reconfigure = /*@__PURE__*/StateEffect.define();\n\n/**\nUtility function for combining behaviors to fill in a config\nobject from an array of provided configs. Will, by default, error\nwhen a field gets two values that aren't `===`-equal, but you can\nprovide combine functions per field to do something else.\n*/\nfunction combineConfig(configs, defaults, // Should hold only the optional properties of Config, but I haven't managed to express that\ncombine = {}) {\n let result = {};\n for (let config of configs)\n for (let key of Object.keys(config)) {\n let value = config[key], current = result[key];\n if (current === undefined)\n result[key] = value;\n else if (current === value || value === undefined) ; // No conflict\n else if (Object.hasOwnProperty.call(combine, key))\n result[key] = combine[key](current, value);\n else\n throw new Error(\"Config merge conflict for field \" + key);\n }\n for (let key in defaults)\n if (result[key] === undefined)\n result[key] = defaults[key];\n return result;\n}\n\nexport { Annotation, AnnotationType, ChangeDesc, ChangeSet, CharCategory, Compartment, EditorSelection, EditorState, Facet, MapMode, Prec, SelectionRange, StateEffect, StateEffectType, StateField, Transaction, combineConfig };\n","const C = \"\\u037c\"\nconst COUNT = typeof Symbol == \"undefined\" ? \"__\" + C : Symbol.for(C)\nconst SET = typeof Symbol == \"undefined\" ? \"__styleSet\" + Math.floor(Math.random() * 1e8) : Symbol(\"styleSet\")\nconst top = typeof globalThis != \"undefined\" ? globalThis : typeof window != \"undefined\" ? window : {}\n\n// :: - Style modules encapsulate a set of CSS rules defined from\n// JavaScript. Their definitions are only available in a given DOM\n// root after it has been _mounted_ there with `StyleModule.mount`.\n//\n// Style modules should be created once and stored somewhere, as\n// opposed to re-creating them every time you need them. The amount of\n// CSS rules generated for a given DOM root is bounded by the amount\n// of style modules that were used. So to avoid leaking rules, don't\n// create these dynamically, but treat them as one-time allocations.\nexport class StyleModule {\n // :: (Object