{"version":3,"file":"static/js/main.701daa23.js","mappings":"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","sources":["../node_modules/@shopify/app-bridge-react/components/ClientRouter/ClientRouter.js","../node_modules/@shopify/app-bridge-react/components/ClientRouter/hook.js","../node_modules/@shopify/app-bridge-react/components/ClientRouter/index.js","../node_modules/@shopify/app-bridge-react/components/ClientRouter/router.js","../node_modules/@shopify/app-bridge-react/components/ContextualSaveBar/ContextualSaveBar.js","../node_modules/@shopify/app-bridge-react/components/ContextualSaveBar/index.js","../node_modules/@shopify/app-bridge-react/components/Loading/Loading.js","../node_modules/@shopify/app-bridge-react/components/Loading/index.js","../node_modules/@shopify/app-bridge-react/components/Modal/Modal.js","../node_modules/@shopify/app-bridge-react/components/Modal/ModalContent/ModalContent.js","../node_modules/@shopify/app-bridge-react/components/Modal/ModalContent/index.js","../node_modules/@shopify/app-bridge-react/components/Modal/index.js","../node_modules/@shopify/app-bridge-react/components/NavigationMenu/NavigationMenu.js","../node_modules/@shopify/app-bridge-react/components/NavigationMenu/index.js","../node_modules/@shopify/app-bridge-react/components/Provider/Provider.js","../node_modules/@shopify/app-bridge-react/components/Provider/index.js","../node_modules/@shopify/app-bridge-react/components/ResourcePicker/ResourcePicker.js","../node_modules/@shopify/app-bridge-react/components/ResourcePicker/index.js","../node_modules/@shopify/app-bridge-react/components/RoutePropagator/RoutePropagator.js","../node_modules/@shopify/app-bridge-react/components/RoutePropagator/globals.js","../node_modules/@shopify/app-bridge-react/components/RoutePropagator/hook.js","../node_modules/@shopify/app-bridge-react/components/RoutePropagator/index.js","../node_modules/@shopify/app-bridge-react/components/RoutePropagator/route-propagator.js","../node_modules/@shopify/app-bridge-react/components/TitleBar/TitleBar.js","../node_modules/@shopify/app-bridge-react/components/TitleBar/index.js","../node_modules/@shopify/app-bridge-react/components/Toast/Toast.js","../node_modules/@shopify/app-bridge-react/components/Toast/index.js","../node_modules/@shopify/app-bridge-react/components/index.js","../node_modules/@shopify/app-bridge-react/components/unstable_Picker/index.js","../node_modules/@shopify/app-bridge-react/components/unstable_Picker/unstable_Picker.js","../node_modules/@shopify/app-bridge-react/context.js","../node_modules/@shopify/app-bridge-react/hooks/index.js","../node_modules/@shopify/app-bridge-react/hooks/useAppBridgeState/index.js","../node_modules/@shopify/app-bridge-react/hooks/useAppBridgeState/useAppBridgeState.js","../node_modules/@shopify/app-bridge-react/hooks/useContextualSaveBar/index.js","../node_modules/@shopify/app-bridge-react/hooks/useContextualSaveBar/useContextualSaveBar.js","../node_modules/@shopify/app-bridge-react/hooks/useFeatureRequest/index.js","../node_modules/@shopify/app-bridge-react/hooks/useFeatureRequest/useFeatureRequest.js","../node_modules/@shopify/app-bridge-react/hooks/useFeaturesAvailable/index.js","../node_modules/@shopify/app-bridge-react/hooks/useFeaturesAvailable/useFeaturesAvailable.js","../node_modules/@shopify/app-bridge-react/hooks/useLocale/index.js","../node_modules/@shopify/app-bridge-react/hooks/useLocale/useLocale.js","../node_modules/@shopify/app-bridge-react/hooks/useNavigate/index.js","../node_modules/@shopify/app-bridge-react/hooks/useNavigate/useNavigate.js","../node_modules/@shopify/app-bridge-react/hooks/useNavigationHistory/index.js","../node_modules/@shopify/app-bridge-react/hooks/useNavigationHistory/useNavigationHistory.js","../node_modules/@shopify/app-bridge-react/hooks/useToast/index.js","../node_modules/@shopify/app-bridge-react/hooks/useToast/useToast.js","../node_modules/@shopify/app-bridge-react/index.js","../node_modules/@shopify/app-bridge-react/useAppBridge.js","../node_modules/@shopify/app-bridge-react/utilities/transformers.js","../node_modules/@shopify/app-bridge-utils/index.js","../node_modules/@shopify/app-bridge-utils/utilities/authorization-code/authorization-code.js","../node_modules/@shopify/app-bridge-utils/utilities/authorization-code/index.js","../node_modules/@shopify/app-bridge-utils/utilities/authorization-code/user-authorized-fetch.js","../node_modules/@shopify/app-bridge-utils/utilities/index.js","../node_modules/@shopify/app-bridge-utils/utilities/modal.js","../node_modules/@shopify/app-bridge-utils/utilities/platform.js","../node_modules/@shopify/app-bridge-utils/utilities/session-token/authenticated-fetch.js","../node_modules/@shopify/app-bridge-utils/utilities/session-token/index.js","../node_modules/@shopify/app-bridge-utils/utilities/session-token/session-token.js","../node_modules/@shopify/app-bridge/MessageTransport.js","../node_modules/@shopify/app-bridge/actions/ActionSet.js","../node_modules/@shopify/app-bridge/actions/AuthCode/index.js","../node_modules/@shopify/app-bridge/actions/ButtonGroup/index.js","../node_modules/@shopify/app-bridge/actions/Button/index.js","../node_modules/@shopify/app-bridge/actions/Cart/index.js","../node_modules/@shopify/app-bridge/actions/Client/index.js","../node_modules/@shopify/app-bridge/actions/ContextualSaveBar/index.js","../node_modules/@shopify/app-bridge/actions/Error/index.js","../node_modules/@shopify/app-bridge/actions/Features/actions.js","../node_modules/@shopify/app-bridge/actions/Features/index.js","../node_modules/@shopify/app-bridge/actions/Features/types.js","../node_modules/@shopify/app-bridge/actions/FeedbackModal/index.js","../node_modules/@shopify/app-bridge/actions/Flash/actions.js","../node_modules/@shopify/app-bridge/actions/Flash/index.js","../node_modules/@shopify/app-bridge/actions/Fullscreen/index.js","../node_modules/@shopify/app-bridge/actions/LeaveConfirmation/index.js","../node_modules/@shopify/app-bridge/actions/Link/AppLink/index.js","../node_modules/@shopify/app-bridge/actions/Loading/index.js","../node_modules/@shopify/app-bridge/actions/MarketingExternalActivityTopBar/index.js","../node_modules/@shopify/app-bridge/actions/Menu/ChannelMenu/index.js","../node_modules/@shopify/app-bridge/actions/Menu/NavigationMenu/index.js","../node_modules/@shopify/app-bridge/actions/Modal/ModalContent/index.js","../node_modules/@shopify/app-bridge/actions/Modal/index.js","../node_modules/@shopify/app-bridge/actions/Navigation/History/index.js","../node_modules/@shopify/app-bridge/actions/Navigation/Redirect/index.js","../node_modules/@shopify/app-bridge/actions/Performance/index.js","../node_modules/@shopify/app-bridge/actions/Picker/index.js","../node_modules/@shopify/app-bridge/actions/Pos/index.js","../node_modules/@shopify/app-bridge/actions/Print/index.js","../node_modules/@shopify/app-bridge/actions/ResourcePicker/index.js","../node_modules/@shopify/app-bridge/actions/Scanner/index.js","../node_modules/@shopify/app-bridge/actions/SessionToken/index.js","../node_modules/@shopify/app-bridge/actions/Share/index.js","../node_modules/@shopify/app-bridge/actions/TitleBar/index.js","../node_modules/@shopify/app-bridge/actions/Toast/index.js","../node_modules/@shopify/app-bridge/actions/WebVitals/actions.js","../node_modules/@shopify/app-bridge/actions/WebVitals/index.js","../node_modules/@shopify/app-bridge/actions/buttonGroupHelper.js","../node_modules/@shopify/app-bridge/actions/buttonHelper.js","../node_modules/@shopify/app-bridge/actions/constants.js","../node_modules/@shopify/app-bridge/actions/helper.js","../node_modules/@shopify/app-bridge/actions/index.js","../node_modules/@shopify/app-bridge/actions/merge.js","../node_modules/@shopify/app-bridge/actions/types.js","../node_modules/@shopify/app-bridge/actions/uuid.js","../node_modules/@shopify/app-bridge/actions/validator.js","../node_modules/@shopify/app-bridge/client/Client.js","../node_modules/@shopify/app-bridge/client/Hooks.js","../node_modules/@shopify/app-bridge/client/index.js","../node_modules/@shopify/app-bridge/client/print.js","../node_modules/@shopify/app-bridge/client/redirect.js","../node_modules/@shopify/app-bridge/client/types.js","../node_modules/@shopify/app-bridge/index.js","../node_modules/@shopify/app-bridge/production.js","../node_modules/@shopify/app-bridge/util/collection.js","../node_modules/@shopify/app-bridge/util/env.js","../node_modules/@shopify/app-bridge/util/shared.js","../node_modules/classnames/index.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/enquire.js/src/Util.js","../node_modules/enquire.js/src/index.js","../node_modules/jquery/dist/jquery.js","../node_modules/json2mq/index.js","../node_modules/lodash.debounce/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-query/es/core/focusManager.js","../node_modules/react-query/es/core/logger.js","../node_modules/react-query/es/core/mutation.js","../node_modules/react-query/es/core/mutationCache.js","../node_modules/react-query/es/core/notifyManager.js","../node_modules/react-query/es/core/onlineManager.js","../node_modules/react-query/es/core/query.js","../node_modules/react-query/es/core/queryCache.js","../node_modules/react-query/es/core/infiniteQueryBehavior.js","../node_modules/react-query/es/core/queryClient.js","../node_modules/react-query/es/core/retryer.js","../node_modules/react-query/es/core/subscribable.js","../node_modules/react-query/es/core/utils.js","../node_modules/react-query/es/react/reactBatchedUpdates.js","../node_modules/react-query/es/react/setBatchUpdatesFn.js","../node_modules/react-query/es/react/logger.js","../node_modules/react-query/es/react/setLogger.js","../node_modules/react-query/es/react/QueryClientProvider.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-slick/lib/default-props.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/utils/innerSliderUtils.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/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/MobileHamburgerMajor.svg.mjs","../node_modules/@shopify/polaris/build/esm/utilities/css.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/utilities/use-toggle.js","../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/utilities/errors.js","../node_modules/@shopify/polaris/build/esm/utilities/scroll-lock-manager/context.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/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/CircleCancelMinor.svg.mjs","../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/utilities/i18n/context.js","../node_modules/@shopify/polaris/build/esm/utilities/i18n/hooks.js","../node_modules/@shopify/polaris/build/esm/utilities/unique-id/context.js","../node_modules/@shopify/polaris/build/esm/utilities/unique-id/hooks.js","../node_modules/@shopify/polaris/build/esm/components/Icon/Icon.scss.js","../node_modules/@shopify/polaris/build/esm/components/Text/Text.scss.js","../node_modules/@shopify/polaris/build/esm/components/Text/Text.js","../node_modules/@shopify/polaris/build/esm/components/Icon/Icon.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/build/esm/utilities/banner-context.js","../node_modules/@shopify/polaris/build/esm/components/Link/Link.scss.js","../node_modules/@shopify/polaris/build/esm/components/shared.js","../node_modules/@shopify/polaris/build/esm/utilities/link/context.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/Link/Link.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/components/Badge/types.js","../node_modules/@shopify/polaris/build/esm/components/Badge/utils.js","../node_modules/@shopify/polaris/build/esm/components/Badge/components/Pip/Pip.scss.js","../node_modules/@shopify/polaris/build/esm/components/Badge/components/Pip/Pip.js","../node_modules/@shopify/polaris/build/esm/components/Badge/Badge.js","../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/utilities/portals/context.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-tokens/dist/esm/_virtual/_rollupPluginBabelHelpers.mjs","../node_modules/@shopify/polaris-tokens/dist/esm/src/utilities.mjs","../node_modules/@shopify/polaris-tokens/dist/esm/src/token-groups/breakpoints.mjs","../node_modules/@shopify/polaris-tokens/dist/esm/src/colors.mjs","../node_modules/@shopify/polaris-tokens/dist/esm/src/token-groups/color.mjs","../node_modules/@shopify/polaris-tokens/dist/esm/src/metadata.mjs","../node_modules/@shopify/polaris-tokens/dist/esm/src/token-groups/border.mjs","../node_modules/@shopify/polaris-tokens/dist/esm/src/token-groups/font.mjs","../node_modules/@shopify/polaris-tokens/dist/esm/src/token-groups/legacy.mjs","../node_modules/@shopify/polaris-tokens/dist/esm/src/token-groups/shadow.mjs","../node_modules/@shopify/polaris-tokens/dist/esm/src/token-groups/shape.mjs","../node_modules/@shopify/polaris-tokens/dist/esm/src/token-groups/spacing.mjs","../node_modules/@shopify/polaris-tokens/dist/esm/src/token-groups/space.mjs","../node_modules/@shopify/polaris-tokens/dist/esm/build/index.mjs","../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/target.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/utilities/geometry.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/utilities/debounce.js","../node_modules/@shopify/polaris/build/esm/utilities/use-lazy-ref.js","../node_modules/@shopify/polaris/build/esm/utilities/use-is-after-initial-mount.js","../node_modules/@shopify/polaris/build/esm/utilities/use-component-did-mount.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/utilities/breakpoints.js","../node_modules/@shopify/polaris/build/esm/utilities/sticky-manager/sticky-manager.js","../node_modules/@shopify/polaris/build/esm/utilities/sticky-manager/context.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/EventListener/EventListener.js","../node_modules/@shopify/polaris/build/esm/components/PositionedOverlay/PositionedOverlay.js","../node_modules/@shopify/polaris/build/esm/components/Box/Box.scss.js","../node_modules/@shopify/polaris/build/esm/components/Box/Box.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/components/PopoverOverlay/PopoverOverlay.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/LegacyStack/LegacyStack.scss.js","../node_modules/@shopify/polaris/build/esm/components/LegacyStack/components/Item/Item.js","../node_modules/@shopify/polaris/build/esm/components/LegacyStack/LegacyStack.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/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/use-disable-interaction.js","../node_modules/@shopify/polaris/build/esm/components/Button/Button.scss.js","../node_modules/@shopify/polaris/build/esm/components/Spinner/Spinner.scss.js","../node_modules/@shopify/polaris/build/esm/components/Spinner/Spinner.js","../node_modules/@shopify/polaris/build/esm/components/ActionList/ActionList.scss.js","../node_modules/@shopify/polaris/build/esm/components/Tooltip/Tooltip.scss.js","../node_modules/@shopify/polaris/build/esm/utilities/ephemeral-presence-manager/context.js","../node_modules/@shopify/polaris/build/esm/utilities/ephemeral-presence-manager/hooks.js","../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/HorizontalStack/HorizontalStack.scss.js","../node_modules/@shopify/polaris/build/esm/components/HorizontalStack/HorizontalStack.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/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/Image/Image.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/TopBar/TopBar.js","../node_modules/@shopify/polaris/build/esm/components/TopBar/components/UserMenu/UserMenu.js","../node_modules/@shopify/polaris/build/esm/utilities/within-content-context.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/HorizontalDotsMinor.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/utilities/media-query/context.js","../node_modules/@shopify/polaris/build/esm/utilities/media-query/hooks.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/build/esm/components/Loading/Loading.js","../node_modules/@shopify/polaris/build/esm/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/Toast/Toast.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-transition-group/esm/TransitionGroupContext.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/Section/Section.scss.js","../node_modules/@shopify/polaris/build/esm/components/Modal/components/Section/Section.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/dom-helpers/esm/removeClass.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/components/Modal/components/Dialog/Dialog.scss.js","../node_modules/@shopify/polaris/build/esm/utilities/focus-manager/context.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/HorizontalGrid/HorizontalGrid.scss.js","../node_modules/@shopify/polaris/build/esm/components/HorizontalGrid/HorizontalGrid.js","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/MobileCancelMajor.svg.mjs","../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/Modal/components/Header/Header.js","../node_modules/@shopify/polaris/build/esm/components/Backdrop/Backdrop.scss.js","../node_modules/@shopify/polaris/build/esm/components/Backdrop/Backdrop.js","../node_modules/@shopify/polaris/build/esm/components/Button/utils.js","../node_modules/@shopify/polaris/build/esm/components/Modal/components/Footer/Footer.js","../node_modules/@shopify/polaris/build/esm/components/Modal/Modal.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/components/Frame/components/ContextualSaveBar/ContextualSaveBar.scss.js","../node_modules/@shopify/polaris/build/esm/components/Frame/components/ContextualSaveBar/components/DiscardConfirmationModal/DiscardConfirmationModal.js","../node_modules/@shopify/polaris/build/esm/components/Frame/components/ContextualSaveBar/ContextualSaveBar.js","../node_modules/@shopify/polaris/build/esm/components/Frame/components/ToastManager/ToastManager.scss.js","../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/DiamondAlertMinor.svg.mjs","../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/components/Frame/Frame.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/@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/components/MediaQueryProvider/MediaQueryProvider.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/components/FocusManager/FocusManager.js","../node_modules/@shopify/polaris/build/esm/components/EphemeralPresenceManager/EphemeralPresenceManager.js","../node_modules/@shopify/polaris/build/esm/components/AppProvider/AppProvider.js","../node_modules/@shopify/polaris-icons/dist/icons/LogOutMinor.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/ImportStoreMajor.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/InventoryMajor.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/BuyButtonMajor.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/CartMajor.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/CartDownMajor.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/ViewMajor.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/BuyButtonButtonLayoutMajor.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/SidebarRightMajor.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/StarFilledMinor.svg.mjs","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/use-sync-external-store-shim/useSyncExternalStoreShimClient.ts","../node_modules/react-router/lib/use-sync-external-store-shim/index.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/index.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/@shopify/polaris/node_modules/@shopify/polaris-icons/dist/icons/EnableSelectionMinor.svg.mjs","../node_modules/@shopify/polaris/build/esm/components/ResourceList/ResourceList.scss.js","../node_modules/@shopify/polaris/build/esm/components/Select/Select.scss.js","../node_modules/@shopify/polaris/build/esm/components/Labelled/Labelled.scss.js","../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/Select/Select.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/Bleed/Bleed.scss.js","../node_modules/@shopify/polaris/build/esm/components/Bleed/Bleed.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/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/ResourceItem/ResourceItem.js","../node_modules/@shopify/polaris/build/esm/components/BulkActions/hooks/use-is-bulk-actions-sticky.js","../node_modules/@shopify/polaris/build/esm/components/SelectAllActions/SelectAllActions.scss.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/SelectAllActions/SelectAllActions.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/illustrations/empty-search.svg.js","../node_modules/@shopify/polaris/build/esm/components/EmptySearchResult/EmptySearchResult.js","../node_modules/@shopify/polaris/build/esm/utilities/clamp.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/BulkActions/BulkActions.js","../node_modules/@shopify/polaris/build/esm/components/ResourceList/ResourceList.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/TextStyle/TextStyle.scss.js","../node_modules/@shopify/polaris/build/esm/components/TextStyle/TextStyle.js","../node_modules/@shopify/polaris/build/esm/utilities/is-interface.js","../node_modules/@shopify/polaris/build/esm/utilities/is-react-element.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/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/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/utilities/use-event-listener.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/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/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/Card/Card.scss.js","../node_modules/@shopify/polaris/build/esm/components/Card/components/Header/Header.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/Card/components/Subsection/Subsection.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/LegacyCard/LegacyCard.scss.js","../node_modules/@shopify/polaris/build/esm/components/LegacyCard/components/Header/Header.js","../node_modules/@shopify/polaris/build/esm/components/LegacyCard/components/Section/Section.js","../node_modules/@shopify/polaris/build/esm/components/LegacyCard/LegacyCard.js","../node_modules/@shopify/polaris/build/esm/components/LegacyCard/components/Subsection/Subsection.js","../node_modules/@shopify/polaris/build/esm/components/SettingAction/SettingAction.scss.js","../node_modules/@shopify/polaris/build/esm/components/SettingAction/SettingAction.js","../node_modules/@shopify/polaris/build/esm/components/SettingToggle/SettingToggle.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/build/esm/components/TextField/TextField.scss.js","../node_modules/@shopify/polaris/build/esm/components/TextField/components/Spinner/Spinner.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/Resizer/Resizer.js","../node_modules/@shopify/polaris/build/esm/components/TextField/TextField.js","../node_modules/@shopify/polaris/build/esm/components/PageActions/PageActions.scss.js","../node_modules/@shopify/polaris/build/esm/components/PageActions/PageActions.js","../node_modules/@shopify/polaris/build/esm/components/SkeletonPage/SkeletonPage.scss.js","../node_modules/@shopify/polaris/build/esm/components/VerticalStack/VerticalStack.scss.js","../node_modules/@shopify/polaris/build/esm/components/VerticalStack/VerticalStack.js","../node_modules/@shopify/polaris/build/esm/components/SkeletonPage/SkeletonPage.js","../node_modules/@shopify/polaris/build/esm/components/SkeletonDisplayText/SkeletonDisplayText.scss.js","../node_modules/@shopify/polaris/build/esm/components/SkeletonDisplayText/SkeletonDisplayText.js","../node_modules/@shopify/polaris/build/esm/components/SkeletonBodyText/SkeletonBodyText.scss.js","../node_modules/@shopify/polaris/build/esm/components/SkeletonBodyText/SkeletonBodyText.js","components/SkeletonPageCustom.js","components/helpers/customFetch.js","components/helpers/fetchApi.js","components/Dashboard.js","../node_modules/@shopify/polaris/build/esm/components/RangeSlider/RangeSlider.scss.js","../node_modules/@shopify/polaris/build/esm/components/RangeSlider/components/DualThumb/DualThumb.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","../node_modules/@shopify/polaris-icons/dist/icons/InfoMinor.svg.mjs","../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","components/ColorPickerCustom.js","../node_modules/@shopify/polaris-icons/dist/icons/DesktopMajor.svg.mjs","../node_modules/@shopify/polaris-icons/dist/icons/MobileMajor.svg.mjs","components/StickyAddToCartBar.js","components/StickyCheckoutBar.js","components/StickyCart.js","components/QuickBuyButton.js","components/QuickView.js","../node_modules/@shopify/polaris/build/esm/utilities/options.js","../node_modules/@shopify/polaris/build/esm/utilities/arrays.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","components/EmojiPickerCustom.js","../node_modules/@shopify/polaris/build/esm/components/Tag/Tag.scss.js","../node_modules/@shopify/polaris/build/esm/components/Tag/Tag.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/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/selectors.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/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/listbox/utilities.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","components/CountryPickerCustom.js","components/CartSliderShippingBar.js","components/CartSliderCartReserved.js","components/CartSliderInCartUpsell.js","components/CartSlider.js","components/Advanced.js","../node_modules/@shopify/polaris/build/esm/components/Thumbnail/Thumbnail.scss.js","../node_modules/@shopify/polaris/build/esm/components/Thumbnail/Thumbnail.js","../node_modules/@shopify/polaris/build/esm/components/EmptyState/EmptyState.scss.js","../node_modules/@shopify/polaris/build/esm/components/EmptyState/EmptyState.js","components/Analytics.js","components/Login.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/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/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/Caption/Caption.scss.js","../node_modules/@shopify/polaris/build/esm/components/Caption/Caption.js","../node_modules/@shopify/polaris/build/esm/components/Form/Form.js","components/Support.js","components/MoreApps.js","components/Error.js","components/SkeletonPage2Custom.js","../node_modules/@shopify/polaris-icons/dist/icons/SearchMinor.svg.mjs","components/UpsellBundle.js","components/UnpaidDashboard.js","components/providers/AppBridgeProvider.jsx","hooks/useAuthenticatedFetch.js","components/providers/QueryProvider.jsx","App.js","index.js"],"sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importDefault(require(\"react\"));\nvar context_1 = require(\"../../context\");\nvar router_1 = require(\"./router\");\n/**\n * ClientRouter component\n *\n * @remarks\n * React component which keeps the Shopify admin url in sync with the app url\n *\n * @public\n */\nvar ClientRouter = /** @class */ (function (_super) {\n __extends(ClientRouter, _super);\n function ClientRouter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClientRouter.prototype.componentDidMount = function () {\n var history = this.props.history;\n this.unsubscribe = router_1.handleRouteChange(this.context, history);\n };\n ClientRouter.prototype.componentWillUnmount = function () {\n if (this.unsubscribe) {\n this.unsubscribe();\n }\n };\n ClientRouter.prototype.render = function () {\n return null;\n };\n ClientRouter.contextType = context_1.AppBridgeContext;\n return ClientRouter;\n}(react_1.default.Component));\nexports.default = ClientRouter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar useAppBridge_1 = require(\"../../useAppBridge\");\nvar router_1 = require(\"./router\");\n/**\n * useRoutePropagation\n *\n * @remarks\n * A hook which keeps the Shopify admin url in sync with the app url\n *\n * @public\n */\nfunction useClientRouting(history) {\n var app = useAppBridge_1.useAppBridge();\n react_1.useEffect(function () {\n return router_1.handleRouteChange(app, history);\n }, [app, history]);\n}\nexports.default = useClientRouting;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useClientRouting = exports.ClientRouter = void 0;\nvar ClientRouter_1 = require(\"./ClientRouter\");\nObject.defineProperty(exports, \"ClientRouter\", { enumerable: true, get: function () { return __importDefault(ClientRouter_1).default; } });\nvar hook_1 = require(\"./hook\");\nObject.defineProperty(exports, \"useClientRouting\", { enumerable: true, get: function () { return __importDefault(hook_1).default; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.handleRouteChange = void 0;\nvar actions_1 = require(\"@shopify/app-bridge/actions\");\nfunction handleRouteChange(app, history) {\n return app.subscribe(actions_1.Redirect.Action.APP, function (_a) {\n var path = _a.path;\n history.replace(path);\n });\n}\nexports.handleRouteChange = handleRouteChange;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar hooks_1 = require(\"../../hooks\");\nfunction ContextualSaveBar(_a) {\n var _b = _a.discardAction, discardAction = _b === void 0 ? {} : _b, _c = _a.saveAction, saveAction = _c === void 0 ? {} : _c, fullWidth = _a.fullWidth, leaveConfirmationDisable = _a.leaveConfirmationDisable, visible = _a.visible;\n var _d = hooks_1.useContextualSaveBar(), show = _d.show, hide = _d.hide, saveActionSetOptions = _d.saveAction.setOptions, discardActionSetOptions = _d.discardAction.setOptions;\n react_1.useEffect(function () {\n saveActionSetOptions(saveAction);\n }, [saveAction]);\n react_1.useEffect(function () {\n discardActionSetOptions(discardAction);\n }, [discardAction]);\n react_1.useEffect(function () {\n if (visible) {\n show({ fullWidth: fullWidth, leaveConfirmationDisable: leaveConfirmationDisable });\n }\n else {\n hide();\n }\n }, [fullWidth, leaveConfirmationDisable, visible]);\n return null;\n}\nexports.default = ContextualSaveBar;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ContextualSaveBar_1 = __importDefault(require(\"./ContextualSaveBar\"));\nexports.default = ContextualSaveBar_1.default;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importDefault(require(\"react\"));\nvar actions_1 = require(\"@shopify/app-bridge/actions\");\nvar context_1 = require(\"../../context\");\n/**\n * Loading component\n *\n * @remarks\n * React component which wraps the Shopify App Bridge Loading action.\n *\n * @public\n */\nvar Loading = /** @class */ (function (_super) {\n __extends(Loading, _super);\n function Loading() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Loading.prototype.componentDidMount = function () {\n var app = this.context;\n this.loading = actions_1.Loading.create(app);\n if (this.loading != null) {\n this.loading.dispatch(actions_1.Loading.Action.START);\n }\n };\n Loading.prototype.componentWillUnmount = function () {\n if (this.loading != null) {\n this.loading.dispatch(actions_1.Loading.Action.STOP);\n }\n };\n Loading.prototype.render = function () {\n return null;\n };\n Loading.contextType = context_1.AppBridgeContext;\n return Loading;\n}(react_1.default.Component));\nexports.default = Loading;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Loading_1 = __importDefault(require(\"./Loading\"));\nexports.default = Loading_1.default;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar Modal_1 = require(\"@shopify/app-bridge/actions/Modal\");\nvar transformers_1 = require(\"../../utilities/transformers\");\nvar useAppBridge_1 = require(\"../../useAppBridge\");\n/**\n * Modal component\n *\n * @remarks\n * React component which wraps the Shopify App Bridge Modal action.\n *\n * @public\n */\nfunction Modal(props) {\n var app = useAppBridge_1.useAppBridge();\n var focusReturnPoint = react_1.useRef(null);\n // Initialize with open: false so the open action will dispatch on initial load\n var prevProps = react_1.useRef({ open: false });\n var open = props.open;\n var isUnmounted = react_1.useRef(false);\n var modal = react_1.useMemo(function () {\n /**\n * We purposely don't pass buttons here as they will be replaced\n * by the subsequent useEffect to call `set` to update the options.\n * If we pass them in here button subscriptions will be created without\n * being cleaned up.\n */\n var primaryAction = props.primaryAction, secondaryActions = props.secondaryActions, rest = __rest(props, [\"primaryAction\", \"secondaryActions\"]);\n return Modal_1.create(app, transformProps(app, rest));\n }, [app]);\n /**\n * All option updates are handled in this useEffect to avoid race conditions.\n * For example, we need to call `modal.unsubscribe` to clean up button subscriptions\n * but we calling it will also unsubscribe the onClose handler. Therefore we want\n * to ensure all callbacks are handled in a single useEffect with a single clean up\n * call to unsubscribe.\n */\n react_1.useEffect(function () {\n if (isUnmounted.current) {\n prevProps.current = props;\n return;\n }\n var wasOpen = prevProps.current.open;\n var openUpdated = wasOpen !== open;\n /** We only call `set` to update the options if the modal is open.\n * This is because while the modal is closed updates don't take effect on screen.\n */\n if (open) {\n var transformedProps = transformProps(app, props, wasOpen);\n /** We skip dispatching the update action if we're about to update the open state.\n * This is because the OPEN action will always sends the updated options\n * so we don't need to send it twice.\n */\n var shouldSendUpdate = !openUpdated;\n if (isIframeModal(transformedProps)) {\n modal.set(transformedProps, shouldSendUpdate);\n }\n else {\n modal.set(transformedProps, shouldSendUpdate);\n }\n }\n if (openUpdated) {\n if (open) {\n modal.dispatch(Modal_1.Action.OPEN);\n focusReturnPoint.current = document.activeElement;\n }\n else {\n modal.dispatch(Modal_1.Action.CLOSE);\n if (focusReturnPoint.current != null && document.contains(focusReturnPoint.current)) {\n focusReturnPoint.current.focus();\n focusReturnPoint.current = null;\n }\n }\n }\n if (props.onClose != null) {\n modal.subscribe(Modal_1.Action.CLOSE, props.onClose);\n }\n prevProps.current = props;\n return function () {\n // This is important to clean up previous buttons and onClose subscriptions\n modal.unsubscribe();\n };\n }, [props, open]);\n react_1.useEffect(function () {\n return function () {\n if (prevProps.current.open) {\n modal.dispatch(Modal_1.Action.CLOSE);\n }\n };\n }, [modal]);\n return null;\n}\nfunction isIframeModal(options) {\n return (typeof options.url === 'string' ||\n typeof options.path === 'string');\n}\nfunction transformProps(app, props, wasOpen) {\n var title = props.title, size = props.size, message = props.message, src = props.src, primaryAction = props.primaryAction, secondaryActions = props.secondaryActions, loading = props.loading;\n var safeSize = size == null ? undefined : Modal_1.Size[size];\n var srcPayload = {};\n if (src != null) {\n if (src.match('^https?://')) {\n srcPayload.url = src;\n }\n else {\n srcPayload.path = src;\n }\n }\n return __assign(__assign({ title: title, message: message, size: safeSize }, srcPayload), { footer: {\n buttons: transformers_1.transformActions(app, {\n primaryAction: primaryAction,\n secondaryActions: secondaryActions,\n }),\n }, loading: wasOpen ? undefined : loading });\n}\nexports.default = Modal;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importDefault(require(\"react\"));\nvar actions_1 = require(\"@shopify/app-bridge/actions\");\nvar context_1 = require(\"../../../context\");\n/**\n * Modal Content component\n *\n * @remarks\n * React component which wraps the Shopify App Bridge Modal Content action.\n *\n * @public\n */\nvar ModalContent = /** @class */ (function (_super) {\n __extends(ModalContent, _super);\n function ModalContent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ModalContent.prototype.componentDidMount = function () {\n var app = this.context;\n this.modalContent = actions_1.ModalContent.create(app);\n this.syncLoadingStatus();\n };\n ModalContent.prototype.componentDidUpdate = function () {\n this.syncLoadingStatus();\n };\n ModalContent.prototype.syncLoadingStatus = function () {\n if (!this.modalContent)\n return;\n if (this.props.loading) {\n this.modalContent.loading();\n }\n else {\n this.modalContent.loaded();\n }\n };\n ModalContent.prototype.render = function () {\n return null;\n };\n ModalContent.contextType = context_1.AppBridgeContext;\n return ModalContent;\n}(react_1.default.Component));\nexports.default = ModalContent;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ModalContent_1 = __importDefault(require(\"./ModalContent\"));\nexports.default = ModalContent_1.default;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ModalContent = void 0;\nvar Modal_1 = __importDefault(require(\"./Modal\"));\nvar ModalContent_1 = require(\"./ModalContent\");\nObject.defineProperty(exports, \"ModalContent\", { enumerable: true, get: function () { return __importDefault(ModalContent_1).default; } });\nexports.default = Modal_1.default;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar AppLink_1 = require(\"@shopify/app-bridge/actions/Link/AppLink\");\nvar NavigationMenu_1 = require(\"@shopify/app-bridge/actions/Menu/NavigationMenu\");\nvar useAppBridge_1 = require(\"../../useAppBridge\");\nfunction defaultMatcher(link, location) {\n return link.destination.replace(/\\/$/, '') === location.pathname.replace(/\\/$/, '');\n}\nfunction NavigationMenu(_a) {\n var navigationLinks = _a.navigationLinks, _b = _a.matcher, matcher = _b === void 0 ? defaultMatcher : _b;\n var app = useAppBridge_1.useAppBridge();\n var _c = react_1.useState(), items = _c[0], setItems = _c[1];\n react_1.useEffect(function () {\n var items = navigationLinks.map(function (link) { return AppLink_1.create(app, link); });\n setItems(items);\n }, [app, JSON.stringify(navigationLinks)]);\n var activeLink = react_1.useMemo(function () {\n var activeLinkIndex = (items || []).findIndex(function (link) {\n return matcher(link, location);\n });\n if (activeLinkIndex >= 0) {\n return items === null || items === void 0 ? void 0 : items[activeLinkIndex];\n }\n }, [app, location.pathname, matcher, items, location.pathname]);\n react_1.useEffect(function () {\n // Skip creating the navigation menu on initial render\n if (!items) {\n return;\n }\n /**\n * There isn't any advantage to keeping around a consistent instance of\n * the navigation menu as when we create a new one it results in\n * the same UPDATE action to be dispatched\n */\n NavigationMenu_1.create(app, { items: items, active: activeLink });\n }, [items, activeLink]);\n return null;\n}\nexports.default = NavigationMenu;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar NavigationMenu_1 = __importDefault(require(\"./NavigationMenu\"));\nexports.default = NavigationMenu_1.default;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setClientInterfaceHook = void 0;\nvar react_1 = __importStar(require(\"react\"));\nvar app_bridge_1 = __importStar(require(\"@shopify/app-bridge\"));\nvar context_1 = require(\"../../context\");\nvar ClientRouter_1 = require(\"../ClientRouter\");\nvar RoutePropagator_1 = require(\"../RoutePropagator\");\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nvar packageJson = require('../../package.json');\n/**\n * Create an App Bridge client application from a config and pass it as the\n * value to the context provider.\n *\n * @public\n */\nfunction Provider(_a) {\n var config = _a.config, router = _a.router, children = _a.children;\n /**\n * We are intentionally ignoring the `config` prop here as it yields a\n * bug on apps build with Next.js which loses the `host` query param\n * upon redirect.\n *\n * This was the behavior of the original `Provider` component prior to\n * the refactor in version 2.0.25.\n */\n var app = react_1.useMemo(function () { return app_bridge_1.default(config); }, []);\n react_1.useEffect(function () {\n if (app === null || app === void 0 ? void 0 : app.hooks) {\n app.hooks.set(app_bridge_1.LifecycleHook.DispatchAction, exports.setClientInterfaceHook);\n }\n }, [app]);\n var routerMarkup = (router === null || router === void 0 ? void 0 : router.history) && (router === null || router === void 0 ? void 0 : router.location) ? (react_1.default.createElement(Router, { history: router.history, location: router.location })) : null;\n return (react_1.default.createElement(context_1.AppBridgeContext.Provider, { value: app },\n routerMarkup,\n children));\n}\n/**\n * Augment actions with clientInterface metadata, identifying use of this library\n *\n * @internal\n */\nvar setClientInterfaceHook = function (next) {\n return function (action) {\n action.clientInterface = {\n name: '@shopify/app-bridge-react',\n version: packageJson.version,\n };\n return next(action);\n };\n};\nexports.setClientInterfaceHook = setClientInterfaceHook;\nfunction Router(_a) {\n var history = _a.history, location = _a.location;\n ClientRouter_1.useClientRouting(history);\n RoutePropagator_1.useRoutePropagation(location);\n return null;\n}\nexports.default = Provider;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Provider_1 = __importDefault(require(\"./Provider\"));\nexports.default = Provider_1.default;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceType = exports.ActionVerb = void 0;\nvar react_1 = require(\"react\");\nvar ResourcePicker_1 = require(\"@shopify/app-bridge/actions/ResourcePicker\");\nObject.defineProperty(exports, \"ActionVerb\", { enumerable: true, get: function () { return ResourcePicker_1.ActionVerb; } });\nObject.defineProperty(exports, \"ResourceType\", { enumerable: true, get: function () { return ResourcePicker_1.ResourceType; } });\nvar useAppBridge_1 = require(\"../../useAppBridge\");\n/**\n * ResourcePicker component\n *\n * @remarks\n * React component which wraps the Shopify App Bridge ResourcePicker action.\n *\n * @public\n */\nfunction ResourcePicker(_a) {\n var open = _a.open, resourceType = _a.resourceType, onSelection = _a.onSelection, onCancel = _a.onCancel, allowMultiple = _a.allowMultiple, selectMultiple = _a.selectMultiple, props = __rest(_a, [\"open\", \"resourceType\", \"onSelection\", \"onCancel\", \"allowMultiple\", \"selectMultiple\"]);\n var options = react_1.useMemo(function () { return (__assign(__assign({}, props), { selectMultiple: selectMultiple !== null && selectMultiple !== void 0 ? selectMultiple : allowMultiple })); }, [allowMultiple, props, selectMultiple]);\n var app = useAppBridge_1.useAppBridge();\n var isUnmountedRef = react_1.useRef(false);\n react_1.useEffect(function () { return function () {\n isUnmountedRef.current = true;\n }; }, []);\n var openRef = react_1.useRef(false);\n var optionsRef = react_1.useRef(options);\n var picker = react_1.useMemo(function () {\n return ResourcePicker_1.create(app, {\n resourceType: ResourcePicker_1.ResourceType[resourceType],\n options: optionsRef.current,\n });\n }, [app, resourceType]);\n react_1.useEffect(function () {\n openRef.current = false;\n return function () {\n if (openRef.current && isUnmountedRef.current) {\n picker.dispatch(ResourcePicker_1.Action.CANCEL);\n }\n };\n }, [picker]);\n var focusReturnPointRef = react_1.useRef(null);\n var storeFocusReturnPoint = react_1.useCallback(function () {\n if (document.activeElement instanceof HTMLElement) {\n focusReturnPointRef.current = document.activeElement;\n }\n }, []);\n var applyFocusReturnPoint = react_1.useCallback(function () {\n var focusReturnPoint = focusReturnPointRef.current;\n focusReturnPointRef.current = null;\n if (focusReturnPoint && document.contains(focusReturnPoint)) {\n focusReturnPoint.focus();\n }\n }, []);\n react_1.useEffect(function () {\n if (open === openRef.current)\n return;\n openRef.current = open;\n if (open) {\n picker.dispatch(ResourcePicker_1.Action.OPEN);\n storeFocusReturnPoint();\n }\n else {\n picker.dispatch(ResourcePicker_1.Action.CLOSE);\n applyFocusReturnPoint();\n }\n }, [picker, open, storeFocusReturnPoint, applyFocusReturnPoint]);\n react_1.useEffect(function () {\n if (!onSelection)\n return;\n return picker.subscribe(ResourcePicker_1.Action.SELECT, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n openRef.current = false;\n applyFocusReturnPoint();\n return onSelection.apply(void 0, args);\n });\n }, [picker, onSelection, applyFocusReturnPoint]);\n react_1.useEffect(function () {\n if (!onCancel)\n return;\n return picker.subscribe(ResourcePicker_1.Action.CANCEL, function () {\n openRef.current = false;\n applyFocusReturnPoint();\n return onCancel();\n });\n }, [picker, onCancel, applyFocusReturnPoint]);\n react_1.useEffect(function () {\n var shouldUpdate = JSON.stringify(options) !== JSON.stringify(optionsRef.current);\n if (!shouldUpdate)\n return;\n optionsRef.current = options;\n picker.set(options);\n }, [picker, options]);\n return null;\n}\nexports.default = ResourcePicker;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ResourcePicker_1 = __importDefault(require(\"./ResourcePicker\"));\nexports.default = ResourcePicker_1.default;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importDefault(require(\"react\"));\nvar context_1 = require(\"../../context\");\nvar route_propagator_1 = require(\"./route-propagator\");\n/**\n * RoutePropagator component\n *\n * @remarks\n * React component which keeps the Shopify admin url in sync with the app url\n *\n * @public\n */\nvar RoutePropagator = /** @class */ (function (_super) {\n __extends(RoutePropagator, _super);\n function RoutePropagator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RoutePropagator.prototype.componentDidMount = function () {\n var location = this.props.location;\n route_propagator_1.updateHistory(this.context, location);\n };\n RoutePropagator.prototype.componentDidUpdate = function (_a) {\n var prevLocation = _a.location;\n var location = this.props.location;\n if (location !== prevLocation) {\n route_propagator_1.updateHistory(this.context, location);\n }\n };\n RoutePropagator.prototype.render = function () {\n return null;\n };\n RoutePropagator.contextType = context_1.AppBridgeContext;\n return RoutePropagator;\n}(react_1.default.Component));\nexports.default = RoutePropagator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOrigin = exports.getTopWindow = exports.getSelfWindow = void 0;\nfunction getSelfWindow() {\n return window.self;\n}\nexports.getSelfWindow = getSelfWindow;\nfunction getTopWindow() {\n return window.top;\n}\nexports.getTopWindow = getTopWindow;\nfunction getOrigin() {\n return location.origin;\n}\nexports.getOrigin = getOrigin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar useAppBridge_1 = require(\"../../useAppBridge\");\nvar route_propagator_1 = require(\"./route-propagator\");\n/**\n * useRoutePropagation\n *\n * @remarks\n * A hook which keeps the Shopify admin url in sync with the app url\n *\n * @public\n */\nfunction useRoutePropagation(location) {\n var app = useAppBridge_1.useAppBridge();\n react_1.useEffect(function () {\n route_propagator_1.updateHistory(app, location);\n }, [app, location]);\n}\nexports.default = useRoutePropagation;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useRoutePropagation = exports.RoutePropagator = void 0;\nvar RoutePropagator_1 = require(\"./RoutePropagator\");\nObject.defineProperty(exports, \"RoutePropagator\", { enumerable: true, get: function () { return __importDefault(RoutePropagator_1).default; } });\nvar hook_1 = require(\"./hook\");\nObject.defineProperty(exports, \"useRoutePropagation\", { enumerable: true, get: function () { return __importDefault(hook_1).default; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.updateHistory = void 0;\nvar MessageTransport_1 = require(\"@shopify/app-bridge/MessageTransport\");\nvar actions_1 = require(\"@shopify/app-bridge/actions\");\nvar globals_1 = require(\"./globals\");\n// These parameters are added to the iframe url but we don't want to propagate\n// them up to the address bar as they are not provided by the application\n// Removing hmac is especially important as its presence may cause infinite\n// oauth authentication loops\nvar embeddedFrameParamsToRemove = [\n 'hmac',\n 'locale',\n 'protocol',\n 'session',\n 'shop',\n 'timestamp',\n 'host',\n];\nfunction updateHistory(app, location) {\n return __awaiter(this, void 0, void 0, function () {\n var selfWindow, topWindow, renderedInTheTopWindow, renderedAsMainApp, normalizedLocation, pathname, search, hash, locationStr;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n selfWindow = globals_1.getSelfWindow();\n topWindow = globals_1.getTopWindow();\n renderedInTheTopWindow = selfWindow === topWindow;\n return [4 /*yield*/, app.getState('context').then(function (context) {\n return context === MessageTransport_1.Context.Main;\n })];\n case 1:\n renderedAsMainApp = _a.sent();\n if (renderedInTheTopWindow || !renderedAsMainApp) {\n return [2 /*return*/];\n }\n normalizedLocation = getNormalizedURL(location);\n embeddedFrameParamsToRemove.forEach(function (param) { return normalizedLocation.searchParams.delete(param); });\n pathname = normalizedLocation.pathname, search = normalizedLocation.search, hash = normalizedLocation.hash;\n locationStr = \"\" + pathname + search + hash;\n actions_1.History.create(app).dispatch(actions_1.History.Action.REPLACE, locationStr);\n return [2 /*return*/];\n }\n });\n });\n}\nexports.updateHistory = updateHistory;\nfunction getNormalizedURL(location) {\n var origin = globals_1.getOrigin();\n if (typeof location === 'string') {\n return new URL(location, origin);\n }\n var pathname = location.pathname, search = location.search, hash = location.hash;\n return new URL(\"\" + pathname + search + hash, origin);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar Button_1 = require(\"@shopify/app-bridge/actions/Button\");\nvar TitleBar_1 = require(\"@shopify/app-bridge/actions/TitleBar\");\nvar ButtonGroup_1 = require(\"@shopify/app-bridge/actions/ButtonGroup\");\nvar transformers_1 = require(\"../../utilities/transformers\");\nvar useAppBridge_1 = require(\"../../useAppBridge\");\nfunction TitleBar(props) {\n var app = useAppBridge_1.useAppBridge();\n var currentProps = react_1.useRef();\n var titleBar = react_1.useMemo(function () {\n /**\n * We purposely don't pass buttons here as they will be replaced\n * by the subsequent useEffect to call `set` to update the options.\n * If we pass them in here button subscriptions will be created without\n * being cleaned up.\n */\n return TitleBar_1.create(app, {});\n }, [app]);\n /**\n * All option updates are handled in this useEffect so they can be cleaned up.\n */\n react_1.useEffect(function () {\n var _a;\n var propsChanged = JSON.stringify(currentProps.current) !== JSON.stringify(props);\n currentProps.current = props;\n if (propsChanged) {\n titleBar.set(transformProps(app, props));\n }\n else {\n /**\n * We manually update the button callbacks when no props have changed aside from the\n * callbacks to avoid sending an unnecessary UPDATE action to the host\n */\n var primaryAction = props.primaryAction, secondaryActions = props.secondaryActions, actionGroups = props.actionGroups, breadcrumbs = props.breadcrumbs;\n var breadcrumb = Array.isArray(breadcrumbs)\n ? breadcrumbs[breadcrumbs.length - 1]\n : breadcrumbs;\n updateButton(breadcrumb, titleBar.options.breadcrumbs);\n updateButton(primaryAction, (_a = titleBar.options.buttons) === null || _a === void 0 ? void 0 : _a.primary);\n updateSecondaryActions(titleBar, secondaryActions);\n updateActionGroups(titleBar, actionGroups);\n }\n return function () {\n titleBar.unsubscribe();\n };\n }, [titleBar, props]);\n return null;\n}\nexports.default = TitleBar;\nfunction updateSecondaryActions(titleBar, secondaryActions) {\n var _a, _b;\n var secondaryButtons = ((_b = (_a = titleBar.options.buttons) === null || _a === void 0 ? void 0 : _a.secondary) === null || _b === void 0 ? void 0 : _b.filter(function (button) { return !ButtonGroup_1.isGroupedButton(button); })) || [];\n secondaryButtons === null || secondaryButtons === void 0 ? void 0 : secondaryButtons.forEach(function (secondaryButton, index) {\n return updateButton(secondaryActions === null || secondaryActions === void 0 ? void 0 : secondaryActions[index], \n // This needs to be casted as the React TitleBar component doesn't accept button groups for secondary actions\n secondaryButton);\n });\n}\nfunction updateActionGroups(titleBar, actionGroups) {\n var _a, _b;\n var actionGroupButtons = ((_b = (_a = titleBar.options.buttons) === null || _a === void 0 ? void 0 : _a.secondary) === null || _b === void 0 ? void 0 : _b.filter(ButtonGroup_1.isGroupedButton)) ||\n [];\n actionGroupButtons === null || actionGroupButtons === void 0 ? void 0 : actionGroupButtons.forEach(function (actionBroupButton, index) {\n var actionGroup = actionGroups === null || actionGroups === void 0 ? void 0 : actionGroups[index];\n if (!actionGroup) {\n return;\n }\n actionBroupButton.options.buttons.forEach(function (nestedButton, nestedIndex) {\n return updateButton(actionGroup.actions[nestedIndex], nestedButton);\n });\n });\n}\nfunction transformProps(app, _a) {\n var actionGroups = _a.actionGroups, breadcrumbs = _a.breadcrumbs, primaryAction = _a.primaryAction, secondaryActions = _a.secondaryActions, title = _a.title;\n var breadcrumb = Array.isArray(breadcrumbs) ? breadcrumbs[breadcrumbs.length - 1] : breadcrumbs;\n return {\n title: title,\n buttons: transformers_1.transformActions(app, {\n primaryAction: primaryAction,\n secondaryActions: secondaryActions,\n actionGroups: actionGroups,\n }),\n breadcrumbs: breadcrumb ? transformBreadcrumb(app, breadcrumb) : undefined,\n };\n}\nfunction transformBreadcrumb(app, breadcrumb, updateBreadcrumb) {\n var button = updateBreadcrumb ||\n Button_1.create(app, {\n label: breadcrumb.content || '',\n });\n updateButton(breadcrumb, button);\n return button;\n}\nfunction updateButton(actionProps, button) {\n if (!actionProps || !button) {\n return;\n }\n var redirect = transformers_1.generateRedirect(button.app, actionProps.url, actionProps.target, actionProps.external);\n if (redirect) {\n button.subscribe(Button_1.Action.CLICK, redirect, button);\n }\n if (actionProps === null || actionProps === void 0 ? void 0 : actionProps.onAction) {\n button.subscribe(Button_1.Action.CLICK, actionProps.onAction, button);\n }\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TitleBar_1 = __importDefault(require(\"./TitleBar\"));\nexports.default = TitleBar_1.default;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_TOAST_DURATION = void 0;\nvar react_1 = __importDefault(require(\"react\"));\nvar actions_1 = require(\"@shopify/app-bridge/actions\");\nvar context_1 = require(\"../../context\");\nexports.DEFAULT_TOAST_DURATION = 5000;\n/**\n * Toast component\n *\n * @remarks\n * React component which wraps the Shopify App Bridge Toast action.\n *\n * @public\n */\nvar Toast = /** @class */ (function (_super) {\n __extends(Toast, _super);\n function Toast() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Toast.prototype.componentDidMount = function () {\n var app = this.context;\n var _a = this.props, error = _a.error, content = _a.content, _b = _a.duration, duration = _b === void 0 ? exports.DEFAULT_TOAST_DURATION : _b, onDismiss = _a.onDismiss, action = _a.action;\n this.toast = actions_1.Toast.create(app, {\n message: content,\n duration: duration,\n isError: error,\n action: (action === null || action === void 0 ? void 0 : action.content)\n ? {\n content: action === null || action === void 0 ? void 0 : action.content,\n }\n : undefined,\n });\n if (action === null || action === void 0 ? void 0 : action.onAction) {\n this.toast.subscribe(actions_1.Toast.Action.ACTION, action === null || action === void 0 ? void 0 : action.onAction);\n }\n this.toast.subscribe(actions_1.Toast.Action.CLEAR, onDismiss);\n this.toast.dispatch(actions_1.Toast.Action.SHOW);\n };\n Toast.prototype.componentWillUnmount = function () {\n this.toast.unsubscribe();\n };\n Toast.prototype.render = function () {\n return null;\n };\n Toast.contextType = context_1.AppBridgeContext;\n return Toast;\n}(react_1.default.PureComponent));\nexports.default = Toast;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Toast_1 = __importDefault(require(\"./Toast\"));\nexports.default = Toast_1.default;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unstable_Picker = exports.Toast = exports.TitleBar = exports.ResourcePicker = exports.Provider = exports.NavigationMenu = exports.ModalContent = exports.Modal = exports.Loading = exports.ContextualSaveBar = void 0;\nvar ContextualSaveBar_1 = require(\"./ContextualSaveBar\");\nObject.defineProperty(exports, \"ContextualSaveBar\", { enumerable: true, get: function () { return __importDefault(ContextualSaveBar_1).default; } });\nvar Loading_1 = require(\"./Loading\");\nObject.defineProperty(exports, \"Loading\", { enumerable: true, get: function () { return __importDefault(Loading_1).default; } });\nvar Modal_1 = require(\"./Modal\");\nObject.defineProperty(exports, \"Modal\", { enumerable: true, get: function () { return __importDefault(Modal_1).default; } });\nObject.defineProperty(exports, \"ModalContent\", { enumerable: true, get: function () { return Modal_1.ModalContent; } });\nvar NavigationMenu_1 = require(\"./NavigationMenu\");\nObject.defineProperty(exports, \"NavigationMenu\", { enumerable: true, get: function () { return __importDefault(NavigationMenu_1).default; } });\nvar Provider_1 = require(\"./Provider\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return __importDefault(Provider_1).default; } });\nvar ResourcePicker_1 = require(\"./ResourcePicker\");\nObject.defineProperty(exports, \"ResourcePicker\", { enumerable: true, get: function () { return __importDefault(ResourcePicker_1).default; } });\nvar TitleBar_1 = require(\"./TitleBar\");\nObject.defineProperty(exports, \"TitleBar\", { enumerable: true, get: function () { return __importDefault(TitleBar_1).default; } });\nvar Toast_1 = require(\"./Toast\");\nObject.defineProperty(exports, \"Toast\", { enumerable: true, get: function () { return __importDefault(Toast_1).default; } });\nvar unstable_Picker_1 = require(\"./unstable_Picker\");\nObject.defineProperty(exports, \"unstable_Picker\", { enumerable: true, get: function () { return __importDefault(unstable_Picker_1).default; } });\n__exportStar(require(\"./RoutePropagator\"), exports);\n__exportStar(require(\"./ClientRouter\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar unstable_Picker_1 = __importDefault(require(\"./unstable_Picker\"));\nexports.default = unstable_Picker_1.default;\n","\"use strict\";\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar Picker_1 = require(\"@shopify/app-bridge/actions/Picker\");\nvar useAppBridge_1 = require(\"../../useAppBridge\");\nfunction Picker(_a) {\n var open = _a.open, onCancel = _a.onCancel, onSelect = _a.onSelect, onSearch = _a.onSearch, onLoadMore = _a.onLoadMore, options = __rest(_a, [\"open\", \"onCancel\", \"onSelect\", \"onSearch\", \"onLoadMore\"]);\n var app = useAppBridge_1.useAppBridge();\n var isUnmountedRef = react_1.useRef(false);\n react_1.useEffect(function () { return function () {\n isUnmountedRef.current = true;\n }; }, []);\n var openRef = react_1.useRef(false);\n var optionsRef = react_1.useRef(options);\n var picker = react_1.useMemo(function () { return Picker_1.create(app, optionsRef.current); }, [app]);\n react_1.useEffect(function () {\n openRef.current = false;\n return function () {\n if (openRef.current && isUnmountedRef.current) {\n picker.dispatch(Picker_1.Action.CANCEL);\n }\n };\n }, [picker]);\n react_1.useEffect(function () {\n if (open === openRef.current)\n return;\n openRef.current = open;\n if (open) {\n picker.dispatch(Picker_1.Action.OPEN);\n }\n else {\n picker.dispatch(Picker_1.Action.CANCEL);\n }\n }, [picker, open]);\n react_1.useEffect(function () {\n if (!onSelect)\n return;\n return picker.subscribe(Picker_1.Action.SELECT, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n openRef.current = false;\n return onSelect.apply(void 0, args);\n });\n }, [picker, onSelect]);\n react_1.useEffect(function () {\n if (!onCancel)\n return;\n return picker.subscribe(Picker_1.Action.CANCEL, function () {\n openRef.current = false;\n return onCancel();\n });\n }, [picker, onCancel]);\n react_1.useEffect(function () {\n if (!onSearch)\n return;\n return picker.subscribe(Picker_1.Action.SEARCH, onSearch);\n }, [picker, onSearch]);\n react_1.useEffect(function () {\n if (!onLoadMore)\n return;\n return picker.subscribe(Picker_1.Action.LOAD_MORE, onLoadMore);\n }, [picker, onLoadMore]);\n react_1.useEffect(function () {\n var shouldUpdate = JSON.stringify(options) !== JSON.stringify(optionsRef.current);\n if (!shouldUpdate)\n return;\n optionsRef.current = options;\n picker.set(options, openRef.current);\n }, [picker, options]);\n return null;\n}\nexports.default = Picker;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AppBridgeContext = void 0;\nvar react_1 = require(\"react\");\n/**\n * App Bridge context.\n *\n * @public\n */\nexports.AppBridgeContext = react_1.createContext(null);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useToast = exports.useNavigationHistory = exports.useNavigate = exports.useLocale = exports.useFeatureRequest = exports.useFeaturesAvailable = exports.useContextualSaveBar = exports.useAppBridgeState = void 0;\nvar useAppBridgeState_1 = require(\"./useAppBridgeState\");\nObject.defineProperty(exports, \"useAppBridgeState\", { enumerable: true, get: function () { return useAppBridgeState_1.useAppBridgeState; } });\nvar useContextualSaveBar_1 = require(\"./useContextualSaveBar\");\nObject.defineProperty(exports, \"useContextualSaveBar\", { enumerable: true, get: function () { return useContextualSaveBar_1.useContextualSaveBar; } });\nvar useFeaturesAvailable_1 = require(\"./useFeaturesAvailable\");\nObject.defineProperty(exports, \"useFeaturesAvailable\", { enumerable: true, get: function () { return useFeaturesAvailable_1.useFeaturesAvailable; } });\nvar useFeatureRequest_1 = require(\"./useFeatureRequest\");\nObject.defineProperty(exports, \"useFeatureRequest\", { enumerable: true, get: function () { return useFeatureRequest_1.useFeatureRequest; } });\nvar useLocale_1 = require(\"./useLocale\");\nObject.defineProperty(exports, \"useLocale\", { enumerable: true, get: function () { return useLocale_1.useLocale; } });\nvar useNavigate_1 = require(\"./useNavigate\");\nObject.defineProperty(exports, \"useNavigate\", { enumerable: true, get: function () { return useNavigate_1.useNavigate; } });\nvar useNavigationHistory_1 = require(\"./useNavigationHistory\");\nObject.defineProperty(exports, \"useNavigationHistory\", { enumerable: true, get: function () { return useNavigationHistory_1.useNavigationHistory; } });\nvar useToast_1 = require(\"./useToast\");\nObject.defineProperty(exports, \"useToast\", { enumerable: true, get: function () { return useToast_1.useToast; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./useAppBridgeState\"), exports);\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useAppBridgeState = void 0;\nvar react_1 = require(\"react\");\nvar useAppBridge_1 = require(\"../../useAppBridge\");\nvar useAppBridgeState = function (query) {\n var app = useAppBridge_1.useAppBridge();\n var _a = react_1.useState(), state = _a[0], setState = _a[1];\n var isUnmounted = react_1.useRef(false);\n var refresh = react_1.useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {\n var newState, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!query) return [3 /*break*/, 2];\n return [4 /*yield*/, app.getState(query)];\n case 1:\n _a = _b.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, app.getState()];\n case 3:\n _a = _b.sent();\n _b.label = 4;\n case 4:\n newState = _a;\n if (isUnmounted.current) {\n return [2 /*return*/];\n }\n setState(function (currentState) {\n if (JSON.stringify(newState) === JSON.stringify(currentState)) {\n return currentState;\n }\n return newState;\n });\n return [2 /*return*/];\n }\n });\n }); }, [app, query]);\n react_1.useEffect(function () {\n refresh();\n // Automatically check to see if the state has changed every time an action has been dispatched\n return app.subscribe(function () {\n refresh();\n });\n }, [app, refresh]);\n react_1.useEffect(function () {\n return function () {\n isUnmounted.current = true;\n };\n }, [app]);\n return state;\n};\nexports.useAppBridgeState = useAppBridgeState;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useContextualSaveBar = void 0;\nvar useContextualSaveBar_1 = require(\"./useContextualSaveBar\");\nObject.defineProperty(exports, \"useContextualSaveBar\", { enumerable: true, get: function () { return useContextualSaveBar_1.useContextualSaveBar; } });\n","\"use strict\";\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useContextualSaveBar = void 0;\nvar react_1 = require(\"react\");\nvar ContextualSaveBar_1 = require(\"@shopify/app-bridge/actions/ContextualSaveBar\");\nvar useAppBridge_1 = require(\"../../useAppBridge\");\n/**\n * useContextualSaveBar hook\n *\n * @remarks\n * React hook which wraps the Shopify App Bridge ContextualSaveBar action.\n *\n * @public\n */\nfunction useContextualSaveBar() {\n var app = useAppBridge_1.useAppBridge();\n var visibleRef = react_1.useRef(false);\n var _a = react_1.useState(), onSaveAction = _a[0], setOnSaveAction = _a[1];\n var _b = react_1.useState(), onDiscardAction = _b[0], setOnDiscardAction = _b[1];\n var contextualSaveBar = react_1.useMemo(function () {\n return ContextualSaveBar_1.create(app);\n }, [app]);\n var show = react_1.useCallback(function (options) {\n // Update options first\n if (options) {\n contextualSaveBar.set(options, false);\n }\n // Updated options will be sent with the \"SHOW\" action\n contextualSaveBar.dispatch(ContextualSaveBar_1.Action.SHOW);\n visibleRef.current = true;\n }, [contextualSaveBar]);\n var hide = react_1.useCallback(function () {\n contextualSaveBar.dispatch(ContextualSaveBar_1.Action.HIDE);\n visibleRef.current = false;\n }, [contextualSaveBar]);\n var saveAction = react_1.useMemo(function () { return ({\n setOptions: function (_a) {\n var onAction = _a.onAction, saveAction = __rest(_a, [\"onAction\"]);\n var shouldUpdate = JSON.stringify(contextualSaveBar.options.saveAction) !== JSON.stringify(saveAction) &&\n visibleRef.current;\n setOnSaveAction(function () { return onAction; });\n contextualSaveBar.set({ saveAction: saveAction }, shouldUpdate);\n },\n }); }, [contextualSaveBar]);\n var discardAction = react_1.useMemo(function () { return ({\n setOptions: function (_a) {\n var onAction = _a.onAction, discardAction = __rest(_a, [\"onAction\"]);\n var shouldUpdate = JSON.stringify(contextualSaveBar.options.discardAction) !==\n JSON.stringify(discardAction) && visibleRef.current;\n setOnDiscardAction(function () { return onAction; });\n contextualSaveBar.set({ discardAction: discardAction }, shouldUpdate);\n },\n }); }, [contextualSaveBar]);\n // Hide contextual save bar on unmount\n react_1.useEffect(function () {\n return function () {\n if (visibleRef.current) {\n hide();\n }\n };\n }, []);\n react_1.useEffect(function () {\n return contextualSaveBar.subscribe(ContextualSaveBar_1.Action.DISCARD, function () {\n contextualSaveBar.dispatch(ContextualSaveBar_1.Action.HIDE);\n onDiscardAction === null || onDiscardAction === void 0 ? void 0 : onDiscardAction();\n });\n }, [contextualSaveBar, onDiscardAction]);\n react_1.useEffect(function () {\n return contextualSaveBar.subscribe(ContextualSaveBar_1.Action.SAVE, function () {\n contextualSaveBar.dispatch(ContextualSaveBar_1.Action.HIDE);\n onSaveAction === null || onSaveAction === void 0 ? void 0 : onSaveAction();\n });\n }, [contextualSaveBar, onSaveAction]);\n return { show: show, hide: hide, saveAction: saveAction, discardAction: discardAction };\n}\nexports.useContextualSaveBar = useContextualSaveBar;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./useFeatureRequest\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFeatureRequest = void 0;\nvar react_1 = require(\"react\");\nvar Features_1 = require(\"@shopify/app-bridge/actions/Features\");\nvar useAppBridge_1 = require(\"../../useAppBridge\");\nvar useFeaturesAvailable_1 = require(\"../useFeaturesAvailable\");\n/**\n * useFeatureRequest hook\n *\n * @public\n * @remarks\n * React hook performs a feature request and then returns\n * the requested feature when permissions has been updated\n * @param {Group} group - The requested group enum\n * @param {string} action - The requested action. This param is optional\n */\nfunction useFeatureRequest(group, action) {\n var app = useAppBridge_1.useAppBridge();\n var featuresAvailable = useFeaturesAvailable_1.useFeaturesAvailable();\n var _a = react_1.useState(), feature = _a[0], setFeature = _a[1];\n var handleFeatureUpdate = react_1.useCallback(function (featuresAvailable) {\n var updatedFeatures = featuresAvailable === null || featuresAvailable === void 0 ? void 0 : featuresAvailable[group];\n if (action && (updatedFeatures === null || updatedFeatures === void 0 ? void 0 : updatedFeatures[action])) {\n var actionPermission_1 = updatedFeatures === null || updatedFeatures === void 0 ? void 0 : updatedFeatures[action];\n setFeature(function (currentState) {\n if (JSON.stringify(actionPermission_1) !== JSON.stringify(currentState)) {\n return actionPermission_1;\n }\n return currentState;\n });\n return;\n }\n setFeature(function (currentState) {\n if (JSON.stringify(updatedFeatures) !== JSON.stringify(currentState)) {\n return updatedFeatures;\n }\n return currentState;\n });\n }, [group, action]);\n react_1.useEffect(function () {\n Features_1.create(app).dispatch(Features_1.Action.REQUEST, { feature: group, action: action });\n }, [app, group, action]);\n react_1.useEffect(function () {\n handleFeatureUpdate(featuresAvailable);\n }, [featuresAvailable, handleFeatureUpdate]);\n return feature;\n}\nexports.useFeatureRequest = useFeatureRequest;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFeaturesAvailable = void 0;\nvar useFeaturesAvailable_1 = require(\"./useFeaturesAvailable\");\nObject.defineProperty(exports, \"useFeaturesAvailable\", { enumerable: true, get: function () { return useFeaturesAvailable_1.useFeaturesAvailable; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useFeaturesAvailable = void 0;\nvar react_1 = require(\"react\");\nvar types_1 = require(\"@shopify/app-bridge/actions/Features/types\");\nvar useAppBridge_1 = require(\"../../useAppBridge\");\n/**\n * useFeaturesAvailable hook\n *\n * @remarks\n * React hook that wraps the Shopify App Bridge getFeaturesAvailable method.\n *\n * @public\n */\nfunction useFeaturesAvailable() {\n var _this = this;\n var query = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n query[_i] = arguments[_i];\n }\n var app = useAppBridge_1.useAppBridge();\n var _a = react_1.useState(), state = _a[0], setState = _a[1];\n var queryRef = react_1.useRef([]);\n var refresh = react_1.useCallback(function () {\n var isUnmounted = false;\n (function () { return __awaiter(_this, void 0, void 0, function () {\n var features;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, app.featuresAvailable.apply(app, queryRef.current)];\n case 1:\n features = _a.sent();\n if (!isUnmounted) {\n setState(function (currentFeatures) {\n if (JSON.stringify(currentFeatures) === JSON.stringify(features)) {\n return currentFeatures;\n }\n return features;\n });\n }\n return [2 /*return*/];\n }\n });\n }); })();\n return function () {\n isUnmounted = true;\n };\n }, [app]);\n react_1.useEffect(function () {\n queryRef.current = query;\n return refresh();\n }, [JSON.stringify(query)]);\n react_1.useEffect(function () {\n var onRefreshCleanup;\n var unsubscribe = app.subscribe(types_1.Action.UPDATE, function () {\n onRefreshCleanup = refresh();\n });\n return function () {\n unsubscribe();\n onRefreshCleanup === null || onRefreshCleanup === void 0 ? void 0 : onRefreshCleanup();\n };\n }, [app, refresh]);\n return state;\n}\nexports.useFeaturesAvailable = useFeaturesAvailable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useLocale = void 0;\nvar useLocale_1 = require(\"./useLocale\");\nObject.defineProperty(exports, \"useLocale\", { enumerable: true, get: function () { return useLocale_1.useLocale; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useLocale = void 0;\nvar useAppBridgeState_1 = require(\"../useAppBridgeState\");\nfunction useLocale() {\n return useAppBridgeState_1.useAppBridgeState('staffMember.locale');\n}\nexports.useLocale = useLocale;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useNavigate = void 0;\nvar useNavigate_1 = require(\"./useNavigate\");\nObject.defineProperty(exports, \"useNavigate\", { enumerable: true, get: function () { return useNavigate_1.useNavigate; } });\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useNavigate = void 0;\nvar react_1 = require(\"react\");\nvar Redirect_1 = require(\"@shopify/app-bridge/actions/Navigation/Redirect\");\nvar useAppBridge_1 = require(\"../../useAppBridge\");\nvar useNavigationHistory_1 = require(\"../useNavigationHistory\");\nfunction useNavigate() {\n var app = useAppBridge_1.useAppBridge();\n var history = useNavigationHistory_1.useNavigationHistory();\n var redirect = react_1.useMemo(function () {\n return Redirect_1.create(app);\n }, [app]);\n var handleRedirect = react_1.useCallback(function (to, options) {\n var url = Redirect_1.normalizeUrl(to);\n var isAppUrl = url.startsWith(app.localOrigin);\n var isHostUrl = url.startsWith(app.hostOrigin);\n var isRelative = url.startsWith('/');\n if (isAppUrl || isHostUrl || isRelative) {\n var path = Redirect_1.getRelativePath(url);\n if (isHostUrl || (options === null || options === void 0 ? void 0 : options.target) === 'new' || (options === null || options === void 0 ? void 0 : options.target) === 'host') {\n redirect.dispatch(Redirect_1.Action.ADMIN_PATH, {\n path: path.replace(/^\\/admin/, ''),\n newContext: (options === null || options === void 0 ? void 0 : options.target) === 'new',\n });\n return;\n }\n if (((options === null || options === void 0 ? void 0 : options.target) === 'self' || !(options === null || options === void 0 ? void 0 : options.target)) && (options === null || options === void 0 ? void 0 : options.replace)) {\n history.replace({ pathname: path });\n return;\n }\n redirect.dispatch(Redirect_1.Action.APP, path);\n return;\n }\n redirect.dispatch(Redirect_1.Action.REMOTE, {\n url: url,\n newContext: (options === null || options === void 0 ? void 0 : options.target) === 'new',\n });\n }, [redirect, history]);\n return react_1.useCallback(function (to, options) {\n if (Redirect_1.isAdminSection(to)) {\n var convertedSection = __assign(__assign({}, to), { name: Redirect_1.ResourceType[to.name] });\n redirect.dispatch(Redirect_1.Action.ADMIN_SECTION, {\n section: convertedSection,\n newContext: (options === null || options === void 0 ? void 0 : options.target) === 'new',\n });\n return;\n }\n handleRedirect(to, options);\n }, [handleRedirect, redirect]);\n}\nexports.useNavigate = useNavigate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useNavigationHistory = void 0;\nvar useNavigationHistory_1 = require(\"./useNavigationHistory\");\nObject.defineProperty(exports, \"useNavigationHistory\", { enumerable: true, get: function () { return useNavigationHistory_1.useNavigationHistory; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useNavigationHistory = void 0;\nvar react_1 = require(\"react\");\nvar actions_1 = require(\"@shopify/app-bridge/actions\");\nvar useAppBridge_1 = require(\"../../useAppBridge\");\n/**\n * useNavigationHistory hook\n *\n * @remarks\n * React hook which wraps the Shopify App Bridge History action.\n *\n * @public\n */\nfunction useNavigationHistory() {\n var app = useAppBridge_1.useAppBridge();\n return react_1.useMemo(function () {\n var history = actions_1.History.create(app);\n function push(location) {\n history.dispatch(actions_1.History.Action.PUSH, location.pathname);\n }\n function replace(location) {\n history.dispatch(actions_1.History.Action.REPLACE, location.pathname);\n }\n return { push: push, replace: replace };\n }, []);\n}\nexports.useNavigationHistory = useNavigationHistory;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useToast = void 0;\nvar useToast_1 = require(\"./useToast\");\nObject.defineProperty(exports, \"useToast\", { enumerable: true, get: function () { return useToast_1.useToast; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useToast = exports.DEFAULT_TOAST_DURATION = void 0;\nvar react_1 = require(\"react\");\nvar Toast_1 = require(\"@shopify/app-bridge/actions/Toast\");\nvar useAppBridge_1 = require(\"../../useAppBridge\");\nexports.DEFAULT_TOAST_DURATION = 5000;\n/**\n * useToast hook\n *\n * @remarks\n * React hook which wraps the Shopify App Bridge Toast action.\n *\n * @public\n */\nfunction useToast() {\n var app = useAppBridge_1.useAppBridge();\n var toastList = react_1.useRef([]);\n var show = react_1.useCallback(function (content, options) {\n var toast = Toast_1.create(app, {\n message: content,\n isError: options === null || options === void 0 ? void 0 : options.isError,\n duration: (options === null || options === void 0 ? void 0 : options.duration) || exports.DEFAULT_TOAST_DURATION,\n action: options === null || options === void 0 ? void 0 : options.action,\n });\n toast.dispatch(Toast_1.Action.SHOW);\n toastList.current.push(toast);\n toast.subscribe(Toast_1.Action.CLEAR, function () {\n var _a;\n (_a = options === null || options === void 0 ? void 0 : options.onDismiss) === null || _a === void 0 ? void 0 : _a.call(options);\n toastList.current.splice(toastList.current.indexOf(toast), 1);\n toast.unsubscribe();\n });\n toast.subscribe(Toast_1.Action.ACTION, function () {\n var _a, _b;\n (_b = (_a = options === null || options === void 0 ? void 0 : options.action) === null || _a === void 0 ? void 0 : _a.onAction) === null || _b === void 0 ? void 0 : _b.call(_a);\n });\n }, [app]);\n react_1.useEffect(function () {\n return function () {\n toastList.current.forEach(function (toast) { return toast === null || toast === void 0 ? void 0 : toast.unsubscribe(); });\n };\n }, []);\n return { show: show };\n}\nexports.useToast = useToast;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useAppBridge = exports.Context = void 0;\nvar context_1 = require(\"./context\");\nObject.defineProperty(exports, \"Context\", { enumerable: true, get: function () { return context_1.AppBridgeContext; } });\nvar useAppBridge_1 = require(\"./useAppBridge\");\nObject.defineProperty(exports, \"useAppBridge\", { enumerable: true, get: function () { return useAppBridge_1.useAppBridge; } });\n__exportStar(require(\"./components\"), exports);\n__exportStar(require(\"./hooks\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useAppBridge = void 0;\nvar react_1 = require(\"react\");\nvar context_1 = require(\"./context\");\nfunction useAppBridge() {\n var appBridge = react_1.useContext(context_1.AppBridgeContext);\n if (!appBridge) {\n throw new Error('No AppBridge context provided. Your component must be wrapped in the <Provider> component from App Bridge React.');\n }\n return appBridge;\n}\nexports.useAppBridge = useAppBridge;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformActions = exports.generateRedirect = void 0;\nvar Button = __importStar(require(\"@shopify/app-bridge/actions/Button\"));\nvar ButtonGroup = __importStar(require(\"@shopify/app-bridge/actions/ButtonGroup\"));\nvar Redirect = __importStar(require(\"@shopify/app-bridge/actions/Navigation/Redirect\"));\nfunction generateRedirect(appBridge, url, target, external) {\n if (target === void 0) { target = 'APP'; }\n if (url == null) {\n return undefined;\n }\n var redirect = Redirect.create(appBridge);\n var payload = external === true\n ? {\n url: url,\n newContext: true,\n }\n : url;\n return function () {\n redirect.dispatch(redirectAction(target, external), payload);\n };\n}\nexports.generateRedirect = generateRedirect;\nfunction redirectAction(target, external) {\n if (external === true) {\n return Redirect.Action.REMOTE;\n }\n return Redirect.Action[target];\n}\nfunction transformActions(appBridge, _a) {\n var primaryAction = _a.primaryAction, secondaryActions = _a.secondaryActions, actionGroups = _a.actionGroups;\n var primary = transformPrimaryAction(appBridge, primaryAction);\n var secondary = __spreadArray(__spreadArray([], transformSecondaryActions(appBridge, secondaryActions)), transformActionGroups(appBridge, actionGroups));\n return {\n primary: primary,\n secondary: secondary,\n };\n}\nexports.transformActions = transformActions;\nfunction transformAction(appBridge, action) {\n var style = action.destructive === true ? Button.Style.Danger : undefined;\n var button = Button.create(appBridge, {\n label: action.content || '',\n disabled: action.disabled,\n loading: action.loading,\n plain: action.plain,\n style: style,\n });\n if (action.onAction) {\n button.subscribe(Button.Action.CLICK, action.onAction);\n }\n var redirect = generateRedirect(appBridge, action.url, action.target, action.external);\n if (redirect != null) {\n button.subscribe(Button.Action.CLICK, redirect);\n }\n return button;\n}\nfunction transformPrimaryAction(appBridge, primaryAction) {\n if (primaryAction == null) {\n return undefined;\n }\n var primary = transformAction(appBridge, primaryAction);\n return primary;\n}\nfunction transformSecondaryActions(appBridge, secondaryActions) {\n if (secondaryActions === void 0) { secondaryActions = []; }\n var secondary = __spreadArray([], secondaryActions.map(function (secondaryAction) {\n return transformAction(appBridge, secondaryAction);\n }));\n return secondary;\n}\nfunction transformActionGroups(appBridge, actionGroups) {\n if (actionGroups === void 0) { actionGroups = []; }\n var buttonGroups = __spreadArray([], actionGroups.map(function (group) {\n var buttons = group.actions.map(function (groupAction) {\n return transformAction(appBridge, groupAction);\n });\n return ButtonGroup.create(appBridge, { label: group.title, plain: group.plain, buttons: buttons });\n }));\n return buttonGroups;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./utilities\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAuthorizationCodePayload = void 0;\nvar AuthCode = __importStar(require(\"@shopify/app-bridge/actions/AuthCode\"));\nvar Error_1 = require(\"@shopify/app-bridge/actions/Error\");\nvar uuid_1 = __importDefault(require(\"@shopify/app-bridge/actions/uuid\"));\nfunction getAuthorizationCodePayload(app) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n var requestId = uuid_1.default();\n var unsubscribe = app.subscribe(AuthCode.Action.RESPOND, function (payload) {\n switch (payload === null || payload === void 0 ? void 0 : payload.status) {\n case 'needsExchange':\n resolve(payload);\n break;\n default:\n reject(Error_1.fromAction('Failed to retrieve an authorization code', Error_1.Action.FAILED_AUTHENTICATION));\n }\n unsubscribe();\n }, requestId);\n app.dispatch(AuthCode.request(requestId));\n })];\n });\n });\n}\nexports.getAuthorizationCodePayload = getAuthorizationCodePayload;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./authorization-code\"), exports);\n__exportStar(require(\"./user-authorized-fetch\"), exports);\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.userAuthorizedFetch = void 0;\nvar authorization_code_1 = require(\"./authorization-code\");\nvar DEFAULT_CALLBACK_URI = 'auth/shopify/callback';\nfunction needsAuthorizationCode(response) {\n var headerValue = response.headers.get('X-Shopify-API-Request-Failure-Unauthorized');\n if (headerValue) {\n return headerValue.toLowerCase() === 'true';\n }\n return false;\n}\nfunction userAuthorizedFetch(_a) {\n var _this = this;\n var app = _a.app, _b = _a.callbackUri, callbackUri = _b === void 0 ? DEFAULT_CALLBACK_URI : _b, _c = _a.isAuthorizationCodeRequired, isAuthorizationCodeRequired = _c === void 0 ? needsAuthorizationCode : _c, fetchOperation = _a.fetchOperation;\n return function (uri, options) { return __awaiter(_this, void 0, void 0, function () {\n var response, _a, code, hmac, shop, timestamp, formattedCallbackUri, callbackResponse;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, fetchOperation(uri, options)];\n case 1:\n response = _b.sent();\n if (!isAuthorizationCodeRequired(response)) {\n return [2 /*return*/, response];\n }\n return [4 /*yield*/, authorization_code_1.getAuthorizationCodePayload(app)];\n case 2:\n _a = _b.sent(), code = _a.code, hmac = _a.hmac, shop = _a.shop, timestamp = _a.timestamp;\n formattedCallbackUri = encodeURI(\"https://\" + window.location.hostname + \"/\" + callbackUri + \"?code=\" + code + \"&hmac=\" + hmac + \"&shop=\" + shop + \"×tamp=\" + timestamp);\n return [4 /*yield*/, fetchOperation(formattedCallbackUri, {})];\n case 3:\n callbackResponse = _b.sent();\n if (!callbackResponse.ok) {\n throw new Error('Failed to authorize request.');\n }\n return [2 /*return*/, fetchOperation(uri, options)];\n }\n });\n }); };\n}\nexports.userAuthorizedFetch = userAuthorizedFetch;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./modal\"), exports);\n__exportStar(require(\"./platform\"), exports);\n__exportStar(require(\"./session-token\"), exports);\n__exportStar(require(\"./authorization-code\"), exports);\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMutationObserver = exports.setupModalAutoSizing = void 0;\nvar Modal_1 = require(\"@shopify/app-bridge/actions/Modal\");\nvar MessageTransport_1 = require(\"@shopify/app-bridge/MessageTransport\");\nvar platform_1 = require(\"./platform\");\nvar AUTO_SIZE_CLASS = 'app-bridge-utils-modal-auto-size';\nvar autoSizeStylesheet = createAutoSizeStylesheet();\nfunction createAutoSizeStylesheet() {\n if (typeof document === 'undefined') {\n return null;\n }\n var autoSizeStylesheet = document.createElement('style');\n autoSizeStylesheet.type = 'text/css';\n autoSizeStylesheet.innerHTML = \".\" + AUTO_SIZE_CLASS + \" { overflow: hidden; height: auto; min-height: auto; }\";\n return autoSizeStylesheet;\n}\nfunction addAutoSizing(app, id) {\n if (!autoSizeStylesheet) {\n return function () { };\n }\n var head = document.getElementsByTagName('head')[0];\n var classList = document.body.classList;\n head.appendChild(autoSizeStylesheet);\n classList.add(AUTO_SIZE_CLASS);\n var mutationObserver = createMutationObserver(app, id);\n return function () {\n classList.remove(AUTO_SIZE_CLASS);\n if (head.contains(autoSizeStylesheet)) {\n head.removeChild(autoSizeStylesheet);\n }\n if (mutationObserver) {\n mutationObserver.disconnect();\n }\n };\n}\n/**\n * Automatically track changes to the document.body height and dispatch and action to update the modal size\n * @remarks This utility should only be used for an app that is meant to open inside a Modal\n * @param app App Bridge client application instance\n * @returns function to remove the auto-size tracker for the document.body\n *\n * @public\n */\nfunction setupModalAutoSizing(app) {\n return __awaiter(this, void 0, void 0, function () {\n function cleanup() {\n if (removeAutoSizing) {\n removeAutoSizing();\n removeAutoSizing = undefined;\n }\n }\n function handleModalSizeUpdate(appState) {\n var context = appState.context, id = appState.modal.id;\n if (platform_1.isMobile() || context !== MessageTransport_1.Context.Modal) {\n cleanup();\n return cleanup;\n }\n if (!removeAutoSizing) {\n removeAutoSizing = addAutoSizing(app, id);\n }\n return cleanup;\n }\n var removeAutoSizing;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, app.getState().then(handleModalSizeUpdate)];\n case 1:\n _a.sent();\n return [2 /*return*/, cleanup];\n }\n });\n });\n}\nexports.setupModalAutoSizing = setupModalAutoSizing;\n/**\n * Sets up modal auto sizing, using a MutationObserver.\n *\n * @param app App Bridge client application instance\n * @param id Currently active modal instance ID\n *\n * @internal\n */\nfunction createMutationObserver(app, id) {\n if (typeof document === 'undefined') {\n return;\n }\n var lastKnownWindowHeight = -1;\n var mutationTimeoutId;\n var mutationObserverConfig = {\n attributes: true,\n attributeOldValue: false,\n characterData: true,\n characterDataOldValue: false,\n childList: true,\n subtree: true,\n };\n var mutationObserver = new MutationObserver(debouncedResizeHandler);\n mutationObserver.observe(document, mutationObserverConfig);\n updateHeight();\n function debouncedResizeHandler() {\n if (mutationTimeoutId) {\n window.clearTimeout(mutationTimeoutId);\n }\n mutationTimeoutId = window.setTimeout(updateHeight, 16);\n }\n function updateHeight() {\n var height = document.body.scrollHeight;\n if (height !== lastKnownWindowHeight) {\n lastKnownWindowHeight = height;\n app.dispatch(Modal_1.updateModalSize({ id: id, height: String(height) }));\n }\n }\n return mutationObserver;\n}\nexports.createMutationObserver = createMutationObserver;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isShopifyPing = exports.isShopifyPOS = exports.isShopifyMobile = exports.isShopifyEmbedded = exports.isMobile = void 0;\nvar env_1 = require(\"@shopify/app-bridge/util/env\");\nfunction isMobile() {\n return isShopifyMobile() || isShopifyPOS() || isShopifyPing();\n}\nexports.isMobile = isMobile;\nfunction isShopifyEmbedded() {\n return (env_1.isClient && window.top !== window.self) || env_1.isUnframed;\n}\nexports.isShopifyEmbedded = isShopifyEmbedded;\nfunction isShopifyMobile() {\n return typeof navigator !== 'undefined' && navigator.userAgent.indexOf('Shopify Mobile') >= 0;\n}\nexports.isShopifyMobile = isShopifyMobile;\nfunction isShopifyPOS() {\n return typeof navigator !== 'undefined' && navigator.userAgent.indexOf('Shopify POS') >= 0;\n}\nexports.isShopifyPOS = isShopifyPOS;\nfunction isShopifyPing() {\n return typeof navigator !== 'undefined' && navigator.userAgent.indexOf('Shopify Ping') >= 0;\n}\nexports.isShopifyPing = isShopifyPing;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.authenticatedFetch = void 0;\nvar session_token_1 = require(\"./session-token\");\nfunction authenticatedFetch(app, fetchOperation) {\n var _this = this;\n if (fetchOperation === void 0) { fetchOperation = fetch; }\n return function (uri, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var sessionToken, headers, finalHeaders;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, session_token_1.getSessionToken(app)];\n case 1:\n sessionToken = _a.sent();\n headers = new Headers(options.headers);\n headers.append('Authorization', \"Bearer \" + sessionToken);\n headers.append('X-Requested-With', 'XMLHttpRequest');\n finalHeaders = {};\n headers.forEach(function (value, key) {\n finalHeaders[key] = value;\n });\n return [2 /*return*/, fetchOperation(uri, __assign(__assign({}, options), { headers: finalHeaders }))];\n }\n });\n });\n };\n}\nexports.authenticatedFetch = authenticatedFetch;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./session-token\"), exports);\n__exportStar(require(\"./authenticated-fetch\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSessionToken = void 0;\nvar SessionToken = __importStar(require(\"@shopify/app-bridge/actions/SessionToken\"));\nvar Error_1 = require(\"@shopify/app-bridge/actions/Error\");\nfunction getSessionToken(appBridge) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n var unsubscribe = appBridge.subscribe(SessionToken.Action.RESPOND, function (_a) {\n var sessionToken = _a.sessionToken;\n if (sessionToken) {\n resolve(sessionToken);\n }\n else {\n reject(Error_1.fromAction('Failed to retrieve a session token', Error_1.Action.FAILED_AUTHENTICATION));\n }\n unsubscribe();\n });\n appBridge.dispatch(SessionToken.request());\n })];\n });\n });\n}\nexports.getSessionToken = getSessionToken;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTransportListener = exports.fromWindow = exports.fromFrame = exports.Context = void 0;\nvar Error_1 = require(\"./actions/Error\");\nvar validator_1 = require(\"./actions/validator\");\nvar types_1 = require(\"./client/types\");\nvar collection_1 = require(\"./util/collection\");\nvar env_1 = require(\"./util/env\");\nvar Context;\n(function (Context) {\n Context[\"Modal\"] = \"Modal\";\n Context[\"Main\"] = \"Main\";\n})(Context = exports.Context || (exports.Context = {}));\n/**\n * Create a MessageTransport from a Frame.\n * @remarks\n * Used on the host-side to create a postMessage MessageTransport.\n * @beta\n */\nfunction fromFrame(frame, localOrigin, context) {\n var handlers = [];\n var host = frame.host, frameWindow = frame.window;\n if (!host) {\n throw Error_1.fromAction('App frame is undefined', Error_1.AppActionType.WINDOW_UNDEFINED);\n }\n if (env_1.isUnframed && window.MobileWebView) {\n Object.assign(window.MobileWebView, {\n postMessageToIframe: function (message, origin) {\n frameWindow === null || frameWindow === void 0 ? void 0 : frameWindow.postMessage(message, origin);\n if (isDispatchAction(message)) {\n host.postMessage(JSON.stringify(message.payload), location.origin);\n }\n },\n updateIframeUrl: function (newUrl) {\n var currentWindowLocation = window.location;\n var frameWindowLocation = (frame.window || {}).location;\n try {\n var newUrlOrigin = new URL(newUrl).origin;\n if (newUrlOrigin === localOrigin && frameWindowLocation) {\n frameWindowLocation.replace(newUrl);\n }\n else {\n currentWindowLocation.href = newUrl;\n }\n }\n catch (_) {\n // Noop\n }\n },\n });\n }\n host.addEventListener('message', function (event) {\n if (event.source === host || !validator_1.isAppMessage(event)) {\n return;\n }\n if (event.origin !== localOrigin) {\n var errorMessage = \"Message origin '\" + event.origin + \"' does not match app origin '\" + localOrigin + \"'.\";\n var payload = Error_1.invalidOriginAction(errorMessage);\n var message = {\n type: 'dispatch',\n payload: payload,\n };\n frameWindow === null || frameWindow === void 0 ? void 0 : frameWindow.postMessage(message, event.origin);\n return;\n }\n if (env_1.isUnframed && window.MobileWebView) {\n var payload = JSON.stringify({\n id: 'unframed://fromClient',\n origin: localOrigin,\n data: event.data,\n });\n window.MobileWebView.postMessage(payload);\n return;\n }\n for (var _i = 0, handlers_1 = handlers; _i < handlers_1.length; _i++) {\n var handler = handlers_1[_i];\n handler(event);\n }\n });\n return {\n context: context,\n localOrigin: localOrigin,\n frameWindow: frameWindow,\n hostFrame: host,\n dispatch: function (message) {\n frameWindow === null || frameWindow === void 0 ? void 0 : frameWindow.postMessage(message, localOrigin);\n },\n subscribe: function (handler) {\n return collection_1.addAndRemoveFromCollection(handlers, handler);\n },\n };\n}\nexports.fromFrame = fromFrame;\n/**\n * Create a MessageTransport from a parent window.\n * @remarks\n * Used on the client-side to create a postMessage MessageTransport.\n * @internalremarks\n * In unframed mode, message should be dispatched via MobileWebView.postMessage instead of postMessage.\n * @beta\n */\nfunction fromWindow(contentWindow, localOrigin) {\n var handlers = [];\n if (typeof window !== undefined) {\n window.addEventListener('message', function (event) {\n if ((window === contentWindow && !env_1.isUnframed) ||\n event.source !== contentWindow ||\n !(validator_1.isAppBridgeAction(event.data.payload) || validator_1.isAppMessage(event))) {\n return;\n }\n for (var _i = 0, handlers_2 = handlers; _i < handlers_2.length; _i++) {\n var handler = handlers_2[_i];\n handler(event);\n }\n });\n }\n return {\n localOrigin: localOrigin,\n hostFrame: contentWindow,\n dispatch: function (message) {\n var _a;\n if (!((_a = message.source) === null || _a === void 0 ? void 0 : _a.host)) {\n return;\n }\n if (env_1.isUnframed && window && window.MobileWebView) {\n var payload = JSON.stringify({\n id: 'unframed://fromClient',\n origin: localOrigin,\n data: message,\n });\n window.MobileWebView.postMessage(payload);\n return;\n }\n var messageOrigin = new URL(\"https://\" + message.source.host).origin;\n contentWindow.postMessage(message, messageOrigin);\n },\n subscribe: function (handler) {\n return collection_1.addAndRemoveFromCollection(handlers, handler);\n },\n };\n}\nexports.fromWindow = fromWindow;\nfunction createTransportListener() {\n var listeners = [];\n var actionListeners = {};\n function createSubscribeHandler(dispatcher) {\n function subscribe() {\n if (arguments.length < 2) {\n // eslint-disable-next-line prefer-rest-params\n return collection_1.addAndRemoveFromCollection(listeners, { callback: arguments[0] });\n }\n // eslint-disable-next-line prefer-rest-params\n var _a = Array.from(arguments), type = _a[0], callback = _a[1], id = _a[2];\n var actionCallback = { callback: callback, id: id };\n var payload = { type: type, id: id };\n if (!Object.prototype.hasOwnProperty.call(actionListeners, type)) {\n actionListeners[type] = [];\n }\n if (dispatcher) {\n dispatcher(types_1.MessageType.Subscribe, payload);\n }\n return collection_1.addAndRemoveFromCollection(actionListeners[type], actionCallback, function () {\n if (dispatcher) {\n dispatcher(types_1.MessageType.Unsubscribe, payload);\n }\n });\n }\n return subscribe;\n }\n return {\n createSubscribeHandler: createSubscribeHandler,\n handleMessage: function (message) {\n listeners.forEach(function (listener) { return listener.callback(message); });\n },\n handleActionDispatch: function (_a) {\n var type = _a.type, payload = _a.payload;\n var hasCallback = false;\n if (Object.prototype.hasOwnProperty.call(actionListeners, type)) {\n for (var _i = 0, _b = actionListeners[type]; _i < _b.length; _i++) {\n var listener = _b[_i];\n var id = listener.id, callback = listener.callback;\n var matchId = payload && payload.id === id;\n if (matchId || !id) {\n callback(payload);\n hasCallback = true;\n }\n }\n }\n return hasCallback;\n },\n };\n}\nexports.createTransportListener = createTransportListener;\nfunction isDispatchAction(message) {\n return (message !== null &&\n typeof message === 'object' &&\n !Array.isArray(message) &&\n message.type === 'dispatch' &&\n typeof message.payload === 'object');\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActionSetWithChildren = exports.ActionSet = void 0;\nvar types_1 = require(\"../client/types\");\nvar collection_1 = require(\"../util/collection\");\nvar Error_1 = require(\"./Error\");\nvar types_2 = require(\"./types\");\nvar uuid_1 = __importDefault(require(\"./uuid\"));\nvar helper_1 = require(\"./helper\");\nvar ActionSet = /** @class */ (function () {\n function ActionSet(app, type, group, id) {\n var _this = this;\n this.app = app;\n this.type = type;\n this.group = group;\n this.subgroups = [];\n this.subscriptions = [];\n if (!app) {\n Error_1.throwError(Error_1.Action.INVALID_ACTION, 'Missing required `app`');\n }\n this.id = id || uuid_1.default();\n this.defaultGroup = group;\n var defaultSet = this.set;\n this.set = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!_this.app.hooks) {\n return defaultSet.apply(_this, args);\n }\n return (_a = _this.app.hooks).run.apply(_a, __spreadArray([types_1.LifecycleHook.UpdateAction, defaultSet, _this], args));\n };\n }\n ActionSet.prototype.set = function () {\n var _ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _[_i] = arguments[_i];\n }\n };\n Object.defineProperty(ActionSet.prototype, \"component\", {\n get: function () {\n return {\n id: this.id,\n subgroups: this.subgroups,\n type: this.type,\n };\n },\n enumerable: false,\n configurable: true\n });\n ActionSet.prototype.updateSubscription = function (subscriptionToRemove, group, subgroups) {\n var eventType = subscriptionToRemove.eventType, callback = subscriptionToRemove.callback, component = subscriptionToRemove.component;\n var currentIndex;\n currentIndex = this.subscriptions.findIndex(function (subscription) { return subscription === subscriptionToRemove; });\n if (currentIndex >= 0) {\n this.subscriptions[currentIndex].unsubscribe();\n }\n else {\n currentIndex = undefined;\n }\n this.group = group;\n this.subgroups = subgroups;\n Object.assign(component, { subgroups: this.subgroups });\n return this.subscribe(eventType, callback, component, currentIndex);\n };\n ActionSet.prototype.error = function (callback) {\n var _this = this;\n var subscriptionIndices = [];\n helper_1.forEachInEnum(Error_1.Action, function (eventNameSpace) {\n // Keep track of subscription index so we can call unsubscribe later\n // This ensure it will continue to work even when the subscription has been updated\n subscriptionIndices.push(_this.subscriptions.length);\n _this.subscribe(eventNameSpace, callback);\n });\n return function () {\n var subscriptionsToRemove = subscriptionIndices.map(function (index) { return _this.subscriptions[index]; });\n subscriptionsToRemove.forEach(function (toRemove) {\n collection_1.removeFromCollection(_this.subscriptions, toRemove, function (removed) {\n removed.unsubscribe();\n });\n });\n };\n };\n ActionSet.prototype.subscribe = function (eventName, callback, component, currentIndex) {\n var _this = this;\n var eventComponent = component || this.component;\n var eventType = eventName.toUpperCase();\n var boundedCallback = typeof currentIndex === 'number' ? callback : callback.bind(this);\n var eventNameSpace;\n if (Error_1.isErrorEventName(eventName)) {\n eventNameSpace = helper_1.getEventNameSpace(types_2.Group.Error, eventName, __assign(__assign({}, eventComponent), { type: '' }));\n }\n else {\n eventNameSpace = helper_1.getEventNameSpace(this.group, eventName, eventComponent);\n }\n var unsubscribe = this.app.subscribe(eventNameSpace, boundedCallback, component ? component.id : this.id);\n var subscription = {\n eventType: eventType,\n unsubscribe: unsubscribe,\n callback: boundedCallback,\n component: eventComponent,\n updateSubscribe: function (group, subgroups) {\n return _this.updateSubscription(subscription, group, subgroups);\n },\n };\n if (typeof currentIndex === 'number' &&\n currentIndex >= 0 &&\n currentIndex < this.subscriptions.length) {\n this.subscriptions[currentIndex] = subscription;\n }\n else {\n this.subscriptions.push(subscription);\n }\n return unsubscribe;\n };\n ActionSet.prototype.unsubscribe = function (resetOnly) {\n if (resetOnly === void 0) { resetOnly = false; }\n unsubscribeActions(this.subscriptions, this.defaultGroup, resetOnly);\n return this;\n };\n return ActionSet;\n}());\nexports.ActionSet = ActionSet;\nvar ActionSetWithChildren = /** @class */ (function (_super) {\n __extends(ActionSetWithChildren, _super);\n function ActionSetWithChildren() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.children = [];\n return _this;\n }\n ActionSetWithChildren.prototype.unsubscribe = function (unsubscribeChildren, resetParentOnly) {\n if (unsubscribeChildren === void 0) { unsubscribeChildren = true; }\n if (resetParentOnly === void 0) { resetParentOnly = false; }\n unsubscribeActions(this.subscriptions, this.defaultGroup, resetParentOnly);\n this.children.forEach(function (child) {\n if (child instanceof ActionSetWithChildren) {\n child.unsubscribe(unsubscribeChildren, !unsubscribeChildren);\n }\n else {\n child.unsubscribe(!unsubscribeChildren);\n }\n });\n return this;\n };\n ActionSetWithChildren.prototype.getChild = function (id) {\n var childIndex = this.children.findIndex(function (child) { return child.id === id; });\n return childIndex >= 0 ? this.children[childIndex] : undefined;\n };\n ActionSetWithChildren.prototype.getChildIndex = function (id) {\n return this.children.findIndex(function (child) { return child.id === id; });\n };\n ActionSetWithChildren.prototype.getChildSubscriptions = function (id, eventType) {\n return this.subscriptions.filter(function (sub) { return sub.component.id === id && (!eventType || eventType === sub.eventType); });\n };\n ActionSetWithChildren.prototype.addChild = function (child, group, subgroups) {\n var _this = this;\n var subscriptions = child.subscriptions;\n var existingChild = this.getChild(child.id);\n // Add child if it doesn't already exist\n if (!existingChild) {\n this.children.push(child);\n }\n if (!subscriptions || (group === child.group && subgroups === child.subgroups)) {\n return this;\n }\n subscriptions.forEach(function (subscription) {\n var updateSubscribe = subscription.updateSubscribe;\n updateSubscribe(group, subgroups);\n });\n // Update child's group and subgroups\n Object.assign(child, { group: group, subgroups: subgroups });\n // Update child's children subscriptions\n if (child instanceof ActionSetWithChildren) {\n child.children.forEach(function (childIter) {\n return _this.addChild(childIter, group, subgroups);\n });\n }\n return this;\n };\n ActionSetWithChildren.prototype.removeChild = function (id) {\n var _this = this;\n collection_1.removeFromCollection(this.children, this.getChild(id), function () {\n var toBeRemoved = _this.subscriptions.filter(function (subs) { return subs.component.id === id; });\n toBeRemoved.forEach(function (toRemove) {\n collection_1.removeFromCollection(_this.subscriptions, toRemove, function (removed) {\n removed.unsubscribe();\n });\n });\n });\n return this;\n };\n ActionSetWithChildren.prototype.subscribeToChild = function (child, eventName, callback) {\n var _this = this;\n var boundedCallback = callback.bind(this);\n if (eventName instanceof Array) {\n eventName.forEach(function (eventNameIter) { return _this.subscribeToChild(child, eventNameIter, callback); });\n return this;\n }\n if (typeof eventName !== 'string') {\n return this;\n }\n var eventType = eventName.toUpperCase();\n var currentSubscriptions = this.getChildSubscriptions(child.id, eventType);\n if (currentSubscriptions.length > 0) {\n // Subscription is already there, simply update it\n currentSubscriptions.forEach(function (subs) { return subs.updateSubscribe(_this.group, child.subgroups); });\n }\n else {\n var childComponent = {\n id: child.id,\n subgroups: child.subgroups,\n type: child.type,\n };\n this.subscribe(eventType, boundedCallback, childComponent);\n }\n return this;\n };\n ActionSetWithChildren.prototype.getUpdatedChildActions = function (newActions, currentActions) {\n if (newActions.length === 0) {\n while (currentActions.length > 0) {\n var action = currentActions.pop();\n if (!action) {\n break;\n }\n this.removeChild(action.id);\n }\n return undefined;\n }\n // Only allow unique actions\n var uniqueActions = newActions.filter(function (action, index, actionsArr) { return index === actionsArr.indexOf(action); });\n var newActionIds = uniqueActions.map(function (action) { return action.id; });\n // Remove unused actions\n var unusedActions = currentActions.filter(function (action) {\n return newActionIds.indexOf(action.id) < 0;\n });\n while (unusedActions.length > 0) {\n var action = unusedActions.pop();\n if (!action) {\n break;\n }\n this.removeChild(action.id);\n }\n return uniqueActions;\n };\n return ActionSetWithChildren;\n}(ActionSet));\nexports.ActionSetWithChildren = ActionSetWithChildren;\nfunction unsubscribeActions(subscriptions, defaultGroup, reassign) {\n if (reassign === void 0) { reassign = false; }\n subscriptions.forEach(function (subscription) {\n if (reassign) {\n var updateSubscribe = subscription.updateSubscribe;\n // eslint-disable-next-line no-warning-comments\n // TODO: Support cases where we don't wipe out group and subgroups to defaults\n updateSubscribe(defaultGroup, []);\n }\n else {\n var unsubscribe = subscription.unsubscribe;\n unsubscribe();\n }\n });\n if (!reassign) {\n subscriptions.length = 0;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.respond = exports.request = exports.Action = void 0;\nvar helper_1 = require(\"../helper\");\nvar types_1 = require(\"../types\");\nvar Action;\n(function (Action) {\n Action[\"REQUEST\"] = \"APP::AUTH_CODE::REQUEST\";\n Action[\"RESPOND\"] = \"APP::AUTH_CODE::RESPOND\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction request(id) {\n return helper_1.actionWrapper({\n group: types_1.Group.AuthCode,\n type: Action.REQUEST,\n payload: { id: id },\n });\n}\nexports.request = request;\nfunction respond(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.AuthCode,\n type: Action.RESPOND,\n });\n}\nexports.respond = respond;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.ButtonGroup = exports.isGroupedButtonPayload = exports.isGroupedButton = exports.update = exports.Action = void 0;\nvar buttonHelper_1 = require(\"../buttonHelper\");\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\nvar types_1 = require(\"../types\");\nvar Action;\n(function (Action) {\n Action[\"UPDATE\"] = \"UPDATE\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction update(group, component, props) {\n return buttonActionWrapper(group, component, Action.UPDATE, props);\n}\nexports.update = update;\nfunction isGroupedButton(options) {\n var castOptions = options;\n return castOptions.buttons && castOptions.buttons.length > 0 && castOptions.label !== undefined;\n}\nexports.isGroupedButton = isGroupedButton;\nfunction isGroupedButtonPayload(payload) {\n var castOptions = payload;\n return (Array.isArray(castOptions.buttons) &&\n typeof castOptions.id === 'string' &&\n typeof castOptions.label === 'string');\n}\nexports.isGroupedButtonPayload = isGroupedButtonPayload;\nvar ButtonGroup = /** @class */ (function (_super) {\n __extends(ButtonGroup, _super);\n function ButtonGroup(app, options) {\n var _this = _super.call(this, app, types_1.ComponentType.ButtonGroup, types_1.Group.ButtonGroup) || this;\n _this.disabled = false;\n _this.plain = false;\n _this.buttonsOptions = [];\n _this.buttons = [];\n _this.set(options, false);\n return _this;\n }\n Object.defineProperty(ButtonGroup.prototype, \"options\", {\n get: function () {\n return {\n buttons: this.buttonsOptions,\n disabled: this.disabled,\n label: this.label,\n plain: this.plain,\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ButtonGroup.prototype, \"payload\", {\n get: function () {\n return __assign(__assign({}, this.options), { buttons: this.buttons, id: this.id });\n },\n enumerable: false,\n configurable: true\n });\n ButtonGroup.prototype.set = function (options, shouldUpdate) {\n if (shouldUpdate === void 0) { shouldUpdate = true; }\n var mergedOptions = helper_1.getMergedProps(this.options, options);\n var label = mergedOptions.label, disabled = mergedOptions.disabled, buttons = mergedOptions.buttons, plain = mergedOptions.plain;\n this.label = label;\n this.disabled = Boolean(disabled);\n this.buttons = this.getButtons(buttons);\n this.plain = Boolean(plain);\n if (shouldUpdate) {\n this.dispatch(Action.UPDATE);\n }\n return this;\n };\n ButtonGroup.prototype.dispatch = function (action) {\n switch (action) {\n case Action.UPDATE: {\n var updateAction = update(this.group, this.component, this.payload);\n this.app.dispatch(updateAction);\n break;\n }\n }\n return this;\n };\n ButtonGroup.prototype.updateButtons = function (newPayload) {\n if (!this.buttons || this.buttons.length === 0) {\n return;\n }\n var updated;\n for (var _i = 0, _a = this.buttons; _i < _a.length; _i++) {\n var action = _a[_i];\n updated = helper_1.updateActionFromPayload(action, newPayload);\n if (updated) {\n break;\n }\n }\n if (updated) {\n this.dispatch(Action.UPDATE);\n }\n };\n ButtonGroup.prototype.getSingleButton = function (button) {\n return buttonHelper_1.getSingleButton(this, button, this.subgroups, this.updateButtons);\n };\n ButtonGroup.prototype.getButtons = function (buttonOptions) {\n var _this = this;\n var buttons = [];\n if (!buttonOptions) {\n return [];\n }\n buttonOptions.forEach(function (button) {\n var singleButton = buttonHelper_1.getSingleButton(_this, button, _this.subgroups, _this.updateButtons);\n buttons.push(singleButton);\n });\n this.buttonsOptions = buttonOptions;\n return buttons;\n };\n return ButtonGroup;\n}(ActionSet_1.ActionSetWithChildren));\nexports.ButtonGroup = ButtonGroup;\nfunction create(app, options) {\n return new ButtonGroup(app, options);\n}\nexports.create = create;\nfunction buttonActionWrapper(group, component, eventName, props, payload) {\n var id = component.id;\n var label = props.label;\n var action = helper_1.getEventNameSpace(group, eventName, component);\n var buttonPayload = __assign(__assign({}, props), { id: id, label: label, payload: payload });\n return helper_1.actionWrapper({ type: action, group: group, payload: buttonPayload });\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.Button = exports.isValidButtonProps = exports.update = exports.clickButton = exports.Style = exports.Icon = exports.Action = void 0;\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\nvar types_1 = require(\"../types\");\nvar Action;\n(function (Action) {\n Action[\"CLICK\"] = \"CLICK\";\n Action[\"UPDATE\"] = \"UPDATE\";\n})(Action = exports.Action || (exports.Action = {}));\nvar Icon;\n(function (Icon) {\n Icon[\"Print\"] = \"print\";\n})(Icon = exports.Icon || (exports.Icon = {}));\nvar Style;\n(function (Style) {\n Style[\"Danger\"] = \"danger\";\n})(Style = exports.Style || (exports.Style = {}));\nfunction clickButton(group, component, payload) {\n var id = component.id;\n var action = helper_1.getEventNameSpace(group, Action.CLICK, component);\n var buttonPayload = {\n id: id,\n payload: payload,\n };\n return helper_1.actionWrapper({ type: action, group: group, payload: buttonPayload });\n}\nexports.clickButton = clickButton;\nfunction update(group, component, props) {\n var id = component.id;\n var label = props.label;\n var action = helper_1.getEventNameSpace(group, Action.UPDATE, component);\n var buttonPayload = __assign(__assign({}, props), { id: id, label: label });\n return helper_1.actionWrapper({ type: action, group: group, payload: buttonPayload });\n}\nexports.update = update;\nfunction isValidButtonProps(button) {\n return typeof button.id === 'string' && typeof button.label === 'string';\n}\nexports.isValidButtonProps = isValidButtonProps;\nvar Button = /** @class */ (function (_super) {\n __extends(Button, _super);\n function Button(app, options) {\n var _this = _super.call(this, app, types_1.ComponentType.Button, types_1.Group.Button) || this;\n _this.disabled = false;\n _this.loading = false;\n _this.plain = false;\n _this.set(options, false);\n return _this;\n }\n Object.defineProperty(Button.prototype, \"options\", {\n get: function () {\n return {\n disabled: this.disabled,\n icon: this.icon,\n label: this.label,\n style: this.style,\n loading: this.loading,\n plain: this.plain,\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Button.prototype, \"payload\", {\n get: function () {\n return __assign(__assign({}, this.options), { id: this.id });\n },\n enumerable: false,\n configurable: true\n });\n Button.prototype.set = function (options, shouldUpdate) {\n if (shouldUpdate === void 0) { shouldUpdate = true; }\n var mergedOptions = helper_1.getMergedProps(this.options, options);\n var label = mergedOptions.label, disabled = mergedOptions.disabled, icon = mergedOptions.icon, style = mergedOptions.style, loading = mergedOptions.loading, plain = mergedOptions.plain;\n this.label = label;\n this.disabled = Boolean(disabled);\n this.icon = icon;\n this.style = style;\n this.loading = Boolean(loading);\n this.plain = Boolean(plain);\n if (shouldUpdate) {\n this.dispatch(Action.UPDATE);\n }\n return this;\n };\n Button.prototype.dispatch = function (action, payload) {\n switch (action) {\n case Action.CLICK:\n this.app.dispatch(clickButton(this.group, this.component, payload));\n break;\n case Action.UPDATE: {\n var updateAction = update(this.group, this.component, this.payload);\n this.app.dispatch(updateAction);\n break;\n }\n }\n return this;\n };\n return Button;\n}(ActionSet_1.ActionSet));\nexports.Button = Button;\nfunction create(app, options) {\n return new Button(app, options);\n}\nexports.create = create;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.Cart = exports.setLineItemProperties = exports.removeLineItemDiscount = exports.setLineItemDiscount = exports.removeLineItem = exports.updateLineItem = exports.addLineItem = exports.removeProperties = exports.setProperties = exports.setDiscount = exports.updateCustomerAddress = exports.addCustomerAddress = exports.setCustomer = exports.update = exports.fetch = exports.Action = void 0;\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\nvar types_1 = require(\"../types\");\nvar Action;\n(function (Action) {\n Action[\"FETCH\"] = \"APP::CART::FETCH\";\n Action[\"UPDATE\"] = \"APP::CART::UPDATE\";\n Action[\"SET_CUSTOMER\"] = \"APP::CART::SET_CUSTOMER\";\n Action[\"REMOVE_CUSTOMER\"] = \"APP::CART::REMOVE_CUSTOMER\";\n Action[\"ADD_CUSTOMER_ADDRESS\"] = \"APP::CART::ADD_CUSTOMER_ADDRESS\";\n Action[\"UPDATE_CUSTOMER_ADDRESS\"] = \"APP::CART::UPDATE_CUSTOMER_ADDRESS\";\n Action[\"SET_DISCOUNT\"] = \"APP::CART::SET_DISCOUNT\";\n Action[\"REMOVE_DISCOUNT\"] = \"APP::CART::REMOVE_DISCOUNT\";\n Action[\"SET_PROPERTIES\"] = \"APP::CART::SET_PROPERTIES\";\n Action[\"REMOVE_PROPERTIES\"] = \"APP::CART::REMOVE_PROPERTIES\";\n Action[\"CLEAR\"] = \"APP::CART::CLEAR\";\n Action[\"ADD_LINE_ITEM\"] = \"APP::CART::ADD_LINE_ITEM\";\n Action[\"UPDATE_LINE_ITEM\"] = \"APP::CART::UPDATE_LINE_ITEM\";\n Action[\"REMOVE_LINE_ITEM\"] = \"APP::CART::REMOVE_LINE_ITEM\";\n Action[\"SET_LINE_ITEM_DISCOUNT\"] = \"APP::CART::SET_LINE_ITEM_DISCOUNT\";\n Action[\"REMOVE_LINE_ITEM_DISCOUNT\"] = \"APP::CART::REMOVE_LINE_ITEM_DISCOUNT\";\n Action[\"SET_LINE_ITEM_PROPERTIES\"] = \"APP::CART::SET_LINE_ITEM_PROPERTIES\";\n Action[\"REMOVE_LINE_ITEM_PROPERTIES\"] = \"APP::CART::REMOVE_LINE_ITEM_PROPERTIES\";\n})(Action = exports.Action || (exports.Action = {}));\n/**\n * Cart action\n * @internal\n */\nfunction createCartAction(type, payload) {\n if (payload === void 0) { payload = {}; }\n return helper_1.actionWrapper({\n group: types_1.Group.Cart,\n type: type,\n payload: payload,\n });\n}\nfunction fetch() {\n return createCartAction(Action.FETCH);\n}\nexports.fetch = fetch;\nfunction update(payload) {\n return createCartAction(Action.UPDATE, payload);\n}\nexports.update = update;\nfunction setCustomer(payload) {\n return createCartAction(Action.SET_CUSTOMER, payload);\n}\nexports.setCustomer = setCustomer;\nfunction addCustomerAddress(payload) {\n return createCartAction(Action.ADD_CUSTOMER_ADDRESS, payload);\n}\nexports.addCustomerAddress = addCustomerAddress;\nfunction updateCustomerAddress(payload) {\n return createCartAction(Action.UPDATE_CUSTOMER_ADDRESS, payload);\n}\nexports.updateCustomerAddress = updateCustomerAddress;\nfunction setDiscount(payload) {\n return createCartAction(Action.SET_DISCOUNT, payload);\n}\nexports.setDiscount = setDiscount;\nfunction setProperties(payload) {\n return createCartAction(Action.SET_PROPERTIES, payload);\n}\nexports.setProperties = setProperties;\nfunction removeProperties(payload) {\n return createCartAction(Action.REMOVE_PROPERTIES, payload);\n}\nexports.removeProperties = removeProperties;\nfunction addLineItem(payload) {\n return createCartAction(Action.ADD_LINE_ITEM, payload);\n}\nexports.addLineItem = addLineItem;\nfunction updateLineItem(payload) {\n return createCartAction(Action.UPDATE_LINE_ITEM, payload);\n}\nexports.updateLineItem = updateLineItem;\nfunction removeLineItem(payload) {\n return createCartAction(Action.REMOVE_LINE_ITEM, payload);\n}\nexports.removeLineItem = removeLineItem;\nfunction setLineItemDiscount(payload) {\n return createCartAction(Action.SET_LINE_ITEM_DISCOUNT, payload);\n}\nexports.setLineItemDiscount = setLineItemDiscount;\nfunction removeLineItemDiscount(payload) {\n return createCartAction(Action.REMOVE_LINE_ITEM_DISCOUNT, payload);\n}\nexports.removeLineItemDiscount = removeLineItemDiscount;\nfunction setLineItemProperties(payload) {\n return createCartAction(Action.SET_LINE_ITEM_PROPERTIES, payload);\n}\nexports.setLineItemProperties = setLineItemProperties;\n/**\n * Cart\n */\nvar Cart = /** @class */ (function (_super) {\n __extends(Cart, _super);\n function Cart(app, options) {\n return _super.call(this, app, types_1.Group.Cart, types_1.Group.Cart, options ? options.id : undefined) || this;\n }\n Cart.prototype.dispatch = function (action, payload) {\n switch (action) {\n case Action.FETCH:\n this.dispatchCartAction(Action.FETCH);\n break;\n case Action.UPDATE:\n this.dispatchCartAction(Action.UPDATE, payload);\n break;\n case Action.SET_CUSTOMER:\n this.dispatchCartAction(Action.SET_CUSTOMER, payload);\n break;\n case Action.REMOVE_CUSTOMER:\n this.dispatchCartAction(Action.REMOVE_CUSTOMER, payload);\n break;\n case Action.ADD_CUSTOMER_ADDRESS:\n this.dispatchCartAction(Action.ADD_CUSTOMER_ADDRESS, payload);\n break;\n case Action.UPDATE_CUSTOMER_ADDRESS:\n this.dispatchCartAction(Action.UPDATE_CUSTOMER_ADDRESS, payload);\n break;\n case Action.SET_DISCOUNT:\n this.dispatchCartAction(Action.SET_DISCOUNT, payload);\n break;\n case Action.REMOVE_DISCOUNT:\n this.dispatchCartAction(Action.REMOVE_DISCOUNT, payload);\n break;\n case Action.SET_PROPERTIES:\n this.dispatchCartAction(Action.SET_PROPERTIES, payload);\n break;\n case Action.REMOVE_PROPERTIES:\n this.dispatchCartAction(Action.REMOVE_PROPERTIES, payload);\n break;\n case Action.CLEAR:\n this.dispatchCartAction(Action.CLEAR, payload);\n break;\n case Action.ADD_LINE_ITEM:\n this.dispatchCartAction(Action.ADD_LINE_ITEM, payload);\n break;\n case Action.UPDATE_LINE_ITEM:\n this.dispatchCartAction(Action.UPDATE_LINE_ITEM, payload);\n break;\n case Action.REMOVE_LINE_ITEM:\n this.dispatchCartAction(Action.REMOVE_LINE_ITEM, payload);\n break;\n case Action.SET_LINE_ITEM_DISCOUNT:\n this.dispatchCartAction(Action.SET_LINE_ITEM_DISCOUNT, payload);\n break;\n case Action.REMOVE_LINE_ITEM_DISCOUNT:\n this.dispatchCartAction(Action.REMOVE_LINE_ITEM_DISCOUNT, payload);\n break;\n case Action.SET_LINE_ITEM_PROPERTIES:\n this.dispatchCartAction(Action.SET_LINE_ITEM_PROPERTIES, payload);\n break;\n case Action.REMOVE_LINE_ITEM_PROPERTIES:\n this.dispatchCartAction(Action.REMOVE_LINE_ITEM_PROPERTIES, payload);\n break;\n }\n return this;\n };\n Cart.prototype.dispatchCartAction = function (type, payload) {\n this.app.dispatch(createCartAction(type, __assign(__assign({}, payload), { id: this.id })));\n };\n return Cart;\n}(ActionSet_1.ActionSet));\nexports.Cart = Cart;\nfunction create(app, options) {\n return new Cart(app, options);\n}\nexports.create = create;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initialize = exports.Action = void 0;\nvar types_1 = require(\"../types\");\nvar helper_1 = require(\"../helper\");\nvar Action;\n(function (Action) {\n Action[\"INITIALIZE\"] = \"APP::CLIENT::INITIALIZE\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction initialize() {\n return helper_1.actionWrapper({\n group: types_1.Group.Client,\n type: Action.INITIALIZE,\n });\n}\nexports.initialize = initialize;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.ContextualSaveBar = exports.update = exports.discard = exports.save = exports.hide = exports.show = exports.Action = void 0;\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\nvar types_1 = require(\"../types\");\n/**\n * ContextualSaveBar action enum\n */\nvar Action;\n(function (Action) {\n Action[\"DISCARD\"] = \"APP::CONTEXTUAL_SAVE_BAR::DISCARD\";\n Action[\"SAVE\"] = \"APP::CONTEXTUAL_SAVE_BAR::SAVE\";\n Action[\"SHOW\"] = \"APP::CONTEXTUAL_SAVE_BAR::SHOW\";\n Action[\"HIDE\"] = \"APP::CONTEXTUAL_SAVE_BAR::HIDE\";\n Action[\"UPDATE\"] = \"APP::CONTEXTUAL_SAVE_BAR::UPDATE\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction createContextBarAction(action, payload) {\n return helper_1.actionWrapper({\n group: types_1.Group.ContextualSaveBar,\n type: action,\n payload: payload,\n });\n}\nfunction show(payload) {\n return createContextBarAction(Action.SHOW, payload);\n}\nexports.show = show;\nfunction hide(payload) {\n return createContextBarAction(Action.HIDE, payload);\n}\nexports.hide = hide;\nfunction save(payload) {\n return createContextBarAction(Action.SAVE, payload);\n}\nexports.save = save;\nfunction discard(payload) {\n return createContextBarAction(Action.DISCARD, payload);\n}\nexports.discard = discard;\nfunction update(payload) {\n return createContextBarAction(Action.UPDATE, payload);\n}\nexports.update = update;\n/**\n * ContextualSaveBar action set\n */\nvar ContextualSaveBar = /** @class */ (function (_super) {\n __extends(ContextualSaveBar, _super);\n /**\n * Returns a new instance of a ContextualSaveBar action set\n * @param app the client application\n */\n function ContextualSaveBar(app, options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this, app, types_1.Group.ContextualSaveBar, types_1.Group.ContextualSaveBar) || this;\n _this.options = options;\n _this.set(options, false);\n return _this;\n }\n Object.defineProperty(ContextualSaveBar.prototype, \"payload\", {\n /**\n * Returns the action set payload\n */\n get: function () {\n return __assign({ id: this.id }, this.options);\n },\n enumerable: false,\n configurable: true\n });\n ContextualSaveBar.prototype.set = function (options, shouldUpdate) {\n if (shouldUpdate === void 0) { shouldUpdate = true; }\n var mergedOptions = helper_1.getMergedProps(this.options, options);\n this.options = mergedOptions;\n if (shouldUpdate) {\n this.dispatch(Action.UPDATE);\n }\n return this;\n };\n /**\n * Dispatches a given action with the action set payload\n * @param action the action enum\n * @returns the action set instance\n */\n ContextualSaveBar.prototype.dispatch = function (action) {\n this.app.dispatch(createContextBarAction(action, this.payload));\n return this;\n };\n return ContextualSaveBar;\n}(ActionSet_1.ActionSet));\nexports.ContextualSaveBar = ContextualSaveBar;\n/**\n * Returns a new instance of a ContextualSaveBar action set\n * @param app the client application\n *\n */\nfunction create(app, options) {\n return new ContextualSaveBar(app, options);\n}\nexports.create = create;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.throwError = exports.fromAction = exports.AppBridgeError = exports.invalidOriginAction = exports.isErrorEventName = exports.permissionAction = exports.networkAction = exports.persistenceAction = exports.unsupportedOperationAction = exports.unexpectedAction = exports.invalidAction = exports.invalidActionType = exports.invalidPayload = exports.Message = exports.AppActionType = exports.Action = void 0;\nvar helper_1 = require(\"../helper\");\nvar types_1 = require(\"../types\");\n// Errors triggered in response to an action\nvar Action;\n(function (Action) {\n Action[\"INVALID_ACTION\"] = \"APP::ERROR::INVALID_ACTION\";\n Action[\"INVALID_ACTION_TYPE\"] = \"APP::ERROR::INVALID_ACTION_TYPE\";\n Action[\"INVALID_PAYLOAD\"] = \"APP::ERROR::INVALID_PAYLOAD\";\n Action[\"INVALID_OPTIONS\"] = \"APP::ERROR::INVALID_OPTIONS\";\n Action[\"UNEXPECTED_ACTION\"] = \"APP::ERROR::UNEXPECTED_ACTION\";\n Action[\"PERSISTENCE\"] = \"APP::ERROR::PERSISTENCE\";\n Action[\"UNSUPPORTED_OPERATION\"] = \"APP::ERROR::UNSUPPORTED_OPERATION\";\n Action[\"NETWORK\"] = \"APP::ERROR::NETWORK\";\n Action[\"PERMISSION\"] = \"APP::ERROR::PERMISSION\";\n Action[\"FAILED_AUTHENTICATION\"] = \"APP::ERROR::FAILED_AUTHENTICATION\";\n Action[\"INVALID_ORIGIN\"] = \"APP::ERROR::INVALID_ORIGIN\";\n})(Action = exports.Action || (exports.Action = {}));\n// Errors thrown in response to app setup\nvar AppActionType;\n(function (AppActionType) {\n AppActionType[\"INVALID_CONFIG\"] = \"APP::ERROR::INVALID_CONFIG\";\n AppActionType[\"MISSING_CONFIG\"] = \"APP::APP_ERROR::MISSING_CONFIG\";\n AppActionType[\"MISSING_APP_BRIDGE_MIDDLEWARE\"] = \"APP::APP_ERROR::MISSING_APP_BRIDGE_MIDDLEWARE\";\n AppActionType[\"WINDOW_UNDEFINED\"] = \"APP::APP_ERROR::WINDOW_UNDEFINED\";\n AppActionType[\"REDUX_REINSTANTIATED\"] = \"APP::APP_ERROR::REDUX_REINSTANTIATED\";\n AppActionType[\"MISSING_LOCAL_ORIGIN\"] = \"APP::APP_ERROR::MISSING_LOCAL_ORIGIN\";\n AppActionType[\"MISSING_HOST_PROVIDER\"] = \"APP::APP_ERROR::MISSING_HOST_PROVIDER\";\n AppActionType[\"MISSING_ROUTER_CONTEXT\"] = \"APP::APP_ERROR::MISSING_ROUTER_CONTEXT\";\n AppActionType[\"MISSING_HISTORY_BLOCK\"] = \"APP::APP_ERROR::MISSING_HISTORY_BLOCK\";\n})(AppActionType = exports.AppActionType || (exports.AppActionType = {}));\nfunction errorActionWrapperWithId(type, action, message) {\n var castPayload = action.payload;\n return helper_1.actionWrapper({\n type: type,\n group: types_1.Group.Error,\n payload: {\n action: action,\n message: message,\n type: type,\n id: castPayload && castPayload.id ? castPayload.id : undefined,\n },\n });\n}\nvar Message;\n(function (Message) {\n Message[\"MISSING_PAYLOAD\"] = \"Missing payload\";\n Message[\"INVALID_PAYLOAD_ID\"] = \"Id in payload is missing or invalid\";\n})(Message = exports.Message || (exports.Message = {}));\nfunction invalidPayload(action, message) {\n return errorActionWrapperWithId(Action.INVALID_PAYLOAD, action, message || \"The action's payload is missing required properties or has invalid properties\");\n}\nexports.invalidPayload = invalidPayload;\nfunction invalidActionType(action, message) {\n return helper_1.actionWrapper({\n group: types_1.Group.Error,\n payload: {\n action: action,\n message: message || 'The action type is invalid or unsupported',\n type: Action.INVALID_ACTION_TYPE,\n },\n type: Action.INVALID_ACTION_TYPE,\n });\n}\nexports.invalidActionType = invalidActionType;\nfunction invalidAction(action, message) {\n return helper_1.actionWrapper({\n group: types_1.Group.Error,\n payload: {\n action: action,\n message: message || \"The action's has missing/invalid values for `group`, `type` or `version`\",\n type: Action.INVALID_ACTION,\n },\n type: Action.INVALID_ACTION,\n });\n}\nexports.invalidAction = invalidAction;\nfunction unexpectedAction(action, message) {\n return helper_1.actionWrapper({\n group: types_1.Group.Error,\n payload: {\n action: action,\n message: message || 'Action cannot be called at this time',\n type: Action.UNEXPECTED_ACTION,\n },\n type: Action.UNEXPECTED_ACTION,\n });\n}\nexports.unexpectedAction = unexpectedAction;\nfunction unsupportedOperationAction(action, message) {\n return errorActionWrapperWithId(Action.UNSUPPORTED_OPERATION, action, message || 'The action type is unsupported');\n}\nexports.unsupportedOperationAction = unsupportedOperationAction;\nfunction persistenceAction(action, message) {\n return errorActionWrapperWithId(Action.PERSISTENCE, action, message || 'Action cannot be persisted on server');\n}\nexports.persistenceAction = persistenceAction;\nfunction networkAction(action, message) {\n return errorActionWrapperWithId(Action.NETWORK, action, message || 'Network error');\n}\nexports.networkAction = networkAction;\nfunction permissionAction(action, message) {\n return errorActionWrapperWithId(Action.PERMISSION, action, message || 'Action is not permitted');\n}\nexports.permissionAction = permissionAction;\nfunction isErrorEventName(eventName) {\n var match = helper_1.findMatchInEnum(Action, eventName);\n return typeof match === 'string';\n}\nexports.isErrorEventName = isErrorEventName;\nfunction invalidOriginAction(message) {\n return helper_1.actionWrapper({\n group: types_1.Group.Error,\n payload: {\n message: message,\n type: Action.INVALID_ORIGIN,\n },\n type: Action.INVALID_ORIGIN,\n });\n}\nexports.invalidOriginAction = invalidOriginAction;\nvar AppBridgeError = /** @class */ (function () {\n function AppBridgeError(message) {\n this.name = 'AppBridgeError';\n this.message = message;\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, this.constructor);\n }\n else {\n this.stack = new Error(this.message).stack;\n }\n }\n return AppBridgeError;\n}());\nexports.AppBridgeError = AppBridgeError;\nAppBridgeError.prototype = Object.create(Error.prototype);\nfunction fromAction(message, type, action) {\n var errorMessage = message ? type + \": \" + message : type;\n var error = new AppBridgeError(errorMessage);\n error.action = action;\n error.type = type;\n return error;\n}\nexports.fromAction = fromAction;\nfunction throwError() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var type = args[0];\n var message;\n var action;\n if (typeof args[1] === 'string') {\n message = args[1];\n }\n else {\n action = args[1];\n message = args[2] || '';\n }\n throw fromAction(message, type, action);\n}\nexports.throwError = throwError;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.Features = void 0;\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\nvar types_1 = require(\"../types\");\nvar types_2 = require(\"./types\");\n/**\n * A set of Actions for Updating, Requesting Features of AppBridge\n * @public\n */\nvar Features = /** @class */ (function (_super) {\n __extends(Features, _super);\n function Features(app, options) {\n return _super.call(this, app, types_1.Group.Features, types_1.Group.Features, options ? options.id : undefined) || this;\n }\n /**\n * @public\n */\n Features.prototype.dispatch = function (action, payload) {\n switch (action) {\n case types_2.Action.REQUEST:\n this.dispatchFeaturesAction(types_2.Action.REQUEST, payload);\n break;\n }\n return this;\n };\n /**\n * @internal\n */\n Features.prototype.dispatchFeaturesAction = function (type, payload) {\n this.app.dispatch(helper_1.actionWrapper({\n group: types_1.Group.Features,\n type: type,\n payload: __assign(__assign({}, (payload || {})), { id: this.id }),\n }));\n };\n return Features;\n}(ActionSet_1.ActionSet));\nexports.Features = Features;\n/**\n * @public\n */\nfunction create(app, options) {\n return new Features(app, options);\n}\nexports.create = create;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./actions\"), exports);\n__exportStar(require(\"./types\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Action = void 0;\n/**\n * Action Types for the Features group\n * @public\n */\nvar Action;\n(function (Action) {\n Action[\"UPDATE\"] = \"APP::FEATURES::UPDATE\";\n Action[\"REQUEST\"] = \"APP::FEATURES::REQUEST\";\n /**\n * @deprecated as of 2.1.0. Use \"APP::FEATURES::UPDATE\" instead\n */\n Action[\"REQUEST_UPDATE\"] = \"APP::FEATURES::REQUEST::UPDATE\";\n})(Action = exports.Action || (exports.Action = {}));\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.FeedbackModal = exports.close = exports.open = exports.Action = void 0;\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\nvar types_1 = require(\"../types\");\n/**\n * Action for the Feedback Modal group\n * @public\n */\nvar Action;\n(function (Action) {\n Action[\"OPEN\"] = \"APP::FEEDBACK_MODAL::OPEN\";\n Action[\"CLOSE\"] = \"APP::FEEDBACK_MODAL::CLOSE\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction open(payload) {\n return helper_1.actionWrapper({\n group: types_1.Group.FeedbackModal,\n payload: payload,\n type: Action.OPEN,\n });\n}\nexports.open = open;\nfunction close(payload) {\n return helper_1.actionWrapper({\n group: types_1.Group.FeedbackModal,\n payload: payload,\n type: Action.CLOSE,\n });\n}\nexports.close = close;\n/**\n * FeedbackModal action set\n */\nvar FeedbackModal = /** @class */ (function (_super) {\n __extends(FeedbackModal, _super);\n /**\n * Returns a new instance of a FeedbackModal action set\n * @param app the client application\n */\n function FeedbackModal(app, options) {\n var _this = _super.call(this, app, types_1.Group.FeedbackModal, types_1.Group.FeedbackModal) || this;\n _this.options = options;\n _this.set(options);\n return _this;\n }\n Object.defineProperty(FeedbackModal.prototype, \"payload\", {\n /**\n * Returns the action set payload\n */\n get: function () {\n return __assign({ id: this.id }, this.options);\n },\n enumerable: false,\n configurable: true\n });\n FeedbackModal.prototype.set = function (options) {\n this.options = helper_1.getMergedProps(this.options, options);\n return this;\n };\n /**\n * Dispatches a given action with the action set payload\n * @param action the action enum\n * @returns the action set instance\n */\n FeedbackModal.prototype.dispatch = function (action) {\n switch (action) {\n case Action.OPEN: {\n var openAction = open(this.payload);\n this.app.dispatch(openAction);\n break;\n }\n case Action.CLOSE: {\n var closeAction = close(this.payload);\n this.app.dispatch(closeAction);\n break;\n }\n }\n return this;\n };\n return FeedbackModal;\n}(ActionSet_1.ActionSet));\nexports.FeedbackModal = FeedbackModal;\n/**\n * Returns a new instance of a FeedbackModal action set\n * @param app the client application\n */\nfunction create(app, options) {\n return new FeedbackModal(app, options);\n}\nexports.create = create;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.Flash = exports.show = exports.clear = void 0;\nvar Toast_1 = require(\"../Toast\");\nvar Toast_2 = require(\"../Toast\");\nObject.defineProperty(exports, \"clear\", { enumerable: true, get: function () { return Toast_2.clear; } });\nObject.defineProperty(exports, \"show\", { enumerable: true, get: function () { return Toast_2.show; } });\nvar Flash = /** @class */ (function (_super) {\n __extends(Flash, _super);\n function Flash() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return Flash;\n}(Toast_1.Toast));\nexports.Flash = Flash;\nfunction create(app, options) {\n return new Flash(app, options);\n}\nexports.create = create;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./actions\"), exports);\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.Fullscreen = exports.exit = exports.enter = exports.Action = void 0;\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\nvar types_1 = require(\"../types\");\n/**\n * Fullscreen action type enum\n * @remarks includes the action prefix and group\n *\n * @beta\n */\nvar Action;\n(function (Action) {\n Action[\"ENTER\"] = \"APP::FULLSCREEN::ENTER\";\n Action[\"EXIT\"] = \"APP::FULLSCREEN::EXIT\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction enter() {\n return helper_1.actionWrapper({\n group: types_1.Group.Fullscreen,\n type: Action.ENTER,\n });\n}\nexports.enter = enter;\nfunction exit() {\n return helper_1.actionWrapper({\n group: types_1.Group.Fullscreen,\n type: Action.EXIT,\n });\n}\nexports.exit = exit;\n/**\n * Fullscreen action set\n * @beta\n */\nvar Fullscreen = /** @class */ (function (_super) {\n __extends(Fullscreen, _super);\n /**\n * Returns a new instance of a Fullscreen action set\n * @param app the client application\n */\n function Fullscreen(app) {\n return _super.call(this, app, types_1.Group.Fullscreen, types_1.Group.Fullscreen) || this;\n }\n Object.defineProperty(Fullscreen.prototype, \"payload\", {\n /**\n * Returns the action set payload\n */\n get: function () {\n return { id: this.id };\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Dispatches a given action with the action set payload\n * @param action the action enum\n * @returns the action set instance\n */\n Fullscreen.prototype.dispatch = function (action) {\n this.app.dispatch(helper_1.actionWrapper({\n group: this.group,\n type: action,\n payload: this.payload,\n }));\n return this;\n };\n return Fullscreen;\n}(ActionSet_1.ActionSet));\nexports.Fullscreen = Fullscreen;\n/**\n * Returns a new instance of a Fullscreen action set\n * @param app the client application\n *\n * @beta\n */\nfunction create(app) {\n return new Fullscreen(app);\n}\nexports.create = create;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.LeaveConfirmation = exports.confirm = exports.disable = exports.enable = exports.Action = void 0;\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\nvar types_1 = require(\"../types\");\n/**\n * Action for the Leave Confirmation group\n * @public\n */\nvar Action;\n(function (Action) {\n Action[\"ENABLE\"] = \"APP::LEAVE_CONFIRMATION::ENABLE\";\n Action[\"DISABLE\"] = \"APP::LEAVE_CONFIRMATION::DISABLE\";\n Action[\"CONFIRM\"] = \"APP::LEAVE_CONFIRMATION::CONFIRM\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction enable(payload) {\n if (payload === void 0) { payload = {}; }\n return helper_1.actionWrapper({\n group: types_1.Group.LeaveConfirmation,\n payload: payload,\n type: Action.ENABLE,\n });\n}\nexports.enable = enable;\nfunction disable(payload) {\n if (payload === void 0) { payload = {}; }\n return helper_1.actionWrapper({\n group: types_1.Group.LeaveConfirmation,\n payload: payload,\n type: Action.DISABLE,\n });\n}\nexports.disable = disable;\nfunction confirm(payload) {\n if (payload === void 0) { payload = {}; }\n return helper_1.actionWrapper({\n group: types_1.Group.LeaveConfirmation,\n payload: payload,\n type: Action.CONFIRM,\n });\n}\nexports.confirm = confirm;\n/**\n * Leave Confirmation action set\n */\nvar LeaveConfirmation = /** @class */ (function (_super) {\n __extends(LeaveConfirmation, _super);\n /**\n * Returns a new instance of a Leave Confirmation action set\n * @param app the client application\n */\n function LeaveConfirmation(app, options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this, app, types_1.Group.LeaveConfirmation, types_1.Group.LeaveConfirmation) || this;\n _this.options = options;\n _this.set(options);\n return _this;\n }\n Object.defineProperty(LeaveConfirmation.prototype, \"payload\", {\n /**\n * Returns the action set payload\n */\n get: function () {\n return __assign({ id: this.id }, this.options);\n },\n enumerable: false,\n configurable: true\n });\n LeaveConfirmation.prototype.set = function (options) {\n this.options = helper_1.getMergedProps(this.options, options);\n return this;\n };\n /**\n * Dispatches a given action with the action set payload\n * @param action the action enum\n * @returns the action set instance\n */\n LeaveConfirmation.prototype.dispatch = function (action) {\n switch (action) {\n case Action.ENABLE: {\n var enableAction = enable(this.payload);\n this.app.dispatch(enableAction);\n break;\n }\n case Action.DISABLE: {\n var disableAction = disable(this.payload);\n this.app.dispatch(disableAction);\n break;\n }\n case Action.CONFIRM: {\n var confirmAction = confirm(this.payload);\n this.app.dispatch(confirmAction);\n break;\n }\n }\n return this;\n };\n return LeaveConfirmation;\n}(ActionSet_1.ActionSet));\nexports.LeaveConfirmation = LeaveConfirmation;\n/**\n * Returns a new instance of a Leave Confirmation action set\n * @param app the client application\n */\nfunction create(app, options) {\n if (options === void 0) { options = {}; }\n return new LeaveConfirmation(app, options);\n}\nexports.create = create;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.AppLink = exports.update = exports.Action = void 0;\nvar helper_1 = require(\"../../helper\");\nvar ActionSet_1 = require(\"../../ActionSet\");\nvar types_1 = require(\"../../types\");\nvar Redirect_1 = require(\"../../Navigation/Redirect\");\nvar Action;\n(function (Action) {\n Action[\"UPDATE\"] = \"UPDATE\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction update(group, component, updatePayload) {\n var id = component.id;\n var label = updatePayload.label, destination = updatePayload.destination;\n var linkPayload = __assign(__assign({}, updatePayload), { id: id, label: label, destination: destination });\n return helper_1.actionWrapper({\n group: group,\n type: helper_1.getEventNameSpace(group, Action.UPDATE, component),\n payload: linkPayload,\n });\n}\nexports.update = update;\nvar AppLink = /** @class */ (function (_super) {\n __extends(AppLink, _super);\n function AppLink(app, options) {\n var _this = _super.call(this, app, types_1.Group.Link, types_1.Group.Link) || this;\n _this.label = '';\n _this.destination = '';\n _this.set(options, false);\n return _this;\n }\n Object.defineProperty(AppLink.prototype, \"options\", {\n get: function () {\n var _a = this, label = _a.label, destination = _a.destination;\n return {\n label: label,\n destination: destination,\n redirectType: Redirect_1.Action.APP,\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AppLink.prototype, \"payload\", {\n get: function () {\n var _a = this.options, label = _a.label, destination = _a.destination, redirectType = _a.redirectType;\n var path = destination;\n return {\n id: this.id,\n label: label,\n destination: { path: path },\n redirectType: redirectType,\n };\n },\n enumerable: false,\n configurable: true\n });\n AppLink.prototype.set = function (options, shouldUpdate) {\n if (shouldUpdate === void 0) { shouldUpdate = true; }\n var _a = helper_1.getMergedProps(this.options, options), label = _a.label, destination = _a.destination;\n this.label = label;\n this.destination = destination;\n if (shouldUpdate) {\n this.dispatch(Action.UPDATE);\n }\n return this;\n };\n AppLink.prototype.dispatch = function (action) {\n switch (action) {\n case Action.UPDATE: {\n var updateAction = update(this.group, this.component, this.payload);\n this.app.dispatch(updateAction);\n break;\n }\n }\n return this;\n };\n return AppLink;\n}(ActionSet_1.ActionSet));\nexports.AppLink = AppLink;\nfunction create(app, options) {\n return new AppLink(app, options);\n}\nexports.create = create;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.Loading = exports.stop = exports.start = exports.Action = void 0;\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\nvar types_1 = require(\"../types\");\nvar Action;\n(function (Action) {\n Action[\"START\"] = \"APP::LOADING::START\";\n Action[\"STOP\"] = \"APP::LOADING::STOP\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction start(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.Loading,\n type: Action.START,\n });\n}\nexports.start = start;\nfunction stop(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.Loading,\n type: Action.STOP,\n });\n}\nexports.stop = stop;\nvar Loading = /** @class */ (function (_super) {\n __extends(Loading, _super);\n function Loading(app) {\n return _super.call(this, app, types_1.Group.Loading, types_1.Group.Loading) || this;\n }\n Object.defineProperty(Loading.prototype, \"payload\", {\n get: function () {\n return { id: this.id };\n },\n enumerable: false,\n configurable: true\n });\n Loading.prototype.dispatch = function (action) {\n switch (action) {\n case Action.START:\n this.app.dispatch(start(this.payload));\n break;\n case Action.STOP:\n this.app.dispatch(stop(this.payload));\n break;\n }\n return this;\n };\n return Loading;\n}(ActionSet_1.ActionSet));\nexports.Loading = Loading;\nfunction create(app) {\n return new Loading(app);\n}\nexports.create = create;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.MarketingExternalActivityTopBar = exports.update = exports.clickActionButton = exports.MarketingActivityStatusBadgeType = exports.Action = void 0;\nvar Button_1 = require(\"../Button\");\nvar buttonHelper_1 = require(\"../buttonHelper\");\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\nvar types_1 = require(\"../types\");\nvar Action;\n(function (Action) {\n Action[\"UPDATE\"] = \"APP::MARKETING_EXTERNAL_ACTIVITY_TOP_BAR::UPDATE\";\n Action[\"BUTTON_CLICK\"] = \"APP::MARKETING_EXTERNAL_ACTIVITY_TOP_BAR::BUTTONS::BUTTON::CLICK\";\n Action[\"BUTTON_UPDATE\"] = \"APP::MARKETING_EXTERNAL_ACTIVITY_TOP_BAR::BUTTONS::BUTTON::UPDATE\";\n})(Action = exports.Action || (exports.Action = {}));\nvar MarketingActivityStatusBadgeType;\n(function (MarketingActivityStatusBadgeType) {\n MarketingActivityStatusBadgeType[\"Default\"] = \"DEFAULT\";\n MarketingActivityStatusBadgeType[\"Success\"] = \"SUCCESS\";\n MarketingActivityStatusBadgeType[\"Attention\"] = \"ATTENTION\";\n MarketingActivityStatusBadgeType[\"Warning\"] = \"WARNING\";\n MarketingActivityStatusBadgeType[\"Info\"] = \"INFO\";\n})(MarketingActivityStatusBadgeType = exports.MarketingActivityStatusBadgeType || (exports.MarketingActivityStatusBadgeType = {}));\nvar MARKETING_ACTIVITY_TOPBAR_BUTTON_PROPS = {\n group: types_1.Group.MarketingExternalActivityTopBar,\n subgroups: ['Buttons'],\n};\nfunction clickActionButton(id, payload) {\n var type = types_1.ComponentType.Button;\n var component = __assign({ id: id, type: type }, MARKETING_ACTIVITY_TOPBAR_BUTTON_PROPS);\n return Button_1.clickButton(types_1.Group.MarketingExternalActivityTopBar, component, payload);\n}\nexports.clickActionButton = clickActionButton;\nfunction update(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.MarketingExternalActivityTopBar,\n type: Action.UPDATE,\n });\n}\nexports.update = update;\nvar MarketingExternalActivityTopBar = /** @class */ (function (_super) {\n __extends(MarketingExternalActivityTopBar, _super);\n function MarketingExternalActivityTopBar(app, options) {\n var _this = _super.call(this, app, types_1.Group.MarketingExternalActivityTopBar, types_1.Group.MarketingExternalActivityTopBar) || this;\n // Trigger 'update' on creation\n _this.set(options);\n return _this;\n }\n Object.defineProperty(MarketingExternalActivityTopBar.prototype, \"buttons\", {\n get: function () {\n if (!this.primary && !this.secondary) {\n return undefined;\n }\n return {\n primary: this.primary,\n secondary: this.secondary,\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MarketingExternalActivityTopBar.prototype, \"buttonsOptions\", {\n get: function () {\n if (!this.primaryOptions && !this.secondaryOptions) {\n return undefined;\n }\n return {\n primary: this.primaryOptions,\n secondary: this.secondaryOptions,\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MarketingExternalActivityTopBar.prototype, \"options\", {\n get: function () {\n return {\n title: this.title,\n status: this.status,\n saving: this.saving,\n saved: this.saved,\n buttons: this.buttonsOptions,\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MarketingExternalActivityTopBar.prototype, \"payload\", {\n get: function () {\n return __assign(__assign({}, this.options), { buttons: this.buttons, id: this.id });\n },\n enumerable: false,\n configurable: true\n });\n MarketingExternalActivityTopBar.prototype.set = function (options, shouldUpdate) {\n if (shouldUpdate === void 0) { shouldUpdate = true; }\n var mergedOptions = helper_1.getMergedProps(this.options, options);\n var title = mergedOptions.title, buttons = mergedOptions.buttons, saved = mergedOptions.saved, saving = mergedOptions.saving, status = mergedOptions.status;\n this.title = title;\n this.saving = saving;\n this.saved = saved;\n this.status = status;\n this.setPrimaryButton(buttons ? buttons.primary : undefined);\n this.setSecondaryButtons(buttons ? buttons.secondary : undefined);\n if (shouldUpdate) {\n this.dispatch(Action.UPDATE);\n }\n return this;\n };\n MarketingExternalActivityTopBar.prototype.dispatch = function (action) {\n switch (action) {\n case Action.UPDATE:\n this.app.dispatch(update(this.payload));\n break;\n }\n return this;\n };\n MarketingExternalActivityTopBar.prototype.getButton = function (button, subgroups, updateCb) {\n return buttonHelper_1.getSingleButton(this, button, subgroups, updateCb);\n };\n MarketingExternalActivityTopBar.prototype.updatePrimaryButton = function (newPayload) {\n if (!this.primary) {\n return;\n }\n if (helper_1.updateActionFromPayload(this.primary, newPayload)) {\n this.dispatch(Action.UPDATE);\n }\n };\n MarketingExternalActivityTopBar.prototype.updateSecondaryButtons = function (newPayload) {\n if (!this.secondary) {\n return;\n }\n var buttonToUpdate = this.secondary.find(function (action) { return action.id === newPayload.id; });\n if (!buttonToUpdate) {\n return;\n }\n var updated = helper_1.updateActionFromPayload(buttonToUpdate, newPayload);\n if (updated) {\n this.dispatch(Action.UPDATE);\n }\n };\n MarketingExternalActivityTopBar.prototype.setPrimaryButton = function (newOptions) {\n this.primaryOptions = this.getChildButton(newOptions, this.primaryOptions);\n this.primary = this.primaryOptions\n ? this.getButton(this.primaryOptions, MARKETING_ACTIVITY_TOPBAR_BUTTON_PROPS.subgroups, this.updatePrimaryButton)\n : undefined;\n };\n MarketingExternalActivityTopBar.prototype.setSecondaryButtons = function (newOptions) {\n var _this = this;\n var newButtons = newOptions || [];\n var currentButtons = this.secondaryOptions || [];\n this.secondaryOptions = this.getUpdatedChildActions(newButtons, currentButtons);\n this.secondary = this.secondaryOptions\n ? this.secondaryOptions.map(function (action) {\n return _this.getButton(action, MARKETING_ACTIVITY_TOPBAR_BUTTON_PROPS.subgroups, _this.updateSecondaryButtons);\n })\n : undefined;\n };\n MarketingExternalActivityTopBar.prototype.updateSaving = function (saving) {\n this.saving = saving;\n this.dispatch(Action.UPDATE);\n };\n MarketingExternalActivityTopBar.prototype.updateSaved = function (saved) {\n this.saved = saved;\n this.dispatch(Action.UPDATE);\n };\n MarketingExternalActivityTopBar.prototype.updateStatus = function (newPayload) {\n this.status = newPayload;\n this.dispatch(Action.UPDATE);\n };\n MarketingExternalActivityTopBar.prototype.getChildButton = function (newAction, currentAction) {\n var newButtons = newAction ? [newAction] : [];\n var currentButtons = currentAction ? [currentAction] : [];\n var updatedButton = this.getUpdatedChildActions(newButtons, currentButtons);\n return updatedButton ? updatedButton[0] : undefined;\n };\n return MarketingExternalActivityTopBar;\n}(ActionSet_1.ActionSetWithChildren));\nexports.MarketingExternalActivityTopBar = MarketingExternalActivityTopBar;\nfunction create(app, options) {\n return new MarketingExternalActivityTopBar(app, options);\n}\nexports.create = create;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.ChannelMenu = exports.update = exports.Action = void 0;\nvar AppLink_1 = require(\"../../Link/AppLink\");\nvar helper_1 = require(\"../../helper\");\nvar ActionSet_1 = require(\"../../ActionSet\");\nvar types_1 = require(\"../../types\");\nvar SUBGROUPS = ['Channel_Menu'];\nvar Action;\n(function (Action) {\n Action[\"UPDATE\"] = \"APP::MENU::CHANNEL_MENU::UPDATE\";\n Action[\"LINK_UPDATE\"] = \"APP::MENU::CHANNEL_MENU::LINK::UPDATE\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction update(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.Menu,\n type: Action.UPDATE,\n });\n}\nexports.update = update;\nvar ChannelMenu = /** @class */ (function (_super) {\n __extends(ChannelMenu, _super);\n function ChannelMenu(app, options) {\n var _this = _super.call(this, app, 'Channel_Menu', types_1.Group.Menu) || this;\n _this.items = [];\n // Trigger 'update' on creation\n _this.set(options);\n return _this;\n }\n Object.defineProperty(ChannelMenu.prototype, \"options\", {\n get: function () {\n return {\n items: this.itemsOptions,\n active: this.activeOptions,\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ChannelMenu.prototype, \"payload\", {\n get: function () {\n return __assign(__assign({}, this.options), { active: this.active, items: this.items, id: this.id });\n },\n enumerable: false,\n configurable: true\n });\n ChannelMenu.prototype.set = function (options, shouldUpdate) {\n if (shouldUpdate === void 0) { shouldUpdate = true; }\n var mergedOptions = helper_1.getMergedProps(this.options, options);\n var items = mergedOptions.items, active = mergedOptions.active;\n this.setItems(items);\n this.activeOptions = active;\n this.active = active && active.id;\n if (shouldUpdate) {\n this.dispatch(Action.UPDATE);\n }\n return this;\n };\n ChannelMenu.prototype.dispatch = function (action) {\n switch (action) {\n case Action.UPDATE:\n this.app.dispatch(update(this.payload));\n break;\n }\n return this;\n };\n ChannelMenu.prototype.updateItem = function (newPayload) {\n if (!this.items) {\n return;\n }\n var itemToUpdate = this.items.find(function (action) { return action.id === newPayload.id; });\n if (!itemToUpdate) {\n return;\n }\n if (helper_1.updateActionFromPayload(itemToUpdate, newPayload)) {\n this.dispatch(Action.UPDATE);\n }\n };\n ChannelMenu.prototype.setItems = function (newOptions) {\n var _this = this;\n var newItems = newOptions || [];\n var currentItems = this.itemsOptions || [];\n this.itemsOptions = this.getUpdatedChildActions(newItems, currentItems);\n this.items = this.itemsOptions\n ? this.itemsOptions.map(function (action) {\n _this.addChild(action, _this.group, SUBGROUPS);\n _this.subscribeToChild(action, AppLink_1.Action.UPDATE, _this.updateItem);\n return action.payload;\n })\n : [];\n };\n return ChannelMenu;\n}(ActionSet_1.ActionSetWithChildren));\nexports.ChannelMenu = ChannelMenu;\nfunction create(app, options) {\n return new ChannelMenu(app, options);\n}\nexports.create = create;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.NavigationMenu = exports.update = exports.Action = void 0;\nvar AppLink_1 = require(\"../../Link/AppLink\");\nvar helper_1 = require(\"../../helper\");\nvar ActionSet_1 = require(\"../../ActionSet\");\nvar types_1 = require(\"../../types\");\nvar SUBGROUPS = ['Navigation_Menu'];\nvar Action;\n(function (Action) {\n Action[\"UPDATE\"] = \"APP::MENU::NAVIGATION_MENU::UPDATE\";\n Action[\"LINK_UPDATE\"] = \"APP::MENU::NAVIGATION_MENU::LINK::UPDATE\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction update(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.Menu,\n type: Action.UPDATE,\n });\n}\nexports.update = update;\nvar NavigationMenu = /** @class */ (function (_super) {\n __extends(NavigationMenu, _super);\n function NavigationMenu(app, options) {\n var _this = _super.call(this, app, 'Navigation_Menu', types_1.Group.Menu) || this;\n _this.items = [];\n // Trigger 'update' on creation\n _this.set(options);\n return _this;\n }\n Object.defineProperty(NavigationMenu.prototype, \"options\", {\n get: function () {\n return {\n items: this.itemsOptions,\n active: this.activeOptions,\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NavigationMenu.prototype, \"payload\", {\n get: function () {\n return __assign(__assign({}, this.options), { active: this.active, items: this.items, id: this.id });\n },\n enumerable: false,\n configurable: true\n });\n NavigationMenu.prototype.set = function (options, shouldUpdate) {\n if (shouldUpdate === void 0) { shouldUpdate = true; }\n var mergedOptions = helper_1.getMergedProps(this.options, options);\n var items = mergedOptions.items, active = mergedOptions.active;\n this.setItems(items);\n this.activeOptions = active;\n this.active = active && active.id;\n if (shouldUpdate) {\n this.dispatch(Action.UPDATE);\n }\n return this;\n };\n NavigationMenu.prototype.dispatch = function (action) {\n switch (action) {\n case Action.UPDATE:\n this.app.dispatch(update(this.payload));\n break;\n }\n return this;\n };\n NavigationMenu.prototype.updateItem = function (newPayload) {\n if (!this.items) {\n return;\n }\n var itemToUpdate = this.items.find(function (action) { return action.id === newPayload.id; });\n if (!itemToUpdate) {\n return;\n }\n if (helper_1.updateActionFromPayload(itemToUpdate, newPayload)) {\n this.dispatch(Action.UPDATE);\n }\n };\n NavigationMenu.prototype.setItems = function (newOptions) {\n var _this = this;\n var newItems = newOptions || [];\n var currentItems = this.itemsOptions || [];\n this.itemsOptions = this.getUpdatedChildActions(newItems, currentItems);\n this.items = this.itemsOptions\n ? this.itemsOptions.map(function (action) {\n _this.addChild(action, _this.group, SUBGROUPS);\n _this.subscribeToChild(action, AppLink_1.Action.UPDATE, _this.updateItem);\n return action.payload;\n })\n : [];\n };\n return NavigationMenu;\n}(ActionSet_1.ActionSetWithChildren));\nexports.NavigationMenu = NavigationMenu;\nfunction create(app, options) {\n return new NavigationMenu(app, options);\n}\nexports.create = create;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.ModalContent = exports.Action = void 0;\nvar helper_1 = require(\"../../helper\");\nvar ActionSet_1 = require(\"../../ActionSet\");\nvar types_1 = require(\"../../types\");\nvar index_1 = require(\"../index\");\nvar Action;\n(function (Action) {\n Action[\"LOADING\"] = \"LOADING\";\n Action[\"LOADED\"] = \"LOADED\";\n})(Action = exports.Action || (exports.Action = {}));\n/**\n * A set of Actions for updating the modal component\n * @public\n */\nvar ModalContent = /** @class */ (function (_super) {\n __extends(ModalContent, _super);\n function ModalContent(app, options) {\n return _super.call(this, app, types_1.Group.Modal, types_1.Group.Modal, options ? options.id : undefined) || this;\n }\n ModalContent.prototype.loaded = function () {\n this.dispatch(Action.LOADED);\n };\n ModalContent.prototype.loading = function () {\n this.dispatch(Action.LOADING);\n };\n /**\n * @private\n */\n ModalContent.prototype.dispatch = function (action) {\n switch (action) {\n case Action.LOADED:\n this.dispatchModalAction(index_1.Action.UPDATE_CONTENT, { loading: false });\n break;\n case Action.LOADING:\n this.dispatchModalAction(index_1.Action.UPDATE_CONTENT, { loading: true });\n break;\n }\n return this;\n };\n /**\n * @internal\n */\n ModalContent.prototype.dispatchModalAction = function (type, payload) {\n return __awaiter(this, void 0, void 0, function () {\n var updateAction;\n return __generator(this, function (_a) {\n updateAction = helper_1.actionWrapper({\n type: type,\n group: types_1.Group.Modal,\n payload: __assign({}, payload),\n });\n this.app.dispatch(updateAction);\n return [2 /*return*/];\n });\n });\n };\n return ModalContent;\n}(ActionSet_1.ActionSet));\nexports.ModalContent = ModalContent;\n/**\n * @public\n */\nfunction create(app, options) {\n return new ModalContent(app, options);\n}\nexports.create = create;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.ModalIframe = exports.ModalMessage = exports.Modal = exports.isMessageModal = exports.isIframeModal = exports.data = exports.update = exports.clickFooterButton = exports.updateModalSize = exports.closeModal = exports.openModal = exports.Size = exports.Action = void 0;\nvar buttonHelper_1 = require(\"../buttonHelper\");\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\nvar types_1 = require(\"../types\");\nvar Button_1 = require(\"../Button\");\nvar Action;\n(function (Action) {\n Action[\"OPEN\"] = \"APP::MODAL::OPEN\";\n Action[\"CLOSE\"] = \"APP::MODAL::CLOSE\";\n Action[\"UPDATE\"] = \"APP::MODAL::UPDATE\";\n Action[\"UPDATE_CONTENT\"] = \"APP::MODAL::CONTENT::UPDATE\";\n Action[\"FOOTER_BUTTON_CLICK\"] = \"APP::MODAL::FOOTER::BUTTON::CLICK\";\n Action[\"FOOTER_BUTTON_UPDATE\"] = \"APP::MODAL::FOOTER::BUTTON::UPDATE\";\n Action[\"UPDATE_SIZE\"] = \"APP::MODAL::UPDATE_SIZE\";\n Action[\"DATA\"] = \"APP::MODAL::DATA\";\n})(Action = exports.Action || (exports.Action = {}));\n/**\n * Options available to the Modal `size` param\n * @public\n */\nvar Size;\n(function (Size) {\n /** Small modal size */\n Size[\"Small\"] = \"small\";\n /** Medium modal size */\n Size[\"Medium\"] = \"medium\";\n /** Large modal size (wider than medium) */\n Size[\"Large\"] = \"large\";\n /** @deprecated as of 1.6.5 */\n Size[\"Full\"] = \"full\";\n /**\n * @deprecated as of 1.12.x\n * @remarks\n * This option has been removed in favour of the `setUpModalAutoSizing` utility.\n * See `app-bridge-utils` package for more information\n */\n Size[\"Auto\"] = \"auto\";\n})(Size = exports.Size || (exports.Size = {}));\nvar FOOTER_BUTTON_PROPS = {\n group: types_1.Group.Modal,\n subgroups: ['Footer'],\n type: types_1.ComponentType.Button,\n};\nfunction openModal(modalPayload) {\n return helper_1.actionWrapper({\n group: types_1.Group.Modal,\n payload: modalPayload,\n type: Action.OPEN,\n });\n}\nexports.openModal = openModal;\nfunction closeModal(modalClosePayload) {\n return helper_1.actionWrapper({\n group: types_1.Group.Modal,\n payload: modalClosePayload,\n type: Action.CLOSE,\n });\n}\nexports.closeModal = closeModal;\n/**\n * Action creator for modal update size action\n * @internal\n */\nfunction updateModalSize(updateSizePayload) {\n return helper_1.actionWrapper({\n group: types_1.Group.Modal,\n payload: updateSizePayload,\n type: Action.UPDATE_SIZE,\n });\n}\nexports.updateModalSize = updateModalSize;\nfunction clickFooterButton(id, payload) {\n var component = __assign({ id: id }, FOOTER_BUTTON_PROPS);\n return Button_1.clickButton(types_1.Group.Modal, component, payload);\n}\nexports.clickFooterButton = clickFooterButton;\nfunction update(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.Modal,\n type: Action.UPDATE,\n });\n}\nexports.update = update;\nfunction data(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.Modal,\n type: Action.DATA,\n });\n}\nexports.data = data;\nfunction isIframeModal(options) {\n return (typeof options.url === 'string' ||\n typeof options.path === 'string');\n}\nexports.isIframeModal = isIframeModal;\nfunction isMessageModal(options) {\n return typeof options.message === 'string';\n}\nexports.isMessageModal = isMessageModal;\nvar Modal = /** @class */ (function (_super) {\n __extends(Modal, _super);\n function Modal() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.size = Size.Small;\n return _this;\n }\n Object.defineProperty(Modal.prototype, \"footer\", {\n get: function () {\n if (!this.footerPrimary && !this.footerSecondary) {\n return undefined;\n }\n return {\n buttons: {\n primary: this.footerPrimary,\n secondary: this.footerSecondary,\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Modal.prototype, \"footerOptions\", {\n get: function () {\n if (!this.footerPrimaryOptions && !this.footerSecondaryOptions) {\n return undefined;\n }\n return {\n buttons: {\n primary: this.footerPrimaryOptions,\n secondary: this.footerSecondaryOptions,\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Modal.prototype.close = function () {\n this.app.dispatch(closeModal({ id: this.id }));\n };\n Modal.prototype.setFooterPrimaryButton = function (newOptions, updateCb) {\n var _this = this;\n var subgroups = FOOTER_BUTTON_PROPS.subgroups;\n this.footerPrimaryOptions = this.getChildButton(newOptions, this.footerPrimaryOptions);\n this.footerPrimary = this.footerPrimaryOptions\n ? buttonHelper_1.getSingleButton(this, this.footerPrimaryOptions, subgroups, function (newPayload) {\n _this.updatePrimaryFooterButton(newPayload, updateCb);\n })\n : undefined;\n };\n Modal.prototype.setFooterSecondaryButtons = function (newOptions, updateCb) {\n var _this = this;\n var subgroups = FOOTER_BUTTON_PROPS.subgroups;\n var newButtons = newOptions || [];\n var currentOptions = (this.footerOptions && this.footerOptions.buttons.secondary) || [];\n this.footerSecondaryOptions = this.getUpdatedChildActions(newButtons, currentOptions);\n this.footerSecondary = this.footerSecondaryOptions\n ? this.footerSecondaryOptions.map(function (action) {\n return buttonHelper_1.getSingleButton(_this, action, subgroups, function (newPayload) {\n _this.updateSecondaryFooterButton(newPayload, updateCb);\n });\n })\n : undefined;\n };\n Modal.prototype.getChildButton = function (newAction, currentAction) {\n var newButtons = newAction ? [newAction] : [];\n var currentButtons = currentAction ? [currentAction] : [];\n var updatedButton = this.getUpdatedChildActions(newButtons, currentButtons);\n return updatedButton ? updatedButton[0] : undefined;\n };\n Modal.prototype.updatePrimaryFooterButton = function (newPayload, updateCb) {\n if (!this.footer || !this.footer.buttons.primary) {\n return;\n }\n if (helper_1.updateActionFromPayload(this.footer.buttons.primary, newPayload)) {\n updateCb();\n }\n };\n Modal.prototype.updateSecondaryFooterButton = function (newPayload, updateCb) {\n if (!this.footer || !this.footer.buttons || !this.footer.buttons.secondary) {\n return;\n }\n var updated;\n for (var _i = 0, _a = this.footer.buttons.secondary; _i < _a.length; _i++) {\n var action = _a[_i];\n updated = helper_1.updateActionFromPayload(action, newPayload);\n if (updated) {\n break;\n }\n }\n if (updated) {\n updateCb();\n }\n };\n return Modal;\n}(ActionSet_1.ActionSetWithChildren));\nexports.Modal = Modal;\nvar ModalMessage = /** @class */ (function (_super) {\n __extends(ModalMessage, _super);\n function ModalMessage(app, options) {\n var _this = _super.call(this, app, types_1.Group.Modal, types_1.Group.Modal) || this;\n _this.set(options, false);\n return _this;\n }\n Object.defineProperty(ModalMessage.prototype, \"payload\", {\n get: function () {\n return __assign(__assign({}, this.options), { footer: this.footer, id: this.id });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ModalMessage.prototype, \"options\", {\n get: function () {\n return {\n footer: this.footerOptions,\n message: this.message,\n size: this.size,\n title: this.title,\n };\n },\n enumerable: false,\n configurable: true\n });\n ModalMessage.prototype.set = function (options, shouldUpdate) {\n var _this = this;\n if (shouldUpdate === void 0) { shouldUpdate = true; }\n var mergedOptions = helper_1.getMergedProps(this.options, options);\n var title = mergedOptions.title, footer = mergedOptions.footer, message = mergedOptions.message, size = mergedOptions.size;\n this.title = title;\n this.message = message;\n this.size = size;\n this.setFooterPrimaryButton(footer ? footer.buttons.primary : undefined, function () {\n _this.dispatch(Action.UPDATE);\n });\n this.setFooterSecondaryButtons(footer ? footer.buttons.secondary : undefined, function () {\n _this.dispatch(Action.UPDATE);\n });\n if (shouldUpdate) {\n this.dispatch(Action.UPDATE);\n }\n return this;\n };\n ModalMessage.prototype.dispatch = function (action) {\n switch (action) {\n case Action.OPEN:\n this.app.dispatch(openModal(this.payload));\n break;\n case Action.CLOSE:\n this.close();\n break;\n case Action.UPDATE:\n this.app.dispatch(update(this.payload));\n break;\n }\n return this;\n };\n return ModalMessage;\n}(Modal));\nexports.ModalMessage = ModalMessage;\nvar ModalIframe = /** @class */ (function (_super) {\n __extends(ModalIframe, _super);\n function ModalIframe(app, options) {\n var _this = _super.call(this, app, types_1.Group.Modal, types_1.Group.Modal) || this;\n _this.set(options, false);\n return _this;\n }\n Object.defineProperty(ModalIframe.prototype, \"payload\", {\n get: function () {\n return __assign(__assign({}, this.options), { footer: this.footer, id: this.id });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ModalIframe.prototype, \"options\", {\n get: function () {\n return {\n footer: this.footerOptions,\n path: this.path,\n size: this.size,\n title: this.title,\n url: this.url,\n loading: this.loading,\n };\n },\n enumerable: false,\n configurable: true\n });\n ModalIframe.prototype.set = function (options, shouldUpdate) {\n var _this = this;\n if (shouldUpdate === void 0) { shouldUpdate = true; }\n var mergedOptions = helper_1.getMergedProps(this.options, options);\n var title = mergedOptions.title, footer = mergedOptions.footer, path = mergedOptions.path, url = mergedOptions.url, size = mergedOptions.size, loading = mergedOptions.loading;\n this.title = title;\n this.url = url;\n this.path = path;\n this.size = size;\n this.loading = loading;\n this.setFooterPrimaryButton(footer ? footer.buttons.primary : undefined, function () {\n _this.dispatch(Action.UPDATE);\n });\n this.setFooterSecondaryButtons(footer ? footer.buttons.secondary : undefined, function () {\n _this.dispatch(Action.UPDATE);\n });\n if (shouldUpdate) {\n this.dispatch(Action.UPDATE);\n }\n return this;\n };\n ModalIframe.prototype.dispatch = function (action, payload) {\n switch (action) {\n case Action.OPEN:\n this.app.dispatch(openModal(this.payload));\n break;\n case Action.CLOSE:\n this.close();\n break;\n case Action.UPDATE:\n this.app.dispatch(update(this.payload));\n break;\n case Action.DATA:\n this.app.dispatch(data(payload || {}));\n break;\n }\n return this;\n };\n return ModalIframe;\n}(Modal));\nexports.ModalIframe = ModalIframe;\nvar create = function (app, options) {\n if (isIframeModal(options)) {\n return new ModalIframe(app, options);\n }\n return new ModalMessage(app, options);\n};\nexports.create = create;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.History = exports.replace = exports.push = exports.Action = void 0;\nvar helper_1 = require(\"../../helper\");\nvar ActionSet_1 = require(\"../../ActionSet\");\nvar types_1 = require(\"../../types\");\nvar Action;\n(function (Action) {\n Action[\"PUSH\"] = \"APP::NAVIGATION::HISTORY::PUSH\";\n Action[\"REPLACE\"] = \"APP::NAVIGATION::HISTORY::REPLACE\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction push(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.Navigation,\n type: Action.PUSH,\n });\n}\nexports.push = push;\nfunction replace(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.Navigation,\n type: Action.REPLACE,\n });\n}\nexports.replace = replace;\nvar History = /** @class */ (function (_super) {\n __extends(History, _super);\n function History(app) {\n return _super.call(this, app, 'History', types_1.Group.Navigation) || this;\n }\n Object.defineProperty(History.prototype, \"payload\", {\n get: function () {\n return { id: this.id };\n },\n enumerable: false,\n configurable: true\n });\n History.prototype.dispatch = function (type, path) {\n var payload = __assign(__assign({}, this.payload), { path: path });\n switch (type) {\n case Action.PUSH:\n this.app.dispatch(push(payload));\n break;\n case Action.REPLACE:\n this.app.dispatch(replace(payload));\n break;\n }\n return this;\n };\n return History;\n}(ActionSet_1.ActionSet));\nexports.History = History;\nfunction create(app) {\n return new History(app);\n}\nexports.create = create;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.Redirect = exports.isAdminSection = exports.isRemotePayload = exports.isAdminSectionPayload = exports.isAdminPathPayload = exports.isAppPayload = exports.getRelativePath = exports.normalizeUrl = exports.getPathWithSearchAndHash = exports.toDestination = exports.toApp = exports.toRemote = exports.toAdminSection = exports.toAdminPath = exports.isProductVariantCreateResourcePayload = exports.isProductVariantResourcePayload = exports.isCreateResourcePayload = exports.isResourcePayload = exports.ResourceType = exports.Action = void 0;\nvar helper_1 = require(\"../../helper\");\nvar ActionSet_1 = require(\"../../ActionSet\");\nvar types_1 = require(\"../../types\");\nvar Action;\n(function (Action) {\n Action[\"ADMIN_SECTION\"] = \"APP::NAVIGATION::REDIRECT::ADMIN::SECTION\";\n Action[\"ADMIN_PATH\"] = \"APP::NAVIGATION::REDIRECT::ADMIN::PATH\";\n Action[\"REMOTE\"] = \"APP::NAVIGATION::REDIRECT::REMOTE\";\n Action[\"APP\"] = \"APP::NAVIGATION::REDIRECT::APP\";\n})(Action = exports.Action || (exports.Action = {}));\nvar ResourceType;\n(function (ResourceType) {\n ResourceType[\"Product\"] = \"products\";\n ResourceType[\"Collection\"] = \"collections\";\n ResourceType[\"Order\"] = \"orders\";\n ResourceType[\"Customer\"] = \"customers\";\n ResourceType[\"Discount\"] = \"discounts\";\n})(ResourceType = exports.ResourceType || (exports.ResourceType = {}));\nfunction isResourcePayload(resource) {\n // tslint:disable-next-line:no-boolean-literal-compare\n return typeof resource.id === 'string';\n}\nexports.isResourcePayload = isResourcePayload;\nfunction isCreateResourcePayload(resource) {\n // tslint:disable-next-line:no-boolean-literal-compare\n return resource.create === true;\n}\nexports.isCreateResourcePayload = isCreateResourcePayload;\nfunction isProductVariantResourcePayload(resource) {\n var castResource = resource;\n // tslint:disable-next-line:no-boolean-literal-compare\n return castResource.id !== undefined && castResource.variant !== undefined;\n}\nexports.isProductVariantResourcePayload = isProductVariantResourcePayload;\nfunction isProductVariantCreateResourcePayload(resource) {\n if (!isProductVariantResourcePayload(resource)) {\n return false;\n }\n return isCreateResourcePayload(resource.variant);\n}\nexports.isProductVariantCreateResourcePayload = isProductVariantCreateResourcePayload;\nfunction toAdminPath(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.Navigation,\n type: Action.ADMIN_PATH,\n });\n}\nexports.toAdminPath = toAdminPath;\nfunction toAdminSection(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.Navigation,\n type: Action.ADMIN_SECTION,\n });\n}\nexports.toAdminSection = toAdminSection;\nfunction toRemote(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.Navigation,\n type: Action.REMOTE,\n });\n}\nexports.toRemote = toRemote;\nfunction toApp(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.Navigation,\n type: Action.APP,\n });\n}\nexports.toApp = toApp;\nfunction toDestination(action, payload, id) {\n switch (action) {\n case Action.APP: {\n var appPayload = isAppPayload(payload) ? payload : { path: payload };\n return toApp(__assign({ id: id }, appPayload));\n }\n case Action.ADMIN_PATH: {\n var adminPathPayload = isAdminPathPayload(payload) ? payload : { path: payload };\n return toAdminPath(__assign({ id: id }, adminPathPayload));\n }\n case Action.ADMIN_SECTION: {\n var adminSectionPayload = isAdminSectionPayload(payload)\n ? payload\n : { section: payload };\n return toAdminSection(__assign({ id: id }, adminSectionPayload));\n }\n case Action.REMOTE: {\n var remotePayload = isRemotePayload(payload) ? payload : { url: payload };\n return toRemote(__assign({ id: id }, remotePayload));\n }\n }\n}\nexports.toDestination = toDestination;\nfunction getPathWithSearchAndHash(_a) {\n var pathname = _a.pathname, search = _a.search, hash = _a.hash;\n return \"\" + pathname + (search || '') + (hash || '');\n}\nexports.getPathWithSearchAndHash = getPathWithSearchAndHash;\nfunction normalizeUrl(to) {\n if (to instanceof URL) {\n return to.toString();\n }\n if (typeof to === 'string') {\n return to;\n }\n return getRelativePath(to);\n}\nexports.normalizeUrl = normalizeUrl;\nfunction getRelativePath(to) {\n if (typeof to === 'string') {\n if (to.startsWith('/')) {\n return to;\n }\n return getPathWithSearchAndHash(new URL(to));\n }\n var search = to.search instanceof URLSearchParams ? to.search.toString() : to.search;\n return getPathWithSearchAndHash(__assign(__assign({}, to), { search: search }));\n}\nexports.getRelativePath = getRelativePath;\nfunction isAppPayload(payload) {\n return typeof payload === 'object' && Object.prototype.hasOwnProperty.call(payload, 'path');\n}\nexports.isAppPayload = isAppPayload;\nfunction isAdminPathPayload(payload) {\n return typeof payload === 'object' && Object.prototype.hasOwnProperty.call(payload, 'path');\n}\nexports.isAdminPathPayload = isAdminPathPayload;\nfunction isAdminSectionPayload(payload) {\n return (typeof payload === 'object' &&\n typeof payload.section === 'object' &&\n Object.prototype.hasOwnProperty.call(payload.section, 'name'));\n}\nexports.isAdminSectionPayload = isAdminSectionPayload;\nfunction isRemotePayload(payload) {\n return typeof payload === 'object' && Object.prototype.hasOwnProperty.call(payload, 'url');\n}\nexports.isRemotePayload = isRemotePayload;\nfunction isAdminSection(to) {\n return typeof to === 'object' && typeof (to === null || to === void 0 ? void 0 : to.name) === 'string';\n}\nexports.isAdminSection = isAdminSection;\nvar Redirect = /** @class */ (function (_super) {\n __extends(Redirect, _super);\n function Redirect(app) {\n return _super.call(this, app, 'Redirect', types_1.Group.Navigation) || this;\n }\n Object.defineProperty(Redirect.prototype, \"payload\", {\n get: function () {\n return { id: this.id };\n },\n enumerable: false,\n configurable: true\n });\n Redirect.prototype.dispatch = function (action, payload) {\n var redirectAction = toDestination(action, payload, this.payload.id);\n this.app.dispatch(redirectAction);\n return this;\n };\n return Redirect;\n}(ActionSet_1.ActionSet));\nexports.Redirect = Redirect;\nfunction create(app) {\n return new Redirect(app);\n}\nexports.create = create;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fullPageLoad = exports.skeletonPageLoad = exports.Action = void 0;\nvar types_1 = require(\"../types\");\nvar helper_1 = require(\"../helper\");\nvar Action;\n(function (Action) {\n Action[\"SKELETON_PAGE_LOAD\"] = \"APP::PERFORMANCE::SKELETON_PAGE_LOAD\";\n Action[\"FULL_PAGE_LOAD\"] = \"APP::PERFORMANCE::FULL_PAGE_LOAD\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction skeletonPageLoad() {\n return helper_1.actionWrapper({\n group: types_1.Group.Performance,\n type: Action.SKELETON_PAGE_LOAD,\n });\n}\nexports.skeletonPageLoad = skeletonPageLoad;\nfunction fullPageLoad() {\n return helper_1.actionWrapper({\n group: types_1.Group.Performance,\n type: Action.FULL_PAGE_LOAD,\n });\n}\nexports.fullPageLoad = fullPageLoad;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.unstable_Picker = exports.loadMore = exports.search = exports.update = exports.cancel = exports.open = exports.select = exports.ALL_RESOURCE_VERTICAL_ALIGNMENT = exports.ALL_MEDIA_KINDS = exports.ALL_BADGE_STATUSES = exports.ALL_BADGE_PROGRESSES = exports.Action = void 0;\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\nvar types_1 = require(\"../types\");\nvar Action;\n(function (Action) {\n Action[\"OPEN\"] = \"APP::PICKER::OPEN\";\n Action[\"SELECT\"] = \"APP::PICKER::SELECT\";\n Action[\"UPDATE\"] = \"APP::PICKER::UPDATE\";\n Action[\"CANCEL\"] = \"APP::PICKER::CANCEL\";\n Action[\"SEARCH\"] = \"APP::PICKER::SEARCH\";\n Action[\"LOAD_MORE\"] = \"APP::PICKER::LOAD_MORE\";\n})(Action = exports.Action || (exports.Action = {}));\n/**\n * To be used on validator as matchEnum(...). Make sure as new values are added to update\n * the items below\n *\n * Note: Intentionally not using an `enum type` directly as this would cause a dependency\n * of the same enum on the consumer API rather than just the string values.\n */\nexports.ALL_BADGE_PROGRESSES = [\n 'incomplete',\n 'partiallyComplete',\n 'complete',\n];\nexports.ALL_BADGE_STATUSES = [\n 'success',\n 'info',\n 'attention',\n 'critical',\n 'warning',\n 'new',\n];\nexports.ALL_MEDIA_KINDS = ['Avatar', 'Thumbnail'];\nexports.ALL_RESOURCE_VERTICAL_ALIGNMENT = [\n 'leading',\n 'trailing',\n 'center',\n];\nfunction select(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.unstable_Picker,\n type: Action.SELECT,\n });\n}\nexports.select = select;\nfunction open(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.unstable_Picker,\n type: Action.OPEN,\n });\n}\nexports.open = open;\nfunction cancel(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.unstable_Picker,\n type: Action.CANCEL,\n });\n}\nexports.cancel = cancel;\nfunction update(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.unstable_Picker,\n type: Action.UPDATE,\n });\n}\nexports.update = update;\nfunction search(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.unstable_Picker,\n type: Action.SEARCH,\n });\n}\nexports.search = search;\nfunction loadMore(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.unstable_Picker,\n type: Action.LOAD_MORE,\n });\n}\nexports.loadMore = loadMore;\n/**\n * @unstable This API may be updated without warning in the future\n */\nvar unstable_Picker = /** @class */ (function (_super) {\n __extends(unstable_Picker, _super);\n function unstable_Picker(app, options) {\n var _this = _super.call(this, app, types_1.Group.unstable_Picker, types_1.Group.unstable_Picker) || this;\n _this.items = [];\n _this.selectedItems = [];\n _this.set(options, false);\n return _this;\n }\n Object.defineProperty(unstable_Picker.prototype, \"payload\", {\n get: function () {\n return __assign(__assign({}, this.options), { id: this.id });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(unstable_Picker.prototype, \"options\", {\n get: function () {\n return {\n items: this.items,\n maxSelectable: this.maxSelectable,\n selectedItems: this.selectedItems,\n title: this.title,\n loading: this.loading,\n searchQuery: this.searchQuery,\n searchQueryPlaceholder: this.searchQueryPlaceholder,\n primaryActionLabel: this.primaryActionLabel,\n secondaryActionLabel: this.secondaryActionLabel,\n emptySearchLabel: this.emptySearchLabel,\n canLoadMore: this.canLoadMore,\n loadingMore: this.loadingMore,\n verticalAlignment: this.verticalAlignment,\n };\n },\n enumerable: false,\n configurable: true\n });\n unstable_Picker.prototype.set = function (options, shouldUpdate) {\n if (shouldUpdate === void 0) { shouldUpdate = true; }\n var mergedOptions = helper_1.getMergedProps(this.options, options);\n var _a = mergedOptions.selectedItems, selectedItems = _a === void 0 ? [] : _a, _b = mergedOptions.maxSelectable, maxSelectable = _b === void 0 ? 0 : _b, _c = mergedOptions.items, items = _c === void 0 ? [] : _c, _d = mergedOptions.loading, loading = _d === void 0 ? false : _d, title = mergedOptions.title, searchQuery = mergedOptions.searchQuery, searchQueryPlaceholder = mergedOptions.searchQueryPlaceholder, primaryActionLabel = mergedOptions.primaryActionLabel, secondaryActionLabel = mergedOptions.secondaryActionLabel, emptySearchLabel = mergedOptions.emptySearchLabel, _e = mergedOptions.canLoadMore, canLoadMore = _e === void 0 ? false : _e, _f = mergedOptions.loadingMore, loadingMore = _f === void 0 ? false : _f, verticalAlignment = mergedOptions.verticalAlignment;\n this.title = title;\n this.items = items;\n this.selectedItems = selectedItems;\n this.maxSelectable = maxSelectable;\n this.loading = loading;\n this.searchQuery = searchQuery;\n this.searchQueryPlaceholder = searchQueryPlaceholder;\n this.primaryActionLabel = primaryActionLabel;\n this.secondaryActionLabel = secondaryActionLabel;\n this.emptySearchLabel = emptySearchLabel;\n this.canLoadMore = canLoadMore;\n this.loadingMore = loadingMore;\n this.verticalAlignment = verticalAlignment;\n if (shouldUpdate) {\n this.update();\n }\n return this;\n };\n unstable_Picker.prototype.dispatch = function (action, payload) {\n if (action === Action.OPEN) {\n this.open();\n }\n else if (action === Action.UPDATE) {\n this.update();\n }\n else if (action === Action.CANCEL) {\n this.cancel();\n }\n else if (action === Action.SELECT) {\n this.selectedItems = (payload === null || payload === void 0 ? void 0 : payload.selectedItems) || [];\n this.app.dispatch(select({ id: this.id, selectedItems: this.selectedItems }));\n }\n else if (action === Action.SEARCH) {\n this.searchQuery = (payload === null || payload === void 0 ? void 0 : payload.searchQuery) || '';\n this.app.dispatch(search({ id: this.id, searchQuery: this.searchQuery }));\n }\n else if (action === Action.LOAD_MORE) {\n this.loadMore();\n }\n return this;\n };\n unstable_Picker.prototype.update = function () {\n this.app.dispatch(update(this.payload));\n };\n unstable_Picker.prototype.open = function () {\n this.app.dispatch(open(this.payload));\n };\n unstable_Picker.prototype.cancel = function () {\n this.app.dispatch(cancel({ id: this.id }));\n };\n unstable_Picker.prototype.loadMore = function () {\n this.app.dispatch(loadMore(this.payload));\n };\n return unstable_Picker;\n}(ActionSet_1.ActionSet));\nexports.unstable_Picker = unstable_Picker;\nvar create = function (app, options) {\n // eslint-disable-next-line @babel/new-cap\n return new unstable_Picker(app, options);\n};\nexports.create = create;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.Pos = exports.close = exports.Action = void 0;\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\nvar types_1 = require(\"../types\");\n/**\n * Pos action type enum\n * @remarks includes the action prefix and group\n *\n */\nvar Action;\n(function (Action) {\n Action[\"CLOSE\"] = \"APP::POS::CLOSE\";\n Action[\"LOCATION_UPDATE\"] = \"APP::POS::LOCATION::UPDATE\";\n Action[\"USER_UPDATE\"] = \"APP::POS::USER::UPDATE\";\n Action[\"DEVICE_UPDATE\"] = \"APP::POS::DEVICE::UPDATE\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction close() {\n return helper_1.actionWrapper({\n group: types_1.Group.Pos,\n type: Action.CLOSE,\n });\n}\nexports.close = close;\nvar Pos = /** @class */ (function (_super) {\n __extends(Pos, _super);\n function Pos(app) {\n return _super.call(this, app, types_1.Group.Pos, types_1.Group.Pos) || this;\n }\n Pos.prototype.dispatch = function (action) {\n switch (action) {\n case Action.CLOSE:\n this.app.dispatch(close());\n break;\n }\n return this;\n };\n return Pos;\n}(ActionSet_1.ActionSet));\nexports.Pos = Pos;\nfunction create(app) {\n return new Pos(app);\n}\nexports.create = create;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.app = exports.Action = void 0;\nvar helper_1 = require(\"../helper\");\nvar types_1 = require(\"../types\");\nvar Action;\n(function (Action) {\n Action[\"APP\"] = \"APP::PRINT::APP\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction app() {\n return helper_1.actionWrapper({\n group: types_1.Group.Print,\n type: Action.APP,\n });\n}\nexports.app = app;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.ResourcePicker = exports.update = exports.close = exports.cancel = exports.open = exports.select = exports.ActionVerb = exports.ResourceType = exports.ProductStatus = exports.ProductVariantInventoryManagement = exports.ProductVariantInventoryPolicy = exports.WeightUnit = exports.FulfillmentServiceType = exports.CollectionSortOrder = exports.Action = void 0;\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\nvar types_1 = require(\"../types\");\nvar Action;\n(function (Action) {\n Action[\"OPEN\"] = \"APP::RESOURCE_PICKER::OPEN\";\n Action[\"SELECT\"] = \"APP::RESOURCE_PICKER::SELECT\";\n // Deprecated in 0.5.0 use 'APP::RESOURCE_PICKER::CANCEL' instead\n Action[\"CLOSE\"] = \"APP::RESOURCE_PICKER::CLOSE\";\n Action[\"UPDATE\"] = \"APP::RESOURCE_PICKER::UPDATE\";\n Action[\"CANCEL\"] = \"APP::RESOURCE_PICKER::CANCEL\";\n})(Action = exports.Action || (exports.Action = {}));\nvar CollectionSortOrder;\n(function (CollectionSortOrder) {\n CollectionSortOrder[\"Manual\"] = \"MANUAL\";\n CollectionSortOrder[\"BestSelling\"] = \"BEST_SELLING\";\n CollectionSortOrder[\"AlphaAsc\"] = \"ALPHA_ASC\";\n CollectionSortOrder[\"AlphaDesc\"] = \"ALPHA_DESC\";\n CollectionSortOrder[\"PriceDesc\"] = \"PRICE_DESC\";\n CollectionSortOrder[\"PriceAsc\"] = \"PRICE_ASC\";\n CollectionSortOrder[\"CreatedDesc\"] = \"CREATED_DESC\";\n CollectionSortOrder[\"Created\"] = \"CREATED\";\n})(CollectionSortOrder = exports.CollectionSortOrder || (exports.CollectionSortOrder = {}));\nvar FulfillmentServiceType;\n(function (FulfillmentServiceType) {\n FulfillmentServiceType[\"GiftCard\"] = \"GIFT_CARD\";\n FulfillmentServiceType[\"Manual\"] = \"MANUAL\";\n FulfillmentServiceType[\"ThirdParty\"] = \"THIRD_PARTY\";\n})(FulfillmentServiceType = exports.FulfillmentServiceType || (exports.FulfillmentServiceType = {}));\nvar WeightUnit;\n(function (WeightUnit) {\n WeightUnit[\"Kilograms\"] = \"KILOGRAMS\";\n WeightUnit[\"Grams\"] = \"GRAMS\";\n WeightUnit[\"Pounds\"] = \"POUNDS\";\n WeightUnit[\"Ounces\"] = \"OUNCES\";\n})(WeightUnit = exports.WeightUnit || (exports.WeightUnit = {}));\nvar ProductVariantInventoryPolicy;\n(function (ProductVariantInventoryPolicy) {\n ProductVariantInventoryPolicy[\"Deny\"] = \"DENY\";\n ProductVariantInventoryPolicy[\"Continue\"] = \"CONTINUE\";\n})(ProductVariantInventoryPolicy = exports.ProductVariantInventoryPolicy || (exports.ProductVariantInventoryPolicy = {}));\nvar ProductVariantInventoryManagement;\n(function (ProductVariantInventoryManagement) {\n ProductVariantInventoryManagement[\"Shopify\"] = \"SHOPIFY\";\n ProductVariantInventoryManagement[\"NotManaged\"] = \"NOT_MANAGED\";\n ProductVariantInventoryManagement[\"FulfillmentService\"] = \"FULFILLMENT_SERVICE\";\n})(ProductVariantInventoryManagement = exports.ProductVariantInventoryManagement || (exports.ProductVariantInventoryManagement = {}));\nvar ProductStatus;\n(function (ProductStatus) {\n ProductStatus[\"Active\"] = \"ACTIVE\";\n ProductStatus[\"Archived\"] = \"ARCHIVED\";\n ProductStatus[\"Draft\"] = \"DRAFT\";\n})(ProductStatus = exports.ProductStatus || (exports.ProductStatus = {}));\nvar ResourceType;\n(function (ResourceType) {\n ResourceType[\"Product\"] = \"product\";\n ResourceType[\"ProductVariant\"] = \"variant\";\n ResourceType[\"Collection\"] = \"collection\";\n})(ResourceType = exports.ResourceType || (exports.ResourceType = {}));\nvar ActionVerb;\n(function (ActionVerb) {\n ActionVerb[\"Add\"] = \"add\";\n ActionVerb[\"Select\"] = \"select\";\n})(ActionVerb = exports.ActionVerb || (exports.ActionVerb = {}));\nfunction select(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.ResourcePicker,\n type: Action.SELECT,\n });\n}\nexports.select = select;\nfunction open(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.ResourcePicker,\n type: Action.OPEN,\n });\n}\nexports.open = open;\nfunction cancel(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.ResourcePicker,\n type: Action.CANCEL,\n });\n}\nexports.cancel = cancel;\nfunction close(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.ResourcePicker,\n type: Action.CANCEL,\n });\n}\nexports.close = close;\nfunction update(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.ResourcePicker,\n type: Action.UPDATE,\n });\n}\nexports.update = update;\nvar ResourcePicker = /** @class */ (function (_super) {\n __extends(ResourcePicker, _super);\n function ResourcePicker(app, options, resourceType) {\n var _this = _super.call(this, app, types_1.Group.ResourcePicker, types_1.Group.ResourcePicker) || this;\n _this.initialSelectionIds = [];\n _this.selection = [];\n _this.resourceType = resourceType;\n _this.set(options, false);\n return _this;\n }\n Object.defineProperty(ResourcePicker.prototype, \"payload\", {\n get: function () {\n return __assign(__assign({}, this.options), { id: this.id, resourceType: this.resourceType });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ResourcePicker.prototype, \"options\", {\n get: function () {\n var options = {\n initialQuery: this.initialQuery,\n selectMultiple: this.selectMultiple,\n initialSelectionIds: this.initialSelectionIds,\n showHidden: this.showHidden,\n actionVerb: this.actionVerb,\n };\n if (this.resourceType === ResourceType.Product) {\n var productOptions = __assign(__assign({}, options), { showVariants: this.showVariants, showDraft: this.showDraft, showArchived: this.showArchived, showDraftBadge: this.showDraftBadge, showArchivedBadge: this.showArchivedBadge });\n return productOptions;\n }\n return options;\n },\n enumerable: false,\n configurable: true\n });\n ResourcePicker.prototype.set = function (options, shouldUpdate) {\n if (shouldUpdate === void 0) { shouldUpdate = true; }\n var mergedOptions = helper_1.getMergedProps(this.options, options);\n var initialQuery = mergedOptions.initialQuery, _a = mergedOptions.initialSelectionIds, initialSelectionIds = _a === void 0 ? [] : _a, _b = mergedOptions.showHidden, showHidden = _b === void 0 ? true : _b, _c = mergedOptions.showVariants, showVariants = _c === void 0 ? true : _c, _d = mergedOptions.showDraft, showDraft = _d === void 0 ? true : _d, _e = mergedOptions.showArchived, showArchived = _e === void 0 ? true : _e, _f = mergedOptions.showDraftBadge, showDraftBadge = _f === void 0 ? false : _f, _g = mergedOptions.showArchivedBadge, showArchivedBadge = _g === void 0 ? false : _g, _h = mergedOptions.selectMultiple, selectMultiple = _h === void 0 ? true : _h, _j = mergedOptions.actionVerb, actionVerb = _j === void 0 ? ActionVerb.Add : _j;\n this.initialQuery = initialQuery;\n this.initialSelectionIds = initialSelectionIds;\n this.showHidden = showHidden;\n this.showVariants = showVariants;\n this.showDraft = showDraft;\n this.showArchived = showArchived;\n this.showDraftBadge = showDraftBadge;\n this.showArchivedBadge = showArchivedBadge;\n this.selectMultiple = selectMultiple;\n this.actionVerb = actionVerb;\n if (shouldUpdate) {\n this.update();\n }\n return this;\n };\n ResourcePicker.prototype.dispatch = function (action, selection) {\n if (action === Action.OPEN) {\n this.open();\n }\n else if (action === Action.UPDATE) {\n this.update();\n }\n else if (action === Action.CLOSE || action === Action.CANCEL) {\n this.cancel();\n }\n else if (action === Action.SELECT) {\n this.selection = selection;\n this.app.dispatch(select({ id: this.id, selection: this.selection }));\n }\n return this;\n };\n ResourcePicker.prototype.update = function () {\n this.app.dispatch(update(this.payload));\n };\n ResourcePicker.prototype.open = function () {\n this.app.dispatch(open(this.payload));\n };\n ResourcePicker.prototype.cancel = function () {\n this.app.dispatch(cancel({ id: this.id }));\n };\n ResourcePicker.prototype.close = function () {\n this.cancel();\n };\n return ResourcePicker;\n}(ActionSet_1.ActionSet));\nexports.ResourcePicker = ResourcePicker;\nvar create = function (app, baseOptions) {\n var resourceType = baseOptions.resourceType, _a = baseOptions.options, options = _a === void 0 ? {} : _a;\n return new ResourcePicker(app, options, resourceType);\n};\nexports.create = create;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.capture = exports.openCamera = exports.create = exports.Scanner = exports.Action = void 0;\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\nvar types_1 = require(\"../types\");\n/**\n * Action Types for the Features group\n * @public\n */\nvar Action;\n(function (Action) {\n Action[\"OPEN_CAMERA\"] = \"APP::SCANNER::OPEN::CAMERA\";\n Action[\"CAPTURE\"] = \"APP::SCANNER::CAPTURE\";\n})(Action = exports.Action || (exports.Action = {}));\n/**\n * A set of Actions for displaying a Camera Scanner component\n * @public\n */\nvar Scanner = /** @class */ (function (_super) {\n __extends(Scanner, _super);\n function Scanner(app, options) {\n return _super.call(this, app, types_1.Group.Scanner, types_1.Group.Scanner, options ? options.id : undefined) || this;\n }\n /**\n * @public\n */\n Scanner.prototype.dispatch = function (action) {\n switch (action) {\n case Action.OPEN_CAMERA:\n this.dispatchScannerAction(Action.OPEN_CAMERA);\n break;\n }\n return this;\n };\n /**\n * @internal\n */\n Scanner.prototype.dispatchScannerAction = function (type) {\n this.app.dispatch(helper_1.actionWrapper({\n type: type,\n group: types_1.Group.Scanner,\n payload: {\n id: this.id,\n },\n }));\n };\n return Scanner;\n}(ActionSet_1.ActionSet));\nexports.Scanner = Scanner;\n/**\n * @public\n */\nfunction create(app, options) {\n return new Scanner(app, options);\n}\nexports.create = create;\nfunction openCamera() {\n return helper_1.actionWrapper({\n group: types_1.Group.Scanner,\n type: Action.OPEN_CAMERA,\n });\n}\nexports.openCamera = openCamera;\nfunction capture(payload) {\n return helper_1.actionWrapper({\n group: types_1.Group.Scanner,\n type: Action.CAPTURE,\n payload: payload,\n });\n}\nexports.capture = capture;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.respond = exports.request = exports.Action = void 0;\nvar helper_1 = require(\"../helper\");\nvar types_1 = require(\"../types\");\nvar Action;\n(function (Action) {\n Action[\"REQUEST\"] = \"APP::SESSION_TOKEN::REQUEST\";\n Action[\"RESPOND\"] = \"APP::SESSION_TOKEN::RESPOND\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction request() {\n return helper_1.actionWrapper({\n group: types_1.Group.SessionToken,\n type: Action.REQUEST,\n });\n}\nexports.request = request;\nfunction respond(sessionToken) {\n return helper_1.actionWrapper({\n payload: sessionToken,\n group: types_1.Group.SessionToken,\n type: Action.RESPOND,\n });\n}\nexports.respond = respond;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.close = exports.show = exports.create = exports.Share = exports.Action = void 0;\nvar types_1 = require(\"../types\");\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\n/**\n * Types\n */\n/**\n * @public\n */\nvar Action;\n(function (Action) {\n Action[\"SHOW\"] = \"APP::SHARE::SHOW\";\n Action[\"CLOSE\"] = \"APP::SHARE::CLOSE\";\n})(Action = exports.Action || (exports.Action = {}));\n/**\n * Action\n */\n/**\n * A set of actions for displaying a Share Sheet component\n * @public\n */\nvar Share = /** @class */ (function (_super) {\n __extends(Share, _super);\n function Share(app) {\n return _super.call(this, app, types_1.Group.Share, types_1.Group.Share) || this;\n }\n /**\n * @public\n */\n Share.prototype.dispatch = function (action, payload) {\n switch (action) {\n case Action.SHOW:\n this.dispatchShareAction(Action.SHOW, payload);\n break;\n default:\n throw new Error(\"Action: \" + action + \" not supported\");\n }\n return this;\n };\n /**\n * @internal\n */\n Share.prototype.dispatchShareAction = function (actionType, payload) {\n this.app.dispatch(helper_1.actionWrapper({\n type: actionType,\n group: types_1.Group.Share,\n payload: __assign({ id: this.id }, payload),\n }));\n };\n return Share;\n}(ActionSet_1.ActionSet));\nexports.Share = Share;\n/**\n * @public\n */\nfunction create(app) {\n return new Share(app);\n}\nexports.create = create;\nfunction show() {\n return helper_1.actionWrapper({\n group: types_1.Group.Share,\n type: Action.SHOW,\n });\n}\nexports.show = show;\nfunction close() {\n return helper_1.actionWrapper({\n group: types_1.Group.Share,\n type: Action.CLOSE,\n });\n}\nexports.close = close;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.TitleBar = exports.update = exports.clickBreadcrumb = exports.clickActionButton = exports.Action = void 0;\nvar ActionSet_1 = require(\"../ActionSet\");\nvar Button_1 = require(\"../Button\");\nvar ButtonGroup_1 = require(\"../ButtonGroup\");\nvar buttonGroupHelper_1 = require(\"../buttonGroupHelper\");\nvar buttonHelper_1 = require(\"../buttonHelper\");\nvar helper_1 = require(\"../helper\");\nvar types_1 = require(\"../types\");\nvar Action;\n(function (Action) {\n Action[\"UPDATE\"] = \"APP::TITLEBAR::UPDATE\";\n Action[\"BUTTON_CLICK\"] = \"APP::TITLEBAR::BUTTONS::BUTTON::CLICK\";\n Action[\"BUTTON_UPDATE\"] = \"APP::TITLEBAR::BUTTONS::BUTTON::UPDATE\";\n Action[\"BUTTON_GROUP_UPDATE\"] = \"APP::TITLEBAR::BUTTONS::BUTTONGROUP::UPDATE\";\n Action[\"BREADCRUMBS_CLICK\"] = \"APP::TITLEBAR::BREADCRUMBS::BUTTON::CLICK\";\n Action[\"BREADCRUMBS_UPDATE\"] = \"APP::TITLEBAR::BREADCRUMBS::BUTTON::UPDATE\";\n})(Action = exports.Action || (exports.Action = {}));\nvar TITLEBAR_BUTTON_PROPS = {\n group: types_1.Group.TitleBar,\n subgroups: ['Buttons'],\n};\nvar BREADCRUMB_BUTTON_PROPS = {\n group: types_1.Group.TitleBar,\n subgroups: ['Breadcrumbs'],\n type: types_1.ComponentType.Button,\n};\nfunction clickActionButton(id, payload) {\n var type = types_1.ComponentType.Button;\n var component = __assign({ id: id, type: type }, TITLEBAR_BUTTON_PROPS);\n return Button_1.clickButton(types_1.Group.TitleBar, component, payload);\n}\nexports.clickActionButton = clickActionButton;\nfunction clickBreadcrumb(id, payload) {\n var component = __assign({ id: id }, BREADCRUMB_BUTTON_PROPS);\n return Button_1.clickButton(types_1.Group.TitleBar, component, payload);\n}\nexports.clickBreadcrumb = clickBreadcrumb;\nfunction update(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.TitleBar,\n type: Action.UPDATE,\n });\n}\nexports.update = update;\nvar TitleBar = /** @class */ (function (_super) {\n __extends(TitleBar, _super);\n function TitleBar(app, options) {\n var _this = _super.call(this, app, types_1.Group.TitleBar, types_1.Group.TitleBar) || this;\n if (!options.title && !options.breadcrumbs && !options.buttons) {\n return _this;\n }\n // Trigger 'update' on creation\n _this.set(options);\n return _this;\n }\n Object.defineProperty(TitleBar.prototype, \"buttons\", {\n get: function () {\n if (!this.primary && !this.secondary) {\n return undefined;\n }\n return {\n primary: this.primary,\n secondary: this.secondary,\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TitleBar.prototype, \"buttonsOptions\", {\n get: function () {\n if (!this.primaryOptions && !this.secondaryOptions) {\n return undefined;\n }\n return {\n primary: this.primaryOptions,\n secondary: this.secondaryOptions,\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TitleBar.prototype, \"options\", {\n get: function () {\n return {\n breadcrumbs: this.breadcrumbsOption,\n buttons: this.buttonsOptions,\n title: this.title,\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TitleBar.prototype, \"payload\", {\n get: function () {\n return __assign(__assign({}, this.options), { breadcrumbs: this.breadcrumb, buttons: this.buttons, id: this.id });\n },\n enumerable: false,\n configurable: true\n });\n TitleBar.prototype.set = function (options, shouldUpdate) {\n if (shouldUpdate === void 0) { shouldUpdate = true; }\n var mergedOptions = helper_1.getMergedProps(this.options, options);\n var title = mergedOptions.title, buttons = mergedOptions.buttons, breadcrumbs = mergedOptions.breadcrumbs;\n this.title = title;\n this.setBreadcrumbs(breadcrumbs);\n this.setPrimaryButton(buttons ? buttons.primary : undefined);\n this.setSecondaryButton(buttons ? buttons.secondary : undefined);\n if (shouldUpdate) {\n this.dispatch(Action.UPDATE);\n }\n return this;\n };\n TitleBar.prototype.dispatch = function (action) {\n switch (action) {\n case Action.UPDATE:\n this.app.dispatch(update(this.payload));\n break;\n }\n return this;\n };\n TitleBar.prototype.getButton = function (button, subgroups, updateCb) {\n if (button instanceof ButtonGroup_1.ButtonGroup) {\n return buttonGroupHelper_1.getGroupedButton(this, button, subgroups, updateCb);\n }\n return buttonHelper_1.getSingleButton(this, button, subgroups, updateCb);\n };\n TitleBar.prototype.updatePrimaryButton = function (newPayload) {\n if (!this.primary) {\n return;\n }\n if (helper_1.updateActionFromPayload(this.primary, newPayload)) {\n this.dispatch(Action.UPDATE);\n }\n };\n TitleBar.prototype.updateSecondaryButtons = function (newPayload) {\n if (!this.secondary) {\n return;\n }\n var buttonToUpdate = this.secondary.find(function (action) { return action.id === newPayload.id; });\n if (!buttonToUpdate) {\n return;\n }\n var updated = false;\n if (ButtonGroup_1.isGroupedButtonPayload(newPayload)) {\n updated = helper_1.updateActionFromPayload(buttonToUpdate, newPayload);\n }\n else {\n updated = helper_1.updateActionFromPayload(buttonToUpdate, newPayload);\n }\n if (updated) {\n this.dispatch(Action.UPDATE);\n }\n };\n TitleBar.prototype.updateBreadcrumbButton = function (newPayload) {\n if (!this.breadcrumb) {\n return;\n }\n if (helper_1.updateActionFromPayload(this.breadcrumb, newPayload)) {\n this.dispatch(Action.UPDATE);\n }\n };\n TitleBar.prototype.setPrimaryButton = function (newOptions) {\n this.primaryOptions = this.getChildButton(newOptions, this.primaryOptions);\n this.primary = this.primaryOptions\n ? this.getButton(this.primaryOptions, TITLEBAR_BUTTON_PROPS.subgroups, this.updatePrimaryButton)\n : undefined;\n };\n TitleBar.prototype.setSecondaryButton = function (newOptions) {\n var _this = this;\n var newButtons = newOptions || [];\n var currentButtons = this.secondaryOptions || [];\n this.secondaryOptions = this.getUpdatedChildActions(newButtons, currentButtons);\n this.secondary = this.secondaryOptions\n ? this.secondaryOptions.map(function (action) {\n return _this.getButton(action, TITLEBAR_BUTTON_PROPS.subgroups, _this.updateSecondaryButtons);\n })\n : undefined;\n };\n TitleBar.prototype.setBreadcrumbs = function (breadcrumb) {\n this.breadcrumbsOption = this.getChildButton(breadcrumb, this.breadcrumbsOption);\n this.breadcrumb = this.breadcrumbsOption\n ? this.getButton(this.breadcrumbsOption, BREADCRUMB_BUTTON_PROPS.subgroups, this.updateBreadcrumbButton)\n : undefined;\n };\n TitleBar.prototype.getChildButton = function (newAction, currentAction) {\n var newButtons = newAction ? [newAction] : [];\n var currentButtons = currentAction ? [currentAction] : [];\n var updatedButton = this.getUpdatedChildActions(newButtons, currentButtons);\n return updatedButton ? updatedButton[0] : undefined;\n };\n return TitleBar;\n}(ActionSet_1.ActionSetWithChildren));\nexports.TitleBar = TitleBar;\nfunction create(app, options) {\n return new TitleBar(app, options);\n}\nexports.create = create;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.create = exports.Toast = exports.primaryAction = exports.clear = exports.show = exports.Action = void 0;\nvar helper_1 = require(\"../helper\");\nvar ActionSet_1 = require(\"../ActionSet\");\nvar types_1 = require(\"../types\");\nvar Action;\n(function (Action) {\n Action[\"SHOW\"] = \"APP::TOAST::SHOW\";\n Action[\"CLEAR\"] = \"APP::TOAST::CLEAR\";\n Action[\"ACTION\"] = \"APP::TOAST::ACTION\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction show(toastMessage) {\n return helper_1.actionWrapper({\n group: types_1.Group.Toast,\n payload: toastMessage,\n type: Action.SHOW,\n });\n}\nexports.show = show;\nfunction clear(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.Toast,\n type: Action.CLEAR,\n });\n}\nexports.clear = clear;\nfunction primaryAction(payload) {\n return helper_1.actionWrapper({\n payload: payload,\n group: types_1.Group.Toast,\n type: Action.ACTION,\n });\n}\nexports.primaryAction = primaryAction;\nvar Toast = /** @class */ (function (_super) {\n __extends(Toast, _super);\n function Toast(app, options) {\n var _this = _super.call(this, app, types_1.Group.Toast, types_1.Group.Toast) || this;\n _this.message = '';\n _this.duration = 5000;\n _this.set(options);\n return _this;\n }\n Object.defineProperty(Toast.prototype, \"options\", {\n get: function () {\n var _a;\n return {\n duration: this.duration,\n isError: this.isError,\n message: this.message,\n action: ((_a = this.action) === null || _a === void 0 ? void 0 : _a.content)\n ? {\n content: this.action.content,\n }\n : undefined,\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Toast.prototype, \"payload\", {\n get: function () {\n return __assign({ id: this.id }, this.options);\n },\n enumerable: false,\n configurable: true\n });\n Toast.prototype.set = function (options) {\n var mergedOptions = helper_1.getMergedProps(this.options, options);\n var message = mergedOptions.message, duration = mergedOptions.duration, isError = mergedOptions.isError, action = mergedOptions.action;\n this.message = message;\n this.duration = duration;\n this.isError = isError;\n this.action = (action === null || action === void 0 ? void 0 : action.content)\n ? {\n content: action.content || '',\n }\n : undefined;\n return this;\n };\n Toast.prototype.dispatch = function (action) {\n switch (action) {\n case Action.SHOW: {\n var openAction = show(this.payload);\n this.app.dispatch(openAction);\n break;\n }\n case Action.CLEAR:\n this.app.dispatch(clear({ id: this.id }));\n break;\n case Action.ACTION:\n this.app.dispatch(primaryAction({ id: this.id }));\n break;\n }\n return this;\n };\n return Toast;\n}(ActionSet_1.ActionSet));\nexports.Toast = Toast;\nfunction create(app, options) {\n return new Toast(app, options);\n}\nexports.create = create;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initializeWebVitals = exports.interactionToNextPaint = exports.timeToFirstByte = exports.firstContentfulPaint = exports.cumulativeLayoutShift = exports.firstInputDelay = exports.largestContentfulPaint = exports.Action = void 0;\nvar web_vitals_1 = require(\"web-vitals\");\nvar env_1 = require(\"../../util/env\");\nvar types_1 = require(\"../types\");\nvar helper_1 = require(\"../helper\");\nvar Action;\n(function (Action) {\n Action[\"LARGEST_CONTENTFUL_PAINT\"] = \"APP::WEB_VITALS::LARGEST_CONTENTFUL_PAINT\";\n Action[\"FIRST_INPUT_DELAY\"] = \"APP::WEB_VITALS::FIRST_INPUT_DELAY\";\n Action[\"CUMULATIVE_LAYOUT_SHIFT\"] = \"APP::WEB_VITALS::CUMULATIVE_LAYOUT_SHIFT\";\n Action[\"FIRST_CONTENTFUL_PAINT\"] = \"APP::WEB_VITALS::FIRST_CONTENTFUL_PAINT\";\n Action[\"TIME_TO_FIRST_BYTE\"] = \"APP::WEB_VITALS::TIME_TO_FIRST_BYTE\";\n Action[\"INTERACTION_TO_NEXT_PAINT\"] = \"APP::WEB_VITALS::INTERACTION_TO_NEXT_PAINT\";\n})(Action = exports.Action || (exports.Action = {}));\nfunction largestContentfulPaint(payload) {\n return helper_1.actionWrapper({\n group: types_1.Group.WebVitals,\n type: Action.LARGEST_CONTENTFUL_PAINT,\n payload: payload,\n });\n}\nexports.largestContentfulPaint = largestContentfulPaint;\nfunction firstInputDelay(payload) {\n return helper_1.actionWrapper({\n group: types_1.Group.WebVitals,\n type: Action.FIRST_INPUT_DELAY,\n payload: payload,\n });\n}\nexports.firstInputDelay = firstInputDelay;\nfunction cumulativeLayoutShift(payload) {\n return helper_1.actionWrapper({\n group: types_1.Group.WebVitals,\n type: Action.CUMULATIVE_LAYOUT_SHIFT,\n payload: payload,\n });\n}\nexports.cumulativeLayoutShift = cumulativeLayoutShift;\nfunction firstContentfulPaint(payload) {\n return helper_1.actionWrapper({\n group: types_1.Group.WebVitals,\n type: Action.FIRST_CONTENTFUL_PAINT,\n payload: payload,\n });\n}\nexports.firstContentfulPaint = firstContentfulPaint;\nfunction timeToFirstByte(payload) {\n return helper_1.actionWrapper({\n group: types_1.Group.WebVitals,\n type: Action.TIME_TO_FIRST_BYTE,\n payload: payload,\n });\n}\nexports.timeToFirstByte = timeToFirstByte;\nfunction interactionToNextPaint(payload) {\n return helper_1.actionWrapper({\n group: types_1.Group.WebVitals,\n type: Action.INTERACTION_TO_NEXT_PAINT,\n payload: payload,\n });\n}\nexports.interactionToNextPaint = interactionToNextPaint;\nfunction initializeWebVitals(app) {\n function onReport(cb) {\n return function (data) {\n var id = data.id, metricName = data.name, value = data.value;\n var payload = { id: id, metricName: metricName, value: value };\n var event = cb(payload);\n app.dispatch(event);\n };\n }\n var untypedWindow = window;\n // This logic is copied from app-bridge-utils/utilities/platform.ts\n // Once we're ready to deprecate app-bridge-utils, we can refactor this\n var isMobile = typeof navigator !== 'undefined' &&\n (navigator.userAgent.indexOf('Shopify Mobile') >= 0 ||\n navigator.userAgent.indexOf('Shopify POS') >= 0 ||\n navigator.userAgent.indexOf('Shopify Ping') >= 0);\n if (env_1.isServer || (env_1.isClient && untypedWindow.__is_web_vitals_initialized__) || isMobile) {\n // We need to prevent the Web Vitals functions from being called more than once per page load,\n // which can cause a memory leak as per the web-vitals docs.\n return;\n }\n untypedWindow.__is_web_vitals_initialized__ = true;\n web_vitals_1.onLCP(onReport(largestContentfulPaint));\n web_vitals_1.onFID(onReport(firstInputDelay));\n web_vitals_1.onCLS(onReport(cumulativeLayoutShift));\n web_vitals_1.onFCP(onReport(firstContentfulPaint));\n web_vitals_1.onTTFB(onReport(timeToFirstByte));\n web_vitals_1.onINP(onReport(interactionToNextPaint));\n}\nexports.initializeWebVitals = initializeWebVitals;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./actions\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getGroupedButton = void 0;\nvar ButtonGroup_1 = require(\"./ButtonGroup\");\nfunction getGroupedButton(action, button, subgroups, updateCb) {\n action.addChild(button, action.group, subgroups);\n var id = button.id, label = button.label, disabled = button.disabled, buttons = button.buttons, plain = button.plain;\n action.subscribeToChild(button, ButtonGroup_1.Action.UPDATE, updateCb);\n return { id: id, label: label, buttons: buttons, disabled: disabled, plain: plain };\n}\nexports.getGroupedButton = getGroupedButton;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSingleButton = void 0;\nvar Button_1 = require(\"./Button\");\nfunction getSingleButton(action, button, subgroups, updateCb) {\n action.addChild(button, action.group, subgroups);\n action.subscribeToChild(button, Button_1.Action.UPDATE, updateCb);\n return button.payload;\n}\nexports.getSingleButton = getSingleButton;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SEPARATOR = exports.PREFIX = void 0;\nexports.PREFIX = 'APP';\nexports.SEPARATOR = '::';\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NonSnakeCaseGroup = exports.findMatchInEnum = exports.forEachInEnum = exports.getMergedProps = exports.updateActionFromPayload = exports.isValidOptionalString = exports.isValidOptionalNumber = exports.getEventNameSpace = exports.getVersion = exports.actionWrapper = void 0;\nvar constants_1 = require(\"./constants\");\nvar merge_1 = __importDefault(require(\"./merge\"));\nvar types_1 = require(\"./types\");\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nvar packageJson = require('../package.json');\nfunction actionWrapper(action) {\n return __assign(__assign({}, action), { version: getVersion(), clientInterface: {\n name: packageJson.name,\n version: getVersion(),\n } });\n}\nexports.actionWrapper = actionWrapper;\nfunction getVersion() {\n return packageJson.version;\n}\nexports.getVersion = getVersion;\n/**\n * Returns full event name with prefix, group, subgroups and type formatted with separators\n * @internal\n * */\nfunction getEventNameSpace(group, eventName, component) {\n if (eventName.startsWith(\"\" + constants_1.PREFIX + constants_1.SEPARATOR)) {\n return eventName;\n }\n var eventNameSpace = groupToEventNameSpace(group);\n if (component) {\n var subgroups_1 = component.subgroups, type = component.type;\n if (subgroups_1 && subgroups_1.length > 0) {\n eventNameSpace += eventNameSpace.length > 0 ? constants_1.SEPARATOR : '';\n subgroups_1.forEach(function (subgroup, index) {\n eventNameSpace += \"\" + subgroup.toUpperCase() + (index < subgroups_1.length - 1 ? constants_1.SEPARATOR : '');\n });\n }\n if (type !== group && type) {\n eventNameSpace += \"\" + (eventNameSpace.length > 0 ? constants_1.SEPARATOR : '') + type.toUpperCase();\n }\n }\n if (eventNameSpace) {\n eventNameSpace += \"\" + (eventNameSpace.length > 0 ? constants_1.SEPARATOR : '') + eventName.toUpperCase();\n }\n return \"\" + constants_1.PREFIX + constants_1.SEPARATOR + eventNameSpace;\n}\nexports.getEventNameSpace = getEventNameSpace;\nfunction isValidOptionalNumber(value) {\n return value === null || value === undefined || typeof value === 'number';\n}\nexports.isValidOptionalNumber = isValidOptionalNumber;\nfunction isValidOptionalString(value) {\n return value === null || value === undefined || typeof value === 'string';\n}\nexports.isValidOptionalString = isValidOptionalString;\nfunction updateActionFromPayload(action, newProps) {\n var id = action.id;\n if (id === newProps.id) {\n // Merge new properties\n Object.assign(action, getMergedProps(action, newProps));\n return true;\n }\n return false;\n}\nexports.updateActionFromPayload = updateActionFromPayload;\nfunction getMergedProps(props, newProps) {\n var merged = merge_1.default(props, newProps);\n if (!merged) {\n // tslint:disable-next-line:prefer-object-spread\n var cloned = Object.assign(props, newProps);\n return cloned;\n }\n return merged;\n}\nexports.getMergedProps = getMergedProps;\nfunction forEachInEnum(types, callback) {\n Object.keys(types).forEach(function (key) {\n callback(types[key]);\n });\n}\nexports.forEachInEnum = forEachInEnum;\nfunction findMatchInEnum(types, lookup) {\n var match = Object.keys(types).find(function (key) {\n return lookup === types[key];\n });\n return match ? types[match] : undefined;\n}\nexports.findMatchInEnum = findMatchInEnum;\nfunction camelCaseToSnakeCase(value) {\n return value.replace(/([A-Z])/g, function (matcher, _val, index) {\n return \"\" + (index === 0 ? '' : '_') + matcher[0].toLowerCase();\n });\n}\nexports.NonSnakeCaseGroup = [\n types_1.Group.AuthCode,\n types_1.Group.Button,\n types_1.Group.ButtonGroup,\n types_1.Group.Cart,\n types_1.Group.Error,\n types_1.Group.Features,\n types_1.Group.Fullscreen,\n types_1.Group.Link,\n types_1.Group.Loading,\n types_1.Group.Menu,\n types_1.Group.Modal,\n types_1.Group.Navigation,\n types_1.Group.Pos,\n types_1.Group.Print,\n types_1.Group.ResourcePicker,\n types_1.Group.Scanner,\n types_1.Group.SessionToken,\n types_1.Group.Share,\n types_1.Group.TitleBar,\n types_1.Group.Toast,\n types_1.Group.unstable_Picker,\n];\n/**\n * Maps the group name to its event name\n * @internal\n * @remarks - This method is necessary for the new pattern of using snake case\n * which makes it more readable and easier to reconstruct the group from an event name.\n * Example: `ContextualSaveBar` becomes `CONTEXTUAL_SAVE_BAR`\n * */\nfunction groupToEventNameSpace(group) {\n if (exports.NonSnakeCaseGroup.includes(group)) {\n return group.toUpperCase();\n }\n return camelCaseToSnakeCase(group).toUpperCase();\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebVitals = exports.unstable_Picker = exports.Performance = exports.Pos = exports.AppLink = exports.ChannelMenu = exports.NavigationMenu = exports.Share = exports.ContextualSaveBar = exports.MarketingExternalActivityTopBar = exports.TitleBar = exports.SessionToken = exports.ResourcePicker = exports.Redirect = exports.Print = exports.ModalContent = exports.Modal = exports.Loading = exports.LeaveConfirmation = exports.History = exports.Toast = exports.Fullscreen = exports.FeedbackModal = exports.Features = exports.Flash = exports.Error = exports.Client = exports.Cart = exports.Scanner = exports.ButtonGroup = exports.Button = exports.AuthCode = exports.isAppBridgeAction = void 0;\nvar AuthCode = __importStar(require(\"./AuthCode\"));\nexports.AuthCode = AuthCode;\nvar Button = __importStar(require(\"./Button\"));\nexports.Button = Button;\nvar ButtonGroup = __importStar(require(\"./ButtonGroup\"));\nexports.ButtonGroup = ButtonGroup;\nvar Cart = __importStar(require(\"./Cart\"));\nexports.Cart = Cart;\nvar Client = __importStar(require(\"./Client\"));\nexports.Client = Client;\nvar Error = __importStar(require(\"./Error\"));\nexports.Error = Error;\nvar Flash = __importStar(require(\"./Flash\"));\nexports.Flash = Flash;\nvar Features = __importStar(require(\"./Features\"));\nexports.Features = Features;\nvar FeedbackModal = __importStar(require(\"./FeedbackModal\"));\nexports.FeedbackModal = FeedbackModal;\nvar Fullscreen = __importStar(require(\"./Fullscreen\"));\nexports.Fullscreen = Fullscreen;\nvar LeaveConfirmation = __importStar(require(\"./LeaveConfirmation\"));\nexports.LeaveConfirmation = LeaveConfirmation;\nvar Loading = __importStar(require(\"./Loading\"));\nexports.Loading = Loading;\nvar Modal = __importStar(require(\"./Modal\"));\nexports.Modal = Modal;\nvar ModalContent = __importStar(require(\"./Modal/ModalContent\"));\nexports.ModalContent = ModalContent;\nvar History = __importStar(require(\"./Navigation/History\"));\nexports.History = History;\nvar Redirect = __importStar(require(\"./Navigation/Redirect\"));\nexports.Redirect = Redirect;\nvar Print = __importStar(require(\"./Print\"));\nexports.Print = Print;\nvar ResourcePicker = __importStar(require(\"./ResourcePicker\"));\nexports.ResourcePicker = ResourcePicker;\nvar Scanner = __importStar(require(\"./Scanner\"));\nexports.Scanner = Scanner;\nvar SessionToken = __importStar(require(\"./SessionToken\"));\nexports.SessionToken = SessionToken;\nvar TitleBar = __importStar(require(\"./TitleBar\"));\nexports.TitleBar = TitleBar;\nvar Toast = __importStar(require(\"./Toast\"));\nexports.Toast = Toast;\nvar ContextualSaveBar = __importStar(require(\"./ContextualSaveBar\"));\nexports.ContextualSaveBar = ContextualSaveBar;\nvar Share = __importStar(require(\"./Share\"));\nexports.Share = Share;\nvar NavigationMenu = __importStar(require(\"./Menu/NavigationMenu\"));\nexports.NavigationMenu = NavigationMenu;\nvar ChannelMenu = __importStar(require(\"./Menu/ChannelMenu\"));\nexports.ChannelMenu = ChannelMenu;\nvar AppLink = __importStar(require(\"./Link/AppLink\"));\nexports.AppLink = AppLink;\nvar Pos = __importStar(require(\"./Pos\"));\nexports.Pos = Pos;\nvar MarketingExternalActivityTopBar = __importStar(require(\"./MarketingExternalActivityTopBar\"));\nexports.MarketingExternalActivityTopBar = MarketingExternalActivityTopBar;\nvar Performance = __importStar(require(\"./Performance\"));\nexports.Performance = Performance;\nvar unstable_Picker = __importStar(require(\"./Picker\"));\nexports.unstable_Picker = unstable_Picker;\nvar WebVitals = __importStar(require(\"./WebVitals\"));\nexports.WebVitals = WebVitals;\nvar validator_1 = require(\"./validator\");\nObject.defineProperty(exports, \"isAppBridgeAction\", { enumerable: true, get: function () { return validator_1.isAppBridgeAction; } });\n__exportStar(require(\"./types\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Returns a deeply merged object with properties from the 2 provided objects\n * @remarks - Only deeply merge objects. The second argument overrides the\n * first if it is provided as `null`, `undefined` or an array.\n * @public\n * */\nfunction mergeProps(obj, newObj) {\n if (newObj == null) {\n return newObj;\n }\n // If setting to a different prototype or a non-object or non-array, don't merge any props\n if (typeof obj === 'undefined' ||\n !Object.prototype.isPrototypeOf.call(Object.getPrototypeOf(obj), newObj) ||\n (newObj.constructor.name !== 'Object' && newObj.constructor.name !== 'Array')) {\n return newObj;\n }\n var clone = {};\n Object.keys(newObj).forEach(function (key) {\n var exists = Object.prototype.hasOwnProperty.call(obj, key);\n if (!exists) {\n clone[key] = newObj[key];\n }\n else if (typeof obj[key] === 'object' && !Array.isArray(obj[key])) {\n clone[key] = mergeProps(obj[key], newObj[key]);\n }\n else {\n clone[key] = newObj[key];\n }\n });\n // Copy old props that are not present in new object only if this is a simple object\n Object.keys(obj).forEach(function (key) {\n var exists = Object.prototype.hasOwnProperty.call(newObj, key);\n if (!exists) {\n clone[key] = obj[key];\n }\n });\n // Set prototype of cloned object to match original\n Object.setPrototypeOf(clone, Object.getPrototypeOf(obj));\n return clone;\n}\nexports.default = mergeProps;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ComponentType = exports.Group = void 0;\n/**\n * Various action groups.\n * @public\n */\nvar Group;\n(function (Group) {\n Group[\"AuthCode\"] = \"AuthCode\";\n Group[\"Button\"] = \"Button\";\n Group[\"ButtonGroup\"] = \"ButtonGroup\";\n Group[\"Cart\"] = \"Cart\";\n Group[\"Client\"] = \"Client\";\n Group[\"ContextualSaveBar\"] = \"ContextualSaveBar\";\n Group[\"Error\"] = \"Error\";\n Group[\"Features\"] = \"Features\";\n Group[\"FeedbackModal\"] = \"FeedbackModal\";\n Group[\"Fullscreen\"] = \"Fullscreen\";\n Group[\"LeaveConfirmation\"] = \"LeaveConfirmation\";\n Group[\"Link\"] = \"Link\";\n Group[\"Loading\"] = \"Loading\";\n Group[\"Menu\"] = \"Menu\";\n Group[\"Modal\"] = \"Modal\";\n Group[\"Navigation\"] = \"Navigation\";\n Group[\"Performance\"] = \"Performance\";\n Group[\"Pos\"] = \"Pos\";\n Group[\"Print\"] = \"Print\";\n Group[\"ResourcePicker\"] = \"Resource_Picker\";\n /**\n * @unstable This API may be updated without warning in the future\n */\n Group[\"unstable_Picker\"] = \"unstable_Picker\";\n Group[\"Scanner\"] = \"Scanner\";\n Group[\"SessionToken\"] = \"SessionToken\";\n Group[\"Share\"] = \"Share\";\n Group[\"TitleBar\"] = \"TitleBar\";\n Group[\"Toast\"] = \"Toast\";\n Group[\"MarketingExternalActivityTopBar\"] = \"MarketingExternalActivityTopBar\";\n Group[\"WebVitals\"] = \"WebVitals\";\n})(Group = exports.Group || (exports.Group = {}));\n/**\n * @internal\n */\nvar ComponentType;\n(function (ComponentType) {\n ComponentType[\"Button\"] = \"Button\";\n ComponentType[\"ButtonGroup\"] = \"ButtonGroup\";\n})(ComponentType = exports.ComponentType || (exports.ComponentType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateUuid = void 0;\n/**\n * Convert a number or array of integers to a string of padded hex octets.\n */\nfunction asHex(value) {\n return Array.from(value)\n .map(function (i) { return (\"00\" + i.toString(16)).slice(-2); })\n .join('');\n}\n/**\n * Attempt to securely generate random bytes/\n */\nfunction getRandomBytes(size) {\n // SPRNG\n if (typeof Uint8Array === 'function' && typeof window === 'object' && window.crypto) {\n var buffer = new Uint8Array(size);\n var randomValues = window.crypto.getRandomValues(buffer);\n if (randomValues) {\n return randomValues;\n }\n }\n // Insecure random\n return Array.from(new Array(size), function () { return (Math.random() * 255) | 0; });\n}\n/**\n * Generate a RFC4122-compliant v4 UUID.\n *\n * @see http://www.ietf.org/rfc/rfc4122.txt\n */\nfunction generateUuid() {\n var version = 64;\n var clockSeqHiAndReserved = getRandomBytes(1);\n var timeHiAndVersion = getRandomBytes(2);\n clockSeqHiAndReserved[0] &= 63 | 128;\n // tslint:disable-next-line:binary-expression-operand-order\n timeHiAndVersion[0] &= 15 | version;\n return [\n // time-low\n asHex(getRandomBytes(4)),\n '-',\n // time-mid\n asHex(getRandomBytes(2)),\n '-',\n // time-high-and-version\n asHex(timeHiAndVersion),\n '-',\n // clock-seq-and-reserved\n asHex(clockSeqHiAndReserved),\n // clock-seq-loq\n asHex(getRandomBytes(1)),\n '-',\n // node\n asHex(getRandomBytes(6)),\n ].join('');\n}\nexports.generateUuid = generateUuid;\n// Default\nexports.default = generateUuid;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAppMessage = exports.isPermitted = exports.getPermissionKey = exports.isFromApp = exports.isPerformanceOrWebVitalsAction = exports.isAppBridgeAction = void 0;\nvar types_1 = require(\"../client/types\");\nvar constants_1 = require(\"./constants\");\nvar helper_1 = require(\"./helper\");\n/**\n * Predicate to determine if an action is an App Bridge action.\n * @public\n */\nfunction isAppBridgeAction(action) {\n return (action instanceof Object &&\n Object.prototype.hasOwnProperty.call(action, 'type') &&\n action.type.toString().startsWith(constants_1.PREFIX));\n}\nexports.isAppBridgeAction = isAppBridgeAction;\n/**\n * Function used to determine if an action is in the Performance or WebVitals groups\n * @public\n */\nfunction isPerformanceOrWebVitalsAction(_a) {\n var type = _a.type;\n return type.match(/^APP::(PERFORMANCE|WEB_VITALS)::/);\n}\nexports.isPerformanceOrWebVitalsAction = isPerformanceOrWebVitalsAction;\n/**\n * Predicate to determine if an action originated from an application.\n * @internal\n */\nfunction isFromApp(action) {\n if (typeof action !== 'object' || typeof action.source !== 'object') {\n return false;\n }\n return typeof action.source.apiKey === 'string';\n}\nexports.isFromApp = isFromApp;\n/**\n * Returns the action type without the prefix and group\n * @internal\n */\nfunction getPermissionKey(type) {\n return type.replace(new RegExp(\"^\" + constants_1.PREFIX + constants_1.SEPARATOR + \"\\\\w+\" + constants_1.SEPARATOR), '');\n}\nexports.getPermissionKey = getPermissionKey;\n/**\n * Predicate to determine if an action is permitted\n * @internal\n */\nfunction isPermitted(features, _a, permissionType) {\n var group = _a.group, type = _a.type;\n if (!group || !Object.prototype.hasOwnProperty.call(features, group)) {\n return false;\n }\n var feature = features[group];\n if (!feature) {\n return false;\n }\n var actionType = getPermissionKey(type);\n return feature[actionType] ? feature[actionType][permissionType] === true : false;\n}\nexports.isPermitted = isPermitted;\n/**\n * Predicate to determine if an event originated from an application.\n * @internal\n */\nfunction isAppMessage(event) {\n if (typeof event !== 'object' || !event.data || typeof event.data !== 'object') {\n return false;\n }\n var data = event.data;\n return (Object.prototype.hasOwnProperty.call(data, 'type') &&\n helper_1.findMatchInEnum(types_1.MessageType, data.type) !== undefined);\n}\nexports.isAppMessage = isAppMessage;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createApp = exports.createAppWrapper = exports.createClientApp = exports.WINDOW_UNDEFINED_MESSAGE = void 0;\nvar helper_1 = require(\"../actions/helper\");\nvar Print_1 = require(\"../actions/Print\");\nvar Error_1 = require(\"../actions/Error\");\nvar MessageTransport_1 = require(\"../MessageTransport\");\nvar shared_1 = require(\"../util/shared\");\nvar env_1 = require(\"../util/env\");\nvar Client_1 = require(\"../actions/Client\");\nvar WebVitals_1 = require(\"../actions/WebVitals\");\nvar print_1 = require(\"./print\");\nvar redirect_1 = require(\"./redirect\");\nvar types_1 = require(\"./types\");\nvar Hooks_1 = __importDefault(require(\"./Hooks\"));\nexports.WINDOW_UNDEFINED_MESSAGE = 'window is not defined. Running an app outside a browser is not supported';\nfunction redirectHandler(hostFrame, config) {\n var apiKey = config.apiKey, host = config.host, _a = config.forceRedirect, forceRedirect = _a === void 0 ? !env_1.isDevelopmentClient : _a;\n var location = redirect_1.getLocation();\n if (env_1.isUnframed || !location || !apiKey || !host || !forceRedirect || !redirect_1.shouldRedirect(hostFrame)) {\n return false;\n }\n var url = \"https://\" + host + \"/apps/\" + apiKey + location.pathname + (location.search || '');\n redirect_1.redirect(url);\n return true;\n}\nfunction appSetUp(app) {\n app.subscribe(Print_1.Action.APP, print_1.handleAppPrint);\n app.dispatch(Client_1.initialize());\n try {\n WebVitals_1.initializeWebVitals(app);\n }\n catch (_) {\n // Noop so the client doesn't crash if web-vitals initialization fails\n }\n}\n/**\n * @internal\n */\nvar createClientApp = function (transport, middlewares) {\n if (middlewares === void 0) { middlewares = []; }\n var getStateListeners = [];\n var transportListener = MessageTransport_1.createTransportListener();\n var handler = function (event) {\n var message = event.data;\n var type = message.type, payload = message.payload;\n switch (type) {\n case 'getState': {\n var resolvers = getStateListeners.splice(0);\n resolvers.forEach(function (resolver) { return resolver(payload); });\n break;\n }\n case 'dispatch': {\n transportListener.handleMessage(payload);\n var hasCallback = transportListener.handleActionDispatch(payload);\n if (hasCallback) {\n return;\n }\n // Throw an error if there are no subscriptions to this error\n var errorType = helper_1.findMatchInEnum(Error_1.Action, payload.type);\n if (errorType) {\n Error_1.throwError(errorType, payload);\n }\n break;\n }\n default:\n // Silently swallow unknown actions\n }\n };\n transport.subscribe(handler);\n return function (config) {\n var decodedConfig = validateAndDecodeConfig(config);\n var isRedirecting = redirectHandler(transport.hostFrame, decodedConfig);\n if (isRedirecting) {\n return shared_1.mockAppBridge;\n }\n var dispatcher = createDispatcher(transport, decodedConfig);\n var subscribe = transportListener.createSubscribeHandler(dispatcher);\n // It is possible to initialize an app multiple times\n // Therefore we need to clear subscriptions to be safe\n dispatcher(types_1.MessageType.Unsubscribe);\n function dispatch(action) {\n dispatcher(types_1.MessageType.Dispatch, action);\n return action;\n }\n var hostOrigin = new URL(\"https://\" + decodedConfig.host).origin;\n var hooks = new Hooks_1.default();\n var app = {\n hostOrigin: hostOrigin,\n localOrigin: transport.localOrigin,\n hooks: hooks,\n dispatch: function (action) {\n if (!app.hooks) {\n return dispatch(action);\n }\n return app.hooks.run(types_1.LifecycleHook.DispatchAction, dispatch, app, action);\n },\n featuresAvailable: function () {\n var features = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n features[_i] = arguments[_i];\n }\n var firstItem = features[0];\n var parsedFeatures = Array.isArray(firstItem) ? __spreadArray([], firstItem) : features;\n return app.getState('features').then(function (state) {\n if (parsedFeatures.length) {\n return parsedFeatures.reduce(function (acc, feature) {\n if (Object.keys(state).includes(feature)) {\n acc[feature] = state[feature];\n }\n return acc;\n }, {});\n }\n return state;\n });\n },\n getState: function (query) {\n if (query && typeof query !== 'string') {\n return Promise.resolve(undefined);\n }\n return new Promise(function (resolve) {\n getStateListeners.push(resolve);\n dispatcher(types_1.MessageType.GetState);\n }).then(function (state) {\n var newState = state;\n if (query) {\n for (var _i = 0, _a = query.split('.'); _i < _a.length; _i++) {\n var key = _a[_i];\n if (newState == null ||\n typeof newState !== 'object' ||\n Array.isArray(newState) ||\n !Object.keys(newState).includes(key)) {\n return undefined;\n }\n newState = newState[key];\n }\n }\n return newState;\n });\n },\n subscribe: subscribe,\n error: function (listener, id) {\n var unsubscribeCb = [];\n helper_1.forEachInEnum(Error_1.Action, function (eventNameSpace) {\n unsubscribeCb.push(subscribe(eventNameSpace, listener, id));\n });\n return function () {\n unsubscribeCb.forEach(function (unsubscribe) { return unsubscribe(); });\n };\n },\n };\n for (var _i = 0, middlewares_1 = middlewares; _i < middlewares_1.length; _i++) {\n var middleware = middlewares_1[_i];\n middleware(hooks, app);\n }\n appSetUp(app);\n return app;\n };\n};\nexports.createClientApp = createClientApp;\n/**\n * @internal\n */\nfunction validateAndDecodeConfig(config) {\n var _a;\n if (!config.host) {\n throw Error_1.fromAction('host must be provided', Error_1.AppActionType.INVALID_CONFIG);\n }\n if (!config.apiKey) {\n throw Error_1.fromAction('apiKey must be provided', Error_1.AppActionType.INVALID_CONFIG);\n }\n try {\n var host = atob((_a = config.host) === null || _a === void 0 ? void 0 : _a.replace(/_/g, '/').replace(/-/g, '+'));\n return __assign(__assign({}, config), { host: host });\n }\n catch (_b) {\n var message = \"not a valid host, please use the value provided by Shopify\";\n throw Error_1.fromAction(message, Error_1.AppActionType.INVALID_CONFIG);\n }\n}\n/**\n * @public\n */\nfunction createAppWrapper(frame, localOrigin, middleware) {\n if (middleware === void 0) { middleware = []; }\n if (!frame) {\n throw Error_1.fromAction(exports.WINDOW_UNDEFINED_MESSAGE, Error_1.AppActionType.WINDOW_UNDEFINED);\n }\n var location = redirect_1.getLocation();\n var origin = localOrigin || (location && location.origin);\n if (!origin) {\n throw Error_1.fromAction('local origin cannot be blank', Error_1.AppActionType.MISSING_LOCAL_ORIGIN);\n }\n var transport = MessageTransport_1.fromWindow(frame, origin);\n var appCreator = exports.createClientApp(transport, middleware);\n return appCreator;\n}\nexports.createAppWrapper = createAppWrapper;\n/**\n * Creates your application instance.\n * @param config - `apiKey` and `host` are both required.\n * @remarks\n * You will need to store `host` during the authentication process and then retrieve it for the code to work properly. To learn more about this process, see {@link https://help.shopify.com/api/embedded-apps/shop-origin | Getting and storing the shop origin}.\n * @public\n */\nfunction createApp(config) {\n var currentWindow = redirect_1.getWindow();\n if (!currentWindow || !currentWindow.top) {\n return shared_1.serverAppBridge;\n }\n return createAppWrapper(currentWindow.top)(config);\n}\nexports.createApp = createApp;\nfunction createDispatcher(transport, config) {\n return function (type, payload) {\n transport.dispatch({\n payload: payload,\n source: config,\n type: type,\n });\n };\n}\n/**\n * {@inheritdocs createApp}\n * @public\n */\nexports.default = createApp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar collection_1 = require(\"../util/collection\");\n/**\n * Shopify App Bridge can be extended with hooks, which run when actions are dispatched and updated.\n * Hooks are middleware functions that can modify or cancel actions.\n *\n * The [validation middleware](../validate/README.md) is implemented using hooks.\n *\n * @remarks\n * Here’s an example hook that modifies all Toast show actions to have a duration of five seconds.\n *\n * ```ts\n * import createApp, {LifecycleHook, DispatchActionHook} from '@shopify/app-bridge';\n * import {Toast} from '@shopify/app-bridge/actions'\n *\n * const app = createApp({apiKey: API_KEY, host: HOST});\n *\n * function makeToastsFiveSeconds: DispatchActionHook(next) {\n * return function(action){\n * if(action.type === Toast.Action.SHOW) {\n * const modifiedAction = {\n * ...action,\n * payload: {\n * ...action.payload,\n * duration: 5000,\n * },\n * };\n * return next(modifiedAction);\n * } else {\n * // don’t modify non-Toast actions\n * return next(action);\n * }\n * }\n * }\n *\n * app.hooks.set(LifecycleHook.DispatchAction, makeToastsFiveSeconds);\n * ```\n *\n * The hook function `makeToastsFiveSeconds()` takes a `next()` function as its argument.\n * The hook function returns an anonymous function, which takes the action being dispatched as its argument.\n *\n * To modify an action, call `next()` with the modified action, as in the example.\n * To cancel an action, don’t call `next()`, and the action will not be dispatched.\n */\nvar Hooks = /** @class */ (function () {\n function Hooks() {\n this.map = {};\n }\n Hooks.prototype.set = function (hook, handler) {\n if (!Object.prototype.hasOwnProperty.call(this.map, hook)) {\n this.map[hook] = [];\n }\n var value = { handler: handler, remove: function () { } };\n var remove = collection_1.addAndRemoveFromCollection(this.map[hook], value);\n value = { handler: handler, remove: remove };\n return remove;\n };\n Hooks.prototype.get = function (hook) {\n var value = this.map[hook];\n return value ? value.map(function (val) { return val.handler; }) : undefined;\n };\n // eslint-disable-next-line @typescript-eslint/ban-types\n Hooks.prototype.run = function (hook, final, context) {\n var initialArgs = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n initialArgs[_i - 3] = arguments[_i];\n }\n var index = 0;\n var handlers = this.get(hook) || [];\n function handler() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var childHandler = handlers[index++];\n if (childHandler) {\n return childHandler(handler).apply(context, args);\n }\n return final.apply(context, args);\n }\n return handler.apply(context, initialArgs);\n };\n return Hooks;\n}());\nexports.default = Hooks;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Client_1 = require(\"./Client\");\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./Client\"), exports);\nexports.default = Client_1.createClientApp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.handleAppPrint = void 0;\nvar redirect_1 = require(\"./redirect\");\nfunction isRunningOniOS() {\n return navigator.userAgent.indexOf('iOS') >= 0;\n}\nfunction createHiddenInput() {\n var currentWindow = redirect_1.getWindow();\n if (!currentWindow || !currentWindow.document || !currentWindow.document.body) {\n return;\n }\n var inputElement = currentWindow.document.createElement('input');\n inputElement.style.display = 'none';\n currentWindow.document.body.appendChild(inputElement);\n return inputElement;\n}\nfunction printWindow() {\n var _a;\n (_a = redirect_1.getWindow()) === null || _a === void 0 ? void 0 : _a.print();\n}\nfunction handleMobileAppPrint() {\n var input = createHiddenInput();\n if (!input) {\n return;\n }\n input.select();\n printWindow();\n input.remove();\n}\nfunction handleAppPrint() {\n if (isRunningOniOS()) {\n handleMobileAppPrint();\n }\n else {\n printWindow();\n }\n}\nexports.handleAppPrint = handleAppPrint;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWindow = exports.getLocation = exports.redirect = exports.shouldRedirect = void 0;\nfunction shouldRedirect(frame) {\n return frame === window;\n}\nexports.shouldRedirect = shouldRedirect;\nfunction redirect(url) {\n var location = getLocation();\n if (!location) {\n return;\n }\n location.assign(url);\n}\nexports.redirect = redirect;\nfunction getLocation() {\n return hasWindow() ? window.location : undefined;\n}\nexports.getLocation = getLocation;\nfunction getWindow() {\n return hasWindow() ? window : undefined;\n}\nexports.getWindow = getWindow;\nfunction hasWindow() {\n return typeof window !== 'undefined';\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LifecycleHook = exports.MessageType = exports.PermissionType = exports.isV1Config = void 0;\n/**\n * @internal\n * @param config\n */\nfunction isV1Config(config) {\n return config.shopOrigin !== undefined;\n}\nexports.isV1Config = isV1Config;\n/**\n * @internal\n */\nvar PermissionType;\n(function (PermissionType) {\n PermissionType[\"Dispatch\"] = \"Dispatch\";\n PermissionType[\"Subscribe\"] = \"Subscribe\";\n})(PermissionType = exports.PermissionType || (exports.PermissionType = {}));\n/**\n * @internal\n */\nvar MessageType;\n(function (MessageType) {\n MessageType[\"GetState\"] = \"getState\";\n MessageType[\"Dispatch\"] = \"dispatch\";\n MessageType[\"Subscribe\"] = \"subscribe\";\n MessageType[\"Unsubscribe\"] = \"unsubscribe\";\n})(MessageType = exports.MessageType || (exports.MessageType = {}));\n/**\n *\n * There are two types of hooks: `LifecycleHook.DispatchAction` and `LifecycleHook.UpdateAction`.\n *\n * @remarks\n * `DispatchAction` hooks are run when an action is dispatched with the `.dispatch()` function:\n *\n * ```js\n * const toastNotice = Toast.create(app, {message: 'Product saved'});\n * toastNotice.dispatch(Toast.Action.SHOW);\n * ```\n *\n * `UpdateAction` hooks are run when an action is updated, using the `.set()` function:\n *\n * ```js\n * toastNotice.set({message: 'Product could not be saved', isError: true});\n * ```\n *\n * @public\n */\nvar LifecycleHook;\n(function (LifecycleHook) {\n LifecycleHook[\"UpdateAction\"] = \"UpdateAction\";\n LifecycleHook[\"DispatchAction\"] = \"DispatchAction\";\n})(LifecycleHook = exports.LifecycleHook || (exports.LifecycleHook = {}));\n","if (process.env.NODE_ENV === 'production') {\n module.exports = require('./production');\n} else {\n module.exports = require('./development');\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = void 0;\nvar client_1 = require(\"./client\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return client_1.createApp; } });\n__exportStar(require(\"./MessageTransport\"), exports);\n__exportStar(require(\"./client\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeFromCollection = exports.addAndRemoveFromCollection = void 0;\n/**\n * Add an item to a collection, return a function that can then be used to\n * remove the item from the collection. Optionally accepting a callback that is\n * invoked when the item is removed from the collection.\n *\n * @internal\n */\nfunction addAndRemoveFromCollection(collection, item, then) {\n collection.push(item);\n return function () {\n return removeFromCollection(collection, item, then);\n };\n}\nexports.addAndRemoveFromCollection = addAndRemoveFromCollection;\n/**\n * Remove the item from the collection. Optionally accepting a callback that is\n * invoked when the item is removed from the collection.\n *\n * @internal\n */\nfunction removeFromCollection(collection, item, then) {\n var idx = collection.findIndex(function (i) { return i === item; });\n if (idx >= 0) {\n collection.splice(idx, 1);\n if (then) {\n then(item);\n }\n return true;\n }\n return false;\n}\nexports.removeFromCollection = removeFromCollection;\n","\"use strict\";\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUnframed = exports.isDevelopmentClient = exports.isProduction = exports.isDevelopment = exports.isClient = exports.isServer = void 0;\nexports.isServer = typeof window === 'undefined';\nexports.isClient = !exports.isServer;\nexports.isDevelopment = typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'development';\nexports.isProduction = !exports.isDevelopment;\nexports.isDevelopmentClient = exports.isDevelopment && exports.isClient;\n// eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\nexports.isUnframed = exports.isClient && ((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.indexOf('Unframed')) > 0;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mockAppBridge = exports.serverAppBridge = void 0;\nvar Error_1 = require(\"../actions/Error\");\nvar noop = function () { };\nvar noopPromise = new Promise(function () {\n // Noop\n});\n/**\n * @internal\n */\nexports.serverAppBridge = {\n dispatch: function () {\n return {};\n },\n error: function () {\n return noop;\n },\n featuresAvailable: function () {\n return Promise.reject(Error_1.fromAction('Feature detection is only available on the client side.', Error_1.AppActionType.WINDOW_UNDEFINED));\n },\n getState: function () {\n return Promise.reject(Error_1.fromAction('State is only available on the client side.', Error_1.AppActionType.WINDOW_UNDEFINED));\n },\n localOrigin: '',\n hostOrigin: '',\n subscribe: function () {\n return noop;\n },\n};\n/**\n * @internal\n */\nexports.mockAppBridge = {\n dispatch: function () {\n return {};\n },\n error: function () {\n return noop;\n },\n featuresAvailable: function () {\n return noopPromise;\n },\n getState: function () {\n return noopPromise;\n },\n localOrigin: '',\n hostOrigin: '',\n subscribe: function () {\n return noop;\n },\n};\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","/*!\n * jQuery JavaScript Library v3.6.3\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2022-12-20T21:28Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.3\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.9\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2022-12-19\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// `qSA` may not throw for unrecognized parts using forgiving parsing:\n\t\t\t\t\t// https://drafts.csswg.org/selectors/#forgiving-selector\n\t\t\t\t\t// like the `:has()` pseudo-class:\n\t\t\t\t\t// https://drafts.csswg.org/selectors/#relational\n\t\t\t\t\t// `CSS.supports` is still expected to return `false` then:\n\t\t\t\t\t// https://drafts.csswg.org/css-conditional-4/#typedef-supports-selector-fn\n\t\t\t\t\t// https://drafts.csswg.org/css-conditional-4/#dfn-support-selector\n\t\t\t\t\tif ( support.cssSupportsSelector &&\n\n\t\t\t\t\t\t// eslint-disable-next-line no-undef\n\t\t\t\t\t\t!CSS.supports( \"selector(:is(\" + newSelector + \"))\" ) ) {\n\n\t\t\t\t\t\t// Support: IE 11+\n\t\t\t\t\t\t// Throw to get to the same code path as an error directly in qSA.\n\t\t\t\t\t\t// Note: once we only support browser supporting\n\t\t\t\t\t\t// `CSS.supports('selector(...)')`, we can most likely drop\n\t\t\t\t\t\t// the `try-catch`. IE doesn't implement the API.\n\t\t\t\t\t\tthrow new Error();\n\t\t\t\t\t}\n\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t// Support: Chrome 105+, Firefox 104+, Safari 15.4+\n\t// Make sure forgiving mode is not used in `CSS.supports( \"selector(...)\" )`.\n\t//\n\t// `:is()` uses a forgiving selector list as an argument and is widely\n\t// implemented, so it's a good one to test against.\n\tsupport.cssSupportsSelector = assert( function() {\n\t\t/* eslint-disable no-undef */\n\n\t\treturn CSS.supports( \"selector(*)\" ) &&\n\n\t\t\t// Support: Firefox 78-81 only\n\t\t\t// In old Firefox, `:is()` didn't use forgiving parsing. In that case,\n\t\t\t// fail this test as there's no selector to test against that.\n\t\t\t// `CSS.supports` uses unforgiving parsing\n\t\t\tdocument.querySelectorAll( \":is(:jqfake)\" ) &&\n\n\t\t\t// `*` is needed as Safari & newer Chrome implemented something in between\n\t\t\t// for `:has()` - it throws in `qSA` if it only contains an unsupported\n\t\t\t// argument but multiple ones, one of which is supported, are fine.\n\t\t\t// We want to play safe in case `:is()` gets the same treatment.\n\t\t\t!CSS.supports( \"selector(:is(*,:jqfake))\" );\n\n\t\t/* eslint-enable */\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\tif ( !support.cssSupportsSelector ) {\n\n\t\t// Support: Chrome 105+, Safari 15.4+\n\t\t// `:has()` uses a forgiving selector list as an argument so our regular\n\t\t// `try-catch` mechanism fails to catch `:has()` with arguments not supported\n\t\t// natively like `:has(:contains(\"Foo\"))`. Where supported & spec-compliant,\n\t\t// we now use `CSS.supports(\"selector(:is(SELECTOR_TO_BE_TESTED))\")`, but\n\t\t// outside that we mark `:has` as buggy.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\n\t\t\t// Support: IE <9 only\n\t\t\t// IE doesn't have `contains` on `document` so we need to check for\n\t\t\t// `documentElement` presence.\n\t\t\t// We need to fall back to `a` when `documentElement` is missing\n\t\t\t// as `ownerDocument` of elements within `<template/>` may have\n\t\t\t// a null one - a default behavior of all modern browsers.\n\t\t\tvar adown = a.nodeType === 9 && a.documentElement || a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\n\trcleanScript = /^\\s*<!\\[CDATA\\[|\\]\\]>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\n// Require that the \"whitespace run\" starts from a non-whitespace\n// to avoid O(N^2) behavior when the engine would try matching \"\\s+$\" at each space position.\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|([^\\s\\uFEFF\\xA0])[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"$1\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (trac-13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\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/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\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 objectToString = objectProto.toString;\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 * 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\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 result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\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 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\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 && (type == 'object' || type == 'function');\n}\n\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 && typeof value == 'object';\n}\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) && objectToString.call(value) == symbolTag);\n}\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 = value.replace(reTrim, '');\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 = debounce;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(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)}function kb(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\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=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(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=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.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"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&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(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,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;\nfunction Lg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction Mg(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function Ng(a){var b=a._init;return b(a._payload)}\nfunction Og(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Pg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Qg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&Ng(f)===b.type))return d=e(b,c.props),d.ref=Lg(a,b,c),d.return=a,d;d=Rg(c.type,c.key,c.props,null,a.mode,d);d.ref=Lg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=Sg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Tg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=Qg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=Rg(b.type,b.key,b.props,null,a.mode,c),\nc.ref=Lg(a,null,b),c.return=a,c;case wa:return b=Sg(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Tg(b,a.mode,c,null),b.return=a,b;Mg(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);Mg(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);Mg(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(a){if(a===th)throw Error(p(174));return a}\nfunction yh(a,b){G(wh,b);G(vh,a);G(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(uh);G(uh,b)}function zh(){E(uh);E(vh);E(wh)}function Ah(a){xh(wh.current);var b=xh(uh.current);var c=lb(b,a.type);b!==c&&(G(vh,a),G(uh,c))}function Bh(a){vh.current===a&&(E(uh),E(vh))}var L=Uf(0);\nfunction Ch(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&128))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 Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M=null,N=null,O=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function P(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;M=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;O=N=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==N&&null!==N.next;Hh=0;O=N=M=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===O?M.memoizedState=O=a:O=O.next=a;return O}function Uh(){if(null===N){var a=M.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===O?M.memoizedState:O.next;if(null!==b)O=b,N=a;else{if(null===a)throw Error(p(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===O?M.memoizedState=O=a:O=O.next=a}return O}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=N,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){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;M.lanes|=m;rh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(dh=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,M.lanes|=f,rh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(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)||(dh=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=M,d=Uh(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,dh=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==O&&O.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===Q)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&fi(a)}function ai(a,b,c){return c(function(){ei(b)&&fi(a)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function fi(a){var b=ih(a,1);null!==b&&gi(b,a,1,-1)}\nfunction hi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=ii.bind(null,M,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function ji(){return Uh().memoizedState}function ki(a,b,c,d){var e=Th();M.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction li(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}M.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function mi(a,b){return ki(8390656,8,a,b)}function $h(a,b){return li(2048,8,a,b)}function ni(a,b){return li(4,2,a,b)}function oi(a,b){return li(4,4,a,b)}\nfunction pi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function qi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return li(4,4,pi.bind(null,b,a),c)}function ri(){}function si(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ti(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ui(a,b,c){if(0===(Hh&21))return a.baseState&&(a.baseState=!1,dh=!0),a.memoizedState=c;He(c,b)||(c=yc(),M.lanes|=c,rh|=c,a.baseState=!0);return b}function vi(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},\nuseDebugValue:ri,useDeferredValue:function(a){var b=Uh();return ui(b,N.memoizedState,a)},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(a){var b=Uh();return null===\nN?b.memoizedState=a:ui(b,N.memoizedState,a)},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Di(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Ei={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=R(),d=\nyi(a),e=mh(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=nh(a,e,d);null!==b&&(gi(b,a,d,c),oh(b,a,d))}};function Fi(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction Gi(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=eh(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Ei;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Hi(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Ei.enqueueReplaceState(b,b.state,null)}\nfunction Ii(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs={};kh(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=eh(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Di(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Ei.enqueueReplaceState(e,e.state,null),qh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}function Ji(a,b){try{var c=\"\",d=b;do c+=Pa(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,digest:null}}\nfunction Ki(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function Li(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Mi=\"function\"===typeof WeakMap?WeakMap:Map;function Ni(a,b,c){c=mh(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Oi||(Oi=!0,Pi=d);Li(a,b)};return c}\nfunction Qi(a,b,c){c=mh(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Li(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Li(a,b);\"function\"!==typeof d&&(null===Ri?Ri=new Set([this]):Ri.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Si(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Mi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ti.bind(null,a,b,c),b.then(a,a))}function Ui(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Vi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=mh(-1,1),b.tag=2,nh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(a,b,c,d){b.child=null===a?Vg(b,null,c,d):Ug(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ch(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&c&&vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=Rg(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=Pg(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(dh=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(dh=!0);else return b.lanes=a.lanes,Zi(a,b,e)}return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(ej,fj),fj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(ej,fj),fj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(ej,fj);fj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(ej,fj),fj|=d;Xi(a,b,e,c);return b.child}function gj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);ch(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&d&&vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction hj(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;ch(b,e);if(null===b.stateNode)ij(a,b),Gi(b,c,d),Ii(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=eh(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&Hi(b,g,d,l);jh=!1;var r=b.memoizedState;g.state=r;qh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||jh?(\"function\"===typeof m&&(Di(b,c,m,d),k=b.memoizedState),(h=jh||Fi(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;lh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Ci(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=eh(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&Hi(b,g,d,k);jh=!1;r=b.memoizedState;g.state=r;qh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||jh?(\"function\"===typeof y&&(Di(b,c,y,d),n=b.memoizedState),(l=jh||Fi(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return jj(a,b,c,d,f,e)}\nfunction jj(a,b,c,d,e,f){gj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Ug(b,a.child,null,f),b.child=Ug(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function kj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);yh(a,b.containerInfo)}\nfunction lj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Xi(a,b,c,d);return b.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction oj(a,b,c){var d=b.pendingProps,e=L.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(L,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=pj(g,d,0,null),a=Tg(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=nj(c),b.memoizedState=mj,a):qj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return rj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=Pg(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=Pg(h,f):(f=Tg(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?nj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=mj;return d}f=a.child;a=f.sibling;d=Pg(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction qj(a,b){b=pj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){null!==d&&Jg(d);Ug(b,a.child,null,c);a=qj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction rj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Ki(Error(p(422))),sj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=pj({mode:\"visible\",children:d.children},e,0,null);f=Tg(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Ug(b,a.child,null,g);b.child.memoizedState=nj(g);b.memoizedState=mj;return f}if(0===(b.mode&1))return sj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Ki(f,d,void 0);return sj(a,b,g,d)}h=0!==(g&a.childLanes);if(dh||h){d=Q;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,ih(a,e),gi(d,a,e,-1))}tj();d=Ki(Error(p(421)));return sj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=uj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=qj(b,d.children);b.flags|=4096;return b}function vj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);bh(a.return,b,c)}\nfunction wj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction xj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=L.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&vj(a,c,b);else if(19===a.tag)vj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(L,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);wj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}wj(b,!0,c,null,f);break;case \"together\":wj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction ij(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);rh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=Pg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Pg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction yj(a,b,c){switch(b.tag){case 3:kj(b);Ig();break;case 5:Ah(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Wg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(L,L.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return oj(a,b,c);G(L,L.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}G(L,L.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return xj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(L,L.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}var zj,Aj,Bj,Cj;\nzj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&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}c.sibling.return=c.return;c=c.sibling}};Aj=function(){};\nBj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Cj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Dj(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Ej(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;zh();E(Wf);E(H);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Fj(zg),zg=null));Aj(a,b);S(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Bj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Cj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(L);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Fj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(L.current&1)?0===T&&(T=3):tj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return zh(),\nAj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return ah(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(L);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dj(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Dj(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(L,L.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Gj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Xj=!1;break a;case 3:X=h.stateNode.containerInfo;Xj=!0;break a;case 4:X=h.stateNode.containerInfo;Xj=!0;break a}h=h.return}if(null===X)throw Error(p(160));Zj(f,g,e);X=null;Xj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)dk(b,a),b=b.sibling}\nfunction dk(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:ck(b,a);ek(a);if(d&4){try{Pj(3,a,a.return),Qj(3,a)}catch(t){W(a,a.return,t)}try{Pj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);break;case 5:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:ck(b,a);ek(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:ck(b,a);ek(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:ck(b,a);ek(a);break;case 13:ck(b,a);ek(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(fk=B()));d&4&&ak(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,ck(b,a),U=l):ck(b,a);ek(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Pj(4,r,r.return);break;case 1:Lj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Lj(r,r.return);break;case 22:if(null!==r.memoizedState){gk(q);continue}}null!==y?(y.return=r,V=y):gk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:ck(b,a);ek(a);d&4&&ak(a);break;case 21:break;default:ck(b,\na),ek(a)}}function ek(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Tj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Uj(a);Wj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Uj(a);Vj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function hk(a,b,c){V=a;ik(a,b,c)}\nfunction ik(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Jj;var l=U;Jj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?jk(e):null!==k?(k.return=g,V=k):jk(e);for(;null!==f;)V=f,ik(f,b,c),f=f.sibling;V=e;Jj=h;U=l}kk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):kk(a,b,c)}}\nfunction kk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Qj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Ci(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&sh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}sh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Rj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function gk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction jk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Qj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Rj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Rj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K=0,Q=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=Infinity,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R(){return 0!==(K&6)?B():-1!==Ak?Ak:Ak=B()}\nfunction yi(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Bk&&(Bk=yc()),Bk;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function gi(a,b,c,d){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==Q)a===Q&&(0===(K&2)&&(qk|=c),4===T&&Ck(a,Z)),Dk(a,d),1===c&&0===K&&0===(b.mode&1)&&(Gj=B()+500,fg&&jg())}\nfunction Dk(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===Q?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Ek.bind(null,a)):hg(Ek.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Fk(c,Gk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Gk(a,b){Ak=-1;Bk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Hk()&&a.callbackNode!==c)return null;var d=uc(a,a===Q?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Ik(a,d);else{b=d;var e=K;K|=2;var f=Jk();if(Q!==a||Z!==b)uk=null,Gj=B()+500,Kk(a,b);do try{Lk();break}catch(h){Mk(a,h)}while(1);$g();mk.current=f;K=e;null!==Y?b=0:(Q=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Nk(a,e)));if(1===b)throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;if(6===b)Ck(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Ok(e)&&(b=Ik(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Nk(a,f))),1===b))throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Pk(a,tk,uk);break;case 3:Ck(a,d);if((d&130023424)===d&&(b=fk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){R();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),b);break}Pk(a,tk,uk);break;case 4:Ck(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),d);break}Pk(a,tk,uk);break;case 5:Pk(a,tk,uk);break;default:throw Error(p(329));}}}Dk(a,B());return a.callbackNode===c?Gk.bind(null,a):null}\nfunction Nk(a,b){var c=sk;a.current.memoizedState.isDehydrated&&(Kk(a,b).flags|=256);a=Ik(a,b);2!==a&&(b=tk,tk=c,null!==b&&Fj(b));return a}function Fj(a){null===tk?tk=a:tk.push.apply(tk,a)}\nfunction Ok(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Ck(a,b){b&=~rk;b&=~qk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Ek(a){if(0!==(K&6))throw Error(p(327));Hk();var b=uc(a,0);if(0===(b&1))return Dk(a,B()),null;var c=Ik(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Nk(a,d))}if(1===c)throw c=pk,Kk(a,0),Ck(a,b),Dk(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Pk(a,tk,uk);Dk(a,B());return null}\nfunction Qk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Gj=B()+500,fg&&jg())}}function Rk(a){null!==wk&&0===wk.tag&&0===(K&6)&&Hk();var b=K;K|=1;var c=ok.transition,d=C;try{if(ok.transition=null,C=1,a)return a()}finally{C=d,ok.transition=c,K=b,0===(K&6)&&jg()}}function Hj(){fj=ej.current;E(ej)}\nfunction Kk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:zh();E(Wf);E(H);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:E(L);break;case 19:E(L);break;case 10:ah(d.type._context);break;case 22:case 23:Hj()}c=c.return}Q=a;Y=a=Pg(a.current,null);Z=fj=b;T=0;pk=null;rk=qk=rh=0;tk=sk=null;if(null!==fh){for(b=\n0;b<fh.length;b++)if(c=fh[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}fh=null}return a}\nfunction Mk(a,b){do{var c=Y;try{$g();Fh.current=Rh;if(Ih){for(var d=M.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;O=N=M=null;Jh=!1;Kh=0;nk.current=null;if(null===c||null===c.return){T=1;pk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ui(g);if(null!==y){y.flags&=-257;Vi(y,g,h,f,b);y.mode&1&&Si(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Si(f,l,b);tj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Ui(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Vi(J,g,h,f,b);Jg(Ji(k,h));break a}}f=k=Ji(k,h);4!==T&&(T=2);null===sk?sk=[f]:sk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Ni(f,k,b);ph(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Ri||!Ri.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Qi(f,h,b);ph(f,F);break a}}f=f.return}while(null!==f)}Sk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Jk(){var a=mk.current;mk.current=Rh;return null===a?Rh:a}\nfunction tj(){if(0===T||3===T||2===T)T=4;null===Q||0===(rh&268435455)&&0===(qk&268435455)||Ck(Q,Z)}function Ik(a,b){var c=K;K|=2;var d=Jk();if(Q!==a||Z!==b)uk=null,Kk(a,b);do try{Tk();break}catch(e){Mk(a,e)}while(1);$g();K=c;mk.current=d;if(null!==Y)throw Error(p(261));Q=null;Z=0;return T}function Tk(){for(;null!==Y;)Uk(Y)}function Lk(){for(;null!==Y&&!cc();)Uk(Y)}function Uk(a){var b=Vk(a.alternate,a,fj);a.memoizedProps=a.pendingProps;null===b?Sk(a):Y=b;nk.current=null}\nfunction Sk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Ej(c,b,fj),null!==c){Y=c;return}}else{c=Ij(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Pk(a,b,c){var d=C,e=ok.transition;try{ok.transition=null,C=1,Wk(a,b,c,d)}finally{ok.transition=e,C=d}return null}\nfunction Wk(a,b,c,d){do Hk();while(null!==wk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===Q&&(Y=Q=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||vk||(vk=!0,Fk(hc,function(){Hk();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ok.transition;ok.transition=null;\nvar g=C;C=1;var h=K;K|=4;nk.current=null;Oj(a,c);dk(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;hk(c,a,e);dc();K=h;C=g;ok.transition=f}else a.current=c;vk&&(vk=!1,wk=a,xk=e);f=a.pendingLanes;0===f&&(Ri=null);mc(c.stateNode,d);Dk(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Oi)throw Oi=!1,a=Pi,Pi=null,a;0!==(xk&1)&&0!==a.tag&&Hk();f=a.pendingLanes;0!==(f&1)?a===zk?yk++:(yk=0,zk=a):yk=0;jg();return null}\nfunction Hk(){if(null!==wk){var a=Dc(xk),b=ok.transition,c=C;try{ok.transition=null;C=16>a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Pj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Sj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Pj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Qj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,ok.transition=b}}return!1}function Xk(a,b,c){b=Ji(c,b);b=Ni(a,b,1);a=nh(a,b,1);b=R();null!==a&&(Ac(a,1,b),Dk(a,b))}\nfunction W(a,b,c){if(3===a.tag)Xk(a,a,c);else for(;null!==b;){if(3===b.tag){Xk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ri||!Ri.has(d))){a=Ji(c,a);a=Qi(b,a,1);b=nh(b,a,1);a=R();null!==b&&(Ac(b,1,a),Dk(b,a));break}}b=b.return}}\nfunction Ti(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=R();a.pingedLanes|=a.suspendedLanes&c;Q===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction dl(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction el(a,b,c,d,e,f,g,h,k){a=bl(c,d,!0,a,e,f,g,h,k);a.context=dl(null);c=a.current;d=R();e=yi(c);f=mh(d,e);f.callback=void 0!==b&&null!==b?b:null;nh(c,f,e);a.current.lanes=e;Ac(a,e,d);Dk(a,d);return a}function fl(a,b,c,d){var e=b.current,f=R(),g=yi(e);c=dl(c);null===b.context?b.context=c:b.pendingContext=c;b=mh(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=nh(e,b,g);null!==a&&(gi(a,e,g,f),oh(a,e,g));return g}\nfunction gl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function hl(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function il(a,b){hl(a,b);(a=a.alternate)&&hl(a,b)}function jl(){return null}var kl=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ll(a){this._internalRoot=a}\nml.prototype.render=ll.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));fl(a,b,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Rk(function(){fl(null,a,null,null)});b[uf]=null}};function ml(a){this._internalRoot=a}\nml.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function nl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function pl(){}\nfunction ql(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=gl(g);f.call(a)}}var g=el(b,d,a,0,null,!1,!1,\"\",pl);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Rk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=gl(k);h.call(a)}}var k=bl(a,0,!1,null,null,!1,!1,\"\",pl);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Rk(function(){fl(b,k,c,d)});return k}\nfunction rl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=gl(g);h.call(a)}}fl(b,g,a,e)}else g=ql(c,b,a,e,d);return gl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Dk(b,B()),0===(K&6)&&(Gj=B()+500,jg()))}break;case 13:Rk(function(){var b=ih(a,1);if(null!==b){var c=R();gi(b,a,1,c)}}),il(a,1)}};\nFc=function(a){if(13===a.tag){var b=ih(a,134217728);if(null!==b){var c=R();gi(b,a,134217728,c)}il(a,134217728)}};Gc=function(a){if(13===a.tag){var b=yi(a),c=ih(a,b);if(null!==c){var d=R();gi(c,a,b,d)}il(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Qk;Hb=Rk;\nvar sl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"};\nvar ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||\njl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nl(b))throw Error(p(200));return cl(a,b,null,c)};exports.createRoot=function(a,b){if(!nl(a))throw Error(p(299));var c=!1,d=\"\",e=kl;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=bl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ll(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Rk(a)};exports.hydrate=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!nl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=kl;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=el(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new ml(b)};exports.render=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!ol(a))throw Error(p(40));return a._reactRootContainer?(Rk(function(){rl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Qk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!ol(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return rl(a,b,c,!1,d)};exports.version=\"18.3.1-next-f1338f8080-20240426\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var FocusManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(FocusManager, _Subscribable);\n\n function FocusManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onFocus) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onFocus();\n }; // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = FocusManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (focused) {\n if (typeof focused === 'boolean') {\n _this2.setFocused(focused);\n } else {\n _this2.onFocus();\n }\n });\n };\n\n _proto.setFocused = function setFocused(focused) {\n this.focused = focused;\n\n if (focused) {\n this.onFocus();\n }\n };\n\n _proto.onFocus = function onFocus() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isFocused = function isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n };\n\n return FocusManager;\n}(Subscribable);\nexport var focusManager = new FocusManager();","// TYPES\n// FUNCTIONS\nvar logger = console;\nexport function getLogger() {\n return logger;\n}\nexport function setLogger(newLogger) {\n logger = newLogger;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getLogger } from './logger';\nimport { notifyManager } from './notifyManager';\nimport { Retryer } from './retryer';\nimport { noop } from './utils'; // TYPES\n\n// CLASS\nexport var Mutation = /*#__PURE__*/function () {\n function Mutation(config) {\n this.options = _extends({}, config.defaultOptions, config.options);\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.meta = config.meta;\n }\n\n var _proto = Mutation.prototype;\n\n _proto.setState = function setState(state) {\n this.dispatch({\n type: 'setState',\n state: state\n });\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n };\n\n _proto.cancel = function cancel() {\n if (this.retryer) {\n this.retryer.cancel();\n return this.retryer.promise.then(noop).catch(noop);\n }\n\n return Promise.resolve();\n };\n\n _proto.continue = function _continue() {\n if (this.retryer) {\n this.retryer.continue();\n return this.retryer.promise;\n }\n\n return this.execute();\n };\n\n _proto.execute = function execute() {\n var _this = this;\n\n var data;\n var restored = this.state.status === 'loading';\n var promise = Promise.resolve();\n\n if (!restored) {\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n });\n promise = promise.then(function () {\n // Notify cache callback\n _this.mutationCache.config.onMutate == null ? void 0 : _this.mutationCache.config.onMutate(_this.state.variables, _this);\n }).then(function () {\n return _this.options.onMutate == null ? void 0 : _this.options.onMutate(_this.state.variables);\n }).then(function (context) {\n if (context !== _this.state.context) {\n _this.dispatch({\n type: 'loading',\n context: context,\n variables: _this.state.variables\n });\n }\n });\n }\n\n return promise.then(function () {\n return _this.executeMutation();\n }).then(function (result) {\n data = result; // Notify cache callback\n\n _this.mutationCache.config.onSuccess == null ? void 0 : _this.mutationCache.config.onSuccess(data, _this.state.variables, _this.state.context, _this);\n }).then(function () {\n return _this.options.onSuccess == null ? void 0 : _this.options.onSuccess(data, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(data, null, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'success',\n data: data\n });\n\n return data;\n }).catch(function (error) {\n // Notify cache callback\n _this.mutationCache.config.onError == null ? void 0 : _this.mutationCache.config.onError(error, _this.state.variables, _this.state.context, _this); // Log error\n\n getLogger().error(error);\n return Promise.resolve().then(function () {\n return _this.options.onError == null ? void 0 : _this.options.onError(error, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(undefined, error, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'error',\n error: error\n });\n\n throw error;\n });\n });\n };\n\n _proto.executeMutation = function executeMutation() {\n var _this2 = this,\n _this$options$retry;\n\n this.retryer = new Retryer({\n fn: function fn() {\n if (!_this2.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return _this2.options.mutationFn(_this2.state.variables);\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay\n });\n return this.retryer.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onMutationUpdate(action);\n });\n\n _this3.mutationCache.notify(_this3);\n });\n };\n\n return Mutation;\n}();\nexport function getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nfunction reducer(state, action) {\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n failureCount: state.failureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'loading':\n return _extends({}, state, {\n context: action.context,\n data: undefined,\n error: null,\n isPaused: false,\n status: 'loading',\n variables: action.variables\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n error: null,\n status: 'success',\n isPaused: false\n });\n\n case 'error':\n return _extends({}, state, {\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n isPaused: false,\n status: 'error'\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n}","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { notifyManager } from './notifyManager';\nimport { Mutation } from './mutation';\nimport { matchMutation, noop } from './utils';\nimport { Subscribable } from './subscribable'; // TYPES\n\n// CLASS\nexport var MutationCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(MutationCache, _Subscribable);\n\n function MutationCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.mutations = [];\n _this.mutationId = 0;\n return _this;\n }\n\n var _proto = MutationCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state: state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined,\n meta: options.meta\n });\n this.add(mutation);\n return mutation;\n };\n\n _proto.add = function add(mutation) {\n this.mutations.push(mutation);\n this.notify(mutation);\n };\n\n _proto.remove = function remove(mutation) {\n this.mutations = this.mutations.filter(function (x) {\n return x !== mutation;\n });\n mutation.cancel();\n this.notify(mutation);\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.mutations.forEach(function (mutation) {\n _this2.remove(mutation);\n });\n });\n };\n\n _proto.getAll = function getAll() {\n return this.mutations;\n };\n\n _proto.find = function find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.findAll = function findAll(filters) {\n return this.mutations.filter(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.notify = function notify(mutation) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(mutation);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n this.resumePausedMutations();\n };\n\n _proto.onOnline = function onOnline() {\n this.resumePausedMutations();\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n var pausedMutations = this.mutations.filter(function (x) {\n return x.state.isPaused;\n });\n return notifyManager.batch(function () {\n return pausedMutations.reduce(function (promise, mutation) {\n return promise.then(function () {\n return mutation.continue().catch(noop);\n });\n }, Promise.resolve());\n });\n };\n\n return MutationCache;\n}(Subscribable);","import { scheduleMicrotask } from './utils'; // TYPES\n\n// CLASS\nexport var NotifyManager = /*#__PURE__*/function () {\n function NotifyManager() {\n this.queue = [];\n this.transactions = 0;\n\n this.notifyFn = function (callback) {\n callback();\n };\n\n this.batchNotifyFn = function (callback) {\n callback();\n };\n }\n\n var _proto = NotifyManager.prototype;\n\n _proto.batch = function batch(callback) {\n var result;\n this.transactions++;\n\n try {\n result = callback();\n } finally {\n this.transactions--;\n\n if (!this.transactions) {\n this.flush();\n }\n }\n\n return result;\n };\n\n _proto.schedule = function schedule(callback) {\n var _this = this;\n\n if (this.transactions) {\n this.queue.push(callback);\n } else {\n scheduleMicrotask(function () {\n _this.notifyFn(callback);\n });\n }\n }\n /**\n * All calls to the wrapped function will be batched.\n */\n ;\n\n _proto.batchCalls = function batchCalls(callback) {\n var _this2 = this;\n\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this2.schedule(function () {\n callback.apply(void 0, args);\n });\n };\n };\n\n _proto.flush = function flush() {\n var _this3 = this;\n\n var queue = this.queue;\n this.queue = [];\n\n if (queue.length) {\n scheduleMicrotask(function () {\n _this3.batchNotifyFn(function () {\n queue.forEach(function (callback) {\n _this3.notifyFn(callback);\n });\n });\n });\n }\n }\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n ;\n\n _proto.setNotifyFunction = function setNotifyFunction(fn) {\n this.notifyFn = fn;\n }\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n ;\n\n _proto.setBatchNotifyFunction = function setBatchNotifyFunction(fn) {\n this.batchNotifyFn = fn;\n };\n\n return NotifyManager;\n}(); // SINGLETON\n\nexport var notifyManager = new NotifyManager();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var OnlineManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(OnlineManager, _Subscribable);\n\n function OnlineManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onOnline) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onOnline();\n }; // Listen to online\n\n\n window.addEventListener('online', listener, false);\n window.addEventListener('offline', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener);\n window.removeEventListener('offline', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = OnlineManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (online) {\n if (typeof online === 'boolean') {\n _this2.setOnline(online);\n } else {\n _this2.onOnline();\n }\n });\n };\n\n _proto.setOnline = function setOnline(online) {\n this.online = online;\n\n if (online) {\n this.onOnline();\n }\n };\n\n _proto.onOnline = function onOnline() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isOnline = function isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n };\n\n return OnlineManager;\n}(Subscribable);\nexport var onlineManager = new OnlineManager();","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getAbortController, functionalUpdate, isValidTimeout, noop, replaceEqualDeep, timeUntilStale, ensureQueryKeyArray } from './utils';\nimport { notifyManager } from './notifyManager';\nimport { getLogger } from './logger';\nimport { Retryer, isCancelledError } from './retryer'; // TYPES\n\n// CLASS\nexport var Query = /*#__PURE__*/function () {\n function Query(config) {\n this.abortSignalConsumed = false;\n this.hadObservers = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || this.getDefaultState(this.options);\n this.state = this.initialState;\n this.meta = config.meta;\n this.scheduleGc();\n }\n\n var _proto = Query.prototype;\n\n _proto.setOptions = function setOptions(options) {\n var _this$options$cacheTi;\n\n this.options = _extends({}, this.defaultOptions, options);\n this.meta = options == null ? void 0 : options.meta; // Default to 5 minutes if not cache time is set\n\n this.cacheTime = Math.max(this.cacheTime || 0, (_this$options$cacheTi = this.options.cacheTime) != null ? _this$options$cacheTi : 5 * 60 * 1000);\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.scheduleGc = function scheduleGc() {\n var _this = this;\n\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(function () {\n _this.optionalRemove();\n }, this.cacheTime);\n }\n };\n\n _proto.clearGcTimeout = function clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n }\n };\n\n _proto.optionalRemove = function optionalRemove() {\n if (!this.observers.length) {\n if (this.state.isFetching) {\n if (this.hadObservers) {\n this.scheduleGc();\n }\n } else {\n this.cache.remove(this);\n }\n }\n };\n\n _proto.setData = function setData(updater, options) {\n var _this$options$isDataE, _this$options;\n\n var prevData = this.state.data; // Get the new data\n\n var data = functionalUpdate(updater, prevData); // Use prev data if an isDataEqual function is defined and returns `true`\n\n if ((_this$options$isDataE = (_this$options = this.options).isDataEqual) == null ? void 0 : _this$options$isDataE.call(_this$options, prevData, data)) {\n data = prevData;\n } else if (this.options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n data = replaceEqualDeep(prevData, data);\n } // Set data and mark it as cached\n\n\n this.dispatch({\n data: data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt\n });\n return data;\n };\n\n _proto.setState = function setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state: state,\n setStateOptions: setStateOptions\n });\n };\n\n _proto.cancel = function cancel(options) {\n var _this$retryer;\n\n var promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n };\n\n _proto.destroy = function destroy() {\n this.clearGcTimeout();\n this.cancel({\n silent: true\n });\n };\n\n _proto.reset = function reset() {\n this.destroy();\n this.setState(this.initialState);\n };\n\n _proto.isActive = function isActive() {\n return this.observers.some(function (observer) {\n return observer.options.enabled !== false;\n });\n };\n\n _proto.isFetching = function isFetching() {\n return this.state.isFetching;\n };\n\n _proto.isStale = function isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(function (observer) {\n return observer.getCurrentResult().isStale;\n });\n };\n\n _proto.isStaleByTime = function isStaleByTime(staleTime) {\n if (staleTime === void 0) {\n staleTime = 0;\n }\n\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n };\n\n _proto.onFocus = function onFocus() {\n var _this$retryer2;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnWindowFocus();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n };\n\n _proto.onOnline = function onOnline() {\n var _this$retryer3;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnReconnect();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n this.hadObservers = true; // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n if (this.observers.indexOf(observer) !== -1) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.retryer.isTransportCancelable || this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n if (this.cacheTime) {\n this.scheduleGc();\n } else {\n this.cache.remove(this);\n }\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.getObserversCount = function getObserversCount() {\n return this.observers.length;\n };\n\n _proto.invalidate = function invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n };\n\n _proto.fetch = function fetch(options, fetchOptions) {\n var _this2 = this,\n _this$options$behavio,\n _context$fetchOptions,\n _abortController$abor;\n\n if (this.state.isFetching) {\n if (this.state.dataUpdatedAt && (fetchOptions == null ? void 0 : fetchOptions.cancelRefetch)) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n var observer = this.observers.find(function (x) {\n return x.options.queryFn;\n });\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n var queryKey = ensureQueryKeyArray(this.queryKey);\n var abortController = getAbortController(); // Create query function context\n\n var queryFnContext = {\n queryKey: queryKey,\n pageParam: undefined,\n meta: this.meta\n };\n Object.defineProperty(queryFnContext, 'signal', {\n enumerable: true,\n get: function get() {\n if (abortController) {\n _this2.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n }); // Create fetch function\n\n var fetchFn = function fetchFn() {\n if (!_this2.options.queryFn) {\n return Promise.reject('Missing queryFn');\n }\n\n _this2.abortSignalConsumed = false;\n return _this2.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n var context = {\n fetchOptions: fetchOptions,\n options: this.options,\n queryKey: queryKey,\n state: this.state,\n fetchFn: fetchFn,\n meta: this.meta\n };\n\n if ((_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch) {\n var _this$options$behavio2;\n\n (_this$options$behavio2 = this.options.behavior) == null ? void 0 : _this$options$behavio2.onFetch(context);\n } // Store state in case the current fetch needs to be reverted\n\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (!this.state.isFetching || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n } // Try to fetch the data\n\n\n this.retryer = new Retryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : (_abortController$abor = abortController.abort) == null ? void 0 : _abortController$abor.bind(abortController),\n onSuccess: function onSuccess(data) {\n _this2.setData(data); // Notify cache callback\n\n\n _this2.cache.config.onSuccess == null ? void 0 : _this2.cache.config.onSuccess(data, _this2); // Remove query after fetching if cache time is 0\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onError: function onError(error) {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n _this2.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n _this2.cache.config.onError == null ? void 0 : _this2.cache.config.onError(error, _this2); // Log error\n\n getLogger().error(error);\n } // Remove query after fetching if cache time is 0\n\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay\n });\n this.promise = this.retryer.promise;\n return this.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = this.reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onQueryUpdate(action);\n });\n\n _this3.cache.notify({\n query: _this3,\n type: 'queryUpdated',\n action: action\n });\n });\n };\n\n _proto.getDefaultState = function getDefaultState(options) {\n var data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n var hasInitialData = typeof options.initialData !== 'undefined';\n var initialDataUpdatedAt = hasInitialData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n var hasData = typeof data !== 'undefined';\n return {\n data: data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchMeta: null,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: hasData ? 'success' : 'idle'\n };\n };\n\n _proto.reducer = function reducer(state, action) {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n fetchFailureCount: state.fetchFailureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'fetch':\n return _extends({}, state, {\n fetchFailureCount: 0,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n isFetching: true,\n isPaused: false\n }, !state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n fetchFailureCount: 0,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: 'success'\n });\n\n case 'error':\n var error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return _extends({}, this.revertState);\n }\n\n return _extends({}, state, {\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n isFetching: false,\n isPaused: false,\n status: 'error'\n });\n\n case 'invalidate':\n return _extends({}, state, {\n isInvalidated: true\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n };\n\n return Query;\n}();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils';\nimport { Query } from './query';\nimport { notifyManager } from './notifyManager';\nimport { Subscribable } from './subscribable';\n// CLASS\nexport var QueryCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(QueryCache, _Subscribable);\n\n function QueryCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.queries = [];\n _this.queriesMap = {};\n return _this;\n }\n\n var _proto = QueryCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var _options$queryHash;\n\n var queryKey = options.queryKey;\n var queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n var query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey: queryKey,\n queryHash: queryHash,\n options: client.defaultQueryOptions(options),\n state: state,\n defaultOptions: client.getQueryDefaults(queryKey),\n meta: options.meta\n });\n this.add(query);\n }\n\n return query;\n };\n\n _proto.add = function add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'queryAdded',\n query: query\n });\n }\n };\n\n _proto.remove = function remove(query) {\n var queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(function (x) {\n return x !== query;\n });\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'queryRemoved',\n query: query\n });\n }\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.queries.forEach(function (query) {\n _this2.remove(query);\n });\n });\n };\n\n _proto.get = function get(queryHash) {\n return this.queriesMap[queryHash];\n };\n\n _proto.getAll = function getAll() {\n return this.queries;\n };\n\n _proto.find = function find(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(function (query) {\n return matchQuery(filters, query);\n });\n };\n\n _proto.findAll = function findAll(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n return Object.keys(filters).length > 0 ? this.queries.filter(function (query) {\n return matchQuery(filters, query);\n }) : this.queries;\n };\n\n _proto.notify = function notify(event) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(event);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n var _this4 = this;\n\n notifyManager.batch(function () {\n _this4.queries.forEach(function (query) {\n query.onFocus();\n });\n });\n };\n\n _proto.onOnline = function onOnline() {\n var _this5 = this;\n\n notifyManager.batch(function () {\n _this5.queries.forEach(function (query) {\n query.onOnline();\n });\n });\n };\n\n return QueryCache;\n}(Subscribable);","import { isCancelable } from './retryer';\nimport { getAbortController } from './utils';\nexport function infiniteQueryBehavior() {\n return {\n onFetch: function onFetch(context) {\n context.fetchFn = function () {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n var refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n var fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n var pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n var isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n var isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n var oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n var oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n var abortController = getAbortController();\n var abortSignal = abortController == null ? void 0 : abortController.signal;\n var newPageParams = oldPageParams;\n var cancelled = false; // Get query function\n\n var queryFn = context.options.queryFn || function () {\n return Promise.reject('Missing queryFn');\n };\n\n var buildNewPages = function buildNewPages(pages, param, page, previous) {\n newPageParams = previous ? [param].concat(newPageParams) : [].concat(newPageParams, [param]);\n return previous ? [page].concat(pages) : [].concat(pages, [page]);\n }; // Create function to fetch a page\n\n\n var fetchPage = function fetchPage(pages, manual, param, previous) {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n var queryFnContext = {\n queryKey: context.queryKey,\n signal: abortSignal,\n pageParam: param,\n meta: context.meta\n };\n var queryFnResult = queryFn(queryFnContext);\n var promise = Promise.resolve(queryFnResult).then(function (page) {\n return buildNewPages(pages, param, page, previous);\n });\n\n if (isCancelable(queryFnResult)) {\n var promiseAsAny = promise;\n promiseAsAny.cancel = queryFnResult.cancel;\n }\n\n return promise;\n };\n\n var promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n var manual = typeof pageParam !== 'undefined';\n var param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n var _manual = typeof pageParam !== 'undefined';\n\n var _param = _manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n\n promise = fetchPage(oldPages, _manual, _param, true);\n } // Refetch pages\n else {\n (function () {\n newPageParams = [];\n var manual = typeof context.options.getNextPageParam === 'undefined';\n var shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n var _loop = function _loop(i) {\n promise = promise.then(function (pages) {\n var shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n var _param2 = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n\n return fetchPage(pages, manual, _param2);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n };\n\n for (var i = 1; i < oldPages.length; i++) {\n _loop(i);\n }\n })();\n }\n\n var finalPromise = promise.then(function (pages) {\n return {\n pages: pages,\n pageParams: newPageParams\n };\n });\n var finalPromiseAsAny = finalPromise;\n\n finalPromiseAsAny.cancel = function () {\n cancelled = true;\n abortController == null ? void 0 : abortController.abort();\n\n if (isCancelable(promise)) {\n promise.cancel();\n }\n };\n\n return finalPromise;\n };\n }\n };\n}\nexport function getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nexport function getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n var nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n var previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { hashQueryKey, noop, parseFilterArgs, parseQueryArgs, partialMatchKey, hashQueryKeyByOptions } from './utils';\nimport { QueryCache } from './queryCache';\nimport { MutationCache } from './mutationCache';\nimport { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { notifyManager } from './notifyManager';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior';\n// CLASS\nexport var QueryClient = /*#__PURE__*/function () {\n function QueryClient(config) {\n if (config === void 0) {\n config = {};\n }\n\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n }\n\n var _proto = QueryClient.prototype;\n\n _proto.mount = function mount() {\n var _this = this;\n\n this.unsubscribeFocus = focusManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onFocus();\n\n _this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onOnline();\n\n _this.queryCache.onOnline();\n }\n });\n };\n\n _proto.unmount = function unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n };\n\n _proto.isFetching = function isFetching(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n filters.fetching = true;\n return this.queryCache.findAll(filters).length;\n };\n\n _proto.isMutating = function isMutating(filters) {\n return this.mutationCache.findAll(_extends({}, filters, {\n fetching: true\n })).length;\n };\n\n _proto.getQueryData = function getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n };\n\n _proto.getQueriesData = function getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref) {\n var queryKey = _ref.queryKey,\n state = _ref.state;\n var data = state.data;\n return [queryKey, data];\n });\n };\n\n _proto.setQueryData = function setQueryData(queryKey, updater, options) {\n var parsedOptions = parseQueryArgs(queryKey);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(updater, options);\n };\n\n _proto.setQueriesData = function setQueriesData(queryKeyOrFilters, updater, options) {\n var _this2 = this;\n\n return notifyManager.batch(function () {\n return _this2.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref2) {\n var queryKey = _ref2.queryKey;\n return [queryKey, _this2.setQueryData(queryKey, updater, options)];\n });\n });\n };\n\n _proto.getQueryState = function getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n };\n\n _proto.removeQueries = function removeQueries(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n var queryCache = this.queryCache;\n notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n queryCache.remove(query);\n });\n });\n };\n\n _proto.resetQueries = function resetQueries(arg1, arg2, arg3) {\n var _this3 = this;\n\n var _parseFilterArgs3 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs3[0],\n options = _parseFilterArgs3[1];\n\n var queryCache = this.queryCache;\n\n var refetchFilters = _extends({}, filters, {\n active: true\n });\n\n return notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n query.reset();\n });\n return _this3.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.cancelQueries = function cancelQueries(arg1, arg2, arg3) {\n var _this4 = this;\n\n var _parseFilterArgs4 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs4[0],\n _parseFilterArgs4$ = _parseFilterArgs4[1],\n cancelOptions = _parseFilterArgs4$ === void 0 ? {} : _parseFilterArgs4$;\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n var promises = notifyManager.batch(function () {\n return _this4.queryCache.findAll(filters).map(function (query) {\n return query.cancel(cancelOptions);\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.invalidateQueries = function invalidateQueries(arg1, arg2, arg3) {\n var _ref3,\n _filters$refetchActiv,\n _filters$refetchInact,\n _this5 = this;\n\n var _parseFilterArgs5 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs5[0],\n options = _parseFilterArgs5[1];\n\n var refetchFilters = _extends({}, filters, {\n // if filters.refetchActive is not provided and filters.active is explicitly false,\n // e.g. invalidateQueries({ active: false }), we don't want to refetch active queries\n active: (_ref3 = (_filters$refetchActiv = filters.refetchActive) != null ? _filters$refetchActiv : filters.active) != null ? _ref3 : true,\n inactive: (_filters$refetchInact = filters.refetchInactive) != null ? _filters$refetchInact : false\n });\n\n return notifyManager.batch(function () {\n _this5.queryCache.findAll(filters).forEach(function (query) {\n query.invalidate();\n });\n\n return _this5.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.refetchQueries = function refetchQueries(arg1, arg2, arg3) {\n var _this6 = this;\n\n var _parseFilterArgs6 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs6[0],\n options = _parseFilterArgs6[1];\n\n var promises = notifyManager.batch(function () {\n return _this6.queryCache.findAll(filters).map(function (query) {\n return query.fetch(undefined, _extends({}, options, {\n meta: {\n refetchPage: filters == null ? void 0 : filters.refetchPage\n }\n }));\n });\n });\n var promise = Promise.all(promises).then(noop);\n\n if (!(options == null ? void 0 : options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.fetchQuery = function fetchQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n var query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n };\n\n _proto.prefetchQuery = function prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.fetchInfiniteQuery = function fetchInfiniteQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n };\n\n _proto.prefetchInfiniteQuery = function prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.cancelMutations = function cancelMutations() {\n var _this7 = this;\n\n var promises = notifyManager.batch(function () {\n return _this7.mutationCache.getAll().map(function (mutation) {\n return mutation.cancel();\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n return this.getMutationCache().resumePausedMutations();\n };\n\n _proto.executeMutation = function executeMutation(options) {\n return this.mutationCache.build(this, options).execute();\n };\n\n _proto.getQueryCache = function getQueryCache() {\n return this.queryCache;\n };\n\n _proto.getMutationCache = function getMutationCache() {\n return this.mutationCache;\n };\n\n _proto.getDefaultOptions = function getDefaultOptions() {\n return this.defaultOptions;\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.setQueryDefaults = function setQueryDefaults(queryKey, options) {\n var result = this.queryDefaults.find(function (x) {\n return hashQueryKey(queryKey) === hashQueryKey(x.queryKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey: queryKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getQueryDefaults = function getQueryDefaults(queryKey) {\n var _this$queryDefaults$f;\n\n return queryKey ? (_this$queryDefaults$f = this.queryDefaults.find(function (x) {\n return partialMatchKey(queryKey, x.queryKey);\n })) == null ? void 0 : _this$queryDefaults$f.defaultOptions : undefined;\n };\n\n _proto.setMutationDefaults = function setMutationDefaults(mutationKey, options) {\n var result = this.mutationDefaults.find(function (x) {\n return hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey: mutationKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getMutationDefaults = function getMutationDefaults(mutationKey) {\n var _this$mutationDefault;\n\n return mutationKey ? (_this$mutationDefault = this.mutationDefaults.find(function (x) {\n return partialMatchKey(mutationKey, x.mutationKey);\n })) == null ? void 0 : _this$mutationDefault.defaultOptions : undefined;\n };\n\n _proto.defaultQueryOptions = function defaultQueryOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n var defaultedOptions = _extends({}, this.defaultOptions.queries, this.getQueryDefaults(options == null ? void 0 : options.queryKey), options, {\n _defaulted: true\n });\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n }\n\n return defaultedOptions;\n };\n\n _proto.defaultQueryObserverOptions = function defaultQueryObserverOptions(options) {\n return this.defaultQueryOptions(options);\n };\n\n _proto.defaultMutationOptions = function defaultMutationOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n return _extends({}, this.defaultOptions.mutations, this.getMutationDefaults(options == null ? void 0 : options.mutationKey), options, {\n _defaulted: true\n });\n };\n\n _proto.clear = function clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n };\n\n return QueryClient;\n}();","import { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { sleep } from './utils';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * Math.pow(2, failureCount), 30000);\n}\n\nexport function isCancelable(value) {\n return typeof (value == null ? void 0 : value.cancel) === 'function';\n}\nexport var CancelledError = function CancelledError(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n};\nexport function isCancelledError(value) {\n return value instanceof CancelledError;\n} // CLASS\n\nexport var Retryer = function Retryer(config) {\n var _this = this;\n\n var cancelRetry = false;\n var cancelFn;\n var continueFn;\n var promiseResolve;\n var promiseReject;\n this.abort = config.abort;\n\n this.cancel = function (cancelOptions) {\n return cancelFn == null ? void 0 : cancelFn(cancelOptions);\n };\n\n this.cancelRetry = function () {\n cancelRetry = true;\n };\n\n this.continueRetry = function () {\n cancelRetry = false;\n };\n\n this.continue = function () {\n return continueFn == null ? void 0 : continueFn();\n };\n\n this.failureCount = 0;\n this.isPaused = false;\n this.isResolved = false;\n this.isTransportCancelable = false;\n this.promise = new Promise(function (outerResolve, outerReject) {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n var resolve = function resolve(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n var reject = function reject(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n var pause = function pause() {\n return new Promise(function (continueResolve) {\n continueFn = continueResolve;\n _this.isPaused = true;\n config.onPause == null ? void 0 : config.onPause();\n }).then(function () {\n continueFn = undefined;\n _this.isPaused = false;\n config.onContinue == null ? void 0 : config.onContinue();\n });\n }; // Create loop function\n\n\n var run = function run() {\n // Do nothing if already resolved\n if (_this.isResolved) {\n return;\n }\n\n var promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n } // Create callback to cancel this fetch\n\n\n cancelFn = function cancelFn(cancelOptions) {\n if (!_this.isResolved) {\n reject(new CancelledError(cancelOptions));\n _this.abort == null ? void 0 : _this.abort(); // Cancel transport if supported\n\n if (isCancelable(promiseOrValue)) {\n try {\n promiseOrValue.cancel();\n } catch (_unused) {}\n }\n }\n }; // Check if the transport layer support cancellation\n\n\n _this.isTransportCancelable = isCancelable(promiseOrValue);\n Promise.resolve(promiseOrValue).then(resolve).catch(function (error) {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (_this.isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n var retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n var retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n var delay = typeof retryDelay === 'function' ? retryDelay(_this.failureCount, error) : retryDelay;\n var shouldRetry = retry === true || typeof retry === 'number' && _this.failureCount < retry || typeof retry === 'function' && retry(_this.failureCount, error);\n\n if (cancelRetry || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n _this.failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(_this.failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(function () {\n if (!focusManager.isFocused() || !onlineManager.isOnline()) {\n return pause();\n }\n }).then(function () {\n if (cancelRetry) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n run();\n};","export var Subscribable = /*#__PURE__*/function () {\n function Subscribable() {\n this.listeners = [];\n }\n\n var _proto = Subscribable.prototype;\n\n _proto.subscribe = function subscribe(listener) {\n var _this = this;\n\n var callback = listener || function () {\n return undefined;\n };\n\n this.listeners.push(callback);\n this.onSubscribe();\n return function () {\n _this.listeners = _this.listeners.filter(function (x) {\n return x !== callback;\n });\n\n _this.onUnsubscribe();\n };\n };\n\n _proto.hasListeners = function hasListeners() {\n return this.listeners.length > 0;\n };\n\n _proto.onSubscribe = function onSubscribe() {// Do nothing\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {// Do nothing\n };\n\n return Subscribable;\n}();","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// TYPES\n// UTILS\nexport var isServer = typeof window === 'undefined';\nexport function noop() {\n return undefined;\n}\nexport function functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nexport function isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nexport function ensureQueryKeyArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function difference(array1, array2) {\n return array1.filter(function (x) {\n return array2.indexOf(x) === -1;\n });\n}\nexport function replaceAt(array, index, value) {\n var copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nexport function timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nexport function parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n queryKey: arg1,\n queryFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n queryKey: arg1\n });\n}\nexport function parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n mutationKey: arg1,\n mutationFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n mutationKey: arg1\n });\n }\n\n if (typeof arg1 === 'function') {\n return _extends({}, arg2, {\n mutationFn: arg1\n });\n }\n\n return _extends({}, arg1);\n}\nexport function parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [_extends({}, arg2, {\n queryKey: arg1\n }), arg3] : [arg1 || {}, arg2];\n}\nexport function parseMutationFilterArgs(arg1, arg2) {\n return isQueryKey(arg1) ? _extends({}, arg2, {\n mutationKey: arg1\n }) : arg1;\n}\nexport function mapQueryStatusFilter(active, inactive) {\n if (active === true && inactive === true || active == null && inactive == null) {\n return 'all';\n } else if (active === false && inactive === false) {\n return 'none';\n } else {\n // At this point, active|inactive can only be true|false or false|true\n // so, when only one value is provided, the missing one has to be the negated value\n var isActive = active != null ? active : !inactive;\n return isActive ? 'active' : 'inactive';\n }\n}\nexport function matchQuery(filters, query) {\n var active = filters.active,\n exact = filters.exact,\n fetching = filters.fetching,\n inactive = filters.inactive,\n predicate = filters.predicate,\n queryKey = filters.queryKey,\n stale = filters.stale;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n var queryStatusFilter = mapQueryStatusFilter(active, inactive);\n\n if (queryStatusFilter === 'none') {\n return false;\n } else if (queryStatusFilter !== 'all') {\n var isActive = query.isActive();\n\n if (queryStatusFilter === 'active' && !isActive) {\n return false;\n }\n\n if (queryStatusFilter === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetching === 'boolean' && query.isFetching() !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nexport function matchMutation(filters, mutation) {\n var exact = filters.exact,\n fetching = filters.fetching,\n predicate = filters.predicate,\n mutationKey = filters.mutationKey;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nexport function hashQueryKeyByOptions(queryKey, options) {\n var hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n */\n\nexport function hashQueryKey(queryKey) {\n var asArray = ensureQueryKeyArray(queryKey);\n return stableValueHash(asArray);\n}\n/**\n * Hashes the value into a stable hash.\n */\n\nexport function stableValueHash(value) {\n return JSON.stringify(value, function (_, val) {\n return isPlainObject(val) ? Object.keys(val).sort().reduce(function (result, key) {\n result[key] = val[key];\n return result;\n }, {}) : val;\n });\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nexport function partialMatchKey(a, b) {\n return partialDeepEqual(ensureQueryKeyArray(a), ensureQueryKeyArray(b));\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nexport function partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(function (key) {\n return !partialDeepEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nexport function replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n var array = Array.isArray(a) && Array.isArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n var aSize = array ? a.length : Object.keys(a).length;\n var bItems = array ? b : Object.keys(b);\n var bSize = bItems.length;\n var copy = array ? [] : {};\n var equalItems = 0;\n\n for (var i = 0; i < bSize; i++) {\n var key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nexport function shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (var key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nexport function isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n var ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n var prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nexport function isQueryKey(value) {\n return typeof value === 'string' || Array.isArray(value);\n}\nexport function isError(value) {\n return value instanceof Error;\n}\nexport function sleep(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nexport function scheduleMicrotask(callback) {\n Promise.resolve().then(callback).catch(function (error) {\n return setTimeout(function () {\n throw error;\n });\n });\n}\nexport function getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n}","import ReactDOM from 'react-dom';\nexport var unstable_batchedUpdates = ReactDOM.unstable_batchedUpdates;","import { notifyManager } from '../core';\nimport { unstable_batchedUpdates } from './reactBatchedUpdates';\nnotifyManager.setBatchNotifyFunction(unstable_batchedUpdates);","export var logger = console;","import { setLogger } from '../core';\nimport { logger } from './logger';\nsetLogger(logger);","import React from 'react';\nvar defaultContext = /*#__PURE__*/React.createContext(undefined);\nvar QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(contextSharing) {\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nexport var useQueryClient = function useQueryClient() {\n var queryClient = React.useContext(getQueryClientContext(React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nexport var QueryClientProvider = function QueryClientProvider(_ref) {\n var client = _ref.client,\n _ref$contextSharing = _ref.contextSharing,\n contextSharing = _ref$contextSharing === void 0 ? false : _ref$contextSharing,\n children = _ref.children;\n React.useEffect(function () {\n client.mount();\n return function () {\n client.unmount();\n };\n }, [client]);\n var Context = getQueryClientContext(contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PrevArrow = exports.NextArrow = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar PrevArrow = exports.PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n var _super = _createSuper(PrevArrow);\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n return _super.apply(this, arguments);\n }\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n return prevArrow;\n }\n }]);\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\nvar NextArrow = exports.NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n var _super2 = _createSuper(NextArrow);\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n return _super2.apply(this, arguments);\n }\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n return nextArrow;\n }\n }]);\n return NextArrow;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true,\n asNavFor: null\n};\nvar _default = exports[\"default\"] = defaultProps;","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar getDotCount = function getDotCount(spec) {\n var dots;\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n return dots;\n};\nvar Dots = exports.Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n var _super = _createSuper(Dots);\n function Dots() {\n _classCallCheck(this, Dots);\n return _super.apply(this, arguments);\n }\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n var _leftBound = rightBound - (slidesToScroll - 1);\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n return Dots;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _slider = _interopRequireDefault(require(\"./slider\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar _default = exports[\"default\"] = _slider[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = exports[\"default\"] = initialState;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nvar _track = require(\"./track\");\nvar _dots = require(\"./dots\");\nvar _arrows = require(\"./arrows\");\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar InnerSlider = exports.InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n var _super = _createSuper(InnerSlider);\n function InnerSlider(props) {\n var _this;\n _classCallCheck(this, InnerSlider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n _this.ro.observe(_this.list);\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n _this.callbackTimers = [];\n }\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n _this.ro.disconnect();\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n _this.props.onReInit && _this.props.onReInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n _this.adaptHeight();\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n var setTrackStyle = _this.didPropsChange(prevProps);\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n _this.debouncedResize();\n });\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node);\n // prevent warning: setting state on unmounted component (server side rendering)\n if (!isTrackMounted) return;\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n });\n // animating state should be cleared while resizing, otherwise autoplay stops working\n _this.setState({\n animating: false\n });\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n _this.setState(updatedState, callback);\n });\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n return {\n trackStyle: _trackStyle\n };\n }\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n image.onclick = function (e) {\n prevClickHandler(e);\n image.parentNode.focus();\n };\n }\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n var currentSlide = _this.state.currentSlide;\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n _this.props.autoplay && _this.autoPlay(\"update\");\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n nodes[0] && nodes[0].focus();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n window.ontouchmove = preventDefault;\n });\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n _this.setState(state);\n if (triggerSlideHandler === undefined) return;\n _this.slideHandler(triggerSlideHandler);\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n _this.slideHandler(nextIndex);\n });\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n var autoplaying = _this.state.autoplaying;\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n var autoplaying = _this.state.autoplaying;\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n var verticalHeightStyle = null;\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n var centerPaddingStyle = null;\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n targetSlide: _this.props.initialSlide ? _this.props.initialSlide : 0,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n var ssrState = _this.ssrInit();\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\" || isNaN(prevProps[key])) {\n continue;\n }\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n return InnerSlider;\n}(_react[\"default\"].Component);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _innerSlider = require(\"./inner-slider\");\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\nvar Slider = exports[\"default\"] = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n var _super = _createSuper(Slider);\n function Slider(props) {\n var _this;\n _classCallCheck(this, Slider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n });\n // sort them in increasing order of their numerical value\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n }\n // when not using server side rendering\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n });\n\n // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var settings;\n var newProps;\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n }\n\n // force scrolling by one if centerMode is on\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n settings.slidesToScroll = 1;\n }\n // force showing one slide and scrolling by one if the fade mode is on\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n }\n\n // makes sure that children is an array, even when there is only 1 child\n var children = _react[\"default\"].Children.toArray(this.props.children);\n\n // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n return !!child;\n });\n\n // rows and slidesPerRow logic is handled here\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n var newChildren = [];\n var currentWidth = null;\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow && !settings.infinite) {\n settings.unslick = true;\n }\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, (0, _innerSliderUtils.filterSettings)(settings)), newChildren);\n }\n }]);\n return Slider;\n}(_react[\"default\"].Component);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n slickCloned = index < 0 || index >= spec.slideCount;\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n var focusedSlide;\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n };\n};\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n if (spec.fade) {\n style.position = \"relative\";\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n style.zIndex = spec.currentSlide === spec.index ? 999 : 998;\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n };\n\n // in case of lazyLoad, whether or not we want to fetch the slide\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n // push a cloned element of the desired slide\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n\n // if slide needs to be precloned or postcloned\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec)) {\n key = -preCloneNo;\n if (key >= startIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n key = childrenCount + index;\n if (key < endIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n });\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\nvar Track = exports.Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n var _super = _createSuper(Track);\n function Track() {\n var _this;\n _classCallCheck(this, Track);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n return _this;\n }\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n return Track;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSpecKeys = exports.checkNavigable = exports.changeSlide = exports.canUseDOM = exports.canGoNext = void 0;\nexports.clamp = clamp;\nexports.extractObject = void 0;\nexports.filterSettings = filterSettings;\nexports.validSettings = exports.swipeStart = exports.swipeMove = exports.swipeEnd = exports.slidesOnRight = exports.slidesOnLeft = exports.slideHandler = exports.siblingDirection = exports.safePreventDefault = exports.lazyStartIndex = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.keyHandler = exports.initializedState = exports.getWidth = exports.getTrackLeft = exports.getTrackCSS = exports.getTrackAnimateCSS = exports.getTotalSlides = exports.getSwipeDirection = exports.getSlideCount = exports.getRequiredLazySlides = exports.getPreClones = exports.getPostClones = exports.getOnDemandLazySlides = exports.getNavigableIndexes = exports.getHeight = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _defaultProps = _interopRequireDefault(require(\"../default-props\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\nvar safePreventDefault = exports.safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\nvar getOnDemandLazySlides = exports.getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n return onDemandSlides;\n};\n\n// return list of slides that need to be present\nvar getRequiredLazySlides = exports.getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n return requiredSlides;\n};\n\n// startIndex that needs to be present\nvar lazyStartIndex = exports.lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\nvar lazyEndIndex = exports.lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\nvar lazySlidesOnLeft = exports.lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\nvar lazySlidesOnRight = exports.lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n};\n\n// get width of an element\nvar getWidth = exports.getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\nvar getHeight = exports.getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\nvar getSwipeDirection = exports.getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n return \"vertical\";\n};\n\n// whether or not we can go next\nvar canGoNext = exports.canGoNext = function canGoNext(spec) {\n var canGo = true;\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n return canGo;\n};\n\n// given an object and a list of keys, return new object with given keys\nvar extractObject = exports.extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n};\n\n// get initialized state\nvar initializedState = exports.initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n return state;\n};\nvar slideHandler = exports.slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n return {\n state: state,\n nextState: nextState\n };\n};\nvar changeSlide = exports.changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n return targetSlide;\n};\nvar keyHandler = exports.keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\nvar swipeStart = exports.swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\nvar swipeMove = exports.swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n return state;\n};\nvar swipeEnd = exports.swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\n // reset the state of touch related state variables.\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n if (scrolling) {\n return state;\n }\n if (!touchObject.swipeLength) {\n return state;\n }\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n default:\n slideCount = activeSlide;\n }\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n return state;\n};\nvar getNavigableIndexes = exports.getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n return indexes;\n};\nvar checkNavigable = exports.checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n prevNavigable = navigables[n];\n }\n }\n return index;\n};\nvar getSlideCount = exports.getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n return true;\n });\n if (!swipedSlide) {\n return 0;\n }\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\nvar checkSpecKeys = exports.checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\nvar getTrackCSS = exports.getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight;\n\n // Fallback for IE8\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n return style;\n};\nvar getTrackAnimateCSS = exports.getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec);\n // useCSS is true by default so it can be undefined\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getTrackLeft = exports.getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n var slidesToOffset = 0;\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n }\n // shift current slide to center of the frame\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n return targetLeft;\n};\nvar getPreClones = exports.getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\nvar getPostClones = exports.getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n return spec.slideCount;\n};\nvar getTotalSlides = exports.getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\nvar siblingDirection = exports.siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n return \"left\";\n }\n};\nvar slidesOnRight = exports.slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n if (rtl) {\n return 0;\n }\n return slidesToShow - 1;\n};\nvar slidesOnLeft = exports.slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n if (rtl) {\n return slidesToShow - 1;\n }\n return 0;\n};\nvar canUseDOM = exports.canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\nvar validSettings = exports.validSettings = Object.keys(_defaultProps[\"default\"]);\nfunction filterSettings(settings) {\n return validSettings.reduce(function (acc, settingName) {\n if (settings.hasOwnProperty(settingName)) {\n acc[settingName] = settings[settingName];\n }\n return acc;\n }, {});\n}","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.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(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=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&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.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__.p = \"/\";","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","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}\nfunction sanitizeCustomProperties(styles) {\n const nonNullValues = Object.entries(styles).filter(([_, value]) => value != null);\n return nonNullValues.length ? Object.fromEntries(nonNullValues) : undefined;\n}\nfunction getResponsiveProps(componentName, componentProp, tokenSubgroup, responsiveProp) {\n if (!responsiveProp) return {};\n\n if (typeof responsiveProp === 'string') {\n return {\n [`--pc-${componentName}-${componentProp}-xs`]: `var(--p-${tokenSubgroup}-${responsiveProp})`\n };\n }\n\n return Object.fromEntries(Object.entries(responsiveProp).map(([breakpointAlias, aliasOrScale]) => [`--pc-${componentName}-${componentProp}-${breakpointAlias}`, `var(--p-${tokenSubgroup}-${aliasOrScale})`]));\n}\nfunction getResponsiveValue(componentName, componentProp, responsiveProp) {\n if (!responsiveProp) return {};\n\n if (typeof responsiveProp === 'string') {\n return {\n [`--pc-${componentName}-${componentProp}-xs`]: responsiveProp\n };\n }\n\n return Object.fromEntries(Object.entries(responsiveProp).map(([breakpointAlias, responsiveValue]) => [`--pc-${componentName}-${componentProp}-${breakpointAlias}`, responsiveValue]));\n}\n\nexport { classNames, getResponsiveProps, getResponsiveValue, sanitizeCustomProperties, variationName };\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","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","var styles = {\n \"TopBar\": \"Polaris-TopBar\",\n \"LogoDisplayControl\": \"Polaris-TopBar__LogoDisplayControl\",\n \"LogoDisplayContainer\": \"Polaris-TopBar__LogoDisplayContainer\",\n \"LogoContainer\": \"Polaris-TopBar__LogoContainer\",\n \"hasLogoSuffix\": \"Polaris-TopBar--hasLogoSuffix\",\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};\n\nexport { styles as default };\n","class MissingAppProviderError extends Error {\n constructor(message = '') {\n super(`${message ? `${message} ` : message}Your application must be wrapped in an <AppProvider> component. See https://polaris.shopify.com/components/app-provider for implementation instructions.`);\n this.name = 'MissingAppProviderError';\n }\n\n}\n\nexport { MissingAppProviderError };\n","import { createContext } from 'react';\n\nconst ScrollLockManagerContext = /*#__PURE__*/createContext(undefined);\n\nexport { ScrollLockManagerContext };\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, { 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';\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(\"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 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","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};\n\nexport { styles as default };\n","import { createContext } from 'react';\n\nconst I18nContext = /*#__PURE__*/createContext(undefined);\n\nexport { I18nContext };\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 { createContext } from 'react';\n\nconst UniqueIdFactoryContext = /*#__PURE__*/createContext(undefined);\n\nexport { UniqueIdFactoryContext };\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","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 \"colorMagic\": \"Polaris-Icon--colorMagic\",\n \"Svg\": \"Polaris-Icon__Svg\",\n \"Img\": \"Polaris-Icon__Img\",\n \"Placeholder\": \"Polaris-Icon__Placeholder\"\n};\n\nexport { styles as default };\n","var styles = {\n \"root\": \"Polaris-Text--root\",\n \"block\": \"Polaris-Text--block\",\n \"truncate\": \"Polaris-Text--truncate\",\n \"visuallyHidden\": \"Polaris-Text--visuallyHidden\",\n \"start\": \"Polaris-Text--start\",\n \"center\": \"Polaris-Text--center\",\n \"end\": \"Polaris-Text--end\",\n \"justify\": \"Polaris-Text--justify\",\n \"success\": \"Polaris-Text--success\",\n \"critical\": \"Polaris-Text--critical\",\n \"warning\": \"Polaris-Text--warning\",\n \"subdued\": \"Polaris-Text--subdued\",\n \"text-inverse\": \"Polaris-Text__text--inverse\",\n \"headingXs\": \"Polaris-Text--headingXs\",\n \"headingSm\": \"Polaris-Text--headingSm\",\n \"headingMd\": \"Polaris-Text--headingMd\",\n \"headingLg\": \"Polaris-Text--headingLg\",\n \"headingXl\": \"Polaris-Text--headingXl\",\n \"heading2xl\": \"Polaris-Text--heading2xl\",\n \"heading3xl\": \"Polaris-Text--heading3xl\",\n \"heading4xl\": \"Polaris-Text--heading4xl\",\n \"bodySm\": \"Polaris-Text--bodySm\",\n \"bodyMd\": \"Polaris-Text--bodyMd\",\n \"bodyLg\": \"Polaris-Text--bodyLg\",\n \"regular\": \"Polaris-Text--regular\",\n \"medium\": \"Polaris-Text--medium\",\n \"semibold\": \"Polaris-Text--semibold\",\n \"bold\": \"Polaris-Text--bold\",\n \"break\": \"Polaris-Text--break\",\n \"numeric\": \"Polaris-Text--numeric\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './Text.scss.js';\n\nconst Text = ({\n alignment,\n as,\n breakWord,\n children,\n color,\n fontWeight,\n id,\n numeric = false,\n truncate = false,\n variant,\n visuallyHidden = false\n}) => {\n const Component = as || (visuallyHidden ? 'span' : 'p');\n const className = classNames(styles.root, variant && styles[variant], fontWeight && styles[fontWeight], (alignment || truncate) && styles.block, alignment && styles[alignment], breakWord && styles.break, color && styles[color], numeric && styles.numeric, truncate && styles.truncate, visuallyHidden && styles.visuallyHidden);\n return /*#__PURE__*/React.createElement(Component, Object.assign({\n className: className\n }, id && {\n id\n }), children);\n};\n\nexport { Text };\n","import React from 'react';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport styles from './Icon.scss.js';\nimport { Text } from '../Text/Text.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(Text, {\n as: \"span\",\n visuallyHidden: true\n }, accessibilityLabel), contentMarkup[sourceType]);\n}\n\nexport { Icon };\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 { Text } from '../../../Text/Text.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(Text, {\n as: \"span\",\n visuallyHidden: true\n }, /*#__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};\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 \"MenuItems\": \"Polaris-TopBar-Menu__MenuItems\",\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 { createContext } from 'react';\n\nconst BannerContext = /*#__PURE__*/createContext(false);\n\nexport { BannerContext };\n","var styles = {\n \"Link\": \"Polaris-Link\",\n \"monochrome\": \"Polaris-Link--monochrome\",\n \"removeUnderline\": \"Polaris-Link--removeUnderline\"\n};\n\nexport { styles as default };\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","import { createContext } from 'react';\n\nconst LinkContext = /*#__PURE__*/createContext(undefined);\n\nexport { LinkContext };\n","import React, { memo, forwardRef } from 'react';\nimport { unstyled } from '../shared.js';\nimport { useLink } from '../../utilities/link/hooks.js';\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 target: targetProp,\n ...rest\n } = props;\n let target;\n\n if (external) {\n target = '_blank';\n } else {\n target = targetProp !== null && targetProp !== void 0 ? targetProp : undefined;\n }\n\n const rel = target === '_blank' ? '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 { BannerContext } from '../../utilities/banner-context.js';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './Link.scss.js';\nimport { UnstyledLink } from '../UnstyledLink/UnstyledLink.js';\n\nfunction Link({\n url,\n children,\n onClick,\n external,\n target,\n id,\n monochrome,\n removeUnderline,\n accessibilityLabel,\n dataPrimaryLink\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 target: target,\n id: id,\n \"aria-label\": accessibilityLabel,\n \"data-primary-link\": dataPrimaryLink\n }, children) : /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onClick,\n className: className,\n id: id,\n \"aria-label\": accessibilityLabel,\n \"data-primary-link\": dataPrimaryLink\n }, children);\n });\n}\n\nexport { Link };\n","import { createContext } from 'react';\n\nconst WithinFilterContext = /*#__PURE__*/createContext(false);\n\nexport { WithinFilterContext };\n","var styles = {\n \"Badge\": \"Polaris-Badge\",\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 \"withinFilter\": \"Polaris-Badge--withinFilter\",\n \"Icon\": \"Polaris-Badge__Icon\",\n \"PipContainer\": \"Polaris-Badge__PipContainer\"\n};\n\nexport { styles as default };\n","let StatusValue;\n\n(function (StatusValue) {\n StatusValue[\"Info\"] = \"info\";\n StatusValue[\"Success\"] = \"success\";\n StatusValue[\"Warning\"] = \"warning\";\n StatusValue[\"Critical\"] = \"critical\";\n StatusValue[\"Attention\"] = \"attention\";\n StatusValue[\"New\"] = \"new\";\n})(StatusValue || (StatusValue = {}));\n\nlet ProgressValue;\n\n(function (ProgressValue) {\n ProgressValue[\"Incomplete\"] = \"incomplete\";\n ProgressValue[\"PartiallyComplete\"] = \"partiallyComplete\";\n ProgressValue[\"Complete\"] = \"complete\";\n})(ProgressValue || (ProgressValue = {}));\n\nexport { ProgressValue, StatusValue };\n","import { ProgressValue, StatusValue } from './types.js';\n\nfunction getDefaultAccessibilityLabel(i18n, progress, status) {\n let progressLabel = '';\n let statusLabel = '';\n\n if (!progress && !status) {\n return '';\n }\n\n switch (progress) {\n case ProgressValue.Incomplete:\n progressLabel = i18n.translate('Polaris.Badge.PROGRESS_LABELS.incomplete');\n break;\n\n case ProgressValue.PartiallyComplete:\n progressLabel = i18n.translate('Polaris.Badge.PROGRESS_LABELS.partiallyComplete');\n break;\n\n case ProgressValue.Complete:\n progressLabel = i18n.translate('Polaris.Badge.PROGRESS_LABELS.complete');\n break;\n }\n\n switch (status) {\n case StatusValue.Info:\n statusLabel = i18n.translate('Polaris.Badge.STATUS_LABELS.info');\n break;\n\n case StatusValue.Success:\n statusLabel = i18n.translate('Polaris.Badge.STATUS_LABELS.success');\n break;\n\n case StatusValue.Warning:\n statusLabel = i18n.translate('Polaris.Badge.STATUS_LABELS.warning');\n break;\n\n case StatusValue.Critical:\n statusLabel = i18n.translate('Polaris.Badge.STATUS_LABELS.critical');\n break;\n\n case StatusValue.Attention:\n statusLabel = i18n.translate('Polaris.Badge.STATUS_LABELS.attention');\n break;\n\n case StatusValue.New:\n statusLabel = i18n.translate('Polaris.Badge.STATUS_LABELS.new');\n break;\n }\n\n if (!status && progress) {\n return progressLabel;\n } else if (status && !progress) {\n return statusLabel;\n } else {\n return i18n.translate('Polaris.Badge.progressAndStatus', {\n progressLabel,\n statusLabel\n });\n }\n}\n\nexport { getDefaultAccessibilityLabel };\n","var styles = {\n \"Pip\": \"Polaris-Badge-Pip\",\n \"statusInfo\": \"Polaris-Badge-Pip--statusInfo\",\n \"statusSuccess\": \"Polaris-Badge-Pip--statusSuccess\",\n \"statusNew\": \"Polaris-Badge-Pip--statusNew\",\n \"statusAttention\": \"Polaris-Badge-Pip--statusAttention\",\n \"statusWarning\": \"Polaris-Badge-Pip--statusWarning\",\n \"statusCritical\": \"Polaris-Badge-Pip--statusCritical\",\n \"progressIncomplete\": \"Polaris-Badge-Pip--progressIncomplete\",\n \"progressPartiallyComplete\": \"Polaris-Badge-Pip--progressPartiallyComplete\",\n \"progressComplete\": \"Polaris-Badge-Pip--progressComplete\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames, variationName } from '../../../../utilities/css.js';\nimport { getDefaultAccessibilityLabel } from '../../utils.js';\nimport styles from './Pip.scss.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\nimport { Text } from '../../../Text/Text.js';\n\nfunction Pip({\n status,\n progress = 'complete',\n accessibilityLabelOverride\n}) {\n const i18n = useI18n();\n const className = classNames(styles.Pip, status && styles[variationName('status', status)], progress && styles[variationName('progress', progress)]);\n const accessibilityLabel = accessibilityLabelOverride ? accessibilityLabelOverride : getDefaultAccessibilityLabel(i18n, progress, status);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className\n }, /*#__PURE__*/React.createElement(Text, {\n as: \"span\",\n visuallyHidden: true\n }, accessibilityLabel));\n}\n\nexport { Pip };\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 { getDefaultAccessibilityLabel } from './utils.js';\nimport { Pip } from './components/Pip/Pip.js';\nimport { Icon } from '../Icon/Icon.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Text } from '../Text/Text.js';\n\nconst DEFAULT_SIZE = 'medium';\nfunction Badge({\n children,\n status,\n progress,\n icon,\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)], icon && styles.icon, // TODO: remove support for the size prop in the next major release\n size && size !== DEFAULT_SIZE && styles[variationName('size', size)], withinFilter && styles.withinFilter);\n const accessibilityLabel = statusAndProgressLabelOverride ? statusAndProgressLabelOverride : getDefaultAccessibilityLabel(i18n, progress, status);\n let accessibilityMarkup = Boolean(accessibilityLabel) && /*#__PURE__*/React.createElement(Text, {\n as: \"span\",\n visuallyHidden: true\n }, accessibilityLabel);\n\n if (progress && !icon) {\n accessibilityMarkup = /*#__PURE__*/React.createElement(\"span\", {\n className: styles.PipContainer\n }, /*#__PURE__*/React.createElement(Pip, {\n progress: progress,\n status: status,\n accessibilityLabelOverride: accessibilityLabel\n }));\n }\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className\n }, accessibilityMarkup, icon && /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Icon\n }, /*#__PURE__*/React.createElement(Icon, {\n source: icon\n })), children && /*#__PURE__*/React.createElement(Text, {\n as: \"span\",\n variant: \"bodySm\",\n fontWeight: status === 'new' ? 'medium' : undefined\n }, children));\n}\nBadge.Pip = Pip;\n\nexport { Badge };\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([aria-disabled=\"true\"]):not([tabindex=\"-1\"]):not(:disabled),*[tabindex]';\nconst KEYBOARD_FOCUSABLE_SELECTORS = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not([aria-disabled=\"true\"]):not([tabindex=\"-1\"]):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","import { createContext } from 'react';\n\nconst PortalsManagerContext = /*#__PURE__*/createContext(undefined);\n\nexport { PortalsManagerContext };\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 <AppProvider> component. See https://polaris.shopify.com/components/app-provider for implementation instructions.');\n }\n\n return portalsManager;\n}\n\nexport { usePortalsManager };\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nexport { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _defineProperty as defineProperty, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _objectSpread2 as objectSpread2, _slicedToArray as slicedToArray, _taggedTemplateLiteral as taggedTemplateLiteral, _unsupportedIterableToArray as unsupportedIterableToArray };\n","import { taggedTemplateLiteral as _taggedTemplateLiteral, slicedToArray as _slicedToArray, objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.mjs';\n\nvar _templateObject;\n\nvar BASE_FONT_SIZE = 16;\nvar UNIT_PX = 'px';\nvar UNIT_EM = 'em';\nvar UNIT_REM = 'rem'; // https://regex101.com/r/zvY2bu/1\n\nvar DIGIT_REGEX = new RegExp(String.raw(_templateObject || (_templateObject = _taggedTemplateLiteral([\"-?d+(?:.d+|d*)\"], [\"-?\\\\d+(?:\\\\.\\\\d+|\\\\d*)\"]))));\nvar UNIT_REGEX = new RegExp(\"\".concat(UNIT_PX, \"|\").concat(UNIT_EM, \"|\").concat(UNIT_REM));\nfunction getUnit() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var unit = value.match(new RegExp(\"\".concat(DIGIT_REGEX.source, \"(\").concat(UNIT_REGEX.source, \")\")));\n return unit && unit[1];\n}\nfunction toPx() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var unit = getUnit(value);\n if (!unit) return value;\n\n if (unit === UNIT_PX) {\n return value;\n }\n\n if (unit === UNIT_EM || unit === UNIT_REM) {\n return \"\".concat(parseFloat(value) * BASE_FONT_SIZE).concat(UNIT_PX);\n }\n}\nfunction toEm() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var fontSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : BASE_FONT_SIZE;\n var unit = getUnit(value);\n if (!unit) return value;\n\n if (unit === UNIT_EM) {\n return value;\n }\n\n if (unit === UNIT_PX) {\n return \"\".concat(parseFloat(value) / fontSize).concat(UNIT_EM);\n }\n\n if (unit === UNIT_REM) {\n return \"\".concat(parseFloat(value) * BASE_FONT_SIZE / fontSize).concat(UNIT_EM);\n }\n}\nfunction toRem() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var unit = getUnit(value);\n if (!unit) return value;\n\n if (unit === UNIT_REM) {\n return value;\n }\n\n if (unit === UNIT_EM) {\n return \"\".concat(parseFloat(value)).concat(UNIT_REM);\n }\n\n if (unit === UNIT_PX) {\n return \"\".concat(parseFloat(value) / BASE_FONT_SIZE).concat(UNIT_REM);\n }\n}\nfunction rem(value) {\n return value.replace(new RegExp(\"\".concat(DIGIT_REGEX.source, \"(\").concat(UNIT_PX, \")\"), 'g'), function (px) {\n var _toRem;\n\n return (_toRem = toRem(px)) !== null && _toRem !== void 0 ? _toRem : px;\n });\n}\nfunction tokensToRems(tokenGroup) {\n return Object.fromEntries(Object.entries(tokenGroup).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n token = _ref2[0],\n properties = _ref2[1];\n\n return [token, _objectSpread2(_objectSpread2({}, properties), {}, {\n value: rem(properties.value)\n })];\n }) // We loose the `tokenGroup` inference after transforming the object with\n // `Object.fromEntries()` and `Object.entries()`. Thus, we cast the result\n // back to `T` since we are simply converting the `value` from px to rem.\n );\n}\nfunction createVar(token) {\n return \"--p-\".concat(token);\n}\n/**\n * Allowed Polaris keyframes.\n *\n * Result: ['p-keyframes-fade-in', 'p-keyframes-spin', etc...]\n */\n\nfunction getKeyframeNames(motionTokenGroup) {\n return Object.keys(motionTokenGroup).map(function (token) {\n return token.startsWith('keyframes') ? \"p-\".concat(token) : null;\n }).filter(Boolean);\n}\n/**\n * Allowed Polaris token custom properties.\n *\n * Result: ['--p-background', '--p-text', etc...]\n */\n\nfunction getCustomPropertyNames(tokens) {\n return Object.entries(tokens).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2);\n _ref4[0];\n var tokenGroup = _ref4[1];\n\n return Object.keys(tokenGroup).map(function (token) {\n return createVar(token);\n });\n }).flat();\n}\nfunction removeMetadata(tokenGroup) {\n return Object.fromEntries(Object.entries(tokenGroup).map(function (entry) {\n var _ref5 = entry,\n _ref6 = _slicedToArray(_ref5, 2),\n tokenName = _ref6[0],\n value = _ref6[1].value;\n\n return [tokenName, value];\n }));\n}\nfunction getMediaConditions(breakpoints) {\n var breakpointEntries = Object.entries(breakpoints);\n var lastBreakpointIndex = breakpointEntries.length - 1;\n return Object.fromEntries(breakpointEntries.map(function (entry, index) {\n var _ref7 = entry,\n _ref8 = _slicedToArray(_ref7, 2),\n breakpointsTokenName = _ref8[0],\n breakpoint = _ref8[1];\n\n var upMediaCondition = getUpMediaCondition(breakpoint);\n var downMediaCondition = getDownMediaCondition(breakpoint);\n var onlyMediaCondition = index === lastBreakpointIndex ? upMediaCondition : \"\".concat(upMediaCondition, \" and \").concat(getDownMediaCondition(breakpointEntries[index + 1][1]));\n return [breakpointsTokenName, {\n // Media condition for the current breakpoint and up\n up: upMediaCondition,\n // Media condition for current breakpoint and down\n down: downMediaCondition,\n // Media condition for only the current breakpoint\n only: onlyMediaCondition\n }];\n }));\n}\n\nfunction getUpMediaCondition(breakpoint) {\n return \"(min-width: \".concat(toEm(breakpoint), \")\");\n}\n/**\n * Down media condition breakpoints are being subtracted by 0.04px to prevent\n * them from overwriting up media queries. We experimented with multiple offsets\n * and felt that 0.04px would be the safest across different pixel densities,\n * while being representable in ems with 4 decimal places of precision.\n */\n\n\nfunction getDownMediaCondition(breakpoint) {\n var _toPx;\n\n var offsetBreakpoint = parseFloat((_toPx = toPx(breakpoint)) !== null && _toPx !== void 0 ? _toPx : '') - 0.04;\n return \"(max-width: \".concat(toEm(\"\".concat(offsetBreakpoint, \"px\")), \")\");\n}\n\nfunction isKeyOf(obj, key) {\n return Object.keys(obj).includes(key);\n}\n\nexport { createVar, getCustomPropertyNames, getKeyframeNames, getMediaConditions, getUnit, isKeyOf, rem, removeMetadata, toEm, toPx, toRem, tokensToRems };\n","var breakpoints = {\n 'breakpoints-xs': {\n value: '0px',\n description: 'Commonly used for sizing containers (e.g. max-width). See below for media query usage.'\n },\n 'breakpoints-sm': {\n value: '490px',\n description: 'Commonly used for sizing containers (e.g. max-width). See below for media query usage.'\n },\n 'breakpoints-md': {\n value: '768px',\n description: 'Commonly used for sizing containers (e.g. max-width). See below for media query usage.'\n },\n 'breakpoints-lg': {\n value: '1040px',\n description: 'Commonly used for sizing containers (e.g. max-width). See below for media query usage.'\n },\n 'breakpoints-xl': {\n value: '1440px',\n description: 'Commonly used for sizing containers (e.g. max-width). See below for media query usage.'\n }\n};\n\nexport { breakpoints };\n","var gray = {\n 50: 'rgba(255, 255, 255, 1)',\n 100: 'rgba(249, 250, 251, 1)',\n 200: 'rgba(241, 242, 244, 1)',\n 300: 'rgba(235, 236, 239, 1)',\n 400: 'rgba(221, 224, 228, 1)',\n 500: 'rgba(202, 206, 211, 1)',\n 600: 'rgba(171, 177, 186, 1)',\n 700: 'rgba(135, 144, 155, 1)',\n 800: 'rgba(97, 106, 117, 1)',\n 900: 'rgba(31, 33, 36, 1)'\n};\nvar green = {\n 50: 'rgba(240, 253, 248, 1)',\n 100: 'rgba(224, 248, 238, 1)',\n 200: 'rgba(192, 242, 221, 1)',\n 300: 'rgba(161, 237, 208, 1)',\n 400: 'rgba(80, 220, 169, 1)',\n 500: 'rgba(35, 196, 140, 1)',\n 600: 'rgba(22, 166, 121, 1)',\n 700: 'rgba(0, 122, 92, 1)',\n 800: 'rgba(18, 84, 67, 1)',\n 900: 'rgba(12, 59, 47, 1)'\n};\nvar blue = {\n 50: 'rgba(240, 245, 253, 1)',\n 100: 'rgba(232, 240, 253, 1)',\n 200: 'rgba(187, 212, 247, 1)',\n 300: 'rgba(147, 186, 241, 1)',\n 400: 'rgba(102, 153, 225, 1)',\n 500: 'rgba(62, 125, 213, 1)',\n 600: 'rgba(36, 99, 188, 1)',\n 700: 'rgba(20, 73, 149, 1)',\n 800: 'rgba(14, 53, 108, 1)',\n 900: 'rgba(16, 41, 76, 1)'\n};\nvar red = {\n 50: 'rgba(254, 243, 241, 1)',\n 100: 'rgba(253, 226, 221, 1)',\n 200: 'rgba(251, 197, 188, 1)',\n 300: 'rgba(247, 148, 130, 1)',\n 400: 'rgba(245, 107, 82, 1)',\n 500: 'rgba(242, 65, 34, 1)',\n 600: 'rgba(197, 40, 12, 1)',\n 700: 'rgba(159, 32, 10, 1)',\n 800: 'rgba(115, 24, 7, 1)',\n 900: 'rgba(67, 14, 4, 1)'\n};\nvar yellow = {\n 50: 'rgba(254, 248, 236, 1)',\n 100: 'rgba(252, 240, 212, 1)',\n 200: 'rgba(250, 229, 178, 1)',\n 300: 'rgba(248, 217, 144, 1)',\n 400: 'rgba(245, 196, 82, 1)',\n 500: 'rgba(242, 179, 34, 1)',\n 600: 'rgba(216, 155, 13, 1)',\n 700: 'rgba(183, 126, 11, 1)',\n 800: 'rgba(135, 92, 8, 1)',\n 900: 'rgba(77, 46, 5, 1)'\n};\nvar teal = {\n 50: 'rgba(238, 250, 251, 1)',\n 100: 'rgba(222, 245, 247, 1)',\n 200: 'rgba(184, 233, 239, 1)',\n 300: 'rgba(147, 222, 231, 1)',\n 400: 'rgba(109, 211, 222, 1)',\n 500: 'rgba(59, 195, 211, 1)',\n 600: 'rgba(42, 172, 187, 1)',\n 700: 'rgba(32, 130, 141, 1)',\n 800: 'rgba(23, 92, 100, 1)',\n 900: 'rgba(16, 65, 71, 1)'\n};\nvar orange = {\n 50: 'rgba(254, 243, 236, 1)',\n 100: 'rgba(253, 231, 217, 1)',\n 200: 'rgba(250, 201, 168, 1)',\n 300: 'rgba(247, 177, 130, 1)',\n 400: 'rgba(245, 147, 82, 1)',\n 500: 'rgba(242, 117, 34, 1)',\n 600: 'rgba(216, 101, 13, 1)',\n 700: 'rgba(164, 76, 10, 1)',\n 800: 'rgba(111, 52, 7, 1)',\n 900: 'rgba(77, 36, 5, 1)'\n};\nvar purple = {\n 50: 'rgba(242, 237, 253, 1)',\n 100: 'rgba(236, 227, 253, 1)',\n 200: 'rgba(226, 214, 250, 1)',\n 300: 'rgba(203, 180, 248, 1)',\n 400: 'rgba(173, 139, 241, 1)',\n 500: 'rgba(121, 69, 227, 1)',\n 600: 'rgba(90, 36, 205, 1)',\n 700: 'rgba(67, 21, 158, 1)',\n 800: 'rgba(49, 13, 120, 1)',\n 900: 'rgba(36, 8, 73, 1)'\n};\n\nexport { blue, gray, green, orange, purple, red, teal, yellow };\n","import { gray, green, red, yellow, teal, blue, orange, purple } from '../colors.mjs';\n\nvar color = {\n 'color-bg-inverse': {\n value: gray[900],\n description: ''\n },\n 'color-bg-inset-strong': {\n value: gray[800],\n description: ''\n },\n 'color-bg-inverse-hover': {\n value: gray[800],\n description: ''\n },\n 'color-bg-inverse-active': {\n value: gray[700],\n description: ''\n },\n 'color-bg-strong-hover': {\n value: gray[500],\n description: ''\n },\n 'color-bg-strong-active': {\n value: gray[500],\n description: ''\n },\n 'color-bg-strong': {\n value: gray[400],\n description: ''\n },\n 'color-bg-subdued-active': {\n value: gray[300],\n description: ''\n },\n 'color-bg-disabled': {\n value: gray[300],\n description: ''\n },\n 'color-bg-interactive-disabled': {\n value: gray[300],\n description: ''\n },\n 'color-bg-app': {\n value: gray[200],\n description: ''\n },\n 'color-bg-app-active': {\n value: gray[400],\n description: ''\n },\n 'color-bg-app-hover': {\n value: gray[300],\n description: ''\n },\n 'color-bg-app-selected': {\n value: gray[300],\n description: ''\n },\n 'color-bg-active': {\n value: gray[300],\n description: ''\n },\n 'color-bg-subdued-hover': {\n value: gray[200],\n description: ''\n },\n 'color-bg-inset': {\n value: gray[200],\n description: ''\n },\n 'color-bg-hover': {\n value: gray[200],\n description: ''\n },\n 'color-bg-subdued': {\n value: gray[100],\n description: ''\n },\n 'color-bg-input': {\n value: gray[50],\n description: ''\n },\n 'color-bg': {\n value: gray[50],\n description: ''\n },\n 'color-bg-primary-active': {\n value: green[900],\n description: ''\n },\n 'color-bg-primary-hover': {\n value: green[800],\n description: ''\n },\n 'color-bg-primary': {\n value: green[700],\n description: ''\n },\n 'color-bg-success-strong': {\n value: green[600],\n description: ''\n },\n 'color-bg-success': {\n value: green[300],\n description: ''\n },\n 'color-bg-primary-subdued-active': {\n value: green[200],\n description: ''\n },\n 'color-bg-success-subdued-active': {\n value: green[200],\n description: ''\n },\n 'color-bg-success-subdued': {\n value: green[100],\n description: ''\n },\n 'color-bg-primary-subdued-hover': {\n value: green[100],\n description: ''\n },\n 'color-bg-success-subdued-hover': {\n value: green[50],\n description: ''\n },\n 'color-bg-primary-subdued': {\n value: green[50],\n description: ''\n },\n 'color-bg-primary-subdued-selected': {\n value: green[50],\n description: ''\n },\n 'color-bg-critical-strong-active': {\n value: red[800],\n description: ''\n },\n 'color-bg-critical-strong-hover': {\n value: red[700],\n description: ''\n },\n 'color-bg-critical-strong': {\n value: red[600],\n description: ''\n },\n 'color-bg-critical-subdued-active': {\n value: red[200],\n description: ''\n },\n 'color-bg-critical': {\n value: red[200],\n description: ''\n },\n 'color-bg-critical-subdued': {\n value: red[100],\n description: ''\n },\n 'color-bg-critical-subdued-hover': {\n value: red[50],\n description: ''\n },\n 'color-bg-caution-strong': {\n value: yellow[600],\n description: ''\n },\n 'color-bg-caution': {\n value: yellow[300],\n description: ''\n },\n 'color-bg-caution-subdued-active': {\n value: yellow[200],\n description: ''\n },\n 'color-bg-caution-subdued': {\n value: yellow[100],\n description: ''\n },\n 'color-bg-caution-subdued-hover': {\n value: yellow[50],\n description: ''\n },\n 'color-bg-info-strong': {\n value: teal[600],\n description: ''\n },\n 'color-bg-info-subdued-active': {\n value: teal[200],\n description: ''\n },\n 'color-bg-info': {\n value: teal[200],\n description: ''\n },\n 'color-bg-info-subdued': {\n value: teal[100],\n description: ''\n },\n 'color-bg-info-subdued-hover': {\n value: teal[50],\n description: ''\n },\n 'color-bg-interactive-active': {\n value: blue[800],\n description: ''\n },\n 'color-bg-interactive-hover': {\n value: blue[700],\n description: ''\n },\n 'color-bg-interactive': {\n value: blue[600],\n description: ''\n },\n 'color-bg-interactive-subdued-active': {\n value: blue[200],\n description: ''\n },\n 'color-bg-interactive-subdued-hover': {\n value: blue[100],\n description: ''\n },\n 'color-bg-interactive-subdued': {\n value: blue[50],\n description: ''\n },\n 'color-bg-interactive-selected': {\n value: blue[50],\n description: ''\n },\n 'color-bg-warning': {\n value: orange[200],\n description: ''\n },\n 'color-bg-magic-strong': {\n value: purple[500],\n description: ''\n },\n 'color-bg-magic-hover': {\n value: purple[200],\n description: ''\n },\n 'color-bg-magic-active': {\n value: purple[300],\n description: ''\n },\n 'color-bg-magic': {\n value: purple[100],\n description: ''\n },\n 'color-bg-magic-subdued-hover': {\n value: purple[100],\n description: ''\n },\n 'color-bg-magic-subdued-active': {\n value: purple[200],\n description: ''\n },\n 'color-bg-magic-subdued': {\n value: purple[50],\n description: ''\n },\n 'color-border-input-hover': {\n value: gray[800],\n description: ''\n },\n 'color-border-inverse': {\n value: gray[800],\n description: ''\n },\n 'color-border-strong-hover': {\n value: gray[700],\n description: ''\n },\n 'color-border-input': {\n value: gray[600],\n description: ''\n },\n 'color-border-hover': {\n value: gray[600],\n description: ''\n },\n 'color-border-strong': {\n value: gray[600],\n description: ''\n },\n 'color-border': {\n value: gray[500],\n description: ''\n },\n 'color-border-disabled': {\n value: gray[400],\n description: ''\n },\n 'color-border-subdued': {\n value: gray[400],\n description: ''\n },\n 'color-border-interactive-disabled': {\n value: gray[400],\n description: ''\n },\n 'color-border-primary': {\n value: green[700],\n description: ''\n },\n 'color-border-success': {\n value: green[600],\n description: ''\n },\n 'color-border-success-subdued': {\n value: green[400],\n description: ''\n },\n 'color-border-critical-active': {\n value: red[900],\n description: ''\n },\n 'color-border-critical-hover': {\n value: red[800],\n description: ''\n },\n 'color-border-critical': {\n value: red[600],\n description: ''\n },\n 'color-border-critical-subdued': {\n value: red[400],\n description: ''\n },\n 'color-border-caution': {\n value: yellow[600],\n description: ''\n },\n 'color-border-caution-subdued': {\n value: yellow[400],\n description: ''\n },\n 'color-border-info': {\n value: teal[500],\n description: ''\n },\n 'color-border-info-subdued': {\n value: teal[400],\n description: ''\n },\n 'color-border-interactive-active': {\n value: blue[800],\n description: ''\n },\n 'color-border-interactive-hover': {\n value: blue[700],\n description: ''\n },\n 'color-border-interactive': {\n value: blue[500],\n description: ''\n },\n 'color-border-interactive-focus': {\n value: blue[500],\n description: ''\n },\n 'color-border-interactive-subdued': {\n value: blue[200],\n description: ''\n },\n 'color-border-magic-strong': {\n value: purple[500],\n description: ''\n },\n 'color-border-magic': {\n value: purple[400],\n description: ''\n },\n 'color-icon-hover': {\n value: gray[900],\n description: ''\n },\n 'color-icon': {\n value: gray[800],\n description: ''\n },\n 'color-icon-active': {\n value: gray[900],\n description: ''\n },\n 'color-icon-subdued': {\n value: gray[700],\n description: ''\n },\n 'color-icon-disabled': {\n value: gray[600],\n description: ''\n },\n 'color-icon-interactive-disabled': {\n value: gray[600],\n description: ''\n },\n 'color-icon-inverse': {\n value: gray[400],\n description: ''\n },\n 'color-icon-on-color': {\n value: gray[50],\n description: ''\n },\n 'color-icon-primary': {\n value: green[700],\n description: ''\n },\n 'color-icon-success': {\n value: green[600],\n description: ''\n },\n 'color-icon-critical': {\n value: red[600],\n description: ''\n },\n 'color-icon-caution': {\n value: yellow[700],\n description: ''\n },\n 'color-icon-info': {\n value: teal[600],\n description: ''\n },\n 'color-icon-warning': {\n value: orange[500],\n description: ''\n },\n 'color-icon-interactive-active': {\n value: blue[800],\n description: ''\n },\n 'color-icon-interactive-hover': {\n value: blue[700],\n description: ''\n },\n 'color-icon-interactive': {\n value: blue[600],\n description: ''\n },\n 'color-icon-interactive-inverse': {\n value: blue[400],\n description: ''\n },\n 'color-icon-magic': {\n value: purple[500],\n description: ''\n },\n 'color-text': {\n value: gray[900],\n description: ''\n },\n 'color-text-subdued': {\n value: gray[800],\n description: ''\n },\n 'color-text-disabled': {\n value: gray[700],\n description: ''\n },\n 'color-text-interactive-disabled': {\n value: gray[700],\n description: ''\n },\n 'color-text-inverse-subdued': {\n value: gray[600],\n description: ''\n },\n 'color-text-inverse': {\n value: gray[200],\n description: ''\n },\n 'color-text-on-color': {\n value: gray[50],\n description: ''\n },\n 'color-text-success-strong': {\n value: green[900],\n description: ''\n },\n 'color-text-success': {\n value: green[700],\n description: ''\n },\n 'color-text-primary': {\n value: green[700],\n description: ''\n },\n 'color-text-primary-hover': {\n value: green[800],\n description: ''\n },\n 'color-text-critical-strong': {\n value: red[900],\n description: ''\n },\n 'color-text-critical-active': {\n value: red[800],\n description: ''\n },\n 'color-text-critical': {\n value: red[600],\n description: ''\n },\n 'color-text-caution-strong': {\n value: yellow[900],\n description: ''\n },\n 'color-text-caution': {\n value: yellow[800],\n description: ''\n },\n 'color-text-info-strong': {\n value: teal[900],\n description: ''\n },\n 'color-text-info': {\n value: teal[700],\n description: ''\n },\n 'color-text-warning-strong': {\n value: orange[900],\n description: ''\n },\n 'color-text-interactive-active': {\n value: blue[800],\n description: ''\n },\n 'color-text-interactive-hover': {\n value: blue[700],\n description: ''\n },\n 'color-text-interactive': {\n value: blue[600],\n description: ''\n },\n 'color-text-interactive-inverse': {\n value: blue[400],\n description: ''\n },\n 'color-text-magic-strong': {\n value: purple[800],\n description: ''\n },\n 'color-text-magic': {\n value: purple[600],\n description: ''\n }\n};\n\nexport { color };\n","import { tokensToRems } from './utilities.mjs';\nimport { breakpoints } from './token-groups/breakpoints.mjs';\nimport { border } from './token-groups/border.mjs';\nimport { depth } from './token-groups/depth.mjs';\nimport { font } from './token-groups/font.mjs';\nimport { legacy } from './token-groups/legacy.mjs';\nimport { color } from './token-groups/color.mjs';\nimport { colors } from './token-groups/colors.mjs';\nimport { motion } from './token-groups/motion.mjs';\nimport { shadow } from './token-groups/shadow.mjs';\nimport { shape } from './token-groups/shape.mjs';\nimport { spacing } from './token-groups/spacing.mjs';\nimport { space } from './token-groups/space.mjs';\nimport { zIndex } from './token-groups/zIndex.mjs';\n\nvar metadata = createMetadata({\n breakpoints: tokensToRems(breakpoints),\n border: tokensToRems(border),\n color: color,\n colors: colors,\n depth: depth,\n font: tokensToRems(font),\n legacy: tokensToRems(legacy),\n motion: motion,\n shadow: tokensToRems(shadow),\n shape: tokensToRems(shape),\n spacing: tokensToRems(spacing),\n space: tokensToRems(space),\n zIndex: zIndex\n});\n\n/**\n * Identity function that simply returns the provided tokens with metadata, but additionally\n * validates the input matches the `Metadata` type exactly and infers all members.\n */\nfunction createMetadata(metadata) {\n return metadata;\n}\n\nexport { createMetadata, metadata };\n","var border = {\n 'border-radius-05': {\n value: '2px'\n },\n 'border-radius-1': {\n value: '4px'\n },\n 'border-radius-2': {\n value: '8px'\n },\n 'border-radius-3': {\n value: '12px'\n },\n 'border-radius-4': {\n value: '16px'\n },\n 'border-radius-5': {\n value: '20px'\n },\n 'border-radius-6': {\n value: '30px'\n },\n 'border-radius-full': {\n value: '9999px'\n },\n 'border-width-1': {\n value: '1px'\n },\n 'border-width-2': {\n value: '2px'\n },\n 'border-width-3': {\n value: '3px'\n },\n 'border-width-4': {\n value: '4px'\n },\n 'border-width-5': {\n value: '5px'\n }\n};\n\nexport { border };\n","var font = {\n 'font-family-sans': {\n value: \"-apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif\"\n },\n 'font-family-mono': {\n value: \"ui-monospace, SFMono-Regular, 'SF Mono', Consolas, 'Liberation Mono', Menlo, monospace\"\n },\n 'font-size-75': {\n value: '12px'\n },\n 'font-size-100': {\n value: '14px'\n },\n 'font-size-200': {\n value: '16px'\n },\n 'font-size-300': {\n value: '20px'\n },\n 'font-size-400': {\n value: '24px'\n },\n 'font-size-500': {\n value: '28px'\n },\n 'font-size-600': {\n value: '32px'\n },\n 'font-size-700': {\n value: '40px'\n },\n 'font-weight-regular': {\n value: '400'\n },\n 'font-weight-medium': {\n value: '500'\n },\n 'font-weight-semibold': {\n value: '600'\n },\n 'font-weight-bold': {\n value: '700'\n },\n 'font-line-height-1': {\n value: '16px'\n },\n 'font-line-height-2': {\n value: '20px'\n },\n 'font-line-height-3': {\n value: '24px'\n },\n 'font-line-height-4': {\n value: '28px'\n },\n 'font-line-height-5': {\n value: '32px'\n },\n 'font-line-height-6': {\n value: '40px'\n },\n 'font-line-height-7': {\n value: '48px'\n }\n};\n\nexport { font };\n","var legacy = {\n 'override-loading-z-index': {\n value: '514'\n },\n 'choice-size': {\n value: '20px'\n },\n 'icon-size-small': {\n value: '8px'\n },\n 'icon-size-medium': {\n value: '20px'\n },\n 'choice-margin': {\n value: '1px'\n },\n 'control-border-width': {\n value: '2px'\n },\n 'banner-border-default': {\n value: 'inset 0 1px 0 0 var(--p-color-border-strong), inset 0 0 0 1px var(--p-color-border-strong)'\n },\n 'banner-border-success': {\n value: 'inset 0 1px 0 0 var(--p-color-border-success-subdued), inset 0 0 0 1px var(--p-color-border-success-subdued)'\n },\n 'banner-border-highlight': {\n value: 'inset 0 1px 0 0 var(--p-color-border-info-subdued), inset 0 0 0 1px var(--p-color-border-info-subdued)'\n },\n 'banner-border-warning': {\n value: 'inset 0 1px 0 0 var(--p-color-border-caution-subdued), inset 0 0 0 1px var(--p-color-border-caution-subdued)'\n },\n 'banner-border-critical': {\n value: 'inset 0 1px 0 0 var(--p-color-border-critical-subdued), inset 0 0 0 1px var(--p-color-border-critical-subdued)'\n },\n 'thin-border-subdued': {\n value: '1px solid var(--p-color-border-subdued)'\n },\n 'text-field-spinner-offset': {\n value: '2px'\n },\n 'text-field-focus-ring-offset': {\n value: '-4px'\n },\n 'button-group-item-spacing': {\n value: '-1px'\n },\n 'range-slider-thumb-size-base': {\n value: '16px'\n },\n 'range-slider-thumb-size-active': {\n value: '24px'\n },\n 'frame-offset': {\n value: '0px'\n }\n};\n\nexport { legacy };\n","var shadow = {\n 'shadow-inset-lg': {\n value: 'inset 0px 0px 7px 2px rgba(31, 33, 36, 0.18)'\n },\n 'shadow-inset-md': {\n value: 'inset 0px 2px 4px rgba(31, 33, 36, 0.32)'\n },\n 'shadow-inset-sm': {\n value: 'inset 0px 0px 3px rgba(31, 33, 36, 0.56)'\n },\n 'shadow-none': {\n value: 'none'\n },\n 'shadow-xs': {\n value: '0px 0px 2px rgba(31, 33, 36, 0.24)'\n },\n 'shadow-sm': {\n value: '0px 1px 1px rgba(31, 33, 36, 0.1)'\n },\n 'shadow-md': {\n value: '0px 2px 4px rgba(31, 33, 36, 0.1), 0px 1px 6px rgba(31, 33, 36, 0.05)'\n },\n 'shadow-lg': {\n value: '0px 4px 12px rgba(31, 33, 36, 0.2), 0px 2px 6px rgba(31, 33, 36, 0.05)'\n },\n 'shadow-xl': {\n value: '0px 4px 18px -2px rgba(31, 33, 36, 0.08), 0px 12px 18px -2px rgba(31, 33, 36, 0.15)'\n },\n 'shadow-2xl': {\n value: '0px 32px 32px rgba(31, 33, 36, 0.15), 0px 32px 56px -2px rgba(31, 33, 36, 0.16)'\n }\n};\n\nexport { shadow };\n","var shape = {\n 'border-radius-05': {\n value: '2px'\n },\n 'border-radius-1': {\n value: '4px'\n },\n 'border-radius-2': {\n value: '8px'\n },\n 'border-radius-3': {\n value: '12px'\n },\n 'border-radius-4': {\n value: '16px'\n },\n 'border-radius-5': {\n value: '20px'\n },\n 'border-radius-6': {\n value: '30px'\n },\n 'border-radius-full': {\n value: '9999px'\n },\n 'border-radius-base': {\n value: '3px'\n },\n 'border-radius-large': {\n value: '6px'\n },\n 'border-radius-half': {\n value: '50%'\n },\n 'border-width-1': {\n value: '1px'\n },\n 'border-width-2': {\n value: '2px'\n },\n 'border-width-3': {\n value: '3px'\n },\n 'border-width-4': {\n value: '4px'\n },\n 'border-width-5': {\n value: '5px'\n },\n 'border-base': {\n value: 'var(--p-border-width-1) solid var(--p-color-border-subdued)'\n },\n 'border-dark': {\n value: 'var(--p-border-width-1) solid var(--p-color-border)'\n },\n 'border-transparent': {\n value: 'var(--p-border-width-1) solid transparent'\n },\n 'border-divider': {\n value: 'var(--p-border-width-1) solid var(--p-color-border-subdued)'\n },\n 'border-divider-on-dark': {\n value: 'var(--p-border-width-1) solid var(--p-color-border-inverse)'\n }\n};\n\nexport { shape };\n","var spacing = {\n 'space-0': {\n value: '0'\n },\n 'space-025': {\n value: '1px'\n },\n 'space-05': {\n value: '2px'\n },\n 'space-1': {\n value: '4px'\n },\n 'space-2': {\n value: '8px'\n },\n 'space-3': {\n value: '12px'\n },\n 'space-4': {\n value: '16px'\n },\n 'space-5': {\n value: '20px'\n },\n 'space-6': {\n value: '24px'\n },\n 'space-8': {\n value: '32px'\n },\n 'space-10': {\n value: '40px'\n },\n 'space-12': {\n value: '48px'\n },\n 'space-16': {\n value: '64px'\n },\n 'space-20': {\n value: '80px'\n },\n 'space-24': {\n value: '96px'\n },\n 'space-28': {\n value: '112px'\n },\n 'space-32': {\n value: '128px'\n }\n};\n\nexport { spacing };\n","var space = {\n 'space-0': {\n value: '0'\n },\n 'space-025': {\n value: '1px'\n },\n 'space-05': {\n value: '2px'\n },\n 'space-1': {\n value: '4px'\n },\n 'space-2': {\n value: '8px'\n },\n 'space-3': {\n value: '12px'\n },\n 'space-4': {\n value: '16px'\n },\n 'space-5': {\n value: '20px'\n },\n 'space-6': {\n value: '24px'\n },\n 'space-8': {\n value: '32px'\n },\n 'space-10': {\n value: '40px'\n },\n 'space-12': {\n value: '48px'\n },\n 'space-16': {\n value: '64px'\n },\n 'space-20': {\n value: '80px'\n },\n 'space-24': {\n value: '96px'\n },\n 'space-28': {\n value: '112px'\n },\n 'space-32': {\n value: '128px'\n }\n};\n\nexport { space };\n","export { createMetadata, metadata } from '../src/metadata.mjs';\nexport { createVar, getCustomPropertyNames, getKeyframeNames, getMediaConditions, getUnit, isKeyOf, rem, removeMetadata, toEm, toPx, toRem, tokensToRems } from '../src/utilities.mjs';\n\nvar breakpoints = {\n \"breakpoints-xs\": \"0rem\",\n \"breakpoints-sm\": \"30.625rem\",\n \"breakpoints-md\": \"48rem\",\n \"breakpoints-lg\": \"65rem\",\n \"breakpoints-xl\": \"90rem\"\n};\nvar border = {\n \"border-radius-05\": \"0.125rem\",\n \"border-radius-1\": \"0.25rem\",\n \"border-radius-2\": \"0.5rem\",\n \"border-radius-3\": \"0.75rem\",\n \"border-radius-4\": \"1rem\",\n \"border-radius-5\": \"1.25rem\",\n \"border-radius-6\": \"1.875rem\",\n \"border-radius-full\": \"624.9375rem\",\n \"border-width-1\": \"0.0625rem\",\n \"border-width-2\": \"0.125rem\",\n \"border-width-3\": \"0.1875rem\",\n \"border-width-4\": \"0.25rem\",\n \"border-width-5\": \"0.3125rem\"\n};\nvar color = {\n \"color-bg-inverse\": \"rgba(31, 33, 36, 1)\",\n \"color-bg-inset-strong\": \"rgba(97, 106, 117, 1)\",\n \"color-bg-inverse-hover\": \"rgba(97, 106, 117, 1)\",\n \"color-bg-inverse-active\": \"rgba(135, 144, 155, 1)\",\n \"color-bg-strong-hover\": \"rgba(202, 206, 211, 1)\",\n \"color-bg-strong-active\": \"rgba(202, 206, 211, 1)\",\n \"color-bg-strong\": \"rgba(221, 224, 228, 1)\",\n \"color-bg-subdued-active\": \"rgba(235, 236, 239, 1)\",\n \"color-bg-disabled\": \"rgba(235, 236, 239, 1)\",\n \"color-bg-interactive-disabled\": \"rgba(235, 236, 239, 1)\",\n \"color-bg-app\": \"rgba(241, 242, 244, 1)\",\n \"color-bg-app-active\": \"rgba(221, 224, 228, 1)\",\n \"color-bg-app-hover\": \"rgba(235, 236, 239, 1)\",\n \"color-bg-app-selected\": \"rgba(235, 236, 239, 1)\",\n \"color-bg-active\": \"rgba(235, 236, 239, 1)\",\n \"color-bg-subdued-hover\": \"rgba(241, 242, 244, 1)\",\n \"color-bg-inset\": \"rgba(241, 242, 244, 1)\",\n \"color-bg-hover\": \"rgba(241, 242, 244, 1)\",\n \"color-bg-subdued\": \"rgba(249, 250, 251, 1)\",\n \"color-bg-input\": \"rgba(255, 255, 255, 1)\",\n \"color-bg\": \"rgba(255, 255, 255, 1)\",\n \"color-bg-primary-active\": \"rgba(12, 59, 47, 1)\",\n \"color-bg-primary-hover\": \"rgba(18, 84, 67, 1)\",\n \"color-bg-primary\": \"rgba(0, 122, 92, 1)\",\n \"color-bg-success-strong\": \"rgba(22, 166, 121, 1)\",\n \"color-bg-success\": \"rgba(161, 237, 208, 1)\",\n \"color-bg-primary-subdued-active\": \"rgba(192, 242, 221, 1)\",\n \"color-bg-success-subdued-active\": \"rgba(192, 242, 221, 1)\",\n \"color-bg-success-subdued\": \"rgba(224, 248, 238, 1)\",\n \"color-bg-primary-subdued-hover\": \"rgba(224, 248, 238, 1)\",\n \"color-bg-success-subdued-hover\": \"rgba(240, 253, 248, 1)\",\n \"color-bg-primary-subdued\": \"rgba(240, 253, 248, 1)\",\n \"color-bg-primary-subdued-selected\": \"rgba(240, 253, 248, 1)\",\n \"color-bg-critical-strong-active\": \"rgba(115, 24, 7, 1)\",\n \"color-bg-critical-strong-hover\": \"rgba(159, 32, 10, 1)\",\n \"color-bg-critical-strong\": \"rgba(197, 40, 12, 1)\",\n \"color-bg-critical-subdued-active\": \"rgba(251, 197, 188, 1)\",\n \"color-bg-critical\": \"rgba(251, 197, 188, 1)\",\n \"color-bg-critical-subdued\": \"rgba(253, 226, 221, 1)\",\n \"color-bg-critical-subdued-hover\": \"rgba(254, 243, 241, 1)\",\n \"color-bg-caution-strong\": \"rgba(216, 155, 13, 1)\",\n \"color-bg-caution\": \"rgba(248, 217, 144, 1)\",\n \"color-bg-caution-subdued-active\": \"rgba(250, 229, 178, 1)\",\n \"color-bg-caution-subdued\": \"rgba(252, 240, 212, 1)\",\n \"color-bg-caution-subdued-hover\": \"rgba(254, 248, 236, 1)\",\n \"color-bg-info-strong\": \"rgba(42, 172, 187, 1)\",\n \"color-bg-info-subdued-active\": \"rgba(184, 233, 239, 1)\",\n \"color-bg-info\": \"rgba(184, 233, 239, 1)\",\n \"color-bg-info-subdued\": \"rgba(222, 245, 247, 1)\",\n \"color-bg-info-subdued-hover\": \"rgba(238, 250, 251, 1)\",\n \"color-bg-interactive-active\": \"rgba(14, 53, 108, 1)\",\n \"color-bg-interactive-hover\": \"rgba(20, 73, 149, 1)\",\n \"color-bg-interactive\": \"rgba(36, 99, 188, 1)\",\n \"color-bg-interactive-subdued-active\": \"rgba(187, 212, 247, 1)\",\n \"color-bg-interactive-subdued-hover\": \"rgba(232, 240, 253, 1)\",\n \"color-bg-interactive-subdued\": \"rgba(240, 245, 253, 1)\",\n \"color-bg-interactive-selected\": \"rgba(240, 245, 253, 1)\",\n \"color-bg-warning\": \"rgba(250, 201, 168, 1)\",\n \"color-bg-magic-strong\": \"rgba(121, 69, 227, 1)\",\n \"color-bg-magic-hover\": \"rgba(226, 214, 250, 1)\",\n \"color-bg-magic-active\": \"rgba(203, 180, 248, 1)\",\n \"color-bg-magic\": \"rgba(236, 227, 253, 1)\",\n \"color-bg-magic-subdued-hover\": \"rgba(236, 227, 253, 1)\",\n \"color-bg-magic-subdued-active\": \"rgba(226, 214, 250, 1)\",\n \"color-bg-magic-subdued\": \"rgba(242, 237, 253, 1)\",\n \"color-border-input-hover\": \"rgba(97, 106, 117, 1)\",\n \"color-border-inverse\": \"rgba(97, 106, 117, 1)\",\n \"color-border-strong-hover\": \"rgba(135, 144, 155, 1)\",\n \"color-border-input\": \"rgba(171, 177, 186, 1)\",\n \"color-border-hover\": \"rgba(171, 177, 186, 1)\",\n \"color-border-strong\": \"rgba(171, 177, 186, 1)\",\n \"color-border\": \"rgba(202, 206, 211, 1)\",\n \"color-border-disabled\": \"rgba(221, 224, 228, 1)\",\n \"color-border-subdued\": \"rgba(221, 224, 228, 1)\",\n \"color-border-interactive-disabled\": \"rgba(221, 224, 228, 1)\",\n \"color-border-primary\": \"rgba(0, 122, 92, 1)\",\n \"color-border-success\": \"rgba(22, 166, 121, 1)\",\n \"color-border-success-subdued\": \"rgba(80, 220, 169, 1)\",\n \"color-border-critical-active\": \"rgba(67, 14, 4, 1)\",\n \"color-border-critical-hover\": \"rgba(115, 24, 7, 1)\",\n \"color-border-critical\": \"rgba(197, 40, 12, 1)\",\n \"color-border-critical-subdued\": \"rgba(245, 107, 82, 1)\",\n \"color-border-caution\": \"rgba(216, 155, 13, 1)\",\n \"color-border-caution-subdued\": \"rgba(245, 196, 82, 1)\",\n \"color-border-info\": \"rgba(59, 195, 211, 1)\",\n \"color-border-info-subdued\": \"rgba(109, 211, 222, 1)\",\n \"color-border-interactive-active\": \"rgba(14, 53, 108, 1)\",\n \"color-border-interactive-hover\": \"rgba(20, 73, 149, 1)\",\n \"color-border-interactive\": \"rgba(62, 125, 213, 1)\",\n \"color-border-interactive-focus\": \"rgba(62, 125, 213, 1)\",\n \"color-border-interactive-subdued\": \"rgba(187, 212, 247, 1)\",\n \"color-border-magic-strong\": \"rgba(121, 69, 227, 1)\",\n \"color-border-magic\": \"rgba(173, 139, 241, 1)\",\n \"color-icon-hover\": \"rgba(31, 33, 36, 1)\",\n \"color-icon\": \"rgba(97, 106, 117, 1)\",\n \"color-icon-active\": \"rgba(31, 33, 36, 1)\",\n \"color-icon-subdued\": \"rgba(135, 144, 155, 1)\",\n \"color-icon-disabled\": \"rgba(171, 177, 186, 1)\",\n \"color-icon-interactive-disabled\": \"rgba(171, 177, 186, 1)\",\n \"color-icon-inverse\": \"rgba(221, 224, 228, 1)\",\n \"color-icon-on-color\": \"rgba(255, 255, 255, 1)\",\n \"color-icon-primary\": \"rgba(0, 122, 92, 1)\",\n \"color-icon-success\": \"rgba(22, 166, 121, 1)\",\n \"color-icon-critical\": \"rgba(197, 40, 12, 1)\",\n \"color-icon-caution\": \"rgba(183, 126, 11, 1)\",\n \"color-icon-info\": \"rgba(42, 172, 187, 1)\",\n \"color-icon-warning\": \"rgba(242, 117, 34, 1)\",\n \"color-icon-interactive-active\": \"rgba(14, 53, 108, 1)\",\n \"color-icon-interactive-hover\": \"rgba(20, 73, 149, 1)\",\n \"color-icon-interactive\": \"rgba(36, 99, 188, 1)\",\n \"color-icon-interactive-inverse\": \"rgba(102, 153, 225, 1)\",\n \"color-icon-magic\": \"rgba(121, 69, 227, 1)\",\n \"color-text\": \"rgba(31, 33, 36, 1)\",\n \"color-text-subdued\": \"rgba(97, 106, 117, 1)\",\n \"color-text-disabled\": \"rgba(135, 144, 155, 1)\",\n \"color-text-interactive-disabled\": \"rgba(135, 144, 155, 1)\",\n \"color-text-inverse-subdued\": \"rgba(171, 177, 186, 1)\",\n \"color-text-inverse\": \"rgba(241, 242, 244, 1)\",\n \"color-text-on-color\": \"rgba(255, 255, 255, 1)\",\n \"color-text-success-strong\": \"rgba(12, 59, 47, 1)\",\n \"color-text-success\": \"rgba(0, 122, 92, 1)\",\n \"color-text-primary\": \"rgba(0, 122, 92, 1)\",\n \"color-text-primary-hover\": \"rgba(18, 84, 67, 1)\",\n \"color-text-critical-strong\": \"rgba(67, 14, 4, 1)\",\n \"color-text-critical-active\": \"rgba(115, 24, 7, 1)\",\n \"color-text-critical\": \"rgba(197, 40, 12, 1)\",\n \"color-text-caution-strong\": \"rgba(77, 46, 5, 1)\",\n \"color-text-caution\": \"rgba(135, 92, 8, 1)\",\n \"color-text-info-strong\": \"rgba(16, 65, 71, 1)\",\n \"color-text-info\": \"rgba(32, 130, 141, 1)\",\n \"color-text-warning-strong\": \"rgba(77, 36, 5, 1)\",\n \"color-text-interactive-active\": \"rgba(14, 53, 108, 1)\",\n \"color-text-interactive-hover\": \"rgba(20, 73, 149, 1)\",\n \"color-text-interactive\": \"rgba(36, 99, 188, 1)\",\n \"color-text-interactive-inverse\": \"rgba(102, 153, 225, 1)\",\n \"color-text-magic-strong\": \"rgba(49, 13, 120, 1)\",\n \"color-text-magic\": \"rgba(90, 36, 205, 1)\"\n};\nvar colors = {\n \"background\": \"rgba(246, 246, 247, 1)\",\n \"background-hovered\": \"rgba(241, 242, 243, 1)\",\n \"background-pressed\": \"rgba(237, 238, 239, 1)\",\n \"background-selected\": \"rgba(237, 238, 239, 1)\",\n \"surface\": \"rgba(255, 255, 255, 1)\",\n \"surface-dark\": \"rgba(32, 33, 35, 1)\",\n \"surface-neutral\": \"rgba(228, 229, 231, 1)\",\n \"surface-neutral-hovered\": \"rgba(219, 221, 223, 1)\",\n \"surface-neutral-pressed\": \"rgba(201, 204, 208, 1)\",\n \"surface-neutral-disabled\": \"rgba(241, 242, 243, 1)\",\n \"surface-neutral-subdued\": \"rgba(246, 246, 247, 1)\",\n \"surface-neutral-subdued-dark\": \"rgba(68, 71, 74, 1)\",\n \"surface-subdued\": \"rgba(250, 251, 251, 1)\",\n \"surface-disabled\": \"rgba(250, 251, 251, 1)\",\n \"surface-hovered\": \"rgba(246, 246, 247, 1)\",\n \"surface-hovered-dark\": \"rgba(47, 49, 51, 1)\",\n \"surface-pressed\": \"rgba(241, 242, 243, 1)\",\n \"surface-pressed-dark\": \"rgba(62, 64, 67, 1)\",\n \"surface-depressed\": \"rgba(237, 238, 239, 1)\",\n \"surface-search-field\": \"rgba(241, 242, 243, 1)\",\n \"surface-search-field-dark\": \"rgba(47, 49, 51, 1)\",\n \"backdrop\": \"rgba(0, 0, 0, 0.5)\",\n \"overlay\": \"rgba(255, 255, 255, 0.5)\",\n \"shadow-color-picker\": \"rgba(0, 0, 0, 0.5)\",\n \"shadow-color-picker-dragger\": \"rgba(33, 43, 54, 0.32)\",\n \"hint-from-direct-light\": \"rgba(0, 0, 0, 0.15)\",\n \"border\": \"rgba(140, 145, 150, 1)\",\n \"border-on-dark\": \"rgba(80, 83, 86, 1)\",\n \"border-neutral-subdued\": \"rgba(186, 191, 195, 1)\",\n \"border-hovered\": \"rgba(153, 158, 164, 1)\",\n \"border-disabled\": \"rgba(210, 213, 216, 1)\",\n \"border-subdued\": \"rgba(201, 204, 207, 1)\",\n \"border-depressed\": \"rgba(87, 89, 89, 1)\",\n \"border-shadow\": \"rgba(174, 180, 185, 1)\",\n \"border-shadow-subdued\": \"rgba(186, 191, 196, 1)\",\n \"divider\": \"rgba(225, 227, 229, 1)\",\n \"divider-dark\": \"rgba(69, 71, 73, 1)\",\n \"icon\": \"rgba(92, 95, 98, 1)\",\n \"icon-on-dark\": \"rgba(166, 172, 178, 1)\",\n \"icon-hovered\": \"rgba(26, 28, 29, 1)\",\n \"icon-pressed\": \"rgba(68, 71, 74, 1)\",\n \"icon-disabled\": \"rgba(186, 190, 195, 1)\",\n \"icon-subdued\": \"rgba(140, 145, 150, 1)\",\n \"text\": \"rgba(32, 34, 35, 1)\",\n \"text-on-dark\": \"rgba(227, 229, 231, 1)\",\n \"text-disabled\": \"rgba(140, 145, 150, 1)\",\n \"text-subdued\": \"rgba(109, 113, 117, 1)\",\n \"text-subdued-on-dark\": \"rgba(153, 159, 164, 1)\",\n \"interactive\": \"rgba(44, 110, 203, 1)\",\n \"interactive-on-dark\": \"rgba(54, 163, 255, 1)\",\n \"interactive-disabled\": \"rgba(189, 193, 204, 1)\",\n \"interactive-hovered\": \"rgba(31, 81, 153, 1)\",\n \"interactive-pressed\": \"rgba(16, 50, 98, 1)\",\n \"interactive-pressed-on-dark\": \"rgba(136, 188, 255, 1)\",\n \"focused\": \"rgba(69, 143, 255, 1)\",\n \"surface-selected\": \"rgba(242, 247, 254, 1)\",\n \"surface-selected-hovered\": \"rgba(237, 244, 254, 1)\",\n \"surface-selected-pressed\": \"rgba(229, 239, 253, 1)\",\n \"icon-on-interactive\": \"rgba(255, 255, 255, 1)\",\n \"text-on-interactive\": \"rgba(255, 255, 255, 1)\",\n \"action-secondary\": \"rgba(255, 255, 255, 1)\",\n \"action-secondary-disabled\": \"rgba(255, 255, 255, 1)\",\n \"action-secondary-hovered\": \"rgba(246, 246, 247, 1)\",\n \"action-secondary-hovered-dark\": \"rgba(84, 87, 91, 1)\",\n \"action-secondary-pressed\": \"rgba(241, 242, 243, 1)\",\n \"action-secondary-pressed-dark\": \"rgba(96, 100, 103, 1)\",\n \"action-secondary-depressed\": \"rgba(109, 113, 117, 1)\",\n \"action-primary\": \"rgba(0, 128, 96, 1)\",\n \"action-primary-disabled\": \"rgba(241, 241, 241, 1)\",\n \"action-primary-hovered\": \"rgba(0, 110, 82, 1)\",\n \"action-primary-pressed\": \"rgba(0, 94, 70, 1)\",\n \"action-primary-depressed\": \"rgba(0, 61, 44, 1)\",\n \"icon-on-primary\": \"rgba(255, 255, 255, 1)\",\n \"text-on-primary\": \"rgba(255, 255, 255, 1)\",\n \"text-primary\": \"rgba(0, 123, 92, 1)\",\n \"text-primary-hovered\": \"rgba(0, 108, 80, 1)\",\n \"text-primary-pressed\": \"rgba(0, 92, 68, 1)\",\n \"surface-primary-selected\": \"rgba(241, 248, 245, 1)\",\n \"surface-primary-selected-hovered\": \"rgba(179, 208, 195, 1)\",\n \"surface-primary-selected-pressed\": \"rgba(162, 188, 176, 1)\",\n \"border-critical\": \"rgba(253, 87, 73, 1)\",\n \"border-critical-subdued\": \"rgba(224, 179, 178, 1)\",\n \"border-critical-disabled\": \"rgba(255, 167, 163, 1)\",\n \"icon-critical\": \"rgba(215, 44, 13, 1)\",\n \"surface-critical\": \"rgba(254, 211, 209, 1)\",\n \"surface-critical-subdued\": \"rgba(255, 244, 244, 1)\",\n \"surface-critical-subdued-hovered\": \"rgba(255, 240, 240, 1)\",\n \"surface-critical-subdued-pressed\": \"rgba(255, 233, 232, 1)\",\n \"surface-critical-subdued-depressed\": \"rgba(254, 188, 185, 1)\",\n \"text-critical\": \"rgba(215, 44, 13, 1)\",\n \"action-critical\": \"rgba(216, 44, 13, 1)\",\n \"action-critical-disabled\": \"rgba(241, 241, 241, 1)\",\n \"action-critical-hovered\": \"rgba(188, 34, 0, 1)\",\n \"action-critical-pressed\": \"rgba(162, 27, 0, 1)\",\n \"action-critical-depressed\": \"rgba(108, 15, 0, 1)\",\n \"icon-on-critical\": \"rgba(255, 255, 255, 1)\",\n \"text-on-critical\": \"rgba(255, 255, 255, 1)\",\n \"interactive-critical\": \"rgba(216, 44, 13, 1)\",\n \"interactive-critical-disabled\": \"rgba(253, 147, 141, 1)\",\n \"interactive-critical-hovered\": \"rgba(205, 41, 12, 1)\",\n \"interactive-critical-pressed\": \"rgba(103, 15, 3, 1)\",\n \"border-warning\": \"rgba(185, 137, 0, 1)\",\n \"border-warning-subdued\": \"rgba(225, 184, 120, 1)\",\n \"icon-warning\": \"rgba(185, 137, 0, 1)\",\n \"surface-warning\": \"rgba(255, 215, 157, 1)\",\n \"surface-warning-subdued\": \"rgba(255, 245, 234, 1)\",\n \"surface-warning-subdued-hovered\": \"rgba(255, 242, 226, 1)\",\n \"surface-warning-subdued-pressed\": \"rgba(255, 235, 211, 1)\",\n \"text-warning\": \"rgba(145, 106, 0, 1)\",\n \"border-highlight\": \"rgba(68, 157, 167, 1)\",\n \"border-highlight-subdued\": \"rgba(152, 198, 205, 1)\",\n \"icon-highlight\": \"rgba(0, 160, 172, 1)\",\n \"surface-highlight\": \"rgba(164, 232, 242, 1)\",\n \"surface-highlight-subdued\": \"rgba(235, 249, 252, 1)\",\n \"surface-highlight-subdued-hovered\": \"rgba(228, 247, 250, 1)\",\n \"surface-highlight-subdued-pressed\": \"rgba(213, 243, 248, 1)\",\n \"text-highlight\": \"rgba(52, 124, 132, 1)\",\n \"border-success\": \"rgba(0, 164, 124, 1)\",\n \"border-success-subdued\": \"rgba(149, 201, 180, 1)\",\n \"icon-success\": \"rgba(0, 127, 95, 1)\",\n \"surface-success\": \"rgba(174, 233, 209, 1)\",\n \"surface-success-subdued\": \"rgba(241, 248, 245, 1)\",\n \"surface-success-subdued-hovered\": \"rgba(236, 246, 241, 1)\",\n \"surface-success-subdued-pressed\": \"rgba(226, 241, 234, 1)\",\n \"text-success\": \"rgba(0, 128, 96, 1)\",\n \"icon-attention\": \"rgba(138, 97, 22, 1)\",\n \"surface-attention\": \"rgba(255, 234, 138, 1)\",\n \"decorative-one-icon\": \"rgba(126, 87, 0, 1)\",\n \"decorative-one-surface\": \"rgba(255, 201, 107, 1)\",\n \"decorative-one-text\": \"rgba(61, 40, 0, 1)\",\n \"decorative-two-icon\": \"rgba(175, 41, 78, 1)\",\n \"decorative-two-surface\": \"rgba(255, 196, 176, 1)\",\n \"decorative-two-text\": \"rgba(73, 11, 28, 1)\",\n \"decorative-three-icon\": \"rgba(0, 109, 65, 1)\",\n \"decorative-three-surface\": \"rgba(146, 230, 181, 1)\",\n \"decorative-three-text\": \"rgba(0, 47, 25, 1)\",\n \"decorative-four-icon\": \"rgba(0, 106, 104, 1)\",\n \"decorative-four-surface\": \"rgba(145, 224, 214, 1)\",\n \"decorative-four-text\": \"rgba(0, 45, 45, 1)\",\n \"decorative-five-icon\": \"rgba(174, 43, 76, 1)\",\n \"decorative-five-surface\": \"rgba(253, 201, 208, 1)\",\n \"decorative-five-text\": \"rgba(79, 14, 31, 1)\"\n};\nvar depth = {\n \"shadow-transparent\": \"0 0 0 0 transparent\",\n \"shadow-faint\": \"0 1px 0 0 rgba(22, 29, 37, 0.05)\",\n \"shadow-base\": \"0 0 0 1px rgba(63, 63, 68, 0.05), 0 1px 3px 0 rgba(63, 63, 68, 0.15)\",\n \"shadow-deep\": \"0 0 0 1px rgba(6, 44, 82, 0.1), 0 2px 16px rgba(33, 43, 54, 0.08)\",\n \"shadow-button\": \"0 1px 0 rgba(0, 0, 0, 0.05)\",\n \"shadow-top-bar\": \"0 2px 2px -1px rgba(0, 0, 0, 0.15)\",\n \"shadow-card\": \"0 0 5px rgba(23, 24, 24, 0.05), 0 1px 2px rgba(0, 0, 0, 0.15)\",\n \"shadow-popover\": \"0 3px 6px -3px rgba(23, 24, 24, 0.08), 0 8px 20px -4px rgba(23, 24, 24, 0.12)\",\n \"shadow-layer\": \"0 31px 41px 0 rgba(32, 42, 53, 0.2), 0 2px 16px 0 rgba(32, 42, 54, 0.08)\",\n \"shadow-modal\": \"0 26px 80px rgba(0, 0, 0, 0.2), 0 0px 1px rgba(0, 0, 0, 0.2)\",\n \"shadows-inset-button\": \"inset 0 -1px 0 rgba(0, 0, 0, 0.2)\",\n \"shadows-inset-button-pressed\": \"inset 0 1px 0 rgba(0, 0, 0, 0.15)\"\n};\nvar font = {\n \"font-family-sans\": \"-apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif\",\n \"font-family-mono\": \"ui-monospace, SFMono-Regular, 'SF Mono', Consolas, 'Liberation Mono', Menlo, monospace\",\n \"font-size-75\": \"0.75rem\",\n \"font-size-100\": \"0.875rem\",\n \"font-size-200\": \"1rem\",\n \"font-size-300\": \"1.25rem\",\n \"font-size-400\": \"1.5rem\",\n \"font-size-500\": \"1.75rem\",\n \"font-size-600\": \"2rem\",\n \"font-size-700\": \"2.5rem\",\n \"font-weight-regular\": \"400\",\n \"font-weight-medium\": \"500\",\n \"font-weight-semibold\": \"600\",\n \"font-weight-bold\": \"700\",\n \"font-line-height-1\": \"1rem\",\n \"font-line-height-2\": \"1.25rem\",\n \"font-line-height-3\": \"1.5rem\",\n \"font-line-height-4\": \"1.75rem\",\n \"font-line-height-5\": \"2rem\",\n \"font-line-height-6\": \"2.5rem\",\n \"font-line-height-7\": \"3rem\"\n};\nvar legacy = {\n \"override-loading-z-index\": \"514\",\n \"choice-size\": \"1.25rem\",\n \"icon-size-small\": \"0.5rem\",\n \"icon-size-medium\": \"1.25rem\",\n \"choice-margin\": \"0.0625rem\",\n \"control-border-width\": \"0.125rem\",\n \"banner-border-default\": \"inset 0 0.0625rem 0 0 var(--p-color-border-strong), inset 0 0 0 0.0625rem var(--p-color-border-strong)\",\n \"banner-border-success\": \"inset 0 0.0625rem 0 0 var(--p-color-border-success-subdued), inset 0 0 0 0.0625rem var(--p-color-border-success-subdued)\",\n \"banner-border-highlight\": \"inset 0 0.0625rem 0 0 var(--p-color-border-info-subdued), inset 0 0 0 0.0625rem var(--p-color-border-info-subdued)\",\n \"banner-border-warning\": \"inset 0 0.0625rem 0 0 var(--p-color-border-caution-subdued), inset 0 0 0 0.0625rem var(--p-color-border-caution-subdued)\",\n \"banner-border-critical\": \"inset 0 0.0625rem 0 0 var(--p-color-border-critical-subdued), inset 0 0 0 0.0625rem var(--p-color-border-critical-subdued)\",\n \"thin-border-subdued\": \"0.0625rem solid var(--p-color-border-subdued)\",\n \"text-field-spinner-offset\": \"0.125rem\",\n \"text-field-focus-ring-offset\": \"-0.25rem\",\n \"button-group-item-spacing\": \"-0.0625rem\",\n \"range-slider-thumb-size-base\": \"1rem\",\n \"range-slider-thumb-size-active\": \"1.5rem\",\n \"frame-offset\": \"0rem\"\n};\nvar motion = {\n \"duration-0\": \"0ms\",\n \"duration-50\": \"50ms\",\n \"duration-100\": \"100ms\",\n \"duration-150\": \"150ms\",\n \"duration-200\": \"200ms\",\n \"duration-250\": \"250ms\",\n \"duration-300\": \"300ms\",\n \"duration-350\": \"350ms\",\n \"duration-400\": \"400ms\",\n \"duration-450\": \"450ms\",\n \"duration-500\": \"500ms\",\n \"duration-5000\": \"5000ms\",\n \"ease\": \"cubic-bezier(0.25, 0.1, 0.25, 1)\",\n \"ease-in\": \"cubic-bezier(0.42, 0, 1, 1)\",\n \"ease-out\": \"cubic-bezier(0, 0, 0.58, 1)\",\n \"ease-in-out\": \"cubic-bezier(0.42, 0, 0.58, 1)\",\n \"linear\": \"cubic-bezier(0, 0, 1, 1)\",\n \"keyframes-bounce\": \"{ from, 65%, 85% { transform: scale(1) } 75% { transform: scale(0.85) } 82.5% { transform: scale(1.05) } }\",\n \"keyframes-fade-in\": \"{ to { opacity: 1 } }\",\n \"keyframes-pulse\": \"{ from, 75% { transform: scale(0.85); opacity: 1; } to { transform: scale(2.5); opacity: 0; } }\",\n \"keyframes-spin\": \"{ to { transform: rotate(1turn) } }\",\n \"keyframes-appear-above\": \"{ from { transform: translateY(var(--p-space-1)); opacity: 0; } to { transform: none; opacity: 1; } }\",\n \"keyframes-appear-below\": \"{ from { transform: translateY(calc(var(--p-space-1) * -1)); opacity: 0; } to { transform: none; opacity: 1; } }\",\n \"motion-duration-0\": \"0ms\",\n \"motion-duration-50\": \"50ms\",\n \"motion-duration-100\": \"100ms\",\n \"motion-duration-150\": \"150ms\",\n \"motion-duration-200\": \"200ms\",\n \"motion-duration-250\": \"250ms\",\n \"motion-duration-300\": \"300ms\",\n \"motion-duration-350\": \"350ms\",\n \"motion-duration-400\": \"400ms\",\n \"motion-duration-450\": \"450ms\",\n \"motion-duration-500\": \"500ms\",\n \"motion-duration-5000\": \"5000ms\",\n \"motion-ease\": \"cubic-bezier(0.25, 0.1, 0.25, 1)\",\n \"motion-ease-in\": \"cubic-bezier(0.42, 0, 1, 1)\",\n \"motion-ease-out\": \"cubic-bezier(0, 0, 0.58, 1)\",\n \"motion-ease-in-out\": \"cubic-bezier(0.42, 0, 0.58, 1)\",\n \"motion-linear\": \"cubic-bezier(0, 0, 1, 1)\",\n \"motion-keyframes-bounce\": \"{ from, 65%, 85% { transform: scale(1) } 75% { transform: scale(0.85) } 82.5% { transform: scale(1.05) } }\",\n \"motion-keyframes-fade-in\": \"{ to { opacity: 1 } }\",\n \"motion-keyframes-pulse\": \"{ from, 75% { transform: scale(0.85); opacity: 1; } to { transform: scale(2.5); opacity: 0; } }\",\n \"motion-keyframes-spin\": \"{ to { transform: rotate(1turn) } }\",\n \"motion-keyframes-appear-above\": \"{ from { transform: translateY(var(--p-space-1)); opacity: 0; } to { transform: none; opacity: 1; } }\",\n \"motion-keyframes-appear-below\": \"{ from { transform: translateY(calc(var(--p-space-1) * -1)); opacity: 0; } to { transform: none; opacity: 1; } }\"\n};\nvar shadow = {\n \"shadow-inset-lg\": \"inset 0rem 0rem 0.4375rem 0.125rem rgba(31, 33, 36, 0.18)\",\n \"shadow-inset-md\": \"inset 0rem 0.125rem 0.25rem rgba(31, 33, 36, 0.32)\",\n \"shadow-inset-sm\": \"inset 0rem 0rem 0.1875rem rgba(31, 33, 36, 0.56)\",\n \"shadow-none\": \"none\",\n \"shadow-xs\": \"0rem 0rem 0.125rem rgba(31, 33, 36, 0.24)\",\n \"shadow-sm\": \"0rem 0.0625rem 0.0625rem rgba(31, 33, 36, 0.1)\",\n \"shadow-md\": \"0rem 0.125rem 0.25rem rgba(31, 33, 36, 0.1), 0rem 0.0625rem 0.375rem rgba(31, 33, 36, 0.05)\",\n \"shadow-lg\": \"0rem 0.25rem 0.75rem rgba(31, 33, 36, 0.2), 0rem 0.125rem 0.375rem rgba(31, 33, 36, 0.05)\",\n \"shadow-xl\": \"0rem 0.25rem 1.125rem -0.125rem rgba(31, 33, 36, 0.08), 0rem 0.75rem 1.125rem -0.125rem rgba(31, 33, 36, 0.15)\",\n \"shadow-2xl\": \"0rem 2rem 2rem rgba(31, 33, 36, 0.15), 0rem 2rem 3.5rem -0.125rem rgba(31, 33, 36, 0.16)\"\n};\nvar shape = {\n \"border-radius-05\": \"0.125rem\",\n \"border-radius-1\": \"0.25rem\",\n \"border-radius-2\": \"0.5rem\",\n \"border-radius-3\": \"0.75rem\",\n \"border-radius-4\": \"1rem\",\n \"border-radius-5\": \"1.25rem\",\n \"border-radius-6\": \"1.875rem\",\n \"border-radius-full\": \"624.9375rem\",\n \"border-radius-base\": \"0.1875rem\",\n \"border-radius-large\": \"0.375rem\",\n \"border-radius-half\": \"50%\",\n \"border-width-1\": \"0.0625rem\",\n \"border-width-2\": \"0.125rem\",\n \"border-width-3\": \"0.1875rem\",\n \"border-width-4\": \"0.25rem\",\n \"border-width-5\": \"0.3125rem\",\n \"border-base\": \"var(--p-border-width-1) solid var(--p-color-border-subdued)\",\n \"border-dark\": \"var(--p-border-width-1) solid var(--p-color-border)\",\n \"border-transparent\": \"var(--p-border-width-1) solid transparent\",\n \"border-divider\": \"var(--p-border-width-1) solid var(--p-color-border-subdued)\",\n \"border-divider-on-dark\": \"var(--p-border-width-1) solid var(--p-color-border-inverse)\"\n};\nvar spacing = {\n \"space-0\": \"0\",\n \"space-025\": \"0.0625rem\",\n \"space-05\": \"0.125rem\",\n \"space-1\": \"0.25rem\",\n \"space-2\": \"0.5rem\",\n \"space-3\": \"0.75rem\",\n \"space-4\": \"1rem\",\n \"space-5\": \"1.25rem\",\n \"space-6\": \"1.5rem\",\n \"space-8\": \"2rem\",\n \"space-10\": \"2.5rem\",\n \"space-12\": \"3rem\",\n \"space-16\": \"4rem\",\n \"space-20\": \"5rem\",\n \"space-24\": \"6rem\",\n \"space-28\": \"7rem\",\n \"space-32\": \"8rem\"\n};\nvar space = {\n \"space-0\": \"0\",\n \"space-025\": \"0.0625rem\",\n \"space-05\": \"0.125rem\",\n \"space-1\": \"0.25rem\",\n \"space-2\": \"0.5rem\",\n \"space-3\": \"0.75rem\",\n \"space-4\": \"1rem\",\n \"space-5\": \"1.25rem\",\n \"space-6\": \"1.5rem\",\n \"space-8\": \"2rem\",\n \"space-10\": \"2.5rem\",\n \"space-12\": \"3rem\",\n \"space-16\": \"4rem\",\n \"space-20\": \"5rem\",\n \"space-24\": \"6rem\",\n \"space-28\": \"7rem\",\n \"space-32\": \"8rem\"\n};\nvar zIndex = {\n \"z-index-1\": \"100\",\n \"z-index-2\": \"400\",\n \"z-index-3\": \"510\",\n \"z-index-4\": \"512\",\n \"z-index-5\": \"513\",\n \"z-index-6\": \"514\",\n \"z-index-7\": \"515\",\n \"z-index-8\": \"516\",\n \"z-index-9\": \"517\",\n \"z-index-10\": \"518\",\n \"z-index-11\": \"519\",\n \"z-index-12\": \"520\",\n \"z-1\": \"100\",\n \"z-2\": \"400\",\n \"z-3\": \"510\",\n \"z-4\": \"512\",\n \"z-5\": \"513\",\n \"z-6\": \"514\",\n \"z-7\": \"515\",\n \"z-8\": \"516\",\n \"z-9\": \"517\",\n \"z-10\": \"518\",\n \"z-11\": \"519\",\n \"z-12\": \"520\"\n};\nvar tokens = {\n \"breakpoints\": {\n \"breakpoints-xs\": \"0rem\",\n \"breakpoints-sm\": \"30.625rem\",\n \"breakpoints-md\": \"48rem\",\n \"breakpoints-lg\": \"65rem\",\n \"breakpoints-xl\": \"90rem\"\n },\n \"border\": {\n \"border-radius-05\": \"0.125rem\",\n \"border-radius-1\": \"0.25rem\",\n \"border-radius-2\": \"0.5rem\",\n \"border-radius-3\": \"0.75rem\",\n \"border-radius-4\": \"1rem\",\n \"border-radius-5\": \"1.25rem\",\n \"border-radius-6\": \"1.875rem\",\n \"border-radius-full\": \"624.9375rem\",\n \"border-width-1\": \"0.0625rem\",\n \"border-width-2\": \"0.125rem\",\n \"border-width-3\": \"0.1875rem\",\n \"border-width-4\": \"0.25rem\",\n \"border-width-5\": \"0.3125rem\"\n },\n \"color\": {\n \"color-bg-inverse\": \"rgba(31, 33, 36, 1)\",\n \"color-bg-inset-strong\": \"rgba(97, 106, 117, 1)\",\n \"color-bg-inverse-hover\": \"rgba(97, 106, 117, 1)\",\n \"color-bg-inverse-active\": \"rgba(135, 144, 155, 1)\",\n \"color-bg-strong-hover\": \"rgba(202, 206, 211, 1)\",\n \"color-bg-strong-active\": \"rgba(202, 206, 211, 1)\",\n \"color-bg-strong\": \"rgba(221, 224, 228, 1)\",\n \"color-bg-subdued-active\": \"rgba(235, 236, 239, 1)\",\n \"color-bg-disabled\": \"rgba(235, 236, 239, 1)\",\n \"color-bg-interactive-disabled\": \"rgba(235, 236, 239, 1)\",\n \"color-bg-app\": \"rgba(241, 242, 244, 1)\",\n \"color-bg-app-active\": \"rgba(221, 224, 228, 1)\",\n \"color-bg-app-hover\": \"rgba(235, 236, 239, 1)\",\n \"color-bg-app-selected\": \"rgba(235, 236, 239, 1)\",\n \"color-bg-active\": \"rgba(235, 236, 239, 1)\",\n \"color-bg-subdued-hover\": \"rgba(241, 242, 244, 1)\",\n \"color-bg-inset\": \"rgba(241, 242, 244, 1)\",\n \"color-bg-hover\": \"rgba(241, 242, 244, 1)\",\n \"color-bg-subdued\": \"rgba(249, 250, 251, 1)\",\n \"color-bg-input\": \"rgba(255, 255, 255, 1)\",\n \"color-bg\": \"rgba(255, 255, 255, 1)\",\n \"color-bg-primary-active\": \"rgba(12, 59, 47, 1)\",\n \"color-bg-primary-hover\": \"rgba(18, 84, 67, 1)\",\n \"color-bg-primary\": \"rgba(0, 122, 92, 1)\",\n \"color-bg-success-strong\": \"rgba(22, 166, 121, 1)\",\n \"color-bg-success\": \"rgba(161, 237, 208, 1)\",\n \"color-bg-primary-subdued-active\": \"rgba(192, 242, 221, 1)\",\n \"color-bg-success-subdued-active\": \"rgba(192, 242, 221, 1)\",\n \"color-bg-success-subdued\": \"rgba(224, 248, 238, 1)\",\n \"color-bg-primary-subdued-hover\": \"rgba(224, 248, 238, 1)\",\n \"color-bg-success-subdued-hover\": \"rgba(240, 253, 248, 1)\",\n \"color-bg-primary-subdued\": \"rgba(240, 253, 248, 1)\",\n \"color-bg-primary-subdued-selected\": \"rgba(240, 253, 248, 1)\",\n \"color-bg-critical-strong-active\": \"rgba(115, 24, 7, 1)\",\n \"color-bg-critical-strong-hover\": \"rgba(159, 32, 10, 1)\",\n \"color-bg-critical-strong\": \"rgba(197, 40, 12, 1)\",\n \"color-bg-critical-subdued-active\": \"rgba(251, 197, 188, 1)\",\n \"color-bg-critical\": \"rgba(251, 197, 188, 1)\",\n \"color-bg-critical-subdued\": \"rgba(253, 226, 221, 1)\",\n \"color-bg-critical-subdued-hover\": \"rgba(254, 243, 241, 1)\",\n \"color-bg-caution-strong\": \"rgba(216, 155, 13, 1)\",\n \"color-bg-caution\": \"rgba(248, 217, 144, 1)\",\n \"color-bg-caution-subdued-active\": \"rgba(250, 229, 178, 1)\",\n \"color-bg-caution-subdued\": \"rgba(252, 240, 212, 1)\",\n \"color-bg-caution-subdued-hover\": \"rgba(254, 248, 236, 1)\",\n \"color-bg-info-strong\": \"rgba(42, 172, 187, 1)\",\n \"color-bg-info-subdued-active\": \"rgba(184, 233, 239, 1)\",\n \"color-bg-info\": \"rgba(184, 233, 239, 1)\",\n \"color-bg-info-subdued\": \"rgba(222, 245, 247, 1)\",\n \"color-bg-info-subdued-hover\": \"rgba(238, 250, 251, 1)\",\n \"color-bg-interactive-active\": \"rgba(14, 53, 108, 1)\",\n \"color-bg-interactive-hover\": \"rgba(20, 73, 149, 1)\",\n \"color-bg-interactive\": \"rgba(36, 99, 188, 1)\",\n \"color-bg-interactive-subdued-active\": \"rgba(187, 212, 247, 1)\",\n \"color-bg-interactive-subdued-hover\": \"rgba(232, 240, 253, 1)\",\n \"color-bg-interactive-subdued\": \"rgba(240, 245, 253, 1)\",\n \"color-bg-interactive-selected\": \"rgba(240, 245, 253, 1)\",\n \"color-bg-warning\": \"rgba(250, 201, 168, 1)\",\n \"color-bg-magic-strong\": \"rgba(121, 69, 227, 1)\",\n \"color-bg-magic-hover\": \"rgba(226, 214, 250, 1)\",\n \"color-bg-magic-active\": \"rgba(203, 180, 248, 1)\",\n \"color-bg-magic\": \"rgba(236, 227, 253, 1)\",\n \"color-bg-magic-subdued-hover\": \"rgba(236, 227, 253, 1)\",\n \"color-bg-magic-subdued-active\": \"rgba(226, 214, 250, 1)\",\n \"color-bg-magic-subdued\": \"rgba(242, 237, 253, 1)\",\n \"color-border-input-hover\": \"rgba(97, 106, 117, 1)\",\n \"color-border-inverse\": \"rgba(97, 106, 117, 1)\",\n \"color-border-strong-hover\": \"rgba(135, 144, 155, 1)\",\n \"color-border-input\": \"rgba(171, 177, 186, 1)\",\n \"color-border-hover\": \"rgba(171, 177, 186, 1)\",\n \"color-border-strong\": \"rgba(171, 177, 186, 1)\",\n \"color-border\": \"rgba(202, 206, 211, 1)\",\n \"color-border-disabled\": \"rgba(221, 224, 228, 1)\",\n \"color-border-subdued\": \"rgba(221, 224, 228, 1)\",\n \"color-border-interactive-disabled\": \"rgba(221, 224, 228, 1)\",\n \"color-border-primary\": \"rgba(0, 122, 92, 1)\",\n \"color-border-success\": \"rgba(22, 166, 121, 1)\",\n \"color-border-success-subdued\": \"rgba(80, 220, 169, 1)\",\n \"color-border-critical-active\": \"rgba(67, 14, 4, 1)\",\n \"color-border-critical-hover\": \"rgba(115, 24, 7, 1)\",\n \"color-border-critical\": \"rgba(197, 40, 12, 1)\",\n \"color-border-critical-subdued\": \"rgba(245, 107, 82, 1)\",\n \"color-border-caution\": \"rgba(216, 155, 13, 1)\",\n \"color-border-caution-subdued\": \"rgba(245, 196, 82, 1)\",\n \"color-border-info\": \"rgba(59, 195, 211, 1)\",\n \"color-border-info-subdued\": \"rgba(109, 211, 222, 1)\",\n \"color-border-interactive-active\": \"rgba(14, 53, 108, 1)\",\n \"color-border-interactive-hover\": \"rgba(20, 73, 149, 1)\",\n \"color-border-interactive\": \"rgba(62, 125, 213, 1)\",\n \"color-border-interactive-focus\": \"rgba(62, 125, 213, 1)\",\n \"color-border-interactive-subdued\": \"rgba(187, 212, 247, 1)\",\n \"color-border-magic-strong\": \"rgba(121, 69, 227, 1)\",\n \"color-border-magic\": \"rgba(173, 139, 241, 1)\",\n \"color-icon-hover\": \"rgba(31, 33, 36, 1)\",\n \"color-icon\": \"rgba(97, 106, 117, 1)\",\n \"color-icon-active\": \"rgba(31, 33, 36, 1)\",\n \"color-icon-subdued\": \"rgba(135, 144, 155, 1)\",\n \"color-icon-disabled\": \"rgba(171, 177, 186, 1)\",\n \"color-icon-interactive-disabled\": \"rgba(171, 177, 186, 1)\",\n \"color-icon-inverse\": \"rgba(221, 224, 228, 1)\",\n \"color-icon-on-color\": \"rgba(255, 255, 255, 1)\",\n \"color-icon-primary\": \"rgba(0, 122, 92, 1)\",\n \"color-icon-success\": \"rgba(22, 166, 121, 1)\",\n \"color-icon-critical\": \"rgba(197, 40, 12, 1)\",\n \"color-icon-caution\": \"rgba(183, 126, 11, 1)\",\n \"color-icon-info\": \"rgba(42, 172, 187, 1)\",\n \"color-icon-warning\": \"rgba(242, 117, 34, 1)\",\n \"color-icon-interactive-active\": \"rgba(14, 53, 108, 1)\",\n \"color-icon-interactive-hover\": \"rgba(20, 73, 149, 1)\",\n \"color-icon-interactive\": \"rgba(36, 99, 188, 1)\",\n \"color-icon-interactive-inverse\": \"rgba(102, 153, 225, 1)\",\n \"color-icon-magic\": \"rgba(121, 69, 227, 1)\",\n \"color-text\": \"rgba(31, 33, 36, 1)\",\n \"color-text-subdued\": \"rgba(97, 106, 117, 1)\",\n \"color-text-disabled\": \"rgba(135, 144, 155, 1)\",\n \"color-text-interactive-disabled\": \"rgba(135, 144, 155, 1)\",\n \"color-text-inverse-subdued\": \"rgba(171, 177, 186, 1)\",\n \"color-text-inverse\": \"rgba(241, 242, 244, 1)\",\n \"color-text-on-color\": \"rgba(255, 255, 255, 1)\",\n \"color-text-success-strong\": \"rgba(12, 59, 47, 1)\",\n \"color-text-success\": \"rgba(0, 122, 92, 1)\",\n \"color-text-primary\": \"rgba(0, 122, 92, 1)\",\n \"color-text-primary-hover\": \"rgba(18, 84, 67, 1)\",\n \"color-text-critical-strong\": \"rgba(67, 14, 4, 1)\",\n \"color-text-critical-active\": \"rgba(115, 24, 7, 1)\",\n \"color-text-critical\": \"rgba(197, 40, 12, 1)\",\n \"color-text-caution-strong\": \"rgba(77, 46, 5, 1)\",\n \"color-text-caution\": \"rgba(135, 92, 8, 1)\",\n \"color-text-info-strong\": \"rgba(16, 65, 71, 1)\",\n \"color-text-info\": \"rgba(32, 130, 141, 1)\",\n \"color-text-warning-strong\": \"rgba(77, 36, 5, 1)\",\n \"color-text-interactive-active\": \"rgba(14, 53, 108, 1)\",\n \"color-text-interactive-hover\": \"rgba(20, 73, 149, 1)\",\n \"color-text-interactive\": \"rgba(36, 99, 188, 1)\",\n \"color-text-interactive-inverse\": \"rgba(102, 153, 225, 1)\",\n \"color-text-magic-strong\": \"rgba(49, 13, 120, 1)\",\n \"color-text-magic\": \"rgba(90, 36, 205, 1)\"\n },\n \"colors\": {\n \"background\": \"rgba(246, 246, 247, 1)\",\n \"background-hovered\": \"rgba(241, 242, 243, 1)\",\n \"background-pressed\": \"rgba(237, 238, 239, 1)\",\n \"background-selected\": \"rgba(237, 238, 239, 1)\",\n \"surface\": \"rgba(255, 255, 255, 1)\",\n \"surface-dark\": \"rgba(32, 33, 35, 1)\",\n \"surface-neutral\": \"rgba(228, 229, 231, 1)\",\n \"surface-neutral-hovered\": \"rgba(219, 221, 223, 1)\",\n \"surface-neutral-pressed\": \"rgba(201, 204, 208, 1)\",\n \"surface-neutral-disabled\": \"rgba(241, 242, 243, 1)\",\n \"surface-neutral-subdued\": \"rgba(246, 246, 247, 1)\",\n \"surface-neutral-subdued-dark\": \"rgba(68, 71, 74, 1)\",\n \"surface-subdued\": \"rgba(250, 251, 251, 1)\",\n \"surface-disabled\": \"rgba(250, 251, 251, 1)\",\n \"surface-hovered\": \"rgba(246, 246, 247, 1)\",\n \"surface-hovered-dark\": \"rgba(47, 49, 51, 1)\",\n \"surface-pressed\": \"rgba(241, 242, 243, 1)\",\n \"surface-pressed-dark\": \"rgba(62, 64, 67, 1)\",\n \"surface-depressed\": \"rgba(237, 238, 239, 1)\",\n \"surface-search-field\": \"rgba(241, 242, 243, 1)\",\n \"surface-search-field-dark\": \"rgba(47, 49, 51, 1)\",\n \"backdrop\": \"rgba(0, 0, 0, 0.5)\",\n \"overlay\": \"rgba(255, 255, 255, 0.5)\",\n \"shadow-color-picker\": \"rgba(0, 0, 0, 0.5)\",\n \"shadow-color-picker-dragger\": \"rgba(33, 43, 54, 0.32)\",\n \"hint-from-direct-light\": \"rgba(0, 0, 0, 0.15)\",\n \"border\": \"rgba(140, 145, 150, 1)\",\n \"border-on-dark\": \"rgba(80, 83, 86, 1)\",\n \"border-neutral-subdued\": \"rgba(186, 191, 195, 1)\",\n \"border-hovered\": \"rgba(153, 158, 164, 1)\",\n \"border-disabled\": \"rgba(210, 213, 216, 1)\",\n \"border-subdued\": \"rgba(201, 204, 207, 1)\",\n \"border-depressed\": \"rgba(87, 89, 89, 1)\",\n \"border-shadow\": \"rgba(174, 180, 185, 1)\",\n \"border-shadow-subdued\": \"rgba(186, 191, 196, 1)\",\n \"divider\": \"rgba(225, 227, 229, 1)\",\n \"divider-dark\": \"rgba(69, 71, 73, 1)\",\n \"icon\": \"rgba(92, 95, 98, 1)\",\n \"icon-on-dark\": \"rgba(166, 172, 178, 1)\",\n \"icon-hovered\": \"rgba(26, 28, 29, 1)\",\n \"icon-pressed\": \"rgba(68, 71, 74, 1)\",\n \"icon-disabled\": \"rgba(186, 190, 195, 1)\",\n \"icon-subdued\": \"rgba(140, 145, 150, 1)\",\n \"text\": \"rgba(32, 34, 35, 1)\",\n \"text-on-dark\": \"rgba(227, 229, 231, 1)\",\n \"text-disabled\": \"rgba(140, 145, 150, 1)\",\n \"text-subdued\": \"rgba(109, 113, 117, 1)\",\n \"text-subdued-on-dark\": \"rgba(153, 159, 164, 1)\",\n \"interactive\": \"rgba(44, 110, 203, 1)\",\n \"interactive-on-dark\": \"rgba(54, 163, 255, 1)\",\n \"interactive-disabled\": \"rgba(189, 193, 204, 1)\",\n \"interactive-hovered\": \"rgba(31, 81, 153, 1)\",\n \"interactive-pressed\": \"rgba(16, 50, 98, 1)\",\n \"interactive-pressed-on-dark\": \"rgba(136, 188, 255, 1)\",\n \"focused\": \"rgba(69, 143, 255, 1)\",\n \"surface-selected\": \"rgba(242, 247, 254, 1)\",\n \"surface-selected-hovered\": \"rgba(237, 244, 254, 1)\",\n \"surface-selected-pressed\": \"rgba(229, 239, 253, 1)\",\n \"icon-on-interactive\": \"rgba(255, 255, 255, 1)\",\n \"text-on-interactive\": \"rgba(255, 255, 255, 1)\",\n \"action-secondary\": \"rgba(255, 255, 255, 1)\",\n \"action-secondary-disabled\": \"rgba(255, 255, 255, 1)\",\n \"action-secondary-hovered\": \"rgba(246, 246, 247, 1)\",\n \"action-secondary-hovered-dark\": \"rgba(84, 87, 91, 1)\",\n \"action-secondary-pressed\": \"rgba(241, 242, 243, 1)\",\n \"action-secondary-pressed-dark\": \"rgba(96, 100, 103, 1)\",\n \"action-secondary-depressed\": \"rgba(109, 113, 117, 1)\",\n \"action-primary\": \"rgba(0, 128, 96, 1)\",\n \"action-primary-disabled\": \"rgba(241, 241, 241, 1)\",\n \"action-primary-hovered\": \"rgba(0, 110, 82, 1)\",\n \"action-primary-pressed\": \"rgba(0, 94, 70, 1)\",\n \"action-primary-depressed\": \"rgba(0, 61, 44, 1)\",\n \"icon-on-primary\": \"rgba(255, 255, 255, 1)\",\n \"text-on-primary\": \"rgba(255, 255, 255, 1)\",\n \"text-primary\": \"rgba(0, 123, 92, 1)\",\n \"text-primary-hovered\": \"rgba(0, 108, 80, 1)\",\n \"text-primary-pressed\": \"rgba(0, 92, 68, 1)\",\n \"surface-primary-selected\": \"rgba(241, 248, 245, 1)\",\n \"surface-primary-selected-hovered\": \"rgba(179, 208, 195, 1)\",\n \"surface-primary-selected-pressed\": \"rgba(162, 188, 176, 1)\",\n \"border-critical\": \"rgba(253, 87, 73, 1)\",\n \"border-critical-subdued\": \"rgba(224, 179, 178, 1)\",\n \"border-critical-disabled\": \"rgba(255, 167, 163, 1)\",\n \"icon-critical\": \"rgba(215, 44, 13, 1)\",\n \"surface-critical\": \"rgba(254, 211, 209, 1)\",\n \"surface-critical-subdued\": \"rgba(255, 244, 244, 1)\",\n \"surface-critical-subdued-hovered\": \"rgba(255, 240, 240, 1)\",\n \"surface-critical-subdued-pressed\": \"rgba(255, 233, 232, 1)\",\n \"surface-critical-subdued-depressed\": \"rgba(254, 188, 185, 1)\",\n \"text-critical\": \"rgba(215, 44, 13, 1)\",\n \"action-critical\": \"rgba(216, 44, 13, 1)\",\n \"action-critical-disabled\": \"rgba(241, 241, 241, 1)\",\n \"action-critical-hovered\": \"rgba(188, 34, 0, 1)\",\n \"action-critical-pressed\": \"rgba(162, 27, 0, 1)\",\n \"action-critical-depressed\": \"rgba(108, 15, 0, 1)\",\n \"icon-on-critical\": \"rgba(255, 255, 255, 1)\",\n \"text-on-critical\": \"rgba(255, 255, 255, 1)\",\n \"interactive-critical\": \"rgba(216, 44, 13, 1)\",\n \"interactive-critical-disabled\": \"rgba(253, 147, 141, 1)\",\n \"interactive-critical-hovered\": \"rgba(205, 41, 12, 1)\",\n \"interactive-critical-pressed\": \"rgba(103, 15, 3, 1)\",\n \"border-warning\": \"rgba(185, 137, 0, 1)\",\n \"border-warning-subdued\": \"rgba(225, 184, 120, 1)\",\n \"icon-warning\": \"rgba(185, 137, 0, 1)\",\n \"surface-warning\": \"rgba(255, 215, 157, 1)\",\n \"surface-warning-subdued\": \"rgba(255, 245, 234, 1)\",\n \"surface-warning-subdued-hovered\": \"rgba(255, 242, 226, 1)\",\n \"surface-warning-subdued-pressed\": \"rgba(255, 235, 211, 1)\",\n \"text-warning\": \"rgba(145, 106, 0, 1)\",\n \"border-highlight\": \"rgba(68, 157, 167, 1)\",\n \"border-highlight-subdued\": \"rgba(152, 198, 205, 1)\",\n \"icon-highlight\": \"rgba(0, 160, 172, 1)\",\n \"surface-highlight\": \"rgba(164, 232, 242, 1)\",\n \"surface-highlight-subdued\": \"rgba(235, 249, 252, 1)\",\n \"surface-highlight-subdued-hovered\": \"rgba(228, 247, 250, 1)\",\n \"surface-highlight-subdued-pressed\": \"rgba(213, 243, 248, 1)\",\n \"text-highlight\": \"rgba(52, 124, 132, 1)\",\n \"border-success\": \"rgba(0, 164, 124, 1)\",\n \"border-success-subdued\": \"rgba(149, 201, 180, 1)\",\n \"icon-success\": \"rgba(0, 127, 95, 1)\",\n \"surface-success\": \"rgba(174, 233, 209, 1)\",\n \"surface-success-subdued\": \"rgba(241, 248, 245, 1)\",\n \"surface-success-subdued-hovered\": \"rgba(236, 246, 241, 1)\",\n \"surface-success-subdued-pressed\": \"rgba(226, 241, 234, 1)\",\n \"text-success\": \"rgba(0, 128, 96, 1)\",\n \"icon-attention\": \"rgba(138, 97, 22, 1)\",\n \"surface-attention\": \"rgba(255, 234, 138, 1)\",\n \"decorative-one-icon\": \"rgba(126, 87, 0, 1)\",\n \"decorative-one-surface\": \"rgba(255, 201, 107, 1)\",\n \"decorative-one-text\": \"rgba(61, 40, 0, 1)\",\n \"decorative-two-icon\": \"rgba(175, 41, 78, 1)\",\n \"decorative-two-surface\": \"rgba(255, 196, 176, 1)\",\n \"decorative-two-text\": \"rgba(73, 11, 28, 1)\",\n \"decorative-three-icon\": \"rgba(0, 109, 65, 1)\",\n \"decorative-three-surface\": \"rgba(146, 230, 181, 1)\",\n \"decorative-three-text\": \"rgba(0, 47, 25, 1)\",\n \"decorative-four-icon\": \"rgba(0, 106, 104, 1)\",\n \"decorative-four-surface\": \"rgba(145, 224, 214, 1)\",\n \"decorative-four-text\": \"rgba(0, 45, 45, 1)\",\n \"decorative-five-icon\": \"rgba(174, 43, 76, 1)\",\n \"decorative-five-surface\": \"rgba(253, 201, 208, 1)\",\n \"decorative-five-text\": \"rgba(79, 14, 31, 1)\"\n },\n \"depth\": {\n \"shadow-transparent\": \"0 0 0 0 transparent\",\n \"shadow-faint\": \"0 1px 0 0 rgba(22, 29, 37, 0.05)\",\n \"shadow-base\": \"0 0 0 1px rgba(63, 63, 68, 0.05), 0 1px 3px 0 rgba(63, 63, 68, 0.15)\",\n \"shadow-deep\": \"0 0 0 1px rgba(6, 44, 82, 0.1), 0 2px 16px rgba(33, 43, 54, 0.08)\",\n \"shadow-button\": \"0 1px 0 rgba(0, 0, 0, 0.05)\",\n \"shadow-top-bar\": \"0 2px 2px -1px rgba(0, 0, 0, 0.15)\",\n \"shadow-card\": \"0 0 5px rgba(23, 24, 24, 0.05), 0 1px 2px rgba(0, 0, 0, 0.15)\",\n \"shadow-popover\": \"0 3px 6px -3px rgba(23, 24, 24, 0.08), 0 8px 20px -4px rgba(23, 24, 24, 0.12)\",\n \"shadow-layer\": \"0 31px 41px 0 rgba(32, 42, 53, 0.2), 0 2px 16px 0 rgba(32, 42, 54, 0.08)\",\n \"shadow-modal\": \"0 26px 80px rgba(0, 0, 0, 0.2), 0 0px 1px rgba(0, 0, 0, 0.2)\",\n \"shadows-inset-button\": \"inset 0 -1px 0 rgba(0, 0, 0, 0.2)\",\n \"shadows-inset-button-pressed\": \"inset 0 1px 0 rgba(0, 0, 0, 0.15)\"\n },\n \"font\": {\n \"font-family-sans\": \"-apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif\",\n \"font-family-mono\": \"ui-monospace, SFMono-Regular, 'SF Mono', Consolas, 'Liberation Mono', Menlo, monospace\",\n \"font-size-75\": \"0.75rem\",\n \"font-size-100\": \"0.875rem\",\n \"font-size-200\": \"1rem\",\n \"font-size-300\": \"1.25rem\",\n \"font-size-400\": \"1.5rem\",\n \"font-size-500\": \"1.75rem\",\n \"font-size-600\": \"2rem\",\n \"font-size-700\": \"2.5rem\",\n \"font-weight-regular\": \"400\",\n \"font-weight-medium\": \"500\",\n \"font-weight-semibold\": \"600\",\n \"font-weight-bold\": \"700\",\n \"font-line-height-1\": \"1rem\",\n \"font-line-height-2\": \"1.25rem\",\n \"font-line-height-3\": \"1.5rem\",\n \"font-line-height-4\": \"1.75rem\",\n \"font-line-height-5\": \"2rem\",\n \"font-line-height-6\": \"2.5rem\",\n \"font-line-height-7\": \"3rem\"\n },\n \"legacy\": {\n \"override-loading-z-index\": \"514\",\n \"choice-size\": \"1.25rem\",\n \"icon-size-small\": \"0.5rem\",\n \"icon-size-medium\": \"1.25rem\",\n \"choice-margin\": \"0.0625rem\",\n \"control-border-width\": \"0.125rem\",\n \"banner-border-default\": \"inset 0 0.0625rem 0 0 var(--p-color-border-strong), inset 0 0 0 0.0625rem var(--p-color-border-strong)\",\n \"banner-border-success\": \"inset 0 0.0625rem 0 0 var(--p-color-border-success-subdued), inset 0 0 0 0.0625rem var(--p-color-border-success-subdued)\",\n \"banner-border-highlight\": \"inset 0 0.0625rem 0 0 var(--p-color-border-info-subdued), inset 0 0 0 0.0625rem var(--p-color-border-info-subdued)\",\n \"banner-border-warning\": \"inset 0 0.0625rem 0 0 var(--p-color-border-caution-subdued), inset 0 0 0 0.0625rem var(--p-color-border-caution-subdued)\",\n \"banner-border-critical\": \"inset 0 0.0625rem 0 0 var(--p-color-border-critical-subdued), inset 0 0 0 0.0625rem var(--p-color-border-critical-subdued)\",\n \"thin-border-subdued\": \"0.0625rem solid var(--p-color-border-subdued)\",\n \"text-field-spinner-offset\": \"0.125rem\",\n \"text-field-focus-ring-offset\": \"-0.25rem\",\n \"button-group-item-spacing\": \"-0.0625rem\",\n \"range-slider-thumb-size-base\": \"1rem\",\n \"range-slider-thumb-size-active\": \"1.5rem\",\n \"frame-offset\": \"0rem\"\n },\n \"motion\": {\n \"duration-0\": \"0ms\",\n \"duration-50\": \"50ms\",\n \"duration-100\": \"100ms\",\n \"duration-150\": \"150ms\",\n \"duration-200\": \"200ms\",\n \"duration-250\": \"250ms\",\n \"duration-300\": \"300ms\",\n \"duration-350\": \"350ms\",\n \"duration-400\": \"400ms\",\n \"duration-450\": \"450ms\",\n \"duration-500\": \"500ms\",\n \"duration-5000\": \"5000ms\",\n \"ease\": \"cubic-bezier(0.25, 0.1, 0.25, 1)\",\n \"ease-in\": \"cubic-bezier(0.42, 0, 1, 1)\",\n \"ease-out\": \"cubic-bezier(0, 0, 0.58, 1)\",\n \"ease-in-out\": \"cubic-bezier(0.42, 0, 0.58, 1)\",\n \"linear\": \"cubic-bezier(0, 0, 1, 1)\",\n \"keyframes-bounce\": \"{ from, 65%, 85% { transform: scale(1) } 75% { transform: scale(0.85) } 82.5% { transform: scale(1.05) } }\",\n \"keyframes-fade-in\": \"{ to { opacity: 1 } }\",\n \"keyframes-pulse\": \"{ from, 75% { transform: scale(0.85); opacity: 1; } to { transform: scale(2.5); opacity: 0; } }\",\n \"keyframes-spin\": \"{ to { transform: rotate(1turn) } }\",\n \"keyframes-appear-above\": \"{ from { transform: translateY(var(--p-space-1)); opacity: 0; } to { transform: none; opacity: 1; } }\",\n \"keyframes-appear-below\": \"{ from { transform: translateY(calc(var(--p-space-1) * -1)); opacity: 0; } to { transform: none; opacity: 1; } }\",\n \"motion-duration-0\": \"0ms\",\n \"motion-duration-50\": \"50ms\",\n \"motion-duration-100\": \"100ms\",\n \"motion-duration-150\": \"150ms\",\n \"motion-duration-200\": \"200ms\",\n \"motion-duration-250\": \"250ms\",\n \"motion-duration-300\": \"300ms\",\n \"motion-duration-350\": \"350ms\",\n \"motion-duration-400\": \"400ms\",\n \"motion-duration-450\": \"450ms\",\n \"motion-duration-500\": \"500ms\",\n \"motion-duration-5000\": \"5000ms\",\n \"motion-ease\": \"cubic-bezier(0.25, 0.1, 0.25, 1)\",\n \"motion-ease-in\": \"cubic-bezier(0.42, 0, 1, 1)\",\n \"motion-ease-out\": \"cubic-bezier(0, 0, 0.58, 1)\",\n \"motion-ease-in-out\": \"cubic-bezier(0.42, 0, 0.58, 1)\",\n \"motion-linear\": \"cubic-bezier(0, 0, 1, 1)\",\n \"motion-keyframes-bounce\": \"{ from, 65%, 85% { transform: scale(1) } 75% { transform: scale(0.85) } 82.5% { transform: scale(1.05) } }\",\n \"motion-keyframes-fade-in\": \"{ to { opacity: 1 } }\",\n \"motion-keyframes-pulse\": \"{ from, 75% { transform: scale(0.85); opacity: 1; } to { transform: scale(2.5); opacity: 0; } }\",\n \"motion-keyframes-spin\": \"{ to { transform: rotate(1turn) } }\",\n \"motion-keyframes-appear-above\": \"{ from { transform: translateY(var(--p-space-1)); opacity: 0; } to { transform: none; opacity: 1; } }\",\n \"motion-keyframes-appear-below\": \"{ from { transform: translateY(calc(var(--p-space-1) * -1)); opacity: 0; } to { transform: none; opacity: 1; } }\"\n },\n \"shadow\": {\n \"shadow-inset-lg\": \"inset 0rem 0rem 0.4375rem 0.125rem rgba(31, 33, 36, 0.18)\",\n \"shadow-inset-md\": \"inset 0rem 0.125rem 0.25rem rgba(31, 33, 36, 0.32)\",\n \"shadow-inset-sm\": \"inset 0rem 0rem 0.1875rem rgba(31, 33, 36, 0.56)\",\n \"shadow-none\": \"none\",\n \"shadow-xs\": \"0rem 0rem 0.125rem rgba(31, 33, 36, 0.24)\",\n \"shadow-sm\": \"0rem 0.0625rem 0.0625rem rgba(31, 33, 36, 0.1)\",\n \"shadow-md\": \"0rem 0.125rem 0.25rem rgba(31, 33, 36, 0.1), 0rem 0.0625rem 0.375rem rgba(31, 33, 36, 0.05)\",\n \"shadow-lg\": \"0rem 0.25rem 0.75rem rgba(31, 33, 36, 0.2), 0rem 0.125rem 0.375rem rgba(31, 33, 36, 0.05)\",\n \"shadow-xl\": \"0rem 0.25rem 1.125rem -0.125rem rgba(31, 33, 36, 0.08), 0rem 0.75rem 1.125rem -0.125rem rgba(31, 33, 36, 0.15)\",\n \"shadow-2xl\": \"0rem 2rem 2rem rgba(31, 33, 36, 0.15), 0rem 2rem 3.5rem -0.125rem rgba(31, 33, 36, 0.16)\"\n },\n \"shape\": {\n \"border-radius-05\": \"0.125rem\",\n \"border-radius-1\": \"0.25rem\",\n \"border-radius-2\": \"0.5rem\",\n \"border-radius-3\": \"0.75rem\",\n \"border-radius-4\": \"1rem\",\n \"border-radius-5\": \"1.25rem\",\n \"border-radius-6\": \"1.875rem\",\n \"border-radius-full\": \"624.9375rem\",\n \"border-radius-base\": \"0.1875rem\",\n \"border-radius-large\": \"0.375rem\",\n \"border-radius-half\": \"50%\",\n \"border-width-1\": \"0.0625rem\",\n \"border-width-2\": \"0.125rem\",\n \"border-width-3\": \"0.1875rem\",\n \"border-width-4\": \"0.25rem\",\n \"border-width-5\": \"0.3125rem\",\n \"border-base\": \"var(--p-border-width-1) solid var(--p-color-border-subdued)\",\n \"border-dark\": \"var(--p-border-width-1) solid var(--p-color-border)\",\n \"border-transparent\": \"var(--p-border-width-1) solid transparent\",\n \"border-divider\": \"var(--p-border-width-1) solid var(--p-color-border-subdued)\",\n \"border-divider-on-dark\": \"var(--p-border-width-1) solid var(--p-color-border-inverse)\"\n },\n \"spacing\": {\n \"space-0\": \"0\",\n \"space-025\": \"0.0625rem\",\n \"space-05\": \"0.125rem\",\n \"space-1\": \"0.25rem\",\n \"space-2\": \"0.5rem\",\n \"space-3\": \"0.75rem\",\n \"space-4\": \"1rem\",\n \"space-5\": \"1.25rem\",\n \"space-6\": \"1.5rem\",\n \"space-8\": \"2rem\",\n \"space-10\": \"2.5rem\",\n \"space-12\": \"3rem\",\n \"space-16\": \"4rem\",\n \"space-20\": \"5rem\",\n \"space-24\": \"6rem\",\n \"space-28\": \"7rem\",\n \"space-32\": \"8rem\"\n },\n \"space\": {\n \"space-0\": \"0\",\n \"space-025\": \"0.0625rem\",\n \"space-05\": \"0.125rem\",\n \"space-1\": \"0.25rem\",\n \"space-2\": \"0.5rem\",\n \"space-3\": \"0.75rem\",\n \"space-4\": \"1rem\",\n \"space-5\": \"1.25rem\",\n \"space-6\": \"1.5rem\",\n \"space-8\": \"2rem\",\n \"space-10\": \"2.5rem\",\n \"space-12\": \"3rem\",\n \"space-16\": \"4rem\",\n \"space-20\": \"5rem\",\n \"space-24\": \"6rem\",\n \"space-28\": \"7rem\",\n \"space-32\": \"8rem\"\n },\n \"zIndex\": {\n \"z-index-1\": \"100\",\n \"z-index-2\": \"400\",\n \"z-index-3\": \"510\",\n \"z-index-4\": \"512\",\n \"z-index-5\": \"513\",\n \"z-index-6\": \"514\",\n \"z-index-7\": \"515\",\n \"z-index-8\": \"516\",\n \"z-index-9\": \"517\",\n \"z-index-10\": \"518\",\n \"z-index-11\": \"519\",\n \"z-index-12\": \"520\",\n \"z-1\": \"100\",\n \"z-2\": \"400\",\n \"z-3\": \"510\",\n \"z-4\": \"512\",\n \"z-5\": \"513\",\n \"z-6\": \"514\",\n \"z-7\": \"515\",\n \"z-8\": \"516\",\n \"z-9\": \"517\",\n \"z-10\": \"518\",\n \"z-11\": \"519\",\n \"z-12\": \"520\"\n }\n};\n\nexport { border, breakpoints, color, colors, depth, font, legacy, motion, shadow, shape, space, spacing, tokens, zIndex };\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 @shopify/strict-component-boundaries */\n\n/* eslint-enable @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 \"measuring\": \"Polaris-Popover--measuring\",\n \"PopoverOverlay-exiting\": \"Polaris-Popover__PopoverOverlay--exiting\",\n \"fullWidth\": \"Polaris-Popover--fullWidth\",\n \"Content\": \"Polaris-Popover__Content\",\n \"positionedAbove\": \"Polaris-Popover--positionedAbove\",\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 \"Pane-captureOverscroll\": \"Polaris-Popover__Pane--captureOverscroll\",\n \"Section\": \"Polaris-Popover__Section\",\n \"FocusTracker\": \"Polaris-Popover__FocusTracker\",\n \"PopoverOverlay-hideOnPrint\": \"Polaris-Popover__PopoverOverlay--hideOnPrint\"\n};\n\nexport { styles as default };\n","const isServer = typeof window === 'undefined' || typeof document === 'undefined';\n\nexport { isServer };\n","import { useEffect, useLayoutEffect } from 'react';\nimport { isServer } from './target.js';\n\n// eslint-disable-next-line no-restricted-imports\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 options,\n useCapture\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, useCapture || options);\n return () => {\n document.removeEventListener(keyEvent, handleKeyEvent, useCapture || options);\n };\n }, [keyEvent, handleKeyEvent, useCapture, options]);\n return null;\n}\n\nexport { KeypressListener };\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 { 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","function debounce(func, waitArg, options) {\n let lastArgs;\n let lastThis;\n let maxWait;\n let result;\n let timerId;\n let lastCallTime;\n let lastInvokeTime = 0;\n let leading = false;\n let maxing = false;\n let trailing = true; // Bypass `requestAnimationFrame` by explicitly setting `wait=0`.\n\n const useRAF = !waitArg && waitArg !== 0;\n\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function');\n }\n\n const wait = waitArg || 0;\n\n if (typeof options === 'object') {\n leading = Boolean(options.leading);\n maxing = 'maxWait' in options;\n maxWait = maxing ? Math.max(Number(options.maxWait) || 0, wait) : undefined;\n trailing = 'trailing' in options ? Boolean(options.trailing) : trailing;\n }\n\n function invokeFunc(time) {\n const args = lastArgs;\n const thisArg = lastThis;\n lastArgs = undefined;\n lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function startTimer(pendingFunc, wait) {\n if (useRAF) {\n cancelAnimationFrame(timerId);\n return requestAnimationFrame(pendingFunc);\n }\n\n return setTimeout(pendingFunc, wait);\n }\n\n function cancelTimer(id) {\n if (useRAF) {\n return cancelAnimationFrame(id);\n }\n\n clearTimeout(id);\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time; // Start the timer for the trailing edge.\n\n timerId = startTimer(timerExpired, wait); // Invoke the leading edge.\n\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n const timeSinceLastCall = time - lastCallTime;\n const timeSinceLastInvoke = time - lastInvokeTime;\n const timeWaiting = wait - timeSinceLastCall;\n return maxing && maxWait ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n\n function shouldInvoke(time) {\n const timeSinceLastCall = time - lastCallTime;\n const timeSinceLastInvoke = time - lastInvokeTime; // 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\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && maxWait && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n const time = Date.now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timerId = startTimer(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n } // eslint-disable-next-line no-multi-assign\n\n\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n cancelTimer(timerId);\n }\n\n lastInvokeTime = 0; // eslint-disable-next-line no-multi-assign\n\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(Date.now());\n }\n\n function pending() {\n return timerId !== undefined;\n }\n\n function debounced(...args) {\n const time = Date.now();\n const isInvoking = shouldInvoke(time);\n lastArgs = args; // eslint-disable-next-line consistent-this, @typescript-eslint/no-this-alias\n\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = startTimer(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n\n if (timerId === undefined) {\n timerId = startTimer(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n debounced.pending = pending;\n return debounced;\n}\n\nexport { debounce };\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<T> - Returns a ref object with the\n * results from invoking initial value\n * @example\n * function ComponentExample() {\n * const title = useLazyRef(() => someExpensiveComputation());\n * return <h1>{title.current}</h1>;\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","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<T> - 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","import { useRef } from 'react';\nimport { useIsAfterInitialMount } from './use-is-after-initial-mount.js';\n\n/**\n * Similarly to the life-cycle method componentDidMount, useComponentDidMount\n * will be invoked after the component has mounted, and only the initial mount.\n * @param callback Defines a callback to invoke once the component has\n * initially mounted.\n * @example\n * function Playground({active}) {\n * useComponentDidMount(() => {\n * if (active) {\n * console.warning(`Component has mounted.`);\n * }\n * });\n *\n * return null;\n * }\n */\n\nfunction useComponentDidMount(callback) {\n const isAfterInitialMount = useIsAfterInitialMount();\n const hasInvokedLifeCycle = useRef(false);\n\n if (isAfterInitialMount && !hasInvokedLifeCycle.current) {\n hasInvokedLifeCycle.current = true;\n return callback();\n }\n}\n\nexport { useComponentDidMount };\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 \"hasTopShadow\": \"Polaris-Scrollable--hasTopShadow\",\n \"hasBottomShadow\": \"Polaris-Scrollable--hasBottomShadow\"\n};\n\nexport { styles as default };\n","import { useState } from 'react';\nimport { getMediaConditions, breakpoints } from '@shopify/polaris-tokens';\nimport { isServer } from './target.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\n\nconst Breakpoints = {\n // TODO: Update to smDown\n navigationBarCollapsed: '767.95px',\n // TODO: Update to lgDown\n stackedContent: '1039.95px'\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/**\n * Directional alias for each Polaris `breakpoints` token.\n *\n * @example 'smUp' | 'smDown' | 'smOnly' | 'mdUp' | etc.\n */\n\nconst breakpointsQueryEntries = getBreakpointsQueryEntries(breakpoints);\n\nfunction getMatches(defaults) {\n if (!isServer) {\n return Object.fromEntries(breakpointsQueryEntries.map(([directionAlias, query]) => [directionAlias, window.matchMedia(query).matches]));\n }\n\n if (typeof defaults === 'object' && defaults !== null) {\n return Object.fromEntries(breakpointsQueryEntries.map(([directionAlias]) => {\n var _defaults$directionAl;\n\n return [directionAlias, (_defaults$directionAl = defaults[directionAlias]) !== null && _defaults$directionAl !== void 0 ? _defaults$directionAl : false];\n }));\n }\n\n return Object.fromEntries(breakpointsQueryEntries.map(([directionAlias]) => [directionAlias, defaults !== null && defaults !== void 0 ? defaults : false]));\n}\n\n/**\n * Retrieves media query matches for each directional Polaris `breakpoints` alias.\n *\n * @example\n * const {smUp} = useBreakpoints();\n * return smUp && 'Hello world';\n *\n * @example\n * const {mdUp} = useBreakpoints({defaults: {mdUp: true}});\n * mdUp //=> `true` during SSR\n *\n * @example\n * const breakpoints = useBreakpoints({defaults: true});\n * breakpoints //=> All values will be `true` during SSR\n */\nfunction useBreakpoints(options) {\n const [breakpoints, setBreakpoints] = useState(getMatches(options === null || options === void 0 ? void 0 : options.defaults));\n useIsomorphicLayoutEffect(() => {\n const mediaQueryLists = breakpointsQueryEntries.map(([_, query]) => window.matchMedia(query));\n\n const handler = () => setBreakpoints(getMatches());\n\n mediaQueryLists.forEach(mql => {\n if (mql.addListener) {\n mql.addListener(handler);\n } else {\n mql.addEventListener('change', handler);\n }\n });\n return () => {\n mediaQueryLists.forEach(mql => {\n if (mql.removeListener) {\n mql.removeListener(handler);\n } else {\n mql.removeEventListener('change', handler);\n }\n });\n };\n }, []);\n return breakpoints;\n}\n/**\n * Converts `breakpoints` tokens into directional media query entries.\n *\n * @example\n * const breakpointsQueryEntries = getBreakpointsQueryEntries(breakpoints);\n * breakpointsQueryEntries === [\n * ['xsUp', '(min-width: ...)'],\n * ['xsDown', '(max-width: ...)'],\n * ['xsOnly', '(min-width: ...) and (max-width: ...)'],\n * ['smUp', '(min-width: ...) and (max-width: ...)'],\n * ['mdUp', '(min-width: ...) and (max-width: ...)'],\n * // etc.\n * ]\n */\n\nfunction getBreakpointsQueryEntries(breakpoints) {\n const mediaConditionEntries = Object.entries(getMediaConditions(breakpoints));\n return mediaConditionEntries.map(([breakpointsToken, mediaConditions]) => Object.entries(mediaConditions).map(([direction, mediaCondition]) => {\n const breakpointsAlias = breakpointsToken.split('-')[1]; // e.g. smUp, smDown, smOnly, etc.\n\n const directionAlias = `${breakpointsAlias}${capitalize(direction)}`;\n return [directionAlias, mediaCondition];\n })).flat();\n}\n\nfunction capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport { getBreakpointsQueryEntries, navigationBarCollapsed, stackedContent, useBreakpoints };\n","import { space } from '@shopify/polaris-tokens';\nimport { debounce } from '../debounce.js';\nimport { scrollable, dataPolarisTopBar } from '../../components/shared.js';\nimport { stackedContent } from '../breakpoints.js';\nimport { getRectForNode } from '../geometry.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(space['space-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","import { createContext } from 'react';\n\nconst StickyManagerContext = /*#__PURE__*/createContext(undefined);\n\nexport { StickyManagerContext };\n","import React, { forwardRef, useState, useRef, useCallback, useImperativeHandle, useEffect } from 'react';\nimport { debounce } from '../../utilities/debounce.js';\nimport { classNames } from '../../utilities/css.js';\nimport { scrollable } from '../shared.js';\nimport { useLazyRef } from '../../utilities/use-lazy-ref.js';\nimport { useComponentDidMount } from '../../utilities/use-component-did-mount.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_HINT_DISTANCE = 100;\nconst LOW_RES_BUFFER = 2;\nconst ScrollableComponent = /*#__PURE__*/forwardRef(({\n children,\n className,\n horizontal = true,\n vertical = true,\n shadow,\n hint,\n focusable,\n onScrolledToBottom,\n ...rest\n}, forwardedRef) => {\n const [topShadow, setTopShadow] = useState(false);\n const [bottomShadow, setBottomShadow] = useState(false);\n const stickyManager = useLazyRef(() => new StickyManager());\n const scrollArea = useRef(null);\n const scrollTo = useCallback((scrollY, options = {}) => {\n var _scrollArea$current;\n\n const optionsBehavior = options.behavior || 'smooth';\n const behavior = prefersReducedMotion() ? 'auto' : optionsBehavior; // @ts-expect-error TS removed \"instant\" option but browsers support it.\n\n (_scrollArea$current = scrollArea.current) === null || _scrollArea$current === void 0 ? void 0 : _scrollArea$current.scrollTo({\n top: scrollY,\n behavior\n });\n }, []);\n const defaultRef = useRef();\n useImperativeHandle(forwardedRef || defaultRef, () => ({\n scrollTo\n }));\n const handleScroll = useCallback(() => {\n const currentScrollArea = scrollArea.current;\n\n if (!currentScrollArea) {\n return;\n }\n\n requestAnimationFrame(() => {\n const {\n scrollTop,\n clientHeight,\n scrollHeight\n } = currentScrollArea;\n const canScroll = Boolean(scrollHeight > clientHeight);\n const isBelowTopOfScroll = Boolean(scrollTop > 0);\n const isAtBottomOfScroll = Boolean(scrollTop + clientHeight >= scrollHeight - LOW_RES_BUFFER);\n setTopShadow(isBelowTopOfScroll);\n setBottomShadow(!isAtBottomOfScroll);\n\n if (canScroll && isAtBottomOfScroll && onScrolledToBottom) {\n onScrolledToBottom();\n }\n });\n }, [onScrolledToBottom]);\n useComponentDidMount(() => {\n handleScroll();\n\n if (hint) {\n requestAnimationFrame(() => performScrollHint(scrollArea.current));\n }\n });\n useEffect(() => {\n var _stickyManager$curren;\n\n const currentScrollArea = scrollArea.current;\n\n if (!currentScrollArea) {\n return;\n }\n\n const handleResize = debounce(handleScroll, 50, {\n trailing: true\n });\n (_stickyManager$curren = stickyManager.current) === null || _stickyManager$curren === void 0 ? void 0 : _stickyManager$curren.setContainer(currentScrollArea);\n currentScrollArea.addEventListener('scroll', handleScroll);\n globalThis.addEventListener('resize', handleResize);\n return () => {\n currentScrollArea.removeEventListener('scroll', handleScroll);\n globalThis.removeEventListener('resize', handleResize);\n };\n }, [stickyManager, handleScroll]);\n const finalClassName = classNames(className, styles.Scrollable, vertical && styles.vertical, horizontal && styles.horizontal, shadow && topShadow && styles.hasTopShadow, shadow && bottomShadow && styles.hasBottomShadow);\n return /*#__PURE__*/React.createElement(ScrollableContext.Provider, {\n value: scrollTo\n }, /*#__PURE__*/React.createElement(StickyManagerContext.Provider, {\n value: stickyManager.current\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: finalClassName\n }, scrollable.props, rest, {\n ref: scrollArea // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n ,\n tabIndex: focusable ? 0 : undefined\n }), children)));\n});\nScrollableComponent.displayName = 'Scrollable';\n\nfunction prefersReducedMotion() {\n try {\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n } catch (err) {\n return false;\n }\n}\n\nfunction performScrollHint(elem) {\n if (!elem || prefersReducedMotion()) {\n return;\n }\n\n const scrollableDistance = elem.scrollHeight - elem.clientHeight;\n const distanceToPeek = Math.min(MAX_SCROLL_HINT_DISTANCE, scrollableDistance) - LOW_RES_BUFFER;\n\n const goBackToTop = () => {\n requestAnimationFrame(() => {\n if (elem.scrollTop >= distanceToPeek) {\n elem.removeEventListener('scroll', goBackToTop);\n elem.scrollTo({\n top: 0,\n behavior: 'smooth'\n });\n }\n });\n };\n\n elem.addEventListener('scroll', goBackToTop);\n elem.scrollTo({\n top: MAX_SCROLL_HINT_DISTANCE,\n behavior: 'smooth'\n });\n}\n\nconst forNode = node => {\n const closestElement = node.closest(scrollable.selector);\n return closestElement instanceof HTMLElement ? closestElement : document;\n};\n\n// @ts-expect-error - expected functions/sub-components are assigned after declaration\nconst Scrollable = ScrollableComponent;\nScrollable.ScrollTo = ScrollTo;\nScrollable.forNode = forNode;\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 { PureComponent } from 'react';\n\n/** @deprecated Use the useEventListener hook instead. */\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, { 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 attributeFilter: ['style']\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 chevronOffset: 0\n };\n this.overlay = null;\n this.scrollableContainers = [];\n this.observer = void 0;\n\n this.overlayDetails = () => {\n const {\n measuring,\n left,\n right,\n positioning,\n height,\n activatorRect,\n chevronOffset\n } = this.state;\n return {\n measuring,\n left,\n right,\n desiredHeight: height,\n positioning,\n activatorRect,\n chevronOffset\n };\n };\n\n this.setOverlay = node => {\n this.overlay = node;\n };\n\n this.setScrollableContainers = () => {\n const containers = [];\n let scrollableContainer = Scrollable.forNode(this.props.activator);\n\n if (scrollableContainer) {\n containers.push(scrollableContainer);\n\n while ((_scrollableContainer = scrollableContainer) !== null && _scrollableContainer !== void 0 && _scrollableContainer.parentElement) {\n var _scrollableContainer;\n\n scrollableContainer = Scrollable.forNode(scrollableContainer.parentElement);\n containers.push(scrollableContainer);\n }\n }\n\n this.scrollableContainers = containers;\n };\n\n this.registerScrollHandlers = () => {\n this.scrollableContainers.forEach(node => {\n node.addEventListener('scroll', this.handleMeasurement);\n });\n };\n\n this.unregisterScrollHandlers = () => {\n this.scrollableContainers.forEach(node => {\n node.removeEventListener('scroll', this.handleMeasurement);\n });\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.firstScrollableContainer == 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.firstScrollableContainer) ? document.body : this.firstScrollableContainer;\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 const chevronOffset = activatorRect.center.x - horizontalPosition;\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 chevronOffset\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.setScrollableContainers();\n\n if (this.scrollableContainers.length && !this.props.fixed) {\n this.registerScrollHandlers();\n }\n\n this.handleMeasurement();\n }\n\n componentWillUnmount() {\n this.observer.disconnect();\n\n if (this.scrollableContainers.length && !this.props.fixed) {\n this.unregisterScrollHandlers();\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 get firstScrollableContainer() {\n var _this$scrollableConta;\n\n return (_this$scrollableConta = this.scrollableContainers[0]) !== null && _this$scrollableConta !== void 0 ? _this$scrollableConta : null;\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","var styles = {\n \"listReset\": \"Polaris-Box--listReset\",\n \"Box\": \"Polaris-Box\",\n \"visuallyHidden\": \"Polaris-Box--visuallyHidden\",\n \"printHidden\": \"Polaris-Box--printHidden\"\n};\n\nexport { styles as default };\n","import React, { forwardRef } from 'react';\nimport { getResponsiveProps, classNames, sanitizeCustomProperties } from '../../utilities/css.js';\nimport styles from './Box.scss.js';\n\nconst Box = /*#__PURE__*/forwardRef(({\n as = 'div',\n background,\n borderColor,\n borderStyle,\n borderWidth,\n borderBlockStartWidth,\n borderBlockEndWidth,\n borderInlineStartWidth,\n borderInlineEndWidth,\n borderRadius,\n borderRadiusEndStart,\n borderRadiusEndEnd,\n borderRadiusStartStart,\n borderRadiusStartEnd,\n children,\n color,\n id,\n minHeight,\n minWidth,\n maxWidth,\n overflowX,\n overflowY,\n outlineColor,\n outlineStyle,\n outlineWidth,\n padding,\n paddingBlockStart,\n paddingBlockEnd,\n paddingInlineStart,\n paddingInlineEnd,\n role,\n shadow,\n tabIndex,\n width,\n printHidden,\n visuallyHidden,\n position,\n insetBlockStart,\n insetBlockEnd,\n insetInlineStart,\n insetInlineEnd,\n zIndex,\n opacity,\n ...restProps\n}, ref) => {\n // eslint-disable-next-line no-nested-ternary\n const borderStyleValue = borderStyle ? borderStyle : borderColor || borderWidth || borderBlockStartWidth || borderBlockEndWidth || borderInlineStartWidth || borderInlineEndWidth ? 'solid' : undefined; // eslint-disable-next-line no-nested-ternary\n\n const outlineStyleValue = outlineStyle ? outlineStyle : outlineColor || outlineWidth ? 'solid' : undefined;\n const style = {\n '--pc-box-color': color ? `var(--p-color-${color})` : undefined,\n '--pc-box-background': background ? `var(--p-color-${background})` : undefined,\n // eslint-disable-next-line no-nested-ternary\n '--pc-box-border-color': borderColor ? borderColor === 'transparent' ? 'transparent' : `var(--p-color-${borderColor})` : undefined,\n '--pc-box-border-style': borderStyleValue,\n '--pc-box-border-radius': borderRadius ? `var(--p-border-radius-${borderRadius})` : undefined,\n '--pc-box-border-radius-end-start': borderRadiusEndStart ? `var(--p-border-radius-${borderRadiusEndStart})` : undefined,\n '--pc-box-border-radius-end-end': borderRadiusEndEnd ? `var(--p-border-radius-${borderRadiusEndEnd})` : undefined,\n '--pc-box-border-radius-start-start': borderRadiusStartStart ? `var(--p-border-radius-${borderRadiusStartStart})` : undefined,\n '--pc-box-border-radius-start-end': borderRadiusStartEnd ? `var(--p-border-radius-${borderRadiusStartEnd})` : undefined,\n '--pc-box-border-width': borderWidth ? `var(--p-border-width-${borderWidth})` : undefined,\n '--pc-box-border-block-start-width': borderBlockStartWidth ? `var(--p-border-width-${borderBlockStartWidth})` : undefined,\n '--pc-box-border-block-end-width': borderBlockEndWidth ? `var(--p-border-width-${borderBlockEndWidth})` : undefined,\n '--pc-box-border-inline-start-width': borderInlineStartWidth ? `var(--p-border-width-${borderInlineStartWidth})` : undefined,\n '--pc-box-border-inline-end-width': borderInlineEndWidth ? `var(--p-border-width-${borderInlineEndWidth})` : undefined,\n '--pc-box-min-height': minHeight,\n '--pc-box-min-width': minWidth,\n '--pc-box-max-width': maxWidth,\n '--pc-box-outline-color': outlineColor ? `var(--p-color-${outlineColor})` : undefined,\n '--pc-box-outline-style': outlineStyleValue,\n '--pc-box-outline-width': outlineWidth ? `var(--p-border-width-${outlineWidth})` : undefined,\n '--pc-box-overflow-x': overflowX,\n '--pc-box-overflow-y': overflowY,\n ...getResponsiveProps('box', 'padding-block-end', 'space', paddingBlockEnd || padding),\n ...getResponsiveProps('box', 'padding-block-start', 'space', paddingBlockStart || padding),\n ...getResponsiveProps('box', 'padding-inline-start', 'space', paddingInlineStart || padding),\n ...getResponsiveProps('box', 'padding-inline-end', 'space', paddingInlineEnd || padding),\n '--pc-box-shadow': shadow ? `var(--p-shadow-${shadow})` : undefined,\n '--pc-box-width': width,\n position,\n '--pc-box-inset-block-start': insetBlockStart ? `var(--p-space-${insetBlockStart})` : undefined,\n '--pc-box-inset-block-end': insetBlockEnd ? `var(--p-space-${insetBlockEnd})` : undefined,\n '--pc-box-inset-inline-start': insetInlineStart ? `var(--p-space-${insetInlineStart})` : undefined,\n '--pc-box-inset-inline-end': insetInlineEnd ? `var(--p-space-${insetInlineEnd})` : undefined,\n zIndex,\n opacity\n };\n const className = classNames(styles.Box, visuallyHidden && styles.visuallyHidden, printHidden && styles.printHidden, as === 'ul' && styles.listReset);\n return /*#__PURE__*/React.createElement(as, {\n className,\n id,\n ref,\n style: sanitizeCustomProperties(style),\n role,\n tabIndex,\n ...restProps\n }, children);\n});\nBox.displayName = 'Box';\n\nexport { Box };\n","import React from 'react';\nimport styles from '../../Popover.scss.js';\nimport { Box } from '../../../Box/Box.js';\n\nfunction Section({\n children\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Section\n }, /*#__PURE__*/React.createElement(Box, {\n padding: \"4\"\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 captureOverscroll = false,\n fixed,\n sectioned,\n children,\n height,\n onScrolledToBottom\n}) {\n const className = classNames(styles.Pane, fixed && styles['Pane-fixed'], captureOverscroll && styles['Pane-captureOverscroll']);\n const content = sectioned ? wrapWithComponent(children, Section, {}) : children;\n const style = height ? {\n height,\n maxHeight: height,\n minHeight: height\n } : undefined;\n return fixed ? /*#__PURE__*/React.createElement(\"div\", {\n style: style,\n className: className\n }, content) : /*#__PURE__*/React.createElement(Scrollable, {\n shadow: true,\n className: className,\n style: style,\n onScrolledToBottom: onScrolledToBottom\n }, content);\n}\n\nexport { Pane };\n","import React, { PureComponent, createRef, Children } from 'react';\nimport { motion } from '@shopify/polaris-tokens';\nimport { findFirstKeyboardFocusableNode } 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 { PortalsManagerContext } from '../../../../utilities/portals/context.js';\nimport { EventListener } from '../../../EventListener/EventListener.js';\nimport { Box } from '../../../Box/Box.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.context = void 0;\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.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 autofocusTarget,\n captureOverscroll\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 captureOverscroll,\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(Box, {\n position: \"relative\",\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n background: \"bg\",\n borderRadius: \"2\"\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 preventCloseOnChildOverlayClick\n }\n } = this;\n const composedPath = event.composedPath();\n const wasDescendant = preventCloseOnChildOverlayClick ? wasPolarisPortalDescendant(composedPath, this.context.container) : wasContentNodeDescendant(composedPath, contentNode);\n const isActivatorDescendant = nodeContainsDescendant(activator, target);\n\n if (wasDescendant || 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 = event => {\n const target = event.target;\n const {\n contentNode,\n props: {\n activator\n }\n } = this;\n const composedPath = event.composedPath();\n const wasDescendant = wasContentNodeDescendant(composedPath, contentNode);\n const isActivatorDescendant = nodeContainsDescendant(activator, target);\n\n if (wasDescendant || isActivatorDescendant) {\n this.props.onClose(PopoverCloseSource.EscapeKeypress);\n }\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(motion['duration-100'], 10));\n });\n }\n\n if (!this.props.active && oldProps.active) {\n this.clearTransitionTimeout();\n this.setState({\n transitionStatus: TransitionStatus.Exited\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\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 = findFirstKeyboardFocusableNode(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}\nPopoverOverlay.contextType = PortalsManagerContext;\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\nfunction wasContentNodeDescendant(composedPath, contentNode) {\n return contentNode.current != null && composedPath.includes(contentNode.current);\n}\n\nfunction wasPolarisPortalDescendant(composedPath, portalsContainerElement) {\n return composedPath.some(eventTarget => eventTarget instanceof Node && (portalsContainerElement === null || portalsContainerElement === void 0 ? void 0 : portalsContainerElement.contains(eventTarget)));\n}\n\nexport { PopoverCloseSource, PopoverOverlay, nodeContainsDescendant };\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 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 && activatorNode) {\n const focusableActivator = findFirstFocusableNodeIncludingDisabled(activatorNode) || findFirstFocusableNodeIncludingDisabled(activatorContainer.current) || activatorContainer.current;\n\n if (!focusNextFocusableNode(focusableActivator, isInPortal)) {\n focusableActivator.focus();\n }\n } else if (source === PopoverCloseSource.EscapeKeypress && activatorNode) {\n const focusableActivator = findFirstFocusableNodeIncludingDisabled(activatorNode) || findFirstFocusableNodeIncludingDisabled(activatorContainer.current) || activatorContainer.current;\n\n if (focusableActivator) {\n focusableActivator.focus();\n } else {\n focusNextFocusableNode(focusableActivator, isInPortal);\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 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 \"LegacyStack\": \"Polaris-LegacyStack\",\n \"Item\": \"Polaris-LegacyStack__Item\",\n \"noWrap\": \"Polaris-LegacyStack--noWrap\",\n \"spacingNone\": \"Polaris-LegacyStack--spacingNone\",\n \"spacingExtraTight\": \"Polaris-LegacyStack--spacingExtraTight\",\n \"spacingTight\": \"Polaris-LegacyStack--spacingTight\",\n \"spacingBaseTight\": \"Polaris-LegacyStack--spacingBaseTight\",\n \"spacingLoose\": \"Polaris-LegacyStack--spacingLoose\",\n \"spacingExtraLoose\": \"Polaris-LegacyStack--spacingExtraLoose\",\n \"distributionLeading\": \"Polaris-LegacyStack--distributionLeading\",\n \"distributionTrailing\": \"Polaris-LegacyStack--distributionTrailing\",\n \"distributionCenter\": \"Polaris-LegacyStack--distributionCenter\",\n \"distributionEqualSpacing\": \"Polaris-LegacyStack--distributionEqualSpacing\",\n \"distributionFill\": \"Polaris-LegacyStack--distributionFill\",\n \"distributionFillEvenly\": \"Polaris-LegacyStack--distributionFillEvenly\",\n \"alignmentLeading\": \"Polaris-LegacyStack--alignmentLeading\",\n \"alignmentTrailing\": \"Polaris-LegacyStack--alignmentTrailing\",\n \"alignmentCenter\": \"Polaris-LegacyStack--alignmentCenter\",\n \"alignmentFill\": \"Polaris-LegacyStack--alignmentFill\",\n \"alignmentBaseline\": \"Polaris-LegacyStack--alignmentBaseline\",\n \"vertical\": \"Polaris-LegacyStack--vertical\",\n \"Item-fill\": \"Polaris-LegacyStack__Item--fill\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from '../../LegacyStack.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 './LegacyStack.scss.js';\nimport { Item } from './components/Item/Item.js';\n\nconst LegacyStack = /*#__PURE__*/memo(function Stack({\n children,\n vertical,\n spacing,\n distribution,\n alignment,\n wrap\n}) {\n const className = classNames(styles.LegacyStack, 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});\nLegacyStack.Item = Item;\n\nexport { LegacyStack };\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\n/** @deprecated Use VerticalStack instead */\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';\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","import { useCallback } from 'react';\n\n/**\n * useDisableInteraction provides the original event handler but disables interaction\n * if the boolean passed is true.\n * @param disabled - A boolean value that determines if the button should\n * be disabled\n * @param handleEvent - The original event handler\n * @returns Function - The original event handler but with interactions disabled if the\n * provided boolean is true\n * @example\n * function ComponentExample() {\n * const handleClick = () => {\n * console.log('disable me');\n * };\n * const handleClickEvent = useDisableInteraction(true, handleClick);\n * return <button onClick={handleClickEvent}>Im Disabled</button>;\n * }\n */\n\nfunction useDisableClick(disabled, handleClick) {\n const handleClickWrapper = useCallback(event => {\n if (disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }, [disabled]);\n\n if (!disabled) {\n return handleClick;\n }\n\n return handleClickWrapper;\n}\n\nexport { useDisableClick };\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 \"textAlignStart\": \"Polaris-Button--textAlignStart\",\n \"textAlignCenter\": \"Polaris-Button--textAlignCenter\",\n \"textAlignRight\": \"Polaris-Button--textAlignRight\",\n \"textAlignEnd\": \"Polaris-Button--textAlignEnd\",\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 \"primaryPlain\": \"Polaris-Button--primaryPlain\",\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 \"sizeMicro\": \"Polaris-Button--sizeMicro\",\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","var styles = {\n \"Spinner\": \"Polaris-Spinner\",\n \"sizeSmall\": \"Polaris-Spinner--sizeSmall\",\n \"sizeLarge\": \"Polaris-Spinner--sizeLarge\"\n};\n\nexport { styles as default };\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 { Text } from '../Text/Text.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(Text, {\n as: \"span\",\n visuallyHidden: true\n }, 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","var styles = {\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 \"Text\": \"Polaris-ActionList__Text\"\n};\n\nexport { styles as default };\n","var styles = {\n \"TooltipContainer\": \"Polaris-Tooltip__TooltipContainer\",\n \"HasUnderline\": \"Polaris-Tooltip__HasUnderline\"\n};\n\nexport { styles as default };\n","import { createContext } from 'react';\n\nconst EphemeralPresenceManagerContext = /*#__PURE__*/createContext(undefined);\n\nexport { EphemeralPresenceManagerContext };\n","import { useContext } from 'react';\nimport { EphemeralPresenceManagerContext } from './context.js';\n\nfunction useEphemeralPresenceManager() {\n const ephemeralPresenceManager = useContext(EphemeralPresenceManagerContext);\n\n if (!ephemeralPresenceManager) {\n throw new Error('No ephemeral presence manager was provided. Your application must be wrapped in an <AppProvider> component. See https://polaris.shopify.com/components/app-provider for implementation instructions.');\n }\n\n return ephemeralPresenceManager;\n}\nfunction useReadOnlyEphemeralPresenceManager() {\n const {\n presenceList,\n presenceCounter\n } = useEphemeralPresenceManager();\n return {\n presenceList,\n presenceCounter\n };\n}\n\nexport { useEphemeralPresenceManager, useReadOnlyEphemeralPresenceManager };\n","var styles = {\n \"TooltipOverlay\": \"Polaris-Tooltip-TooltipOverlay\",\n \"positionedAbove\": \"Polaris-Tooltip-TooltipOverlay--positionedAbove\",\n \"measuring\": \"Polaris-Tooltip-TooltipOverlay--measuring\",\n \"measured\": \"Polaris-Tooltip-TooltipOverlay--measured\",\n \"instant\": \"Polaris-Tooltip-TooltipOverlay--instant\",\n \"Content\": \"Polaris-Tooltip-TooltipOverlay__Content\",\n \"default\": \"Polaris-Tooltip-TooltipOverlay--default\",\n \"wide\": \"Polaris-Tooltip-TooltipOverlay--wide\"\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 = 'above',\n preventInteraction,\n id,\n children,\n accessibilityLabel,\n width,\n padding,\n borderRadius,\n zIndexOverride,\n instant\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 zIndexOverride: zIndexOverride\n }) : null;\n return markup;\n\n function renderTooltip(overlayDetails) {\n const {\n measuring,\n desiredHeight,\n positioning,\n chevronOffset\n } = overlayDetails;\n const containerClassName = classNames(styles.TooltipOverlay, measuring && styles.measuring, !measuring && styles.measured, instant && styles.instant, positioning === 'above' && styles.positionedAbove);\n const contentClassName = classNames(styles.Content, width && styles[width]);\n const contentStyles = measuring ? undefined : {\n minHeight: desiredHeight\n };\n const style = {\n '--pc-tooltip-chevron-x-pos': `${chevronOffset}px`,\n '--pc-tooltip-border-radius': borderRadius ? `var(--p-border-radius-${borderRadius})` : undefined,\n '--pc-tooltip-padding': padding && padding === 'default' ? 'var(--p-space-1) var(--p-space-2)' : `var(--p-space-${padding})`\n };\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n style: style,\n className: containerClassName\n }, layer.props), /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n role: \"tooltip\",\n className: contentClassName,\n style: { ...contentStyles,\n ...style\n },\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, useCallback, useEffect } from 'react';\nimport { findFirstFocusableNode } from '../../utilities/focus.js';\nimport { useToggle } from '../../utilities/use-toggle.js';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './Tooltip.scss.js';\nimport { useEphemeralPresenceManager } from '../../utilities/ephemeral-presence-manager/hooks.js';\nimport { TooltipOverlay } from './components/TooltipOverlay/TooltipOverlay.js';\nimport { useUniqueId } from '../../utilities/unique-id/hooks.js';\nimport { Portal } from '../Portal/Portal.js';\n\nconst HOVER_OUT_TIMEOUT = 150;\nfunction Tooltip({\n children,\n content,\n dismissOnMouseOut,\n active: originalActive,\n hoverDelay,\n preferredPosition = 'above',\n activatorWrapper = 'span',\n accessibilityLabel,\n width = 'default',\n padding = 'default',\n borderRadius = '1',\n zIndexOverride,\n hasUnderline,\n persistOnClick,\n onOpen,\n onClose\n}) {\n const WrapperComponent = activatorWrapper;\n const {\n value: active,\n setTrue: setActiveTrue,\n setFalse: handleBlur\n } = useToggle(Boolean(originalActive));\n const {\n value: persist,\n toggle: togglePersisting\n } = useToggle(Boolean(originalActive) && Boolean(persistOnClick));\n const [activatorNode, setActivatorNode] = useState(null);\n const {\n presenceList,\n addPresence,\n removePresence\n } = useEphemeralPresenceManager();\n const id = useUniqueId('TooltipContent');\n const activatorContainer = useRef(null);\n const mouseEntered = useRef(false);\n const [shouldAnimate, setShouldAnimate] = useState(Boolean(!originalActive));\n const hoverDelayTimeout = useRef(null);\n const hoverOutTimeout = useRef(null);\n const handleFocus = useCallback(() => {\n if (originalActive !== false) {\n setActiveTrue();\n }\n }, [originalActive, setActiveTrue]);\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 useEffect(() => {\n return () => {\n if (hoverDelayTimeout.current) {\n clearTimeout(hoverDelayTimeout.current);\n }\n\n if (hoverOutTimeout.current) {\n clearTimeout(hoverOutTimeout.current);\n }\n };\n }, []);\n const handleOpen = useCallback(() => {\n setShouldAnimate(!presenceList.tooltip && !active);\n onOpen === null || onOpen === void 0 ? void 0 : onOpen();\n addPresence('tooltip');\n }, [addPresence, presenceList.tooltip, onOpen, active]);\n const handleClose = useCallback(() => {\n onClose === null || onClose === void 0 ? void 0 : onClose();\n setShouldAnimate(false);\n hoverOutTimeout.current = setTimeout(() => {\n removePresence('tooltip');\n }, HOVER_OUT_TIMEOUT);\n }, [removePresence, onClose]);\n const handleKeyUp = useCallback(event => {\n if (event.key !== 'Escape') return;\n handleClose === null || handleClose === void 0 ? void 0 : handleClose();\n handleBlur();\n persistOnClick && togglePersisting();\n }, [handleBlur, handleClose, persistOnClick, togglePersisting]);\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 width: width,\n padding: padding,\n borderRadius: borderRadius,\n zIndexOverride: zIndexOverride,\n instant: !shouldAnimate\n }, content)) : null;\n const wrapperClassNames = classNames(activatorWrapper === 'div' && styles.TooltipContainer, hasUnderline && styles.HasUnderline);\n return /*#__PURE__*/React.createElement(WrapperComponent, {\n onFocus: () => {\n handleOpen();\n handleFocus();\n },\n onBlur: () => {\n handleClose();\n handleBlur();\n\n if (persistOnClick) {\n togglePersisting();\n }\n },\n onMouseLeave: handleMouseLeave,\n onMouseOver: handleMouseEnterFix,\n onMouseDown: persistOnClick ? togglePersisting : undefined,\n ref: setActivator,\n onKeyUp: handleKeyUp,\n className: wrapperClassNames\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\n if (hoverDelay && !presenceList.tooltip) {\n hoverDelayTimeout.current = setTimeout(() => {\n handleOpen();\n handleFocus();\n }, hoverDelay);\n } else {\n handleOpen();\n handleFocus();\n }\n }\n\n function handleMouseLeave() {\n if (hoverDelayTimeout.current) {\n clearTimeout(hoverDelayTimeout.current);\n hoverDelayTimeout.current = null;\n }\n\n mouseEntered.current = false;\n handleClose();\n\n if (!persist) {\n handleBlur();\n }\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\nexport { Tooltip };\n","var styles = {\n \"HorizontalStack\": \"Polaris-HorizontalStack\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { getResponsiveProps } from '../../utilities/css.js';\nimport styles from './HorizontalStack.scss.js';\n\nconst HorizontalStack = function HorizontalStack({\n align,\n blockAlign,\n gap,\n wrap = true,\n children\n}) {\n const style = {\n '--pc-horizontal-stack-align': align,\n '--pc-horizontal-stack-block-align': blockAlign,\n '--pc-horizontal-stack-wrap': wrap ? 'wrap' : 'nowrap',\n ...getResponsiveProps('horizontal-stack', 'gap', 'space', gap)\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.HorizontalStack,\n style: style\n }, children);\n};\n\nexport { HorizontalStack };\n","import React, { useRef, useState } from 'react';\nimport { zIndex } from '@shopify/polaris-tokens';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from '../../ActionList.scss.js';\nimport { handleMouseUpByBlurring } from '../../../../utilities/focus.js';\nimport { useIsomorphicLayoutEffect } from '../../../../utilities/use-isomorphic-layout-effect.js';\nimport { Badge } from '../../../Badge/Badge.js';\nimport { Tooltip } from '../../../Tooltip/Tooltip.js';\nimport { UnstyledLink } from '../../../UnstyledLink/UnstyledLink.js';\nimport { HorizontalStack } from '../../../HorizontalStack/HorizontalStack.js';\nimport { Icon } from '../../../Icon/Icon.js';\nimport { Box } from '../../../Box/Box.js';\nimport { Text } from '../../../Text/Text.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 onMouseEnter,\n icon,\n image,\n prefix,\n suffix,\n disabled,\n external,\n destructive,\n ellipsis,\n truncate,\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 let contentText = content || '';\n\n if (truncate && content) {\n contentText = /*#__PURE__*/React.createElement(TruncateText, null, content);\n } else if (ellipsis) {\n contentText = `${content}…`;\n }\n\n const contentMarkup = helpText ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Box, null, contentText), /*#__PURE__*/React.createElement(Text, {\n color: \"subdued\",\n as: \"span\"\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(Box, null, /*#__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(HorizontalStack, {\n blockAlign: \"center\",\n gap: \"4\",\n wrap: !truncate\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 onMouseEnter: onMouseEnter\n }, contentElement);\n return /*#__PURE__*/React.createElement(React.Fragment, null, scrollMarkup, control);\n}\nconst TruncateText = ({\n children\n}) => {\n const textRef = useRef(null);\n const [isOverflowing, setIsOverflowing] = useState(false);\n useIsomorphicLayoutEffect(() => {\n if (textRef.current) {\n setIsOverflowing(textRef.current.scrollWidth > textRef.current.offsetWidth);\n }\n }, [children]);\n const text = /*#__PURE__*/React.createElement(Text, {\n as: \"span\",\n truncate: true\n }, /*#__PURE__*/React.createElement(Box, {\n width: \"100%\",\n ref: textRef\n }, children));\n return isOverflowing ? /*#__PURE__*/React.createElement(Tooltip, {\n zIndexOverride: Number(zIndex['z-6']),\n preferredPosition: \"above\",\n hoverDelay: 1000,\n content: children\n }, /*#__PURE__*/React.createElement(Text, {\n as: \"span\",\n truncate: true\n }, children)) : text;\n};\n\nexport { Item, TruncateText };\n","import React from 'react';\nimport { Item } from '../Item/Item.js';\nimport { Box } from '../../../Box/Box.js';\nimport { Text } from '../../../Text/Text.js';\n\nfunction Section({\n section,\n hasMultipleSections,\n isFirst,\n actionRole,\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(\"li\", {\n key: `${content}-${index}`,\n role: actionRole === 'menuitem' ? 'presentation' : undefined\n }, /*#__PURE__*/React.createElement(Item, Object.assign({\n content: content,\n helpText: helpText,\n role: actionRole,\n onAction: handleAction(onAction)\n }, item)));\n });\n let titleMarkup = null;\n\n if (section.title) {\n titleMarkup = typeof section.title === 'string' ? /*#__PURE__*/React.createElement(Box, {\n paddingBlockStart: \"4\",\n paddingInlineStart: \"4\",\n paddingBlockEnd: \"2\",\n paddingInlineEnd: \"4\"\n }, /*#__PURE__*/React.createElement(Text, {\n as: \"p\",\n variant: \"headingXs\"\n }, section.title)) : /*#__PURE__*/React.createElement(Box, {\n padding: \"2\"\n }, section.title);\n }\n\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(React.Fragment, null, titleMarkup, /*#__PURE__*/React.createElement(Box, Object.assign({\n as: \"ul\",\n padding: \"2\"\n }, hasMultipleSections && {\n paddingBlockStart: '0'\n }, sectionRole && {\n role: sectionRole\n }, {\n tabIndex: !hasMultipleSections ? -1 : undefined\n }), actionMarkup));\n return hasMultipleSections ? /*#__PURE__*/React.createElement(Box, Object.assign({\n as: \"li\",\n role: \"presentation\",\n borderColor: \"border-subdued\"\n }, !isFirst && {\n borderBlockStartWidth: '1'\n }, !section.title && {\n paddingBlockStart: '2'\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 { Section } from './components/Section/Section.js';\nimport { KeypressListener } from '../KeypressListener/KeypressListener.js';\nimport { Box } from '../Box/Box.js';\nimport { Item } from './components/Item/Item.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 hasMultipleSections = finalSections.length > 1;\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: typeof section.title === 'string' ? section.title : index,\n section: section,\n hasMultipleSections: hasMultipleSections,\n actionRole: actionRole,\n onActionAnyItem: onActionAnyItem,\n isFirst: index === 0\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(Box, {\n as: hasMultipleSections ? 'ul' : 'div',\n ref: actionListRef,\n role: elementRole,\n tabIndex: elementTabIndex\n }, listeners, sectionMarkup);\n}\nActionList.Item = Item;\n\nexport { ActionList };\n","import React from 'react';\nimport { handleMouseUpByBlurring } from '../../utilities/focus.js';\nimport { useDisableClick } from '../../utilities/use-disable-interaction.js';\nimport { UnstyledLink } from '../UnstyledLink/UnstyledLink.js';\n\nfunction UnstyledButton({\n id,\n children,\n className,\n url,\n external,\n target,\n download,\n submit,\n disabled,\n loading,\n pressed,\n accessibilityLabel,\n role,\n ariaControls,\n ariaExpanded,\n ariaDescribedBy,\n ariaChecked,\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 const handleClick = useDisableClick(disabled, onClick);\n\n if (url) {\n buttonMarkup = disabled ?\n /*#__PURE__*/\n // Render an `<a>` 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 target: target,\n download: download\n }, rest), children);\n } else {\n buttonMarkup = /*#__PURE__*/React.createElement(\"button\", Object.assign({}, interactiveProps, {\n \"aria-disabled\": disabled,\n type: submit ? 'submit' : 'button',\n \"aria-busy\": loading ? true : undefined,\n \"aria-controls\": ariaControls,\n \"aria-expanded\": ariaExpanded,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-checked\": ariaChecked,\n \"aria-pressed\": pressed,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n onKeyPress: onKeyPress,\n onClick: handleClick,\n tabIndex: disabled ? -1 : undefined\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 { useDisableClick } from '../../utilities/use-disable-interaction.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 target,\n submit,\n loading,\n pressed,\n accessibilityLabel,\n role,\n ariaControls,\n ariaExpanded,\n ariaDescribedBy,\n ariaChecked,\n onClick,\n onFocus,\n onBlur,\n onKeyDown,\n onKeyPress,\n onKeyUp,\n onMouseEnter,\n onTouchStart,\n onPointerDown,\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 dataPrimaryLink\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, primary && plain && styles.primaryPlain, isDisabled && styles.disabled, loading && styles.loading, plain && !primary && 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 const handleClick = useDisableClick(disabled, toggleDisclosureActive);\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 \"aria-disabled\": disabled,\n \"aria-label\": disclosureLabel,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-checked\": ariaChecked,\n onClick: handleClick,\n onMouseUp: handleMouseUpByBlurring,\n tabIndex: disabled ? -1 : undefined\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 'data-primary-link': dataPrimaryLink\n };\n const linkProps = {\n url,\n external,\n download,\n target\n };\n const actionProps = {\n submit,\n disabled: isDisabled,\n loading,\n ariaControls,\n ariaExpanded,\n ariaChecked,\n pressed,\n onKeyDown,\n onKeyUp,\n onKeyPress,\n onPointerDown\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 styles from './Message.scss.js';\nimport { Link } from '../../../../../Link/Link.js';\nimport { Badge } from '../../../../../Badge/Badge.js';\nimport { Popover } from '../../../../../Popover/Popover.js';\nimport { LegacyStack } from '../../../../../LegacyStack/LegacyStack.js';\nimport { TextContainer } from '../../../../../TextContainer/TextContainer.js';\nimport { Text } from '../../../../../Text/Text.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(LegacyStack, {\n vertical: true,\n spacing: \"tight\"\n }, /*#__PURE__*/React.createElement(TextContainer, null, /*#__PURE__*/React.createElement(Text, {\n variant: \"headingMd\",\n as: \"h2\"\n }, 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 { Box } from '../../../Box/Box.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 accessibilityLabel,\n customWidth\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 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: true,\n preferredAlignment: \"right\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.MenuItems\n }, /*#__PURE__*/React.createElement(Box, {\n width: customWidth\n }, /*#__PURE__*/React.createElement(ActionList, {\n actionRole: \"menuitem\",\n onActionAnyItem: onClose,\n sections: actions\n }), messageMarkup)));\n}\n\nexport { Menu };\n","var styles = {\n \"Avatar\": \"Polaris-Avatar\",\n \"Text\": \"Polaris-Avatar__Text\",\n \"long\": \"Polaris-Avatar--long\",\n \"shapeRound\": \"Polaris-Avatar--shapeRound\",\n \"shapeSquare\": \"Polaris-Avatar--shapeSquare\",\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 \"imageHasLoaded\": \"Polaris-Avatar--imageHasLoaded\",\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'];\n/**\n * Computes a rudimentary hash from a string by xoring the character codes\n * of all characters\n */\n\nfunction xorHash(str) {\n let hash = 0;\n\n for (const char of str) {\n hash ^= char.charCodeAt(0);\n }\n\n return hash;\n}\n\nfunction styleClass(name) {\n return name ? STYLE_CLASSES[xorHash(name) % STYLE_CLASSES.length] : STYLE_CLASSES[0];\n}\n\nfunction Avatar({\n name,\n source,\n onError,\n initials,\n customer,\n size = 'medium',\n shape = 'round',\n accessibilityLabel\n}) {\n const i18n = useI18n();\n const isAfterInitialMount = useIsAfterInitialMount();\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)], hasImage && status === Status.Loaded && styles.imageHasLoaded, shape && styles[variationName('shape', shape)], !customer && !source && styles[variationName('style', styleClass(nameString))]);\n const textClassName = classNames(styles.Text, ((initials === null || initials === void 0 ? void 0 : initials.length) || 0) > 2 && styles.long);\n const imageClassName = classNames(styles.Image, status !== Status.Loaded && styles.hidden);\n const imageMarkUp = source && isAfterInitialMount && status !== Status.Errored ? /*#__PURE__*/React.createElement(Image, {\n className: imageClassName,\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 className: textClassName,\n x: \"50%\",\n y: \"50%\",\n dy: verticalOffset,\n fill: \"currentColor\",\n textAnchor: \"middle\"\n }, initials);\n const svgMarkup = hasImage ? null : /*#__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));\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, { useCallback } from 'react';\n\nfunction Image({\n alt,\n sourceSet,\n source,\n crossOrigin,\n onLoad,\n className,\n ...rest\n}) {\n const finalSourceSet = sourceSet ? sourceSet.map(({\n source: subSource,\n descriptor\n }) => `${subSource} ${descriptor}`).join(',') : null;\n const handleLoad = useCallback(() => {\n if (onLoad) onLoad();\n }, [onLoad]);\n return /*#__PURE__*/React.createElement(\"img\", Object.assign({\n alt: alt,\n src: source,\n crossOrigin: crossOrigin,\n className: className,\n onLoad: handleLoad\n }, finalSourceSet ? {\n srcSet: finalSourceSet\n } : {}, rest));\n}\n\nexport { Image };\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 <Frame> component. See https://polaris.shopify.com/components/frame for implementation instructions.');\n }\n\n return frame;\n}\n\nexport { useFrame };\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 logoSuffix\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, logoSuffix && styles.hasLogoSuffix);\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 })), logoSuffix);\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 { Text } from '../../../Text/Text.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 accessibilityLabel,\n customActivator,\n customWidth\n}) {\n const showIndicator = Boolean(message);\n const activatorContentMarkup = customActivator ? customActivator : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.Details\n }, /*#__PURE__*/React.createElement(Text, {\n as: \"p\",\n alignment: \"start\",\n fontWeight: \"medium\",\n truncate: true\n }, name), /*#__PURE__*/React.createElement(Text, {\n as: \"p\",\n variant: \"bodySm\",\n alignment: \"start\",\n color: \"subdued\",\n truncate: true\n }, detail)), /*#__PURE__*/React.createElement(MessageIndicator, {\n active: showIndicator\n }, /*#__PURE__*/React.createElement(Avatar, {\n shape: \"square\",\n size: \"small\",\n initials: initials && initials.replace(' ', ''),\n source: avatar\n })));\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 accessibilityLabel: accessibilityLabel,\n customWidth: customWidth\n });\n}\n\nexport { UserMenu };\n","import { createContext } from 'react';\n\nconst WithinContentContext = /*#__PURE__*/createContext(false);\n\nexport { WithinContentContext };\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 \"hasLogoSuffix\": \"Polaris-Navigation--hasLogoSuffix\",\n \"Logo\": \"Polaris-Navigation__Logo\",\n \"LogoLink\": \"Polaris-Navigation__LogoLink\",\n \"Item\": \"Polaris-Navigation__Item\",\n \"Icon-resized\": \"Polaris-Navigation__Icon--resized\",\n \"ItemInnerWrapper\": \"Polaris-Navigation__ItemInnerWrapper\",\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 \"ListItem-hasAction\": \"Polaris-Navigation__ListItem--hasAction\",\n \"subNavigationActive\": \"Polaris-Navigation--subNavigationActive\",\n \"Item-child-active\": \"Polaris-Navigation--itemChildActive\",\n \"ListItem\": \"Polaris-Navigation__ListItem\",\n \"RollupSection\": \"Polaris-Navigation__RollupSection\",\n \"SecondaryNavigation\": \"Polaris-Navigation__SecondaryNavigation\",\n \"ItemWrapper\": \"Polaris-Navigation__ItemWrapper\",\n \"ItemInnerDisabled\": \"Polaris-Navigation__ItemInnerDisabled\",\n \"ItemInnerWrapper-selected\": \"Polaris-Navigation__ItemInnerWrapper--selected\",\n \"Text\": \"Polaris-Navigation__Text\",\n \"Text-truncated\": \"Polaris-Navigation__Text--truncated\",\n \"SecondaryActions\": \"Polaris-Navigation__SecondaryActions\",\n \"ItemWithFloatingActions\": \"Polaris-Navigation__ItemWithFloatingActions\",\n \"ItemInnerWrapper-display-actions-on-hover\": \"Polaris-Navigation--itemInnerWrapperDisplayActionsOnHover\",\n \"SecondaryAction\": \"Polaris-Navigation__SecondaryAction\",\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};\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 \"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 = true,\n preventMeasuringOnChildrenUpdate: _preventMeasuringOnChildrenUpdate,\n children,\n onAnimationEnd\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 transitionDisabled = isTransitionDisabled(transition);\n const transitionStyles = typeof transition === 'object' && {\n transitionDuration: transition.duration,\n transitionTimingFunction: transition.timingFunction\n };\n const collapsibleStyles = { ...transitionStyles,\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 onAnimationEnd && onAnimationEnd();\n }\n }, [onAnimationEnd, open]);\n const startAnimation = useCallback(() => {\n if (transitionDisabled) {\n setIsOpen(open);\n setAnimationState('idle');\n\n if (open && collapsibleContainer.current) {\n setHeight(collapsibleContainer.current.scrollHeight);\n } else {\n setHeight(0);\n }\n } else {\n setAnimationState('measuring');\n }\n }, [open, transitionDisabled]);\n useEffect(() => {\n if (open !== isOpen) {\n startAnimation();\n } // startAnimation should only be fired if the open state changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\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-hidden\": !open\n }, content);\n}\nconst zeroDurationRegex = /^0(ms|s)$/;\n\nfunction isTransitionDisabled(transitionProp) {\n if (typeof transitionProp === 'boolean') {\n return !transitionProp;\n }\n\n const {\n duration\n } = transitionProp;\n\n if (duration && zeroDurationRegex.test(duration.trim())) {\n return true;\n }\n\n return false;\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: false\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: styles.List\n }, children));\n}\n\nexport { Secondary };\n","import { createContext } from 'react';\n\nconst MediaQueryContext = /*#__PURE__*/createContext(undefined);\n\nexport { MediaQueryContext };\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 <AppProvider> component. See https://polaris.shopify.com/components/app-provider for implementation instructions.');\n }\n\n return mediaQuery;\n}\n\nexport { useMediaQuery };\n","var styles = {\n \"Indicator\": \"Polaris-Indicator\",\n \"pulseIndicator\": \"Polaris-Indicator--pulseIndicator\"\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, useRef, useState, useEffect } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../../../utilities/use-isomorphic-layout-effect.js';\nimport { classNames } from '../../../../utilities/css.js';\nimport { NavigationContext } from '../../context.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 { Tooltip } from '../../../Tooltip/Tooltip.js';\nimport { UnstyledLink } from '../../../UnstyledLink/UnstyledLink.js';\nimport { UnstyledButton } from '../../../UnstyledButton/UnstyledButton.js';\n\nconst MAX_SECONDARY_ACTIONS = 2;\nconst TOOLTIP_HOVER_DELAY = 1000;\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 secondaryActions,\n displayActionsOnHover,\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 truncateText\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 navTextRef = useRef(null);\n const [isTruncated, setIsTruncated] = useState(false);\n useEffect(() => {\n if (!isNavigationCollapsed && expanded) {\n onToggleExpandedState === null || onToggleExpandedState === void 0 ? void 0 : onToggleExpandedState();\n }\n }, [expanded, isNavigationCollapsed, onToggleExpandedState]);\n useIsomorphicLayoutEffect(() => {\n const navTextNode = navTextRef.current;\n\n if (truncateText && navTextNode) {\n setIsTruncated(navTextNode.scrollHeight > navTextNode.clientHeight);\n }\n }, [truncateText]);\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 let badgeMarkup = null;\n\n if (isNew) {\n badgeMarkup = /*#__PURE__*/React.createElement(Badge, {\n status: \"new\"\n }, i18n.translate('Polaris.Badge.STATUS_LABELS.new'));\n } else if (typeof badge === 'string') {\n badgeMarkup = /*#__PURE__*/React.createElement(Badge, {\n status: \"new\"\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 itemLabelMarkup = /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(styles.Text, truncateText && styles['Text-truncated']),\n ref: navTextRef\n }, label, indicatorMarkup);\n\n if (url == null) {\n const className = classNames(styles.Item, disabled && styles['Item-disabled'], selectedOverride && styles['Item-selected']);\n return /*#__PURE__*/React.createElement(\"li\", {\n className: styles.ListItem\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ItemWrapper\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.ItemInnerWrapper, disabled && styles.ItemInnerDisabled)\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 }, iconMarkup, itemLabelMarkup, wrappedBadgeMarkup))));\n }\n\n if (secondaryAction && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('Deprecation: The `secondaryAction` prop on the `Navigation.Item` has been deprecated. Use `secondaryActions` instead.');\n }\n\n const actions = secondaryActions || secondaryAction && [secondaryAction];\n\n if (actions && actions.length > MAX_SECONDARY_ACTIONS) {\n actions.length = MAX_SECONDARY_ACTIONS;\n\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(`secondaryActions must have a maximum of ${MAX_SECONDARY_ACTIONS} actions. Only the first ${MAX_SECONDARY_ACTIONS} actions will be rendered.`);\n }\n }\n\n const secondaryActionMarkup = actions !== null && actions !== void 0 && actions.length ? /*#__PURE__*/React.createElement(\"span\", {\n className: styles.SecondaryActions\n }, actions.map(action => /*#__PURE__*/React.createElement(ItemSecondaryAction, Object.assign({\n key: action.accessibilityLabel\n }, action, {\n tabIndex: tabIndex,\n disabled: disabled\n })))) : null;\n const itemContentMarkup = /*#__PURE__*/React.createElement(React.Fragment, null, iconMarkup, itemLabelMarkup, secondaryActionMarkup ? null : wrappedBadgeMarkup);\n const outerContentMarkup = /*#__PURE__*/React.createElement(React.Fragment, null, secondaryActionMarkup ? wrappedBadgeMarkup : null);\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']);\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, !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 truncateText: truncateText\n }));\n })));\n }\n\n const className = classNames(styles.ListItem, Boolean(actions && actions.length) && styles['ListItem-hasAction']);\n\n const itemLinkMarkup = () => {\n const linkMarkup = /*#__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 }, normalizeAriaAttributes(secondaryNavigationId, subNavigationItems.length > 0, showExpanded)), itemContentMarkup);\n return isTruncated ? /*#__PURE__*/React.createElement(Tooltip, {\n hoverDelay: TOOLTIP_HOVER_DELAY,\n content: label,\n preferredPosition: \"above\"\n }, linkMarkup) : linkMarkup;\n };\n\n return /*#__PURE__*/React.createElement(\"li\", {\n className: className\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ItemWrapper\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.ItemInnerWrapper, selected && canBeActive && styles['ItemInnerWrapper-selected'], displayActionsOnHover && styles['ItemInnerWrapper-display-actions-on-hover'], disabled && styles.ItemInnerDisabled)\n }, displayActionsOnHover && secondaryActionMarkup && wrappedBadgeMarkup ? /*#__PURE__*/React.createElement(\"span\", {\n className: styles.ItemWithFloatingActions\n }, itemLinkMarkup(), secondaryActionMarkup) : /*#__PURE__*/React.createElement(React.Fragment, null, itemLinkMarkup(), secondaryActionMarkup), outerContentMarkup)), 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 ItemSecondaryAction({\n url,\n icon,\n accessibilityLabel,\n tooltip,\n onClick,\n disabled,\n tabIndex\n}) {\n const markup = url ? /*#__PURE__*/React.createElement(UnstyledLink, {\n external: true,\n url: url,\n className: styles.SecondaryAction,\n tabIndex: tabIndex,\n \"aria-disabled\": disabled,\n \"aria-label\": accessibilityLabel,\n onClick: onClick\n }, /*#__PURE__*/React.createElement(Icon, {\n source: icon\n })) : /*#__PURE__*/React.createElement(UnstyledButton, {\n className: styles.SecondaryAction,\n tabIndex: tabIndex,\n disabled: disabled,\n accessibilityLabel: accessibilityLabel,\n onClick: onClick\n }, /*#__PURE__*/React.createElement(Icon, {\n source: icon\n }));\n return tooltip ? /*#__PURE__*/React.createElement(Tooltip, tooltip, \" \", markup, \" \") : markup;\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, ItemSecondaryAction, MAX_SECONDARY_ACTIONS, isNavigationItemActive };\n","import React, { useMemo } from 'react';\nimport { WithinContentContext } from '../../utilities/within-content-context.js';\nimport { classNames } from '../../utilities/css.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 logoSuffix\n}) {\n const {\n logo\n } = useFrame();\n const width = getWidth(logo, 104);\n const logoMarkup = logo ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.LogoContainer, logoSuffix && styles.hasLogoSuffix)\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 })), logoSuffix) : 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 { Tooltip } from '../../../Tooltip/Tooltip.js';\nimport { Text } from '../../../Text/Text.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 buttonMarkup = 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 actionMarkup = action && (action.tooltip ? /*#__PURE__*/React.createElement(Tooltip, action.tooltip, buttonMarkup) : buttonMarkup);\n const sectionHeadingMarkup = title && /*#__PURE__*/React.createElement(\"li\", {\n className: styles.SectionHeading\n }, /*#__PURE__*/React.createElement(Text, {\n as: \"span\",\n variant: \"headingXs\",\n color: \"subdued\"\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(\"div\", {\n className: styles.ItemWrapper\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ItemInnerWrapper\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 { 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","import { memo, useEffect } from 'react';\nimport { useFrame } from '../../utilities/frame/hooks.js';\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 { useRef } from 'react';\nimport isEqual from 'react-fast-compare';\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","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","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import React from 'react';\nexport default React.createContext(null);","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 `<TransitionGroup>` component manages a set of transition components\n * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition\n * components, `<TransitionGroup>` 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 `<TransitionGroup>`.\n *\n * Note that `<TransitionGroup>` 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 * `<TransitionGroup>` renders a `<div>` 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 `<div>` 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 `<Transition>` components, that are toggled `in` and out as they\n * leave. the `<TransitionGroup>` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `<Transition>` as\n * with our `<Fade>` 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;","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","var styles = {\n \"Body\": \"Polaris-Modal__Body\",\n \"IFrame\": \"Polaris-Modal__IFrame\"\n};\n\nexport { styles as default };\n","var styles = {\n \"Section\": \"Polaris-Modal-Section\",\n \"titleHidden\": \"Polaris-Modal-Section--titleHidden\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from './Section.scss.js';\nimport { Box } from '../../../Box/Box.js';\n\nfunction Section({\n children,\n flush = false,\n subdued = false,\n titleHidden = false\n}) {\n const className = classNames(styles.Section, titleHidden && styles.titleHidden);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(Box, Object.assign({\n as: \"section\",\n padding: flush ? '0' : '5'\n }, titleHidden && {\n paddingInlineEnd: '0'\n }, subdued && {\n background: 'bg-subdued'\n }), children));\n}\n\nexport { Section };\n","export default {\n disabled: false\n};","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","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';\nimport { forceReflow } from './utils/reflow';\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 * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\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 * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\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 if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\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 * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\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 * > `<CSSTransition>` 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;","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}","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';\nimport { forceReflow } from './utils/reflow';\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 * <div>\n * <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n * <div>\n * {\"I'll receive my-node-* classes\"}\n * </div>\n * </CSSTransition>\n * <button type=\"button\" onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\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 if (node) forceReflow(node);\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 `<Transition>` 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 `<Transition>` 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 `<Transition>` 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 `<Transition>` 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 `<Transition>` 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 `<Transition>` 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}","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 \"fullScreen\": \"Polaris-Modal-Dialog--fullScreen\",\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 { createContext } from 'react';\n\nconst FocusManagerContext = /*#__PURE__*/createContext(undefined);\n\nexport { FocusManagerContext };\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 { motion } from '@shopify/polaris-tokens';\nimport { classNames } from '../../../../utilities/css.js';\nimport { focusFirstFocusableNode } from '../../../../utilities/focus.js';\nimport { Key } from '../../../../types.js';\nimport styles from './Dialog.scss.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 fullScreen,\n setClosing,\n ...props\n}) {\n const containerNode = useRef(null);\n const classes = classNames(styles.Modal, small && styles.sizeSmall, large && styles.sizeLarge, limitHeight && styles.limitHeight, fullScreen && styles.fullScreen);\n const TransitionChild = instant ? Transition : FadeUp;\n useEffect(() => {\n containerNode.current && !containerNode.current.contains(document.activeElement) && focusFirstFocusableNode(containerNode.current);\n }, []);\n\n const handleKeyDown = () => {\n if (setClosing) {\n setClosing(true);\n }\n };\n\n const handleKeyUp = () => {\n if (setClosing) {\n setClosing(false);\n }\n\n onClose();\n };\n\n return /*#__PURE__*/React.createElement(TransitionChild, Object.assign({}, props, {\n nodeRef: containerNode,\n mountOnEnter: true,\n unmountOnExit: true,\n timeout: parseInt(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-label\": labelledBy,\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 keyEvent: \"keydown\",\n handler: handleKeyDown\n }), /*#__PURE__*/React.createElement(KeypressListener, {\n keyCode: Key.Escape,\n handler: handleKeyUp\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 \"HorizontalGrid\": \"Polaris-HorizontalGrid\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { getResponsiveValue, getResponsiveProps, sanitizeCustomProperties } from '../../utilities/css.js';\nimport styles from './HorizontalGrid.scss.js';\n\nfunction HorizontalGrid({\n children,\n columns,\n gap,\n alignItems\n}) {\n const style = { ...getResponsiveValue('horizontal-grid', 'grid-template-columns', formatHorizontalGrid(columns)),\n ...getResponsiveProps('horizontal-grid', 'gap', 'space', gap),\n '--pc-horizontal-grid-align-items': alignItems\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.HorizontalGrid,\n style: sanitizeCustomProperties(style)\n }, children);\n}\n\nfunction formatHorizontalGrid(columns) {\n if (typeof columns === 'object' && columns !== null && !Array.isArray(columns)) {\n return Object.fromEntries(Object.entries(columns).map(([breakpointAlias, breakpointHorizontalGrid]) => [breakpointAlias, getColumnValue(breakpointHorizontalGrid)]));\n }\n\n return getColumnValue(columns);\n}\n\nfunction getColumnValue(columns) {\n if (!columns) return undefined;\n\n if (typeof columns === 'number' || !isNaN(Number(columns))) {\n return `repeat(${Number(columns)}, minmax(0, 1fr))`;\n }\n\n if (typeof columns === 'string') return columns;\n return columns.map(column => {\n switch (column) {\n case 'oneThird':\n return 'minmax(0, 1fr)';\n\n case 'oneHalf':\n return 'minmax(0, 1fr)';\n\n case 'twoThirds':\n return 'minmax(0, 2fr)';\n }\n }).join(' ');\n}\n\nexport { HorizontalGrid };\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","var styles = {\n \"CloseButton\": \"Polaris-Modal-CloseButton\",\n \"pressed\": \"Polaris-Modal-CloseButton--pressed\",\n \"titleHidden\": \"Polaris-Modal-CloseButton--titleHidden\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { MobileCancelMajor } from '@shopify/polaris-icons';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from './CloseButton.scss.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\nimport { Icon } from '../../../Icon/Icon.js';\n\nfunction CloseButton({\n pressed,\n titleHidden = false,\n onClick\n}) {\n const i18n = useI18n();\n return /*#__PURE__*/React.createElement(\"button\", {\n onClick: onClick,\n className: classNames(styles.CloseButton, titleHidden && styles.titleHidden, pressed && styles.pressed),\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","import React from 'react';\nimport { HorizontalGrid } from '../../../HorizontalGrid/HorizontalGrid.js';\nimport { CloseButton } from '../CloseButton/CloseButton.js';\nimport { Box } from '../../../Box/Box.js';\nimport { HorizontalStack } from '../../../HorizontalStack/HorizontalStack.js';\nimport { Text } from '../../../Text/Text.js';\n\nfunction Header({\n id,\n children,\n closing,\n titleHidden,\n onClose\n}) {\n const titleHiddenMarkup = /*#__PURE__*/React.createElement(Box, {\n position: \"absolute\",\n insetInlineEnd: \"0\",\n zIndex: \"1\"\n }, /*#__PURE__*/React.createElement(HorizontalStack, {\n gap: \"4\",\n align: \"end\",\n blockAlign: \"center\"\n }, /*#__PURE__*/React.createElement(CloseButton, {\n titleHidden: titleHidden,\n onClick: onClose\n })));\n\n if (titleHidden || !children) {\n return titleHiddenMarkup;\n }\n\n return /*#__PURE__*/React.createElement(Box, {\n paddingBlockStart: \"4\",\n paddingBlockEnd: \"4\",\n paddingInlineStart: \"5\",\n paddingInlineEnd: \"5\",\n borderBlockEndWidth: \"1\",\n borderColor: \"border-subdued\"\n }, /*#__PURE__*/React.createElement(HorizontalGrid, {\n columns: {\n xs: '1fr auto'\n },\n gap: \"4\"\n }, /*#__PURE__*/React.createElement(HorizontalStack, {\n gap: \"4\",\n blockAlign: \"center\"\n }, /*#__PURE__*/React.createElement(Text, {\n id: id,\n as: \"h2\",\n variant: \"headingLg\",\n breakWord: true\n }, children)), /*#__PURE__*/React.createElement(CloseButton, {\n pressed: closing,\n titleHidden: titleHidden,\n onClick: onClose\n })));\n}\n\nexport { Header };\n","var styles = {\n \"Backdrop\": \"Polaris-Backdrop\",\n \"transparent\": \"Polaris-Backdrop--transparent\",\n \"belowNavigation\": \"Polaris-Backdrop--belowNavigation\"\n};\n\nexport { styles as default };\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 setClosing\n } = props;\n const className = classNames(styles.Backdrop, belowNavigation && styles.belowNavigation, transparent && styles.transparent);\n\n const handleMouseDown = () => {\n if (setClosing) {\n setClosing(true);\n }\n };\n\n const handleClick = () => {\n if (setClosing) {\n setClosing(false);\n }\n\n if (onClick) {\n onClick();\n }\n };\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ScrollLock, null), /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n onClick: handleClick,\n onTouchStart: onTouchStart,\n onMouseDown: handleMouseDown\n }));\n}\n\nexport { Backdrop };\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","import React from 'react';\nimport { buttonsFrom } from '../../../Button/utils.js';\nimport { HorizontalStack } from '../../../HorizontalStack/HorizontalStack.js';\nimport { Box } from '../../../Box/Box.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(HorizontalStack, {\n gap: \"2\"\n }, secondaryActionButtons, primaryActionButton) : null;\n return /*#__PURE__*/React.createElement(HorizontalStack, {\n gap: \"4\",\n blockAlign: \"center\"\n }, /*#__PURE__*/React.createElement(Box, {\n borderColor: \"border-subdued\",\n borderBlockStartWidth: \"1\",\n minHeight: \"var(--p-space-16)\",\n padding: \"4\",\n width: \"100%\"\n }, /*#__PURE__*/React.createElement(HorizontalStack, {\n gap: \"4\",\n blockAlign: \"center\",\n align: \"space-between\"\n }, /*#__PURE__*/React.createElement(Box, null, children), actions)));\n}\n\nexport { Footer };\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 { Section } from './components/Section/Section.js';\nimport { Dialog } from './components/Dialog/Dialog.js';\nimport { Header } from './components/Header/Header.js';\nimport { Backdrop } from '../Backdrop/Backdrop.js';\nimport { Footer } from './components/Footer/Footer.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Box } from '../Box/Box.js';\nimport { Scrollable } from '../Scrollable/Scrollable.js';\nimport { Portal } from '../Portal/Portal.js';\nimport { HorizontalStack } from '../HorizontalStack/HorizontalStack.js';\nimport { Spinner } from '../Spinner/Spinner.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 fullScreen\n}) {\n const [iframeHeight, setIframeHeight] = useState(IFRAME_LOADING_HEIGHT);\n const [closing, setClosing] = useState(false);\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, {\n titleHidden\n }) : children;\n const body = loading ? /*#__PURE__*/React.createElement(Box, {\n padding: \"4\"\n }, /*#__PURE__*/React.createElement(HorizontalStack, {\n gap: \"4\",\n align: \"center\",\n blockAlign: \"center\"\n }, /*#__PURE__*/React.createElement(Spinner, null))) : content;\n const scrollContainerMarkup = noScroll ? /*#__PURE__*/React.createElement(Box, {\n width: \"100%\",\n overflowX: \"hidden\"\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 fullScreen: fullScreen,\n setClosing: setClosing\n }, /*#__PURE__*/React.createElement(Header, {\n titleHidden: titleHidden,\n id: headerId,\n closing: closing,\n onClose: onClose\n }, title), bodyMarkup, footerMarkup);\n backdrop = /*#__PURE__*/React.createElement(Backdrop, {\n setClosing: setClosing,\n onClick: onClose\n });\n }\n\n const animated = !instant;\n const activatorMarkup = activator && !isRef(activator) ? /*#__PURE__*/React.createElement(Box, {\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","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<boolean> The mounted status\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","var styles = {\n \"ContextualSaveBar\": \"Polaris-Frame-ContextualSaveBar\",\n \"LogoContainer\": \"Polaris-Frame-ContextualSaveBar__LogoContainer\",\n \"ContextControl\": \"Polaris-Frame-ContextualSaveBar__ContextControl\",\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 React from 'react';\nimport { useI18n } from '../../../../../../utilities/i18n/hooks.js';\nimport { Modal } from '../../../../../Modal/Modal.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 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 { Text } from '../../../Text/Text.js';\nimport { LegacyStack } from '../../../LegacyStack/LegacyStack.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(\"div\", {\n className: styles.ContextualSaveBar\n }, contextControlMarkup, logoMarkup, /*#__PURE__*/React.createElement(\"div\", {\n className: contentsClassName\n }, message && /*#__PURE__*/React.createElement(Text, {\n as: \"h2\",\n variant: \"headingMd\",\n color: \"text-inverse\",\n truncate: true\n }, message), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ActionContainer\n }, /*#__PURE__*/React.createElement(LegacyStack, {\n spacing: \"tight\",\n wrap: false\n }, secondaryMenu, discardActionMarkup, saveActionMarkup)))), discardConfirmationModalMarkup);\n}\n\nexport { ContextualSaveBar };\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","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 SvgDiamondAlertMinor = function SvgDiamondAlertMinor(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: \"M11.42 2.588a2.007 2.007 0 0 0-2.84 0l-5.992 5.993a2.007 2.007 0 0 0 0 2.838l5.993 5.993a2.007 2.007 0 0 0 2.838 0l5.993-5.993a2.007 2.007 0 0 0 0-2.838l-5.993-5.993Zm-2.223 4.2a.803.803 0 1 1 1.606 0v3.212a.803.803 0 1 1-1.606 0v-3.211Zm1.606 6.423a.803.803 0 1 1-1.606 0 .803.803 0 0 1 1.606 0Z\"\n }));\n};\n\nexport { SvgDiamondAlertMinor as S };\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 \"LeadingIcon\": \"Polaris-Frame-Toast__LeadingIcon\"\n};\n\nexport { styles as default };\n","import React, { useEffect } from 'react';\nimport { CancelSmallMinor, DiamondAlertMinor } 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 { KeypressListener } from '../../../KeypressListener/KeypressListener.js';\nimport { HorizontalStack } from '../../../HorizontalStack/HorizontalStack.js';\nimport { Text } from '../../../Text/Text.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: CancelSmallMinor\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 size: \"slim\",\n onClick: action.onAction\n }, action.content)) : null;\n const leadingIconMarkup = error ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.LeadingIcon\n }, /*#__PURE__*/React.createElement(Icon, {\n source: DiamondAlertMinor,\n color: \"base\"\n })) : null;\n const className = classNames(styles.Toast, error && styles.error);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(KeypressListener, {\n keyCode: Key.Escape,\n handler: onDismiss\n }), leadingIconMarkup, /*#__PURE__*/React.createElement(HorizontalStack, {\n gap: \"4\",\n blockAlign: \"center\"\n }, /*#__PURE__*/React.createElement(Text, {\n as: \"span\",\n fontWeight: \"medium\"\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 <button onClick={onClick}>Click me</button>;\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 * <div>Times clicked: {timesClicked}</div>\n * <Child onClick={handleClick} />\n * </>\n * );\n * }\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\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 React, { PureComponent, createRef } from 'react';\nimport { MobileCancelMajor } from '@shopify/polaris-icons';\nimport { CSSTransition } from 'react-transition-group';\nimport { motion } from '@shopify/polaris-tokens';\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 { 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(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 { isServer } from '../target.js';\n\nconst SCROLL_LOCKING_ATTRIBUTE = 'data-lock-scrolling';\nconst SCROLL_LOCKING_HIDDEN_ATTRIBUTE = 'data-lock-scrolling-hidden';\nconst SCROLL_LOCKING_WRAPPER_ATTRIBUTE = 'data-lock-scrolling-wrapper';\nlet scrollPosition = 0;\n\nfunction isScrollBarVisible() {\n const {\n body\n } = document;\n return body.scrollHeight > body.clientHeight;\n}\n\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 body.removeAttribute(SCROLL_LOCKING_HIDDEN_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 (!isScrollBarVisible()) {\n body.setAttribute(SCROLL_LOCKING_HIDDEN_ATTRIBUTE, '');\n }\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","// 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 React, { useState, useCallback, useEffect, useMemo } from 'react';\nimport { debounce } from '../../utilities/debounce.js';\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 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, { useRef, useMemo } from 'react';\nimport { useIsAfterInitialMount } from '../../utilities/use-is-after-initial-mount.js';\nimport { PortalsManagerContext } from '../../utilities/portals/context.js';\nimport { PortalsContainer } from './components/PortalsContainer/PortalsContainer.js';\n\nfunction PortalsManager({\n children,\n container\n}) {\n const isMounted = useIsAfterInitialMount();\n const ref = useRef(null);\n const contextValue = useMemo(() => {\n if (container) {\n return {\n container\n };\n } else if (isMounted) {\n return {\n container: ref.current\n };\n } else {\n return {\n container: null\n };\n }\n }, [container, isMounted]);\n return /*#__PURE__*/React.createElement(PortalsManagerContext.Provider, {\n value: contextValue\n }, children, container ? null : /*#__PURE__*/React.createElement(PortalsContainer, {\n ref: ref\n }));\n}\n\nexport { PortalsManager };\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, { useState, useCallback, useMemo } from 'react';\nimport { EphemeralPresenceManagerContext } from '../../utilities/ephemeral-presence-manager/context.js';\n\nconst defaultState = {\n tooltip: 0\n};\nfunction EphemeralPresenceManager({\n children\n}) {\n const [presenceCounter, setPresenceCounter] = useState(defaultState);\n const addPresence = useCallback(key => {\n setPresenceCounter(prevList => ({ ...prevList,\n [key]: prevList[key] + 1\n }));\n }, []);\n const removePresence = useCallback(key => {\n setPresenceCounter(prevList => ({ ...prevList,\n [key]: prevList[key] - 1\n }));\n }, []);\n const value = useMemo(() => ({\n presenceList: Object.entries(presenceCounter).reduce((previousValue, currentValue) => {\n const [key, value] = currentValue;\n return { ...previousValue,\n [key]: value >= 1\n };\n }, {}),\n presenceCounter,\n addPresence,\n removePresence\n }), [addPresence, removePresence, presenceCounter]);\n return /*#__PURE__*/React.createElement(EphemeralPresenceManagerContext.Provider, {\n value: value\n }, children);\n}\n\nexport { EphemeralPresenceManager };\n","import React, { Component } from 'react';\nimport './AppProvider.scss.js';\nimport './global.scss.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';\nimport { EphemeralPresenceManager } from '../EphemeralPresenceManager/EphemeralPresenceManager.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 document.body.style.backgroundColor = 'var(--p-color-bg-app)';\n document.body.style.color = 'var(--p-color-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 i18n: prevI18n,\n linkComponent: prevLinkComponent\n }) {\n const {\n i18n,\n linkComponent\n } = this.props;\n\n if (i18n === prevI18n && linkComponent === prevLinkComponent) {\n return;\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 } = 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(MediaQueryProvider, null, /*#__PURE__*/React.createElement(PortalsManager, null, /*#__PURE__*/React.createElement(FocusManager, null, /*#__PURE__*/React.createElement(EphemeralPresenceManager, null, children))))))))));\n }\n\n}\n\nexport { AppProvider };\n","import React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M10 19a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM9.293 8.707a1 1 0 0 1 1.414-1.414l3 3a1 1 0 0 1 0 1.414l-3 3a1 1 0 0 1-1.414-1.414L10.586 12H7a1 1 0 1 1 0-2h3.586L9.293 8.707z\"\n});\n\nvar SvgLogOutMinor = function SvgLogOutMinor(props) {\n return React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), _ref);\n};\n\nexport { SvgLogOutMinor as S };\n","import React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M1.014 5.836l.61-3.583A1.522 1.522 0 0 1 3.133 1h13.733c.748 0 1.387.53 1.51 1.253l.609 3.583C19.09 6.446 18.61 7 17.979 7h-.91c-.58 0-1.11-.321-1.37-.83L15.103 5l-.597 1.17c-.26.509-.79.83-1.37.83h-1.169c-.58 0-1.11-.321-1.369-.83L10 5l-.597 1.17c-.26.509-.79.83-1.37.83H6.865c-.58 0-1.11-.321-1.369-.83L4.898 5 4.3 6.17c-.259.509-.789.83-1.369.83h-.91c-.63 0-1.11-.555-1.007-1.164zm6.779 2.957a1 1 0 0 0 0 1.414l.793.793H2a1 1 0 1 0 0 2h6.586l-.793.793a1 1 0 0 0 1.414 1.414l2.5-2.5a.998.998 0 0 0 .293-.704v-.006a.997.997 0 0 0-.284-.695l-.01-.01-2.499-2.5a1 1 0 0 0-1.414 0zM18 9h-2v8H4v-2H2v2.5A1.5 1.5 0 0 0 3.5 19h13a1.5 1.5 0 0 0 1.5-1.5V9z\"\n});\n\nvar SvgImportStoreMajor = function SvgImportStoreMajor(props) {\n return React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), _ref);\n};\n\nexport { SvgImportStoreMajor as S };\n","import React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M19.838 5.455a1 1 0 0 0-.432-.369l-9-4a.999.999 0 0 0-.812 0l-9 4A1 1 0 0 0 0 6v14h2V6.65l8-3.556 8 3.556V20h2V6a1 1 0 0 0-.162-.545zM12 8h4v4h-4V8zm-2 2H4v10h6V10zm6 4h-4v6h4v-6z\"\n});\n\nvar SvgInventoryMajor = function SvgInventoryMajor(props) {\n return React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), _ref);\n};\n\nexport { SvgInventoryMajor as S };\n","import React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M0 1.5A1.5 1.5 0 0 1 1.5 0h17A1.5 1.5 0 0 1 20 1.5v6A1.5 1.5 0 0 1 18.5 9h-5.889a1.5 1.5 0 0 1-1.5-1.5V5.111a1.111 1.111 0 1 0-2.222 0V7.5a1.5 1.5 0 0 1-1.5 1.5H1.5A1.5 1.5 0 0 1 0 7.5v-6z\"\n});\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M7 5a3 3 0 0 1 6 0v4.384a.5.5 0 0 0 .356.479l2.695.808a2.5 2.5 0 0 1 1.756 2.748l-.633 4.435A2.5 2.5 0 0 1 14.699 20H6.96a2.5 2.5 0 0 1-2.27-1.452l-2.06-4.464a2.417 2.417 0 0 1-.106-1.777c.21-.607.719-1.16 1.516-1.273 1.035-.148 2.016.191 2.961.82V5zm3-1a1 1 0 0 0-1 1v7.793c0 1.39-1.609 1.921-2.527 1.16-.947-.784-1.59-.987-2.069-.948a.486.486 0 0 0 .042.241l2.06 4.463A.5.5 0 0 0 6.96 18h7.74a.5.5 0 0 0 .494-.43l.633-4.434a.5.5 0 0 0-.35-.55l-2.695-.808A2.5 2.5 0 0 1 11 9.384V5a1 1 0 0 0-1-1z\"\n});\n\nvar SvgBuyButtonMajor = function SvgBuyButtonMajor(props) {\n return React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), _ref, _ref2);\n};\n\nexport { SvgBuyButtonMajor as S };\n","import React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M1 1c0-.552.45-1 1.004-1h1.505c.831 0 1.505.672 1.505 1.5v.56l12.574.908c.877.055 1.52.843 1.397 1.71l-.866 6.034A1.504 1.504 0 0 1 16.63 12H5.014v2h10.043a3.005 3.005 0 0 1 3.011 3c0 1.657-1.348 3-3.01 3a3.005 3.005 0 0 1-2.84-4H6.85a3.005 3.005 0 0 1-2.84 4A3.005 3.005 0 0 1 1 17c0-1.306.838-2.418 2.007-2.83V2H2.004A1.002 1.002 0 0 1 1 1zm4.014 3.064V10h11.18l.727-5.07-11.907-.866zM14.054 17c0-.552.449-1 1.003-1 .554 0 1.004.448 1.004 1s-.45 1-1.004 1a1.002 1.002 0 0 1-1.003-1zM3.007 17c0-.552.45-1 1.004-1s1.003.448 1.003 1-.449 1-1.003 1a1.002 1.002 0 0 1-1.004-1z\"\n});\n\nvar SvgCartMajor = function SvgCartMajor(props) {\n return React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), _ref);\n};\n\nexport { SvgCartMajor as S };\n","import React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M12 1a1 1 0 1 0-2 0v3.586L8.707 3.293a1 1 0 0 0-1.414 1.414l3 3a1 1 0 0 0 1.414 0l3-3a1 1 0 0 0-1.414-1.414L12 4.586V1z\"\n});\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M1 1a1 1 0 0 1 1-1h1.5A1.5 1.5 0 0 1 5 1.5V10h11.133l.877-6.141a1 1 0 1 1 1.98.282l-.939 6.571A1.5 1.5 0 0 1 16.566 12H5v2h10a3 3 0 1 1-2.83 2H6.83A3 3 0 1 1 3 14.17V2H2a1 1 0 0 1-1-1zm13 16a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM3 17a1 1 0 1 1 2 0 1 1 0 0 1-2 0z\"\n});\n\nvar SvgCartDownMajor = function SvgCartDownMajor(props) {\n return React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), _ref, _ref2);\n};\n\nexport { SvgCartDownMajor as S };\n","import React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M19.928 9.629C17.791 4.286 13.681 1.85 9.573 2.064c-4.06.21-7.892 3.002-9.516 7.603L-.061 10l.118.333c1.624 4.601 5.455 7.393 9.516 7.603 4.108.213 8.218-2.222 10.355-7.565l.149-.371-.149-.371zM10 15a5 5 0 1 0 0-10 5 5 0 0 0 0 10z\"\n});\n\nvar _ref2 =\n/*#__PURE__*/\nReact.createElement(\"circle\", {\n cx: 10,\n cy: 10,\n r: 3\n});\n\nvar SvgViewMajor = function SvgViewMajor(props) {\n return React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), _ref, _ref2);\n};\n\nexport { SvgViewMajor as S };\n","import React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M3 3h1V1H2.5A1.5 1.5 0 0 0 1 2.5V4h2V3zm-2 7a4 4 0 0 1 4-4h10a4 4 0 0 1 0 8H5a4 4 0 0 1-4-4zm16-6V3h-1V1h1.5A1.5 1.5 0 0 1 19 2.5V4h-2zm0 13h-1v2h1.5a1.5 1.5 0 0 0 1.5-1.5V16h-2v1zM3 16v1h1v2H2.5A1.5 1.5 0 0 1 1 17.5V16h2zm6 3H6v-2h3v2zm2 0h3v-2h-3v2zM9 3H6V1h3v2zm2 0h3V1h-3v2z\"\n});\n\nvar SvgBuyButtonButtonLayoutMajor = function SvgBuyButtonButtonLayoutMajor(props) {\n return React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), _ref);\n};\n\nexport { SvgBuyButtonButtonLayoutMajor as S };\n","import React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M17.5 1H11v18h6.5a1.5 1.5 0 0 0 1.5-1.5v-15A1.5 1.5 0 0 0 17.5 1zM1 2a1 1 0 0 1 1-1h2v2H3v1H1V2zm1 17a1 1 0 0 1-1-1v-2h2v1h1v2H2zM6 1h3v2H6V1zm3 16H6v2h3v-2zM3 6v3H1V6h2zm0 8v-3H1v3h2z\"\n});\n\nvar SvgSidebarRightMajor = function SvgSidebarRightMajor(props) {\n return React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), _ref);\n};\n\nexport { SvgSidebarRightMajor as S };\n","import React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M5.2 18a.8.8 0 0 1-.792-.914l.743-5.203-2.917-2.917a.8.8 0 0 1 .434-1.355l4.398-.733 2.218-4.435a.8.8 0 0 1 1.435.008l2.123 4.361 4.498.801a.8.8 0 0 1 .425 1.353l-2.917 2.917.744 5.203a.8.8 0 0 1-1.154.828l-4.382-2.22-4.502 2.223A.792.792 0 0 1 5.2 18z\"\n});\n\nvar SvgStarFilledMinor = function SvgStarFilledMinor(props) {\n return React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), _ref);\n};\n\nexport { SvgStarFilledMinor as S };\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial<Path>;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an <a href> attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial<Location>;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation });\n }\n },\n go(delta) {\n action = Action.Pop;\n index = clampIndex(index + delta);\n if (listener) {\n listener({ action, location: getCurrentLocation() });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant<T>(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nfunction warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly<Location> {\n let location: Readonly<Location> = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial<Path>) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial<Path> {\n let parsedPath: Partial<Path> = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport function createClientSideURL(location: Location | string): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n typeof window !== \"undefined\" &&\n typeof window.location !== \"undefined\" &&\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n let href = typeof location === \"string\" ? location : createPath(location);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function handlePop() {\n action = Action.Pop;\n if (listener) {\n listener({ action, location: history.location });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n let historyState = getHistoryState(location);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n let historyState = getHistoryState(location);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location });\n }\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createClientSideURL(\n typeof to === \"string\" ? to : createPath(to)\n );\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\nexport type MutationFormMethod = \"post\" | \"put\" | \"patch\" | \"delete\";\nexport type FormMethod = \"get\" | MutationFormMethod;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\";\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport interface Submission {\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n}\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise<Response> | Response | Promise<any> | any;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise<Response> | Response | Promise<any> | any;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n formData?: Submission[\"formData\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam<Path extends string> =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam<L> | _PathParam<R>\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam<Path extends string> =\n // check if path is just a wildcard\n Path extends \"*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam<Rest>\n : // look for params in the absence of wildcards\n _PathParam<Path>;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey<Segment extends string> =\n // if could not find path params, fallback to `string`\n [PathParam<Segment>] extends [never] ? string : PathParam<Segment>;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params<Key extends string = string> = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch<string, AgnosticDataRouteObject> {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n parentPath: number[] = [],\n allIds: Set<string> = new Set<string>()\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !allIds.has(id),\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n allIds.add(id);\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = { ...route, id };\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n id,\n children: route.children\n ? convertRoutesToDataRoutes(route.children, treePath, allIds)\n : undefined,\n };\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial<Location> | string,\n basename = \"/\"\n): AgnosticRouteMatch<string, RouteObjectType>[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch<string, RouteObjectType>(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta<RouteObjectType>[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch<RouteObjectType>[] = [],\n parentsMeta: RouteMeta<RouteObjectType>[] = [],\n parentPath = \"\"\n): RouteBranch<RouteObjectType>[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta<RouteObjectType> = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch<RouteObjectType>,\n pathname: string\n): AgnosticRouteMatch<ParamKey, RouteObjectType>[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch<ParamKey, RouteObjectType>[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params<ParamKey>,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath<Path extends string>(\n originalPath: Path,\n params: {\n [key in PathParam<Path>]: string;\n } = {} as any\n): string {\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n return path\n .replace(/^:(\\w+)/g, (_, key: PathParam<Path>) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/:(\\w+)/g, (_, key: PathParam<Path>) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return `/${params[key]!}`;\n })\n .replace(/(\\/?)\\*/, (_, prefix, __, str) => {\n const star = \"*\" as PathParam<Path>;\n\n if (params[star] == null) {\n // If no splat was provided, trim the trailing slash _unless_ it's\n // the entire path\n return str === \"/*\" ? \"/\" : \"\";\n }\n\n // Apply the splat\n return `${prefix}${params[star]}`;\n });\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern<Path extends string = string> {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch<ParamKey extends string = string> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(\n pattern: PathPattern<Path> | Path,\n pathname: string\n): PathMatch<ParamKey> | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce<Mutable<Params>>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * @private\n */\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial<Path>\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in <Link to=\"...\"> and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\" element={<Link to=\"..\"}>\n * </Route>\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\">\n * <Route element={<AccountsLayout />}> // <-- Does not contribute\n * <Route index element={<Link to=\"..\"} /> // <-- Does not contribute\n * </Route\n * </Route>\n * </Route>\n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial<Path>;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `<Link to>` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how <a href> works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = <Data>(\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise<any> {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeys: Set<string | number> = new Set<string | number>();\n private controller: AbortController;\n private abortPromise: Promise<void>;\n private unlistenAbortSignal: () => void;\n private subscriber?: (aborted: boolean) => void = undefined;\n data: Record<string, unknown>;\n\n constructor(data: Record<string, unknown>) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n }\n\n private trackPromise(\n key: string | number,\n value: Promise<unknown> | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.pendingKeys.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, null, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string | number,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeys.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n const subscriber = this.subscriber;\n if (error) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n subscriber && subscriber(false);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n subscriber && subscriber(false);\n return data;\n }\n\n subscribe(fn: (aborted: boolean) => void) {\n this.subscriber = fn;\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeys.forEach((v, k) => this.pendingKeys.delete(k));\n let subscriber = this.subscriber;\n subscriber && subscriber(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeys.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport function defer(data: Record<string, unknown>) {\n return new DeferredData(data);\n}\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response throw from an action/loader\n */\nexport function isRouteErrorResponse(e: any): e is ErrorResponse {\n return e instanceof ErrorResponse;\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n createClientSideURL,\n invariant,\n parsePath,\n} from \"./history\";\nimport type {\n DataResult,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n MutationFormMethod,\n} from \"./utils\";\nimport {\n DeferredData,\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record<string, number>,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): void;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To, opts?: RouterNavigateOptions): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterNavigateOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher<TData = any>(key?: string): Fetcher<TData>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key?: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map<string, AbortController>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map<string, DeferredData>;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map<string, Fetcher>;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick<RouterState, \"loaderData\" | \"actionData\" | \"errors\">\n>;\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n basename?: string;\n routes: AgnosticRouteObject[];\n history: History;\n hydrationData?: HydrationState;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record<string, Headers>;\n actionHeaders: Record<string, Headers>;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise<StaticHandlerContext | Response>;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise<any>;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\n/**\n * Options for a navigate() call for a Link navigation\n */\ntype LinkNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n};\n\n/**\n * Options for a navigate() call for a Form navigation\n */\ntype SubmissionNavigateOptions = {\n replace?: boolean;\n state?: any;\n formMethod?: FormMethod;\n formEncType?: FormEncType;\n formData: FormData;\n};\n\n/**\n * Options to pass to navigate() for either a Link or Form navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions =\n | Omit<LinkNavigateOptions, \"replace\">\n | Omit<SubmissionNavigateOptions, \"replace\">;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates<TData = any> = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Loading: {\n state: \"loading\";\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n};\n\nexport type Fetcher<TData = any> =\n FetcherStates<TData>[keyof FetcherStates<TData>];\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Tuple of [key, href, DataRouteMatch, DataRouteMatch[]] for a revalidating\n * fetcher.load()\n */\ntype RevalidatingFetcher = [\n string,\n string,\n AgnosticDataRouteMatch,\n AgnosticDataRouteMatch[]\n];\n\n/**\n * Tuple of [href, DataRouteMatch, DataRouteMatch[]] for an active\n * fetcher.load()\n */\ntype FetchLoadMatch = [\n string,\n AgnosticDataRouteMatch,\n AgnosticDataRouteMatch[]\n];\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set<MutationFormMethod>(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set<FormMethod>(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser;\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(init.routes);\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set<RouterSubscriber>();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record<string, number> | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from <ScrollRestoration /> until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(\n dataRoutes,\n init.history.location,\n init.basename\n );\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n !initialMatches.some((m) => m.route.loader) || init.hydrationData != null;\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidate()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map<string, AbortController>();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map<string, number>();\n // Fetchers that triggered redirect navigations from their actions\n let fetchRedirectIds = new Set<string>();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map<string, FetchLoadMatch>();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map<string, DeferredData>();\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location }) =>\n startNavigation(historyAction, location)\n );\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(newState: Partial<RouterState>): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial<Omit<RouterState, \"action\" | \"location\" | \"navigation\">>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n updateState({\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n // Don't restore on submission navigations\n restoreScrollPosition: state.navigation.formData\n ? false\n : getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset: pendingPreventScrollReset,\n });\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To,\n opts?: RouterNavigateOptions\n ): Promise<void> {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(to, opts);\n\n let location = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n location = {\n ...location,\n ...init.history.encodeLocation(location),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n return await startNavigation(historyAction, location, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise<void> {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(dataRoutes, location, init.basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change\n if (isHashChangeOnly(state.location, location)) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n ...opts.submission,\n };\n loadingNavigation = navigation;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts?: { replace?: boolean }\n ): Promise<HandleActionResult> {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n ...submission,\n };\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n router.basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw new Error(\"defer() is not supported in actions\");\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise<HandleLoadersResult> {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n if (!loadingNavigation) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n };\n loadingNavigation = navigation;\n }\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission\n ? submission\n : loadingNavigation.formMethod &&\n loadingNavigation.formAction &&\n loadingNavigation.formData &&\n loadingNavigation.formEncType\n ? {\n formMethod: loadingNavigation.formMethod,\n formAction: loadingNavigation.formAction,\n formData: loadingNavigation.formData,\n formEncType: loadingNavigation.formEncType,\n }\n : undefined;\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n pendingActionData,\n pendingError,\n fetchLoadMatches\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach(([key]) => {\n let fetcher = state.fetchers.get(key);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach(([key]) =>\n fetchControllers.set(key, pendingNavigationController!)\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n revalidatingFetchers.forEach(([key]) => fetchControllers.delete(key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n await startRedirectNavigation(state, redirect, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n\n return {\n loaderData,\n errors,\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n };\n }\n\n function getFetcher<TData = any>(key: string): Fetcher<TData> {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let matches = matchRoutes(dataRoutes, href, init.basename);\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: href })\n );\n return;\n }\n\n let { path, submission } = normalizeNavigateOptions(href, opts, true);\n let match = getTargetMatch(matches, path);\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, [path, match, matches]);\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n router.basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n ...submission,\n data: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n isFetchActionRedirect: true,\n });\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n invariant(false, \"defer() is not supported in actions\");\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n nextLocation,\n abortController.signal\n );\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(dataRoutes, state.navigation.location, init.basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: actionResult.data,\n ...submission,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n { [match.route.id]: actionResult.data },\n undefined, // No need to send through errors since we short circuit above\n fetchLoadMatches\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter(([staleKey]) => staleKey !== key)\n .forEach(([staleKey]) => {\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(([staleKey]) =>\n fetchControllers.delete(staleKey)\n );\n\n let redirect = findRedirect(results);\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n ...(didAbortFetchLoads ? { fetchers: new Map(state.fetchers) } : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(path, abortController.signal);\n fetchControllers.set(key, abortController);\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n router.basename\n );\n\n // Deferred isn't supported or fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n await startRedirectNavigation(state, result);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n // Check if this an external redirect that goes to a new origin\n if (typeof window?.location !== \"undefined\") {\n let newOrigin = createClientSideURL(redirect.location).origin;\n if (window.location.origin !== newOrigin) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType, formData } = state.navigation;\n if (!submission && formMethod && formAction && formData && formEncType) {\n submission = {\n formMethod,\n formAction,\n formEncType,\n formData,\n };\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n submission &&\n isMutationMethod(submission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...submission,\n formAction: redirect.location,\n },\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: submission ? submission.formMethod : undefined,\n formAction: submission ? submission.formAction : undefined,\n formEncType: submission ? submission.formEncType : undefined,\n formData: submission ? submission.formData : undefined,\n },\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\"loader\", request, match, matches, router.basename)\n ),\n ...fetchersToLoad.map(([, href, match, fetchMatches]) =>\n callLoaderOrAction(\n \"loader\",\n createClientSideRequest(href, request.signal),\n match,\n fetchMatches,\n router.basename\n )\n ),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n request.signal,\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map(([, , match]) => match),\n fetcherResults,\n request.signal,\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): void {\n let doneKeys = [];\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n }\n }\n markFetchersDone(doneKeys);\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the <ScrollRestoration> component\n function enableScrollRestoration(\n positions: Record<string, number>,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || ((location) => location.key);\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered <ScrollRestoration/>\n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: {\n basename?: string;\n }\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(routes);\n let basename = (opts ? opts.basename : null) || \"/\";\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise<StaticHandlerContext | Response> {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise<any> {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n let routeData = [result.actionData, result.loaderData].find((v) => v);\n return Object.values(routeData || {})[0];\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise<Omit<StaticHandlerContext, \"location\" | \"basename\"> | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise<Omit<StaticHandlerContext, \"location\" | \"basename\"> | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n basename,\n true,\n isRouteRequest,\n requestContext\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n throw new Error(\"defer() is not supported in actions\");\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !routeMatch?.route.loader) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter((m) => m.route.loader);\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n basename,\n true,\n isRouteRequest,\n requestContext\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n let executedLoaders = new Set<string>();\n results.forEach((result, i) => {\n executedLoaders.add(matchesToLoad[i].route.id);\n // Can't do anything with these without the Remix side of things, so just\n // cancel them for now\n if (isDeferredResult(result)) {\n result.deferredData.cancel();\n }\n });\n\n // Process and commit output from loaders\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return opts != null && \"formData\" in opts;\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n to: To,\n opts?: RouterNavigateOptions,\n isFetcher = false\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n let path = typeof to === \"string\" ? to : createPath(to);\n\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n // Create a Submission on non-GET navigations\n let submission: Submission | undefined;\n if (opts.formData) {\n submission = {\n formMethod: opts.formMethod || \"get\",\n formAction: stripHashFromPath(path),\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData: opts.formData,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n try {\n let searchParams = convertFormDataToSearchParams(opts.formData);\n // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // any incoming ?index params\n if (\n isFetcher &&\n parsedPath.search &&\n hasNakedIndexQuery(parsedPath.search)\n ) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n } catch (e) {\n return {\n path,\n error: getInternalRouterError(400),\n };\n }\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n pendingActionData?: RouteData,\n pendingError?: RouteData,\n fetchLoadMatches?: Map<string, FetchLoadMatch>\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter(\n (match, index) =>\n match.route.loader != null &&\n (isNewLoader(state.loaderData, state.matches[index], match) ||\n // If this route had a pending deferred cancelled it must be revalidated\n cancelledDeferredRoutes.some((id) => id === match.route.id) ||\n shouldRevalidateLoader(\n state.location,\n state.matches[index],\n submission,\n location,\n match,\n isRevalidationRequired,\n actionResult\n ))\n );\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches &&\n fetchLoadMatches.forEach(([href, match, fetchMatches], key) => {\n // This fetcher was cancelled from a prior action submission - force reload\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push([key, href, match, fetchMatches]);\n } else if (isRevalidationRequired) {\n let shouldRevalidate = shouldRevalidateLoader(\n href,\n match,\n submission,\n href,\n match,\n isRevalidationRequired,\n actionResult\n );\n if (shouldRevalidate) {\n revalidatingFetchers.push([key, href, match, fetchMatches]);\n }\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n currentLocation: string | Location,\n currentMatch: AgnosticDataRouteMatch,\n submission: Submission | undefined,\n location: string | Location,\n match: AgnosticDataRouteMatch,\n isRevalidationRequired: boolean,\n actionResult: DataResult | undefined\n) {\n let currentUrl = createClientSideURL(currentLocation);\n let currentParams = currentMatch.params;\n let nextUrl = createClientSideURL(location);\n let nextParams = match.params;\n\n // This is the default implementation as to when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n // Note that fetchers always provide the same current/next locations so the\n // URL-based checks here don't apply to fetcher shouldRevalidate calls\n let defaultShouldRevalidate =\n isNewRouteInstance(currentMatch, match) ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired;\n\n if (match.route.shouldRevalidate) {\n let routeChoice = match.route.shouldRevalidate({\n currentUrl,\n currentParams,\n nextUrl,\n nextParams,\n ...submission,\n actionResult,\n defaultShouldRevalidate,\n });\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return defaultShouldRevalidate;\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n basename = \"/\",\n isStaticRequest: boolean = false,\n isRouteRequest: boolean = false,\n requestContext?: unknown\n): Promise<DataResult> {\n let resultType;\n let result;\n\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n let onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n try {\n let handler = match.route[type];\n invariant<Function>(\n handler,\n `Could not find the ${type} to run on the \"${match.route.id}\" route`\n );\n\n result = await Promise.race([\n handler({ request, params: match.params, context: requestContext }),\n abortPromise,\n ]);\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n let isAbsolute =\n /^[a-z+]+:\\/\\//i.test(location) || location.startsWith(\"//\");\n\n // Support relative routing in internal redirects\n if (!isAbsolute) {\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(\n (match) => match.pathnameBase\n );\n let resolvedLocation = resolveTo(\n location,\n routePathnames,\n new URL(request.url).pathname\n );\n invariant(\n createPath(resolvedLocation),\n `Unable to resolve redirect location: ${location}`\n );\n\n // Prepend the basename to the redirect location if we have one\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname =\n path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (result instanceof DeferredData) {\n return { type: ResultType.deferred, deferredData: result };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = createClientSideURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType, formData } = submission;\n init.method = formMethod.toUpperCase();\n init.body =\n formEncType === \"application/x-www-form-urlencoded\"\n ? convertFormDataToSearchParams(formData)\n : formData;\n }\n\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n invariant(\n typeof value === \"string\",\n 'File inputs are not supported with encType \"application/x-www-form-urlencoded\", ' +\n 'please use \"multipart/form-data\" instead.'\n );\n searchParams.append(key, value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds?: Map<string, DeferredData>\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record<string, Headers>;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record<string, Headers> = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else if (isDeferredResult(result)) {\n activeDeferreds && activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // TODO: Add statusCode/headers once we wire up streaming in Remix\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map<string, DeferredData>\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let [key, , match] = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n throw new Error(\"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n throw new Error(\"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined) {\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else {\n errorMessage = \"Cannot submit binary form data using GET\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponse(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n return (\n a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod {\n return validRequestMethods.has(method as FormMethod);\n}\n\nfunction isMutationMethod(method?: string): method is MutationFormMethod {\n return validMutationMethods.has(method as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n signal: AbortSignal,\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise<SuccessResult | ErrorResult | undefined> {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n//#endregion\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\nimport * as React from \"react\";\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction isPolyfill(x: any, y: any) {\n return (\n (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y) // eslint-disable-line no-self-compare\n );\n}\n\nconst is: (x: any, y: any) => boolean =\n typeof Object.is === \"function\" ? Object.is : isPolyfill;\n\n// Intentionally not using named imports because Rollup uses dynamic\n// dispatch for CommonJS interop named imports.\nconst { useState, useEffect, useLayoutEffect, useDebugValue } = React;\n\nlet didWarnOld18Alpha = false;\nlet didWarnUncachedGetSnapshot = false;\n\n// Disclaimer: This shim breaks many of the rules of React, and only works\n// because of a very particular set of implementation details and assumptions\n// -- change any one of them and it will break. The most important assumption\n// is that updates are always synchronous, because concurrent rendering is\n// only available in versions of React that also have a built-in\n// useSyncExternalStore API. And we only use this shim when the built-in API\n// does not exist.\n//\n// Do not assume that the clever hacks used by this hook also work in general.\n// The point of this shim is to replace the need for hacks by other libraries.\nexport function useSyncExternalStore<T>(\n subscribe: (fn: () => void) => () => void,\n getSnapshot: () => T,\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n getServerSnapshot?: () => T\n): T {\n if (__DEV__) {\n if (!didWarnOld18Alpha) {\n if (\"startTransition\" in React) {\n didWarnOld18Alpha = true;\n console.error(\n \"You are using an outdated, pre-release alpha of React 18 that \" +\n \"does not support useSyncExternalStore. The \" +\n \"use-sync-external-store shim will not work correctly. Upgrade \" +\n \"to a newer pre-release.\"\n );\n }\n }\n }\n\n // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n const value = getSnapshot();\n if (__DEV__) {\n if (!didWarnUncachedGetSnapshot) {\n const cachedValue = getSnapshot();\n if (!is(value, cachedValue)) {\n console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n );\n didWarnUncachedGetSnapshot = true;\n }\n }\n }\n\n // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n const [{ inst }, forceUpdate] = useState({ inst: { value, getSnapshot } });\n\n // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n useLayoutEffect(() => {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n\n // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe, value, getSnapshot]);\n\n useEffect(() => {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n const handleStoreChange = () => {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n };\n // Subscribe to the store and return a clean-up function.\n return subscribe(handleStoreChange);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe]);\n\n useDebugValue(value);\n return value;\n}\n\nfunction checkIfSnapshotChanged(inst: any) {\n const latestGetSnapshot = inst.getSnapshot;\n const prevValue = inst.value;\n try {\n const nextValue = latestGetSnapshot();\n return !is(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n","/**\n * Inlined into the react-router repo since use-sync-external-store does not\n * provide a UMD-compatible package, so we need this to be able to distribute\n * UMD react-router bundles\n */\n\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 * @flow\n */\n\nimport * as React from \"react\";\n\nimport { useSyncExternalStore as client } from \"./useSyncExternalStoreShimClient\";\nimport { useSyncExternalStore as server } from \"./useSyncExternalStoreShimServer\";\n\nconst canUseDOM: boolean = !!(\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n);\nconst isServerEnvironment = !canUseDOM;\nconst shim = isServerEnvironment ? server : client;\n\nexport const useSyncExternalStore =\n \"useSyncExternalStore\" in React\n ? ((module) => module.useSyncExternalStore)(React)\n : shim;\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch<ParamKey, RouteObjectType> {}\n\nexport interface DataRouteMatch extends RouteMatch<string, DataRouteObject> {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext<DataRouterContextObject | null>(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext<TrackedPromise | null>(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level <Router> API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext<NavigationContextObject>(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext<LocationContextObject>(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext<RouteContextObject>({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext<any>(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n Router as RemixRouter,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n warning,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a <Router> component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a <Router>.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a <Router> component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * <NavLink>.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(pattern: PathPattern<Path> | Path): PathMatch<ParamKey> | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a <Router> component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath<ParamKey, Path>(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by <Link>s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a <Router> component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history. If this is a root navigation, then we\n // navigate to the raw basename which allows the basename to have full\n // control over the presence of a trailing slash on root links\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext<unknown>(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext<Context = unknown>(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by <Outlet> to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n <OutletContext.Provider value={context}>{outlet}</OutletContext.Provider>\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record<string, string | undefined> = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params<ParamsOrKey> : Partial<ParamsOrKey>\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an <Outlet> to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial<Location> | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a <Router> component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let dataRouterStateContext = React.useContext(DataRouterStateContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different <Routes> under a <Route>\n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // <Routes>\n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // <Route path=\"blog\" element={<Blog />} />\n // <Route path=\"blog/feed\" element={<BlogFeed />} />\n // </Routes>\n //\n // function Blog() {\n // return (\n // <Routes>\n // <Route path=\"post/:id\" element={<Post />} />\n // </Routes>\n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant <Routes> (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under <Route path=\"${parentPath}\">) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent <Route path=\"${parentPath}\"> to <Route ` +\n `path=\"${parentPath === \"/\" ? \"*\" : `${parentPath}/*`}\">.`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`<Routes location>\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an <Outlet /> with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterStateContext || undefined\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n <LocationContext.Provider\n value={{\n location: {\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\",\n ...location,\n },\n navigationType: NavigationType.Pop,\n }}\n >\n {renderedMatches}\n </LocationContext.Provider>\n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorElement() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n return (\n <>\n <h2>Unhandled Thrown Error!</h2>\n <h3 style={{ fontStyle: \"italic\" }}>{message}</h3>\n {stack ? <pre style={preStyles}>{stack}</pre> : null}\n <p>💿 Hey developer 👋</p>\n <p>\n You can provide a way better UX than this when your app throws errors by\n providing your own \n <code style={codeStyles}>errorElement</code> props on \n <code style={codeStyles}><Route></code>\n </p>\n </>\n );\n}\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location) {\n return {\n error: props.error,\n location: props.location,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n <RouteContext.Provider value={this.props.routeContext}>\n <RouteErrorContext.Provider\n value={this.state.error}\n children={this.props.component}\n />\n </RouteContext.Provider>\n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch<string, RouteObject>;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n match.route.errorElement\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n <RouteContext.Provider value={routeContext}>\n {children}\n </RouteContext.Provider>\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for the current errors: ${errors}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement = dataRouterState\n ? match.route.errorElement || <DefaultErrorElement />\n : null;\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => (\n <RenderedRoute match={match} routeContext={{ outlet, matches }}>\n {error\n ? errorElement\n : match.route.element !== undefined\n ? match.route.element\n : outlet}\n </RenderedRoute>\n );\n // Only wrap in an error boundary within data router usages when we have an\n // errorElement on this route. Otherwise let it bubble up to an ancestor\n // errorElement\n return dataRouterState && (match.route.errorElement || index === 0) ? (\n <RenderErrorBoundary\n location={dataRouterState.location}\n component={errorElement}\n error={error}\n children={getChildren()}\n routeContext={{ outlet: null, matches }}\n />\n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseRevalidator = \"useRevalidator\",\n}\n\nenum DataRouterStateHook {\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor <Await /> value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor <Await /> value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nconst alreadyWarned: Record<string, boolean> = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n RouterState,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n invariant,\n parsePath,\n stripBasename,\n warning,\n} from \"@remix-run/router\";\nimport { useSyncExternalStore as useSyncExternalStoreShim } from \"./use-sync-external-store-shim\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n}: RouterProviderProps): React.ReactElement {\n // Sync router state to our component state to force re-renders\n let state: RouterState = useSyncExternalStoreShim(\n router.subscribe,\n () => router.state,\n // We have to provide this so React@18 doesn't complain during hydration,\n // but we pass our serialized hydration data into the router so state here\n // is already synced with what the server saw\n () => router.state\n );\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return (\n <>\n <DataRouterContext.Provider\n value={{\n router,\n navigator,\n static: false,\n // Do we need this?\n basename,\n }}\n >\n <DataRouterStateContext.Provider value={state}>\n <Router\n basename={router.basename}\n location={router.state.location}\n navigationType={router.state.historyAction}\n navigator={navigator}\n >\n {router.state.initialized ? <Routes /> : fallbackElement}\n </Router>\n </DataRouterStateContext.Provider>\n </DataRouterContext.Provider>\n {null}\n </>\n );\n}\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A <Router> that stores all entries in memory.\n *\n * @see https://reactrouter.com/router-components/memory-router\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef<MemoryHistory>();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex,\n v5Compat: true,\n });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n relative?: RelativeRoutingType;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/components/navigate\n */\nexport function Navigate({\n to,\n replace,\n state,\n relative,\n}: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n `<Navigate> may be used only in the context of a <Router> component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n `<Navigate> must not be used on the initial render in a <StaticRouter>. ` +\n `This is a no-op, but you should modify your code so the <Navigate> is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let dataRouterState = React.useContext(DataRouterStateContext);\n let navigate = useNavigate();\n\n React.useEffect(() => {\n // Avoid kicking off multiple navigations if we're in the middle of a\n // data-router navigation, since components get re-rendered when we enter\n // a submitting/loading state\n if (dataRouterState && dataRouterState.navigation.state !== \"idle\") {\n return;\n }\n navigate(to, { replace, state, relative });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/components/outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface PathRouteProps {\n caseSensitive?: NonIndexRouteObject[\"caseSensitive\"];\n path?: NonIndexRouteObject[\"path\"];\n id?: NonIndexRouteObject[\"id\"];\n loader?: NonIndexRouteObject[\"loader\"];\n action?: NonIndexRouteObject[\"action\"];\n hasErrorBoundary?: NonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: NonIndexRouteObject[\"shouldRevalidate\"];\n handle?: NonIndexRouteObject[\"handle\"];\n index?: false;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n}\n\nexport interface LayoutRouteProps extends PathRouteProps {}\n\nexport interface IndexRouteProps {\n caseSensitive?: IndexRouteObject[\"caseSensitive\"];\n path?: IndexRouteObject[\"path\"];\n id?: IndexRouteObject[\"id\"];\n loader?: IndexRouteObject[\"loader\"];\n action?: IndexRouteObject[\"action\"];\n hasErrorBoundary?: IndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: IndexRouteObject[\"shouldRevalidate\"];\n handle?: IndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n}\n\nexport type RouteProps = PathRouteProps | LayoutRouteProps | IndexRouteProps;\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/components/route\n */\nexport function Route(_props: RouteProps): React.ReactElement | null {\n invariant(\n false,\n `A <Route> is only ever to be used as the child of <Routes> element, ` +\n `never rendered directly. Please wrap your <Route> in a <Routes>.`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial<Location> | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a <Router> directly. Instead, you'll render a\n * router that is more specific to your environment such as a <BrowserRouter>\n * in web browsers or a <StaticRouter> for server rendering.\n *\n * @see https://reactrouter.com/router-components/router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a <Router> inside another <Router>.` +\n ` You should never have more than one in your app.`\n );\n\n // Preserve trailing slashes on basename, so we can let the user control\n // the enforcement of trailing slashes throughout the app\n let basename = basenameProp.replace(/^\\/*/, \"/\");\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n `<Router basename=\"${basename}\"> is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the <Router> won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n <NavigationContext.Provider value={navigationContext}>\n <LocationContext.Provider\n children={children}\n value={{ location, navigationType }}\n />\n </NavigationContext.Provider>\n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial<Location> | string;\n}\n\n/**\n * A container for a nested tree of <Route> elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/components/routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n let dataRouterContext = React.useContext(DataRouterContext);\n // When in a DataRouterContext _without_ children, we use the router routes\n // directly. If we have children, then we're in a descendant tree and we\n // need to use child routes.\n let routes =\n dataRouterContext && !children\n ? (dataRouterContext.router.routes as DataRouteObject[])\n : createRoutesFromChildren(children);\n return useRoutes(routes, location);\n}\n\nexport interface AwaitResolveRenderFunction {\n (data: Awaited<any>): React.ReactElement;\n}\n\nexport interface AwaitProps {\n children: React.ReactNode | AwaitResolveRenderFunction;\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}\n\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nexport function Await({ children, errorElement, resolve }: AwaitProps) {\n return (\n <AwaitErrorBoundary resolve={resolve} errorElement={errorElement}>\n <ResolveAwait>{children}</ResolveAwait>\n </AwaitErrorBoundary>\n );\n}\n\ntype AwaitErrorBoundaryProps = React.PropsWithChildren<{\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}>;\n\ntype AwaitErrorBoundaryState = {\n error: any;\n};\n\nenum AwaitRenderStatus {\n pending,\n success,\n error,\n}\n\nconst neverSettledPromise = new Promise(() => {});\n\nclass AwaitErrorBoundary extends React.Component<\n AwaitErrorBoundaryProps,\n AwaitErrorBoundaryState\n> {\n constructor(props: AwaitErrorBoundaryProps) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"<Await> caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n let { children, errorElement, resolve } = this.props;\n\n let promise: TrackedPromise | null = null;\n let status: AwaitRenderStatus = AwaitRenderStatus.pending;\n\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - provide as a resolved promise\n status = AwaitRenderStatus.success;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_data\", { get: () => resolve });\n } else if (this.state.error) {\n // Caught a render error, provide it as a rejected promise\n status = AwaitRenderStatus.error;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_error\", { get: () => renderError });\n } else if ((resolve as TrackedPromise)._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status =\n promise._error !== undefined\n ? AwaitRenderStatus.error\n : promise._data !== undefined\n ? AwaitRenderStatus.success\n : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", { get: () => true });\n promise = resolve.then(\n (data: any) =>\n Object.defineProperty(resolve, \"_data\", { get: () => data }),\n (error: any) =>\n Object.defineProperty(resolve, \"_error\", { get: () => error })\n );\n }\n\n if (\n status === AwaitRenderStatus.error &&\n promise._error instanceof AbortedDeferredError\n ) {\n // Freeze the UI by throwing a never resolved promise\n throw neverSettledPromise;\n }\n\n if (status === AwaitRenderStatus.error && !errorElement) {\n // No errorElement, throw to the nearest route-level error boundary\n throw promise._error;\n }\n\n if (status === AwaitRenderStatus.error) {\n // Render via our errorElement\n return <AwaitContext.Provider value={promise} children={errorElement} />;\n }\n\n if (status === AwaitRenderStatus.success) {\n // Render children with resolved value\n return <AwaitContext.Provider value={promise} children={children} />;\n }\n\n // Throw to the suspense boundary\n throw promise;\n }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on <Await>\n */\nfunction ResolveAwait({\n children,\n}: {\n children: React.ReactNode | AwaitResolveRenderFunction;\n}) {\n let data = useAsyncValue();\n if (typeof children === \"function\") {\n return children(data);\n }\n return <>{children}</>;\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/utils/create-routes-from-children\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode,\n parentPath: number[] = []\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element, index) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children, parentPath)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`\n );\n\n invariant(\n !element.props.index || !element.props.children,\n \"An index route cannot have child routes.\"\n );\n\n let treePath = [...parentPath, index];\n let route: RouteObject = {\n id: element.props.id || treePath.join(\"-\"),\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path,\n loader: element.props.loader,\n action: element.props.action,\n errorElement: element.props.errorElement,\n hasErrorBoundary: element.props.errorElement != null,\n shouldRevalidate: element.props.shouldRevalidate,\n handle: element.props.handle,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(\n element.props.children,\n treePath\n );\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n\n/**\n * @private\n * Walk the route tree and add hasErrorBoundary if it's not provided, so that\n * users providing manual route arrays can just specify errorElement\n */\nexport function enhanceManualRouteObjects(\n routes: RouteObject[]\n): RouteObject[] {\n return routes.map((route) => {\n let routeClone = { ...route };\n if (routeClone.hasErrorBoundary == null) {\n routeClone.hasErrorBoundary = routeClone.errorElement != null;\n }\n if (routeClone.children) {\n routeClone.children = enhanceManualRouteObjects(routeClone.children);\n }\n return routeClone;\n });\n}\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type {\n NavigateOptions,\n RelativeRoutingType,\n RouteObject,\n To,\n} from \"react-router\";\nimport {\n Router,\n createPath,\n useHref,\n useLocation,\n useMatches,\n useNavigate,\n useNavigation,\n useResolvedPath,\n UNSAFE_DataRouterContext as DataRouterContext,\n UNSAFE_DataRouterStateContext as DataRouterStateContext,\n UNSAFE_NavigationContext as NavigationContext,\n UNSAFE_RouteContext as RouteContext,\n UNSAFE_enhanceManualRouteObjects as enhanceManualRouteObjects,\n} from \"react-router\";\nimport type {\n BrowserHistory,\n Fetcher,\n FormEncType,\n FormMethod,\n GetScrollRestorationKeyFunction,\n HashHistory,\n History,\n HydrationState,\n Router as RemixRouter,\n} from \"@remix-run/router\";\nimport {\n createRouter,\n createBrowserHistory,\n createHashHistory,\n invariant,\n joinPaths,\n ErrorResponse,\n} from \"@remix-run/router\";\n\nimport type {\n SubmitOptions,\n ParamKeyValuePair,\n URLSearchParamsInit,\n} from \"./dom\";\nimport {\n createSearchParams,\n defaultMethod,\n getFormSubmissionInfo,\n getSearchParamsForLocation,\n shouldProcessLinkClick,\n} from \"./dom\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Re-exports\n////////////////////////////////////////////////////////////////////////////////\n\nexport type {\n FormEncType,\n FormMethod,\n GetScrollRestorationKeyFunction,\n ParamKeyValuePair,\n SubmitOptions,\n URLSearchParamsInit,\n};\nexport { createSearchParams };\n\n// Note: Keep in sync with react-router exports!\nexport type {\n ActionFunction,\n ActionFunctionArgs,\n AwaitProps,\n DataRouteMatch,\n DataRouteObject,\n Fetcher,\n Hash,\n IndexRouteObject,\n IndexRouteProps,\n JsonFunction,\n LayoutRouteProps,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigation,\n Navigator,\n NonIndexRouteObject,\n OutletProps,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n Pathname,\n PathPattern,\n PathRouteProps,\n RedirectFunction,\n RelativeRoutingType,\n RouteMatch,\n RouteObject,\n RouteProps,\n RouterProps,\n RouterProviderProps,\n RoutesProps,\n Search,\n ShouldRevalidateFunction,\n To,\n} from \"react-router\";\nexport {\n AbortedDeferredError,\n Await,\n MemoryRouter,\n Navigate,\n NavigationType,\n Outlet,\n Route,\n Router,\n RouterProvider,\n Routes,\n createMemoryRouter,\n createPath,\n createRoutesFromChildren,\n createRoutesFromElements,\n defer,\n isRouteErrorResponse,\n generatePath,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n renderMatches,\n resolvePath,\n useActionData,\n useAsyncError,\n useAsyncValue,\n useHref,\n useInRouterContext,\n useLoaderData,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useNavigationType,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutes,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_DataRouterContext,\n UNSAFE_DataRouterStateContext,\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n UNSAFE_enhanceManualRouteObjects,\n} from \"react-router\";\n//#endregion\n\ndeclare global {\n var __staticRouterHydrationData: HydrationState | undefined;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Routers\n////////////////////////////////////////////////////////////////////////////////\n\nexport function createBrowserRouter(\n routes: RouteObject[],\n opts?: {\n basename?: string;\n hydrationData?: HydrationState;\n window?: Window;\n }\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n history: createBrowserHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes: enhanceManualRouteObjects(routes),\n }).initialize();\n}\n\nexport function createHashRouter(\n routes: RouteObject[],\n opts?: {\n basename?: string;\n hydrationData?: HydrationState;\n window?: Window;\n }\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n history: createHashHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes: enhanceManualRouteObjects(routes),\n }).initialize();\n}\n\nfunction parseHydrationData(): HydrationState | undefined {\n let state = window?.__staticRouterHydrationData;\n if (state && state.errors) {\n state = {\n ...state,\n errors: deserializeErrors(state.errors),\n };\n }\n return state;\n}\n\nfunction deserializeErrors(\n errors: RemixRouter[\"state\"][\"errors\"]\n): RemixRouter[\"state\"][\"errors\"] {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized: RemixRouter[\"state\"][\"errors\"] = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // serializeErrors in react-router-dom/server.tsx :)\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new ErrorResponse(\n val.status,\n val.statusText,\n val.data,\n val.internal === true\n );\n } else if (val && val.__type === \"Error\") {\n let error = new Error(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Components\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef<BrowserHistory>();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef<HashHistory>();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `<Router>` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nexport interface LinkProps\n extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n function LinkWithRef(\n {\n onClick,\n relative,\n reloadDocument,\n replace,\n state,\n target,\n to,\n preventScrollReset,\n ...rest\n },\n ref\n ) {\n let href = useHref(to, { relative });\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n preventScrollReset,\n relative,\n });\n function handleClick(\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n <a\n {...rest}\n href={href}\n onClick={reloadDocument ? onClick : handleClick}\n ref={ref}\n target={target}\n />\n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit<LinkProps, \"className\" | \"style\" | \"children\"> {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean; isPending: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?:\n | string\n | ((props: {\n isActive: boolean;\n isPending: boolean;\n }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: {\n isActive: boolean;\n isPending: boolean;\n }) => React.CSSProperties | undefined);\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef<HTMLAnchorElement, NavLinkProps>(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let path = useResolvedPath(to, { relative: rest.relative });\n let location = useLocation();\n let routerState = React.useContext(DataRouterStateContext);\n let { navigator } = React.useContext(NavigationContext);\n\n let toPathname = navigator.encodeLocation\n ? navigator.encodeLocation(path).pathname\n : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname =\n routerState && routerState.navigation && routerState.navigation.location\n ? routerState.navigation.location.pathname\n : null;\n\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname\n ? nextLocationPathname.toLowerCase()\n : null;\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let isPending =\n nextLocationPathname != null &&\n (nextLocationPathname === toPathname ||\n (!end &&\n nextLocationPathname.startsWith(toPathname) &&\n nextLocationPathname.charAt(toPathname.length) === \"/\"));\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive, isPending });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for <NavLink />s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [\n classNameProp,\n isActive ? \"active\" : null,\n isPending ? \"pending\" : null,\n ]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\"\n ? styleProp({ isActive, isPending })\n : styleProp;\n\n return (\n <Link\n {...rest}\n aria-current={ariaCurrent}\n className={className}\n ref={ref}\n style={style}\n to={to}\n >\n {typeof children === \"function\"\n ? children({ isActive, isPending })\n : children}\n </Link>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\nexport interface FormProps extends React.FormHTMLAttributes<HTMLFormElement> {\n /**\n * The HTTP verb to use when the form is submit. Supports \"get\", \"post\",\n * \"put\", \"delete\", \"patch\".\n */\n method?: FormMethod;\n\n /**\n * Normal `<form action>` but supports React Router's relative paths.\n */\n action?: string;\n\n /**\n * Forces a full document navigation instead of a fetch.\n */\n reloadDocument?: boolean;\n\n /**\n * Replaces the current entry in the browser history stack when the form\n * navigates. Use this if you don't want the user to be able to click \"back\"\n * to the page with the form on it.\n */\n replace?: boolean;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * A function to call when the form is submitted. If you call\n * `event.preventDefault()` then this form will not do anything.\n */\n onSubmit?: React.FormEventHandler<HTMLFormElement>;\n}\n\n/**\n * A `@remix-run/router`-aware `<form>`. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nexport const Form = React.forwardRef<HTMLFormElement, FormProps>(\n (props, ref) => {\n return <FormImpl {...props} ref={ref} />;\n }\n);\n\nif (__DEV__) {\n Form.displayName = \"Form\";\n}\n\ntype HTMLSubmitEvent = React.BaseSyntheticEvent<\n SubmitEvent,\n Event,\n HTMLFormElement\n>;\n\ntype HTMLFormSubmitter = HTMLButtonElement | HTMLInputElement;\n\ninterface FormImplProps extends FormProps {\n fetcherKey?: string;\n routeId?: string;\n}\n\nconst FormImpl = React.forwardRef<HTMLFormElement, FormImplProps>(\n (\n {\n reloadDocument,\n replace,\n method = defaultMethod,\n action,\n onSubmit,\n fetcherKey,\n routeId,\n relative,\n ...props\n },\n forwardedRef\n ) => {\n let submit = useSubmitImpl(fetcherKey, routeId);\n let formMethod: FormMethod =\n method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let formAction = useFormAction(action, { relative });\n let submitHandler: React.FormEventHandler<HTMLFormElement> = (event) => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n\n let submitter = (event as unknown as HTMLSubmitEvent).nativeEvent\n .submitter as HTMLFormSubmitter | null;\n\n let submitMethod =\n (submitter?.getAttribute(\"formmethod\") as FormMethod | undefined) ||\n method;\n\n submit(submitter || event.currentTarget, {\n method: submitMethod,\n replace,\n relative,\n });\n };\n\n return (\n <form\n ref={forwardedRef}\n method={formMethod}\n action={formAction}\n onSubmit={reloadDocument ? onSubmit : submitHandler}\n {...props}\n />\n );\n }\n);\n\nif (__DEV__) {\n FormImpl.displayName = \"FormImpl\";\n}\n\nexport interface ScrollRestorationProps {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n}\n\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nexport function ScrollRestoration({\n getKey,\n storageKey,\n}: ScrollRestorationProps) {\n useScrollRestoration({ getKey, storageKey });\n return null;\n}\n\nif (__DEV__) {\n ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\n\nenum DataRouterHook {\n UseScrollRestoration = \"useScrollRestoration\",\n UseSubmitImpl = \"useSubmitImpl\",\n UseFetcher = \"useFetcher\",\n}\n\nenum DataRouterStateHook {\n UseFetchers = \"useFetchers\",\n UseScrollRestoration = \"useScrollRestoration\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\n/**\n * Handles the click behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same click behavior we\n * use in our exported `<Link>`.\n */\nexport function useLinkClickHandler<E extends Element = HTMLAnchorElement>(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n } = {}\n): (event: React.MouseEvent<E, MouseEvent>) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, { relative });\n\n return React.useCallback(\n (event: React.MouseEvent<E, MouseEvent>) => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular <a> will do a replace instead of\n // a push, so do the same here unless the replace prop is explicitly set\n let replace =\n replaceProp !== undefined\n ? replaceProp\n : createPath(location) === createPath(path);\n\n navigate(to, { replace, state, preventScrollReset, relative });\n }\n },\n [\n location,\n navigate,\n path,\n replaceProp,\n state,\n target,\n to,\n preventScrollReset,\n relative,\n ]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(\n defaultInit?: URLSearchParamsInit\n): [URLSearchParams, SetURLSearchParams] {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(\n () =>\n getSearchParamsForLocation(\n location.search,\n defaultSearchParamsRef.current\n ),\n [location.search]\n );\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback<SetURLSearchParams>(\n (nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(\n typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit\n );\n navigate(\"?\" + newSearchParams, navigateOptions);\n },\n [navigate, searchParams]\n );\n\n return [searchParams, setSearchParams];\n}\n\ntype SetURLSearchParams = (\n nextInit?:\n | URLSearchParamsInit\n | ((prev: URLSearchParams) => URLSearchParamsInit),\n navigateOpts?: NavigateOptions\n) => void;\n\ntype SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | { [name: string]: string }\n | null;\n\n/**\n * Submits a HTML `<form>` to the server without reloading the page.\n */\nexport interface SubmitFunction {\n (\n /**\n * Specifies the `<form>` to be submitted to the server, a specific\n * `<button>` or `<input type=\"submit\">` to use to submit the form, or some\n * arbitrary data to submit.\n *\n * Note: When using a `<button>` its `name` and `value` will also be\n * included in the form data that is submitted.\n */\n target: SubmitTarget,\n\n /**\n * Options that override the `<form>`'s own attributes. Required when\n * submitting arbitrary data without a backing `<form>`.\n */\n options?: SubmitOptions\n ): void;\n}\n\n/**\n * Returns a function that may be used to programmatically submit a form (or\n * some arbitrary data) to the server.\n */\nexport function useSubmit(): SubmitFunction {\n return useSubmitImpl();\n}\n\nfunction useSubmitImpl(fetcherKey?: string, routeId?: string): SubmitFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseSubmitImpl);\n let defaultAction = useFormAction();\n\n return React.useCallback(\n (target, options = {}) => {\n if (typeof document === \"undefined\") {\n throw new Error(\n \"You are calling submit during the server render. \" +\n \"Try calling submit within a `useEffect` or callback instead.\"\n );\n }\n\n let { method, encType, formData, url } = getFormSubmissionInfo(\n target,\n defaultAction,\n options\n );\n\n let href = url.pathname + url.search;\n let opts = {\n replace: options.replace,\n formData,\n formMethod: method as FormMethod,\n formEncType: encType as FormEncType,\n };\n if (fetcherKey) {\n invariant(routeId != null, \"No routeId available for useFetcher()\");\n router.fetch(fetcherKey, routeId, href, opts);\n } else {\n router.navigate(href, opts);\n }\n },\n [defaultAction, router, fetcherKey, routeId]\n );\n}\n\nexport function useFormAction(\n action?: string,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n let { basename } = React.useContext(NavigationContext);\n let routeContext = React.useContext(RouteContext);\n invariant(routeContext, \"useFormAction must be used inside a RouteContext\");\n\n let [match] = routeContext.matches.slice(-1);\n // Shallow clone path so we can modify it below, otherwise we modify the\n // object referenced by useMemo inside useResolvedPath\n let path = { ...useResolvedPath(action ? action : \".\", { relative }) };\n\n // Previously we set the default action to \".\". The problem with this is that\n // `useResolvedPath(\".\")` excludes search params and the hash of the resolved\n // URL. This is the intended behavior of when \".\" is specifically provided as\n // the form action, but inconsistent w/ browsers when the action is omitted.\n // https://github.com/remix-run/remix/issues/927\n let location = useLocation();\n if (action == null) {\n // Safe to write to these directly here since if action was undefined, we\n // would have called useResolvedPath(\".\") which will never include a search\n // or hash\n path.search = location.search;\n path.hash = location.hash;\n\n // When grabbing search params from the URL, remove the automatically\n // inserted ?index param so we match the useResolvedPath search behavior\n // which would not include ?index\n if (match.route.index) {\n let params = new URLSearchParams(path.search);\n params.delete(\"index\");\n path.search = params.toString() ? `?${params.toString()}` : \"\";\n }\n }\n\n if ((!action || action === \".\") && match.route.index) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the form action. If this is a root navigation, then just use\n // the raw basename which allows the basename to have full control over the\n // presence of a trailing slash on root actions\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\nfunction createFetcherForm(fetcherKey: string, routeId: string) {\n let FetcherForm = React.forwardRef<HTMLFormElement, FormProps>(\n (props, ref) => {\n return (\n <FormImpl\n {...props}\n ref={ref}\n fetcherKey={fetcherKey}\n routeId={routeId}\n />\n );\n }\n );\n if (__DEV__) {\n FetcherForm.displayName = \"fetcher.Form\";\n }\n return FetcherForm;\n}\n\nlet fetcherId = 0;\n\nexport type FetcherWithComponents<TData> = Fetcher<TData> & {\n Form: ReturnType<typeof createFetcherForm>;\n submit: (\n target: SubmitTarget,\n // Fetchers cannot replace because they are not navigation events\n options?: Omit<SubmitOptions, \"replace\">\n ) => void;\n load: (href: string) => void;\n};\n\n/**\n * Interacts with route loaders and actions without causing a navigation. Great\n * for any interaction that stays on the same page.\n */\nexport function useFetcher<TData = any>(): FetcherWithComponents<TData> {\n let { router } = useDataRouterContext(DataRouterHook.UseFetcher);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useFetcher must be used inside a RouteContext`);\n\n let routeId = route.matches[route.matches.length - 1]?.route.id;\n invariant(\n routeId != null,\n `useFetcher can only be used on routes that contain a unique \"id\"`\n );\n\n let [fetcherKey] = React.useState(() => String(++fetcherId));\n let [Form] = React.useState(() => {\n invariant(routeId, `No routeId available for fetcher.Form()`);\n return createFetcherForm(fetcherKey, routeId);\n });\n let [load] = React.useState(() => (href: string) => {\n invariant(router, \"No router available for fetcher.load()\");\n invariant(routeId, \"No routeId available for fetcher.load()\");\n router.fetch(fetcherKey, routeId, href);\n });\n let submit = useSubmitImpl(fetcherKey, routeId);\n\n let fetcher = router.getFetcher<TData>(fetcherKey);\n\n let fetcherWithComponents = React.useMemo(\n () => ({\n Form,\n submit,\n load,\n ...fetcher,\n }),\n [fetcher, Form, submit, load]\n );\n\n React.useEffect(() => {\n // Is this busted when the React team gets real weird and calls effects\n // twice on mount? We really just need to garbage collect here when this\n // fetcher is no longer around.\n return () => {\n if (!router) {\n console.warn(`No fetcher available to clean up from useFetcher()`);\n return;\n }\n router.deleteFetcher(fetcherKey);\n };\n }, [router, fetcherKey]);\n\n return fetcherWithComponents;\n}\n\n/**\n * Provides all fetchers currently on the page. Useful for layouts and parent\n * routes that need to provide pending/optimistic UI regarding the fetch.\n */\nexport function useFetchers(): Fetcher[] {\n let state = useDataRouterState(DataRouterStateHook.UseFetchers);\n return [...state.fetchers.values()];\n}\n\nconst SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nlet savedScrollPositions: Record<string, number> = {};\n\n/**\n * When rendered inside a RouterProvider, will restore scroll positions on navigations\n */\nfunction useScrollRestoration({\n getKey,\n storageKey,\n}: {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n} = {}) {\n let { router } = useDataRouterContext(DataRouterHook.UseScrollRestoration);\n let { restoreScrollPosition, preventScrollReset } = useDataRouterState(\n DataRouterStateHook.UseScrollRestoration\n );\n let location = useLocation();\n let matches = useMatches();\n let navigation = useNavigation();\n\n // Trigger manual scroll restoration while we're active\n React.useEffect(() => {\n window.history.scrollRestoration = \"manual\";\n return () => {\n window.history.scrollRestoration = \"auto\";\n };\n }, []);\n\n // Save positions on unload\n useBeforeUnload(\n React.useCallback(() => {\n if (navigation.state === \"idle\") {\n let key = (getKey ? getKey(location, matches) : null) || location.key;\n savedScrollPositions[key] = window.scrollY;\n }\n sessionStorage.setItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY,\n JSON.stringify(savedScrollPositions)\n );\n window.history.scrollRestoration = \"auto\";\n }, [storageKey, getKey, navigation.state, location, matches])\n );\n\n // Read in any saved scroll locations\n if (typeof document !== \"undefined\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n try {\n let sessionPositions = sessionStorage.getItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY\n );\n if (sessionPositions) {\n savedScrollPositions = JSON.parse(sessionPositions);\n }\n } catch (e) {\n // no-op, use default empty object\n }\n }, [storageKey]);\n\n // Enable scroll restoration in the router\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n let disableScrollRestoration = router?.enableScrollRestoration(\n savedScrollPositions,\n () => window.scrollY,\n getKey\n );\n return () => disableScrollRestoration && disableScrollRestoration();\n }, [router, getKey]);\n\n // Restore scrolling when state.restoreScrollPosition changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n // Explicit false means don't do anything (used for submissions)\n if (restoreScrollPosition === false) {\n return;\n }\n\n // been here before, scroll to it\n if (typeof restoreScrollPosition === \"number\") {\n window.scrollTo(0, restoreScrollPosition);\n return;\n }\n\n // try to scroll to the hash\n if (location.hash) {\n let el = document.getElementById(location.hash.slice(1));\n if (el) {\n el.scrollIntoView();\n return;\n }\n }\n\n // Opt out of scroll reset if this link requested it\n if (preventScrollReset === true) {\n return;\n }\n\n // otherwise go to the top on new locations\n window.scrollTo(0, 0);\n }, [location, restoreScrollPosition, preventScrollReset]);\n }\n}\n\n/**\n * Setup a callback to be fired on the window's `beforeunload` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nexport function useBeforeUnload(\n callback: (event: BeforeUnloadEvent) => any\n): void {\n React.useEffect(() => {\n window.addEventListener(\"beforeunload\", callback);\n return () => {\n window.removeEventListener(\"beforeunload\", callback);\n };\n }, [callback]);\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Utils\n////////////////////////////////////////////////////////////////////////////////\n\nfunction warning(cond: boolean, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n//#endregion\n\nexport { useScrollRestoration as UNSAFE_useScrollRestoration };\n","import type { FormEncType, FormMethod } from \"@remix-run/router\";\nimport type { RelativeRoutingType } from \"react-router\";\n\nexport const defaultMethod = \"get\";\nconst defaultEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\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}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record<string, string | string[]>\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams\n) {\n let searchParams = createSearchParams(locationSearch);\n\n for (let key of defaultSearchParams.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n}\n\nexport interface SubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides `<form method>`.\n * Defaults to \"GET\".\n */\n method?: FormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides `<form action>`.\n * Defaults to the path of the current route.\n *\n * Note: It is assumed the path is already resolved. If you need to resolve a\n * relative path, use `useFormAction`.\n */\n action?: string;\n\n /**\n * The action URL used to submit the form. Overrides `<form encType>`.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n}\n\nexport function getFormSubmissionInfo(\n target:\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | { [name: string]: string }\n | null,\n defaultAction: string,\n options: SubmitOptions\n): {\n url: URL;\n method: string;\n encType: string;\n formData: FormData;\n} {\n let method: string;\n let action: string;\n let encType: string;\n let formData: FormData;\n\n if (isFormElement(target)) {\n let submissionTrigger: HTMLButtonElement | HTMLInputElement = (\n options as any\n ).submissionTrigger;\n\n method = options.method || target.getAttribute(\"method\") || defaultMethod;\n action = options.action || target.getAttribute(\"action\") || defaultAction;\n encType =\n options.encType || target.getAttribute(\"enctype\") || defaultEncType;\n\n formData = new FormData(target);\n\n if (submissionTrigger && submissionTrigger.name) {\n formData.append(submissionTrigger.name, submissionTrigger.value);\n }\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a <button> or <input type=\"submit\"> without a <form>`\n );\n }\n\n // <button>/<input type=\"submit\"> may override attributes of <form>\n\n method =\n options.method ||\n target.getAttribute(\"formmethod\") ||\n form.getAttribute(\"method\") ||\n defaultMethod;\n action =\n options.action ||\n target.getAttribute(\"formaction\") ||\n form.getAttribute(\"action\") ||\n defaultAction;\n encType =\n options.encType ||\n target.getAttribute(\"formenctype\") ||\n form.getAttribute(\"enctype\") ||\n defaultEncType;\n\n formData = new FormData(form);\n\n // Include name + value from a <button>, appending in case the button name\n // matches an existing input name\n if (target.name) {\n formData.append(target.name, target.value);\n }\n } else if (isHtmlElement(target)) {\n throw new Error(\n `Cannot submit element that is not <form>, <button>, or ` +\n `<input type=\"submit|image\">`\n );\n } else {\n method = options.method || defaultMethod;\n action = options.action || defaultAction;\n encType = options.encType || defaultEncType;\n\n if (target instanceof FormData) {\n formData = target;\n } else {\n formData = new FormData();\n\n if (target instanceof URLSearchParams) {\n for (let [name, value] of target) {\n formData.append(name, value);\n }\n } else if (target != null) {\n for (let name of Object.keys(target)) {\n formData.append(name, target[name]);\n }\n }\n }\n }\n\n let { protocol, host } = window.location;\n let url = new URL(action, `${protocol}//${host}`);\n\n return { url, method: method.toLowerCase(), encType, formData };\n}\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","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 \"BulkActionsWrapperSticky\": \"Polaris-ResourceList__BulkActionsWrapperSticky\",\n \"SelectAllActionsWrapper\": \"Polaris-ResourceList__SelectAllActionsWrapper\",\n \"CheckableButtonWrapper\": \"Polaris-ResourceList__CheckableButtonWrapper\",\n \"SelectButtonWrapper\": \"Polaris-ResourceList__SelectButtonWrapper\",\n \"EmptySearchResultWrapper\": \"Polaris-ResourceList__EmptySearchResultWrapper\",\n \"ResourceListWrapper\": \"Polaris-ResourceList__ResourceListWrapper\",\n \"ResourceListWrapperWithBulkActions\": \"Polaris-ResourceList__ResourceListWrapperWithBulkActions\",\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 \"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","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","var styles = {\n \"InlineError\": \"Polaris-InlineError\",\n \"Icon\": \"Polaris-InlineError__Icon\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { DiamondAlertMinor } 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: DiamondAlertMinor\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';\nimport { Text } from '../Text/Text.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 }, /*#__PURE__*/React.createElement(Text, {\n as: \"span\",\n color: \"subdued\",\n breakWord: true\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","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';\nimport { Box } from '../Box/Box.js';\nimport { Text } from '../Text/Text.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(Box, {\n paddingInlineEnd: \"1\"\n }, /*#__PURE__*/React.createElement(Text, {\n as: \"span\",\n color: \"subdued\",\n truncate: true\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","var styles = {\n \"ResourceItem\": \"Polaris-ResourceItem\",\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 \"selectable\": \"Polaris-ResourceItem--selectable\",\n \"selectMode\": \"Polaris-ResourceItem--selectMode\",\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","var styles = {\n \"Bleed\": \"Polaris-Bleed\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { getResponsiveProps, sanitizeCustomProperties } from '../../utilities/css.js';\nimport styles from './Bleed.scss.js';\n\nconst Bleed = ({\n marginInline,\n marginBlock,\n marginBlockStart,\n marginBlockEnd,\n marginInlineStart,\n marginInlineEnd,\n children\n}) => {\n const getNegativeMargins = direction => {\n const xAxis = ['marginInlineStart', 'marginInlineEnd'];\n const yAxis = ['marginBlockStart', 'marginBlockEnd'];\n const directionValues = {\n marginBlockStart,\n marginBlockEnd,\n marginInlineStart,\n marginInlineEnd,\n marginInline,\n marginBlock\n };\n\n if (directionValues[direction]) {\n return directionValues[direction];\n } else if (xAxis.includes(direction) && marginInline) {\n return directionValues.marginInline;\n } else if (yAxis.includes(direction) && marginBlock) {\n return directionValues.marginBlock;\n }\n };\n\n const negativeMarginBlockStart = getNegativeMargins('marginBlockStart');\n const negativeMarginBlockEnd = getNegativeMargins('marginBlockEnd');\n const negativeMarginInlineStart = getNegativeMargins('marginInlineStart');\n const negativeMarginInlineEnd = getNegativeMargins('marginInlineEnd');\n const style = { ...getResponsiveProps('bleed', 'margin-block-start', 'space', negativeMarginBlockStart),\n ...getResponsiveProps('bleed', 'margin-block-end', 'space', negativeMarginBlockEnd),\n ...getResponsiveProps('bleed', 'margin-inline-start', 'space', negativeMarginInlineStart),\n ...getResponsiveProps('bleed', 'margin-inline-end', 'space', negativeMarginInlineEnd)\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Bleed,\n style: sanitizeCustomProperties(style)\n }, children);\n};\n\nexport { Bleed };\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 \"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 { Text } from '../Text/Text.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 }, /*#__PURE__*/React.createElement(\"span\", null, label)));\n const helpTextMarkup = helpText ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.HelpText,\n id: helpTextID(id)\n }, /*#__PURE__*/React.createElement(Text, {\n as: \"span\",\n color: \"subdued\"\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, 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 { 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 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 };\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']);\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 \"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","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 \"noWrap\": \"Polaris-ButtonGroup--noWrap\"\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 noWrap\n}) {\n const className = classNames(styles.ButtonGroup, spacing && styles[spacing], segmented && styles.segmented, fullWidth && styles.fullWidth, noWrap && styles.noWrap);\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 \"data-buttongroup-no-wrap\": noWrap\n }, contents);\n}\n\nexport { ButtonGroup };\n","import React, { useContext, Component, createRef } from 'react';\nimport { HorizontalDotsMinor } from '@shopify/polaris-icons';\nimport isEqual from 'react-fast-compare';\nimport { useBreakpoints } from '../../utilities/breakpoints.js';\nimport { classNames } 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 { Bleed } from '../Bleed/Bleed.js';\nimport { Box } from '../Box/Box.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 { HorizontalGrid } from '../HorizontalGrid/HorizontalGrid.js';\nimport { HorizontalStack } from '../HorizontalStack/HorizontalStack.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 hasBulkActions,\n loading,\n resourceName\n },\n i18n,\n verticalAlignment,\n dataHref,\n breakpoints\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\n if (selectable) {\n const checkboxAccessibilityLabel = name || accessibilityLabel || i18n.translate('Polaris.Common.checkbox');\n handleMarkup = /*#__PURE__*/React.createElement(\"div\", {\n onClick: this.handleLargerSelectionArea\n }, /*#__PURE__*/React.createElement(Bleed, {\n marginBlock: \"2\",\n marginInline: \"3\"\n }, /*#__PURE__*/React.createElement(Box, {\n zIndex: \"var(--pc-resource-item-content-stacking-order)\",\n paddingInlineStart: \"3\",\n paddingInlineEnd: \"3\",\n paddingBlockStart: \"3\",\n paddingBlockEnd: \"2\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n onClick: stopPropagation\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(HorizontalStack, {\n gap: \"4\",\n blockAlign: media && selectable ? 'center' : getAlignment(verticalAlignment)\n }, handleMarkup, media);\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, hasBulkActions && styles.hasBulkActions);\n let actionsMarkup = null;\n let disclosureMarkup = null;\n\n if (shortcutActions && !loading) {\n if (persistActions) {\n actionsMarkup = breakpoints !== null && breakpoints !== void 0 && breakpoints.lgUp ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Actions,\n onClick: stopPropagation\n }, /*#__PURE__*/React.createElement(ButtonGroup, null, buttonsFrom(shortcutActions, {\n plain: true\n }))) : null;\n const disclosureAccessibilityLabel = name ? i18n.translate('Polaris.ResourceList.Item.actionsDropdownLabel', {\n accessibilityLabel: name\n }) : i18n.translate('Polaris.ResourceList.Item.actionsDropdown');\n disclosureMarkup = !selectMode && breakpoints !== null && breakpoints !== void 0 && breakpoints.lgDown ? /*#__PURE__*/React.createElement(\"div\", {\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 }))) : null;\n } else if (breakpoints !== null && breakpoints !== void 0 && breakpoints.lgUp) {\n actionsMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Actions,\n onClick: stopPropagation\n }, /*#__PURE__*/React.createElement(Box, {\n position: \"absolute\",\n insetBlockStart: \"4\",\n insetInlineEnd: \"5\"\n }, /*#__PURE__*/React.createElement(ButtonGroup, {\n segmented: true\n }, buttonsFrom(shortcutActions, {\n size: 'slim'\n }))));\n }\n }\n\n const containerMarkup = /*#__PURE__*/React.createElement(Box, {\n id: this.props.id,\n position: \"relative\",\n padding: \"3\",\n paddingInlineStart: {\n xs: '4',\n sm: '5'\n },\n paddingInlineEnd: {\n xs: '4',\n sm: '5'\n },\n zIndex: \"var(--pc-resource-item-content-stacking-order)\"\n }, /*#__PURE__*/React.createElement(HorizontalGrid, {\n columns: {\n xs: '1fr auto'\n }\n }, /*#__PURE__*/React.createElement(HorizontalGrid, {\n columns: {\n xs: media || selectable ? 'auto 1fr' : '1fr'\n },\n gap: \"5\"\n }, ownedMarkup, /*#__PURE__*/React.createElement(HorizontalStack, {\n gap: \"4\",\n blockAlign: getAlignment(verticalAlignment)\n }, /*#__PURE__*/React.createElement(Box, {\n width: \"100%\",\n padding: \"0\",\n paddingInlineStart: \"0\",\n paddingInlineEnd: \"0\"\n }, children))), 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 const breakpoints = useBreakpoints();\n return /*#__PURE__*/React.createElement(BaseResourceItem, Object.assign({}, props, {\n breakpoints: breakpoints,\n context: useContext(ResourceListContext),\n i18n: useI18n()\n }));\n}\n\nfunction getAlignment(alignment) {\n switch (alignment) {\n case 'leading':\n return 'start';\n\n case 'trailing':\n return 'end';\n\n case 'center':\n return 'center';\n\n case 'fill':\n return 'stretch';\n\n case 'baseline':\n return 'baseline';\n\n default:\n return 'start';\n }\n}\n\nexport { ResourceItem };\n","import { useState, useRef, useCallback, useEffect } from 'react';\nimport { debounce } from '../../../utilities/debounce.js';\n\nconst DEBOUNCE_PERIOD = 250;\nconst PADDING_IN_SELECT_MODE = 92;\nfunction useIsBulkActionsSticky(selectMode) {\n const hasIOSupport = typeof window !== 'undefined' && Boolean(window.IntersectionObserver);\n const [isBulkActionsSticky, setIsSticky] = useState(false);\n const [bulkActionsAbsoluteOffset, setBulkActionsAbsoluteOffset] = useState(0);\n const [bulkActionsMaxWidth, setBulkActionsMaxWidth] = useState(0);\n const [bulkActionsOffsetLeft, setBulkActionsOffsetLeft] = useState(0);\n const bulkActionsIntersectionRef = useRef(null);\n const tableMeasurerRef = useRef(null);\n\n const handleIntersect = entries => {\n entries.forEach(entry => {\n setIsSticky(!entry.isIntersecting);\n });\n };\n\n const options = {\n root: null,\n rootMargin: '-12px',\n threshold: 0\n };\n const observerRef = useRef(hasIOSupport ? new IntersectionObserver(handleIntersect, options) : null);\n const computeTableDimensions = useCallback(() => {\n const node = tableMeasurerRef.current;\n\n if (!node) {\n return {\n maxWidth: 0,\n offsetHeight: 0,\n offsetLeft: 0\n };\n }\n\n const box = node.getBoundingClientRect();\n const paddingHeight = selectMode ? PADDING_IN_SELECT_MODE : 0;\n const offsetHeight = box.height - paddingHeight;\n const maxWidth = box.width;\n const offsetLeft = box.left;\n setBulkActionsAbsoluteOffset(offsetHeight);\n setBulkActionsMaxWidth(maxWidth);\n setBulkActionsOffsetLeft(offsetLeft);\n }, [selectMode]);\n useEffect(() => {\n computeTableDimensions();\n const debouncedComputeTableHeight = debounce(computeTableDimensions, DEBOUNCE_PERIOD, {\n trailing: true\n });\n window.addEventListener('resize', debouncedComputeTableHeight);\n return () => window.removeEventListener('resize', debouncedComputeTableHeight);\n }, [computeTableDimensions]);\n useEffect(() => {\n const observer = observerRef.current;\n\n if (!observer) {\n return;\n }\n\n const node = bulkActionsIntersectionRef.current;\n\n if (node) {\n observer.observe(node);\n }\n\n return () => {\n observer === null || observer === void 0 ? void 0 : observer.disconnect();\n };\n }, [bulkActionsIntersectionRef]);\n return {\n bulkActionsIntersectionRef,\n tableMeasurerRef,\n isBulkActionsSticky,\n bulkActionsAbsoluteOffset,\n bulkActionsMaxWidth,\n bulkActionsOffsetLeft,\n computeTableDimensions\n };\n}\n\nexport { useIsBulkActionsSticky };\n","var styles = {\n \"SelectAllActions\": \"Polaris-SelectAllActions\",\n \"SelectAllActions-entering\": \"Polaris-SelectAllActions__SelectAllActions--entering\",\n \"SelectAllActions-exiting\": \"Polaris-SelectAllActions__SelectAllActions--exiting\",\n \"SelectAllActions-entered\": \"Polaris-SelectAllActions__SelectAllActions--entered\",\n \"SelectAllActions-exited\": \"Polaris-SelectAllActions__SelectAllActions--exited\",\n \"PaginatedSelectAll\": \"Polaris-SelectAllActions__PaginatedSelectAll\",\n \"AllAction\": \"Polaris-SelectAllActions__AllAction\"\n};\n\nexport { styles as default };\n","var styles = {\n \"CheckableButton\": \"Polaris-CheckableButton\",\n \"Checkbox\": \"Polaris-CheckableButton__Checkbox\",\n \"Label\": \"Polaris-CheckableButton__Label\"\n};\n\nexport { styles as default };\n","import React, { forwardRef, useRef, useImperativeHandle } from 'react';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './CheckableButton.scss.js';\nimport { Checkbox } from '../Checkbox/Checkbox.js';\n\nconst CheckableButton = /*#__PURE__*/forwardRef(function CheckableButton({\n accessibilityLabel,\n label = '',\n onToggleAll,\n selected,\n disabled,\n ariaLive\n}, ref) {\n const checkBoxRef = useRef(null);\n\n function focus() {\n var _checkBoxRef$current;\n\n checkBoxRef === null || checkBoxRef === void 0 ? void 0 : (_checkBoxRef$current = checkBoxRef.current) === null || _checkBoxRef$current === void 0 ? void 0 : _checkBoxRef$current.focus();\n }\n\n useImperativeHandle(ref, () => {\n return {\n focus\n };\n });\n const className = classNames(styles.CheckableButton);\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 \"aria-live\": ariaLive\n }, label));\n});\n\nexport { CheckableButton };\n","import React, { forwardRef } from 'react';\nimport { Transition } from 'react-transition-group';\nimport { classNames } from '../../utilities/css.js';\nimport styles from './SelectAllActions.scss.js';\nimport { CheckableButton } from '../CheckableButton/CheckableButton.js';\nimport { UnstyledButton } from '../UnstyledButton/UnstyledButton.js';\n\nconst SelectAllActions = /*#__PURE__*/forwardRef(function SelectAllActions({\n accessibilityLabel,\n label,\n selected,\n selectMode,\n paginatedSelectAllText,\n paginatedSelectAllAction,\n disabled,\n onToggleAll\n}, ref) {\n const paginatedSelectAllActionMarkup = paginatedSelectAllAction ? /*#__PURE__*/React.createElement(UnstyledButton, {\n className: styles.AllAction,\n onClick: paginatedSelectAllAction.onAction,\n size: \"slim\",\n disabled: disabled\n }, paginatedSelectAllAction.content) : null;\n const hasTextAndAction = paginatedSelectAllText && paginatedSelectAllAction;\n const paginatedSelectAllMarkup = paginatedSelectAllActionMarkup ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.PaginatedSelectAll\n }, paginatedSelectAllActionMarkup) : null;\n const ariaLive = hasTextAndAction ? 'polite' : undefined;\n const checkableButtonProps = {\n accessibilityLabel,\n label: hasTextAndAction ? paginatedSelectAllText : label,\n selected,\n onToggleAll,\n disabled,\n ariaLive,\n ref\n };\n const markup = /*#__PURE__*/React.createElement(Transition, {\n timeout: 0,\n in: selectMode,\n key: \"markup\"\n }, status => {\n const wrapperClasses = classNames(styles.SelectAllActions, styles[`SelectAllActions-${status}`]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperClasses\n }, /*#__PURE__*/React.createElement(CheckableButton, checkableButtonProps), paginatedSelectAllMarkup);\n });\n return markup;\n});\n\nexport { SelectAllActions };\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 if (this.props.onStickyChange == null) {\n return null;\n }\n\n this.props.onStickyChange(!isSticky);\n\n if (this.props.boundingElement == null) {\n return null;\n }\n\n this.props.boundingElement.toggleAttribute('data-sticky-active');\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","var 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 from 'react';\nimport emptySearch from './illustrations/empty-search.svg.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { LegacyStack } from '../LegacyStack/LegacyStack.js';\nimport { Text } from '../Text/Text.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(LegacyStack, {\n alignment: \"center\",\n vertical: true\n }, illustrationMarkup, /*#__PURE__*/React.createElement(Text, {\n variant: \"headingLg\",\n as: \"p\"\n }, title), /*#__PURE__*/React.createElement(Text, {\n color: \"subdued\",\n as: \"span\"\n }, descriptionMarkup));\n}\n\nexport { EmptySearchResult };\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","var styles = {\n \"Group\": \"Polaris-BulkActions__Group\",\n \"Group-not-sticky\": \"Polaris-BulkActions--groupNotSticky\",\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-measuring\": \"Polaris-BulkActions__Group--measuring\",\n \"ButtonGroupWrapper\": \"Polaris-BulkActions__ButtonGroupWrapper\",\n \"BulkActionButton\": \"Polaris-BulkActions__BulkActionButton\",\n \"disabled\": \"Polaris-BulkActions--disabled\"\n};\n\nexport { styles as default };\n","import React, { useRef } from 'react';\nimport { HorizontalDotsMinor } from '@shopify/polaris-icons';\nimport { useComponentDidMount } from '../../../../utilities/use-component-did-mount.js';\nimport styles from '../../BulkActions.scss.js';\nimport { Indicator } from '../../../Indicator/Indicator.js';\nimport { Tooltip } from '../../../Tooltip/Tooltip.js';\nimport { Button } from '../../../Button/Button.js';\nimport { Icon } from '../../../Icon/Icon.js';\n\nfunction BulkActionButton({\n handleMeasurement,\n url,\n external,\n onAction,\n content,\n disclosure,\n accessibilityLabel,\n disabled,\n indicator,\n showContentInButton\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 const isActivatorForMoreActionsPopover = disclosure && !showContentInButton;\n const buttonContent = isActivatorForMoreActionsPopover ? undefined : content;\n const buttonMarkup = /*#__PURE__*/React.createElement(Button, {\n external: external,\n url: url,\n accessibilityLabel: isActivatorForMoreActionsPopover ? content : accessibilityLabel,\n disclosure: disclosure && showContentInButton,\n onClick: onAction,\n disabled: disabled,\n size: \"slim\",\n icon: isActivatorForMoreActionsPopover ? /*#__PURE__*/React.createElement(Icon, {\n source: HorizontalDotsMinor,\n color: \"base\"\n }) : undefined\n }, buttonContent);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.BulkActionButton,\n ref: bulkActionButton\n }, isActivatorForMoreActionsPopover ? /*#__PURE__*/React.createElement(Tooltip, {\n content: content,\n preferredPosition: \"above\"\n }, buttonMarkup) : buttonMarkup, 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 showContentInButton: 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","import React, { PureComponent, createRef } from 'react';\nimport { Transition } from 'react-transition-group';\nimport { debounce } from '../../utilities/debounce.js';\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 { useI18n } from '../../utilities/i18n/hooks.js';\nimport { BulkActionButton } from './components/BulkActionButton/BulkActionButton.js';\nimport { Popover } from '../Popover/Popover.js';\nimport { ActionList } from '../ActionList/ActionList.js';\nimport { EventListener } from '../EventListener/EventListener.js';\nimport { HorizontalStack } from '../HorizontalStack/HorizontalStack.js';\n\nconst MAX_PROMOTED_ACTIONS = 2;\nconst BUTTONS_NODE_ADDITIONAL_WIDTH = 64;\n\nclass BulkActionsInner extends PureComponent {\n constructor(...args) {\n super(...args);\n this.state = {\n popoverVisible: false,\n containerWidth: 0,\n measuring: true\n };\n this.containerNode = null;\n this.buttonsNode = null;\n this.moreActionsNode = null;\n this.groupNode = /*#__PURE__*/createRef();\n this.promotedActionsWidths = [];\n this.bulkActionsWidth = 0;\n this.addedMoreActionsWidthForMeasuring = 0;\n this.handleResize = debounce(() => {\n const {\n popoverVisible\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 (popoverVisible) {\n this.setState({\n popoverVisible: false\n });\n }\n }, 50, {\n trailing: true\n });\n\n this.setButtonsNode = node => {\n this.buttonsNode = 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.togglePopover = () => {\n if (this.props.onMoreActionPopoverToggle) {\n this.props.onMoreActionPopoverToggle(this.state.popoverVisible);\n }\n\n this.setState(({\n popoverVisible\n }) => ({\n popoverVisible: !popoverVisible\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 const containerWidthMinusAdditionalWidth = Math.max(0, containerWidth - BUTTONS_NODE_ADDITIONAL_WIDTH);\n\n if (containerWidthMinusAdditionalWidth >= 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 (containerWidthMinusAdditionalWidth >= widthWithRemovedAction) {\n sufficientSpace = true;\n } else {\n counter--;\n }\n }\n\n return clamp(counter, 0, promotedActions.length);\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.buttonsNode ? this.buttonsNode.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 disabled,\n promotedActions,\n i18n,\n isSticky,\n width\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 popoverVisible,\n measuring\n } = this.state;\n const numberOfPromotedActionsToRender = this.numberOfPromotedActionsToRender();\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: popoverVisible,\n activator: /*#__PURE__*/React.createElement(BulkActionButton, {\n disclosure: true,\n showContentInButton: !promotedActionsMarkup,\n onAction: this.togglePopover,\n content: activatorLabel,\n disabled: disabled,\n indicator: this.isNewBadgeInBadgeActions()\n }),\n preferredAlignment: \"right\",\n onClose: this.togglePopover\n }, /*#__PURE__*/React.createElement(ActionList, {\n sections: combinedActions,\n onActionAnyItem: this.togglePopover\n }))) : null;\n const groupContent = promotedActionsMarkup || actionsPopover ? /*#__PURE__*/React.createElement(HorizontalStack, {\n gap: \"3\"\n }, promotedActionsMarkup, actionsPopover) : null;\n\n if (!groupContent) {\n return null;\n }\n\n const group = /*#__PURE__*/React.createElement(Transition, {\n timeout: 100,\n in: selectMode,\n key: \"group\",\n nodeRef: this.groupNode\n }, status => {\n const groupClassName = classNames(styles.Group, !isSticky && styles['Group-not-sticky'], !measuring && isSticky && styles[`Group-${status}`], measuring && styles['Group-measuring']);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: groupClassName,\n ref: this.groupNode,\n style: {\n width\n }\n }, /*#__PURE__*/React.createElement(EventListener, {\n event: \"resize\",\n handler: this.handleResize\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ButtonGroupWrapper,\n ref: this.setButtonsNode\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.ButtonGroupInner\n }, groupContent)));\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.setContainerNode\n }, group);\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, { useState, useReducer, useRef, useEffect, useCallback, Children } from 'react';\nimport { EnableSelectionMinor } from '@shopify/polaris-icons';\nimport { toPx, tokens } from '@shopify/polaris-tokens';\nimport { debounce } from '../../utilities/debounce.js';\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 { useIsBulkActionsSticky } from '../BulkActions/hooks/use-is-bulk-actions-sticky.js';\nimport { SelectAllActions } from '../SelectAllActions/SelectAllActions.js';\nimport { Button } from '../Button/Button.js';\nimport { CheckableButton } from '../CheckableButton/CheckableButton.js';\nimport { Sticky } from '../Sticky/Sticky.js';\nimport { EmptySearchResult } from '../EmptySearchResult/EmptySearchResult.js';\nimport { Spinner } from '../Spinner/Spinner.js';\nimport { ResourceListContext } from '../../utilities/resource-list/context.js';\nimport { EventListener } from '../EventListener/EventListener.js';\nimport { BulkActions } from '../BulkActions/BulkActions.js';\n\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 isBreakpointsXS = () => {\n var _toPx;\n\n return typeof window === 'undefined' ? false : window.innerWidth < parseFloat((_toPx = toPx(tokens.breakpoints['breakpoints-sm'])) !== null && _toPx !== void 0 ? _toPx : '');\n};\n\nfunction defaultIdForItem(item, index) {\n return Object.prototype.hasOwnProperty.call(item, 'id') ? item.id : index.toString();\n}\n\nfunction ResourceList({\n items,\n filterControl,\n flushFilters,\n emptyState,\n emptySearchState,\n resourceName: resourceNameProp,\n promotedBulkActions,\n bulkActions,\n selectedItems = [],\n isFiltered,\n selectable,\n hasMoreItems,\n loading,\n headerContent,\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(isBreakpointsXS());\n const forceUpdate = useReducer((x = 0) => x + 1, 0)[1];\n const checkableButtonRef = useRef(null);\n const {\n bulkActionsIntersectionRef,\n tableMeasurerRef,\n isBulkActionsSticky,\n bulkActionsAbsoluteOffset,\n bulkActionsMaxWidth,\n bulkActionsOffsetLeft,\n computeTableDimensions\n } = useIsBulkActionsSticky(selectMode);\n useEffect(() => {\n computeTableDimensions();\n }, [computeTableDimensions, items.length]);\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 = isBreakpointsXS();\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) && !smallScreen;\n\n const selectAllSelectState = () => {\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 if (headerContent) {\n return headerContent;\n } else {\n return i18n.translate('Polaris.ResourceList.showing', {\n itemsCount,\n resource\n });\n }\n };\n\n const selectAllActionsLabel = () => {\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 selectAllActionsAccessibilityLabel = () => {\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) && !isBreakpointsXS()) {\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('<ResourceList /> renderItem function should return a <ResourceItem />.');\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 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 && !isBreakpointsXS()) {\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 && !isBreakpointsXS()) {\n handleSelectMode(false);\n } else if (newlySelectedItems.length > 0) {\n handleSelectMode(true);\n }\n\n if (onSelectionChange) {\n onSelectionChange(newlySelectedItems);\n } // setTimeout ensures execution after the Transition on BulkActions\n\n\n setTimeout(() => {\n var _checkableButtonRef$c;\n\n checkableButtonRef === null || checkableButtonRef === void 0 ? void 0 : (_checkableButtonRef$c = checkableButtonRef.current) === null || _checkableButtonRef$c === void 0 ? void 0 : _checkableButtonRef$c.focus();\n }, 0);\n };\n\n const selectAllActionsMarkup = isSelectable ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SelectAllActionsWrapper\n }, /*#__PURE__*/React.createElement(SelectAllActions, {\n label: selectAllActionsLabel(),\n accessibilityLabel: selectAllActionsAccessibilityLabel(),\n selected: selectAllSelectState(),\n onToggleAll: handleToggleAll,\n selectMode: selectMode,\n paginatedSelectAllAction: paginatedSelectAllAction(),\n paginatedSelectAllText: paginatedSelectAllText(),\n disabled: loading,\n ref: checkableButtonRef\n })) : null;\n const bulkActionClassNames = classNames(styles.BulkActionsWrapper, isBulkActionsSticky && styles.BulkActionsWrapperSticky);\n const bulkActionsMarkup = isSelectable && selectMode && (bulkActions || promotedBulkActions) ? /*#__PURE__*/React.createElement(\"div\", {\n className: bulkActionClassNames,\n style: {\n top: isBulkActionsSticky ? undefined : bulkActionsAbsoluteOffset,\n width: bulkActionsMaxWidth,\n left: isBulkActionsSticky ? bulkActionsOffsetLeft : undefined\n }\n }, /*#__PURE__*/React.createElement(BulkActions, {\n selectMode: selectMode,\n onSelectModeToggle: handleSelectMode,\n promotedActions: promotedBulkActions,\n actions: bulkActions,\n disabled: loading,\n isSticky: isBulkActionsSticky,\n width: bulkActionsMaxWidth\n })) : null;\n const filterControlMarkup = filterControl ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(!flushFilters && 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: selectAllActionsAccessibilityLabel(),\n label: headerTitle(),\n onToggleAll: handleToggleAll,\n disabled: loading,\n ref: checkableButtonRef\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 }, headerWrapperOverlay, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.HeaderContentWrapper\n }, headerTitleMarkup, checkableButtonMarkup, alternateToolMarkup, sortingSelectMarkup, selectButtonMarkup), selectAllActionsMarkup);\n }), bulkActionsMarkup);\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 hasBulkActions: Boolean(bulkActions),\n resourceName,\n loading,\n onSelectionChange: handleSelectionChange\n };\n const resourceListWrapperClasses = classNames(styles.ResourceListWrapper, Boolean(bulkActionsMarkup) && selectMode && bulkActions && styles.ResourceListWrapperWithBulkActions);\n return /*#__PURE__*/React.createElement(ResourceListContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(EventListener, {\n event: \"resize\",\n handler: handleResize\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: resourceListWrapperClasses,\n ref: tableMeasurerRef\n }, filterControlMarkup, headerMarkup, listMarkup, emptySearchStateMarkup, emptyStateMarkup, loadingWithoutItemsMarkup), /*#__PURE__*/React.createElement(\"div\", {\n ref: bulkActionsIntersectionRef\n }));\n}\nResourceList.Item = ResourceItem;\n\nexport { ResourceList };\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\n/** @deprecated Use LegacyStack or VerticalStack instead. */\nfunction Item({\n children,\n fill\n}) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('Deprecation: <Stack /> is deprecated. This component will be removed in a future major version of Polaris. Use <LegacyStack /> or <VerticalStack /> instead.');\n }\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\n/** @deprecated Use LegacyStack or VerticalStack instead. */\nconst Stack = /*#__PURE__*/memo(function Stack({\n children,\n vertical,\n spacing,\n distribution,\n alignment,\n wrap\n}) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('Deprecation: <Stack /> is deprecated. This component will be removed in a future major version of Polaris. Use <LegacyStack /> or <VerticalStack /> instead.');\n }\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 }; // eslint-disable-next-line import/no-deprecated\n\n return wrapWithComponent(child, Item, props);\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, itemMarkup);\n}); // eslint-disable-next-line import/no-deprecated\n\nStack.Item = Item;\n\nexport { Stack };\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\n/**\n * @deprecated The TextStyle component will be removed in the next\n * major version. Use the Text component instead. See the\n * Polaris component guide on how to use Text.\n *\n * https://polaris.shopify.com/components/text\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 { isValidElement } from 'react';\n\nfunction isInterface(x) {\n return ! /*#__PURE__*/isValidElement(x) && x !== undefined;\n}\n\nexport { isInterface };\n","import { isValidElement } from 'react';\n\nfunction isReactElement(x) {\n return /*#__PURE__*/isValidElement(x) && x !== undefined;\n}\n\nexport { isReactElement };\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 \"TitleWrapper\": \"Polaris-Page-Header__TitleWrapper\",\n \"BreadcrumbWrapper\": \"Polaris-Page-Header__BreadcrumbWrapper\",\n \"PaginationWrapper\": \"Polaris-Page-Header__PaginationWrapper\",\n \"PrimaryActionWrapper\": \"Polaris-Page-Header__PrimaryActionWrapper\",\n \"Row\": \"Polaris-Page-Header__Row\",\n \"mobileView\": \"Polaris-Page-Header--mobileView\",\n \"RightAlign\": \"Polaris-Page-Header__RightAlign\",\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 { Text } from '../Text/Text.js';\nimport { UnstyledLink } from '../UnstyledLink/UnstyledLink.js';\n\nfunction Breadcrumbs({\n breadcrumbs,\n backAction\n}) {\n const breadcrumb = backAction !== null && backAction !== void 0 ? backAction : Array.isArray(breadcrumbs) ? breadcrumbs[breadcrumbs.length - 1] : breadcrumbs;\n\n if (breadcrumb == null) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('Please provide a value to backAction, it will become required in the next major release.');\n }\n\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(Text, {\n as: \"span\",\n visuallyHidden: true\n }, 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","import { ChevronLeftMinor, ChevronRightMinor } from '@shopify/polaris-icons';\nimport React, { createRef } from 'react';\nimport { isInputFocused } from '../../utilities/is-input-focused.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { KeypressListener } from '../KeypressListener/KeypressListener.js';\nimport { ButtonGroup } from '../ButtonGroup/ButtonGroup.js';\nimport { Tooltip } from '../Tooltip/Tooltip.js';\nimport { Button } from '../Button/Button.js';\nimport { Text } from '../Text/Text.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(\"span\", null, label) : /*#__PURE__*/React.createElement(Text, {\n color: \"subdued\",\n as: \"span\"\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","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","import { useRef, useEffect } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\n\n/**\n * Acceptable target elements for `useEventListener`.\n */\n\n/**\n * React hook encapsulating the boilerplate logic for adding and removing event listeners.\n */\nfunction useEventListener(eventName, handler, target, options) {\n const handlerRef = useRef(handler);\n const optionsRef = useRef(options);\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n }, [handler]);\n useIsomorphicLayoutEffect(() => {\n optionsRef.current = options;\n }, [options]);\n useEffect(() => {\n if (!(typeof eventName === 'string' && target !== null)) return;\n let targetElement;\n\n if (typeof target === 'undefined') {\n targetElement = window;\n } else if ('current' in target) {\n if (target.current === null) return;\n targetElement = target.current;\n } else {\n targetElement = target;\n }\n\n const eventOptions = optionsRef.current;\n\n const eventListener = event => handlerRef.current(event);\n\n targetElement.addEventListener(eventName, eventListener, eventOptions);\n return () => {\n targetElement.removeEventListener(eventName, eventListener, eventOptions);\n };\n }, [eventName, target]);\n}\n\nexport { useEventListener };\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';\nimport { Tooltip } from '../../../Tooltip/Tooltip.js';\n\nfunction SecondaryAction({\n children,\n destructive,\n helpText,\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 const buttonMarkup = /*#__PURE__*/React.createElement(Button, Object.assign({\n onClick: onAction\n }, rest), children);\n const actionMarkup = helpText ? /*#__PURE__*/React.createElement(Tooltip, {\n content: helpText\n }, buttonMarkup) : buttonMarkup;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(styles.SecondaryAction, destructive && styles.destructive),\n ref: secondaryActionsRef\n }, actionMarkup);\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 disabled,\n onClick,\n onClose,\n onOpen,\n getOffsetWidth,\n sections\n}) {\n const handleClose = useCallback(() => {\n onClose(title);\n }, [onClose, title]);\n const handleOpen = useCallback(() => {\n onOpen(title);\n }, [onOpen, title]);\n const handleClick = useCallback(() => {\n if (onClick) {\n onClick(handleOpen);\n } else {\n handleOpen();\n }\n }, [onClick, handleOpen]);\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 disabled: disabled,\n icon: icon,\n accessibilityLabel: accessibilityLabel,\n onClick: handleClick,\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 sections: sections,\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 } from 'react';\nimport { debounce } from '../../../../utilities/debounce.js';\nimport { useEventListener } from '../../../../utilities/use-event-listener.js';\nimport { useIsomorphicLayoutEffect } from '../../../../utilities/use-isomorphic-layout-effect.js';\nimport styles from './Actions.scss.js';\nimport { MenuGroup } from '../MenuGroup/MenuGroup.js';\nimport { ButtonGroup } from '../../../ButtonGroup/ButtonGroup.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\nimport { SecondaryAction } from '../SecondaryAction/SecondaryAction.js';\n\nconst ACTION_SPACING = 8;\nfunction Actions({\n actions = [],\n groups = [],\n onActionRollup\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 rollupActiveRef = useRef(null);\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 setMeasuredActions(currentMeasuredActions => {\n const showable = actionsAndGroups.slice(0, currentMeasuredActions.showable.length);\n const rolledUp = actionsAndGroups.slice(currentMeasuredActions.showable.length, actionsAndGroups.length);\n return {\n showable,\n rolledUp\n };\n });\n }, [actions, groups]);\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\n if (onActionRollup) {\n // Note: Do not include last group actions since we are skipping `lastMenuGroup` above\n // as it is always rendered with its own actions\n const isRollupActive = newShowableActions.length < actionsAndGroups.length - 1;\n\n if (rollupActiveRef.current !== isRollupActive) {\n onActionRollup(isRollupActive);\n rollupActiveRef.current = isRollupActive;\n }\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, onActionRollup]);\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 useEventListener('resize', handleResize);\n useIsomorphicLayoutEffect(() => {\n if (!actionsLayoutRef.current) return;\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, finalRolledUpSectionGroups] = measuredActions.rolledUp.reduce(([actions, sections], action) => {\n if (isMenuGroup(action)) {\n sections.push({\n title: action.title,\n items: action.actions.map(sectionAction => ({ ...sectionAction,\n disabled: action.disabled || sectionAction.disabled\n }))\n });\n } else {\n actions.push(action);\n }\n\n return [actions, sections];\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 sections: finalRolledUpSectionGroups\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 sections: finalRolledUpSectionGroups\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);\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 onActionRollup\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 onActionRollup: onActionRollup\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 disabled\n}) {\n return {\n title,\n items: actions.map(action => ({ ...action,\n disabled: disabled || action.disabled\n }))\n };\n}\n\nexport { ActionMenu, hasGroupsWithActions };\n","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport { ConditionalRender, ConditionalWrapper } from '../../../../utilities/components.js';\nimport { isInterface } from '../../../../utilities/is-interface.js';\nimport { isReactElement } from '../../../../utilities/is-react-element.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 { Box } from '../../../Box/Box.js';\nimport { Text } from '../../../Text/Text.js';\nimport { HorizontalStack } from '../../../HorizontalStack/HorizontalStack.js';\nimport { buttonFrom } from '../../../Button/utils.js';\nimport { Tooltip } from '../../../Tooltip/Tooltip.js';\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 backAction,\n secondaryActions = [],\n actionGroups = [],\n compactTitle = false,\n onActionRollup\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 if (breadcrumbs && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('Deprecation: The `breadcrumbs` prop on Page is deprecated and will be removed in the next major version. Please replace with a single `backAction`.');\n }\n\n const isSingleRow = !primaryAction && !pagination && (isInterface(secondaryActions) && !secondaryActions.length || isReactElement(secondaryActions)) && !actionGroups.length;\n let breadcrumbMarkup = null;\n\n if (backAction) {\n breadcrumbMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.BreadcrumbWrapper\n }, /*#__PURE__*/React.createElement(Box, {\n maxWidth: \"100%\",\n paddingInlineEnd: \"4\",\n printHidden: true\n }, /*#__PURE__*/React.createElement(Breadcrumbs, {\n backAction: backAction\n })));\n } else if (Array.isArray(breadcrumbs) && breadcrumbs.length > 0 || !Array.isArray(breadcrumbs) && breadcrumbs) {\n breadcrumbMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.BreadcrumbWrapper\n }, /*#__PURE__*/React.createElement(Box, {\n maxWidth: \"100%\",\n paddingInlineEnd: \"4\",\n printHidden: true\n }, /*#__PURE__*/React.createElement(Breadcrumbs, {\n breadcrumbs: breadcrumbs\n })));\n }\n\n const paginationMarkup = pagination && !isNavigationCollapsed ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.PaginationWrapper\n }, /*#__PURE__*/React.createElement(Box, {\n printHidden: true\n }, /*#__PURE__*/React.createElement(Pagination, pagination))) : null;\n const additionalNavigationMarkup = additionalNavigation ? /*#__PURE__*/React.createElement(HorizontalStack, {\n gap: \"4\",\n align: \"end\"\n }, /*#__PURE__*/React.createElement(Box, {\n printHidden: true\n }, additionalNavigation)) : 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 let actionMenuMarkup = null;\n\n if (isInterface(secondaryActions) && (secondaryActions.length > 0 || hasGroupsWithActions(actionGroups))) {\n actionMenuMarkup = /*#__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 onActionRollup: onActionRollup\n });\n } else if (isReactElement(secondaryActions)) {\n actionMenuMarkup = /*#__PURE__*/React.createElement(React.Fragment, null, secondaryActions);\n }\n\n const navigationMarkup = breadcrumbMarkup || paginationMarkup || additionalNavigationMarkup ? /*#__PURE__*/React.createElement(Box, {\n printHidden: true,\n paddingBlockEnd: \"1\",\n paddingInlineEnd: actionMenuMarkup && isNavigationCollapsed ? '10' : undefined\n }, /*#__PURE__*/React.createElement(HorizontalStack, {\n gap: \"4\",\n align: \"space-between\",\n blockAlign: \"center\"\n }, breadcrumbMarkup, additionalNavigationMarkup, paginationMarkup)) : null;\n const additionalMetadataMarkup = additionalMetadata ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.AdditionalMetaData\n }, /*#__PURE__*/React.createElement(Text, {\n color: \"subdued\",\n as: \"span\"\n }, additionalMetadata)) : null;\n const headerClassNames = classNames(isSingleRow && styles.isSingleRow, navigationMarkup && styles.hasNavigation, actionMenuMarkup && styles.hasActionMenu, isNavigationCollapsed && styles.mobileView, !breadcrumbMarkup && 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(Box, {\n position: \"relative\",\n paddingBlockStart: {\n xs: '4',\n md: '5'\n },\n paddingBlockEnd: {\n xs: '4',\n md: '5'\n },\n paddingInlineStart: {\n xs: '4',\n sm: '0'\n },\n paddingInlineEnd: {\n xs: '4',\n sm: '0'\n },\n visuallyHidden: titleHidden\n }, /*#__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(HorizontalStack, {\n gap: \"4\"\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 actionMarkup;\n\n if (isInterface(primaryAction)) {\n const {\n primary: isPrimary,\n helpText\n } = primaryAction;\n const primary = isPrimary === undefined ? true : isPrimary;\n const content = buttonFrom(shouldShowIconOnly(isNavigationCollapsed, primaryAction), {\n primary\n });\n actionMarkup = helpText ? /*#__PURE__*/React.createElement(Tooltip, {\n content: helpText\n }, content) : content;\n } else {\n actionMarkup = primaryAction;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.PrimaryActionWrapper\n }, /*#__PURE__*/React.createElement(Box, {\n printHidden: true\n }, actionMarkup));\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 };\n","import React from 'react';\nimport { classNames } from '../../utilities/css.js';\nimport { isInterface } from '../../utilities/is-interface.js';\nimport { isReactElement } from '../../utilities/is-react-element.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.subtitle != null && rest.subtitle !== '' || rest.primaryAction != null || rest.secondaryActions != null && (isInterface(rest.secondaryActions) && rest.secondaryActions.length > 0 || isReactElement(rest.secondaryActions)) || rest.actionGroups != null && rest.actionGroups.length > 0 || rest.breadcrumbs != null && Array.isArray(rest.breadcrumbs) && rest.breadcrumbs.length > 0 || rest.breadcrumbs != null || rest.backAction != null;\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","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};\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 { Text } from '../../../Text/Text.js';\nimport { Box } from '../../../Box/Box.js';\n\nfunction AnnotatedSection({\n children,\n title,\n description,\n id\n}) {\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(Text, {\n id: id,\n variant: \"headingMd\",\n as: \"h2\"\n }, title), descriptionMarkup && /*#__PURE__*/React.createElement(Box, {\n color: \"text-subdued\"\n }, descriptionMarkup))), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.AnnotationContent\n }, children)));\n}\n\nexport { AnnotatedSection };\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 \"keyFocused\": \"Polaris-Banner--keyFocused\",\n \"withinPage\": \"Polaris-Banner--withinPage\",\n \"Ribbon\": \"Polaris-Banner__Ribbon\",\n \"hasDismiss\": \"Polaris-Banner--hasDismiss\",\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 { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Spinner } from '../Spinner/Spinner.js';\nimport { Box } from '../Box/Box.js';\nimport { Button } from '../Button/Button.js';\nimport { Icon } from '../Icon/Icon.js';\nimport { Text } from '../Text/Text.js';\nimport { ButtonGroup } from '../ButtonGroup/ButtonGroup.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 hideIcon\n}, bannerRef) {\n const withinContentContainer = useContext(WithinContentContext);\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\n if (title) {\n headingMarkup = /*#__PURE__*/React.createElement(Text, {\n as: \"h2\",\n variant: \"headingMd\",\n breakWord: true\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(Box, {\n paddingInlineEnd: \"2\"\n }, action.loading ? spinnerMarkup : unstyledButtonFrom(action, {\n className: `${styles.Button} ${styles.PrimaryAction}`\n })) : null;\n const secondaryActionMarkup = secondaryAction ? /*#__PURE__*/React.createElement(SecondaryActionFrom, {\n action: secondaryAction\n }) : null;\n const actionMarkup = action || secondaryAction ? /*#__PURE__*/React.createElement(Box, {\n paddingBlockStart: withinContentContainer ? '3' : '4',\n paddingBlockEnd: withinContentContainer ? '1' : undefined\n }, /*#__PURE__*/React.createElement(ButtonGroup, null, primaryActionMarkup, secondaryActionMarkup)) : null;\n let contentMarkup = null;\n\n if (children || actionMarkup) {\n contentMarkup = /*#__PURE__*/React.createElement(Box, {\n paddingBlockStart: \"05\",\n paddingBlockEnd: \"05\"\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 }, dismissButton, hideIcon ? null : /*#__PURE__*/React.createElement(Box, {\n paddingInlineEnd: \"4\"\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 target: action.target\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 \"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, { isValidElement } from 'react';\nimport styles from '../../Card.scss.js';\nimport { ButtonGroup } from '../../../ButtonGroup/ButtonGroup.js';\nimport { buttonsFrom } from '../../../Button/utils.js';\nimport { LegacyStack } from '../../../LegacyStack/LegacyStack.js';\nimport { Text } from '../../../Text/Text.js';\n\n/** @deprecated Use LegacyCard or AlphaCard instead. */\nfunction Header({\n children,\n title,\n actions\n}) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('Deprecation: <Card /> is deprecated. This component will be removed in a future major version of Polaris. Use <LegacyCard /> or <AlphaCard /> instead.');\n }\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(Text, {\n variant: \"headingMd\",\n as: \"h2\"\n }, title);\n const headingMarkup = actionMarkup || children ? /*#__PURE__*/React.createElement(LegacyStack, {\n alignment: \"baseline\"\n }, /*#__PURE__*/React.createElement(LegacyStack.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","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from '../../Card.scss.js';\nimport { ButtonGroup } from '../../../ButtonGroup/ButtonGroup.js';\nimport { buttonsFrom } from '../../../Button/utils.js';\nimport { LegacyStack } from '../../../LegacyStack/LegacyStack.js';\nimport { Text } from '../../../Text/Text.js';\n\n/** @deprecated Use LegacyCard or AlphaCard instead. */\nfunction Section({\n children,\n title,\n subdued,\n flush,\n fullWidth,\n actions,\n hideOnPrint\n}) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('Deprecation: <Card /> is deprecated. This component will be removed in a future major version of Polaris. Use <LegacyCard /> or <AlphaCard /> instead.');\n }\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(Text, {\n variant: \"headingSm\",\n as: \"h3\"\n }, title) : title;\n const titleAreaMarkup = titleMarkup || actionMarkup ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SectionHeader\n }, actionMarkup ? /*#__PURE__*/React.createElement(LegacyStack, {\n alignment: \"baseline\"\n }, /*#__PURE__*/React.createElement(LegacyStack.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 { 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 { buttonFrom } from '../Button/utils.js';\nimport { Popover } from '../Popover/Popover.js';\nimport { Button } from '../Button/Button.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.\n\n/** @deprecated Use AlphaCard instead. */\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 if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('Deprecation: <Card /> is deprecated. This component will be removed in a future major version of Polaris. Use <LegacyCard /> or <AlphaCard /> instead.');\n }\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}; // eslint-disable-next-line import/no-deprecated\n\nCard.Header = Header; // eslint-disable-next-line import/no-deprecated\n\nCard.Section = Section; // eslint-disable-next-line import/no-deprecated\n\nCard.Subsection = Subsection;\n\nexport { Card };\n","import React from 'react';\nimport styles from '../../Card.scss.js';\n\n/** @deprecated Use LegacyCard or AlphaCard instead. */\nfunction Subsection({\n children\n}) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('Deprecation: <Card /> is deprecated. This component will be removed in a future major version of Polaris. Use <LegacyCard /> or <AlphaCard /> instead.');\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Subsection\n }, children);\n}\n\nexport { Subsection };\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\n/**\n * @deprecated The DisplayText component will be removed in the next\n * major version. Use the Text component instead. See the\n * Polaris component guide on how to use Text.\n *\n * https://polaris.shopify.com/components/text\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","var styles = {\n \"LegacyCard\": \"Polaris-LegacyCard\",\n \"subdued\": \"Polaris-LegacyCard--subdued\",\n \"Section-hideOnPrint\": \"Polaris-LegacyCard__Section--hideOnPrint\",\n \"hideOnPrint\": \"Polaris-LegacyCard--hideOnPrint\",\n \"Header\": \"Polaris-LegacyCard__Header\",\n \"Section\": \"Polaris-LegacyCard__Section\",\n \"Section-fullWidth\": \"Polaris-LegacyCard__Section--fullWidth\",\n \"Section-flush\": \"Polaris-LegacyCard__Section--flush\",\n \"Section-subdued\": \"Polaris-LegacyCard__Section--subdued\",\n \"SectionHeader\": \"Polaris-LegacyCard__SectionHeader\",\n \"Subsection\": \"Polaris-LegacyCard__Subsection\",\n \"Footer\": \"Polaris-LegacyCard__Footer\",\n \"LeftJustified\": \"Polaris-LegacyCard__LeftJustified\"\n};\n\nexport { styles as default };\n","import React, { isValidElement } from 'react';\nimport styles from '../../LegacyCard.scss.js';\nimport { LegacyStack } from '../../../LegacyStack/LegacyStack.js';\nimport { ButtonGroup } from '../../../ButtonGroup/ButtonGroup.js';\nimport { buttonsFrom } from '../../../Button/utils.js';\nimport { Text } from '../../../Text/Text.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(Text, {\n variant: \"headingMd\",\n as: \"h2\"\n }, title);\n const headingMarkup = actionMarkup || children ? /*#__PURE__*/React.createElement(LegacyStack, {\n alignment: \"baseline\"\n }, /*#__PURE__*/React.createElement(LegacyStack.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","import React from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from '../../LegacyCard.scss.js';\nimport { ButtonGroup } from '../../../ButtonGroup/ButtonGroup.js';\nimport { buttonsFrom } from '../../../Button/utils.js';\nimport { LegacyStack } from '../../../LegacyStack/LegacyStack.js';\nimport { Text } from '../../../Text/Text.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(Text, {\n variant: \"headingSm\",\n as: \"h3\"\n }, title) : title;\n const titleAreaMarkup = titleMarkup || actionMarkup ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SectionHeader\n }, actionMarkup ? /*#__PURE__*/React.createElement(LegacyStack, {\n alignment: \"baseline\"\n }, /*#__PURE__*/React.createElement(LegacyStack.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 './LegacyCard.scss.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 { buttonFrom } from '../Button/utils.js';\nimport { Popover } from '../Popover/Popover.js';\nimport { Button } from '../Button/Button.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 LegacyCard = function LegacyCard({\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.LegacyCard, 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};\nLegacyCard.Header = Header;\nLegacyCard.Section = Section;\nLegacyCard.Subsection = Subsection;\n\nexport { LegacyCard };\n","import React from 'react';\nimport styles from '../../LegacyCard.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 \"SettingAction\": \"Polaris-SettingAction\",\n \"Setting\": \"Polaris-SettingAction__Setting\",\n \"Action\": \"Polaris-SettingAction__Action\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport styles from './SettingAction.scss.js';\n\nfunction SettingAction({\n action,\n children\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SettingAction\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Setting\n }, children), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Action\n }, action));\n}\n\nexport { SettingAction };\n","import React, { useMemo } from 'react';\nimport { buttonFrom } from '../Button/utils.js';\nimport { LegacyCard } from '../LegacyCard/LegacyCard.js';\nimport { SettingAction } from '../SettingAction/SettingAction.js';\nimport { globalIdGeneratorFactory } from '../../utilities/unique-id/unique-id-factory.js';\n\nconst getUniqueSettingToggleId = globalIdGeneratorFactory('SettingToggle');\n/**\n * @deprecated The SettingToggle component will be removed in v12.0.0.\n * See the \"With primitive components\" example to learn how to compose\n * setting toggles with layout and typography primitives.\n * https://polaris.shopify.com/components/deprecated/setting-toggle\n */\n\nfunction SettingToggle({\n enabled,\n action,\n children\n}) {\n const id = useMemo(getUniqueSettingToggleId, []);\n\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(`Deprecation: <SettingToggle /> is deprecated. This component will be removed in a future major version of Polaris. Use the primitive layout and typography components to compose a setting toggle card.\n See the \"With primitive components\" example in https://polaris.shopify.com/components/deprecated/setting-toggle`);\n }\n\n const actionMarkup = action ? buttonFrom(action, {\n role: 'switch',\n id,\n ariaChecked: enabled ? 'true' : 'false',\n size: 'slim'\n }) : null;\n return /*#__PURE__*/React.createElement(LegacyCard, {\n sectioned: true\n }, /*#__PURE__*/React.createElement(SettingAction, {\n action: actionMarkup\n }, /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: id\n }, children)));\n}\n\nexport { SettingToggle };\n","var styles = {\n \"FormLayout\": \"Polaris-FormLayout\",\n \"Title\": \"Polaris-FormLayout__Title\",\n \"Items\": \"Polaris-FormLayout__Items\",\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({\n children\n}) {\n return children ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Item\n }, children) : null;\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';\nimport { Box } from '../../../Box/Box.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(Box, {\n id: helpTextID,\n paddingBlockStart: \"2\",\n paddingInlineStart: \"5\",\n paddingBlockEnd: \"0\",\n paddingInlineEnd: \"5\",\n color: \"text-subdued\"\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","var styles = {\n \"TextField\": \"Polaris-TextField\",\n \"ClearButton\": \"Polaris-TextField__ClearButton\",\n \"multiline\": \"Polaris-TextField--multiline\",\n \"Input\": \"Polaris-TextField__Input\",\n \"hasValue\": \"Polaris-TextField--hasValue\",\n \"focus\": \"Polaris-TextField--focus\",\n \"VerticalContent\": \"Polaris-TextField__VerticalContent\",\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 \"suggestion\": \"Polaris-TextField--suggestion\",\n \"borderless\": \"Polaris-TextField--borderless\",\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 \"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","import React from 'react';\nimport { CaretUpMinor, CaretDownMinor } from '@shopify/polaris-icons';\nimport styles from '../../TextField.scss.js';\nimport { Icon } from '../../../Icon/Icon.js';\n\nconst Spinner = /*#__PURE__*/React.forwardRef(function Spinner({\n onChange,\n onClick,\n onMouseDown,\n onMouseUp,\n onBlur\n}, ref) {\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 ref: ref\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 onBlur: onBlur\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 onBlur: onBlur\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SpinnerIcon\n }, /*#__PURE__*/React.createElement(Icon, {\n source: CaretDownMinor\n }))));\n});\n\nexport { Spinner };\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, { useRef, useEffect, useCallback } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../../../utilities/use-isomorphic-layout-effect.js';\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 useIsomorphicLayoutEffect(() => {\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': '<br>',\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 += '<br>';\n }\n\n return content;\n}\n\nfunction getFinalContents(contents) {\n return contents ? `${contents.replace(REPLACE_REGEX, replaceEntity)}<br>` : '<br>';\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 { useEventListener } from '../../utilities/use-event-listener.js';\nimport styles from './TextField.scss.js';\nimport { Spinner } from './components/Spinner/Spinner.js';\nimport { Labelled, helpTextID } from '../Labelled/Labelled.js';\nimport { Connected } from '../Connected/Connected.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 { Text } from '../Text/Text.js';\nimport { Icon } from '../Icon/Icon.js';\n\nfunction TextField({\n prefix,\n suffix,\n verticalContent,\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 = 'text',\n name,\n id: idProp,\n role,\n step,\n largeStep,\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 requiredIndicator,\n monospaced,\n selectTextOnFocus,\n suggestion,\n onClearButtonClick,\n onChange,\n onSpinnerChange,\n onFocus,\n onBlur,\n borderless\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 textAreaRef = useRef(null);\n const prefixRef = useRef(null);\n const suffixRef = useRef(null);\n const verticalContentRef = useRef(null);\n const buttonPressTimer = useRef();\n const spinnerRef = useRef(null);\n useEffect(() => {\n const input = multiline ? textAreaRef.current : inputRef.current;\n if (!input || focused === undefined) return;\n focused ? input.focus() : input.blur();\n }, [focused, verticalContent, multiline]);\n useEffect(() => {\n const input = inputRef.current;\n const isSupportedInputType = type === 'text' || type === 'tel' || type === 'search' || type === 'url' || type === 'password';\n\n if (!input || !isSupportedInputType || !suggestion) {\n return;\n }\n\n input.setSelectionRange(value.length, suggestion.length);\n }, [focus, value, type, suggestion]);\n const normalizedValue = suggestion ? suggestion : 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, borderless && styles.borderless);\n const inputType = type === 'currency' ? 'text' : type;\n const isNumericType = type === 'number' || type === 'integer';\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 onClick: handleClickChild\n }, characterCountText);\n }\n\n const clearButtonVisible = normalizedValue !== '';\n const clearButtonMarkup = clearButton && clearButtonVisible ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: styles.ClearButton,\n onClick: handleClearButtonPress,\n disabled: disabled\n }, /*#__PURE__*/React.createElement(Text, {\n as: \"span\",\n visuallyHidden: true\n }, i18n.translate('Polaris.Common.clear')), /*#__PURE__*/React.createElement(Icon, {\n source: CircleCancelMinor,\n color: \"base\"\n })) : null;\n const handleNumberChange = useCallback((steps, stepAmount = normalizedStep) => {\n if (onChange == null && onSpinnerChange == 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 = type === 'integer' ? 0 : Math.max(dpl(numericValue), dpl(stepAmount));\n const newValue = Math.min(Number(normalizedMax), Math.max(numericValue + steps * stepAmount, Number(normalizedMin)));\n\n if (onSpinnerChange != null) {\n onSpinnerChange(String(newValue.toFixed(decimalPlaces)), id);\n } else if (onChange != null) {\n onChange(String(newValue.toFixed(decimalPlaces)), id);\n }\n }, [id, normalizedMax, normalizedMin, onChange, onSpinnerChange, normalizedStep, type, 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 = isNumericType && step !== 0 && !disabled && !readOnly ? /*#__PURE__*/React.createElement(Spinner, {\n onClick: handleClickChild,\n onChange: handleNumberChange,\n onMouseDown: handleButtonPress,\n onMouseUp: handleButtonRelease,\n ref: spinnerRef,\n onBlur: handleOnBlur\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 if (verticalContent) {\n labelledBy.push(`${id}-VerticalContent`);\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, suggestion && styles.suggestion);\n\n const handleOnFocus = event => {\n setFocus(true);\n\n if (selectTextOnFocus && !suggestion) {\n const input = multiline ? textAreaRef.current : inputRef.current;\n input === null || input === void 0 ? void 0 : input.select();\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n useEventListener('wheel', handleOnWheel, inputRef);\n\n function handleOnWheel(event) {\n if (document.activeElement === event.target && isNumericType) {\n event.stopPropagation();\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 style,\n autoComplete,\n className: inputClassName,\n ref: multiline ? textAreaRef : 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 onFocus: handleOnFocus,\n onBlur: handleOnBlur,\n onClick: handleClickChild,\n onKeyPress: handleKeyPress,\n onKeyDown: handleKeyDown,\n onChange: !suggestion ? handleChange : undefined,\n onInput: suggestion ? handleChange : undefined\n });\n const inputWithVerticalContentMarkup = verticalContent ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.VerticalContent,\n id: `${id}-VerticalContent`,\n ref: verticalContentRef,\n onClick: handleClickChild\n }, verticalContent, input) : null;\n const inputMarkup = verticalContent ? inputWithVerticalContentMarkup : input;\n const backdropMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(styles.Backdrop, connectedLeft && styles['Backdrop-connectedLeft'], connectedRight && styles['Backdrop-connectedRight'])\n });\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 onClick: handleClick\n }, prefixMarkup, inputMarkup, suffixMarkup, characterCountMarkup, clearButtonMarkup, spinnerMarkup, backdropMarkup, resizer)));\n\n function handleChange(event) {\n onChange && onChange(event.currentTarget.value, id);\n }\n\n function handleClick(event) {\n var _inputRef$current, _inputRef$current3;\n\n const {\n target\n } = event; // For TextFields used with Combobox, focus needs to be set again even\n // if the TextField is already focused to trigger the logic to open the\n // Combobox activator\n\n const inputRefRole = inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.getAttribute('role');\n\n if (target === inputRef.current && inputRefRole === 'combobox') {\n var _inputRef$current2;\n\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();\n handleOnFocus(event);\n return;\n }\n\n if (isPrefixOrSuffix(target) || isVerticalContent(target) || isInput(target) || isSpinner(target) || focus) {\n return;\n }\n\n (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.focus();\n }\n\n function handleClickChild(event) {\n if (!isSpinner(event.target) && !isInput(event.target)) {\n event.stopPropagation();\n }\n\n if (isPrefixOrSuffix(event.target) || isVerticalContent(event.target) || isInput(event.target) || focus) {\n return;\n }\n\n setFocus(true);\n }\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 const integerSpec = /[\\deE+-]$/;\n\n if (!isNumericType || which === Key.Enter || type === 'number' && numbersSpec.test(key) || type === 'integer' && integerSpec.test(key)) {\n return;\n }\n\n event.preventDefault();\n }\n\n function handleKeyDown(event) {\n if (!isNumericType) {\n return;\n }\n\n const {\n key,\n which\n } = event;\n\n if ((which === Key.Home || key === 'Home') && min !== undefined) {\n if (onSpinnerChange != null) {\n onSpinnerChange(String(min), id);\n } else if (onChange != null) {\n onChange(String(min), id);\n }\n }\n\n if ((which === Key.End || key === 'End') && max !== undefined) {\n if (onSpinnerChange != null) {\n onSpinnerChange(String(max), id);\n } else if (onChange != null) {\n onChange(String(max), id);\n }\n }\n\n if ((which === Key.PageUp || key === 'PageUp') && largeStep !== undefined) {\n handleNumberChange(1, largeStep);\n }\n\n if ((which === Key.PageDown || key === 'PageDown') && largeStep !== undefined) {\n handleNumberChange(-1, largeStep);\n }\n }\n\n function handleOnBlur(event) {\n setFocus(false);\n\n if (onBlur) {\n onBlur(event);\n }\n }\n\n function isInput(target) {\n return target instanceof HTMLElement && inputRef.current && (inputRef.current.contains(target) || inputRef.current.contains(document.activeElement));\n }\n\n function isPrefixOrSuffix(target) {\n return target instanceof Element && (prefixRef.current && prefixRef.current.contains(target) || suffixRef.current && suffixRef.current.contains(target));\n }\n\n function isSpinner(target) {\n return target instanceof Element && spinnerRef.current && spinnerRef.current.contains(target);\n }\n\n function isVerticalContent(target) {\n return target instanceof Element && verticalContentRef.current && (verticalContentRef.current.contains(target) || verticalContentRef.current.contains(document.activeElement));\n }\n}\n\nfunction getRows(multiline) {\n if (!multiline) return undefined;\n return typeof multiline === 'number' ? multiline : 1;\n}\n\nfunction normalizeAriaMultiline(multiline) {\n if (!multiline) return undefined;\n return Boolean(multiline) || typeof multiline === 'number' && multiline > 0 ? {\n 'aria-multiline': true\n } : undefined;\n}\n\nexport { TextField };\n","var styles = {\n \"PageActions\": \"Polaris-PageActions\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { isInterface } from '../../utilities/is-interface.js';\nimport { isReactElement } from '../../utilities/is-react-element.js';\nimport styles from './PageActions.scss.js';\nimport { buttonsFrom } from '../Button/utils.js';\nimport { ButtonGroup } from '../ButtonGroup/ButtonGroup.js';\nimport { LegacyStack } from '../LegacyStack/LegacyStack.js';\n\nfunction PageActions({\n primaryAction,\n secondaryActions\n}) {\n let primaryActionMarkup = null;\n\n if (isReactElement(primaryAction)) {\n primaryActionMarkup = /*#__PURE__*/React.createElement(React.Fragment, null, primaryAction);\n } else if (primaryAction) {\n primaryActionMarkup = buttonsFrom(primaryAction, {\n primary: true\n });\n }\n\n let secondaryActionsMarkup = null;\n\n if (isInterface(secondaryActions) && secondaryActions.length > 0) {\n secondaryActionsMarkup = /*#__PURE__*/React.createElement(ButtonGroup, null, buttonsFrom(secondaryActions));\n } else if (isReactElement(secondaryActions)) {\n secondaryActionsMarkup = /*#__PURE__*/React.createElement(React.Fragment, null, secondaryActions);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.PageActions\n }, /*#__PURE__*/React.createElement(LegacyStack, {\n distribution: \"trailing\",\n spacing: \"tight\"\n }, secondaryActionsMarkup, primaryActionMarkup));\n}\n\nexport { PageActions };\n","var styles = {\n \"Title\": \"Polaris-SkeletonPage__Title\",\n \"SkeletonTitle\": \"Polaris-SkeletonPage__SkeletonTitle\"\n};\n\nexport { styles as default };\n","var styles = {\n \"VerticalStack\": \"Polaris-VerticalStack\",\n \"listReset\": \"Polaris-VerticalStack--listReset\",\n \"fieldsetReset\": \"Polaris-VerticalStack--fieldsetReset\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames, getResponsiveProps, sanitizeCustomProperties } from '../../utilities/css.js';\nimport styles from './VerticalStack.scss.js';\n\nconst VerticalStack = ({\n as = 'div',\n children,\n align,\n inlineAlign,\n gap,\n id,\n reverseOrder = false,\n ...restProps\n}) => {\n const className = classNames(styles.VerticalStack, (as === 'ul' || as === 'ol') && styles.listReset, as === 'fieldset' && styles.fieldsetReset);\n const style = {\n '--pc-vertical-stack-align': align ? `${align}` : '',\n '--pc-vertical-stack-inline-align': inlineAlign ? `${inlineAlign}` : '',\n '--pc-vertical-stack-order': reverseOrder ? 'column-reverse' : 'column',\n ...getResponsiveProps('vertical-stack', 'gap', 'space', gap)\n };\n return /*#__PURE__*/React.createElement(as, {\n className,\n style: sanitizeCustomProperties(style),\n ...restProps\n }, children);\n};\n\nexport { VerticalStack };\n","import React from 'react';\nimport styles from './SkeletonPage.scss.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Box } from '../Box/Box.js';\nimport { VerticalStack } from '../VerticalStack/VerticalStack.js';\nimport { HorizontalStack } from '../HorizontalStack/HorizontalStack.js';\n\nfunction SkeletonPage({\n children,\n fullWidth,\n narrowWidth,\n primaryAction,\n title = '',\n backAction,\n breadcrumbs\n}) {\n const i18n = useI18n();\n const titleContent = title ? /*#__PURE__*/React.createElement(\"h1\", {\n className: styles.Title\n }, title) : /*#__PURE__*/React.createElement(\"div\", {\n className: styles.SkeletonTitle\n }, /*#__PURE__*/React.createElement(Box, {\n background: \"bg-strong\",\n minWidth: \"120px\",\n minHeight: \"28px\",\n borderRadius: \"1\"\n }));\n const primaryActionMarkup = primaryAction ? /*#__PURE__*/React.createElement(Box, {\n id: \"SkeletonPage-PrimaryAction\",\n borderRadius: \"1\",\n background: \"bg-strong\",\n minHeight: \"2.25rem\",\n minWidth: \"6.25rem\"\n }) : null;\n const breadcrumbMarkup = breadcrumbs || backAction ? /*#__PURE__*/React.createElement(Box, {\n borderRadius: \"1\",\n background: \"bg-strong\",\n minHeight: \"2.25rem\",\n minWidth: \"2.25rem\",\n maxWidth: \"2.25rem\"\n }) : null;\n return /*#__PURE__*/React.createElement(VerticalStack, {\n gap: \"4\",\n inlineAlign: \"center\"\n }, /*#__PURE__*/React.createElement(Box, Object.assign({\n width: \"100%\",\n padding: \"0\",\n paddingInlineStart: {\n sm: '6'\n },\n paddingInlineEnd: {\n sm: '6'\n },\n maxWidth: \"var(--pc-skeleton-page-max-width)\",\n \"aria-label\": i18n.translate('Polaris.SkeletonPage.loadingLabel'),\n role: \"status\"\n }, narrowWidth && {\n maxWidth: 'var(--pc-skeleton-page-max-width-narrow)'\n }, fullWidth && {\n maxWidth: 'none'\n }), /*#__PURE__*/React.createElement(VerticalStack, null, /*#__PURE__*/React.createElement(Box, {\n paddingBlockStart: {\n xs: '4',\n md: '5'\n },\n paddingBlockEnd: {\n xs: '4',\n md: '5'\n },\n paddingInlineStart: {\n xs: '4',\n sm: '0'\n },\n paddingInlineEnd: {\n xs: '4',\n sm: '0'\n },\n width: \"100%\"\n }, /*#__PURE__*/React.createElement(HorizontalStack, {\n gap: \"4\",\n align: \"space-between\",\n blockAlign: \"center\"\n }, /*#__PURE__*/React.createElement(HorizontalStack, {\n gap: \"4\"\n }, breadcrumbMarkup, /*#__PURE__*/React.createElement(Box, {\n paddingBlockStart: \"1\",\n paddingBlockEnd: \"1\"\n }, titleContent)), primaryActionMarkup)), /*#__PURE__*/React.createElement(Box, {\n paddingBlockEnd: \"2\",\n width: \"100%\"\n }, children))));\n}\n\nexport { SkeletonPage };\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","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 React, { Component } from 'react';\r\nimport { Layout, Card, SkeletonPage, TextContainer, SkeletonBodyText, SkeletonDisplayText } from '@shopify/polaris';\r\n\r\nexport class SkeletonPageCustom extends Component {\r\n render() {\r\n return (\r\n <SkeletonPage>\r\n <Layout>\r\n <Layout.Section>\r\n <Card sectioned>\r\n <TextContainer>\r\n <SkeletonDisplayText size=\"small\" />\r\n <SkeletonBodyText lines={9} />\r\n </TextContainer>\r\n </Card>\r\n </Layout.Section>\r\n </Layout>\r\n </SkeletonPage>\r\n );\r\n }\r\n}\r\n","export const customFetch = () => {\r\n let token = new URLSearchParams(window.location.search).get(\"token\");\r\n\r\n if (!token) {\r\n return fetch;\r\n }\r\n\r\n return (url, options) => {\r\n if (!options) {\r\n options = {};\r\n }\r\n if (!options.headers) {\r\n options.headers = {};\r\n }\r\n\r\n return fetch(url, {\r\n ...options,\r\n headers: {\r\n ...options.headers,\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n };\r\n};","import { customFetch } from './customFetch';\r\n\r\nexport const fetchApi = (...args) => {\r\n let cusFetch = () => { }\r\n\r\n if (window.authenticatedFetch) {\r\n cusFetch = window.authenticatedFetch;\r\n } else {\r\n cusFetch = customFetch();\r\n }\r\n\r\n return cusFetch(...args);\r\n};","import React, { Component } from 'react';\r\nimport { Banner, Page, Layout, Card, FormLayout, TextField, SettingToggle, TextStyle, Stack, Checkbox, DisplayText, PageActions, Spinner, ResourceList, ResourceItem, Icon, Badge,InlineGrid, Image, Box, Text, Bleed, EmptyState, Button, CalloutCard, Modal, LegacyStack, TextContainer, Frame } from '@shopify/polaris';\r\nimport { SkeletonPageCustom } from './SkeletonPageCustom';\r\nimport { BuyButtonMajor, CartMajor, CartDownMajor, ViewMajor, BuyButtonButtonLayoutMajor, SidebarRightMajor } from '@shopify/polaris-icons';\r\nimport $ from 'jquery'; \r\nimport { fetchApi } from './helpers/fetchApi';\r\n\r\nexport class Dashboard extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n props.setIsLoading(true);\r\n\r\n this.saveChanges = this.saveChanges.bind(this);\r\n this.handleEnabledChange = this.handleEnabledChange.bind(this);\r\n this.handleLiveModeChange = this.handleLiveModeChange.bind(this);\r\n this.handleQuickLoadChange = this.handleQuickLoadChange.bind(this);\r\n this.nextOnboardingStep = this.nextOnboardingStep.bind(this);\r\n\r\n this.state = {\r\n initState: {}, model: {}, loading: true, onboarding: {}, common: props.common, url: window.location.search, showSetupGuideBanner: true, showAppEmbedBanner: false, showDiscountModal: props.discount\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateData();\r\n this.getQuickStats();\r\n this.props.setSaveChanges(this.saveChanges);\r\n this.props.setNextOnboardingStep(this.nextOnboardingStep);\r\n }\r\n\r\n handleChange(fieldName, newValue) {\r\n this.setState(prevState => {\r\n let model = Object.assign({}, prevState.model);\r\n model[fieldName] = newValue;\r\n this.props.setIsDirty(JSON.stringify(this.state.initState) !== JSON.stringify(model));\r\n return { model };\r\n });\r\n }\r\n\r\n handleOnboardingChange(skip) {\r\n\r\n if (this.state.onboarding.currentStep === 0) {\r\n this.setState(prevState => {\r\n let onboarding = Object.assign({}, prevState.onboarding);\r\n onboarding.visible = false;\r\n return { onboarding };\r\n });\r\n return;\r\n }\r\n\r\n if (this.state.onboarding.currentStep === 2 && !skip) {\r\n window.open(this.state.model.demoUrl, '_blank');\r\n this.props.doOnboardingStep(this.state.onboarding.currentStep);\r\n }\r\n\r\n if (this.state.onboarding.currentStep === 23) {\r\n if (skip) {\r\n this.completeOnboarding();\r\n this.props.navigate('support');\r\n }\r\n else {\r\n this.props.doOnboardingStep(this.state.onboarding.currentStep);\r\n }\r\n }\r\n\r\n if (this.state.onboarding.currentStep === 3) {\r\n if (skip) {\r\n this.props.doOnboardingStep(this.state.onboarding.currentStep);\r\n }\r\n else {\r\n this.props.toggleModalReviewActive();\r\n }\r\n }\r\n }\r\n\r\n handleEnabledChange() {\r\n this.handleChange('enabled', !this.state.model.enabled);\r\n }\r\n\r\n handleLiveModeChange() {\r\n this.handleChange('liveMode', !this.state.model.liveMode);\r\n }\r\n\r\n handleQuickLoadChange() {\r\n window.appBridgeRedirectExternal(\"https://\" + this.props.common.shopName + \"/admin/themes/current/editor?context=apps&&template=product&activateAppId=2d1e1d5d-e947-4201-9a4f-8b73ff50f821%2Fsatcb/app-embed\");\r\n }\r\n\r\n calcOnboardingProgress() {\r\n var completedSteps = 1;\r\n if (this.state.onboarding.step2Done) {\r\n completedSteps++;\r\n }\r\n if (this.state.onboarding.step23Done) {\r\n completedSteps++;\r\n }\r\n if (this.state.onboarding.step3Done) {\r\n completedSteps++;\r\n }\r\n\r\n return Math.round(completedSteps / 4 * 100);\r\n }\r\n\r\n getOnboardingActionText() {\r\n var txt = 'Close';\r\n if (this.state.onboarding.currentStep === 2) {\r\n txt = 'Check it out';\r\n }\r\n else if (this.state.onboarding.currentStep === 23) {\r\n txt = 'All looks good';\r\n }\r\n else if (this.state.onboarding.currentStep === 3) {\r\n txt = 'I\\'ll do it!';\r\n }\r\n\r\n return txt;\r\n }\r\n\r\n showOnboardingSecondaryAction() {\r\n return this.state.onboarding.currentStep === 23 || this.state.onboarding.currentStep === 3;\r\n }\r\n\r\n getOnboardingSecondaryActionText() {\r\n var txt = '';\r\n if (this.state.onboarding.currentStep === 23) {\r\n txt = 'I need help';\r\n }\r\n else if (this.state.onboarding.currentStep === 3) {\r\n txt = 'Skip';\r\n }\r\n\r\n return txt;\r\n }\r\n\r\n setOnboardingCurrentStep(step) {\r\n this.setState(prevState => {\r\n let onboarding = Object.assign({}, prevState.onboarding);\r\n onboarding.currentStep = step;\r\n return { onboarding };\r\n });\r\n }\r\n\r\n nextOnboardingStep(prevStep) {\r\n var nextStep = 0;\r\n if (prevStep === 2) {\r\n if (!this.state.onboarding.step23Done) {\r\n nextStep = 23;\r\n }\r\n else if (!this.state.onboarding.step3Done) {\r\n nextStep = 3;\r\n }\r\n\r\n this.setState(prevState => {\r\n let onboarding = Object.assign({}, prevState.onboarding);\r\n onboarding.step2Done = true;\r\n onboarding.currentStep = nextStep;\r\n return { onboarding };\r\n });\r\n }\r\n else if (prevStep === 23) {\r\n if (!this.state.onboarding.step2Done) {\r\n nextStep = 2;\r\n }\r\n else if (!this.state.onboarding.step3Done) {\r\n nextStep = 3;\r\n }\r\n\r\n this.setState(prevState => {\r\n let onboarding = Object.assign({}, prevState.onboarding);\r\n onboarding.step23Done = true;\r\n onboarding.currentStep = nextStep;\r\n return { onboarding };\r\n });\r\n }\r\n else if (prevStep === 3) {\r\n if (!this.state.onboarding.step2Done) {\r\n nextStep = 2;\r\n }\r\n else if (!this.state.onboarding.step23Done) {\r\n nextStep = 23;\r\n }\r\n\r\n this.setState(prevState => {\r\n let onboarding = Object.assign({}, prevState.onboarding);\r\n onboarding.step3Done = true;\r\n onboarding.currentStep = nextStep;\r\n return { onboarding };\r\n });\r\n }\r\n }\r\n\r\n showOnboardingStep3() {\r\n return this.state.onboarding.step2Done && this.state.onboarding.step23Done;\r\n }\r\n\r\n render() {\r\n let token = !window.navigate ? `&token=${new URLSearchParams(window.location.search).get(\"token\")}` : \"\";\r\n\r\n const items = [\r\n {\r\n url: 'sticky-add-to-cart-bar' + this.state.model.shopQueryString + token,\r\n name: 'Sticky Add To Cart Bar',\r\n icon: BuyButtonMajor,\r\n enabled: this.state.model.stickyAddToCartBarEnabled\r\n },\r\n {\r\n url: 'sticky-cart' + this.state.model.shopQueryString + token,\r\n name: 'Sticky Cart',\r\n icon: CartMajor,\r\n enabled: this.state.model.stickyCartEnabled\r\n },\r\n {\r\n url: 'quick-buy-button' + this.state.model.shopQueryString + token,\r\n name: 'Quick Buy Button',\r\n icon: CartDownMajor,\r\n enabled: this.state.model.quickBuyButtonEnabled\r\n },\r\n {\r\n url: 'quick-view' + this.state.model.shopQueryString + token,\r\n name: 'Quick View',\r\n icon: ViewMajor,\r\n enabled: this.state.model.quickViewEnabled\r\n },\r\n {\r\n url: 'sticky-checkout-bar' + this.state.model.shopQueryString + token,\r\n name: 'Sticky Checkout Bar',\r\n icon: BuyButtonButtonLayoutMajor,\r\n enabled: this.state.model.stickyCheckoutBarEnabled\r\n },\r\n {\r\n url: 'cart-slider' + this.state.model.shopQueryString + token,\r\n name: 'Cart Slider',\r\n icon: SidebarRightMajor,\r\n enabled: this.state.model.cartSliderEnabled\r\n },\r\n ];\r\n\r\n const widgets = (\r\n <ResourceList\r\n items={items}\r\n renderItem={(item) => {\r\n const { url, name, icon, enabled } = item;\r\n\r\n return (\r\n <ResourceItem\r\n url={url}\r\n name={name}\r\n >\r\n <div className=\"stack-last-right\">\r\n <Stack>\r\n <Stack.Item>\r\n <Icon source={icon} />\r\n </Stack.Item>\r\n <Stack.Item>\r\n <TextStyle variation=\"strong\">{name}</TextStyle>\r\n </Stack.Item>\r\n <Stack.Item fill>\r\n <Badge status={enabled ? 'success' : 'critical'}>{enabled ? 'Enabled' : 'Disabled'}</Badge>\r\n </Stack.Item>\r\n </Stack>\r\n </div>\r\n </ResourceItem>\r\n );\r\n }}\r\n />\r\n );\r\n setInterval(\r\n function () {\r\n {\r\n let sgb = $(\"#setup-guide-banner\");\r\n if ($(sgb).length === 1) {\r\n $(sgb).parent().parent().parent().addClass(\"Polaris-Banner--statusInfo\")\r\n }\r\n }\r\n }\r\n , 1000)\r\n let appEmbeddUrl = \"https://\" + this.props.common.shopName + \"/admin/themes/current/editor?context=apps&&template=product&activateAppId=2d1e1d5d-e947-4201-9a4f-8b73ff50f821%2Fsatcb/app-embed\";\r\n return (\r\n this.state.loading ?\r\n <SkeletonPageCustom />\r\n :\r\n <Page title={'Hello ' + this.state.model.ownerName + ' 👋'}>\r\n <Layout>\r\n <Layout.Section\r\n\r\n >\r\n {/* Commented on 23/05/2024 */}\r\n {/* {\r\n typeof (this.props.common.trialDaysLeft) !== \"undefined\" \r\n && this.props.common.trialDaysLeft > 0 \r\n && this.props.common.showSetupGuideBanner \r\n && this.state.showSetupGuideBanner &&\r\n <Banner\r\n action={{\r\n content: 'Setup Guide',\r\n onAction: () => {\r\n window.appBridgeRedirectExternal('https://intercom.help/codeinero-help_articles/en/articles/7861583-after-installing-sticky-add-to-cart-booster-pro-here-s-what-to-do-next');\r\n }\r\n }}\r\n tone=\"info\"\r\n onDismiss={ async () => {\r\n this.setState({ showSetupGuideBanner: false });\r\n const response = await fetchApi('api/home/saveSetupGuideDismissed', { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(this.state.model) });\r\n const data = await response.json();\r\n }}\r\n >\r\n <p id=\"setup-guide-banner\">Welcome to Sticky Add To Cart BOOSTER PRO, check out our setup guide to get started!</p>\r\n </Banner>\r\n } */}\r\n\r\n {/* {\r\n typeof(this.props.common.trialDaysLeft) !== \"undefined\" && this.props.common.trialDaysLeft > 0 &&\r\n <Banner\r\n title=\"Hope you're enjoying your Free Trial!\"\r\n status=\"warning\"\r\n action={{content: 'Activate your plan', onAction: () => { \r\n const params = new URLSearchParams(this.state.url);\r\n const shop = params.get(\"shop\");\r\n const host = params.get(\"host\");\r\n window.appBridgeRedirect('https://stickyaddtocartbar.azurewebsites.net/Account/ActivatePlan?shop=' + shop + '&host=' + host);\r\n }}}\r\n >\r\n <p> There's {this.props.common.trialDaysLeft} days left before your free trial expires. Once your trial is over, you'll need to pick a plan to keep enjoying all of Sticky Add To Cart Bar Booster Pro's features. Or, if you're ready you can click the button below to activate it now. Don't worry though, you won't be charged until the free trial is over!</p>\r\n </Banner>\r\n } */}\r\n {/* {\r\n typeof(this.props.common.trialDaysLeft) !== \"undefined\" && this.props.common.trialDaysLeft > 0 &&\r\n <Banner\r\n title=\"Enjoying your free trial? Upgrade during your free trial to receive 25% off your monthly fee for the next 12 months!\"\r\n status=\"info\"\r\n action={{content: 'Get 25% off', onAction: () => { \r\n const params = new URLSearchParams(this.state.url);\r\n const shop = params.get(\"shop\");\r\n const host = params.get(\"host\");\r\n window.appBridgeRedirect('https://stickyaddtocartbar.azurewebsites.net/Account/ActivatePlan?shop=' + shop + '&host=' + host + '&plan=DSCT25');\r\n }}}\r\n >\r\n {/* <p> There's {this.props.common.trialDaysLeft} days left before your free trial expires. Once your trial is over, you'll need to pick a plan to keep enjoying all of Sticky Add To Cart Bar Booster Pro's features. Or, if you're ready you can click the button below to activate it now. Don't worry though, you won't be charged until the free trial is over!</p> */}\r\n {/*<p>You have {this.props.common.trialDaysLeft} days left before your free trial expires. Upgrade now to continue enjoying all the features of Sticky Add To Cart Booster Pro</p>\r\n </Banner>\r\n } */}\r\n {\r\n typeof(this.props.common.trialDaysLeft) !== \"undefined\" && this.props.common.trialDaysLeft > 0 &&\r\n <Banner\r\n title=\"Hope you're enjoying your Free Trial!\"\r\n status=\"info\"\r\n action={{content: 'Activate your plan', onAction: () => { \r\n const params = new URLSearchParams(this.state.url);\r\n const shop = params.get(\"shop\");\r\n const host = params.get(\"host\");\r\n window.appBridgeRedirect('https://stickyaddtocartbar.azurewebsites.net/Account/ActivatePlan?shop=' + shop + '&host=' + host);\r\n }}}\r\n >\r\n <p> There's {this.props.common.trialDaysLeft} days left before your free trial expires. Once your trial is over, you'll need to pick a plan to keep enjoying all of Sticky Add To Cart Bar Booster Pro's features. Or, if you're ready you can click the button below to activate it now. Don't worry though, you won't be charged until the free trial is over!</p>\r\n </Banner>\r\n } \r\n { !this.props.common.isAppEmbedEnabled &&\r\n \r\n <Banner\r\n title=\"Enable Sticky Add to Cart Booster Pro\"\r\n status=\"warning\"\r\n action={{\r\n content: 'Get Started', onAction: () => {\r\n this.setState({ showAppEmbedBanner: true });\r\n }\r\n }}\r\n >\r\n <p> Sticky Add to Cart Booster Pro now uses Shopify Theme App Extension to improve the loading speed of all our widgets, click the button below to get started!</p>\r\n </Banner>\r\n }\r\n { this.props.discount &&\r\n <Modal\r\n // activator={this.state.showAppEmbedBanner ? <Button onClick={() => { this.setState({ showAppEmbedBanner: false }) }}>Activate App Embed</Button> : null}\r\n open={this.state.showDiscountModal}\r\n onClose={() => { this.setState({ showDiscountModal: false }) }}\r\n title=\"Success!\"\r\n primaryAction={{\r\n content: 'Approve discounted monthly charge',\r\n onAction: () => { \r\n const params = new URLSearchParams(this.state.url);\r\n const shop = params.get(\"shop\");\r\n const host = params.get(\"host\");\r\n window.appBridgeRedirect('https://stickyaddtocartbar.azurewebsites.net/Account/ActivatePlan?shop=' + shop + '&host=' + host);\r\n }\r\n }}\r\n >\r\n <Modal.Section>\r\n <TextContainer>\r\n <div className=\"Polaris-Stack Polaris-Stack--vertical\">\r\n <div className=\"Polaris-Stack__Item\">\r\n <p>A monthly app subscription discount of {this.props.discount}% off for life has been applied to your account.</p>\r\n </div>\r\n </div>\r\n </TextContainer>\r\n </Modal.Section>\r\n </Modal>\r\n\r\n }\r\n { this.state.showAppEmbedBanner &&\r\n <Modal\r\n // activator={this.state.showAppEmbedBanner ? <Button onClick={() => { this.setState({ showAppEmbedBanner: false }) }}>Activate App Embed</Button> : null}\r\n open={this.state.showAppEmbedBanner}\r\n onClose={() => { this.setState({ showAppEmbedBanner: false }) }}\r\n title=\"Enable Sticky Add to Cart Booster Pro\"\r\n primaryAction={{\r\n content: 'Open Theme Editor',\r\n onAction: () => { window.appBridgeRedirectExternal(appEmbeddUrl) }\r\n }}\r\n >\r\n <Modal.Section>\r\n <TextContainer>\r\n <div className=\"Polaris-Stack Polaris-Stack--vertical\">\r\n <div className=\"Polaris-Stack__Item\">\r\n <ol className=\"Polaris-List Polaris-List--spacingLoose Polaris-List--typeNumber\">\r\n <li className=\"Polaris-List__Item\">\r\n <div className=\"Polaris-Stack Polaris-Stack--alignmentCenter\">\r\n <div className=\"Polaris-Stack__Item\">\r\n <p>Open your theme by clicking on <strong>Open Theme Editor</strong> button</p>\r\n </div>\r\n </div>\r\n \r\n </li>\r\n <li className=\"Polaris-List__Item\">\r\n <div className=\"Polaris-Stack Polaris-Stack--vertical\">\r\n <div className=\"Polaris-Stack__Item\">\r\n <div>Click on the <strong>Save</strong> button on the top right corner.</div>\r\n </div>\r\n </div>\r\n </li>\r\n <li className=\"Polaris-List__Item\">\r\n <div className=\"Polaris-Stack Polaris-Stack--alignmentCenter\">\r\n <div className=\"Polaris-Stack__Item\"><div>You're done. Now you can start using Sticky Add To Cart Bar Booster pro.</div></div>\r\n </div>\r\n </li>\r\n </ol>\r\n </div>\r\n </div>\r\n </TextContainer>\r\n </Modal.Section>\r\n </Modal>\r\n } \r\n </Layout.Section>\r\n {\r\n !this.state.onboarding.visible ? '' :\r\n <Layout.Section>\r\n <Card title={'Let\\'s get started (' + this.calcOnboardingProgress() + '%)'} sectioned\r\n primaryFooterAction={{ content: this.getOnboardingActionText(), onAction: () => { this.handleOnboardingChange(false) } }}\r\n secondaryFooterActions={this.showOnboardingSecondaryAction() ? [{ content: this.getOnboardingSecondaryActionText(), onAction: () => { this.handleOnboardingChange(true) } }] : null}>\r\n <div className=\"onboarding-progressbar\">\r\n <div className=\"completed\" style={{ width: this.calcOnboardingProgress() + '%' }}></div>\r\n </div>\r\n <ul className=\"onboarding-steps\">\r\n <li><span>1. </span><span className={'step-done'}>App successfully installed</span></li>\r\n <li><span>2. </span><span onClick={() => this.setOnboardingCurrentStep(2)} className={'step-link ' + (this.state.onboarding.step2Done ? 'step-done' : (this.state.onboarding.currentStep === 2 ? 'step-current' : ''))}>App is showing correctly on the storefront</span></li>\r\n <li><span>3. </span><span onClick={() => this.setOnboardingCurrentStep(23)} className={'step-link ' + (this.state.onboarding.step23Done ? 'step-done' : (this.state.onboarding.currentStep === 23 ? 'step-current' : ''))}>Almost there</span></li>\r\n <li style={{ display: this.showOnboardingStep3() ? 'list-item' : 'none' }}><span>4. </span><span onClick={() => this.setOnboardingCurrentStep(3)} className={'step-link ' + (this.state.onboarding.step3Done ? 'step-done' : (this.state.onboarding.currentStep === 3 ? 'step-current' : ''))}>Let us know what you think (optional but takes less than 30 seconds)</span></li>\r\n </ul>\r\n </Card>\r\n </Layout.Section>\r\n }\r\n <Layout.AnnotatedSection\r\n title=\"Quick Stats\"\r\n description=\"Statistics at a glance.\"\r\n >\r\n <Stack distribution=\"fillEvenly\">\r\n <Card sectioned title=\"Total clicks\">\r\n {\r\n this.state.quickStats ? <DisplayText size=\"large\">{this.state.quickStats.totalClicks}</DisplayText> :\r\n <div style={{ padding: '0.35rem' }}><Spinner size=\"small\" color=\"teal\" /></div>\r\n }\r\n </Card>\r\n <Card sectioned title=\"Total potential revenue\">\r\n {\r\n this.state.quickStats ? <DisplayText size=\"large\">{this.state.quickStats.totalRevenue + ' ' + this.state.quickStats.currency}</DisplayText> :\r\n <div style={{ padding: '0.35rem' }}><Spinner size=\"small\" color=\"teal\" /></div>\r\n }\r\n </Card>\r\n </Stack>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"App State\"\r\n //description=\"You can disable the app to hide it for public and then use the Preview button (step 2.) to see how it would look like if enabled (Don't forget to save the changes first!)\"\r\n >\r\n <div className=\"setting-toggle-group-card\">\r\n <Card sectioned>\r\n <SettingToggle action={{\r\n content: this.state.model.enabled ? 'Disable' : 'Enable',\r\n onAction: this.handleEnabledChange\r\n }}\r\n enabled={this.state.model.enabled}\r\n >\r\n <div>The app is currently <TextStyle variation=\"strong\">{this.state.model.enabled ? 'enabled' : 'disabled'}</TextStyle>.</div>\r\n <div className=\"custom-help-text\">Master switch.</div>\r\n </SettingToggle>\r\n <SettingToggle action={{\r\n content: this.state.model.liveMode ? 'Disable' : 'Enable',\r\n onAction: this.handleLiveModeChange\r\n }}\r\n enabled={this.state.model.liveMode}\r\n >\r\n <div>Live mode is <TextStyle variation=\"strong\">{this.state.model.liveMode ? 'enabled' : 'disabled'}</TextStyle>.</div>\r\n <div className=\"custom-help-text\">{this.state.model.liveMode ? 'The app is visible to all visitors. You can switch it to preview mode anytime.' : 'You as the admin of the store are the only one seeing the app on your storefront. Make sure to have Shopify admin bar visible since that is how app knows you are the admin.'}</div>\r\n </SettingToggle>\r\n <SettingToggle action={{\r\n content: this.props.common.isAppEmbedEnabled ? 'Disable' : 'Enable',\r\n onAction: this.handleQuickLoadChange\r\n }}\r\n enabled={this.props.common.isAppEmbedEnabled}\r\n >\r\n <div>App embed is <TextStyle variation=\"strong\">{this.props.common.isAppEmbedEnabled ? 'enabled' : 'disabled'}</TextStyle>.</div>\r\n <div className=\"custom-help-text\">Activate App Embed in your theme editor for Sticky Add To Cart Bar Booster Pro</div>\r\n </SettingToggle>\r\n </Card>\r\n </div>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"Widgets\"\r\n description=\"\"\r\n >\r\n <Card sectioned>\r\n <FormLayout>\r\n {widgets}\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"General Settings\"\r\n description=\"\"\r\n >\r\n <Card sectioned>\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Skip to Checkout when clicked on main (theme's) Add to Cart button\"\r\n checked={this.state.model.skipCart}\r\n onChange={(newValue) => this.handleChange('skipCart', newValue)}\r\n />\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"Custom Seasonal Themes\"\r\n description=\"\"\r\n >\r\n <Card sectioned>\r\n <Card.Section title=\"Halloween\">\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Show Ghost near Sticky Button\"\r\n checked={this.state.model.ghostEnabled}\r\n onChange={(newValue) => this.handleChange('ghostEnabled', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Web and Spider on Sticky Cart\"\r\n checked={this.state.model.spiderEnabled}\r\n onChange={(newValue) => this.handleChange('spiderEnabled', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Bats flying around\"\r\n checked={this.state.model.batsEnabled}\r\n onChange={(newValue) => this.handleChange('batsEnabled', newValue)}\r\n />\r\n <Stack alignment=\"center\">\r\n <p>Show</p>\r\n <TextField\r\n id=\"batsXTimes\"\r\n type=\"number\"\r\n value={this.state.model.batsXTimes}\r\n onChange={(newValue) => this.handleChange('batsXTimes', newValue)}\r\n />\r\n <p>Bats every</p>\r\n <TextField\r\n id=\"batsEveryX\"\r\n type=\"number\"\r\n value={this.state.model.batsEveryX}\r\n onChange={(newValue) => this.handleChange('batsEveryX', newValue)}\r\n />\r\n <p>seconds</p>\r\n </Stack>\r\n </FormLayout>\r\n </Card.Section>\r\n\r\n <Card.Section title=\"Winter\">\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Show Santa near Sticky Button\"\r\n checked={this.state.model.santaEnabled}\r\n onChange={(newValue) => this.handleChange('santaEnabled', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Santa's hat and Christmas ornament on Sticky Cart\"\r\n checked={this.state.model.hatBallEnabled}\r\n onChange={(newValue) => this.handleChange('hatBallEnabled', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show falling Snowflakes\"\r\n checked={this.state.model.snowEnabled}\r\n onChange={(newValue) => this.handleChange('snowEnabled', newValue)}\r\n />\r\n </FormLayout>\r\n </Card.Section>\r\n <Card.Section title=\"Valentine's Day\">\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Show Angel near Sticky Button\"\r\n checked={this.state.model.angelEnabled}\r\n onChange={(newValue) => this.handleChange('angelEnabled', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Hearts on Sticky Cart\"\r\n checked={this.state.model.heartsEnabled}\r\n onChange={(newValue) => this.handleChange('heartsEnabled', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show falling Hearts\"\r\n checked={this.state.model.showFallingHearts}\r\n onChange={(newValue) => this.handleChange('showFallingHearts', newValue)}\r\n />\r\n </FormLayout>\r\n </Card.Section>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.Section>\r\n {window.innerWidth < 768 ? \r\n <Stack alignment=\"center\" distribution=\"center\">\r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }}\r\n secondaryActions={[{ content: 'Get Support', url: '/support' + this.state.model.shopQueryString + token },\r\n { content: 'Uninstall', id:'btnUninstall' }]}\r\n />\r\n </Stack> \r\n : \r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }}\r\n secondaryActions={[{ content: 'Get Support', url: '/support' + this.state.model.shopQueryString + token },\r\n { content: 'Uninstall', id:'btnUninstall' }]}\r\n />\r\n }\r\n </Layout.Section>\r\n </Layout>\r\n </Page>\r\n );\r\n }\r\n\r\n async populateData() {\r\n const response = await fetchApi('api/home/dashboard');\r\n const data = await response.json();\r\n \r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n window.$('#top-nav-div').sticky({ topSpacing: 13, zIndex: 200, isNav: true });\r\n \r\n }\r\n },500);\r\n\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.props.setIsLoading(false);\r\n\r\n var onboarding = {\r\n visible: false,\r\n currentStep: 0,\r\n step2Done: data.onboardingStep2Done,\r\n step23Done: data.onboardingStep23Done,\r\n step3Done: data.onboardingStep3Done\r\n };\r\n\r\n if (!data.onboardingStep2Done) {\r\n onboarding.visible = true;\r\n if (onboarding.currentStep === 0) {\r\n onboarding.currentStep = 2;\r\n }\r\n }\r\n\r\n if (!data.onboardingStep23Done) {\r\n onboarding.visible = true;\r\n if (onboarding.currentStep === 0) {\r\n onboarding.currentStep = 23;\r\n }\r\n }\r\n\r\n if (!data.onboardingStep3Done) {\r\n onboarding.visible = true;\r\n if (onboarding.currentStep === 0) {\r\n onboarding.currentStep = 3;\r\n }\r\n }\r\n\r\n if (data.onboardingStep3Done)\r\n onboarding.visible = false;\r\n\r\n //Temporary hide Onboading\r\n onboarding.visible = false;\r\n\r\n this.setState({ initState: data, model: data, loading: false, onboarding: onboarding });\r\n }\r\n }\r\n\r\n async saveChanges() {\r\n this.props.setIsLoading(true);\r\n const response = await fetchApi('api/home/saveDashboard', { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(this.state.model) });\r\n const data = await response.json();\r\n this.props.setIsLoading(false);\r\n\r\n if (response.ok === true) {\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.setState({ initState: Object.assign({}, this.state.model) });\r\n this.props.setIsDirty(false);\r\n this.props.setToastActive(true);\r\n }\r\n }\r\n }\r\n\r\n async completeOnboarding() {\r\n const response = await fetchApi('api/home/completeOnboarding', { method: 'post', headers: { 'Content-Type': 'application/json' } });\r\n const data = await response.json();\r\n\r\n if (response.ok === true) {\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n }\r\n }\r\n\r\n async getQuickStats() {\r\n const response = await fetchApi('api/home/analytics');\r\n const data = await response.json();\r\n\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.setState({ quickStats: data });\r\n }\r\n }\r\n\r\n}","var sharedStyles = {\n \"RangeSlider\": \"Polaris-RangeSlider\"\n};\n\nexport { sharedStyles as default };\n","import React, { Component, createRef } from 'react';\nimport { debounce } from '../../../../utilities/debounce.js';\nimport { classNames } from '../../../../utilities/css.js';\nimport { Key } from '../../../../types.js';\nimport sharedStyles from '../../RangeSlider.scss.js';\nimport styles from './DualThumb.scss.js';\nimport { Text } from '../../../Text/Text.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 (isTupleEqual(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 (isTupleEqual(prevValue, value)) {\n return null;\n }\n\n const sanitizedValue = sanitizeValue(value, min, max, step);\n\n if (!isTupleEqual(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(Text, {\n as: \"span\",\n variant: \"headingXs\",\n alignment: \"center\"\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(Text, {\n as: \"span\",\n variant: \"headingXs\",\n alignment: \"center\"\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} // eslint-disable-next-line id-length\n\n\nfunction isTupleEqual(a, b) {\n if (a == null || b == null) {\n return false;\n }\n\n return a[0] === b[0] && a[1] === b[1];\n}\n\nexport { DualThumb };\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};\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};\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 { Text } from '../../../Text/Text.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(Text, {\n as: \"span\",\n variant: \"headingXs\",\n alignment: \"center\"\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","import React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 1 0-16 0 8 8 0 0 0 16 0zm-9 3a1 1 0 1 0 2 0v-2a1 1 0 1 0-2 0v2zm0-6a1 1 0 1 0 2 0 1 1 0 0 0-2 0z\"\n});\n\nvar SvgInfoMinor = function SvgInfoMinor(props) {\n return React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), _ref);\n};\n\nexport { SvgInfoMinor as S };\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}\nfunction hexToRgb(color) {\n if (color.length === 4) {\n const repeatHex = (hex1, hex2) => color.slice(hex1, hex2).repeat(2);\n\n const red = parseInt(repeatHex(1, 2), 16);\n const green = parseInt(repeatHex(2, 3), 16);\n const blue = parseInt(repeatHex(3, 4), 16);\n return {\n red,\n green,\n blue\n };\n }\n\n const red = parseInt(color.slice(1, 3), 16);\n const green = parseInt(color.slice(3, 5), 16);\n const blue = parseInt(color.slice(5, 7), 16);\n return {\n red,\n green,\n blue\n };\n}\n\nexport { hexToRgb, 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 '../../utilities/debounce.js';\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","import React, { Component } from 'react';\r\nimport { Button, Stack, Popover, TextField, ColorPicker, hsbToRgb, rgbToHsb, rgbString } from '@shopify/polaris';\r\n\r\nexport class ColorPickerCustom extends Component {\r\n\r\n constructor(props, ref) {\r\n super(props);\r\n\r\n this.state = { active: false, hsbColor: this.rgbStringToHsb(this.props.value), color: this.props.value };\r\n }\r\n\r\n handleColorChange(newValue) {\r\n newValue.alpha = parseFloat(newValue.alpha.toFixed(4));\r\n var rgbaColor = rgbString(hsbToRgb(newValue));\r\n this.setState({ hsbColor: newValue, color: rgbaColor });\r\n\r\n this.props.handleChange(this.props.fieldName, rgbaColor);\r\n }\r\n\r\n handleColorStringChange(newValue) {\r\n var color = this.rgbStringToHsb(newValue);\r\n this.setState({ hsbColor: color, color: newValue });\r\n\r\n this.props.handleChange(this.props.fieldName, newValue);\r\n }\r\n\r\n handlePopoverOpen() {\r\n this.setState({ active: true });\r\n }\r\n\r\n handlePopoverClose() {\r\n this.setState({ active: false });\r\n }\r\n\r\n rgbStringToHsb(value) {\r\n if (!value) {\r\n return { hue: 0, brightness: 0, saturation: 0, alpha: 1 };\r\n }\r\n\r\n var rgbValues;\r\n if (value.startsWith('#')) {\r\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\n value = value.replace(shorthandRegex, function (m, r, g, b) { return r + r + g + g + b + b; });\r\n rgbValues = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(value);\r\n if (!rgbValues) { rgbValues = [\"\"]; }\r\n return rgbToHsb({\r\n red: parseInt(rgbValues[1], 16),\r\n green: parseInt(rgbValues[2], 16),\r\n blue: parseInt(rgbValues[3], 16),\r\n alpha: 1\r\n });\r\n }\r\n else {\r\n rgbValues = value.replace(/[^\\d*.?\\d*,]/g, \"\").split(\",\");\r\n return rgbToHsb({\r\n red: parseFloat(rgbValues[0]),\r\n green: parseFloat(rgbValues[1]),\r\n blue: parseFloat(rgbValues[2]),\r\n alpha: parseFloat(rgbValues[3])\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const activator = (\r\n <Button onClick={() => this.handlePopoverOpen()} fullWidth={true} textAlign=\"left\">\r\n <Stack alignment=\"center\" spacing=\"tight\">\r\n <div className=\"color-picker-indicator\" style={{ background: this.state.color }} />\r\n <span>{this.state.color}</span>\r\n </Stack>\r\n </Button>\r\n );\r\n\r\n return (\r\n <div>\r\n <div className=\"Polaris-Labelled__LabelWrapper\"><div className=\"Polaris-Label\"><label className=\"Polaris-Label__Text\">{this.props.label}</label></div></div>\r\n <Popover\r\n active={this.state.active}\r\n activator={activator}\r\n onClose={() => this.handlePopoverClose()}\r\n >\r\n <Popover.Section>\r\n <ColorPicker\r\n onChange={(newValue) => this.handleColorChange(newValue)}\r\n color={this.state.hsbColor}\r\n allowAlpha\r\n />\r\n </Popover.Section>\r\n <Popover.Section>\r\n <TextField\r\n value={this.state.color}\r\n onChange={(newValue) => this.handleColorStringChange(newValue)}\r\n />\r\n </Popover.Section>\r\n </Popover>\r\n </div>\r\n );\r\n }\r\n\r\n}","import React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M2.5 1A1.5 1.5 0 0 0 1 2.5v11A1.5 1.5 0 0 0 2.5 15H7c0 .525-.015.793-.144 1.053-.12.239-.416.61-1.303 1.053A1 1 0 0 0 6.022 19h7.956a1.004 1.004 0 0 0 .995-.77 1.001 1.001 0 0 0-.544-1.134c-.873-.439-1.166-.806-1.285-1.043-.13-.26-.144-.528-.144-1.053h4.5a1.5 1.5 0 0 0 1.5-1.5v-11A1.5 1.5 0 0 0 17.5 1h-15zm8.883 16a2.621 2.621 0 0 1-.027-.053c-.357-.714-.357-1.42-.356-1.895V15H9v.052c0 .475.001 1.181-.356 1.895a2.913 2.913 0 0 1-.027.053h2.766zM17 11H3v2h14v-2z\"\n});\n\nvar SvgDesktopMajor = function SvgDesktopMajor(props) {\n return React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), _ref);\n};\n\nexport { SvgDesktopMajor as S };\n","import React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M3 1.5C3 .7 3.7 0 4.5 0h11c.8 0 1.5.7 1.5 1.5v17c0 .8-.7 1.5-1.5 1.5h-11c-.8 0-1.5-.7-1.5-1.5v-17zM5 2h10v14H5V2zm4 15a1 1 0 1 0 0 2h2a1 1 0 1 0 0-2H9z\"\n});\n\nvar SvgMobileMajor = function SvgMobileMajor(props) {\n return React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), _ref);\n};\n\nexport { SvgMobileMajor as S };\n","import React, { Component } from 'react';\r\nimport { Page, Layout, Card, FormLayout, TextField, RangeSlider, Banner, Checkbox, ButtonGroup, Button, Stack, Select, PageActions, SettingToggle, TextStyle, Tooltip, InlineStack, Text,Icon } from '@shopify/polaris';\r\nimport { InfoMinor } from '@shopify/polaris-icons';\r\nimport { SkeletonPageCustom } from './SkeletonPageCustom';\r\nimport { ColorPickerCustom } from './ColorPickerCustom';\r\nimport { DesktopMajor, MobileMajor } from '@shopify/polaris-icons';\r\nimport { fetchApi } from './helpers/fetchApi';\r\n\r\nvar btnAnimation = \"\";\r\n\r\nexport class StickyAddToCartBar extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n props.setIsLoading(true);\r\n\r\n this.saveChanges = this.saveChanges.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.togglePreviewActive = this.togglePreviewActive.bind(this);\r\n let prevActive = true;\r\n if(window.innerWidth < 768) {\r\n prevActive = false;\r\n }\r\n this.state = { initState: {}, model: {}, loading: true, previewActive: prevActive, previewDesktop: true };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateData();\r\n this.props.setSaveChanges(this.saveChanges);\r\n }\r\n\r\n handleChange(fieldName, newValue) {\r\n \r\n this.setState(prevState => {\r\n let model = Object.assign({}, prevState.model);\r\n model[fieldName] = newValue;\r\n this.props.setIsDirty(JSON.stringify(this.state.initState) !== JSON.stringify(model));\r\n return { model };\r\n });\r\n\r\n if (fieldName === 'buttonAnimation') {\r\n btnAnimation = newValue;\r\n window.$('.satcb_btn').satcb_animateCss(btnAnimation);\r\n }\r\n }\r\n\r\n handlePreview(previewDesktop) {\r\n this.setState({ previewDesktop: previewDesktop });\r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n setTimeout(function () { window.$('#top-nav-div').sticky('update'); }, 10);\r\n setTimeout(function () { window.$('#preview').sticky('update'); }, 0);\r\n\r\n \r\n }\r\n },500);\r\n }\r\n\r\n togglePreviewActive() {\r\n this.setState({ previewActive: !this.state.previewActive });\r\n \r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n setTimeout(function () { window.$('#top-nav-div').sticky('update'); }, 10);\r\n setTimeout(function () { window.$('#preview').sticky('update'); }, 0);\r\n \r\n }\r\n },500);\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n this.state.loading ?\r\n <SkeletonPageCustom />\r\n :\r\n <Page title=\"Sticky Add To Cart Bar\">\r\n <Layout>\r\n <Layout.Section>\r\n <Banner\r\n title=\"What is Sticky Add To Cart Bar/Button?\"\r\n status=\"info\"\r\n >\r\n <p>Sticky Add To Cart Bar is the top bar that becomes visible when the customer scrolls beyond your Buy button. The bar contains the Buy button so user can quickly add your product to the cart without scrolling back up. You can also enable the Skip to Checkout feature and send customers directly to checkout.</p>\r\n </Banner>\r\n </Layout.Section>\r\n <Layout.Section>\r\n <div id=\"preview\" className={(this.state.previewDesktop ? 'desktop' : 'mobile') + (this.state.previewActive ? '' : ' preview-hidden')}>\r\n <Card title=\"Preview\" sectioned actions={[{ content: this.state.previewActive ? 'Collapse ↑' : 'Expand ↓', onAction: this.togglePreviewActive }]}>\r\n <Card.Section>\r\n <div className=\"satcb_bar designNo0 designNo3 desktop_bar\" style={{\r\n opacity: (this.state.model.opacity / 100),\r\n width: this.state.previewDesktop ? '100%' : '414px',\r\n fontFamily: this.state.model.satcbBarFont ? this.state.model.satcbBarFont : '',\r\n backgroundColor: this.state.model.barBackgroundColor ? this.state.model.barBackgroundColor : '#fff',\r\n display: (!this.state.previewDesktop && this.state.model.useFullWidthButtonMobile) || !this.state.previewActive ? 'none' : 'block'\r\n }}>\r\n <div className=\"satcb_thumb-img\">\r\n <img className=\"satcb_thumb\" alt=\"Awesome Sneakers\" src=\"https://cdn.shopify.com/s/files/1/1832/6893/products/ni313171_600_thum1_10_674_17041.jpg?v=1489009994\"\r\n style={{ display: (this.state.previewDesktop && this.state.model.showProductImageDesktop) || (!this.state.previewDesktop && this.state.model.showProductImageMobile) ? 'block' : 'none' }} />\r\n </div>\r\n <div className=\"satcb_title\" >\r\n <a className=\"satcb_title_a\" href=\"/#\" onClick={(e) => e.preventDefault()}\r\n style={{\r\n color: this.state.model.productTitleColor ? this.state.model.productTitleColor : '#3d4246',\r\n fontSize: this.state.model.proTitleFontSize ? this.state.model.proTitleFontSize+\"px\" : '16px',\r\n display: (this.state.previewDesktop && this.state.model.showProductTitleDesktop) || (!this.state.previewDesktop && this.state.model.showProductTitleMobile) ? 'inline-block' : 'none'\r\n }}>\r\n Awesome Sneakers<span className=\"satcb_variant_title\"> - Red / 11</span>\r\n </a>\r\n <div className=\"satcb_reviews_stars\" style={{ display: (this.state.previewDesktop && this.state.model.showReviewStarsDesktop) || (!this.state.previewDesktop && this.state.model.showReviewStarsMobile) ? 'block' : 'none' }}>\r\n <meta itemProp=\"bestRating\" content=\"5\" />\r\n <meta itemProp=\"worstRating\" content=\"1\" />\r\n <meta itemProp=\"reviewCount\" content=\"1\" />\r\n <meta itemProp=\"ratingValue\" content=\"5.0\" />\r\n <i className=\"spr-icon spr-icon-star\"></i><i className=\"spr-icon spr-icon-star\"></i><i className=\"spr-icon spr-icon-star\"></i><i className=\"spr-icon spr-icon-star\"></i><i className=\"spr-icon spr-icon-star\"></i>\r\n <a href=\"/#\" onClick={(e) => e.preventDefault()} className=\"satcb_reviews_count\">(1)</a>\r\n </div>\r\n </div>\r\n {window.innerWidth < 768 ? <br/> : ''}\r\n <div className=\"satcb_btn\">\r\n <button style={{\r\n color: this.state.model.buttonTextColor ? this.state.model.buttonTextColor : '#fff',\r\n fontSize: this.state.model.proButtonFontSize ? this.state.model.proButtonFontSize + \"px\" : '16px',\r\n backgroundColor: this.state.model.buttonColor ? this.state.model.buttonColor : '#7796a8',\r\n borderColor: this.state.model.buttonColor ? this.state.model.buttonColor : '#7796a8',\r\n }}\r\n type=\"submit\" name=\"add\" className=\"primary product-form__cart-submit\">{this.state.model.buttonText ? this.state.model.buttonText : 'ADD TO CART'}\r\n </button>\r\n </div>\r\n <div className=\"satcb_confirmation\">\r\n Product Added!\r\n </div>\r\n <div className=\"satcb_price\" style={{\r\n color: this.state.model.priceColor ? this.state.model.priceColor : '#212b36',\r\n fontSize: this.state.model.proPriceFontSize ? this.state.model.proPriceFontSize + \"px\" : '16px',\r\n display: (this.state.previewDesktop && this.state.model.showPriceDesktop) || (!this.state.previewDesktop && this.state.model.showPriceMobile) ? 'flex' : 'none'\r\n }}>\r\n $129.00\r\n </div>\r\n <div className=\"satcb_was_price\" style={{\r\n color: this.state.model.comparePriceColor ? this.state.model.comparePriceColor : '#999',\r\n display: (this.state.previewDesktop && this.state.model.showComparePriceDesktop) || (!this.state.previewDesktop && this.state.model.showComparePriceMobile) ? 'flex' : 'none'\r\n }}>\r\n $159.00\r\n </div>\r\n <div className=\"satcb_variants\">\r\n <select className=\"single-option-selector single-option-selector-product-template product-form__input\" id=\"SingleOptionSelector-0\" data-index=\"option1\" defaultValue=\"Red\"\r\n style={{ display: (this.state.previewDesktop && this.state.model.variantsEnabledDesktop) || (!this.state.previewDesktop && this.state.model.variantsEnabledMobile) ? 'inline-block' : 'none' }}>\r\n <option value=\"Red\">Red</option>\r\n </select>\r\n <select className=\"single-option-selector single-option-selector-product-template product-form__input\" id=\"SingleOptionSelector-1\" data-index=\"option2\" defaultValue=\"11\"\r\n style={{ display: (this.state.previewDesktop && this.state.model.variantsEnabledDesktop) || (!this.state.previewDesktop && this.state.model.variantsEnabledMobile) ? 'inline-block' : 'none' }}>\r\n <option value=\"10\">10</option>\r\n <option value=\"11\">11</option>\r\n </select>\r\n <div className=\"satcb_qty\" style={{ display: (this.state.previewDesktop && this.state.model.qtyEnabledDesktop) || (!this.state.previewDesktop && this.state.model.qtyEnabledMobile) ? 'flex' : 'none' }}>\r\n <input type=\"number\" name=\"quantity\" defaultValue=\"1\" min=\"1\" pattern=\"[0-9]*\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"satcb_bar designNo2\" style={{ opacity: (this.state.model.opacity / 100), display: !this.state.previewDesktop && this.state.model.useFullWidthButtonMobile && this.state.previewActive ? 'block' : 'none' }}>\r\n <div className=\"satcb_variants\" style={{\r\n float: !this.state.model.variantsEnabledMobile && this.state.model.qtyEnabledMobile ? 'left' : 'none',\r\n width: !this.state.model.variantsEnabledMobile && this.state.model.qtyEnabledMobile ? '10%' : '100%',\r\n }}>\r\n <select className=\"single-option-selector single-option-selector-product-template product-form__input\" id=\"SingleOptionSelector-0\" data-index=\"option1\" defaultValue=\"Red\"\r\n style={{\r\n display: this.state.model.variantsEnabledMobile ? 'inline-block' : 'none',\r\n width: this.state.model.qtyEnabledMobile ? '45%' : '50%'\r\n }}>\r\n <option value=\"Red\">Red</option>\r\n </select>\r\n <select className=\"single-option-selector single-option-selector-product-template product-form__input\" id=\"SingleOptionSelector-1\" data-index=\"option2\" defaultValue=\"11\"\r\n style={{\r\n display: this.state.model.variantsEnabledMobile ? 'inline-block' : 'none',\r\n width: this.state.model.qtyEnabledMobile ? '45%' : '50%'\r\n }}>\r\n <option value=\"10\">10</option>\r\n <option value=\"11\">11</option>\r\n </select>\r\n <input type=\"number\" name=\"quantity\" defaultValue=\"1\" min=\"1\" pattern=\"[0-9]*\" style={{\r\n display: this.state.model.qtyEnabledMobile ? 'inline-block' : 'none',\r\n width: !this.state.model.variantsEnabledMobile && this.state.model.qtyEnabledMobile ? '100%' : '10%',\r\n height: !this.state.model.variantsEnabledMobile && this.state.model.qtyEnabledMobile ? '42px' : 'auto',\r\n }} />\r\n </div>\r\n <div className=\"satcb_btn\" style={{\r\n float: !this.state.model.variantsEnabledMobile && this.state.model.qtyEnabledMobile ? 'right' : 'none',\r\n width: !this.state.model.variantsEnabledMobile && this.state.model.qtyEnabledMobile ? '90%' : 'auto',\r\n }}>\r\n <button style={{\r\n color: this.state.model.buttonTextColor ? this.state.model.buttonTextColor : '#fff',\r\n backgroundColor: this.state.model.buttonColor ? this.state.model.buttonColor : '#7796a8',\r\n borderColor: this.state.model.buttonColor ? this.state.model.buttonColor : '#7796a8',\r\n }}\r\n type=\"submit\" name=\"add\" className=\"primary product-form__cart-submit\">{this.state.model.buttonText ? this.state.model.buttonText : 'ADD TO CART'}\r\n </button>\r\n </div>\r\n </div>\r\n </Card.Section>\r\n <Stack alignment=\"center\" distribution=\"center\">\r\n <div style={{ display: this.state.previewActive ? 'block' : 'none' }}>\r\n <ButtonGroup segmented con>\r\n <Button pressed={this.state.previewDesktop} onClick={(newValue) => this.handlePreview(true)} icon={DesktopMajor}>Desktop Preview</Button>\r\n <Button pressed={!this.state.previewDesktop} onClick={(newValue) => this.handlePreview(false)} icon={MobileMajor}>Mobile Preview</Button>\r\n </ButtonGroup>\r\n </div>\r\n </Stack>\r\n </Card>\r\n </div>\r\n </Layout.Section>\r\n <Layout.AnnotatedSection\r\n title=\"Sticky Add To Cart Bar State\"\r\n >\r\n <SettingToggle action={{\r\n content: this.state.model.enabled ? 'Disable' : 'Enable',\r\n onAction: () => { this.handleChange('enabled', !this.state.model.enabled) }\r\n }}\r\n enabled={this.state.model.enabled}\r\n >\r\n Sticky Add To Cart Bar is currently <TextStyle variation=\"strong\">{this.state.model.enabled ? 'enabled' : 'disabled'}</TextStyle>.\r\n </SettingToggle>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"General Settings\"\r\n description=\"\"\r\n >\r\n <Card sectioned>\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Skip to Checkout when clicked on Sticky Add to Cart Button\"\r\n checked={this.state.model.skipCart}\r\n onChange={(newValue) => this.handleChange('skipCart', newValue)}\r\n />\r\n <Select\r\n label=\"Button Animation\"\r\n helpText=\"Repeats every 5 seconds\"\r\n options={[{ label: 'None', value: 'none' }, { label: 'Bounce', value: 'bounce' }, { label: 'Flash', value: 'flash' }, { label: 'Pulse', value: 'pulse' }, { label: 'Rubber band', value: 'rubberBand' }, { label: 'Shake', value: 'shake' }, { label: 'Swing', value: 'swing' }, { label: 'Tada', value: 'tada' }, { label: 'Wobble', value: 'wobble' }, { label: 'Jello', value: 'jello' }]}\r\n onChange={(newValue) => this.handleChange('buttonAnimation', newValue)}\r\n value={this.state.model.buttonAnimation}\r\n />\r\n <Stack vertical spacing=\"tight\">\r\n <Stack wrap={false} alignment=\"center\" spacing=\"tight\">\r\n <Checkbox\r\n label=\"Enable Tracking\"\r\n checked={this.state.model.trackingEnabled}\r\n onChange={(newValue) => this.handleChange('trackingEnabled', newValue)}\r\n\r\n />\r\n <Tooltip content=\"This attribute can be used for app auditing and will appear in your Shopify order details page. The attribute name is _Added with Sticky Add To Cart BOOSTER PRO's Sticky Add To Cart Bar. This is not visible to your customers.\">\r\n <div style={{ lineHeight: 'normal', marginLeft: '4px' }}>\r\n <Icon source={InfoMinor} color=\"inkLightest\" />\r\n </div>\r\n </Tooltip>\r\n </Stack>\r\n </Stack>\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"Look and Feel\"\r\n description=\"App will automatically match your site's branding but you can also adjust it's look and feel to your liking here.\"\r\n >\r\n <Card sectioned>\r\n <FormLayout>\r\n <RangeSlider\r\n output\r\n label=\"Opacity\"\r\n min={0}\r\n step={5}\r\n max={100}\r\n onChange={(newValue) => this.handleChange('opacity', JSON.stringify(newValue))}\r\n value={this.state.model.opacity}\r\n />\r\n <TextField\r\n value={this.state.model.buttonText}\r\n onChange={(newValue) => this.handleChange('buttonText', newValue)}\r\n label=\"Override Button Text\"\r\n />\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Override Button Color\"\r\n fieldName=\"buttonColor\"\r\n value={this.state.model.buttonColor}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Override Button Text Color\"\r\n fieldName=\"buttonTextColor\"\r\n value={this.state.model.buttonTextColor}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Override Bar Background Color\"\r\n fieldName=\"barBackgroundColor\"\r\n value={this.state.model.barBackgroundColor}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Override Product Title Color\"\r\n fieldName=\"productTitleColor\"\r\n value={this.state.model.productTitleColor}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Override Price Color\"\r\n fieldName=\"priceColor\"\r\n value={this.state.model.priceColor}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Override Compare Price Color\"\r\n fieldName=\"comparePriceColor\"\r\n value={this.state.model.comparePriceColor}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group sectioned>\r\n <Select\r\n label=\"Override Font Face\"\r\n options={[{ label: 'Default', value: \"\" }, { label: 'Roboto', value: 'Roboto' }, { label: 'Playfair Display', value: 'Playfair Display' }, { label: 'Open Sans', value: 'Open Sans' }, { label: 'Oswald', value: 'Oswald' }, { label: 'Cabin', value: 'Cabin' }, { label: 'Montserrat', value: 'Montserrat' }, { label: 'Merriweather', value: 'Merriweather' }, { label: 'Cormorant', value: 'Cormorant' }, { label: 'Poppins', value: 'Poppins' }, { label: 'Nunito', value: 'Nunito' }, { label: 'Lato', value: 'Lato' }]}\r\n onChange={(newValue) => this.handleChange('satcbBarFont', newValue)}\r\n value={this.state.model.satcbBarFont}\r\n />\r\n <div></div>\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <RangeSlider\r\n output\r\n label=\"Override Title Font Size\"\r\n min={12}\r\n step={2}\r\n max={36}\r\n onChange={(newValue) => this.handleChange('proTitleFontSize', JSON.stringify(newValue))}\r\n value={this.state.model.proTitleFontSize}\r\n />\r\n <RangeSlider\r\n output\r\n label=\"Override Price Font Size\"\r\n min={12}\r\n step={2}\r\n max={36}\r\n onChange={(newValue) => this.handleChange('proPriceFontSize', JSON.stringify(newValue))}\r\n value={this.state.model.proPriceFontSize}\r\n />\r\n <RangeSlider\r\n output\r\n label=\"Override Button Font Size\"\r\n min={12}\r\n step={2}\r\n max={36}\r\n onChange={(newValue) => this.handleChange('proButtonFontSize', JSON.stringify(newValue))}\r\n value={this.state.model.proButtonFontSize}\r\n />\r\n <div></div>\r\n </FormLayout.Group>\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"Desktop Settings\"\r\n description=\"\"\r\n >\r\n <Card sectioned>\r\n <Card.Section>\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Show on desktop computers\"\r\n checked={this.state.model.showOnDesktop}\r\n onChange={(newValue) => this.handleChange('showOnDesktop', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show when user starts scrolling instead of when user scrolls below main Add To Cart button\"\r\n checked={this.state.model.showOnLoadDesktop}\r\n onChange={(newValue) => this.handleChange('showOnLoadDesktop', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Hide original Add To Cart button\"\r\n checked={this.state.model.hideOriginalButtonDesktop}\r\n onChange={(newValue) => this.handleChange('hideOriginalButtonDesktop', newValue)}\r\n />\r\n </FormLayout>\r\n </Card.Section>\r\n <Card.Section>\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Show Product Image\"\r\n checked={this.state.model.showProductImageDesktop}\r\n onChange={(newValue) => this.handleChange('showProductImageDesktop', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Product Title\"\r\n checked={this.state.model.showProductTitleDesktop}\r\n onChange={(newValue) => this.handleChange('showProductTitleDesktop', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Review Stars\"\r\n checked={this.state.model.showReviewStarsDesktop}\r\n onChange={(newValue) => this.handleChange('showReviewStarsDesktop', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Variant select\"\r\n checked={this.state.model.variantsEnabledDesktop}\r\n onChange={(newValue) => this.handleChange('variantsEnabledDesktop', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Quantity select\"\r\n checked={this.state.model.qtyEnabledDesktop}\r\n onChange={(newValue) => this.handleChange('qtyEnabledDesktop', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Quantity - and + buttons\"\r\n checked={this.state.model.qtyAddRemoveEnabledDesktop}\r\n onChange={(newValue) => this.handleChange('qtyAddRemoveEnabledDesktop', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Price\"\r\n checked={this.state.model.showPriceDesktop}\r\n onChange={(newValue) => this.handleChange('showPriceDesktop', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Compare Price\"\r\n checked={this.state.model.showComparePriceDesktop}\r\n onChange={(newValue) => this.handleChange('showComparePriceDesktop', newValue)}\r\n />\r\n </FormLayout>\r\n </Card.Section>\r\n <Card.Section>\r\n <FormLayout>\r\n <p>Bar position</p>\r\n <ButtonGroup segmented con>\r\n <Button pressed={this.state.model.barPositionDesktop === 'top'} onClick={(newValue) => this.handleChange('barPositionDesktop', 'top')}>\r\n Top\r\n </Button>\r\n <Button pressed={this.state.model.barPositionDesktop === 'bottom'} onClick={(newValue) => this.handleChange('barPositionDesktop', 'bottom')}>\r\n Bottom\r\n </Button>\r\n </ButtonGroup>\r\n <TextField\r\n label=\"Position Offset\"\r\n suffix=\"px\"\r\n type=\"number\"\r\n value={this.state.model.customPositionDesktop}\r\n onChange={(newValue) => this.handleChange('customPositionDesktop', newValue)}\r\n clearButton\r\n onClearButtonClick={() => this.handleChange('customPositionDesktop', null)}\r\n helpText=\"Use this to move Sticky Add To Cart Bar up or down. Depending on Bar position (top or bottom) this will push it for selected amount of pixels in corresponding direction.\"\r\n />\r\n <TextField\r\n label=\"Stack Order\"\r\n type=\"number\"\r\n value={this.state.model.zIndexDesktop}\r\n onChange={(newValue) => this.handleChange('zIndexDesktop', newValue)}\r\n clearButton\r\n onClearButtonClick={() => this.handleChange('zIndexDesktop', null)}\r\n helpText=\"Use this to push Sticky Add To Cart Bar either in front or behind other elements. An element with greater stack order will be in front of an element with a lower stack order.\"\r\n />\r\n </FormLayout>\r\n </Card.Section>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"Mobile Settings\"\r\n description=\"\"\r\n >\r\n <Card sectioned>\r\n <Card.Section>\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Show on tablets and mobile devices\"\r\n checked={this.state.model.showOnMobile}\r\n onChange={(newValue) => this.handleChange('showOnMobile', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show when user starts scrolling instead of when user scrolls below main Add To Cart button\"\r\n checked={this.state.model.showOnLoadMobile}\r\n onChange={(newValue) => this.handleChange('showOnLoadMobile', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Hide original Add To Cart button\"\r\n checked={this.state.model.hideOriginalButtonMobile}\r\n onChange={(newValue) => this.handleChange('hideOriginalButtonMobile', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show full width Add To Cart button instead of bar\"\r\n checked={this.state.model.useFullWidthButtonMobile}\r\n onChange={(newValue) => this.handleChange('useFullWidthButtonMobile', newValue)}\r\n />\r\n </FormLayout>\r\n </Card.Section>\r\n <Card.Section>\r\n <FormLayout>\r\n {\r\n this.state.model.useFullWidthButtonMobile ? '' :\r\n <Checkbox\r\n label=\"Show Product Image\"\r\n checked={this.state.model.showProductImageMobile}\r\n onChange={(newValue) => this.handleChange('showProductImageMobile', newValue)}\r\n />\r\n }\r\n {\r\n this.state.model.useFullWidthButtonMobile ? '' :\r\n <Checkbox\r\n label=\"Show Product Title\"\r\n checked={this.state.model.showProductTitleMobile}\r\n onChange={(newValue) => this.handleChange('showProductTitleMobile', newValue)}\r\n />\r\n }\r\n {\r\n this.state.model.useFullWidthButtonMobile ? '' :\r\n <Checkbox\r\n label=\"Show Review Stars\"\r\n checked={this.state.model.showReviewStarsMobile}\r\n onChange={(newValue) => this.handleChange('showReviewStarsMobile', newValue)}\r\n />\r\n }\r\n <Checkbox\r\n label=\"Show Variant select\"\r\n checked={this.state.model.variantsEnabledMobile}\r\n onChange={(newValue) => this.handleChange('variantsEnabledMobile', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Quantity select\"\r\n checked={this.state.model.qtyEnabledMobile}\r\n onChange={(newValue) => this.handleChange('qtyEnabledMobile', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Quantity - and + buttons\"\r\n checked={this.state.model.qtyAddRemoveEnabledMobile}\r\n onChange={(newValue) => this.handleChange('qtyAddRemoveEnabledMobile', newValue)}\r\n />\r\n {\r\n this.state.model.useFullWidthButtonMobile ? '' :\r\n <Checkbox\r\n label=\"Show Price\"\r\n checked={this.state.model.showPriceMobile}\r\n onChange={(newValue) => this.handleChange('showPriceMobile', newValue)}\r\n />\r\n }\r\n {\r\n this.state.model.useFullWidthButtonMobile ? '' :\r\n <Checkbox\r\n label=\"Show Compare Price\"\r\n checked={this.state.model.showComparePriceMobile}\r\n onChange={(newValue) => this.handleChange('showComparePriceMobile', newValue)}\r\n />\r\n }\r\n </FormLayout>\r\n </Card.Section>\r\n <Card.Section>\r\n <FormLayout>\r\n <p>Bar position</p>\r\n <ButtonGroup segmented con>\r\n <Button pressed={this.state.model.barPositionMobile === 'top'} onClick={(newValue) => this.handleChange('barPositionMobile', 'top')}>\r\n Top\r\n </Button>\r\n <Button pressed={this.state.model.barPositionMobile === 'bottom'} onClick={(newValue) => this.handleChange('barPositionMobile', 'bottom')}>\r\n Bottom\r\n </Button>\r\n </ButtonGroup>\r\n <TextField\r\n label=\"Position Offset\"\r\n suffix=\"px\"\r\n type=\"number\"\r\n value={this.state.model.customPositionMobile}\r\n onChange={(newValue) => this.handleChange('customPositionMobile', newValue)}\r\n clearButton\r\n onClearButtonClick={() => this.handleChange('customPositionMobile', null)}\r\n connectedRight={\r\n <Tooltip content=\"Use this to move Sticky Add To Cart Bar up or down. Depending on Bar position (top or bottom) this will push it for selected amount of pixels in corresponding direction.\">\r\n <Icon source={InfoMinor} color=\"base\" />\r\n </Tooltip>\r\n }\r\n />\r\n <TextField\r\n label=\"Stack Order\"\r\n type=\"number\"\r\n value={this.state.model.zIndexMobile}\r\n onChange={(newValue) => this.handleChange('zIndexMobile', newValue)}\r\n clearButton\r\n onClearButtonClick={() => this.handleChange('zIndexMobile', null)}\r\n helpText=\"Use this to push Sticky Add To Cart Bar either in front or behind other elements. An element with greater stack order will be in front of an element with a lower stack order.\"\r\n />\r\n </FormLayout>\r\n </Card.Section>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.Section>\r\n {window.innerWidth < 768 ? \r\n <Stack alignment=\"center\" distribution=\"center\">\r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }} />\r\n </Stack> \r\n : \r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }} />\r\n }\r\n\r\n </Layout.Section>\r\n </Layout>\r\n </Page >\r\n );\r\n }\r\n\r\n async populateData() {\r\n const response = await fetchApi('api/home/stickyAddToCartBar');\r\n const data = await response.json();\r\n\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.props.setIsLoading(false);\r\n this.setState({ initState: data, model: data, loading: false });\r\n\r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n window.$('#top-nav-div').sticky({ topSpacing: 13, zIndex: 200, isNav: true });\r\n window.$('#preview').sticky({ topSpacing: 115, zIndex: 100 });\r\n \r\n }\r\n },500);\r\n \r\n window.$('.satcb_title_a').click(function (e) {\r\n e.preventDefault();\r\n });\r\n window.$('.satcb_reviews_count').click(function (e) {\r\n e.preventDefault();\r\n });\r\n\r\n btnAnimation = data.buttonAnimation;\r\n setInterval(function () {\r\n if (window.$('.satcb_btn:hover').length === 0 && window.$('.satcb_btn:visible').length > 0 && btnAnimation !== 'None') {\r\n window.$('.satcb_btn').satcb_animateCss(btnAnimation);\r\n }\r\n }, 5000);\r\n }\r\n }\r\n\r\n async saveChanges() {\r\n this.props.setIsLoading(true);\r\n const response = await fetchApi('api/home/saveStickyAddToCartBar', { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(this.state.model) });\r\n const data = await response.json();\r\n this.props.setIsLoading(false);\r\n\r\n if (response.ok === true) {\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.setState({ initState: Object.assign({}, this.state.model) });\r\n this.props.setIsDirty(false);\r\n this.props.setToastActive(true);\r\n }\r\n }\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Page, Layout, Card, FormLayout, TextField, RangeSlider, Banner, SettingToggle, TextStyle, Checkbox, ButtonGroup, Button, Stack, Select, PageActions } from '@shopify/polaris';\r\nimport { SkeletonPageCustom } from './SkeletonPageCustom';\r\nimport { ColorPickerCustom } from './ColorPickerCustom';\r\nimport { DesktopMajor, MobileMajor } from '@shopify/polaris-icons';\r\nimport { fetchApi } from './helpers/fetchApi';\r\n\r\nvar btnAnimation = \"\";\r\n\r\nexport class StickyCheckoutBar extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n props.setIsLoading(true);\r\n\r\n this.saveChanges = this.saveChanges.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.togglePreviewActive = this.togglePreviewActive.bind(this);\r\n\r\n this.state = { initState: {}, model: {}, loading: true, previewActive: true, previewDesktop: true };\r\n }\r\n \r\n componentDidMount() {\r\n this.populateData();\r\n this.props.setSaveChanges(this.saveChanges);\r\n }\r\n\r\n handleChange(fieldName, newValue) {\r\n this.setState(prevState => {\r\n let model = Object.assign({}, prevState.model);\r\n model[fieldName] = newValue;\r\n this.props.setIsDirty(JSON.stringify(this.state.initState) !== JSON.stringify(model));\r\n return { model };\r\n });\r\n\r\n if (fieldName === 'buttonAnimation') {\r\n btnAnimation = newValue;\r\n window.$('.satcb_checkout_btn:visible').satcb_animateCss(btnAnimation);\r\n }\r\n }\r\n\r\n handlePreview(previewDesktop) {\r\n this.setState({ previewDesktop: previewDesktop });\r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n setTimeout(function () { window.$('#top-nav-div').sticky('update'); }, 10);\r\n setTimeout(function () { window.$('#preview').sticky('update'); }, 0);\r\n\r\n \r\n }\r\n },500);\r\n }\r\n\r\n togglePreviewActive() {\r\n this.setState({ previewActive: !this.state.previewActive });\r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n setTimeout(function () { window.$('#top-nav-div').sticky('update'); }, 10);\r\n setTimeout(function () { window.$('#preview').sticky('update'); }, 0);\r\n \r\n }\r\n },500); }\r\n\r\n render() {\r\n\r\n return (\r\n this.state.loading ?\r\n <SkeletonPageCustom />\r\n :\r\n <Page title=\"Sticky Checkout Bar\">\r\n <Layout>\r\n <Layout.Section>\r\n <Banner\r\n title=\"What is Sticky Checkout Bar/Button?\"\r\n status=\"info\"\r\n >\r\n <p>Sticky Checkout Bar/Button will show on Cart page when user starts scrolling down. It will show number of items in the cart, total price and Checkout button. Its main goal is to improve user's experience and make checkout easier. On desktop devices it will show as a bar with a button. On mobile devices it will show as a full width button. Note that if cart is empty Sticky Checkout Bar/Button will not show.</p>\r\n </Banner>\r\n </Layout.Section>\r\n <Layout.Section>\r\n <div id=\"preview\" className={(this.state.previewDesktop ? 'desktop' : 'mobile') + (this.state.previewActive ? '' : ' preview-hidden')}>\r\n <Card title=\"Preview\" sectioned actions={[{ content: this.state.previewActive ? 'Collapse ↑' : 'Expand ↓', onAction: this.togglePreviewActive }]}>\r\n <Card.Section>\r\n <div id=\"satcb_checkout_bar\" style={{\r\n backgroundColor: this.state.model.barBackgroundColor ? this.state.model.barBackgroundColor : '#fff',\r\n fontFamily: this.state.model.fontFace,\r\n color: this.state.model.barTextColor ? this.state.model.barTextColor : '#3d4246',\r\n display: this.state.previewDesktop && this.state.previewActive ? 'block' : 'none'\r\n }}>\r\n <div className=\"satcb_checkout_items-holder\" style={{ display: this.state.model.showTotalItemsDesktop ? 'inline-block' : 'none' }}>\r\n <span className=\"satcb_checkout_items\" style={{ fontSize: this.state.model.priceItemFontSize+'px'}}>2 {this.state.model.ItemsText ? this.state.model.ItemsText : 'ITEMS'}</span>\r\n </div>\r\n <div className=\"satcb_checkout_btn-holder\">\r\n <button style={{\r\n color: this.state.model.buttonTextColor ? this.state.model.buttonTextColor : '#fff',\r\n fontSize: this.state.model.buttonFontSize + 'px',\r\n fontFamily: this.state.model.fontFace,\r\n backgroundColor: this.state.model.buttonColor ? this.state.model.buttonColor : '#7796a8',\r\n borderColor: this.state.model.buttonColor ? this.state.model.buttonColor : '#7796a8',\r\n }}\r\n data-color={this.state.model.buttonColor ? this.state.model.buttonColor : '#7796a8'} data-text-color={this.state.model.buttonTextColor ? this.state.model.buttonTextColor : '#fff'}\r\n data-hover-color={this.state.model.buttonHoverColor ? this.state.model.buttonHoverColor : '#7796a8'} data-hover-text-color={this.state.model.buttonTextHoverColor ? this.state.model.buttonTextHoverColor : '#fff'}\r\n type=\"submit\" name=\"add\" className=\"satcb_checkout_btn\">{this.state.model.buttonText ? this.state.model.buttonText : 'Check out'}\r\n </button>\r\n </div>\r\n <div className=\"satcb_checkout_price-holder\" style={{ display: this.state.model.showTotalPriceDesktop ? 'block' : 'none' }}>\r\n <span className=\"satcb_checkout_price\" style={{ color: '#e44e4e', fontWeight: 'bold', fontSize: this.state.model.priceItemFontSize + 'px' }}>$129.00</span>\r\n </div>\r\n <div className=\"satcb_was_price\" style={{\r\n marginTop: '13px',\r\n color: this.state.model.comparePriceColor ? this.state.model.comparePriceColor : '#999',\r\n display: this.state.model.showComparePriceDesktop ? 'flex' : 'none'\r\n }}>\r\n $159.00\r\n </div>\r\n </div>\r\n <button className=\"satcb_checkout_btn satcb_checkout_btn_mobile\" style={{\r\n color: this.state.model.buttonTextColor ? this.state.model.buttonTextColor : '#fff',\r\n backgroundColor: this.state.model.buttonColor ? this.state.model.buttonColor : '#7796a8',\r\n borderColor: this.state.model.buttonColor ? this.state.model.buttonColor : '#7796a8',\r\n display: this.state.previewDesktop || !this.state.previewActive ? 'none' : 'block'\r\n }}\r\n data-color={this.state.model.buttonColor ? this.state.model.buttonColor : '#7796a8'} data-text-color={this.state.model.buttonTextColor ? this.state.model.buttonTextColor : '#fff'}\r\n data-hover-color={this.state.model.buttonHoverColor ? this.state.model.buttonHoverColor : '#7796a8'} data-hover-text-color={this.state.model.buttonTextHoverColor ? this.state.model.buttonTextHoverColor : '#fff'}\r\n >\r\n <span className=\"satcb_checkout_items\" style={{ display: this.state.model.showTotalItemsMobile ? 'block' : 'none' }}>2 {this.state.model.ItemsText ? this.state.model.ItemsText : 'ITEMS'}</span>\r\n {this.state.model.buttonText ? this.state.model.buttonText : 'Check out'}\r\n <span className=\"satcb_checkout_price\" style={{\r\n textDecorationLine: 'line-through',\r\n position: 'absolute',\r\n right: '56px',\r\n top: 0,\r\n color: this.state.model.comparePriceColor ? this.state.model.comparePriceColor : '#fff',\r\n display: this.state.model.showComparePriceMobile ? 'flex' : 'none'\r\n }}>\r\n $159.00\r\n </span>\r\n <span className=\"satcb_checkout_price\" style={{ color: '#e44e4e', display: this.state.model.showTotalPriceMobile ? 'block' : 'none' }}>$129.00</span>\r\n </button>\r\n </Card.Section>\r\n <Stack alignment=\"center\" distribution=\"center\">\r\n <div style={{ display: this.state.previewActive ? 'block' : 'none' }}>\r\n <ButtonGroup segmented con>\r\n <Button pressed={this.state.previewDesktop} onClick={(newValue) => this.handlePreview(true)} icon={DesktopMajor}>Desktop Preview</Button>\r\n <Button pressed={!this.state.previewDesktop} onClick={(newValue) => this.handlePreview(false)} icon={MobileMajor}>Mobile Preview</Button>\r\n </ButtonGroup>\r\n </div>\r\n </Stack>\r\n </Card>\r\n </div>\r\n </Layout.Section>\r\n <Layout.AnnotatedSection\r\n title=\"Sticky Checkout Bar State\"\r\n >\r\n <SettingToggle action={{\r\n content: this.state.model.enabled ? 'Disable' : 'Enable',\r\n onAction: () => { this.handleChange('enabled', !this.state.model.enabled) }\r\n }}\r\n enabled={this.state.model.enabled}\r\n >\r\n Sticky Checkout Bar is currently <TextStyle variation=\"strong\">{this.state.model.enabled ? 'enabled' : 'disabled'}</TextStyle>.\r\n </SettingToggle>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"General Settings\"\r\n description=\"\"\r\n >\r\n <Card sectioned>\r\n <FormLayout>\r\n <Select\r\n label=\"Button Animation\"\r\n helpText=\"Repeats every 5 seconds\"\r\n options={[{ label: 'None', value: 'none' }, { label: 'Bounce', value: 'bounce' }, { label: 'Flash', value: 'flash' }, { label: 'Pulse', value: 'pulse' }, { label: 'Rubber band', value: 'rubberBand' }, { label: 'Shake', value: 'shake' }, { label: 'Swing', value: 'swing' }, { label: 'Tada', value: 'tada' }, { label: 'Wobble', value: 'wobble' }, { label: 'Jello', value: 'jello' }]}\r\n onChange={(newValue) => this.handleChange('buttonAnimation', newValue)}\r\n value={this.state.model.buttonAnimation}\r\n />\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"Look and Feel\"\r\n description=\"App will automatically match your site's branding but you can also adjust it's look and feel to your liking here.\"\r\n >\r\n <Card sectioned>\r\n <FormLayout>\r\n <TextField\r\n value={this.state.model.buttonText}\r\n onChange={(newValue) => this.handleChange('buttonText', newValue)}\r\n label=\"Override Button Text\"\r\n />\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.ItemText}\r\n onChange={(newValue) => this.handleChange('ItemText', newValue)}\r\n label='Translate \"Item\" Text (singular)'\r\n />\r\n <TextField\r\n value={this.state.model.ItemsText}\r\n onChange={(newValue) => this.handleChange('ItemsText', newValue)}\r\n label='Translate \"Items\" Text (plural)'\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Override Button Color\"\r\n fieldName=\"buttonColor\"\r\n value={this.state.model.buttonColor}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Override Button Hover Color\"\r\n fieldName=\"buttonHoverColor\"\r\n value={this.state.model.buttonHoverColor}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Override Button Text Color\"\r\n fieldName=\"buttonTextColor\"\r\n value={this.state.model.buttonTextColor}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Override Button Text Hover Color\"\r\n fieldName=\"buttonTextHoverColor\"\r\n value={this.state.model.buttonTextHoverColor}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Override Bar Background Color\"\r\n fieldName=\"barBackgroundColor\"\r\n value={this.state.model.barBackgroundColor}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Override Bar Text Color\"\r\n fieldName=\"barTextColor\"\r\n value={this.state.model.barTextColor}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <RangeSlider\r\n output\r\n label=\"Override Button Font Size\"\r\n min={12}\r\n step={2}\r\n max={36}\r\n onChange={(newValue) => this.handleChange('buttonFontSize',JSON.stringify(newValue))}\r\n value={this.state.model.buttonFontSize}\r\n />\r\n <RangeSlider\r\n output\r\n label=\"Override Price and items Font Size\"\r\n min={12}\r\n max={36}\r\n step={2}\r\n onChange={(newValue) => this.handleChange('priceItemFontSize',JSON.stringify(newValue))}\r\n value={this.state.model.priceItemFontSize}\r\n /> \r\n <Select\r\n label=\"Override Font Face\"\r\n options={[{ label: 'Default', value: \"\" },{ label: 'Roboto', value: 'Roboto' }, { label: 'Playfair Display', value: 'Playfair Display' }, { label: 'Open Sans', value: 'Open Sans' }, { label: 'Oswald', value: 'Oswald' }, { label: 'Cabin', value: 'Cabin' }, { label: 'Montserrat', value: 'Montserrat' }, { label: 'Merriweather', value: 'Merriweather' }, { label: 'Cormorant', value: 'Cormorant' }, { label: 'Poppins', value: 'Poppins' }, { label: 'Nunito', value: 'Nunito' }, {label:'Lato',value:'Lato'}]}\r\n onChange={(newValue) => this.handleChange('fontFace', newValue)}\r\n value={this.state.model.fontFace}\r\n />\r\n </FormLayout.Group>\r\n \r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"Desktop Settings\"\r\n description=\"\"\r\n >\r\n <Card sectioned>\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Show on desktop computers\"\r\n checked={this.state.model.showOnDesktop}\r\n onChange={(newValue) => this.handleChange('showOnDesktop', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Total Price\"\r\n checked={this.state.model.showTotalPriceDesktop}\r\n onChange={(newValue) => this.handleChange('showTotalPriceDesktop', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Total Items\"\r\n checked={this.state.model.showTotalItemsDesktop}\r\n onChange={(newValue) => this.handleChange('showTotalItemsDesktop', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Compare Price\"\r\n checked={this.state.model.showComparePriceDesktop}\r\n onChange={(newValue) => this.handleChange('showComparePriceDesktop', newValue)}\r\n />\r\n <p>Bar position</p>\r\n <ButtonGroup segmented con>\r\n <Button pressed={this.state.model.barPositionDesktop === 'top'} onClick={(newValue) => this.handleChange('barPositionDesktop', 'top')}>\r\n Top\r\n </Button>\r\n <Button pressed={this.state.model.barPositionDesktop === 'bottom'} onClick={(newValue) => this.handleChange('barPositionDesktop', 'bottom')}>\r\n Bottom\r\n </Button>\r\n </ButtonGroup>\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"Mobile Settings\"\r\n description=\"\"\r\n >\r\n <Card sectioned>\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Show on tablets and mobile devices\"\r\n checked={this.state.model.showOnMobile}\r\n onChange={(newValue) => this.handleChange('showOnMobile', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Total Price\"\r\n checked={this.state.model.showTotalPriceMobile}\r\n onChange={(newValue) => this.handleChange('showTotalPriceMobile', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Total Items\"\r\n checked={this.state.model.showTotalItemsMobile}\r\n onChange={(newValue) => this.handleChange('showTotalItemsMobile', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Compare Price\"\r\n checked={this.state.model.showComparePriceMobile}\r\n onChange={(newValue) => this.handleChange('showComparePriceMobile', newValue)}\r\n />\r\n <p>Bar position</p>\r\n <ButtonGroup segmented con>\r\n <Button pressed={this.state.model.barPositionMobile === 'top'} onClick={(newValue) => this.handleChange('barPositionMobile', 'top')}>\r\n Top\r\n </Button>\r\n <Button pressed={this.state.model.barPositionMobile === 'bottom'} onClick={(newValue) => this.handleChange('barPositionMobile', 'bottom')}>\r\n Bottom\r\n </Button>\r\n </ButtonGroup>\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.Section>\r\n {window.innerWidth < 768 ? \r\n <Stack alignment=\"center\" distribution=\"center\">\r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }} />\r\n </Stack> \r\n : \r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }} />\r\n }\r\n </Layout.Section>\r\n </Layout>\r\n </Page >\r\n );\r\n }\r\n\r\n async populateData() {\r\n const response = await fetchApi('api/home/stickyCheckoutBar');\r\n const data = await response.json();\r\n\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.props.setIsLoading(false);\r\n this.setState({ initState: data, model: data, loading: false });\r\n\r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n window.$('#top-nav-div').sticky({ topSpacing: 13, zIndex: 200, isNav: true });\r\n window.$('#preview').sticky({ topSpacing: 115, zIndex: 100 });\r\n \r\n }\r\n },500);\r\n \r\n window.$('.satcb_checkout_btn').hover(\r\n function () {\r\n window.$(this).css('background-color', window.$(this).attr('data-hover-color'));\r\n window.$(this).css('border-color', window.$(this).attr('data-hover-color'));\r\n window.$(this).css('color', window.$(this).attr('data-hover-text-color'));\r\n },\r\n function () {\r\n window.$(this).css('background-color', window.$(this).attr('data-color'));\r\n window.$(this).css('border-color', window.$(this).attr('data-color'));\r\n window.$(this).css('color', window.$(this).attr('data-text-color'));\r\n });\r\n\r\n btnAnimation = data.buttonAnimation;\r\n setInterval(function () {\r\n if (window.$('.satcb_checkout_btn:hover').length === 0 && window.$('.satcb_checkout_btn:visible').length > 0 && btnAnimation !== 'None') {\r\n window.$('.satcb_checkout_btn:visible').satcb_animateCss(btnAnimation);\r\n }\r\n }, 5000);\r\n }\r\n }\r\n\r\n async saveChanges() {\r\n this.props.setIsLoading(true);\r\n const response = await fetchApi('api/home/saveStickyCheckoutBar', { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(this.state.model) });\r\n const data = await response.json();\r\n this.props.setIsLoading(false);\r\n\r\n if (response.ok === true) {\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.setState({ initState: Object.assign({}, this.state.model) });\r\n this.props.setIsDirty(false);\r\n this.props.setToastActive(true);\r\n }\r\n }\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Page, Layout, Card, FormLayout, Banner, SettingToggle, TextStyle, Checkbox, Stack, Select, PageActions } from '@shopify/polaris';\r\nimport { SkeletonPageCustom } from './SkeletonPageCustom';\r\nimport { ColorPickerCustom } from './ColorPickerCustom';\r\nimport { fetchApi } from './helpers/fetchApi';\r\n\r\nexport class StickyCart extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n props.setIsLoading(true);\r\n\r\n this.saveChanges = this.saveChanges.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.togglePreviewActive = this.togglePreviewActive.bind(this);\r\n\r\n this.state = { initState: {}, model: {}, loading: true, previewActive: true };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateData();\r\n this.props.setSaveChanges(this.saveChanges);\r\n }\r\n\r\n handleChange(fieldName, newValue) {\r\n this.setState(prevState => {\r\n let model = Object.assign({}, prevState.model);\r\n model[fieldName] = newValue;\r\n this.props.setIsDirty(JSON.stringify(this.state.initState) !== JSON.stringify(model));\r\n return { model };\r\n });\r\n }\r\n\r\n togglePreviewActive() {\r\n this.setState({ previewActive: !this.state.previewActive });\r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n setTimeout(function () { window.$('#top-nav-div').sticky('update'); }, 10);\r\n setTimeout(function () { window.$('#preview').sticky('update'); }, 0);\r\n \r\n }\r\n },500); }\r\n\r\n render() {\r\n\r\n return (\r\n this.state.loading ?\r\n <SkeletonPageCustom />\r\n :\r\n <Page title=\"Sticky Cart\">\r\n <Layout>\r\n <Layout.Section\r\n\r\n >\r\n <Banner\r\n title=\"What is Sticky Cart?\"\r\n status=\"info\"\r\n >\r\n <p>Sticky Cart is a bubble cart that is always visible making easier for customers to checkout.</p>\r\n </Banner>\r\n </Layout.Section>\r\n <Layout.Section>\r\n <div id=\"preview\" className={this.state.previewActive ? '' : 'preview-hidden'}>\r\n <Card title=\"Preview\" sectioned actions={[{ content: this.state.previewActive ? 'Collapse ↑' : 'Expand ↓', onAction: this.togglePreviewActive }]}>\r\n <div id=\"satcb_sticky_cart\" style={{ display: this.state.previewActive ? 'block' : 'none' }}>\r\n <a href=\"/#\" onClick={(e) => e.preventDefault()} className=\"animated bounceIn\" style={{\r\n left: this.state.model.position === 'top_right' || this.state.model.position === 'bottom_right' ? 'auto' : '0',\r\n right: this.state.model.position === 'top_right' || this.state.model.position === 'bottom_right' ? '0' : 'auto',\r\n top: this.state.model.position === 'top_right' || this.state.model.position === 'top_left' ? '0' : 'auto',\r\n bottom: this.state.model.position === 'bottom_right' || this.state.model.position === 'bottom_left' ? '0' : 'auto'\r\n }}>\r\n <span className={this.state.model.stickyCartIcon ? \"glyphicon\" : \"glyphicon glyphicon-shopping-cart\"} style={{ backgroundColor: this.state.model.backgroundColor, color: this.state.model.iconColor }}>\r\n {this.state.model.stickyCartIcon ? <img id='satcb_sticky_cart_icon' src={this.state.model.stickyCartIcon} width='30' height='30' alt='SATCB sticky cart icon' /> : \"\"}\r\n <mark style={{ backgroundColor: this.state.model.totalQuantityBackgroundColor, color: this.state.model.totalQuantityTextColor }}>7</mark>\r\n </span>\r\n </a>\r\n </div>\r\n </Card>\r\n </div>\r\n </Layout.Section>\r\n <Layout.AnnotatedSection\r\n title=\"Sticky Cart State\"\r\n >\r\n <SettingToggle action={{\r\n content: this.state.model.enabled ? 'Disable' : 'Enable',\r\n onAction: () => { this.handleChange('enabled', !this.state.model.enabled) }\r\n }}\r\n enabled={this.state.model.enabled}\r\n >\r\n Sticky Cart is currently <TextStyle variation=\"strong\">{this.state.model.enabled ? 'enabled' : 'disabled'}</TextStyle>.\r\n </SettingToggle>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"General Settings\"\r\n description=\"\"\r\n >\r\n <Card sectioned>\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Show on tablets and mobile devices\"\r\n checked={this.state.model.showOnMobile}\r\n onChange={(newValue) => this.handleChange('showOnMobile', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show on desktop computers\"\r\n checked={this.state.model.showOnDesktop}\r\n onChange={(newValue) => this.handleChange('showOnDesktop', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Hide Sticky Cart on Cart page\"\r\n checked={this.state.model.hideOnCartPage}\r\n onChange={(newValue) => this.handleChange('hideOnCartPage', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Hide Sticky Cart if there are no items in the cart\"\r\n checked={this.state.model.hideWhenEmpty}\r\n onChange={(newValue) => this.handleChange('hideWhenEmpty', newValue)}\r\n />\r\n <Stack>\r\n <Checkbox\r\n label=\"Show Add to Sticky Cart animation\"\r\n checked={this.state.model.animateATC}\r\n onChange={(newValue) => this.handleChange('animateATC', newValue)}\r\n helpText=\"Product image will smoothly transition to Sticky Cart on add to cart event\"\r\n />\r\n </Stack>\r\n <Select\r\n label=\"Position\"\r\n options={[{ label: 'Top Right', value: 'top_right' }, { label: 'Bottom Right', value: 'bottom_right' }, { label: 'Top Left', value: 'top_left' }, { label: 'Bottom Left', value: 'bottom_left' }]}\r\n onChange={(newValue) => this.handleChange('position', newValue)}\r\n value={this.state.model.position}\r\n />\r\n <Select\r\n label=\"Click on Sticky Cart redirects\"\r\n options={[{ label: 'To Checkout when on Cart page otherwise to Cart', value: '' }, { label: 'To Cart', value: '/cart' }, { label: 'To Checkout', value: '/checkout' }]}\r\n onChange={(newValue) => this.handleChange('postAction', newValue)}\r\n value={this.state.model.postAction}\r\n />\r\n <FormLayout.Group>\r\n <label>Cart icon (30x30) <small><b>[NEW FEATURE]</b></small> <br />\r\n <input id=\"stickyCartIcon\" type=\"file\" className=\"Polaris-Button\" accept=\"image/*\" onClick={() => document.querySelector('#stickyCartIcon').value = \"\"} onChange={() => {\r\n setTimeout(async () => {\r\n\r\n const toBase64 = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n if (file.size > 4096) {\r\n alert('Cart icon file size should not be greater than 4kb');\r\n resolve(\"\");\r\n return;\r\n }\r\n resolve(reader.result);\r\n };\r\n reader.onerror = error => reject(error);\r\n });\r\n \r\n if (document.querySelector('#stickyCartIcon').files.length > 0) {\r\n const file = document.querySelector('#stickyCartIcon').files[0];\r\n var cartIconBase64 = await toBase64(file);\r\n this.setState(prevState => {\r\n let model = Object.assign({}, prevState.model);\r\n model.stickyCartIcon = cartIconBase64;\r\n return { model };\r\n })\r\n\r\n } else {\r\n this.setState(prevState => {\r\n let model = Object.assign({}, prevState.model);\r\n model.stickyCartIcon = \"\";\r\n return { model };\r\n })\r\n }\r\n }, 500);\r\n \r\n }\r\n } />\r\n </label>\r\n\r\n <span>\r\n <br />\r\n <button className=\"Polaris-Button\" onClick={() => {\r\n this.setState(prevState => {\r\n let model = Object.assign({}, prevState.model); \r\n model.stickyCartIcon = ''; \r\n return { model }; \r\n })\r\n }}>Reset cart icon</button>\r\n </span>\r\n </FormLayout.Group>\r\n\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"Look and Feel\"\r\n description=\"\"\r\n >\r\n <Card sectioned>\r\n <FormLayout>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Background Color\"\r\n fieldName=\"backgroundColor\"\r\n value={this.state.model.backgroundColor}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Icon Color\"\r\n fieldName=\"iconColor\"\r\n value={this.state.model.iconColor}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Total Quantity Text Color\"\r\n fieldName=\"totalQuantityTextColor\"\r\n value={this.state.model.totalQuantityTextColor}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Total Quantity Background Color\"\r\n fieldName=\"totalQuantityBackgroundColor\"\r\n value={this.state.model.totalQuantityBackgroundColor}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.Section>\r\n {window.innerWidth < 768 ? \r\n <Stack alignment=\"center\" distribution=\"center\">\r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }} />\r\n </Stack> \r\n : \r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }} />\r\n }\r\n </Layout.Section>\r\n </Layout>\r\n </Page >\r\n );\r\n }\r\n\r\n async populateData() {\r\n const response = await fetchApi('api/home/stickyCart');\r\n const data = await response.json();\r\n\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.props.setIsLoading(false);\r\n this.setState({ initState: data, model: data, loading: false });\r\n\r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n window.$('#top-nav-div').sticky({ topSpacing: 13, zIndex: 200, isNav: true });\r\n window.$('#preview').sticky({ topSpacing: 115, zIndex: 100 });\r\n \r\n }\r\n },500);\r\n \r\n window.$('#satcb_sticky_cart a').click(function (e) {\r\n e.preventDefault();\r\n });\r\n window.$(\"#satcb_sticky_cart a\").hover(function () {\r\n window.$(\"#satcb_sticky_cart mark\").satcb_animateCss('swing');\r\n });\r\n }\r\n }\r\n\r\n async saveChanges() {\r\n \r\n this.props.setIsLoading(true);\r\n const response = await fetchApi('api/home/saveStickyCart', { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(this.state.model) });\r\n const data = await response.json();\r\n this.props.setIsLoading(false);\r\n\r\n if (response.ok === true) {\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.setState({ initState: Object.assign({}, this.state.model) });\r\n this.props.setIsDirty(false);\r\n this.props.setToastActive(true);\r\n }\r\n }\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Page, Layout, Card, FormLayout, TextField, Banner, SettingToggle, TextStyle, Checkbox, Select, PageActions, TextContainer, Tooltip, InlineStack, Text, Icon, Stack } from '@shopify/polaris';\r\nimport { InfoMinor } from '@shopify/polaris-icons';\r\nimport { SkeletonPageCustom } from './SkeletonPageCustom';\r\nimport { ColorPickerCustom } from './ColorPickerCustom';\r\nimport { fetchApi } from './helpers/fetchApi';\r\n\r\nexport class QuickBuyButton extends Component {\r\n\r\n constructor(props, ref) {\r\n super(props);\r\n props.setIsLoading(true);\r\n\r\n this.saveChanges = this.saveChanges.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.togglePreviewActive = this.togglePreviewActive.bind(this);\r\n\r\n this.state = { initState: {}, model: {}, loading: true, previewActive: true };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateData();\r\n this.props.setSaveChanges(this.saveChanges);\r\n }\r\n\r\n handleChange(fieldName, newValue) {\r\n this.setState(prevState => {\r\n let model = Object.assign({}, prevState.model);\r\n model[fieldName] = newValue;\r\n this.props.setIsDirty(JSON.stringify(this.state.initState) !== JSON.stringify(model));\r\n return { model };\r\n });\r\n if (fieldName === 'buttonStyle') {\r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n setTimeout(function () { window.$('#top-nav-div').sticky('update'); }, 10);\r\n setTimeout(function () { window.$('#preview').sticky('update'); }, 0);\r\n \r\n \r\n }\r\n },500);\r\n }\r\n }\r\n\r\n togglePreviewActive() {\r\n this.setState({ previewActive: !this.state.previewActive });\r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n setTimeout(function () { window.$('#top-nav-div').sticky('update'); }, 10);\r\n setTimeout(function () { window.$('#preview').sticky('update'); }, 0);\r\n \r\n }\r\n },500); }\r\n\r\n render() {\r\n\r\n return (\r\n this.state.loading ?\r\n <SkeletonPageCustom />\r\n :\r\n <Page title=\"Quick Buy Button\">\r\n <Layout>\r\n <Layout.Section>\r\n <Banner\r\n title=\"What is Quick Buy Button?\"\r\n status=\"info\"\r\n >\r\n <p>Quick Buy Button on product listings allows your customers to add products from any page. And with new Quantity selector they can add as much products as they like, right there from the collection page, homepage etc...</p>\r\n </Banner>\r\n </Layout.Section>\r\n <Layout.Section>\r\n <div id=\"preview\" className={this.state.previewActive ? '' : 'preview-hidden'}>\r\n <Card title=\"Preview\" sectioned actions={[{ content: this.state.previewActive ? 'Collapse ↑' : 'Expand ↓', onAction: this.togglePreviewActive }]}>\r\n <div id=\"satcb_quick_buy_preview\" style={{ display: this.state.previewActive ? 'block' : 'none' }}>\r\n <div className=\"satcb_quick_buy\" style={{\r\n left: this.state.model.position === 'top_right' || this.state.model.position === 'bottom_right' ? 'auto' : (this.state.model.showQuantitySelector ? '54px' : '4px'),\r\n right: this.state.model.position === 'top_right' || this.state.model.position === 'bottom_right' ? '4px' : 'auto',\r\n top: this.state.model.position === 'top_right' || this.state.model.position === 'top_left' ? '4px' : 'auto',\r\n bottom: this.state.model.position === 'bottom_right' || this.state.model.position === 'bottom_left' ? '40px' : 'auto',\r\n backgroundColor: this.state.model.backgroundColor,\r\n display: this.state.model.buttonStyle === 'icon_button' ? 'block' : 'none'\r\n }}>\r\n <div>\r\n {this.state.model.cartIcon ?\r\n <span className=\"satcb_glyphicon\" style={{ color: this.state.model.iconColor }}><img id=\"satcb_quick_buy_cart_icon\" src={this.state.model.cartIcon} width='20' height='20' alt='SATCB quick buy button icon' /></span>\r\n : <span className=\"satcb_glyphicon satcb_glyphicon-shopping-cart\" style={{ color: this.state.model.iconColor }}></span>}\r\n </div>\r\n </div>\r\n <input type=\"number\" className=\"satcb_qb_quantity\" defaultValue=\"1\" min=\"1\" style={{\r\n left: this.state.model.position === 'top_right' || this.state.model.position === 'bottom_right' ? 'auto' : '4px',\r\n right: this.state.model.position === 'top_right' || this.state.model.position === 'bottom_right' ? '4px' : 'auto',\r\n top: this.state.model.position === 'top_right' || this.state.model.position === 'top_left' ? '4px' : 'auto',\r\n bottom: this.state.model.position === 'bottom_right' || this.state.model.position === 'bottom_left' ? '40px' : 'auto',\r\n borderColor: this.state.model.backgroundColor,\r\n display: this.state.model.showQuantitySelector && this.state.model.buttonStyle === 'icon_button' ? 'block' : 'none'\r\n }} />\r\n </div>\r\n <div className=\"satcb_quick_buy_tb\" style={{ textAlign: this.state.model.positionTB === 'auto' ? 'center' : this.state.model.positionTB, display: this.state.previewActive && this.state.model.buttonStyle !== 'icon_button' ? 'block' : 'none' }}>\r\n <span className=\"satcb_quick_buy-action\" style={{ color: this.state.model.iconColor, backgroundColor: this.state.model.backgroundColor }}>{this.state.model.postAction !== 'checkout' ? this.state.model.addToCart_Translation : this.state.model.buyNow_Translation}</span>\r\n </div>\r\n </Card>\r\n </div>\r\n </Layout.Section>\r\n <Layout.AnnotatedSection\r\n title=\"Quick Buy Button State\"\r\n >\r\n <SettingToggle action={{\r\n content: this.state.model.enabled ? 'Disable' : 'Enable',\r\n onAction: () => { this.handleChange('enabled', !this.state.model.enabled) }\r\n }}\r\n enabled={this.state.model.enabled}\r\n >\r\n Quick Buy Button is currently <TextStyle variation=\"strong\">{this.state.model.enabled ? 'enabled' : 'disabled'}</TextStyle>.\r\n </SettingToggle>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection title=\"Settings\">\r\n <Card sectioned>\r\n <FormLayout>\r\n <Select\r\n label=\"Button Style\"\r\n options={[{ label: 'Icon Button', value: 'icon_button' }, { label: 'Text Button', value: 'text_button' }]}\r\n onChange={(newValue) => this.handleChange('buttonStyle', newValue)}\r\n value={this.state.model.buttonStyle}\r\n />\r\n <Checkbox\r\n label=\"Show on tablets and mobile devices\"\r\n checked={this.state.model.showOnMobile}\r\n onChange={(newValue) => this.handleChange('showOnMobile', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show on desktop computers\"\r\n checked={this.state.model.showOnDesktop}\r\n onChange={(newValue) => this.handleChange('showOnDesktop', newValue)}\r\n />\r\n {\r\n this.state.model.buttonStyle === 'icon_button' ?\r\n <Checkbox\r\n label=\"Show Quantity selector\"\r\n checked={this.state.model.showQuantitySelector}\r\n onChange={(newValue) => this.handleChange('showQuantitySelector', newValue)}\r\n />\r\n : ''\r\n }\r\n <Checkbox\r\n label=\"Show price in variant selector\"\r\n checked={this.state.model.showPrice}\r\n onChange={(newValue) => this.handleChange('showPrice', newValue)}\r\n />\r\n {\r\n this.state.model.buttonStyle === 'icon_button' ?\r\n <Select\r\n label=\"Position\"\r\n options={[{ label: 'Top Right', value: 'top_right' }, { label: 'Bottom Right', value: 'bottom_right' }, { label: 'Top Left', value: 'top_left' }, { label: 'Bottom Left', value: 'bottom_left' }]}\r\n onChange={(newValue) => this.handleChange('position', newValue)}\r\n value={this.state.model.position}\r\n />\r\n :\r\n <Select\r\n label=\"Position\"\r\n options={[{ label: 'Auto', value: 'auto' }, { label: 'Left', value: 'left' }, { label: 'Center', value: 'center' }, { label: 'Right', value: 'right' }]}\r\n onChange={(newValue) => this.handleChange('positionTB', newValue)}\r\n value={this.state.model.positionTB}\r\n />\r\n }\r\n <Select\r\n label=\"When Quick Buy Button is clicked, add product to cart and\"\r\n options={[{ label: 'Stay on current page (Ajaxified)', value: 'no-redirect' }, { label: 'Go To Cart', value: 'cart' }, { label: 'Go To Product Page', value: 'product' }, { label: 'Go To Checkout', value: 'checkout' }]}\r\n onChange={(newValue) => this.handleChange('postAction', newValue)}\r\n value={this.state.model.postAction}\r\n />\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Background Color\"\r\n fieldName=\"backgroundColor\"\r\n value={this.state.model.backgroundColor}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label={this.state.model.buttonStyle === 'icon_button' ? 'Icon Color' : 'Text Color'}\r\n fieldName=\"iconColor\"\r\n value={this.state.model.iconColor}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n\r\n <FormLayout.Group>\r\n <label> Cart icon (20x20) <small><b>[NEW FEATURE]</b></small> <br />\r\n <input id=\"cartIcon\" type=\"file\" className=\"Polaris-Button\" accept=\"image/*\" onClick={() => document.querySelector('#cartIcon').value = \"\"} onChange={() => {\r\n setTimeout(async () => {\r\n\r\n const toBase64 = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n if (file.size > 4096) {\r\n alert('Cart icon file size should not be greater than 4kb');\r\n resolve(\"\");\r\n return;\r\n }\r\n resolve(reader.result);\r\n }\r\n reader.onerror = error => reject(error);\r\n });\r\n \r\n if (document.querySelector('#cartIcon').files.length > 0) {\r\n const file = document.querySelector('#cartIcon').files[0];\r\n var cartIconBase64 = await toBase64(file);\r\n this.setState(prevState => {\r\n let model = Object.assign({}, prevState.model);\r\n model.cartIcon = cartIconBase64;\r\n return { model };\r\n });\r\n } else {\r\n this.setState(prevState => {\r\n let model = Object.assign({}, prevState.model);\r\n model.cartIcon = \"\";\r\n return { model };\r\n });\r\n }\r\n }, 500);\r\n }} />\r\n </label>\r\n <span>\r\n <br />\r\n <button className=\"Polaris-Button\" onClick={() => {\r\n this.setState(prevState => {\r\n let model = Object.assign({}, prevState.model); // creating copy of state variable jasper\r\n model.cartIcon = ''; // update the name property, assign a new value\r\n return { model }; // return new object jasper object\r\n })\r\n }} >Reset cart icon</button>\r\n </span>\r\n </FormLayout.Group>\r\n\r\n <Stack vertical spacing=\"tight\">\r\n <Stack wrap={false} alignment=\"center\" spacing=\"tight\">\r\n <Checkbox\r\n label=\"Enable Tracking\"\r\n checked={this.state.model.trackingEnabled}\r\n onChange={(newValue) => this.handleChange('trackingEnabled', newValue)}\r\n\r\n />\r\n <Tooltip content=\"This attribute can be used for app auditing and will appear in your Shopify order details page. The attribute name is _Added with Sticky Add To Cart BOOSTER PRO's Quick Buy Button. This is not visible to your customers.\">\r\n <div style={{ lineHeight: 'normal', marginLeft: '4px' }}>\r\n <Icon source={InfoMinor} color=\"inkLightest\" />\r\n </div>\r\n </Tooltip>\r\n </Stack>\r\n </Stack>\r\n <TextField\r\n value={this.state.model.disableUrls}\r\n onChange={(newValue) => this.handleChange('disableUrls', newValue)}\r\n label=\"Disabling Quick Buy Button by Product URLs\"\r\n helpText=\"To disable Quick Buy Button on a product, add a link to it, for example, https://yourstore.myshopify.com/products/awesome-product. Place each product URL in a new line.\"\r\n multiline\r\n />\r\n {\r\n this.state.model.buttonStyle === 'icon_button' ? '' :\r\n <TextContainer>\r\n <Banner title=\"Disabling Quick Buy Button by Tag\">\r\n <p>To disable Quick Buy Button on a product, add <b>Quick Buy Button disabled</b> tag to it.</p>\r\n </Banner>\r\n </TextContainer>\r\n }\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection title=\"Translations\">\r\n <Card sectioned>\r\n <FormLayout>\r\n {\r\n this.state.model.buttonStyle === 'icon_button' ? '' :\r\n <FormLayout.Group>\r\n {\r\n this.state.model.postAction !== 'checkout' ?\r\n <TextField\r\n value={this.state.model.addToCart_Translation}\r\n onChange={(newValue) => this.handleChange('addToCart_Translation', newValue)}\r\n label=\"Add to cart\"\r\n />\r\n :\r\n <TextField\r\n value={this.state.model.buyNow_Translation}\r\n onChange={(newValue) => this.handleChange('buyNow_Translation', newValue)}\r\n label=\"But now\"\r\n />\r\n }\r\n <TextField\r\n value={this.state.model.soldOut_Translation}\r\n onChange={(newValue) => this.handleChange('soldOut_Translation', newValue)}\r\n label=\"Sold out\"\r\n />\r\n </FormLayout.Group>\r\n }\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.addedToCartMessage_Translation}\r\n onChange={(newValue) => this.handleChange('addedToCartMessage_Translation', newValue)}\r\n label=\"Added to Cart Message\"\r\n />\r\n <div></div>\r\n </FormLayout.Group>\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.Section>\r\n {window.innerWidth < 768 ? \r\n <Stack alignment=\"center\" distribution=\"center\">\r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }} />\r\n </Stack> \r\n : \r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }} />\r\n }\r\n </Layout.Section>\r\n </Layout>\r\n </Page >\r\n );\r\n }\r\n\r\n async populateData() {\r\n const response = await fetchApi('api/home/quickBuyButton');\r\n const data = await response.json();\r\n\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.props.setIsLoading(false);\r\n this.setState({ initState: data, model: data, loading: false });\r\n\r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n window.$('#top-nav-div').sticky({ topSpacing: 13, zIndex: 200, isNav: true });\r\n window.$('#preview').sticky({ topSpacing: 115, zIndex: 100 });\r\n \r\n }\r\n },500);\r\n }\r\n }\r\n \r\n async saveChanges() {\r\n \r\n this.props.setIsLoading(true);\r\n const response = await fetchApi('api/home/saveQuickBuyButton', { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(this.state.model) });\r\n const data = await response.json();\r\n this.props.setIsLoading(false);\r\n\r\n if (response.ok === true) {\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.setState({ initState: Object.assign({}, this.state.model) });\r\n this.props.setIsDirty(false);\r\n this.props.setToastActive(true);\r\n }\r\n }\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Page, Layout, Card, FormLayout, TextField, Banner, SettingToggle, TextStyle, Checkbox, Button, Stack, ButtonGroup, PageActions, TextContainer, Select, Tooltip, InlineStack, Text, Icon } from '@shopify/polaris';\r\nimport { InfoMinor } from '@shopify/polaris-icons';\r\nimport { SkeletonPageCustom } from './SkeletonPageCustom';\r\nimport { ColorPickerCustom } from './ColorPickerCustom';\r\nimport { DesktopMajor, MobileMajor } from '@shopify/polaris-icons';\r\nimport { fetchApi } from './helpers/fetchApi';\r\n\r\nexport class QuickView extends Component {\r\n\r\n constructor(props, ref) {\r\n super(props);\r\n props.setIsLoading(true);\r\n\r\n this.saveChanges = this.saveChanges.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.togglePreviewActive = this.togglePreviewActive.bind(this);\r\n\r\n this.state = { initState: {}, model: {}, loading: true, previewActive: true, previewDesktop: true };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateData();\r\n this.props.setSaveChanges(this.saveChanges);\r\n }\r\n\r\n handleChange(fieldName, newValue) {\r\n this.setState(prevState => {\r\n let model = Object.assign({}, prevState.model);\r\n model[fieldName] = newValue;\r\n this.props.setIsDirty(JSON.stringify(this.state.initState) !== JSON.stringify(model));\r\n return { model };\r\n });\r\n }\r\n\r\n handlePreview(previewDesktop) {\r\n this.setState({ previewDesktop: previewDesktop });\r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n setTimeout(function () { window.$('#top-nav-div').sticky('update'); }, 10);\r\n setTimeout(function () { window.$('#preview').sticky('update'); }, 0);\r\n\r\n \r\n }\r\n },500);\r\n }\r\n\r\n togglePreviewActive() {\r\n this.setState({ previewActive: !this.state.previewActive });\r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n setTimeout(function () { window.$('#top-nav-div').sticky('update'); }, 10);\r\n setTimeout(function () { window.$('#preview').sticky('update'); }, 0);\r\n \r\n }\r\n },500); }\r\n\r\n render() {\r\n\r\n return (\r\n this.state.loading ?\r\n <SkeletonPageCustom />\r\n :\r\n <Page title=\"Quick View\">\r\n <Layout>\r\n <Layout.Section>\r\n <Banner\r\n title=\"What is Quick View?\"\r\n status=\"info\"\r\n >\r\n <p>Quick View will allow your customers to view details and Add-To-Cart form of any product on any page.</p>\r\n </Banner>\r\n </Layout.Section>\r\n <Layout.Section>\r\n <div id=\"preview\" className={(this.state.previewDesktop ? 'desktop' : 'mobile') + (this.state.previewActive ? '' : ' preview-hidden')}>\r\n <Card title=\"Preview\" sectioned actions={[{ content: this.state.previewActive ? 'Collapse ↑' : 'Expand ↓', onAction: this.togglePreviewActive }]}>\r\n <Card.Section>\r\n <div id=\"satcb_quick_view_preview\" style={{ display: this.state.previewActive ? 'block' : 'none' }}>\r\n <div className={'satcb_quick_view' + (!this.state.previewDesktop && this.state.model.mobileButtonType === 'round' ? ' satcb-mobile-bt-round' : '') + (' satcb_qv_mobile_' + this.state.model.positionMobile)} style={{ backgroundColor: this.state.model.buttonBackgroundColor, color: this.state.model.buttonColor, borderColor: this.state.model.buttonBorderColor }}>\r\n <span>{this.state.model.quickView_Translation}</span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"13\" viewBox=\"-139 144 20 13\"><path d=\"M-119.3 150.2c-.2-.2-4.4-6-9.8-6s-9.6 5.8-9.8 6c-.2.2-.2.5 0 .8.2.2 4.4 6 9.8 6s9.6-5.8 9.8-6c.1-.3.1-.6 0-.8zm-9.8 5.5c-4 0-7.4-3.8-8.4-5.1 1-1.3 4.4-5.1 8.4-5.1s7.4 3.8 8.4 5.1c-1 1.2-4.4 5.1-8.4 5.1z\"></path><path d=\"M-129.1 146.6c-2.2 0-3.9 1.8-3.9 4s1.8 4 3.9 4c2.2 0 3.9-1.8 3.9-4s-1.7-4-3.9-4zm0 6.6c-1.4 0-2.6-1.2-2.6-2.6 0-1.5 1.2-2.6 2.6-2.6s2.6 1.2 2.6 2.6c0 1.4-1.2 2.6-2.6 2.6z\"></path></svg>\r\n </div>\r\n </div>\r\n </Card.Section>\r\n <Stack alignment=\"center\" distribution=\"center\">\r\n <div style={{ display: this.state.previewActive ? 'block' : 'none' }}>\r\n <ButtonGroup segmented con>\r\n <Button pressed={this.state.previewDesktop} onClick={(newValue) => this.handlePreview(true)} icon={DesktopMajor}>Desktop Preview</Button>\r\n <Button pressed={!this.state.previewDesktop} onClick={(newValue) => this.handlePreview(false)} icon={MobileMajor}>Mobile Preview</Button>\r\n </ButtonGroup>\r\n </div>\r\n </Stack>\r\n </Card>\r\n </div>\r\n </Layout.Section>\r\n <Layout.AnnotatedSection\r\n title=\"Quick View State\"\r\n >\r\n <SettingToggle action={{\r\n content: this.state.model.enabled ? 'Disable' : 'Enable',\r\n onAction: () => { this.handleChange('enabled', !this.state.model.enabled) }\r\n }}\r\n enabled={this.state.model.enabled}\r\n >\r\n Quick View is currently <TextStyle variation=\"strong\">{this.state.model.enabled ? 'enabled' : 'disabled'}</TextStyle>.\r\n </SettingToggle>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection title=\"Settings\">\r\n <Card sectioned>\r\n <FormLayout>\r\n <Select\r\n label=\"Button Layout on Mobile\"\r\n options={[{ label: 'Round', value: 'round' }, { label: 'Square', value: 'square' }]}\r\n onChange={(newValue) => this.handleChange('mobileButtonType', newValue)}\r\n value={this.state.model.mobileButtonType}\r\n />\r\n <Select\r\n label=\"Position on Mobile\"\r\n options={[{ label: 'Top Right', value: 'top_right' }, { label: 'Bottom Right', value: 'bottom_right' }, { label: 'Top Left', value: 'top_left' }, { label: 'Bottom Left', value: 'bottom_left' }]}\r\n onChange={(newValue) => this.handleChange('positionMobile', newValue)}\r\n value={this.state.model.positionMobile}\r\n />\r\n <Stack vertical spacing=\"tight\">\r\n <Stack wrap={false} alignment=\"center\" spacing=\"tight\">\r\n <Checkbox\r\n label=\"Enable Tracking\"\r\n checked={this.state.model.trackingEnabled}\r\n onChange={(newValue) => this.handleChange('trackingEnabled', newValue)}\r\n\r\n />\r\n <Tooltip content=\"This attribute can be used for app auditing and will appear in your Shopify order details page. The attribute name is _Added from Sticky Add To Cart BOOSTER PRO's Quick View. This is not visible to your customers.\">\r\n <div style={{ lineHeight: 'normal', marginLeft: '4px' }}>\r\n <Icon source={InfoMinor} color=\"inkLightest\" />\r\n </div>\r\n </Tooltip>\r\n </Stack>\r\n </Stack>\r\n \r\n <TextContainer>\r\n <Banner title=\"Disabling Quick View\">\r\n <p>\r\n To disable Quick View button on a product, add a <b>Quick View disabled</b> tag to it.\r\n </p>\r\n </Banner>\r\n </TextContainer>\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"Translations\"\r\n >\r\n <Card sectioned>\r\n <FormLayout>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.quickView_Translation}\r\n onChange={(newValue) => this.handleChange('quickView_Translation', newValue)}\r\n label=\"Quick View\"\r\n />\r\n <TextField\r\n value={this.state.model.quantity_Translation}\r\n onChange={(newValue) => this.handleChange('quantity_Translation', newValue)}\r\n label=\"Quantity\"\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.addToCart_Translation}\r\n onChange={(newValue) => this.handleChange('addToCart_Translation', newValue)}\r\n label=\"Add to cart\"\r\n />\r\n <TextField\r\n value={this.state.model.buyNow_Translation}\r\n onChange={(newValue) => this.handleChange('buyNow_Translation', newValue)}\r\n label=\"Buy now\"\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.soldOut_Translation}\r\n onChange={(newValue) => this.handleChange('soldOut_Translation', newValue)}\r\n label=\"Sold out\"\r\n />\r\n <TextField\r\n value={this.state.model.viewDetails_Translation}\r\n onChange={(newValue) => this.handleChange('viewDetails_Translation', newValue)}\r\n label=\"View Details\"\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.addedToCartMessage_Translation}\r\n onChange={(newValue) => this.handleChange('addedToCartMessage_Translation', newValue)}\r\n label=\"Added to Cart Message\"\r\n />\r\n <TextField\r\n value={this.state.model.viewCart_Translation}\r\n onChange={(newValue) => this.handleChange('viewCart_Translation', newValue)}\r\n label=\"View cart\"\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.or_Translation}\r\n onChange={(newValue) => this.handleChange('or_Translation', newValue)}\r\n label=\"or\"\r\n />\r\n <TextField\r\n value={this.state.model.continueShopping_Translation}\r\n onChange={(newValue) => this.handleChange('continueShopping_Translation', newValue)}\r\n label=\"Continue shopping\"\r\n />\r\n </FormLayout.Group>\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"Look and Feel\"\r\n >\r\n <Card>\r\n <Card.Section title=\"Quick View Button\">\r\n <FormLayout>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Text Color\"\r\n fieldName=\"buttonColor\"\r\n value={this.state.model.buttonColor}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Background Color\"\r\n fieldName=\"buttonBackgroundColor\"\r\n value={this.state.model.buttonBackgroundColor}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Border Color\"\r\n fieldName=\"buttonBorderColor\"\r\n value={this.state.model.buttonBorderColor}\r\n handleChange={this.handleChange}\r\n />\r\n <div></div>\r\n </FormLayout.Group>\r\n </FormLayout>\r\n </Card.Section>\r\n <Card.Section title=\"Add to Cart Button\">\r\n <FormLayout>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Text Color\"\r\n fieldName=\"atcColor\"\r\n value={this.state.model.atcColor}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Background Color\"\r\n fieldName=\"atcBackgroundColor\"\r\n value={this.state.model.atcBackgroundColor}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Border Color\"\r\n fieldName=\"atcBorderColor\"\r\n value={this.state.model.atcBorderColor}\r\n handleChange={this.handleChange}\r\n />\r\n <div></div>\r\n </FormLayout.Group>\r\n </FormLayout>\r\n </Card.Section>\r\n <Card.Section title=\"Buy Now Button\">\r\n <FormLayout>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Text Color\"\r\n fieldName=\"buyNowColor\"\r\n value={this.state.model.buyNowColor}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Background Color\"\r\n fieldName=\"buyNowBackgroundColor\"\r\n value={this.state.model.buyNowBackgroundColor}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Border Color\"\r\n fieldName=\"buyNowBorderColor\"\r\n value={this.state.model.buyNowBorderColor}\r\n handleChange={this.handleChange}\r\n />\r\n <div></div>\r\n </FormLayout.Group>\r\n </FormLayout>\r\n </Card.Section>\r\n <Card.Section title=\"View Details Button\">\r\n <FormLayout>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Text Color\"\r\n fieldName=\"viewDetailsColor\"\r\n value={this.state.model.viewDetailsColor}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Background Color\"\r\n fieldName=\"viewDetailsBackgroundColor\"\r\n value={this.state.model.viewDetailsBackgroundColor}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Border Color\"\r\n fieldName=\"viewDetailsBorderColor\"\r\n value={this.state.model.viewDetailsBorderColor}\r\n handleChange={this.handleChange}\r\n />\r\n <div></div>\r\n </FormLayout.Group>\r\n </FormLayout>\r\n </Card.Section>\r\n <Card.Section title=\"Product Prices\">\r\n <FormLayout>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Price Color\"\r\n fieldName=\"productPriceColor\"\r\n value={this.state.model.productPriceColor}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Compare Price Color\"\r\n fieldName=\"productComparePriceColor\"\r\n value={this.state.model.productComparePriceColor}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n </FormLayout>\r\n </Card.Section>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.Section>\r\n {window.innerWidth < 768 ?\r\n <Stack alignment=\"center\" distribution=\"center\">\r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }} />\r\n </Stack> \r\n : \r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }} />\r\n }\r\n </Layout.Section>\r\n </Layout>\r\n </Page >\r\n );\r\n }\r\n\r\n async populateData() {\r\n const response = await fetchApi('api/home/quickView');\r\n const data = await response.json();\r\n\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.props.setIsLoading(false);\r\n this.setState({ initState: data, model: data, loading: false });\r\n\r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n window.$('#top-nav-div').sticky({ topSpacing: 13, zIndex: 200, isNav: true });\r\n window.$('#preview').sticky({ topSpacing: 115, zIndex: 100 });\r\n \r\n }\r\n },500);\r\n }\r\n }\r\n\r\n async saveChanges() {\r\n this.props.setIsLoading(true);\r\n const response = await fetchApi('api/home/saveQuickView', { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(this.state.model) });\r\n const data = await response.json();\r\n this.props.setIsLoading(false);\r\n\r\n if (response.ok === true) {\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.setState({ initState: Object.assign({}, this.state.model) });\r\n this.props.setIsDirty(false);\r\n this.props.setToastActive(true);\r\n }\r\n }\r\n }\r\n}","function isSection(arr) {\n return typeof arr[0] === 'object' && Object.prototype.hasOwnProperty.call(arr[0], 'options');\n}\n\nexport { isSection };\n","function arraysAreEqual(firstArray, secondArray, comparator) {\n if (firstArray.length !== secondArray.length) {\n return false;\n }\n\n return firstArray.every((firstItem, index) => {\n const secondItem = secondArray[index];\n\n if (comparator != null) {\n return comparator(firstItem, secondItem);\n }\n\n return firstItem === secondItem;\n });\n}\n\nexport { arraysAreEqual };\n","var styles = {\n \"Option\": \"Polaris-OptionList-Option\",\n \"SingleSelectOption\": \"Polaris-OptionList-Option__SingleSelectOption\",\n \"focused\": \"Polaris-OptionList-Option--focused\",\n \"active\": \"Polaris-OptionList-Option--active\",\n \"select\": \"Polaris-OptionList-Option--select\",\n \"disabled\": \"Polaris-OptionList-Option--disabled\",\n \"Media\": \"Polaris-OptionList-Option__Media\",\n \"Label\": \"Polaris-OptionList-Option__Label\",\n \"Checkbox\": \"Polaris-OptionList-Option__Checkbox\",\n \"verticalAlignTop\": \"Polaris-OptionList-Option--verticalAlignTop\",\n \"verticalAlignCenter\": \"Polaris-OptionList-Option--verticalAlignCenter\",\n \"verticalAlignBottom\": \"Polaris-OptionList-Option--verticalAlignBottom\"\n};\n\nexport { styles as default };\n","var styles = {\n \"Checkbox\": \"Polaris-OptionList-Checkbox\",\n \"active\": \"Polaris-OptionList-Checkbox--active\",\n \"Backdrop\": \"Polaris-OptionList-Checkbox__Backdrop\",\n \"Input\": \"Polaris-OptionList-Checkbox__Input\",\n \"Input-indeterminate\": \"Polaris-OptionList-Checkbox__Input--indeterminate\",\n \"Icon\": \"Polaris-OptionList-Checkbox__Icon\",\n \"hover\": \"Polaris-OptionList-Checkbox--hover\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { TickSmallMinor } from '@shopify/polaris-icons';\nimport { classNames } from '../../../../utilities/css.js';\nimport styles from './Checkbox.scss.js';\nimport { useUniqueId } from '../../../../utilities/unique-id/hooks.js';\nimport { Icon } from '../../../Icon/Icon.js';\n\nfunction Checkbox({\n id: idProp,\n checked = false,\n disabled,\n active,\n onChange,\n name,\n value,\n role\n}) {\n const id = useUniqueId('Checkbox', idProp);\n const className = classNames(styles.Checkbox, active && styles.active);\n const inputClassName = classNames(styles.Input);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(\"input\", {\n id: id,\n name: name,\n value: value,\n type: \"checkbox\",\n checked: checked,\n disabled: disabled,\n className: inputClassName,\n \"aria-checked\": checked,\n onChange: onChange,\n role: role\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Backdrop\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Icon\n }, /*#__PURE__*/React.createElement(Icon, {\n source: TickSmallMinor\n })));\n}\n\nexport { Checkbox };\n","import React, { useCallback } from 'react';\nimport { useToggle } from '../../../../utilities/use-toggle.js';\nimport { classNames, variationName } from '../../../../utilities/css.js';\nimport styles from './Option.scss.js';\nimport { Checkbox } from '../Checkbox/Checkbox.js';\nimport { Scrollable } from '../../../Scrollable/Scrollable.js';\n\nfunction Option({\n label,\n value,\n id,\n select,\n active,\n allowMultiple,\n disabled,\n role,\n media,\n onClick,\n section,\n index,\n verticalAlign,\n onPointerEnter,\n onFocus\n}) {\n const {\n value: focused,\n toggle: toggleFocused\n } = useToggle(false);\n const handleClick = useCallback(() => {\n if (disabled) {\n return;\n }\n\n onClick(section, index);\n }, [disabled, index, onClick, section]);\n const handlePointerEnter = useCallback(() => {\n if (disabled) {\n return;\n }\n\n onPointerEnter(section, index);\n }, [disabled, onPointerEnter, section, index]);\n const handleFocus = useCallback(() => {\n toggleFocused();\n onFocus(section, index);\n }, [toggleFocused, onFocus, section, index]);\n const mediaMarkup = media ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Media\n }, media) : null;\n const singleSelectClassName = classNames(styles.SingleSelectOption, focused && styles.focused, disabled && styles.disabled, select && styles.select, active && styles.active, verticalAlign && styles[variationName('verticalAlign', verticalAlign)]);\n const multiSelectClassName = classNames(styles.Label, disabled && styles.disabled, active && styles.active, select && styles.select, verticalAlign && styles[variationName('verticalAlign', verticalAlign)]);\n const checkBoxRole = role === 'option' ? 'presentation' : undefined;\n const optionMarkup = allowMultiple ? /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: id,\n className: multiSelectClassName\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Checkbox\n }, /*#__PURE__*/React.createElement(Checkbox, {\n id: id,\n value: value,\n checked: select,\n active: active,\n disabled: disabled,\n onChange: handleClick,\n role: checkBoxRole\n })), mediaMarkup, label) : /*#__PURE__*/React.createElement(\"button\", {\n id: id,\n type: \"button\",\n className: singleSelectClassName,\n onClick: handleClick,\n disabled: disabled,\n onFocus: handleFocus,\n onBlur: toggleFocused,\n \"aria-pressed\": active\n }, mediaMarkup, label);\n const scrollMarkup = active ? /*#__PURE__*/React.createElement(Scrollable.ScrollTo, null) : null;\n return /*#__PURE__*/React.createElement(\"li\", {\n key: id,\n className: styles.Option,\n tabIndex: -1,\n onPointerEnter: handlePointerEnter\n }, scrollMarkup, optionMarkup);\n}\n\nexport { Option };\n","import React, { useState, useCallback } from 'react';\nimport { isSection } from '../../utilities/options.js';\nimport { arraysAreEqual } from '../../utilities/arrays.js';\nimport { useDeepEffect } from '../../utilities/use-deep-effect.js';\nimport { Option } from './components/Option/Option.js';\nimport { useUniqueId } from '../../utilities/unique-id/hooks.js';\nimport { Box } from '../Box/Box.js';\nimport { Bleed } from '../Bleed/Bleed.js';\nimport { Text } from '../Text/Text.js';\n\nfunction OptionList({\n options,\n sections,\n title,\n selected,\n allowMultiple,\n role,\n optionRole,\n verticalAlign,\n onChange,\n id: idProp,\n onPointerEnterOption,\n onFocusOption\n}) {\n const [normalizedOptions, setNormalizedOptions] = useState(createNormalizedOptions(options, sections, title));\n const id = useUniqueId('OptionList', idProp);\n useDeepEffect(() => {\n setNormalizedOptions(createNormalizedOptions(options || [], sections || [], title));\n }, [options, sections, title], optionArraysAreEqual);\n const handleClick = useCallback((sectionIndex, optionIndex) => {\n const selectedValue = normalizedOptions[sectionIndex].options[optionIndex].value;\n const foundIndex = selected.indexOf(selectedValue);\n\n if (allowMultiple) {\n const newSelection = foundIndex === -1 ? [selectedValue, ...selected] : [...selected.slice(0, foundIndex), ...selected.slice(foundIndex + 1, selected.length)];\n onChange(newSelection);\n return;\n }\n\n onChange([selectedValue]);\n }, [normalizedOptions, selected, allowMultiple, onChange]);\n const handlePointerEnter = useCallback((sectionIndex, optionIndex) => {\n if (!onPointerEnterOption) return;\n const selectedValue = normalizedOptions[sectionIndex].options[optionIndex].value;\n onPointerEnterOption(selectedValue);\n }, [normalizedOptions, onPointerEnterOption]);\n const handleFocus = useCallback((sectionIndex, optionIndex) => {\n if (!onFocusOption) return;\n const selectedValue = normalizedOptions[sectionIndex].options[optionIndex].value;\n onFocusOption(selectedValue);\n }, [normalizedOptions, onFocusOption]);\n const optionsExist = normalizedOptions.length > 0;\n const optionsMarkup = optionsExist ? normalizedOptions.map(({\n title,\n options\n }, sectionIndex) => {\n const isFirstOption = sectionIndex === 0;\n const titleMarkup = title ? /*#__PURE__*/React.createElement(Box, {\n paddingBlockStart: isFirstOption ? '2' : '4',\n paddingInlineStart: \"2\",\n paddingBlockEnd: \"2\",\n paddingInlineEnd: \"2\",\n borderColor: \"border-subdued\",\n borderBlockStartWidth: !isFirstOption ? '1' : undefined\n }, /*#__PURE__*/React.createElement(Text, {\n as: \"p\",\n variant: \"headingXs\"\n }, title)) : null;\n const optionsMarkup = options && options.map((option, optionIndex) => {\n const isSelected = selected.includes(option.value);\n const optionId = option.id || `${id}-${sectionIndex}-${optionIndex}`;\n return /*#__PURE__*/React.createElement(Option, Object.assign({\n key: optionId\n }, option, {\n id: optionId,\n section: sectionIndex,\n index: optionIndex,\n onClick: handleClick,\n select: isSelected,\n allowMultiple: allowMultiple,\n verticalAlign: verticalAlign,\n role: optionRole,\n onPointerEnter: handlePointerEnter,\n onFocus: handleFocus\n }));\n });\n return /*#__PURE__*/React.createElement(Box, {\n key: title || `noTitle-${sectionIndex}`,\n as: \"li\",\n paddingBlockStart: isFirstOption ? undefined : '2'\n }, titleMarkup, /*#__PURE__*/React.createElement(Bleed, {\n marginBlockStart: title ? undefined : '05'\n }, /*#__PURE__*/React.createElement(Box, {\n as: \"ul\",\n id: `${id}-${sectionIndex}`,\n role: role\n }, optionsMarkup)));\n }) : null;\n return /*#__PURE__*/React.createElement(Box, {\n as: \"ul\",\n role: role,\n padding: \"2\"\n }, optionsMarkup);\n}\n\nfunction createNormalizedOptions(options, sections, title) {\n if (options == null) {\n const section = {\n options: [],\n title\n };\n return sections == null ? [] : [section, ...sections];\n }\n\n if (sections == null) {\n return [{\n title,\n options\n }];\n }\n\n return [{\n title,\n options\n }, ...sections];\n}\n\nfunction optionArraysAreEqual(firstArray, secondArray) {\n if (isSection(firstArray) && isSection(secondArray)) {\n return arraysAreEqual(firstArray, secondArray, testSectionsPropEquality);\n }\n\n return arraysAreEqual(firstArray, secondArray);\n}\n\nfunction testSectionsPropEquality(previousSection, currentSection) {\n const {\n options: previousOptions\n } = previousSection;\n const {\n options: currentOptions\n } = currentSection;\n const optionsAreEqual = arraysAreEqual(previousOptions, currentOptions);\n const titlesAreEqual = previousSection.title === currentSection.title;\n return optionsAreEqual && titlesAreEqual;\n}\n\nexport { OptionList };\n","import React, { Component } from 'react';\r\nimport { Select } from '@shopify/polaris';\r\n\r\nexport class EmojiPickerCustom extends Component {\r\n\r\n constructor(props, ref) {\r\n super(props);\r\n\r\n this.state = { value: this.props.value };\r\n }\r\n\r\n handleEmojiChange(newValue) {\r\n this.setState({ value: newValue });\r\n\r\n this.props.handleChange(this.props.fieldName, newValue);\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n <Select\r\n label={this.props.label}\r\n options={[{ label: '', value: '' }, { label: 'ðŸ˜', value: 'ðŸ˜' }, { label: '🔥', value: '🔥' }, { label: '🤩', value: '🤩' }, { label: '😇', value: '😇' }, { label: 'ðŸ˜', value: 'ðŸ˜' },\r\n { label: '😎', value: '😎' }, { label: '🤠', value: '🤠' }, { label: '😱', value: '😱' }, { label: 'ðŸ™', value: 'ðŸ™' }, { label: 'ðŸ‘', value: 'ðŸ‘' }, { label: '🙌', value: '🙌' },\r\n { label: '✨', value: '✨' }, { label: 'âš¡ï¸', value: 'âš¡ï¸' }, { label: '🌞', value: '🌞' }, { label: '🚚', value: '🚚' }, { label: '🛫', value: '🛫' }, { label: 'ðŸŽ', value: 'ðŸŽ' }]}\r\n onChange={(newValue) => this.handleEmojiChange(newValue)}\r\n value={this.state.value}\r\n />\r\n );\r\n }\r\n\r\n}","var styles = {\n \"Tag\": \"Polaris-Tag\",\n \"disabled\": \"Polaris-Tag--disabled\",\n \"clickable\": \"Polaris-Tag--clickable\",\n \"removable\": \"Polaris-Tag--removable\",\n \"linkable\": \"Polaris-Tag--linkable\",\n \"TagText\": \"Polaris-Tag__TagText\",\n \"Button\": \"Polaris-Tag__Button\",\n \"segmented\": \"Polaris-Tag--segmented\",\n \"Link\": \"Polaris-Tag__Link\",\n \"LinkText\": \"Polaris-Tag__LinkText\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { CancelSmallMinor } from '@shopify/polaris-icons';\nimport { classNames } from '../../utilities/css.js';\nimport { handleMouseUpByBlurring } from '../../utilities/focus.js';\nimport styles from './Tag.scss.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Icon } from '../Icon/Icon.js';\n\nfunction Tag({\n children,\n disabled = false,\n onClick,\n onRemove,\n accessibilityLabel,\n url\n}) {\n const i18n = useI18n();\n const segmented = onRemove && url;\n const className = classNames(styles.Tag, disabled && styles.disabled, onClick && styles.clickable, onRemove && styles.removable, url && !disabled && styles.linkable, segmented && styles.segmented);\n\n if (onClick) {\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n disabled: disabled,\n className: className,\n onClick: onClick\n }, children);\n }\n\n let tagTitle = accessibilityLabel;\n\n if (!tagTitle) {\n tagTitle = typeof children === 'string' ? children : undefined;\n }\n\n const ariaLabel = i18n.translate('Polaris.Tag.ariaLabel', {\n children: tagTitle || ''\n });\n const removeButton = onRemove ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": ariaLabel,\n className: classNames(styles.Button, segmented && styles.segmented),\n onClick: onRemove,\n onMouseUp: handleMouseUpByBlurring,\n disabled: disabled\n }, /*#__PURE__*/React.createElement(Icon, {\n source: CancelSmallMinor\n })) : null;\n const tagContent = url && !disabled ? /*#__PURE__*/React.createElement(\"a\", {\n className: classNames(styles.Link, segmented && styles.segmented),\n href: url\n }, /*#__PURE__*/React.createElement(\"span\", {\n title: tagTitle,\n className: styles.LinkText\n }, children)) : /*#__PURE__*/React.createElement(\"span\", {\n title: tagTitle,\n className: styles.TagText\n }, children);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className\n }, tagContent, removeButton);\n}\n\nexport { Tag };\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","var styles = {\n \"TextOption\": \"Polaris-Listbox-TextOption\",\n \"allowMultiple\": \"Polaris-Listbox-TextOption--allowMultiple\",\n \"isAction\": \"Polaris-Listbox-TextOption--isAction\",\n \"selected\": \"Polaris-Listbox-TextOption--selected\",\n \"disabled\": \"Polaris-Listbox-TextOption--disabled\",\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 disabled: disabled,\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","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","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","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 { ActionContext } from '../../../../utilities/listbox/context.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 isAction = useContext(ActionContext);\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 handleOptionSelect = useCallback(event => {\n event.preventDefault();\n event.stopPropagation();\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 = event => {\n event.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-listbox-option\": true,\n \"data-listbox-option-action\": isAction,\n \"data-listbox-option-value\": value,\n \"data-listbox-option-destructive\": destructive,\n \"data-within-section\": isWithinSection,\n className: classNames(styles.Option, divider && styles.divider),\n id: domId,\n ref: listItemRef,\n tabIndex: -1,\n role: legacyRoleSupport,\n \"aria-label\": accessibilityLabel,\n \"aria-selected\": selected,\n \"aria-disabled\": disabled,\n onClick: disabled ? undefined : handleOptionSelect,\n onKeyDown: disabled ? undefined : handleOptionSelect,\n onMouseDown: handleMouseDown\n }), contentMarkup);\n});\n\nexport { Option };\n","import React, { useState, useRef, useEffect, useCallback, Children, useMemo } from 'react';\nimport { debounce } from '../../utilities/debounce.js';\nimport { useToggle } from '../../utilities/use-toggle.js';\nimport { Key } from '../../types.js';\nimport { scrollable } from '../shared.js';\nimport styles from './Listbox.scss.js';\nimport { useComboboxListbox } from '../../utilities/combobox/hooks.js';\nimport { scrollOptionIntoView } from '../../utilities/listbox/utilities.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 { Text } from '../Text/Text.js';\nimport { Option } from './components/Option/Option.js';\n\nlet AutoSelection;\n\n(function (AutoSelection) {\n AutoSelection[\"FirstSelected\"] = \"FIRST_SELECTED\";\n AutoSelection[\"First\"] = \"FIRST\";\n AutoSelection[\"None\"] = \"NONE\";\n})(AutoSelection || (AutoSelection = {}));\n\nconst OPTION_SELECTOR = '[data-listbox-option]';\nconst OPTION_VALUE_ATTRIBUTE = 'data-listbox-option-value';\nconst OPTION_ACTION_ATTRIBUTE = 'data-listbox-option-action';\nconst OPTION_FOCUS_ATTRIBUTE = 'data-focused';\nfunction Listbox({\n children,\n autoSelection = AutoSelection.FirstSelected,\n enableKeyboardControl,\n accessibilityLabel,\n customListId,\n onSelect,\n onActiveOptionChange\n}) {\n const [loading, setLoading] = useState();\n const [activeOption, setActiveOption] = useState();\n const [lazyLoading, setLazyLoading] = useState(false);\n const [currentOptions, setCurrentOptions] = useState([]);\n const {\n value: keyboardEventsEnabled,\n setTrue: enableKeyboardEvents,\n setFalse: disableKeyboardEvents\n } = useToggle(Boolean(enableKeyboardControl));\n const uniqueId = useUniqueId('Listbox');\n const listId = customListId || uniqueId;\n const scrollableRef = useRef(null);\n const listboxRef = useRef(null);\n const {\n listboxId,\n textFieldLabelId,\n textFieldFocused,\n willLoadMoreOptions,\n setActiveOptionId,\n setListboxId,\n onOptionSelected,\n onKeyToBottom\n } = useComboboxListbox();\n const inCombobox = Boolean(setActiveOptionId);\n useEffect(() => {\n if (setListboxId && !listboxId) {\n setListboxId(listId);\n }\n }, [setListboxId, listboxId, listId]);\n const getNavigableOptions = useCallback(() => {\n if (!listboxRef.current) {\n return [];\n }\n\n return [...new Set(listboxRef.current.querySelectorAll(OPTION_SELECTOR))];\n }, []);\n const getFirstNavigableOption = useCallback(currentOptions => {\n const hasSelectedOptions = currentOptions.some(option => option.getAttribute('aria-selected') === 'true');\n let elementIndex = 0;\n const element = currentOptions.find((option, index) => {\n const isInteractable = option.getAttribute('aria-disabled') !== 'true';\n let isFirstNavigableOption;\n\n if (hasSelectedOptions && autoSelection === AutoSelection.FirstSelected) {\n const isSelected = option.getAttribute('aria-selected') === 'true';\n isFirstNavigableOption = isSelected && isInteractable;\n } else {\n isFirstNavigableOption = isInteractable;\n }\n\n if (isFirstNavigableOption) elementIndex = index;\n return isFirstNavigableOption;\n });\n if (!element) return;\n return {\n element,\n index: elementIndex\n };\n }, [autoSelection]);\n const handleScrollIntoView = useCallback(option => {\n const {\n current: scrollable\n } = scrollableRef;\n\n if (scrollable) {\n scrollOptionIntoView(option.element, scrollable);\n }\n }, []);\n const handleScrollIntoViewDebounced = debounce(handleScrollIntoView, 50);\n const handleKeyToBottom = useCallback(() => {\n if (onKeyToBottom) {\n setLazyLoading(true);\n return Promise.resolve(onKeyToBottom());\n }\n }, [onKeyToBottom]);\n const handleChangeActiveOption = useCallback(nextOption => {\n if (!nextOption) return setActiveOption(undefined);\n activeOption === null || activeOption === void 0 ? void 0 : activeOption.element.removeAttribute(OPTION_FOCUS_ATTRIBUTE);\n nextOption.element.setAttribute(OPTION_FOCUS_ATTRIBUTE, 'true');\n handleScrollIntoViewDebounced(nextOption);\n setActiveOption(nextOption);\n setActiveOptionId === null || setActiveOptionId === void 0 ? void 0 : setActiveOptionId(nextOption.domId);\n onActiveOptionChange === null || onActiveOptionChange === void 0 ? void 0 : onActiveOptionChange(nextOption.value, nextOption.domId);\n }, [activeOption, setActiveOptionId, onActiveOptionChange, handleScrollIntoViewDebounced]);\n const getFormattedOption = useCallback((element, index) => {\n return {\n element,\n index,\n domId: element.id,\n value: element.getAttribute(OPTION_VALUE_ATTRIBUTE) || '',\n disabled: element.getAttribute('aria-disabled') === 'true',\n isAction: element.getAttribute(OPTION_ACTION_ATTRIBUTE) === 'true'\n };\n }, []);\n const resetActiveOption = useCallback(() => {\n var _nextOption, _nextOption2, _nextOption3;\n\n let nextOption;\n const nextOptions = getNavigableOptions();\n const nextActiveOption = getFirstNavigableOption(nextOptions);\n\n if (nextOptions.length === 0 && currentOptions.length > 0) {\n setCurrentOptions(nextOptions);\n handleChangeActiveOption();\n return;\n }\n\n if (nextActiveOption) {\n const {\n element,\n index\n } = nextActiveOption;\n nextOption = getFormattedOption(element, index);\n }\n\n const optionIsAlreadyActive = activeOption !== undefined && ((_nextOption = nextOption) === null || _nextOption === void 0 ? void 0 : _nextOption.domId) === (activeOption === null || activeOption === void 0 ? void 0 : activeOption.domId);\n const actionContentHasUpdated = (activeOption === null || activeOption === void 0 ? void 0 : activeOption.isAction) && ((_nextOption2 = nextOption) === null || _nextOption2 === void 0 ? void 0 : _nextOption2.isAction) && ((_nextOption3 = nextOption) === null || _nextOption3 === void 0 ? void 0 : _nextOption3.value) !== (activeOption === null || activeOption === void 0 ? void 0 : activeOption.value);\n const currentValues = currentOptions.map(option => option.getAttribute(OPTION_VALUE_ATTRIBUTE));\n const nextValues = nextOptions.map(option => option.getAttribute(OPTION_VALUE_ATTRIBUTE));\n const listIsUnchanged = nextValues.length === currentValues.length && nextValues.every((value, index) => {\n return currentValues[index] === value;\n });\n const listIsAppended = currentValues.length !== 0 && nextValues.length > currentValues.length && currentValues.every((value, index) => {\n return nextValues[index] === value;\n });\n\n if (listIsUnchanged) {\n if (optionIsAlreadyActive && actionContentHasUpdated) {\n setCurrentOptions(nextOptions);\n handleChangeActiveOption(nextOption);\n }\n\n return;\n }\n\n if (listIsAppended) {\n setCurrentOptions(nextOptions);\n return;\n }\n\n setCurrentOptions(nextOptions);\n\n if (lazyLoading) {\n setLazyLoading(false);\n return;\n }\n\n handleChangeActiveOption(nextOption);\n }, [lazyLoading, currentOptions, activeOption, getFirstNavigableOption, getNavigableOptions, getFormattedOption, handleChangeActiveOption]);\n useEffect(() => {\n if (autoSelection !== AutoSelection.None && !loading && children && Children.count(children) > 0) {\n resetActiveOption();\n }\n }, [children, autoSelection, activeOption, loading, resetActiveOption]);\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 if (onOptionSelected) onOptionSelected();\n if (onSelect) onSelect(option.value);\n }, [handleChangeActiveOption, onSelect, onOptionSelected]);\n const getNextIndex = useCallback((currentIndex, lastIndex, direction) => {\n let nextIndex;\n\n if (direction === 'down') {\n if (currentIndex === lastIndex) {\n nextIndex = willLoadMoreOptions ? currentIndex + 1 : 0;\n } else {\n nextIndex = currentIndex + 1;\n }\n } else {\n nextIndex = currentIndex === 0 ? lastIndex : currentIndex - 1;\n }\n\n return nextIndex;\n }, [willLoadMoreOptions]);\n const getNextValidOption = useCallback(async key => {\n const lastIndex = currentOptions.length - 1;\n let currentIndex = (activeOption === null || activeOption === void 0 ? void 0 : activeOption.index) || 0;\n let nextIndex = 0;\n let element = activeOption === null || activeOption === void 0 ? void 0 : activeOption.element;\n let totalOptions = -1;\n\n if (!activeOption && autoSelection === AutoSelection.None) {\n const nextOptions = getNavigableOptions();\n const nextActiveOption = getFirstNavigableOption(nextOptions);\n setCurrentOptions(nextOptions);\n return {\n element: nextActiveOption === null || nextActiveOption === void 0 ? void 0 : nextActiveOption.element,\n nextIndex: (nextActiveOption === null || nextActiveOption === void 0 ? void 0 : nextActiveOption.index) || 0\n };\n }\n\n while (totalOptions++ < lastIndex) {\n var _element;\n\n nextIndex = getNextIndex(currentIndex, lastIndex, key);\n element = currentOptions[nextIndex];\n const triggerLazyLoad = nextIndex >= lastIndex;\n const isDisabled = ((_element = element) === null || _element === void 0 ? void 0 : _element.getAttribute('aria-disabled')) === 'true';\n\n if (triggerLazyLoad && willLoadMoreOptions) {\n await handleKeyToBottom();\n }\n\n if (isDisabled) {\n currentIndex = nextIndex;\n element = undefined;\n continue;\n }\n\n break;\n }\n\n return {\n element,\n nextIndex\n };\n }, [autoSelection, currentOptions, activeOption, willLoadMoreOptions, getNextIndex, handleKeyToBottom, getFirstNavigableOption, getNavigableOptions]);\n const handleArrow = useCallback(async (type, event) => {\n event.preventDefault();\n const {\n element,\n nextIndex\n } = await getNextValidOption(type);\n if (!element) return;\n const nextOption = getFormattedOption(element, nextIndex);\n handleChangeActiveOption(nextOption);\n }, [getFormattedOption, getNextValidOption, handleChangeActiveOption]);\n const handleDownArrow = useCallback(event => {\n handleArrow('down', event);\n }, [handleArrow]);\n const handleUpArrow = useCallback(event => {\n handleArrow('up', event);\n }, [handleArrow]);\n const handleEnter = useCallback(event => {\n event.preventDefault();\n event.stopPropagation();\n\n if (activeOption) {\n onOptionSelect(activeOption);\n }\n }, [activeOption, onOptionSelect]);\n const handleFocus = useCallback(() => {\n if (enableKeyboardControl) return;\n enableKeyboardEvents();\n }, [enableKeyboardControl, enableKeyboardEvents]);\n const handleBlur = useCallback(event => {\n event.stopPropagation();\n\n if (keyboardEventsEnabled) {\n const nextActiveOption = getFirstNavigableOption(currentOptions);\n\n if (nextActiveOption) {\n const {\n element,\n index\n } = nextActiveOption;\n const nextOption = getFormattedOption(element, index);\n handleChangeActiveOption(nextOption);\n }\n }\n\n if (enableKeyboardControl) return;\n disableKeyboardEvents();\n }, [enableKeyboardControl, currentOptions, keyboardEventsEnabled, disableKeyboardEvents, getFirstNavigableOption, getFormattedOption, handleChangeActiveOption]);\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 const listboxContext = useMemo(() => ({\n onOptionSelect,\n setLoading\n }), [onOptionSelect]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, listeners, /*#__PURE__*/React.createElement(Text, {\n as: \"span\",\n visuallyHidden: true\n }, /*#__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: styles.Listbox,\n \"aria-label\": inCombobox ? undefined : accessibilityLabel,\n \"aria-labelledby\": textFieldLabelId,\n \"aria-busy\": Boolean(loading),\n \"aria-activedescendant\": activeOption && activeOption.domId,\n id: listId,\n onFocus: inCombobox ? undefined : handleFocus,\n onBlur: inCombobox ? undefined : handleBlur,\n ref: listboxRef\n }, children) : null)));\n}\nListbox.Option = Option;\nListbox.TextOption = TextOption;\nListbox.Loading = Loading;\nListbox.Section = Section;\nListbox.Header = Header;\nListbox.Action = Action;\n\nexport { AutoSelection, Listbox };\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 <Combobox> component.');\n }\n\n return context;\n}\nfunction useComboboxListbox() {\n const context = useContext(ComboboxListboxContext);\n return context;\n}\n\nexport { useComboboxListbox, useComboboxTextField };\n","function scrollOptionIntoView(option, scrollable) {\n const listTop = scrollable.scrollTop;\n const listBottom = listTop + scrollable.clientHeight;\n const {\n offsetHeight: optionHeight\n } = option;\n const {\n offsetTop: optionTop\n } = option;\n const optionBottom = optionTop + optionHeight;\n const isVisible = optionTop > listTop && optionBottom < listBottom;\n\n if (!isVisible) {\n let top = 0;\n\n if (optionBottom > listBottom) {\n top = optionBottom + optionHeight * 0.85 - listBottom;\n } else if (optionTop < listTop) {\n top = optionTop - optionHeight * 0.15 - listTop;\n }\n\n requestAnimationFrame(() => {\n scrollable.scrollBy({\n top,\n behavior: 'auto'\n });\n });\n }\n}\n\nexport { scrollOptionIntoView };\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 { useSection } from '../Section/hooks.js';\nimport { Box } from '../../../Box/Box.js';\nimport { Text } from '../../../Text/Text.js';\n\nfunction Header({\n children\n}) {\n const sectionId = useSection() || '';\n const content = typeof children === 'string' ? /*#__PURE__*/React.createElement(Box, {\n paddingBlockStart: \"2\",\n paddingInlineStart: \"4\",\n paddingBlockEnd: \"2\",\n paddingInlineEnd: \"4\"\n }, /*#__PURE__*/React.createElement(Text, {\n as: \"span\",\n variant: \"headingXs\",\n color: \"subdued\"\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(ActionContext.Provider, {\n value: true\n }, /*#__PURE__*/React.createElement(Option, props, /*#__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 activator,\n allowMultiple,\n children,\n preferredPosition = 'below',\n willLoadMoreOptions,\n height,\n onScrolledToBottom,\n onClose\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 handleClose = useCallback(() => {\n setPopoverActive(false);\n onClose === null || onClose === void 0 ? void 0 : onClose();\n setActiveOptionId(undefined);\n }, [onClose]);\n const handleOpen = useCallback(() => {\n setPopoverActive(true);\n setActiveOptionId(undefined);\n }, []);\n const onOptionSelected = useCallback(() => {\n var _ref$current;\n\n if (!allowMultiple) {\n handleClose();\n setActiveOptionId(undefined);\n return;\n }\n\n (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.forceUpdatePosition();\n }, [allowMultiple, handleClose]);\n const handleFocus = useCallback(() => {\n if (shouldOpen) {\n handleOpen();\n }\n }, [shouldOpen, handleOpen]);\n const handleChange = useCallback(() => {\n if (shouldOpen) {\n handleOpen();\n }\n }, [shouldOpen, handleOpen]);\n const handleBlur = useCallback(() => {\n if (popoverActive) {\n handleClose();\n }\n }, [popoverActive, handleClose]);\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 listboxId,\n textFieldLabelId,\n textFieldFocused,\n willLoadMoreOptions,\n onOptionSelected,\n setActiveOptionId,\n setListboxId,\n onKeyToBottom: onScrolledToBottom\n }), [listboxId, textFieldLabelId, textFieldFocused, willLoadMoreOptions, onOptionSelected, setActiveOptionId, setListboxId, onScrolledToBottom]);\n return /*#__PURE__*/React.createElement(Popover, {\n ref: ref,\n active: popoverActive,\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 onClose: handleClose\n }, Children.count(children) > 0 ? /*#__PURE__*/React.createElement(Popover.Pane, {\n onScrolledToBottom: onScrolledToBottom,\n height: height\n }, /*#__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 { useUniqueId } from '../../../../utilities/unique-id/hooks.js';\nimport { labelID } from '../../../Label/Label.js';\nimport { TextField as TextField$1 } from '../../../TextField/TextField.js';\n\nfunction TextField({\n value,\n id: idProp,\n type = 'text',\n ariaAutocomplete = 'list',\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(event => {\n if (onFocus) onFocus(event);\n if (onTextFieldFocus) onTextFieldFocus();\n if (setTextFieldFocused) setTextFieldFocused(true);\n }, [onFocus, onTextFieldFocus, setTextFieldFocused]);\n const handleBlur = useCallback(event => {\n if (onBlur) onBlur(event);\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(value);\n }, [onChange, onTextFieldChange]);\n return /*#__PURE__*/React.createElement(TextField$1, Object.assign({}, rest, {\n value: value,\n id: textFieldId,\n type: type,\n ariaAutocomplete: ariaAutocomplete,\n \"aria-haspopup\": \"listbox\",\n ariaActiveDescendant: activeOptionId,\n ariaControls: listboxId,\n role: \"combobox\",\n ariaExpanded: expanded,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange\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 { Text } from '../../../Text/Text.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(Text, {\n color: \"subdued\",\n as: \"span\"\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 { Listbox, AutoSelection } from '../Listbox/Listbox.js';\nimport { Combobox } from '../Combobox/Combobox.js';\nimport { MappedAction } from './components/MappedAction/MappedAction.js';\nimport { useI18n } from '../../utilities/i18n/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 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 (actionBefore && newSelection === actionBefore.content) {\n actionBefore.onAction && actionBefore.onAction();\n return;\n }\n\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, actionBefore]);\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 const autoSelection = actionBefore ? AutoSelection.First : undefined;\n return /*#__PURE__*/React.createElement(Combobox, {\n activator: textField,\n allowMultiple: allowMultiple,\n onScrolledToBottom: onLoadMoreResults,\n preferredPosition: preferredPosition,\n willLoadMoreOptions: willLoadMoreResults\n }, actionMarkup || optionsMarkup || loadingMarkup || emptyStateMarkup ? /*#__PURE__*/React.createElement(Listbox, {\n autoSelection: autoSelection,\n onSelect: updateSelection\n }, actionMarkup, optionsMarkup && (!loading || willLoadMoreResults) ? optionsMarkup : null, loadingMarkup, emptyStateMarkup) : null);\n};\nAutocomplete.TextField = Combobox.TextField;\n\nexport { Autocomplete };\n","import React, { Component } from 'react';\r\nimport { TextContainer, Autocomplete, Stack, Tag } from '@shopify/polaris';\r\n\r\nexport class CountryPickerCustom extends Component {\r\n\r\n constructor(props, ref) {\r\n super(props);\r\n\r\n const options = JSON.parse(JSON.stringify(props.options));\r\n\r\n this.state = {\r\n filteredOptions: options,\r\n selectedOptions: this.props.value ? this.props.value : [],\r\n value: ''\r\n };\r\n }\r\n\r\n handleSearch(newValue) {\r\n this.setState({ value: newValue });\r\n\r\n const options = JSON.parse(JSON.stringify(this.props.options));\r\n\r\n if (newValue === '') {\r\n this.setState({ filteredOptions: options });\r\n return;\r\n }\r\n\r\n const filterRegex = new RegExp(newValue, 'i');\r\n const resultOptions = options.filter((option) =>\r\n option.label.match(filterRegex),\r\n );\r\n this.setState({ filteredOptions: resultOptions });\r\n }\r\n\r\n handleSelect(newValue) {\r\n this.setState({ selectedOptions: newValue });\r\n\r\n this.props.handleChange(this.props.fieldName, newValue);\r\n }\r\n\r\n handleRemove(newValue) {\r\n this.state.selectedOptions.splice(this.state.selectedOptions.indexOf(newValue), 1);\r\n this.setState({ selectedOptions: this.state.selectedOptions });\r\n\r\n this.props.handleChange(this.props.fieldName, this.state.selectedOptions);\r\n }\r\n\r\n render() {\r\n\r\n const tagsMarkup = this.state.selectedOptions.map((option) => {\r\n\r\n var tagLabel = this.props.options.filter((p) =>\r\n p.value === option,\r\n )[0].label;\r\n\r\n return (\r\n <Tag key={`option${option}`} onRemove={(tag) => this.handleRemove(option)}>\r\n {tagLabel}\r\n </Tag>\r\n );\r\n });\r\n\r\n const textField = (\r\n <Autocomplete.TextField\r\n onChange={(newValue) => this.handleSearch(newValue)}\r\n label={this.props.label}\r\n value={this.state.value}\r\n placeholder=\"Search\"\r\n />\r\n );\r\n\r\n return (\r\n <div className=\"country-picker-custom\">\r\n <Autocomplete\r\n allowMultiple\r\n options={this.state.filteredOptions}\r\n selected={this.state.selectedOptions}\r\n textField={textField}\r\n onSelect={(newValue) => this.handleSelect(newValue)}\r\n listTitle=\"Choose Countries\"\r\n preferredPosition=\"above\"\r\n />\r\n <TextContainer>\r\n <Stack>{tagsMarkup}</Stack>\r\n </TextContainer>\r\n </div>\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nexport class CartSliderShippingBar extends Component {\r\n\r\n constructor(props, ref) {\r\n super(props);\r\n }\r\n\r\n getBeforeAmountMessage_ShippingBar() {\r\n\r\n var totalPrice = this.props.totalPrice ? parseFloat(this.props.totalPrice) : 0;\r\n var minAmount = this.props.model.minAmount_ShippingBar ? parseFloat(this.props.model.minAmount_ShippingBar) : 0;\r\n\r\n var message = '';\r\n\r\n if (totalPrice === 0 && minAmount > 0) {\r\n message = this.props.model.initialMessageBeforeAmount_ShippingBar;\r\n }\r\n else if (totalPrice < minAmount) {\r\n message = this.props.model.progressMessageBeforeAmount_ShippingBar;\r\n }\r\n\r\n return message;\r\n }\r\n\r\n getAmmount_ShippingBar() {\r\n\r\n var totalPrice = this.props.totalPrice ? parseFloat(this.props.totalPrice) : 0;\r\n var minAmount = this.props.model.minAmount_ShippingBar ? parseFloat(this.props.model.minAmount_ShippingBar) : 0;\r\n\r\n var message = '';\r\n\r\n if (totalPrice === 0 && minAmount > 0) {\r\n message = this.props.currency + parseFloat(parseFloat(minAmount).toFixed(2)).toString();\r\n }\r\n else if (totalPrice < minAmount) {\r\n message = this.props.currency + parseFloat(parseFloat(minAmount - totalPrice).toFixed(2)).toString();\r\n }\r\n\r\n return message;\r\n }\r\n\r\n getAfterAmountMessage_ShippingBar() {\r\n\r\n var totalPrice = this.props.totalPrice ? parseFloat(this.props.totalPrice) : 0;\r\n var minAmount = this.props.model.minAmount_ShippingBar ? parseFloat(this.props.model.minAmount_ShippingBar) : 0;\r\n\r\n var message = '';\r\n\r\n if (totalPrice === 0 && minAmount > 0) {\r\n message = this.props.model.initialMessageAfterAmount_ShippingBar;\r\n }\r\n else if (totalPrice < minAmount) {\r\n message = this.props.model.progressMessageAfterAmount_ShippingBar;\r\n }\r\n\r\n return message;\r\n }\r\n\r\n getGoalAchievedMessage_ShippingBar() {\r\n\r\n var totalPrice = this.props.totalPrice ? parseFloat(this.props.totalPrice) : 0;\r\n var minAmount = this.props.model.minAmount_ShippingBar ? parseFloat(this.props.model.minAmount_ShippingBar) : 0;\r\n\r\n var message = '';\r\n\r\n if (totalPrice >= minAmount) {\r\n message = this.props.model.showShopperCountry_ShippingBar && (this.props.model.goalAchievedMessage_ShippingBar.endsWith('.') || this.props.model.goalAchievedMessage_ShippingBar.endsWith('!')) ? this.props.model.goalAchievedMessage_ShippingBar.slice(0, -1) : this.props.model.goalAchievedMessage_ShippingBar;\r\n }\r\n\r\n return message;\r\n }\r\n\r\n getCountryMessage_ShippingBar() {\r\n\r\n var message = this.props.model.showShopperCountry_ShippingBar ? this.props.model.messageBeforeCountry_ShippingBar + ' [COUNTRY]' + this.props.model.messageAfterCountry_ShippingBar : '';\r\n return message;\r\n }\r\n\r\n getProgress_ShippingBar() {\r\n\r\n var totalPrice = this.props.totalPrice ? parseFloat(this.props.totalPrice) : 0;\r\n var minAmount = this.props.model.minAmount_ShippingBar ? parseFloat(this.props.model.minAmount_ShippingBar) : 0;\r\n\r\n var progress = '0';\r\n\r\n if (totalPrice > minAmount) {\r\n progress = '100%';\r\n }\r\n else if (totalPrice < minAmount) {\r\n progress = (totalPrice * 100 / minAmount) + '%';\r\n }\r\n\r\n return progress;\r\n }\r\n \r\n render() {\r\n\r\n return (\r\n <div className={'satcb-cs-shippingbar' + (this.props.model.showCloseButton_ShippingBar ? ' with-close' : '')} style={{ backgroundColor: this.props.model.backgroundColor_ShippingBar, color: this.props.model.textColor_ShippingBar }}>\r\n <span style={{ display: this.getBeforeAmountMessage_ShippingBar() ? 'inline-block' : 'none' }}>{this.getBeforeAmountMessage_ShippingBar()}</span>\r\n <span style={{ display: this.getAmmount_ShippingBar() ? 'inline-block' : 'none', color: this.props.model.amountColor_ShippingBar, fontWeight: 'bold' }}>{this.getAmmount_ShippingBar()}</span>\r\n <span style={{ display: this.getAfterAmountMessage_ShippingBar() ? 'inline-block' : 'none' }}>{this.getAfterAmountMessage_ShippingBar()}</span>\r\n <span style={{ display: this.getGoalAchievedMessage_ShippingBar() ? 'inline-block' : 'none' }}>{this.getGoalAchievedMessage_ShippingBar()}</span>\r\n <span style={{ display: this.getCountryMessage_ShippingBar() ? 'inline-block' : 'none' }}>{this.getCountryMessage_ShippingBar()}</span>\r\n {\r\n this.props.model.showCloseButton_ShippingBar ?\r\n <span className=\"satcb-cs-shippingbar-close\" style={{ '--close-color': this.props.model.textColor_ShippingBar }}></span> : ''\r\n }\r\n {\r\n this.props.model.showProgressBar_ShippingBar ?\r\n <div className=\"satcb-cs-shippingbar-progress\" style={{ backgroundColor: this.props.model.progressBackgroundColor_ShippingBar }}>\r\n <div className=\"satcb-cs-shippingbar-progress-inner\" style={{ width: this.getProgress_ShippingBar(), backgroundColor: this.props.model.progressBarColor_ShippingBar }}></div>\r\n </div> : ''\r\n }\r\n </div>\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nexport class CartSliderCartReserved extends Component {\r\n\r\n constructor(props, ref) {\r\n super(props);\r\n\r\n this.showTimer = this.showTimer.bind(this);\r\n window.passedSecond = 0;\r\n }\r\n\r\n componentDidMount() {\r\n\r\n var timer = this.showTimer;\r\n timer();\r\n\r\n setInterval(function () {\r\n var passedSeconds = window.passedSecond;//localStorage.getItem('cart-slider-cartReserved-passedSecond');\r\n var passedTime = (passedSeconds !== null ? parseInt(passedSeconds) : 0) + 1;\r\n window.passedSecond = passedTime;\r\n\r\n timer();\r\n }, 1000);\r\n }\r\n\r\n showTimer() {\r\n var duration = this.props.model.countdownMinutes_CartReserved;\r\n\r\n if (duration === 0) {\r\n return;\r\n }\r\n\r\n var passedSeconds = window.passedSecond;//localStorage.getItem('cart-slider-cartReserved-passedSecond');\r\n var passedTime = 1000 * (passedSeconds !== null ? parseInt(passedSeconds) : 0);\r\n var totalTime = 60000 * duration;\r\n var actualTime = totalTime - passedTime;\r\n\r\n if (actualTime < 0) {\r\n window.passedSecond = 0;//localStorage.setItem('cart-slider-cartReserved-passedSecond', 0);\r\n return;\r\n }\r\n\r\n var actualDate = new Date(actualTime);\r\n window.$('.satcb-cs-cartReserved-timer').text((actualDate.getUTCMinutes() < 10 ? '0' : '') + actualDate.getUTCMinutes() + ':' + (actualDate.getUTCSeconds() < 10 ? '0' : '') + actualDate.getUTCSeconds());\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n <div className=\"satcb-cs-cartReserved\" style={{\r\n backgroundColor: this.props.model.backgroundColor_CartReserved,\r\n color: this.props.model.textColor_CartReserved,\r\n borderColor: this.props.model.borderColor_CartReserved ? this.props.model.borderColor_CartReserved : this.props.model.backgroundColor_CartReserved,\r\n fontSize: this.props.model.messageFontSize_CartReserved + 'px',\r\n borderRadius: this.props.model.borderRadius_CartReserved ? this.props.model.borderRadius_CartReserved + 'px' : '0px'\r\n }}>\r\n <div style={{ paddingRight: this.props.model.emoji_CartReserved ? '10px' : '0px' }}>\r\n <span style={{ fontSize: (this.props.model.messageFontSize_CartReserved * 2) + 'px' }}>{this.props.model.emoji_CartReserved}</span>\r\n </div>\r\n <div>\r\n <div>{this.props.model.message_CartReserved}</div>\r\n <div className=\"satcb-cs-cartReserved-bold\">\r\n <span>{this.props.model.messageBeforeTimer_CartReserved}</span>\r\n <span className=\"satcb-cs-cartReserved-timer\" style={{ color: this.props.model.colorOfTimer_CartReserved }}></span>\r\n <span>{this.props.model.messageAfterTimer_CartReserved}</span>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport Slider from \"react-slick\";\r\n\r\nexport class CartSliderInCartUpsell extends Component {\r\n\r\n constructor(props, ref) {\r\n super(props);\r\n\r\n this.handleChangeDemoQty = this.handleChangeDemoQty.bind(this);\r\n this.handleDemoQtyUpDown = this.handleDemoQtyUpDown.bind(this);\r\n\r\n this.state = { demoQty: 1 };\r\n }\r\n\r\n handleChangeDemoQty(event) {\r\n this.setState({ demoQty: event.target.value });\r\n }\r\n\r\n handleDemoQtyUpDown(value, e) {\r\n e.preventDefault();\r\n var val = this.state.demoQty + value;\r\n if (val > 0) {\r\n this.setState({ demoQty: val });\r\n }\r\n }\r\n\r\n render() {\r\n\r\n var sliderSettings = {\r\n dots: false,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n };\r\n\r\n return (\r\n <div className=\"satcb-cs-upsell\">\r\n <Slider {...sliderSettings}>\r\n <div className=\"satcb-cs-upsell-item-container\">\r\n <div className=\"satcb-cs-upsell-item\">\r\n <div className=\"satcb-cs-upsell-item-header\" style={{ color: this.props.model.titleColor_InCartUpsell }}>\r\n <span>{this.props.model.titleBeforeText_Translation_InCartUpsell}</span>\r\n <span>{this.props.model.overwriteProductName_Translation_InCartUpsell ? this.props.model.overwriteProductName_Translation_InCartUpsell : this.props.product.title}</span>\r\n <span>{this.props.model.titleAfterText_Translation_InCartUpsell}</span>\r\n </div>\r\n <div className=\"satcb-cs-upsell-item-inner\">\r\n <div className=\"satcb-cs-upsell-item-image\">\r\n <a href={this.props.product.url} target=\"_blank\" rel=\"noreferrer\"><img src={this.props.product.imageUrl} alt={this.props.product.title} /></a>\r\n </div>\r\n <div className=\"satcb-cs-upsell-item-content\">\r\n <div className=\"satcb-cs-upsell-item-title\" style={{ color: this.props.model.productLinkColor_InCartUpsell }}>{this.props.product.title}</div>\r\n {\r\n this.props.model.showVariantsDropdown_InCartUpsell ?\r\n <div className=\"satcb-cs-upsell-item-variantddl\">\r\n <select>\r\n <option>Variant 1</option>\r\n <option>Variant 2</option>\r\n </select>\r\n </div> : ''\r\n }\r\n {\r\n this.props.model.showQuantityBox_InCartUpsell ?\r\n <div className=\"satcb-cs-item-qty\">\r\n <a href=\"/#\" onClick={(e) => this.handleDemoQtyUpDown(-1, e)}><svg width=\"10\" viewBox=\"0 0 12 2\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.25 0H.75C.3 0 0 .4 0 1s.3 1 .75 1h10.5c.45 0 .75-.4.75-1s-.3-1-.75-1z\"></path></svg></a>\r\n <input type=\"text\" value={this.state.demoQty} onChange={this.handleChangeDemoQty} />\r\n <a href=\"/#\" onClick={(e) => this.handleDemoQtyUpDown(1, e)}><svg width=\"10\" viewBox=\"0 0 12 12\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11 5H7V1a1 1 0 00-2 0v4H1a1 1 0 000 2h4v4a1 1 0 002 0V7h4a1 1 0 000-2z\"></path></svg></a>\r\n </div> : ''\r\n }\r\n </div>\r\n <div className=\"satcb-cs-upsell-item-btn\">\r\n {\r\n this.props.model.showPrice_InCartUpsell && this.props.model.showComparePrice_InCartUpsell ?\r\n <div className=\"satcb-cs-upsell-item-compare-price\" style={{ color: this.props.model.productComparePriceColor_InCartUpsell }}>\r\n {this.props.currency + (this.props.product.defaultVariant.price + 25)}\r\n </div> : ''\r\n }\r\n {\r\n this.props.model.showPrice_InCartUpsell ?\r\n <div className=\"satcb-cs-upsell-item-price\" style={{ color: this.props.model.productPriceColor_InCartUpsell }}>\r\n {this.props.currency + this.props.product.defaultVariant.price}\r\n </div> : ''\r\n }\r\n <a href=\"/#\" onClick={(e) => e.preventDefault()} className=\"satcb-cs-upsell-item-atc\" style={{ backgroundColor: this.props.model.buttonBackgroundColor_InCartUpsell, color: this.props.model.buttonTextColor_InCartUpsell }}>{this.props.model.addToCart_Translation_InCartUpsell}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"satcb-cs-upsell-item-container\">\r\n <div className=\"satcb-cs-upsell-item\">\r\n <div className=\"satcb-cs-upsell-item-header\" style={{ color: this.props.model.titleColor_InCartUpsell }}>\r\n <span>{this.props.model.titleBeforeText_Translation_InCartUpsell}</span>\r\n <span>{this.props.model.overwriteProductName_Translation_InCartUpsell ? this.props.model.overwriteProductName_Translation_InCartUpsell : this.props.product.title}</span>\r\n <span>{this.props.model.titleAfterText_Translation_InCartUpsell}</span>\r\n </div>\r\n <div className=\"satcb-cs-upsell-item-inner\">\r\n <div className=\"satcb-cs-upsell-item-image\">\r\n <a href={this.props.product.url} target=\"_blank\" rel=\"noreferrer\"><img src={this.props.product.imageUrl} alt={this.props.product.title} /></a>\r\n </div>\r\n <div className=\"satcb-cs-upsell-item-content\">\r\n <div className=\"satcb-cs-upsell-item-title\" style={{ color: this.props.model.productLinkColor_InCartUpsell }}>{this.props.product.title}</div>\r\n {\r\n this.props.model.showVariantsDropdown_InCartUpsell ?\r\n <div className=\"satcb-cs-upsell-item-variantddl\">\r\n <select>\r\n <option>Variant 1</option>\r\n <option>Variant 2</option>\r\n </select>\r\n </div> : ''\r\n }\r\n {\r\n this.props.model.showQuantityBox_InCartUpsell ?\r\n <div className=\"satcb-cs-item-qty\">\r\n <a href=\"/#\" onClick={(e) => this.handleDemoQtyUpDown(-1, e)}><svg width=\"10\" viewBox=\"0 0 12 2\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.25 0H.75C.3 0 0 .4 0 1s.3 1 .75 1h10.5c.45 0 .75-.4.75-1s-.3-1-.75-1z\"></path></svg></a>\r\n <input type=\"text\" value={this.state.demoQty} onChange={this.handleChangeDemoQty} />\r\n <a href=\"/#\" onClick={(e) => this.handleDemoQtyUpDown(1, e)}><svg width=\"10\" viewBox=\"0 0 12 12\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11 5H7V1a1 1 0 00-2 0v4H1a1 1 0 000 2h4v4a1 1 0 002 0V7h4a1 1 0 000-2z\"></path></svg></a>\r\n </div> : ''\r\n }\r\n </div>\r\n <div className=\"satcb-cs-upsell-item-btn\">\r\n {\r\n this.props.model.showPrice_InCartUpsell && this.props.model.showComparePrice_InCartUpsell ?\r\n <div className=\"satcb-cs-upsell-item-compare-price\" style={{ color: this.props.model.productComparePriceColor_InCartUpsell }}>\r\n {this.props.currency + (this.props.product.defaultVariant.price + 25)}\r\n </div> : ''\r\n }\r\n {\r\n this.props.model.showPrice_InCartUpsell ?\r\n <div className=\"satcb-cs-upsell-item-price\" style={{ color: this.props.model.productPriceColor_InCartUpsell }}>\r\n {this.props.currency + this.props.product.defaultVariant.price}\r\n </div> : ''\r\n }\r\n <a href=\"/#\" onClick={(e) => e.preventDefault()} className=\"satcb-cs-upsell-item-atc\" style={{ backgroundColor: this.props.model.buttonBackgroundColor_InCartUpsell, color: this.props.model.buttonTextColor_InCartUpsell }}>{this.props.model.addToCart_Translation_InCartUpsell}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </Slider>\r\n </div>\r\n );\r\n }\r\n\r\n}","import React, { Component } from 'react';\r\nimport { Page, Layout, Card, FormLayout, TextField, Banner, SettingToggle, TextStyle, Checkbox, PageActions, Select, TextContainer, OptionList, ResourceList, ResourceItem, Tooltip, InlineStack, Text, Icon, Stack } from '@shopify/polaris';\r\nimport { InfoMinor } from '@shopify/polaris-icons';\r\nimport { SkeletonPageCustom } from './SkeletonPageCustom';\r\nimport { ColorPickerCustom } from './ColorPickerCustom';\r\nimport { EmojiPickerCustom } from './EmojiPickerCustom';\r\nimport { CountryPickerCustom } from './CountryPickerCustom';\r\nimport { CartSliderShippingBar } from './CartSliderShippingBar';\r\nimport { CartSliderCartReserved } from './CartSliderCartReserved';\r\nimport { CartSliderInCartUpsell } from './CartSliderInCartUpsell';\r\nimport { type } from 'jquery';\r\nimport { fetchApi } from './helpers/fetchApi';\r\n\r\nconst $ = window.$;\r\n\r\nvar fontStepValSmall = -2;\r\nvar fontStepValIncrease = 2\r\n\r\nexport class CartSlider extends Component {\r\n\r\n constructor(props, ref) {\r\n super(props);\r\n props.setIsLoading(true);\r\n this.saveChanges = this.saveChanges.bind(this);\r\n this.handleSectionSettings = this.handleSectionSettings.bind(this);\r\n this.updateSectionSettingsPreview = this.updateSectionSettingsPreview.bind(this);\r\n this.getDefaultFontValuesSectionSettings = this.getDefaultFontValuesSectionSettings.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleCartReserve = this.handleCartReserve.bind(this);\r\n this.getDefaultFontValuesCartReserve = this.getDefaultFontValuesCartReserve.bind(this);\r\n this.updateCartReservePreview = this.updateCartReservePreview.bind(this);\r\n this.getDefaultFontValuesInCartUpsell = this.getDefaultFontValuesInCartUpsell.bind(this);\r\n this.updateInCartUpsellPreview = this.updateInCartUpsellPreview.bind(this);\r\n this.handleInCartUpsell = this.handleInCartUpsell.bind(this);\r\n this.handleShippingCart = this.handleShippingCart.bind(this);\r\n this.updateShippingCartPreview = this.updateShippingCartPreview.bind(this);\r\n this.getDefaultFontValuesShippingCart = this.getDefaultFontValuesShippingCart.bind(this);\r\n this.handleChangeOptions = this.handleChangeOptions.bind(this);\r\n this.togglePreviewActive = this.togglePreviewActive.bind(this);\r\n this.handleChangeDemoQty = this.handleChangeDemoQty.bind(this);\r\n this.handleDemoQtyUpDown = this.handleDemoQtyUpDown.bind(this);\r\n this.removeItem = this.removeItem.bind(this);\r\n\r\n this.state = {\r\n initState: {}, model: {}, DefaultFontSizeSectionSettings: {}, DefaultFontSizeCartReserve: {}, DefaultFontSizeInCartUpSell: {}, DefaultFontSizeShippingCart: {}, loading: true, common: this.props.common, selectedBundles: [], previewActive: false, demoQty: 1, visibleItem: true,\r\n error:\r\n {\r\n closeAfterSeconds: false,\r\n countdownMinutes_CartReserved: false,\r\n notShowHours_CartReserved: false,\r\n messageFontSize_CartReserved: false,\r\n minAmount_ShippingBar: false,\r\n bundledProductsCount_InCartUpsell: false,\r\n }\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateData();\r\n this.props.setSaveChanges(this.saveChanges);\r\n\r\n // var moveTo = this.props.location.hash;\r\n // if (moveTo) {\r\n // var handle = setInterval(function () {\r\n // if (window.$(moveTo).length) {\r\n // clearInterval(handle);\r\n // window.location.hash = '';\r\n // window.location.hash = moveTo;\r\n // }\r\n // }, 50);\r\n // }\r\n }\r\n\r\n handleChange(fieldName, newValue) {\r\n this.setState(prevState => {\r\n let model = Object.assign({}, prevState.model);\r\n model[fieldName] = newValue;\r\n this.props.setIsDirty(JSON.stringify(this.state.initState) !== JSON.stringify(model));\r\n return { model };\r\n });\r\n\r\n\r\n }\r\n\r\n handleSectionSettings(newValue) {\r\n this.handleChange('titleFontSize', newValue)\r\n this.updateSectionSettingsPreview(newValue, this.getDefaultFontValuesSectionSettings())\r\n\r\n }\r\n\r\n handleCartReserve(newValue) {\r\n this.handleChange('cartInfoFontSize_CartReserved', newValue)\r\n this.updateCartReservePreview(newValue, this.getDefaultFontValuesCartReserve())\r\n }\r\n\r\n handleInCartUpsell(newValue) {\r\n this.handleChange('cartFontSize_InCartUpsell', newValue)\r\n this.updateInCartUpsellPreview(newValue, this.getDefaultFontValuesInCartUpsell())\r\n }\r\n\r\n handleShippingCart(newValue) {\r\n this.handleChange('shippingFontSize_ShippingBar', newValue)\r\n this.updateShippingCartPreview(newValue, this.getDefaultFontValuesShippingCart())\r\n }\r\n\r\n getDefaultFontValuesShippingCart() {\r\n if (Object.keys(this.state.DefaultFontSizeShippingCart).length === 0) {\r\n let elements = {\r\n shippingCartText1: window.$('.satcb-cs-shippingbar span'),\r\n }\r\n\r\n var fontSizes = {};\r\n $.each(elements, (key, val) => {\r\n fontSizes[key] = parseFloat(val.css('font-size'));\r\n });\r\n\r\n this.setState({ DefaultFontSizeShippingCart: fontSizes })\r\n return fontSizes;\r\n }\r\n }\r\n\r\n updateShippingCartPreview(value, defaultFont) {\r\n\r\n let elements = {\r\n shippingCartText1: window.$('.satcb-cs-shippingbar span'),\r\n }\r\n\r\n if (defaultFont === undefined) {\r\n defaultFont = this.state.DefaultFontSizeShippingCart;\r\n }\r\n\r\n if (value === \"\") {\r\n $.each(defaultFont, (key, size) => {\r\n elements[key].css('font-size', defaultFont[key] + 'px');\r\n });\r\n return;\r\n }\r\n\r\n let stepVal = parseFloat(value);\r\n $.each(defaultFont, (key, size) => {\r\n let newSize = size + stepVal;\r\n elements[key].css('font-size', newSize + 'px');\r\n });\r\n }\r\n\r\n\r\n getDefaultFontValuesInCartUpsell() {\r\n\r\n if (Object.keys(this.state.DefaultFontSizeInCartUpSell).length === 0) {\r\n let elements = {\r\n inCartUpsellText1: window.$('.satcb-cs-upsell-item-header span'),\r\n inCartUpsellTitle: window.$('.satcb-cs-upsell-item-title'),\r\n inCartUpsellQty: window.$('.satcb-cs-upsell-item-content .satcb-cs-item-qty input[type=text]'),\r\n inCartUpsellPrice: window.$('.satcb-cs-upsell-item-price'),\r\n inCartUpsellBtn: window.$('.satcb-cs-upsell-item-atc')\r\n }\r\n\r\n var fontSizes = {};\r\n $.each(elements, (key, val) => {\r\n fontSizes[key] = parseFloat(val.css('font-size'));\r\n });\r\n\r\n this.setState({ DefaultFontSizeInCartUpSell: fontSizes });\r\n\r\n return fontSizes;\r\n }\r\n\r\n }\r\n\r\n updateInCartUpsellPreview(value, defaultFont) {\r\n let elements = {\r\n inCartUpsellText1: window.$('.satcb-cs-upsell-item-header span'),\r\n inCartUpsellTitle: window.$('.satcb-cs-upsell-item-title'),\r\n inCartUpsellQty: window.$('.satcb-cs-upsell-item-content .satcb-cs-item-qty input[type=text]'),\r\n inCartUpsellPrice: window.$('.satcb-cs-upsell-item-price'),\r\n inCartUpsellBtn: window.$('.satcb-cs-upsell-item-atc')\r\n }\r\n\r\n if (defaultFont === undefined) {\r\n defaultFont = this.state.DefaultFontSizeInCartUpSell;\r\n }\r\n if (value === \"\") {\r\n $.each(defaultFont, (key, size) => {\r\n elements[key].css('font-size', defaultFont[key] + 'px');\r\n });\r\n return;\r\n }\r\n\r\n let stepVal = parseFloat(value);\r\n $.each(defaultFont, (key, size) => {\r\n let newSize = size + stepVal;\r\n elements[key].css('font-size', newSize + 'px');\r\n });\r\n }\r\n\r\n getDefaultFontValuesSectionSettings() {\r\n\r\n if (Object.keys(this.state.DefaultFontSizeSectionSettings).length === 0) {\r\n var elements = {\r\n title: window.$('.satcb-cs-header-title'),\r\n countVal: window.$('.satcb-cs-header-count'),\r\n subTotal: window.$('.satcb-cs-footer-subtotal span:first-child'),\r\n subTotalPrice: window.$('.satcb-cs-footer-subtotal span:last-child'),\r\n textShipping: window.$('.satcb-cs-taxes-shipping-note'),\r\n checkoutBtn: window.$('.satcb-cs-checkout-btn'),\r\n viewCart: window.$('.satcb-cs-view-cart'),\r\n continueShopping: window.$('.satcb-cs-continue-shopping'),\r\n proTitle: window.$('.satcb-cs-items .satcb-cs-item .satcb-cs-item-title a'),\r\n proQuantity: window.$('.satcb-cs-items .satcb-cs-item-qty input[type=text]'),\r\n proPrice: window.$('.satcb-cs-items .satcb-cs-item-price'),\r\n proVariant: window.$('.satcb-cs-items .satcb-cs-item-variant')\r\n };\r\n\r\n var fontSizes = {};\r\n $.each(elements, (key, val) => {\r\n fontSizes[key] = parseFloat(val.css('font-size'));\r\n });\r\n\r\n this.setState({ DefaultFontSizeSectionSettings: fontSizes });\r\n\r\n return fontSizes;\r\n }\r\n }\r\n\r\n updateSectionSettingsPreview(Value, defaultFont) {\r\n var elements = {\r\n title: window.$('.satcb-cs-header-title'),\r\n countVal: window.$('.satcb-cs-header-count'),\r\n subTotal: window.$('.satcb-cs-footer-subtotal span:first-child'),\r\n subTotalPrice: window.$('.satcb-cs-footer-subtotal span:last-child'),\r\n textShipping: window.$('.satcb-cs-taxes-shipping-note'),\r\n checkoutBtn: window.$('.satcb-cs-checkout-btn'),\r\n viewCart: window.$('.satcb-cs-view-cart'),\r\n continueShopping: window.$('.satcb-cs-continue-shopping'),\r\n proTitle: window.$('.satcb-cs-items .satcb-cs-item .satcb-cs-item-title a'),\r\n proQuantity: window.$('.satcb-cs-items .satcb-cs-item-qty input[type=text]'),\r\n proPrice: window.$('.satcb-cs-items .satcb-cs-item-price'),\r\n proVariant: window.$('.satcb-cs-items .satcb-cs-item-variant')\r\n };\r\n\r\n if (defaultFont === undefined) {\r\n defaultFont = this.state.DefaultFontSizeSectionSettings;\r\n }\r\n if (Value === \"\") {\r\n $.each(defaultFont, (key, size) => {\r\n elements[key].css('font-size', defaultFont[key] + 'px');\r\n });\r\n return;\r\n }\r\n\r\n let stepVal = parseFloat(Value);\r\n $.each(defaultFont, (key, size) => {\r\n let newSize = size + stepVal;\r\n elements[key].css('font-size', newSize + 'px');\r\n });\r\n }\r\n\r\n getDefaultFontValuesCartReserve() {\r\n\r\n if (Object.keys(this.state.DefaultFontSizeCartReserve).length === 0) {\r\n let elements = {\r\n cartReserveText1: window.$('.satcb-cs-cartReserved .satcb-cs-cartReserved-bold').prev(),\r\n cartReserveText2: window.$('.satcb-cs-cartReserved .satcb-cs-cartReserved-bold span:first-child'),\r\n cartReserveTime: window.$('.satcb-cs-cartReserved .satcb-cs-cartReserved-timer'),\r\n cartReserveText3: window.$('.satcb-cs-cartReserved .satcb-cs-cartReserved-timer').next(),\r\n }\r\n\r\n\r\n var fontSizes = {};\r\n $.each(elements, (key, val) => {\r\n fontSizes[key] = parseFloat(val.css('font-size'));\r\n });\r\n\r\n this.setState({ DefaultFontSizeCartReserve: fontSizes });\r\n\r\n return fontSizes;\r\n }\r\n }\r\n\r\n updateCartReservePreview(value, defaultFont) {\r\n\r\n let elements = {\r\n cartReserveText1: window.$('.satcb-cs-cartReserved .satcb-cs-cartReserved-bold').prev(),\r\n cartReserveText2: window.$('.satcb-cs-cartReserved .satcb-cs-cartReserved-bold span:first-child'),\r\n cartReserveTime: window.$('.satcb-cs-cartReserved .satcb-cs-cartReserved-timer'),\r\n cartReserveText3: window.$('.satcb-cs-cartReserved .satcb-cs-cartReserved-timer').next(),\r\n }\r\n\r\n if (defaultFont === undefined) {\r\n defaultFont = this.state.DefaultFontSizeCartReserve;\r\n }\r\n\r\n if (value === \"\") {\r\n $.each(defaultFont, (key, size) => {\r\n elements[key].css('font-size', defaultFont[key] + 'px');\r\n });\r\n return;\r\n }\r\n\r\n let stepVal = parseFloat(value);\r\n $.each(defaultFont, (key, size) => {\r\n let newSize = size + stepVal;\r\n elements[key].css('font-size', newSize + 'px');\r\n });\r\n }\r\n\r\n\r\n handleChangeOptions(newValue) {\r\n if (newValue == '0') {\r\n this.handleChange('clearLowQuantityItemsFromCartOnTimerEnd_CartReserved', false);\r\n this.handleChange('clearCartOnTimerEnd_CartReserved', false);\r\n this.handleChange('selectedRemoveProductOption_CartReserved', '0');\r\n } else if (newValue == '1') {\r\n this.handleChange('clearLowQuantityItemsFromCartOnTimerEnd_CartReserved', true);\r\n this.handleChange('clearCartOnTimerEnd_CartReserved', false);\r\n this.handleChange('selectedRemoveProductOption_CartReserved', '1');\r\n } else if (newValue == '2') {\r\n this.handleChange('clearCartOnTimerEnd_CartReserved', true);\r\n this.handleChange('clearLowQuantityItemsFromCartOnTimerEnd_CartReserved', false);\r\n this.handleChange('selectedRemoveProductOption_CartReserved', '2');\r\n }\r\n }\r\n\r\n selectBundles(newValue) {\r\n this.setState({ selectedBundles: newValue });\r\n }\r\n\r\n deleteBundles() {\r\n var items = this.state.model.bundles_InCartUpsell.filter((option) => this.state.selectedBundles.indexOf(option.id) === -1);\r\n this.handleChange('bundles_InCartUpsell', items);\r\n this.selectBundles([]);\r\n }\r\n\r\n togglePreviewActive() {\r\n var showDemo = !this.state.previewActive;\r\n this.setState({ previewActive: showDemo });\r\n\r\n var topNavTimer = setInterval(function () {\r\n if (window.$('#top-nav-div').length > 0) {\r\n setTimeout(function () { window.$('#top-nav-div').sticky('update'); }, 10);\r\n setTimeout(function () { window.$('#preview').sticky('update'); }, 0);\r\n\r\n }\r\n }, 500);\r\n\r\n setTimeout(function () {\r\n if (showDemo) {\r\n window.$('.satcb-cs').addClass('satcb-cs-open');\r\n window.$('body').addClass('satcb-cs-modal-open');\r\n window.$('.satcb-cs-content').animate({ 'margin-right': \"0\" }, 400);\r\n }\r\n else {\r\n window.$('.satcb-cs-content').animate({ 'margin-right': -window.$('.satcb-cs-content').width() }, 400, function () {\r\n window.$('.satcb-cs').removeClass('satcb-cs-open');\r\n window.$('body').removeClass('satcb-cs-modal-open');\r\n });\r\n }\r\n }, 0);\r\n }\r\n\r\n handleChangeDemoQty(event) {\r\n this.setState({ demoQty: event.target.value });\r\n }\r\n\r\n handleDemoQtyUpDown(value, e) {\r\n e.preventDefault();\r\n var val = this.state.demoQty + value;\r\n if (val > 0) {\r\n this.setState({ demoQty: val });\r\n }\r\n }\r\n\r\n handleBlur(fieldName, minValue) {\r\n var val = parseFloat(this.state.model[fieldName]);\r\n var hasError = !(val >= minValue);\r\n\r\n this.setState(prevState => {\r\n let error = Object.assign({}, prevState.error);\r\n error[fieldName] = hasError;\r\n return { error };\r\n });\r\n\r\n return hasError;\r\n }\r\n\r\n removeItem() {\r\n this.setState({ visibleItem: false });\r\n }\r\n\r\n getCurrencySymbol() {\r\n var symbol = this.state.common.currency;\r\n switch (symbol) {\r\n case 'USD':\r\n symbol = '$';\r\n break;\r\n case 'EUR':\r\n symbol = '€';\r\n break;\r\n default:\r\n symbol += ' ';\r\n break;\r\n }\r\n\r\n return symbol;\r\n }\r\n\r\n render() {\r\n let token = !window.navigate ? `&token=${new URLSearchParams(window.location.search).get(\"token\")}` : \"\";\r\n\r\n let lblCustomBundles = <span>\r\n <b className=\"Polaris-Text--root Polaris-Text--headingSm Polaris-Text--semibold\">\r\n Custom Bundles\r\n </b>\r\n <br />\r\n <span>\r\n Consider bundling related or frequently purchased items together.\r\n </span>\r\n </span>;\r\n\r\n let lblSmartRecommendation = <span>\r\n <b className=\"Polaris-Text--root Polaris-Text--headingSm Polaris-Text--semibold\">\r\n Smart recommendations\r\n </b>\r\n <br />\r\n <span>\r\n Leverage the customer's purchase history and behavior to suggest products they are likely to be interested in.\r\n </span>\r\n </span>;\r\n\r\n let lblGlobalRecommendation = <span>\r\n <b className=\"Polaris-Text--root Polaris-Text--headingSm Polaris-Text--semibold\">\r\n Global recommendations\r\n <Tooltip content=\"To add products as global recommendations tag them with the exact text 'Global upsell recommendations'\">\r\n <div style={{ lineHeight: 'normal', marginLeft: '4px', display: 'inline-block', marginBottom: '-4px' }}>\r\n <Icon source={InfoMinor} color=\"inkLightest\" />\r\n </div>\r\n </Tooltip>\r\n </b>\r\n <br />\r\n <span>\r\n Based on manual tagging of products, use for promoting seasonal or trending items, bestsellers, or special promotions.\r\n </span>\r\n </span>;\r\n\r\n let lblSameCollection = <span>\r\n <b className=\"Polaris-Text--root Polaris-Text--headingSm Polaris-Text--semibold\">\r\n Same Collection\r\n </b>\r\n <br />\r\n <span>\r\n Suggests products within the same collection, which often share a theme or purpose.\r\n </span>\r\n </span>;\r\n let lblSameProductType = <span>\r\n <b className=\"Polaris-Text--root Polaris-Text--headingSm Polaris-Text--semibold\">\r\n Same Product Type\r\n </b>\r\n <br />\r\n <span>\r\n Recommending products of the same type, like different laptop models, can help customers find alternatives or upgrades.\r\n </span>\r\n </span>;\r\n\r\n let lblSameVendor = <span>\r\n <b className=\"Polaris-Text--root Polaris-Text--headingSm Polaris-Text--semibold\">\r\n Same Vendor\r\n </b>\r\n <br />\r\n <span>\r\n Promotes items that are compatible in terms of brand or manufacturer.\r\n </span>\r\n </span>;\r\n let lblRandomProduct = <span>\r\n <b className=\"Polaris-Text--root Polaris-Text--headingSm Polaris-Text--semibold\">\r\n Random Product\r\n </b>\r\n <br />\r\n <span>\r\n When other recommendations don't apply, random products offer variety and can spark interest, helping customers discover new products.\r\n </span>\r\n </span>;\r\n\r\n\r\n\r\n return (\r\n this.state.loading ?\r\n <SkeletonPageCustom />\r\n :\r\n <Page title=\"Cart Slider\">\r\n <div className=\"satcb-cs\">\r\n <div className=\"satcb-cs-content\" style={{ fontFamily: this.state.model.fontFace }}>\r\n <div className=\"satcb-cs-header\">\r\n <span className=\"satcb-cs-header-title\">{this.state.model.cartTitle_Translation} <span className=\"satcb-cs-header-count\">{this.state.demoQty}</span></span>\r\n <span className=\"satcb-cs-close\" onClick={this.togglePreviewActive}></span>\r\n </div>\r\n <div className=\"satcb-cs-top-container\">\r\n {\r\n this.state.model.enabled_CartReserved && this.state.model.position_CartReserved === 'top' ?\r\n <CartSliderCartReserved\r\n model={this.state.model}\r\n /> : ''\r\n }\r\n {\r\n this.state.model.enabled_ShippingBar && this.state.model.position_ShippingBar === 'top' ?\r\n <CartSliderShippingBar\r\n model={this.state.model}\r\n totalPrice={this.state.model.demoProduct ? this.state.model.demoProduct.defaultVariant.price : 0}\r\n currency={this.getCurrencySymbol()}\r\n /> : ''\r\n }\r\n {\r\n this.state.visibleItem && this.state.model.enabled_InCartUpsell && this.state.model.position_InCartUpsell === 'top' ?\r\n <CartSliderInCartUpsell\r\n model={this.state.model}\r\n product={this.state.model.demoProduct}\r\n currency={this.getCurrencySymbol()}\r\n /> : ''\r\n }\r\n </div>\r\n <div className={'satcb-cs-items' + (!this.state.visibleItem ? ' satcb-cs-cart-empty' : '')}>\r\n {\r\n this.state.visibleItem ?\r\n <div className=\"satcb-cs-item\">\r\n <div className=\"satcb-cs-item-img\">\r\n <a href={this.state.model.demoProduct.url} target=\"_blank\" rel=\"noreferrer\"><img src={this.state.model.demoProduct.imageUrl} alt={this.state.model.demoProduct.title} /></a>\r\n </div>\r\n <div className=\"satcb-cs-item-main\">\r\n <div className=\"satcb-cs-item-main-top\">\r\n <div className=\"satcb-cs-item-main-top-left\">\r\n <div className=\"satcb-cs-item-title\">\r\n <a href={this.state.model.demoProduct.url} target=\"_blank\" rel=\"noreferrer\">{this.state.model.demoProduct.title}</a>\r\n </div>\r\n <div className=\"satcb-cs-item-variant\">{this.state.model.demoProduct.defaultVariant.title}</div>\r\n </div>\r\n </div>\r\n <span className=\"satcb-cs-item-close\" onClick={this.removeItem}></span>\r\n <div className=\"satcb-cs-item-main-bottom\">\r\n <div className=\"satcb-cs-item-qty\">\r\n <a href=\"/#\" onClick={(e) => this.handleDemoQtyUpDown(-1, e)}><svg width=\"10\" viewBox=\"0 0 12 2\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.25 0H.75C.3 0 0 .4 0 1s.3 1 .75 1h10.5c.45 0 .75-.4.75-1s-.3-1-.75-1z\"></path></svg></a>\r\n <input type=\"text\" value={this.state.demoQty} onChange={this.handleChangeDemoQty} />\r\n <a href=\"/#\" onClick={(e) => this.handleDemoQtyUpDown(1, e)}><svg width=\"10\" viewBox=\"0 0 12 12\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11 5H7V1a1 1 0 00-2 0v4H1a1 1 0 000 2h4v4a1 1 0 002 0V7h4a1 1 0 000-2z\"></path></svg></a>\r\n </div>\r\n <span className=\"satcb-cs-item-price\">\r\n {this.getCurrencySymbol() + this.state.model.demoProduct.defaultVariant.price}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n :\r\n <div>{this.state.model.cartEmptyText_Translation}</div>\r\n }\r\n </div>\r\n <div className=\"satcb-cs-bottom-container\">\r\n {\r\n this.state.model.enabled_CartReserved && this.state.model.position_CartReserved === 'bottom' ?\r\n <CartSliderCartReserved\r\n model={this.state.model}\r\n /> : ''\r\n }\r\n {\r\n this.state.model.enabled_ShippingBar && this.state.model.position_ShippingBar === 'bottom' ?\r\n <CartSliderShippingBar\r\n model={this.state.model}\r\n totalPrice={this.state.model.demoProduct ? this.state.model.demoProduct.defaultVariant.price : 0}\r\n currency={this.getCurrencySymbol()}\r\n /> : ''\r\n }\r\n {\r\n this.state.visibleItem && this.state.model.enabled_InCartUpsell && this.state.model.position_InCartUpsell === 'bottom' ?\r\n <CartSliderInCartUpsell\r\n model={this.state.model}\r\n product={this.state.model.demoProduct}\r\n currency={this.getCurrencySymbol()}\r\n /> : ''\r\n }\r\n </div>\r\n\r\n {\r\n this.state.model.showTrustBadges ?\r\n <div style={{ display: 'flex', justifyContent: 'center' }}>\r\n {\r\n this.state.model.showTrustBadgesVisa ?\r\n <div className=\"trustbadgeicons\">\r\n\r\n <svg width=\"50\" height=\"48\" viewBox=\"0 0 70 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"69\" height=\"47\" rx=\"5.5\" fill=\"white\" stroke=\"#D9D9D9\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M21.2505 32.5165H17.0099L13.8299 20.3847C13.679 19.8267 13.3585 19.3333 12.8871 19.1008C11.7106 18.5165 10.4142 18.0514 9 17.8169V17.3498H15.8313C16.7742 17.3498 17.4813 18.0514 17.5991 18.8663L19.2491 27.6173L23.4877 17.3498H27.6104L21.2505 32.5165ZM29.9675 32.5165H25.9626L29.2604 17.3498H33.2653L29.9675 32.5165ZM38.4467 21.5514C38.5646 20.7346 39.2717 20.2675 40.0967 20.2675C41.3931 20.1502 42.8052 20.3848 43.9838 20.9671L44.6909 17.7016C43.5123 17.2345 42.216 17 41.0395 17C37.1524 17 34.3239 19.1008 34.3239 22.0165C34.3239 24.2346 36.3274 25.3992 37.7417 26.1008C39.2717 26.8004 39.861 27.2675 39.7431 27.9671C39.7431 29.0165 38.5646 29.4836 37.3881 29.4836C35.9739 29.4836 34.5596 29.1338 33.2653 28.5494L32.5582 31.8169C33.9724 32.3992 35.5025 32.6338 36.9167 32.6338C41.2752 32.749 43.9838 30.6502 43.9838 27.5C43.9838 23.5329 38.4467 23.3004 38.4467 21.5514ZM58 32.5165L54.82 17.3498H51.4044C50.6972 17.3498 49.9901 17.8169 49.7544 18.5165L43.8659 32.5165H47.9887L48.8116 30.3004H53.8772L54.3486 32.5165H58ZM51.9936 21.4342L53.1701 27.1502H49.8723L51.9936 21.4342Z\" fill=\"#172B85\" />\r\n </svg>\r\n\r\n </div> : ''\r\n }\r\n {\r\n this.state.model.showTrustBadgesMastercard ?\r\n <div className=\"trustbadgeicons\">\r\n\r\n <svg width=\"50\" height=\"48\" viewBox=\"0 0 70 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"69\" height=\"47\" rx=\"5.5\" fill=\"white\" stroke=\"#D9D9D9\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M35.5 34.3139C33.1169 36.3704 30.0255 37.6119 26.6475 37.6119C19.1102 37.6119 13 31.4308 13 23.806C13 16.1811 19.1102 10 26.6475 10C30.0255 10 33.1169 11.2415 35.5 13.2981C37.8831 11.2415 40.9745 10 44.3525 10C51.8898 10 58 16.1811 58 23.806C58 31.4308 51.8898 37.6119 44.3525 37.6119C40.9745 37.6119 37.8831 36.3704 35.5 34.3139Z\" fill=\"#ED0006\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M35.5 34.3139C38.4344 31.7816 40.2951 28.0136 40.2951 23.806C40.2951 19.5983 38.4344 15.8303 35.5 13.2981C37.8831 11.2415 40.9745 10 44.3524 10C51.8898 10 58 16.1811 58 23.806C58 31.4308 51.8898 37.6119 44.3524 37.6119C40.9745 37.6119 37.8831 36.3704 35.5 34.3139Z\" fill=\"#F9A000\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M35.5 13.2981C38.4344 15.8304 40.2951 19.5984 40.2951 23.806C40.2951 28.0136 38.4344 31.7816 35.5 34.3138C32.5657 31.7816 30.705 28.0136 30.705 23.806C30.705 19.5984 32.5657 15.8304 35.5 13.2981Z\" fill=\"#FF5E00\" />\r\n </svg>\r\n\r\n </div> : ''\r\n }\r\n {\r\n this.state.model.showTrustBadgesAmericanExpress ?\r\n <div className=\"trustbadgeicons\">\r\n\r\n <svg width=\"50\" height=\"48\" viewBox=\"0 0 70 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"69\" height=\"47\" rx=\"5.5\" fill=\"#1F72CD\" stroke=\"#D9D9D9\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.5493 17L6 31.4935H13.8405L14.8125 29.1826H17.0342L18.0062 31.4935H26.6364V29.7298L27.4054 31.4935H31.8696L32.6386 29.6925V31.4935H50.587L52.7695 29.2426L54.813 31.4935L64.0317 31.5121L57.4617 24.2872L64.0317 17H54.956L52.8315 19.2093L50.8523 17H31.3268L29.6501 20.7409L27.9341 17H20.11V18.7037L19.2396 17H12.5493ZM39.3516 19.0581H49.6584L52.8108 22.4633L56.0648 19.0581H59.2172L54.4275 24.2852L59.2172 29.452H55.9218L52.7695 26.0073L49.4989 29.452H39.3516V19.0581ZM41.8968 23.1099V21.2114V21.2096H48.328L51.1342 24.2458L48.2036 27.2986H41.8968V25.226H47.5197V23.1099H41.8968ZM14.0664 19.0581H17.8883L22.2324 28.8862V19.0581H26.4191L29.7745 26.1048L32.8668 19.0581H37.0326V29.4581H34.4978L34.4771 21.3087L30.7817 29.4581H28.5142L24.7981 21.3087V29.4581H19.5836L18.595 27.1266H13.254L12.2675 29.4561H9.47358L14.0664 19.0581ZM14.166 24.9712L15.9256 20.8177L17.6832 24.9712H14.166Z\" fill=\"white\" />\r\n </svg>\r\n\r\n </div> : ''\r\n }\r\n {\r\n this.state.model.showTrustBadgesPaypal ?\r\n <div className=\"trustbadgeicons\">\r\n\r\n <svg width=\"50\" height=\"48\" viewBox=\"0 0 70 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"69\" height=\"47\" rx=\"5.5\" fill=\"white\" stroke=\"#D9D9D9\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19.8 30.4819H16.6888C16.4759 30.4819 16.2948 30.6366 16.2616 30.8467L15.0033 38.8248C14.9783 38.9823 15.1002 39.1242 15.2599 39.1242H16.7452C16.9581 39.1242 17.1392 38.9695 17.1724 38.7589L17.5118 36.6072C17.5445 36.3964 17.726 36.2419 17.9385 36.2419H18.9234C20.9729 36.2419 22.1556 35.2501 22.4647 33.2848C22.6038 32.425 22.4705 31.7495 22.0678 31.2762C21.6257 30.7568 20.8413 30.4819 19.8 30.4819ZM20.159 33.3958C19.9889 34.5122 19.1358 34.5122 18.3111 34.5122H17.8416L18.1709 32.4271C18.1905 32.3012 18.2997 32.2084 18.4271 32.2084H18.6422C19.2041 32.2084 19.7341 32.2084 20.008 32.5286C20.1712 32.7198 20.2213 33.0036 20.159 33.3958ZM29.1002 33.36H27.6103C27.4834 33.36 27.3737 33.4528 27.3541 33.5789L27.2882 33.9956L27.184 33.8446C26.8615 33.3764 26.1423 33.22 25.4244 33.22C23.7779 33.22 22.3718 34.4669 22.0979 36.2162C21.9556 37.0886 22.1579 37.9229 22.6529 38.5048C23.107 39.0398 23.7567 39.2627 24.5295 39.2627C25.856 39.2627 26.5918 38.4097 26.5918 38.4097L26.5253 38.8238C26.5002 38.9821 26.6221 39.124 26.7809 39.124H28.123C28.3365 39.124 28.5165 38.9693 28.5501 38.7587L29.3554 33.6594C29.3809 33.5025 29.2594 33.36 29.1002 33.36ZM27.0234 36.2598C26.8796 37.1109 26.204 37.6823 25.3426 37.6823C24.9099 37.6823 24.564 37.5436 24.3421 37.2806C24.1219 37.0196 24.0381 36.6478 24.1082 36.2339C24.2425 35.3899 24.9295 34.8 25.7779 34.8C26.2009 34.8 26.5449 34.9404 26.7714 35.2057C26.9983 35.4737 27.0885 35.8476 27.0234 36.2598ZM35.5379 33.3598H37.0352C37.2449 33.3598 37.3672 33.5949 37.2481 33.7669L32.2685 40.9547C32.1878 41.0712 32.055 41.1404 31.9131 41.1404H30.4177C30.2072 41.1404 30.0842 40.9034 30.2061 40.7309L31.7567 38.5423L30.1076 33.7027C30.0506 33.5345 30.1748 33.3598 30.3537 33.3598H31.8249C32.016 33.3598 32.1847 33.4852 32.2398 33.6682L33.115 36.5911L35.1801 33.5495C35.2609 33.4307 35.3952 33.3598 35.5379 33.3598Z\" fill=\"#253B80\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M51.7709 38.8248L53.0478 30.7008C53.0673 30.5747 53.1766 30.4818 53.3035 30.4814H54.741C54.8998 30.4814 55.0217 30.6237 54.9966 30.7812L53.7374 38.7589C53.7046 38.9694 53.5235 39.1242 53.3103 39.1242H52.0265C51.8677 39.1242 51.7459 38.9823 51.7709 38.8248ZM41.9921 30.4818H38.8803C38.6679 30.4818 38.4869 30.6366 38.4536 30.8467L37.1953 38.8248C37.1702 38.9823 37.2921 39.1242 37.4511 39.1242H39.0477C39.1961 39.1242 39.3231 39.0159 39.3462 38.8686L39.7033 36.6071C39.7361 36.3964 39.9176 36.2418 40.13 36.2418H41.1145C43.1644 36.2418 44.3469 35.25 44.6562 33.2848C44.7957 32.425 44.6616 31.7494 44.2591 31.2761C43.8172 30.7568 43.0334 30.4818 41.9921 30.4818ZM42.3511 33.3957C42.1814 34.5121 41.3284 34.5121 40.5031 34.5121H40.034L40.3639 32.4271C40.3835 32.3012 40.4917 32.2084 40.6195 32.2084H40.8347C41.3961 32.2084 41.9267 32.2084 42.2004 32.5286C42.3637 32.7197 42.4134 33.0035 42.3511 33.3957ZM51.2915 33.3599H49.8027C49.6747 33.3599 49.5661 33.4528 49.5469 33.5789L49.481 33.9955L49.3764 33.8446C49.0538 33.3764 48.3351 33.2199 47.6172 33.2199C45.9707 33.2199 44.565 34.4669 44.2911 36.2162C44.1492 37.0886 44.3507 37.9229 44.8456 38.5048C45.3006 39.0397 45.9494 39.2627 46.7223 39.2627C48.0488 39.2627 48.7844 38.4096 48.7844 38.4096L48.7181 38.8237C48.693 38.9821 48.8149 39.1239 48.9747 39.1239H50.3162C50.5286 39.1239 50.7096 38.9692 50.7429 38.7587L51.5486 33.6593C51.5732 33.5025 51.4513 33.3599 51.2915 33.3599ZM49.2149 36.2597C49.072 37.1109 48.3955 37.6823 47.5338 37.6823C47.1021 37.6823 46.7555 37.5435 46.5334 37.2806C46.3132 37.0195 46.2305 36.6477 46.2997 36.2338C46.4347 35.3898 47.1208 34.7999 47.9692 34.7999C48.3924 34.7999 48.7362 34.9404 48.9629 35.2056C49.1907 35.4736 49.2808 35.8475 49.2149 36.2597Z\" fill=\"#179BD7\" />\r\n <path d=\"M31.314 27.6277L31.6966 25.1982L30.8446 25.1785H26.7761L29.6035 7.25079C29.6121 7.19667 29.6408 7.14621 29.6824 7.11037C29.7241 7.07454 29.7776 7.05479 29.8332 7.05479H36.6932C38.9707 7.05479 40.5423 7.52871 41.3629 8.4641C41.7475 8.90292 41.9926 9.36147 42.1111 9.86611C42.2353 10.3956 42.2376 11.0282 42.1162 11.7998L42.1073 11.8561V12.3505L42.4922 12.5685C42.8162 12.7403 43.0734 12.9371 43.2709 13.1623C43.6002 13.5375 43.813 14.0143 43.9029 14.5797C43.9957 15.1611 43.965 15.853 43.813 16.6362C43.6374 17.5373 43.3536 18.322 42.9705 18.9641C42.6178 19.5558 42.1688 20.0464 41.6357 20.4269C41.1267 20.7881 40.5218 21.0624 39.838 21.238C39.1753 21.4104 38.4199 21.4976 37.5913 21.4976H37.0574C36.6757 21.4976 36.3048 21.6351 36.0138 21.8816C35.722 22.1332 35.5288 22.4768 35.4696 22.8528L35.4294 23.0715L34.7536 27.3534L34.7229 27.5107C34.7149 27.5606 34.701 27.5854 34.6806 27.6023C34.6622 27.6174 34.6359 27.6277 34.6102 27.6277H31.314Z\" fill=\"#253B80\" />\r\n <path d=\"M42.8564 11.9134C42.836 12.0443 42.8126 12.1781 42.7863 12.3156C41.8814 16.9605 38.7865 18.5651 34.8334 18.5651H32.8208C32.3374 18.5651 31.93 18.9161 31.8547 19.3929L30.8241 25.9284L30.5323 27.7808C30.4833 28.0939 30.7248 28.3762 31.0406 28.3762H34.6105C35.0332 28.3762 35.3922 28.069 35.4587 27.6522L35.4938 27.4707L36.166 23.2054L36.2092 22.9715C36.2749 22.5532 36.6347 22.2461 37.0574 22.2461H37.5913C41.0498 22.2461 43.7574 20.8418 44.5488 16.7784C44.8793 15.0809 44.7082 13.6635 43.8334 12.6667C43.5688 12.3661 43.2404 12.1167 42.8564 11.9134Z\" fill=\"#179BD7\" />\r\n <path d=\"M41.9096 11.5363C41.7715 11.4961 41.6288 11.4595 41.4825 11.4266C41.3355 11.3945 41.1848 11.3659 41.0298 11.3411C40.4871 11.2533 39.8926 11.2116 39.2555 11.2116H33.8787C33.7463 11.2116 33.6206 11.2416 33.5079 11.2957C33.2599 11.4149 33.0757 11.6497 33.0311 11.9371L31.8871 19.1819L31.8542 19.3933C31.9296 18.9164 32.337 18.5654 32.8204 18.5654H34.833C38.7861 18.5654 41.8812 16.9601 42.7859 12.316C42.8128 12.1785 42.8355 12.0446 42.856 11.9137C42.6271 11.7923 42.3791 11.6885 42.1122 11.6C42.0465 11.578 41.9785 11.5568 41.9096 11.5363Z\" fill=\"#222D65\" />\r\n <path d=\"M33.0311 11.937C33.0758 11.6495 33.2602 11.4148 33.508 11.2963C33.6215 11.2422 33.7465 11.2122 33.8787 11.2122H39.2558C39.8928 11.2122 40.4874 11.2539 41.0299 11.3416C41.185 11.3665 41.3358 11.395 41.4827 11.4272C41.629 11.4601 41.7716 11.4967 41.9099 11.5369C41.9785 11.5574 42.0465 11.5786 42.1131 11.5998C42.38 11.6883 42.628 11.7929 42.8568 11.9136C43.1261 10.1971 42.8547 9.02837 41.9267 7.97009C40.9036 6.80505 39.0568 6.30627 36.6939 6.30627H29.8337C29.3509 6.30627 28.9393 6.65731 28.8646 7.13489L26.0073 25.2468C25.9509 25.6052 26.2273 25.9285 26.5886 25.9285H30.824L31.8873 19.1817L33.0311 11.937Z\" fill=\"#253B80\" />\r\n </svg>\r\n\r\n </div> : ''\r\n }\r\n {\r\n this.state.model.showTrustBadgesGPay ?\r\n <div className=\"trustbadgeicons\">\r\n\r\n <svg width=\"50\" height=\"48\" viewBox=\"0 0 70 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"69\" height=\"47\" rx=\"5.5\" fill=\"white\" stroke=\"#D9D9D9\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M33.0603 31.5161V25.4742H36.1786C37.4564 25.4742 38.535 25.046 39.4142 24.2016L39.6252 23.9875C41.2313 22.2392 41.1258 19.5156 39.4142 17.898C38.5584 17.0417 37.3861 16.5779 36.1786 16.6016H31.1729V31.5161H33.0603ZM33.0605 23.6426V18.4332H36.2262C36.9063 18.4332 37.5512 18.6949 38.0319 19.1706C39.052 20.1697 39.0754 21.8348 38.0905 22.8695C37.6098 23.3809 36.9297 23.6664 36.2262 23.6426H33.0605ZM48.4293 22.1084C47.6204 21.3591 46.5185 20.9785 45.1234 20.9785C43.3298 20.9785 41.9816 21.6445 41.0906 22.9647L42.7553 24.0232C43.3649 23.1193 44.1973 22.6673 45.2524 22.6673C45.9206 22.6673 46.5653 22.9171 47.0694 23.3691C47.5618 23.7972 47.8432 24.4157 47.8432 25.0698V25.5099C47.1163 25.1055 46.2019 24.8914 45.0765 24.8914C43.7635 24.8914 42.7084 25.2007 41.923 25.831C41.1375 26.4614 40.739 27.2939 40.739 28.3525C40.7155 29.3158 41.1258 30.2316 41.8527 30.8501C42.5912 31.5161 43.5291 31.8491 44.631 31.8491C45.9323 31.8491 46.9639 31.2664 47.7494 30.1008H47.8314V31.5161H49.6368V25.2245C49.6368 23.9043 49.2382 22.8576 48.4293 22.1084ZM43.3066 29.6369C42.9197 29.3515 42.6852 28.8877 42.6852 28.3881C42.6852 27.8291 42.9432 27.3653 43.4473 26.9966C43.9632 26.6279 44.6081 26.4376 45.3702 26.4376C46.4255 26.4257 47.2462 26.6636 47.8325 27.1393C47.8325 27.9481 47.5159 28.6498 46.8945 29.2445C46.3317 29.8153 45.5696 30.1365 44.7723 30.1365C44.2446 30.1484 43.7287 29.97 43.3066 29.6369ZM53.693 36L60.0001 21.3115H57.9485L55.0295 28.6379H54.9943L52.0049 21.3115H49.9534L54.0916 30.862L51.747 36H53.693Z\" fill=\"#3C4043\" />\r\n <path d=\"M26.5442 24.1659C26.5442 23.5831 26.4973 23.0003 26.4035 22.4295H18.4435V25.724H23.0038C22.8163 26.7825 22.2067 27.734 21.3157 28.3286V30.4695H24.0355C25.6298 28.9828 26.5442 26.7825 26.5442 24.1659Z\" fill=\"#4285F4\" />\r\n <path d=\"M18.4439 32.539C20.7182 32.539 22.6408 31.7778 24.0358 30.4695L21.3161 28.3287C20.5541 28.852 19.581 29.1493 18.4439 29.1493C16.24 29.1493 14.376 27.6388 13.7078 25.6169H10.9059V27.8291C12.3362 30.7192 15.2552 32.539 18.4439 32.539Z\" fill=\"#34A853\" />\r\n <path d=\"M13.708 25.617C13.3563 24.5584 13.3563 23.4048 13.708 22.3344V20.134H10.9058C9.69808 22.5484 9.69808 25.4029 10.9058 27.8173L13.708 25.617Z\" fill=\"#FBBC04\" />\r\n <path d=\"M18.4439 18.8019C19.6514 18.7782 20.812 19.242 21.6795 20.0864L24.0944 17.6364C22.5587 16.1854 20.5423 15.3885 18.4439 15.4123C15.2552 15.4123 12.3362 17.2439 10.9059 20.134L13.7078 22.3462C14.376 20.3124 16.24 18.8019 18.4439 18.8019Z\" fill=\"#EA4335\" />\r\n </svg>\r\n\r\n </div> : ''\r\n }\r\n {\r\n this.state.model.showTrustBadgesApplePay ?\r\n <div className=\"trustbadgeicons\">\r\n\r\n <svg width=\"50\" height=\"48\" viewBox=\"0 0 70 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"69\" height=\"47\" rx=\"5.5\" fill=\"white\" stroke=\"#D9D9D9\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.6924 17.8659C17.6325 17.9452 18.5726 17.3901 19.1601 16.6863C19.7379 15.9627 20.1198 14.9913 20.0219 14C19.1895 14.0397 18.1613 14.5551 17.5737 15.2787C17.0352 15.9032 16.5749 16.9143 16.6924 17.8659ZM27.8755 30.6333V15.1796H33.6041C36.5615 15.1796 38.6277 17.2414 38.6277 20.2548C38.6277 23.2683 36.5223 25.3499 33.5258 25.3499H30.2453V30.6333H27.8755ZM20.012 18.0542C19.1838 18.006 18.4281 18.3064 17.8177 18.549C17.4249 18.7051 17.0923 18.8373 16.8392 18.8373C16.5552 18.8373 16.2089 18.6981 15.82 18.5417L15.82 18.5417L15.82 18.5417L15.82 18.5417C15.3104 18.3368 14.7278 18.1025 14.1169 18.1137C12.7166 18.1335 11.4142 18.9365 10.6993 20.2152C9.23044 22.7726 10.3174 26.5593 11.7373 28.6409C12.4326 29.6718 13.265 30.8018 14.3617 30.7622C14.8442 30.7438 15.1913 30.5947 15.5505 30.4404C15.9641 30.2628 16.3937 30.0782 17.0645 30.0782C17.712 30.0782 18.1228 30.2579 18.5172 30.4305C18.8921 30.5945 19.2522 30.752 19.7868 30.7424C20.9227 30.7225 21.6376 29.7115 22.3328 28.6806C23.0831 27.5741 23.4129 26.4943 23.4629 26.3304L23.4688 26.3114C23.4676 26.3102 23.4583 26.3059 23.4419 26.2984C23.1911 26.1821 21.274 25.2937 21.2557 22.9114C21.2372 20.9118 22.7762 19.8987 23.0185 19.7392C23.0332 19.7295 23.0432 19.723 23.0477 19.7196C22.0684 18.2525 20.5408 18.0939 20.012 18.0542ZM42.9561 30.7523C44.4445 30.7523 45.8253 29.989 46.452 28.7797H46.501V30.6333H48.6945V22.9412C48.6945 20.7108 46.9318 19.2735 44.2193 19.2735C41.7026 19.2735 39.842 20.7307 39.7735 22.733H41.9083C42.0845 21.7814 42.9561 21.1569 44.1508 21.1569C45.6 21.1569 46.4128 21.8409 46.4128 23.0998V23.9522L43.4555 24.1307C40.7038 24.2992 39.2153 25.4391 39.2153 27.4217C39.2153 29.424 40.7527 30.7523 42.9561 30.7523ZM43.5924 28.9185C42.3292 28.9185 41.5262 28.3039 41.5262 27.3622C41.5262 26.3908 42.2998 25.8257 43.7785 25.7365L46.4127 25.568V26.4403C46.4127 27.8876 45.1984 28.9185 43.5924 28.9185ZM55.9702 31.238C55.0204 33.9442 53.9334 34.8363 51.6224 34.8363C51.4461 34.8363 50.8585 34.8165 50.7214 34.7768V32.9232C50.8683 32.943 51.2307 32.9628 51.4167 32.9628C52.4645 32.9628 53.0521 32.5167 53.4144 31.357L53.6298 30.673L49.6149 19.4222H52.0924L54.8833 28.5517H54.9322L57.7231 19.4222H60.1321L55.9702 31.238ZM30.2451 17.2018H32.9772C35.0336 17.2018 36.2087 18.312 36.2087 20.2648C36.2087 22.2175 35.0336 23.3377 32.9674 23.3377H30.2451V17.2018Z\" fill=\"black\" />\r\n </svg>\r\n\r\n </div> : ''\r\n }\r\n </div> : ''\r\n }\r\n\r\n {\r\n this.state.visibleItem ?\r\n <div className={'satcb-cs-footer' + (this.state.model.stickyFooter ? ' satcb-cs-footer-sticky' : '')}>\r\n <div className=\"satcb-cs-footer-subtotal\">\r\n <span>{this.state.model.subtotal_Translation}</span><span>{this.getCurrencySymbol() + this.state.model.demoProduct.defaultVariant.price}</span>\r\n </div>\r\n <div>\r\n <div className=\"satcb-cs-taxes-shipping-note\">{this.state.model.taxesAndShippingNote_Translation}</div>\r\n <a href=\"/#\" onClick={(e) => e.preventDefault()} style={{ backgroundColor: this.state.model.checkoutButtonBackgroundColor, color: this.state.model.checkoutButtonColor }} className=\"satcb-cs-checkout-btn\">{this.state.model.checkoutButtonText_Translation}</a>\r\n {\r\n this.state.model.showViewCart ?\r\n <a href=\"/#\" className=\"satcb-cs-view-cart\" onClick={(e) => e.preventDefault()}>{this.state.model.viewCartText_Translation}</a> : ''\r\n }\r\n {\r\n this.state.model.showContinueShopping ?\r\n <a href=\"/#\" className=\"satcb-cs-continue-shopping\" onClick={(e) => e.preventDefault()}>{this.state.model.continueShoppingText_Translation}</a> : ''\r\n }\r\n </div>\r\n </div> : ''\r\n }\r\n </div>\r\n </div>\r\n <Layout>\r\n <Layout.Section>\r\n <Banner\r\n title=\"What is Cart Slider?\"\r\n status=\"info\"\r\n >\r\n <p>Cart Slider is interactive cart drawer that improves UX and will show on add to cart instead of redirecting to Cart page. Enable Cart Reserved, Shipping Bar, and In Cart Upsell to reduce cart abandonment and increase AOV.</p>\r\n </Banner>\r\n </Layout.Section>\r\n <Layout.Section>\r\n <div id=\"preview\" className=\"preview-hidden\">\r\n <Card title=\"Preview\" sectioned actions={[{ content: this.state.previewActive ? 'Hide' : 'Show', onAction: this.togglePreviewActive }]}>\r\n </Card>\r\n </div>\r\n </Layout.Section>\r\n <Layout.AnnotatedSection\r\n title=\"Cart Slider State\"\r\n >\r\n <div className=\"setting-toggle-card\">\r\n <Card>\r\n <SettingToggle action={{\r\n content: this.state.model.enabled ? 'Disable' : 'Enable',\r\n onAction: () => { this.handleChange('enabled', !this.state.model.enabled) }\r\n }}\r\n enabled={this.state.model.enabled}\r\n >\r\n Cart Slider is currently <TextStyle variation=\"strong\">{this.state.model.enabled ? 'enabled' : 'disabled'}</TextStyle>.\r\n </SettingToggle>\r\n <Card.Section>\r\n <TextContainer>\r\n <Banner>\r\n <p>\r\n Please note, if your theme has a popup/drawer cart you should disable it in the theme settings.\r\n </p>\r\n </Banner>\r\n </TextContainer>\r\n </Card.Section>\r\n </Card>\r\n </div>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection title=\"Settings\">\r\n <Card>\r\n <Card.Section>\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Open on Add to Cart\"\r\n checked={this.state.model.openOnAddToCart}\r\n onChange={(newValue) => this.handleChange('openOnAddToCart', newValue)}\r\n />\r\n {\r\n this.state.model.openOnAddToCart ?\r\n <FormLayout.Group>\r\n <Checkbox\r\n label=\"Close after\"\r\n checked={this.state.model.closeAfter}\r\n onChange={(newValue) => this.handleChange('closeAfter', newValue)}\r\n />\r\n <TextField\r\n id=\"cartSlider_closeAfterSeconds\"\r\n suffix=\"seconds\"\r\n type=\"number\"\r\n min=\"2\"\r\n disabled={!this.state.model.closeAfter}\r\n value={this.state.model.closeAfterSeconds}\r\n onChange={(newValue) => this.handleChange('closeAfterSeconds', newValue)}\r\n error={this.state.error.closeAfterSeconds ? 'Value must be greater than or equal to 2' : ''}\r\n onBlur={() => this.handleBlur('closeAfterSeconds', 2)}\r\n />\r\n </FormLayout.Group> : ''\r\n }\r\n <Checkbox\r\n label=\"Show View Cart link\"\r\n checked={this.state.model.showViewCart}\r\n onChange={(newValue) => this.handleChange('showViewCart', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Continue shopping link\"\r\n checked={this.state.model.showContinueShopping}\r\n onChange={(newValue) => this.handleChange('showContinueShopping', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Fixed Footer\"\r\n checked={this.state.model.stickyFooter}\r\n onChange={(newValue) => this.handleChange('stickyFooter', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Show Trust Badges\"\r\n checked={this.state.model.showTrustBadges}\r\n onChange={(newValue) => this.handleChange('showTrustBadges', newValue)}\r\n />\r\n {\r\n this.state.model.showTrustBadges ?\r\n <FormLayout.Group>\r\n <Checkbox\r\n label=\"Visa\"\r\n checked={this.state.model.showTrustBadgesVisa}\r\n onChange={(newValue) => this.handleChange('showTrustBadgesVisa', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Mastercard\"\r\n checked={this.state.model.showTrustBadgesMastercard}\r\n onChange={(newValue) => this.handleChange('showTrustBadgesMastercard', newValue)}\r\n />\r\n <Checkbox\r\n label=\"American Express\"\r\n checked={this.state.model.showTrustBadgesAmericanExpress}\r\n onChange={(newValue) => this.handleChange('showTrustBadgesAmericanExpress', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Paypal\"\r\n checked={this.state.model.showTrustBadgesPaypal}\r\n onChange={(newValue) => this.handleChange('showTrustBadgesPaypal', newValue)}\r\n />\r\n <Checkbox\r\n label=\"G Pay\"\r\n checked={this.state.model.showTrustBadgesGPay}\r\n onChange={(newValue) => this.handleChange('showTrustBadgesGPay', newValue)}\r\n />\r\n <Checkbox\r\n label=\"Apple Pay\"\r\n checked={this.state.model.showTrustBadgesApplePay}\r\n onChange={(newValue) => this.handleChange('showTrustBadgesApplePay', newValue)}\r\n />\r\n </FormLayout.Group> : ''\r\n }\r\n <TextField\r\n value={this.state.model.cartButtonCSSSelector}\r\n onChange={(newValue) => this.handleChange('cartButtonCSSSelector', newValue)}\r\n label=\"Cart button CSS selector\"\r\n />\r\n </FormLayout>\r\n </Card.Section>\r\n <Card.Section title=\"Translations\">\r\n <FormLayout>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.cartTitle_Translation}\r\n onChange={(newValue) => this.handleChange('cartTitle_Translation', newValue)}\r\n label=\"Cart title\"\r\n />\r\n <TextField\r\n value={this.state.model.cartEmptyText_Translation}\r\n onChange={(newValue) => this.handleChange('cartEmptyText_Translation', newValue)}\r\n label=\"Cart empty text\"\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.checkoutButtonText_Translation}\r\n onChange={(newValue) => this.handleChange('checkoutButtonText_Translation', newValue)}\r\n label=\"Checkout button text\"\r\n />\r\n <TextField\r\n value={this.state.model.continueShoppingText_Translation}\r\n onChange={(newValue) => this.handleChange('continueShoppingText_Translation', newValue)}\r\n label=\"Continue shopping text\"\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.subtotal_Translation}\r\n onChange={(newValue) => this.handleChange('subtotal_Translation', newValue)}\r\n label=\"Subtotal label\"\r\n />\r\n <TextField\r\n value={this.state.model.viewCartText_Translation}\r\n onChange={(newValue) => this.handleChange('viewCartText_Translation', newValue)}\r\n label=\"View Cart Text\"\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.taxesAndShippingNote_Translation}\r\n onChange={(newValue) => this.handleChange('taxesAndShippingNote_Translation', newValue)}\r\n label=\"Taxes And Shipping Note\"\r\n />\r\n </FormLayout.Group>\r\n </FormLayout>\r\n </Card.Section>\r\n <Card.Section title=\"Look and Feel\">\r\n <FormLayout>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Checkout Button Background Color\"\r\n fieldName=\"checkoutButtonBackgroundColor\"\r\n value={this.state.model.checkoutButtonBackgroundColor}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Checkout Button Color\"\r\n fieldName=\"checkoutButtonColor\"\r\n value={this.state.model.checkoutButtonColor}\r\n handleChange={this.handleChange}\r\n />\r\n <Select\r\n label=\"Section Font Size\"\r\n options={[{ label: \"Small\", value: JSON.stringify(fontStepValSmall) }, { label: \"Medium\", value: \"\" }, { label: \"Large\", value: JSON.stringify(fontStepValIncrease) }, { label: \"Extra Large\", value: JSON.stringify(fontStepValIncrease + 2) }]}\r\n onChange={this.handleSectionSettings}\r\n value={this.state.model.titleFontSize}\r\n />\r\n\r\n <Select\r\n label=\"Override Font Face\"\r\n options={[{ label: 'Default', value: \"\" }, { label: 'Roboto', value: 'Roboto' }, { label: 'Playfair Display', value: 'Playfair Display' }, { label: 'Open Sans', value: 'Open Sans' }, { label: 'Oswald', value: 'Oswald' }, { label: 'Cabin', value: 'Cabin' }, { label: 'Montserrat', value: 'Montserrat' }, { label: 'Merriweather', value: 'Merriweather' }, { label: 'Cormorant', value: 'Cormorant' }, { label: 'Poppins', value: 'Poppins' }, { label: 'Nunito', value: 'Nunito' }, { label: 'Lato', value: 'Lato' }]}\r\n onChange={(newValue) => this.handleChange('fontFace', newValue)}\r\n value={this.state.model.fontFace}\r\n />\r\n\r\n </FormLayout.Group>\r\n </FormLayout>\r\n </Card.Section>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection title=\"Cart Reserved\">\r\n <Card sectioned>\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Enabled\"\r\n checked={this.state.model.enabled_CartReserved}\r\n onChange={(newValue) => this.handleChange('enabled_CartReserved', newValue)}\r\n />\r\n {this.state.model.enabled_CartReserved && <span>\r\n <FormLayout.Group>\r\n <TextField\r\n id=\"cartSlider_countdownMinutes_CartReserved\"\r\n label=\"Timer Duration\"\r\n suffix=\"Minute(s)\"\r\n type=\"number\"\r\n min=\"1\"\r\n value={this.state.model.countdownMinutes_CartReserved}\r\n onChange={(newValue) => this.handleChange('countdownMinutes_CartReserved', newValue)}\r\n error={this.state.error.countdownMinutes_CartReserved ? 'Value must be greater than or equal to 1' : ''}\r\n onBlur={() => this.handleBlur('countdownMinutes_CartReserved', 1)}\r\n />\r\n <ColorPickerCustom\r\n label=\"Color of Timer\"\r\n fieldName=\"colorOfTimer_CartReserved\"\r\n value={this.state.model.colorOfTimer_CartReserved}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Background Color\"\r\n fieldName=\"backgroundColor_CartReserved\"\r\n value={this.state.model.backgroundColor_CartReserved}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Text Color\"\r\n fieldName=\"textColor_CartReserved\"\r\n value={this.state.model.textColor_CartReserved}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Border Color\"\r\n fieldName=\"borderColor_CartReserved\"\r\n value={this.state.model.borderColor_CartReserved}\r\n handleChange={this.handleChange}\r\n />\r\n <TextField\r\n label=\"Border Radius\"\r\n suffix=\"px\"\r\n type=\"number\"\r\n value={this.state.model.borderRadius_CartReserved}\r\n onChange={(newValue) => this.handleChange('borderRadius_CartReserved', newValue)}\r\n clearButton\r\n onClearButtonClick={() => this.handleChange('borderRadius_CartReserved', null)}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <Select\r\n label=\"Remove items from cart after timer expires\"\r\n options={[{ label: \"Don't remove items\", value: '0' }, { label: 'Only remove low inventory items', value: '1' }, { label: 'Remove all items', value: '2' },]}\r\n onChange={(newValue) => this.handleChangeOptions(newValue)}\r\n value={this.state.model.selectedRemoveProductOption_CartReserved}\r\n />\r\n\r\n <TextField\r\n label=\"Thresold inventory level\"\r\n suffix=\"items\"\r\n type=\"number\"\r\n min=\"1\"\r\n disabled={!this.state.model.clearLowQuantityItemsFromCartOnTimerEnd_CartReserved}\r\n value={this.state.model.lowQuantityThreshold_CartReserved}\r\n onChange={(newValue) => this.handleChange('lowQuantityThreshold_CartReserved', newValue)}\r\n />\r\n </FormLayout.Group>\r\n <TextField\r\n id=\"cartSlider_notShowHours_CartReserved\"\r\n label=\"Do not show expired Timer to the same visitor again for a number of hours\"\r\n suffix=\"Hour(s)\"\r\n type=\"number\"\r\n min=\"0\"\r\n value={this.state.model.notShowHours_CartReserved}\r\n onChange={(newValue) => this.handleChange('notShowHours_CartReserved', newValue)}\r\n error={this.state.error.notShowHours_CartReserved ? 'Value must be greater than or equal to 0' : ''}\r\n onBlur={() => this.handleBlur('notShowHours_CartReserved', 0)}\r\n />\r\n <TextField\r\n value={this.state.model.message_CartReserved}\r\n onChange={(newValue) => this.handleChange('message_CartReserved', newValue)}\r\n label=\"Message\"\r\n />\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.messageBeforeTimer_CartReserved}\r\n onChange={(newValue) => this.handleChange('messageBeforeTimer_CartReserved', newValue)}\r\n label=\"Message before timer\"\r\n />\r\n <TextField\r\n value={this.state.model.messageAfterTimer_CartReserved}\r\n onChange={(newValue) => this.handleChange('messageAfterTimer_CartReserved', newValue)}\r\n label=\"Message after timer\"\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <EmojiPickerCustom\r\n label=\"Emoji in front of the message\"\r\n fieldName=\"emoji_CartReserved\"\r\n value={this.state.model.emoji_CartReserved}\r\n handleChange={this.handleChange}\r\n />\r\n <TextField\r\n id=\"cartSlider_countdownMinutes_CartReserved\"\r\n label=\"Message font size\"\r\n suffix=\"px\"\r\n type=\"number\"\r\n min=\"1\"\r\n value={this.state.model.messageFontSize_CartReserved}\r\n onChange={(newValue) => this.handleChange('messageFontSize_CartReserved', newValue)}\r\n error={this.state.error.messageFontSize_CartReserved ? 'Value must be greater than or equal to 1' : ''}\r\n onBlur={() => this.handleBlur('messageFontSize_CartReserved', 1)}\r\n />\r\n </FormLayout.Group>\r\n <Select\r\n label=\"Position\"\r\n options={[{ label: 'Top', value: 'top' }, { label: 'Bottom', value: 'bottom' }]}\r\n onChange={(newValue) => this.handleChange('position_CartReserved', newValue)}\r\n value={this.state.model.position_CartReserved}\r\n />\r\n\r\n <Select\r\n label=\"Cart message Font Size\"\r\n options={[{ label: \"Small\", value: JSON.stringify(fontStepValSmall) }, { label: \"Medium\", value: \"\" }, { label: \"Large\", value: JSON.stringify(fontStepValIncrease) }, { label: \"Extra Large\", value: JSON.stringify(fontStepValIncrease + 2) }]}\r\n onChange={this.handleCartReserve}\r\n value={this.state.model.cartInfoFontSize_CartReserved}\r\n\r\n />\r\n\r\n </span>}\r\n\r\n\r\n\r\n\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection title=\"Shipping Bar\">\r\n <Card sectioned>\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Enabled\"\r\n checked={this.state.model.enabled_ShippingBar}\r\n onChange={(newValue) => this.handleChange('enabled_ShippingBar', newValue)}\r\n />\r\n {this.state.model.enabled_ShippingBar && <span>\r\n\r\n <CountryPickerCustom\r\n options={this.state.common.countries}\r\n label=\"Countries eligible for free shipping (leave empty for all)\"\r\n fieldName=\"eligibleCountries_ShippingBar\"\r\n value={this.state.model.eligibleCountries_ShippingBar}\r\n handleChange={this.handleChange}\r\n />\r\n <FormLayout.Group>\r\n <TextField\r\n id=\"cartSlider_minAmount_ShippingBar\"\r\n label=\"Min Amount to Spend\"\r\n suffix={this.state.common.currency}\r\n type=\"number\"\r\n min=\"0\"\r\n value={this.state.model.minAmount_ShippingBar}\r\n onChange={(newValue) => this.handleChange('minAmount_ShippingBar', newValue)}\r\n error={this.state.error.minAmount_ShippingBar ? 'Value must be greater than or equal to 0' : ''}\r\n onBlur={() => this.handleBlur('minAmount_ShippingBar', 0)}\r\n />\r\n <ColorPickerCustom\r\n label=\"Amount Color\"\r\n fieldName=\"amountColor_ShippingBar\"\r\n value={this.state.model.amountColor_ShippingBar}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Background Color\"\r\n fieldName=\"backgroundColor_ShippingBar\"\r\n value={this.state.model.backgroundColor_ShippingBar}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Text Color\"\r\n fieldName=\"textColor_ShippingBar\"\r\n value={this.state.model.textColor_ShippingBar}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.initialMessageBeforeAmount_ShippingBar}\r\n onChange={(newValue) => this.handleChange('initialMessageBeforeAmount_ShippingBar', newValue)}\r\n label=\"Initial message before amount\"\r\n />\r\n <TextField\r\n value={this.state.model.initialMessageAfterAmount_ShippingBar}\r\n onChange={(newValue) => this.handleChange('initialMessageAfterAmount_ShippingBar', newValue)}\r\n label=\"Initial message after amount\"\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.progressMessageBeforeAmount_ShippingBar}\r\n onChange={(newValue) => this.handleChange('progressMessageBeforeAmount_ShippingBar', newValue)}\r\n label=\"Progress message before amount\"\r\n />\r\n <TextField\r\n value={this.state.model.progressMessageAfterAmount_ShippingBar}\r\n onChange={(newValue) => this.handleChange('progressMessageAfterAmount_ShippingBar', newValue)}\r\n label=\"Progress message after amount\"\r\n />\r\n </FormLayout.Group>\r\n <TextField\r\n value={this.state.model.goalAchievedMessage_ShippingBar}\r\n onChange={(newValue) => this.handleChange('goalAchievedMessage_ShippingBar', newValue)}\r\n label=\"Goal achieved message\"\r\n helpText={<div>You can use emojis as well, copy them from <a href=\"https://getemoji.com/\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">this page</a>.</div>}\r\n />\r\n <Checkbox\r\n label=\"Show customer's country\"\r\n checked={this.state.model.showShopperCountry_ShippingBar}\r\n onChange={(newValue) => this.handleChange('showShopperCountry_ShippingBar', newValue)}\r\n />\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.messageBeforeCountry_ShippingBar}\r\n onChange={(newValue) => this.handleChange('messageBeforeCountry_ShippingBar', newValue)}\r\n label=\"Message before country\"\r\n />\r\n <TextField\r\n value={this.state.model.messageAfterCountry_ShippingBar}\r\n onChange={(newValue) => this.handleChange('messageAfterCountry_ShippingBar', newValue)}\r\n label=\"Message after country\"\r\n />\r\n </FormLayout.Group>\r\n <Checkbox\r\n label=\"Show Progress Bar\"\r\n checked={this.state.model.showProgressBar_ShippingBar}\r\n onChange={(newValue) => this.handleChange('showProgressBar_ShippingBar', newValue)}\r\n />\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Progress Background Color\"\r\n fieldName=\"progressBackgroundColor_ShippingBar\"\r\n value={this.state.model.progressBackgroundColor_ShippingBar}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Progress Bar Color\"\r\n fieldName=\"progressBarColor_ShippingBar\"\r\n value={this.state.model.progressBarColor_ShippingBar}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <Checkbox\r\n label=\"Show Close Button\"\r\n checked={this.state.model.showCloseButton_ShippingBar}\r\n onChange={(newValue) => this.handleChange('showCloseButton_ShippingBar', newValue)}\r\n />\r\n <Select\r\n label=\"Position\"\r\n options={[{ label: 'Top', value: 'top' }, { label: 'Bottom', value: 'bottom' }]}\r\n onChange={(newValue) => this.handleChange('position_ShippingBar', newValue)}\r\n value={this.state.model.position_ShippingBar}\r\n />\r\n <Select\r\n label=\"Shipping Cart Font Size\"\r\n options={[{ label: \"Small\", value: JSON.stringify(fontStepValSmall) }, { label: \"Medium\", value: \"\" }, { label: \"Large\", value: JSON.stringify(fontStepValIncrease) }, { label: \"Extra Large\", value: JSON.stringify(fontStepValIncrease + 2) }]}\r\n onChange={this.handleShippingCart}\r\n value={this.state.model.shippingFontSize_ShippingBar}\r\n />\r\n </span>}\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection title=\"In Cart Upsell\">\r\n <Card>\r\n <Card.Section>\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Enabled\"\r\n checked={this.state.model.enabled_InCartUpsell}\r\n onChange={(newValue) => this.handleChange('enabled_InCartUpsell', newValue)}\r\n />\r\n {this.state.model.enabled_InCartUpsell && <span>\r\n\r\n <Checkbox\r\n label=\"Show Price\"\r\n checked={this.state.model.showPrice_InCartUpsell}\r\n onChange={(newValue) => this.handleChange('showPrice_InCartUpsell', newValue)}\r\n />\r\n <br />\r\n <Checkbox\r\n label=\"Show Compare Price\"\r\n checked={this.state.model.showComparePrice_InCartUpsell}\r\n onChange={(newValue) => this.handleChange('showComparePrice_InCartUpsell', newValue)}\r\n />\r\n <br />\r\n\r\n <Checkbox\r\n label=\"Show Variants Dropdown\"\r\n checked={this.state.model.showVariantsDropdown_InCartUpsell}\r\n onChange={(newValue) => this.handleChange('showVariantsDropdown_InCartUpsell', newValue)}\r\n />\r\n <br />\r\n\r\n <Checkbox\r\n label=\"Show Quantity Box\"\r\n checked={this.state.model.showQuantityBox_InCartUpsell}\r\n onChange={(newValue) => this.handleChange('showQuantityBox_InCartUpsell', newValue)}\r\n />\r\n <br />\r\n <br />\r\n\r\n <Stack vertical spacing=\"tight\">\r\n <Stack wrap={false} alignment=\"center\" spacing=\"tight\">\r\n <Checkbox\r\n label=\"Enable Tracking\"\r\n checked={this.state.model.trackingEnabled_InCartUpsell}\r\n onChange={(newValue) => this.handleChange('trackingEnabled_InCartUpsell', newValue)}\r\n\r\n />\r\n <Tooltip content=\"This attribute can be used for app auditing and will appear in your Shopify order details page. The attribute name is _Added from Sticky Add To Cart BOOSTER PRO's Cart Slider. This is not visible to your customers.\">\r\n <div style={{ lineHeight: 'normal', marginLeft: '4px' }}>\r\n <Icon source={InfoMinor} color=\"inkLightest\" />\r\n </div>\r\n </Tooltip>\r\n </Stack>\r\n </Stack>\r\n <br />\r\n\r\n <TextField\r\n value={this.state.model.overwriteProductName_Translation_InCartUpsell}\r\n onChange={(newValue) => this.handleChange('overwriteProductName_Translation_InCartUpsell', newValue)}\r\n label=\"Overwrite Product Name\"\r\n />\r\n <br />\r\n <Select\r\n label=\"Position\"\r\n options={[{ label: 'Top', value: 'top' }, { label: 'Bottom', value: 'bottom' }]}\r\n onChange={(newValue) => this.handleChange('position_InCartUpsell', newValue)}\r\n value={this.state.model.position_InCartUpsell}\r\n />\r\n <br />\r\n <TextContainer>\r\n <Banner title=\"Product exclusion\">\r\n <p>\r\n Sometimes you don't want to show some particular product as an upsell.\r\n Products can be excluded from the upsell by tagging them with the exact text <b>Hidden upsell recommendation</b>\r\n </p>\r\n </Banner>\r\n </TextContainer>\r\n <br />\r\n <TextContainer>\r\n <Banner title=\"Disabling recommendations\">\r\n <p>\r\n If you want some product to not show any recommendations you can tag it with the exact text <b>Upsell recommendations disabled</b>\r\n </p>\r\n </Banner>\r\n </TextContainer>\r\n </span>}\r\n\r\n </FormLayout>\r\n </Card.Section>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n\r\n {this.state.model.enabled_InCartUpsell && <>\r\n\r\n <Layout.AnnotatedSection>\r\n <Card>\r\n <Card.Section title=\"Translations\">\r\n <FormLayout>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.addToCart_Translation_InCartUpsell}\r\n onChange={(newValue) => this.handleChange('addToCart_Translation_InCartUpsell', newValue)}\r\n label=\"Add to cart\"\r\n />\r\n <TextField\r\n value={this.state.model.buyNow_Translation_InCartUpsell}\r\n onChange={(newValue) => this.handleChange('buyNow_Translation_InCartUpsell', newValue)}\r\n label=\"Buy now\"\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.titleBeforeText_Translation_InCartUpsell}\r\n onChange={(newValue) => this.handleChange('titleBeforeText_Translation_InCartUpsell', newValue)}\r\n label=\"Text Before Product Name\"\r\n />\r\n <TextField\r\n value={this.state.model.titleAfterText_Translation_InCartUpsell}\r\n onChange={(newValue) => this.handleChange('titleAfterText_Translation_InCartUpsell', newValue)}\r\n label=\"Text After Product Name\"\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.soldOut_Translation_InCartUpsell}\r\n onChange={(newValue) => this.handleChange('soldOut_Translation_InCartUpsell', newValue)}\r\n label=\"Sold out\"\r\n />\r\n <TextField\r\n value={this.state.model.addedToCartMessage_Translation_InCartUpsell}\r\n onChange={(newValue) => this.handleChange('addedToCartMessage_Translation_InCartUpsell', newValue)}\r\n label=\"Added to Cart Message\"\r\n />\r\n </FormLayout.Group>\r\n </FormLayout>\r\n </Card.Section>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection>\r\n <Card>\r\n <Card.Section title=\"Look and Feel\">\r\n <FormLayout>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Background Color\"\r\n fieldName=\"backgroundColor_InCartUpsell\"\r\n value={this.state.model.backgroundColor_InCartUpsell}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Title Color\"\r\n fieldName=\"titleColor_InCartUpsell\"\r\n value={this.state.model.titleColor_InCartUpsell}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Product Link Color\"\r\n fieldName=\"productLinkColor_InCartUpsell\"\r\n value={this.state.model.productLinkColor_InCartUpsell}\r\n handleChange={this.handleChange}\r\n />\r\n <div></div>\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Product Price Color\"\r\n fieldName=\"productPriceColor_InCartUpsell\"\r\n value={this.state.model.productPriceColor_InCartUpsell}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Product Compare Price Color\"\r\n fieldName=\"productComparePriceColor_InCartUpsell\"\r\n value={this.state.model.productComparePriceColor_InCartUpsell}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Button Background Color\"\r\n fieldName=\"buttonBackgroundColor_InCartUpsell\"\r\n value={this.state.model.buttonBackgroundColor_InCartUpsell}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Button Background Color on Hover\"\r\n fieldName=\"buttonBackgroundColorOnHover_InCartUpsell\"\r\n value={this.state.model.buttonBackgroundColorOnHover_InCartUpsell}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Button Text Color\"\r\n fieldName=\"buttonTextColor_InCartUpsell\"\r\n value={this.state.model.buttonTextColor_InCartUpsell}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Button Text Color on Hover\"\r\n fieldName=\"buttonTextColorOnHover_InCartUpsell\"\r\n value={this.state.model.buttonTextColorOnHover_InCartUpsell}\r\n handleChange={this.handleChange}\r\n />\r\n\r\n <Select\r\n label=\"Cart Upsell Font Size\"\r\n options={[{ label: \"Small\", value: JSON.stringify(fontStepValSmall) }, { label: \"Medium\", value: \"\" }, { label: \"Large\", value: JSON.stringify(fontStepValIncrease) }, { label: \"Extra Large\", value: JSON.stringify(fontStepValIncrease + 2) }]}\r\n onChange={this.handleInCartUpsell}\r\n value={this.state.model.cartFontSize_InCartUpsell}\r\n />\r\n </FormLayout.Group>\r\n </FormLayout>\r\n </Card.Section>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection>\r\n <Card>\r\n <Card.Section title={<h3 id=\"custom-bundles\" aria-label=\"Custom Bundles\" className=\"Polaris-Subheading\">Custom Bundles</h3>} actions={[{ content: 'Add bundle', url: '/upsell-bundle' + this.state.common.shopQueryString }]}>\r\n <FormLayout>\r\n <ResourceList\r\n resourceName={{ singular: 'bundle', plural: 'bundles' }}\r\n items={this.state.model.bundles_InCartUpsell ? this.state.model.bundles_InCartUpsell : []}\r\n\r\n renderItem={(item) => {\r\n const { id, name } = item;\r\n\r\n\r\n return (\r\n <ResourceItem\r\n id={id}\r\n url={'/upsell-bundle/' + this.state.common.shopQueryString}\r\n accessibilityLabel={`View details for ${name}`}\r\n name={name}\r\n onClick={() => { this.props.setBundleID(id) }}\r\n >\r\n <h3>\r\n <TextStyle variation=\"strong\">{name}</TextStyle>\r\n </h3>\r\n </ResourceItem>\r\n );\r\n }}\r\n selectedItems={this.state.selectedBundles}\r\n onSelectionChange={(newValue) => this.selectBundles(newValue)}\r\n bulkActions={[{\r\n content: 'Delete bundles',\r\n onAction: () => { this.deleteBundles() },\r\n }]}\r\n />\r\n </FormLayout>\r\n </Card.Section>\r\n <Card.Section title=\"Global Bundles\">\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Global Bundles Enabled\"\r\n checked={this.state.model.globalBundlesEnabled_InCartUpsell}\r\n onChange={(newValue) => this.handleChange('globalBundlesEnabled_InCartUpsell', newValue)}\r\n />\r\n <OptionList\r\n title={<span className='custom-help-text-margin'><b className=\"Polaris-Text--root Polaris-Text--headingSm Polaris-Text--semibold\">Recommendation Methods</b><div className=\"Polaris-Text--root Polaris-Text--bodyMd Polaris-Text--regular\"> Each bundle displays differently based on the algorithm or the structure. When multiple bundles are enabled, it follows top to bottom order of priority.\r\n </div></span>}\r\n onChange={(newValue) => this.handleChange('recommendationMethods_InCartUpsell', newValue.sort())}\r\n options={[\r\n { value: '0', label: lblCustomBundles, disabled: true },\r\n { value: '1', label: lblSmartRecommendation },\r\n { value: '3', label: lblSameCollection },\r\n { value: '4', label: lblSameProductType },\r\n { value: '5', label: lblSameVendor },\r\n { value: '6', label: lblRandomProduct },\r\n { value: '2', label: lblGlobalRecommendation },\r\n ]}\r\n selected={this.state.model.recommendationMethods_InCartUpsell}\r\n allowMultiple\r\n />\r\n {/* <TextContainer>\r\n <Banner>\r\n <p>\r\n To add products as global recommendations tag them with the exact text <b>Global upsell recommendations</b>\r\n </p>\r\n </Banner>\r\n </TextContainer> */}\r\n <Checkbox\r\n label=\"Random Order\"\r\n checked={this.state.model.randomOrder_InCartUpsell}\r\n onChange={(newValue) => this.handleChange('randomOrder_InCartUpsell', newValue)}\r\n />\r\n <TextField\r\n id=\"cartSlider_bundledProductsCount_InCartUpsell\"\r\n label=\"Bundled Products Count\"\r\n type=\"number\"\r\n min=\"1\"\r\n value={this.state.model.bundledProductsCount_InCartUpsell}\r\n onChange={(newValue) => this.handleChange('bundledProductsCount_InCartUpsell', newValue)}\r\n error={this.state.error.bundledProductsCount_InCartUpsell ? 'Value must be greater than or equal to 1' : ''}\r\n onBlur={() => this.handleBlur('bundledProductsCount_InCartUpsell', 1)}\r\n />\r\n\r\n </FormLayout>\r\n </Card.Section>\r\n </Card>\r\n </Layout.AnnotatedSection> </>}\r\n <Layout.AnnotatedSection title=\"Coupon Form\">\r\n <Card>\r\n <Card.Section>\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Enabled\"\r\n checked={this.state.model.showCouponForm}\r\n onChange={(newValue) => this.handleChange('showCouponForm', newValue)}\r\n />\r\n </FormLayout>\r\n </Card.Section>\r\n\r\n {this.state.model.showCouponForm && <span>\r\n\r\n <Card.Section title=\"Translations\">\r\n <FormLayout>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.textBoxPlaceholder_Translation}\r\n onChange={(newValue) => this.handleChange('textBoxPlaceholder_Translation', newValue)}\r\n label=\"Textbox placeholder\"\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.applyButtonText_Translation}\r\n onChange={(newValue) => this.handleChange('applyButtonText_Translation', newValue)}\r\n label=\"Apply button text\"\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.validCouponCodeNote_Translation}\r\n onChange={(newValue) => this.handleChange('validCouponCodeNote_Translation', newValue)}\r\n label=\"Valid coupon code note\"\r\n />\r\n </FormLayout.Group>\r\n <FormLayout.Group>\r\n <TextField\r\n value={this.state.model.invalidCouponCodeNote_Translation}\r\n onChange={(newValue) => this.handleChange('invalidCouponCodeNote_Translation', newValue)}\r\n label=\"Invalid coupon code note\"\r\n />\r\n </FormLayout.Group>\r\n </FormLayout>\r\n </Card.Section>\r\n <Card.Section title=\"Look and Feel\">\r\n <FormLayout>\r\n <FormLayout.Group>\r\n <ColorPickerCustom\r\n label=\"Apply Button Background Color\"\r\n fieldName=\"applyButtonBackgroundColor\"\r\n value={this.state.model.applyButtonBackgroundColor}\r\n handleChange={this.handleChange}\r\n />\r\n <ColorPickerCustom\r\n label=\"Apply Button Color\"\r\n fieldName=\"applyButtonColor\"\r\n value={this.state.model.applyButtonColor}\r\n handleChange={this.handleChange}\r\n />\r\n </FormLayout.Group>\r\n </FormLayout>\r\n </Card.Section>\r\n </span>}\r\n\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n\r\n\r\n <Layout.Section>\r\n {window.innerWidth < 768 ?\r\n <Stack alignment=\"center\" distribution=\"center\">\r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }} />\r\n </Stack>\r\n :\r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }} />\r\n }\r\n </Layout.Section>\r\n </Layout>\r\n </Page >\r\n );\r\n }\r\n\r\n async populateData() {\r\n\r\n const response = await fetchApi('api/home/cartSlider');\r\n const data = await response.json();\r\n var topNavTimer = setInterval(function () {\r\n if (window.$('#top-nav-div').length > 0) {\r\n window.$('#top-nav-div').sticky({ topSpacing: 13, zIndex: 200, isNav: true });\r\n\r\n }\r\n }, 500);\r\n\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n if (!this.state.common.userName) {\r\n const commonResponse = await fetchApi('api/home/common');\r\n const commonData = await commonResponse.json();\r\n\r\n if (commonData.redirectUrl) {\r\n this.navigate(commonData.redirectUrl);\r\n }\r\n else {\r\n this.props.setIsLoading(false);\r\n this.setState({ initState: JSON.parse(JSON.stringify(data)), model: data, loading: false, visibleItem: data.demoProduct !== null, common: commonData });\r\n }\r\n }\r\n else {\r\n this.props.setIsLoading(false);\r\n this.setState({ initState: JSON.parse(JSON.stringify(data)), model: data, loading: false, visibleItem: data.demoProduct !== null });\r\n }\r\n\r\n var tgl = this.togglePreviewActive;\r\n window.$('.satcb-cs').unbind('click').bind('click', function (e) {\r\n if (e.target.className && e.target.className.split(' ').indexOf('satcb-cs') > -1) {\r\n tgl();\r\n }\r\n });\r\n }\r\n\r\n if (typeof (this.state.model.selectedRemoveProductOption_CartReserved) == undefined ||\r\n (typeof (this.state.model.selectedRemoveProductOption_CartReserved) != undefined && !this.state.model.selectedRemoveProductOption_CartReserved)) {\r\n\r\n if (this.state.model.clearCartOnTimerEnd_CartReserved) {\r\n this.setState({ selectedRemoveProductOption_CartReserved: '2' });\r\n } else {\r\n this.setState({ selectedRemoveProductOption_CartReserved: '0' });\r\n }\r\n }\r\n setTimeout(() => {\r\n this.updateSectionSettingsPreview(data.titleFontSize, this.getDefaultFontValuesSectionSettings());\r\n this.updateCartReservePreview(data.cartInfoFontSize_CartReserved, this.getDefaultFontValuesCartReserve());\r\n this.updateInCartUpsellPreview(data.cartFontSize_InCartUpsell, this.getDefaultFontValuesInCartUpsell())\r\n this.updateShippingCartPreview(data.shippingFontSize_ShippingBar, this.getDefaultFontValuesShippingCart())\r\n }, 1000)\r\n\r\n }\r\n\r\n async saveChanges() {\r\n\r\n var hasError = this.handleBlur('closeAfterSeconds', 2);\r\n if (hasError) {\r\n $('#cartSlider_closeAfterSeconds').focus();\r\n return;\r\n }\r\n\r\n hasError = this.handleBlur('countdownMinutes_CartReserved', 1);\r\n if (hasError) {\r\n $('#cartSlider_countdownMinutes_CartReserved').focus();\r\n return;\r\n }\r\n\r\n hasError = this.handleBlur('notShowHours_CartReserved', 0);\r\n if (hasError) {\r\n $('#cartSlider_notShowHours_CartReserved').focus();\r\n return;\r\n }\r\n\r\n hasError = this.handleBlur('messageFontSize_CartReserved', 1);\r\n if (hasError) {\r\n $('#cartSlider_messageFontSize_CartReserved').focus();\r\n return;\r\n }\r\n\r\n hasError = this.handleBlur('minAmount_ShippingBar', 0);\r\n if (hasError) {\r\n $('#cartSlider_minAmount_ShippingBar').focus();\r\n return;\r\n }\r\n\r\n hasError = this.handleBlur('bundledProductsCount_InCartUpsell', 1);\r\n if (hasError) {\r\n $('#cartSlider_bundledProductsCount_InCartUpsell').focus();\r\n return;\r\n }\r\n\r\n this.props.setIsLoading(true);\r\n const response = await fetchApi('api/home/saveCartSlider', { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(this.state.model) });\r\n const data = await response.json();\r\n\r\n this.props.setIsLoading(false);\r\n\r\n if (response.ok === true) {\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.setState({ initState: JSON.parse(JSON.stringify(this.state.model)) });\r\n this.props.setIsDirty(false);\r\n this.props.setToastActive(true);\r\n }\r\n }\r\n }\r\n\r\n}","import React, { Component } from 'react';\r\nimport { Page, Layout, Card, FormLayout, TextField, Banner, PageActions,Stack } from '@shopify/polaris';\r\nimport { SkeletonPageCustom } from './SkeletonPageCustom';\r\nimport { fetchApi } from './helpers/fetchApi';\r\n\r\nexport class Advanced extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n props.setIsLoading(true);\r\n this.saveChanges = this.saveChanges.bind(this);\r\n\r\n this.state = {\r\n initState: {}, model: {}, loading: true\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateData();\r\n this.props.setSaveChanges(this.saveChanges);\r\n }\r\n\r\n handleChange(fieldName, newValue) {\r\n this.setState(prevState => {\r\n let model = Object.assign({}, prevState.model);\r\n model[fieldName] = newValue;\r\n this.props.setIsDirty(JSON.stringify(this.state.initState) !== JSON.stringify(model));\r\n return { model };\r\n });\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n this.state.loading ?\r\n <SkeletonPageCustom />\r\n :\r\n <Page title=\"Advanced\">\r\n <Layout>\r\n <Layout.Section\r\n\r\n >\r\n <Banner\r\n title=\"What is this for?\"\r\n status=\"info\"\r\n >\r\n <p>If you feel comfortable with custom code you can add CSS and JavaScript here. Otherwise we do not recommend adding anything here.</p>\r\n </Banner>\r\n </Layout.Section>\r\n <Layout.AnnotatedSection\r\n title=\"Custom CSS\"\r\n description=\"Put your custom CSS code here.\"\r\n >\r\n <Card sectioned>\r\n <FormLayout>\r\n <TextField\r\n value={this.state.model.customCSS}\r\n onChange={(newValue) => this.handleChange('customCSS', newValue)}\r\n label=\"Custom CSS styling\"\r\n multiline\r\n />\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"Custom JavaScript\"\r\n description=\"Put your custom JavaScript code here.\"\r\n >\r\n <Card sectioned>\r\n <FormLayout>\r\n <TextField\r\n value={this.state.model.customJavaScript}\r\n onChange={(newValue) => this.handleChange('customJavaScript', newValue)}\r\n label=\"Custom JavaScript code\"\r\n multiline\r\n />\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n {\r\n this.state.model.adminEnabled ?\r\n <Layout.AnnotatedSection\r\n title=\"Selectors\"\r\n >\r\n <Card sectioned>\r\n <FormLayout>\r\n <TextField\r\n value={this.state.model.formSelector}\r\n onChange={(newValue) => this.handleChange('formSelector', newValue)}\r\n label=\"Form Selector (Only 1 form selector supported. Don't use comma.)\"\r\n />\r\n <TextField\r\n value={this.state.model.buyButtonSelector}\r\n onChange={(newValue) => this.handleChange('buyButtonSelector', newValue)}\r\n label=\"Buy Button Selector\"\r\n />\r\n <TextField\r\n value={this.state.model.variantsSelector}\r\n onChange={(newValue) => this.handleChange('variantsSelector', newValue)}\r\n label=\"Variants Selector\"\r\n />\r\n <TextField\r\n value={this.state.model.reviewsStarsSelector}\r\n onChange={(newValue) => this.handleChange('reviewsStarsSelector', newValue)}\r\n label=\"Reviews Stars Selector\"\r\n />\r\n <TextField\r\n value={this.state.model.priceSelector}\r\n onChange={(newValue) => this.handleChange('priceSelector', newValue)}\r\n label=\"Price Selector\"\r\n />\r\n <TextField\r\n value={this.state.model.wasPriceSelector}\r\n onChange={(newValue) => this.handleChange('wasPriceSelector', newValue)}\r\n label=\"Was Price Selector\"\r\n />\r\n <TextField\r\n value={this.state.model.quickBuySelector}\r\n onChange={(newValue) => this.handleChange('quickBuySelector', newValue)}\r\n label=\"Quick Buy Selector\"\r\n />\r\n <TextField\r\n value={this.state.model.quickBuyTextButtonSelector}\r\n onChange={(newValue) => this.handleChange('quickBuyTextButtonSelector', newValue)}\r\n label=\"Quick Buy Text Button Selector\"\r\n />\r\n <TextField\r\n value={this.state.model.homepageProductUrl}\r\n onChange={(newValue) => this.handleChange('homepageProductUrl', newValue)}\r\n label=\"Homepage Product Url\"\r\n />\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection> : ''\r\n }\r\n <Layout.Section>\r\n {window.innerWidth < 768 ? \r\n <Stack alignment=\"center\" distribution=\"center\">\r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }} />\r\n </Stack> \r\n : \r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }} />\r\n }\r\n </Layout.Section>\r\n </Layout>\r\n </Page>\r\n );\r\n }\r\n\r\n async populateData() {\r\n const response = await fetchApi('api/home/advanced');\r\n const data = await response.json();\r\n\r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n window.$('#top-nav-div').sticky({ topSpacing: 13, zIndex: 200, isNav: true });\r\n \r\n }\r\n },500);\r\n \r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.props.setIsLoading(false);\r\n this.setState({ initState: data, model: data, loading: false });\r\n }\r\n }\r\n\r\n async saveChanges() {\r\n this.props.setIsLoading(true);\r\n const response = await fetchApi('api/home/saveAdvanced', { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(this.state.model) });\r\n const data = await response.json();\r\n this.props.setIsLoading(false);\r\n\r\n if (response.ok === true) {\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.setState({ initState: Object.assign({}, this.state.model) });\r\n this.props.setIsDirty(false);\r\n this.props.setToastActive(true);\r\n }\r\n }\r\n }\r\n\r\n}","var styles = {\n \"Thumbnail\": \"Polaris-Thumbnail\",\n \"sizeExtraSmall\": \"Polaris-Thumbnail--sizeExtraSmall\",\n \"sizeSmall\": \"Polaris-Thumbnail--sizeSmall\",\n \"sizeMedium\": \"Polaris-Thumbnail--sizeMedium\",\n \"sizeLarge\": \"Polaris-Thumbnail--sizeLarge\",\n \"transparent\": \"Polaris-Thumbnail--transparent\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport styles from './Thumbnail.scss.js';\nimport { Image } from '../Image/Image.js';\nimport { Icon } from '../Icon/Icon.js';\n\nfunction Thumbnail({\n source,\n alt,\n size = 'medium',\n transparent\n}) {\n const className = classNames(styles.Thumbnail, size && styles[variationName('size', size)], transparent && styles.transparent);\n const content = typeof source === 'string' ? /*#__PURE__*/React.createElement(Image, {\n alt: alt,\n source: source\n }) : /*#__PURE__*/React.createElement(Icon, {\n accessibilityLabel: alt,\n source: source\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className\n }, content);\n}\n\nexport { Thumbnail };\n","var styles = {\n \"imageContained\": \"Polaris-EmptyState--imageContained\"\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 { buttonFrom } from '../Button/utils.js';\nimport { Box } from '../Box/Box.js';\nimport { VerticalStack } from '../VerticalStack/VerticalStack.js';\nimport { Image } from '../Image/Image.js';\nimport { Text } from '../Text/Text.js';\nimport { HorizontalStack } from '../HorizontalStack/HorizontalStack.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 imageContainedClass = classNames(imageContained && styles.imageContained);\n const imageMarkup = largeImage ? /*#__PURE__*/React.createElement(Image, {\n alt: \"\",\n role: \"presentation\",\n source: largeImage,\n className: imageContainedClass,\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 className: imageContainedClass,\n role: \"presentation\",\n alt: \"\",\n source: image\n });\n const secondaryActionMarkup = secondaryAction ? buttonFrom(secondaryAction, {}) : null;\n const footerContentMarkup = footerContent ? /*#__PURE__*/React.createElement(Box, {\n paddingBlockStart: \"4\"\n }, /*#__PURE__*/React.createElement(Text, {\n as: \"span\",\n color: \"subdued\",\n alignment: \"center\"\n }, footerContent)) : null;\n const headingSize = withinContentContainer ? 'headingLg' : 'headingXl';\n const primaryActionMarkup = action ? buttonFrom(action, {\n primary: true,\n size: 'medium'\n }) : null;\n const headingMarkup = heading ? /*#__PURE__*/React.createElement(Box, {\n paddingBlockEnd: \"4\"\n }, /*#__PURE__*/React.createElement(Text, {\n variant: headingSize,\n as: \"p\",\n alignment: \"center\"\n }, heading)) : null;\n const childrenMarkup = children ? /*#__PURE__*/React.createElement(Text, {\n as: \"span\",\n color: \"subdued\",\n alignment: \"center\"\n }, children) : null;\n const textContentMarkup = headingMarkup || children ? /*#__PURE__*/React.createElement(Box, {\n paddingBlockEnd: \"6\"\n }, headingMarkup, childrenMarkup) : null;\n const actionsMarkup = primaryActionMarkup || secondaryActionMarkup ? /*#__PURE__*/React.createElement(HorizontalStack, {\n align: \"center\",\n gap: \"2\"\n }, secondaryActionMarkup, primaryActionMarkup) : null;\n const detailsMarkup = textContentMarkup || actionsMarkup || footerContentMarkup ? /*#__PURE__*/React.createElement(Box, {\n maxWidth: fullWidth ? '100%' : '400px'\n }, /*#__PURE__*/React.createElement(VerticalStack, {\n inlineAlign: \"center\"\n }, textContentMarkup, actionsMarkup, footerContentMarkup)) : null;\n return /*#__PURE__*/React.createElement(Box, {\n paddingInlineStart: \"0\",\n paddingInlineEnd: \"0\",\n paddingBlockStart: \"5\",\n paddingBlockEnd: \"16\"\n }, /*#__PURE__*/React.createElement(VerticalStack, {\n inlineAlign: \"center\"\n }, imageMarkup, detailsMarkup));\n}\n\nexport { EmptyState };\n","import React, { Component } from 'react';\r\nimport { Page, Layout, Card, Banner, Stack, ResourceList, ResourceItem, Thumbnail, TextStyle, Tooltip, EmptyState } from '@shopify/polaris';\r\nimport { SkeletonPageCustom } from './SkeletonPageCustom';\r\nimport { fetchApi } from './helpers/fetchApi';\r\n\r\nexport class Analytics extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n props.setIsLoading(true);\r\n\r\n this.state = {\r\n initState: {}, model: {}, loading: true\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateData();\r\n }\r\n\r\n render() {\r\n\r\n const topPerformers = (\r\n <ResourceList\r\n items={this.state.model.topPerformers}\r\n renderItem={(item) => {\r\n const { url, title, imgSrc, mobileClicks, desktopClicks, totalClicks, totalPriceFormatted } = item;\r\n\r\n return (\r\n <ResourceItem\r\n url={url}\r\n media={\r\n <Thumbnail source={imgSrc} size=\"medium\" alt={title} />\r\n }\r\n accessibilityLabel={`View details for ${title}`}\r\n name={title}\r\n >\r\n <h3>\r\n <TextStyle variation=\"strong\">{title}</TextStyle>\r\n </h3>\r\n <div>{totalClicks + ' times clicked (' + mobileClicks + ' mobile & ' + desktopClicks + ' desktop)'}</div>\r\n <div>\r\n <Tooltip content=\"Total potential revenue\">\r\n <span>{totalPriceFormatted + ' ' + this.state.model.currency}</span>\r\n </Tooltip>\r\n </div>\r\n </ResourceItem>\r\n );\r\n }}\r\n />\r\n );\r\n\r\n const emptyState = (\r\n <EmptyState heading=\"Nothing to see here yet!\">\r\n <p>When someone clicks on the Sticky or Quick Buy button you will see the details here!</p>\r\n </EmptyState>\r\n );\r\n\r\n const mostRecentClicks = (\r\n <ResourceList\r\n items={this.state.model.mostRecentClicks}\r\n renderItem={(item) => {\r\n const { url, title, imgSrc, date, priceFormatted } = item;\r\n\r\n return (\r\n <ResourceItem\r\n url={url}\r\n media={\r\n <Thumbnail source={imgSrc} size=\"medium\" alt={title} />\r\n }\r\n accessibilityLabel={`View details for ${title}`}\r\n name={title}\r\n >\r\n <h3>\r\n <TextStyle variation=\"strong\">{title}</TextStyle>\r\n </h3>\r\n <div><span className=\"stats-date\">{date}</span></div>\r\n <div>\r\n <Tooltip content=\"Average product price per click\">\r\n <span>{priceFormatted + ' ' + this.state.model.currency}</span>\r\n </Tooltip>\r\n </div>\r\n </ResourceItem>\r\n );\r\n }}\r\n />\r\n );\r\n\r\n return (\r\n this.state.loading ?\r\n <SkeletonPageCustom />\r\n :\r\n <Page title=\"Analytics\">\r\n <Layout>\r\n <Layout.Section>\r\n <Banner\r\n status=\"info\"\r\n >\r\n <p>You can see the latest 15 clicks here. Top 10 performers shows the most clicked products.</p>\r\n </Banner>\r\n </Layout.Section>\r\n <Layout.Section>\r\n <Stack distribution=\"fillEvenly\">\r\n <Card sectioned title=\"Most recent 15 clicks\">\r\n {this.state.model.mostRecentClicks.length > 0 ? mostRecentClicks : emptyState}\r\n </Card>\r\n <Card sectioned title=\"Top 10 Performers\">\r\n {this.state.model.topPerformers.length > 0 ? topPerformers : emptyState}\r\n </Card>\r\n </Stack>\r\n </Layout.Section>\r\n <Layout.Section>\r\n <Card sectioned title=\"Google Analytics\">\r\n <Banner\r\n status=\"info\"\r\n >\r\n <p>If your store has Google Analytics installed, clicks on Sticky or Quick Buy button will automatically appear in the Behavior -> Events section of your Google Analytics as shown below. No setup is needed.</p>\r\n </Banner>\r\n <img className=\"img-ga\" src=\"/images/ga-satcb.png\" alt=\"Google Analytics\" />\r\n </Card>\r\n </Layout.Section>\r\n <Layout.Section>\r\n <Card sectioned title=\"Facebook pixel tracking\">\r\n <Banner\r\n status=\"info\"\r\n >\r\n <p>Similar to GA, if your store has FB pixel installed, clicks on Sticky or Quick Buy button will be tracked the same as your main ATC button. No setup is needed.</p><br />\r\n <p>If <b>Straight to Checkout</b> is enabled then FB InitiateCheckout event will be fired, otherwise FB AddToCart event is fired (same event as when your main ATC button is clicked).</p>\r\n </Banner>\r\n </Card>\r\n </Layout.Section>\r\n </Layout>\r\n </Page>\r\n );\r\n }\r\n\r\n async populateData() {\r\n const response = await fetchApi('api/home/analytics');\r\n const data = await response.json();\r\n\r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n window.$('#top-nav-div').sticky({ topSpacing: 13, zIndex: 200, isNav: true });\r\n \r\n }\r\n },500);\r\n \r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.props.setIsLoading(false);\r\n this.setState({ initState: data, model: data, loading: false });\r\n\r\n window.$('.Polaris-ResourceItem__Link').click(function (e) {\r\n e.preventDefault();\r\n window.open(window.$(this).parent().data('href'), '_blank');\r\n });\r\n\r\n window.$.each(window.$(\".stats-date\"), function (i, v) {\r\n window.$(v).text(window.moment.utc(window.$(v).text(), \"M/D/YYYY h:mm:ss A\").local().format(\"LL LTS\"));\r\n });\r\n }\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Page, Layout, Banner, Card, FormLayout, TextField, Button } from '@shopify/polaris';\r\nimport { SkeletonPageCustom } from './SkeletonPageCustom';\r\nimport { fetchApi } from './helpers/fetchApi';\r\n\r\nexport class Login extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n props.setIsLoading(true);\r\n this.state = { loading: true, errorMessage: '', shopName: '', code: '', shopNameError: '' };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateData();\r\n }\r\n\r\n handleChange(fieldName, newValue) {\r\n if (fieldName === 'shopName') {\r\n this.setState({ shopName: newValue });\r\n this.setState({ shopNameError: '' });\r\n }\r\n else if (fieldName === 'code') {\r\n this.setState({ code: newValue });\r\n }\r\n }\r\n\r\n logIn() {\r\n if (!this.state.shopName) {\r\n this.setState({ shopNameError: 'Shop name field is required.' });\r\n return;\r\n }\r\n\r\n this.submitLogin();\r\n }\r\n\r\n render() {\r\n const errorMessage = this.state.errorMessage ? (\r\n <p>{this.state.errorMessage}</p>\r\n ) : null;\r\n\r\n return (\r\n this.state.loading ?\r\n <SkeletonPageCustom />\r\n :\r\n <Page title=\"Log in\">\r\n <Layout>\r\n <Layout.Section>\r\n <Banner\r\n title=\"Log into Sticky Add To Cart BOOSTER PRO\"\r\n status=\"warning\"\r\n >\r\n <p>It seems your session ended. Please log into the app by going to your <b>Shopify store admin -> Apps -> Sticky Add To Cart BOOSTER PRO</b> or use the form below.</p>\r\n {errorMessage}\r\n </Banner>\r\n </Layout.Section>\r\n <Layout.Section>\r\n <Card sectioned>\r\n <FormLayout>\r\n <TextField\r\n label=\"Shop name\"\r\n placeholder=\"shopname\"\r\n suffix=\".myshopify.com\"\r\n value={this.state.shopName}\r\n error={this.state.shopNameError}\r\n onChange={(newValue) => this.handleChange('shopName', newValue)} />\r\n <TextField\r\n label=\"Code (optional)\"\r\n placeholder=\"code\"\r\n value={this.state.code}\r\n onChange={(newValue) => this.handleChange('code', newValue)} />\r\n <Button primary={true} onClick={() => this.logIn()}>Log In</Button>\r\n </FormLayout>\r\n </Card>\r\n </Layout.Section>\r\n </Layout>\r\n </Page>\r\n );\r\n }\r\n\r\n async populateData() {\r\n\r\n const response = await fetchApi('api/home/login');\r\n const data = await response.json();\r\n\r\n this.props.setIsLoading(false);\r\n this.setState({ errorMessage: data.errorMessage, loading: false });\r\n }\r\n\r\n async submitLogin() {\r\n this.props.setIsLoading(true);\r\n const response = await fetchApi('api/home/submitLogin', { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ shopName: this.state.shopName, discountCode: this.state.code }) });\r\n const data = await response.json();\r\n this.props.setIsLoading(false);\r\n\r\n if (response.ok === true) {\r\n window.location.href = data.redirectUrl + '?shop=' + this.state.shopName + '&token=' + data.token;;\r\n }\r\n }\r\n}","import React from 'react';\n\nvar SvgUploadMajor = function SvgUploadMajor(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: \"M20 10c0 5.523-4.477 10-10 10s-10-4.477-10-10 4.477-10 10-10 10 4.477 10 10zm-14.707-1.707 4-4a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414l-2.293-2.293v7.586a1 1 0 1 1-2 0v-7.586l-2.293 2.293a1 1 0 0 1-1.414-1.414z\"\n }));\n};\n\nexport { SvgUploadMajor as S };\n","function capitalize(word = '') {\n const wordLower = word.toLowerCase();\n return wordLower.charAt(0).toUpperCase() + wordLower.slice(1);\n}\n\nexport { capitalize };\n","const dragEvents = ['dragover', 'dragenter', 'drop'];\nfunction fileAccepted(file, accept) {\n return file.type === 'application/x-moz-file' || accepts(file, accept);\n}\nfunction getDataTransferFiles(event) {\n if (isDragEvent(event) && event.dataTransfer) {\n const dt = event.dataTransfer;\n\n if (dt.files && dt.files.length) {\n return Array.from(dt.files);\n } else if (dt.items && dt.items.length) {\n // Chrome is the only browser that allows to read the file list on drag\n // events and uses `items` instead of `files` in this case.\n return Array.from(dt.items);\n }\n } else if (isChangeEvent(event) && event.target.files) {\n // Return files from even when a file was selected from an upload dialog\n return Array.from(event.target.files);\n }\n\n return [];\n}\n\nfunction accepts(file, acceptedFiles) {\n if (file && acceptedFiles) {\n const fileName = file.name || '';\n const mimeType = file.type || '';\n const baseMimeType = mimeType.replace(/\\/.*$/, '');\n const acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n return acceptedFilesArray.some(type => {\n const validType = type.trim();\n\n if (validType.startsWith('.')) {\n return fileName.toLowerCase().endsWith(validType.toLowerCase());\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n}\n\nfunction isDragEvent(event) {\n return dragEvents.indexOf(event.type) > 0;\n}\n\nfunction isChangeEvent(event) {\n return Object.prototype.hasOwnProperty.call(event, 'target');\n}\n\nconst defaultAllowMultiple = true;\nfunction createAllowMultipleKey(allowMultiple) {\n return allowMultiple ? 'allowMultiple' : 'single';\n}\n\nexport { createAllowMultipleKey, defaultAllowMultiple, fileAccepted, getDataTransferFiles };\n","import { createContext } from 'react';\nimport { defaultAllowMultiple } from './utils/index.js';\n\nconst DropZoneContext = /*#__PURE__*/createContext({\n disabled: false,\n focused: false,\n size: 'extraLarge',\n type: 'file',\n measuring: false,\n allowMultiple: defaultAllowMultiple\n});\n\nexport { DropZoneContext };\n","var styles = {\n \"DropZone\": \"Polaris-DropZone\",\n \"focused\": \"Polaris-DropZone--focused\",\n \"hasOutline\": \"Polaris-DropZone--hasOutline\",\n \"isDisabled\": \"Polaris-DropZone--isDisabled\",\n \"isDragging\": \"Polaris-DropZone--isDragging\",\n \"sizeLarge\": \"Polaris-DropZone--sizeLarge\",\n \"sizeMedium\": \"Polaris-DropZone--sizeMedium\",\n \"sizeSmall\": \"Polaris-DropZone--sizeSmall\",\n \"measuring\": \"Polaris-DropZone--measuring\",\n \"Container\": \"Polaris-DropZone__Container\",\n \"Overlay\": \"Polaris-DropZone__Overlay\",\n \"hasError\": \"Polaris-DropZone--hasError\"\n};\n\nexport { styles as default };\n","var styles = {\n \"FileUpload\": \"Polaris-DropZone-FileUpload\",\n \"large\": \"Polaris-DropZone-FileUpload--large\",\n \"small\": \"Polaris-DropZone-FileUpload--small\",\n \"Action\": \"Polaris-DropZone-FileUpload__Action\",\n \"disabled\": \"Polaris-DropZone-FileUpload--disabled\",\n \"ActionTitle\": \"Polaris-DropZone-FileUpload__ActionTitle\",\n \"ActionTitle-disabled\": \"Polaris-DropZone-FileUpload__ActionTitle--disabled\",\n \"ActionTitle-focused\": \"Polaris-DropZone-FileUpload__ActionTitle--focused\"\n};\n\nexport { styles as default };\n","import React, { useRef, useCallback, useState, useMemo, useEffect } from 'react';\nimport { CircleAlertMajor, UploadMajor } from '@shopify/polaris-icons';\nimport { debounce } from '../../utilities/debounce.js';\nimport { classNames, variationName } from '../../utilities/css.js';\nimport { capitalize } from '../../utilities/capitalize.js';\nimport { isServer } from '../../utilities/target.js';\nimport { useComponentDidMount } from '../../utilities/use-component-did-mount.js';\nimport { useToggle } from '../../utilities/use-toggle.js';\nimport { useEventListener } from '../../utilities/use-event-listener.js';\nimport { DropZoneContext } from './context.js';\nimport { defaultAllowMultiple, fileAccepted, getDataTransferFiles, createAllowMultipleKey } from './utils/index.js';\nimport styles from './DropZone.scss.js';\nimport { FileUpload } from './components/FileUpload/FileUpload.js';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { useUniqueId } from '../../utilities/unique-id/hooks.js';\nimport { VerticalStack } from '../VerticalStack/VerticalStack.js';\nimport { Icon } from '../Icon/Icon.js';\nimport { Text } from '../Text/Text.js';\nimport { Labelled } from '../Labelled/Labelled.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 DropZone = function DropZone({\n dropOnPage,\n label,\n labelAction,\n labelHidden,\n children,\n disabled = false,\n outline = true,\n accept,\n active,\n overlay = true,\n allowMultiple = defaultAllowMultiple,\n overlayText,\n errorOverlayText,\n id: idProp,\n type = 'file',\n onClick,\n error,\n openFileDialog,\n variableHeight,\n onFileDialogClose,\n customValidator,\n onDrop,\n onDropAccepted,\n onDropRejected,\n onDragEnter,\n onDragOver,\n onDragLeave\n}) {\n const node = useRef(null);\n const inputRef = useRef(null);\n const dragTargets = useRef([]); // eslint-disable-next-line react-hooks/exhaustive-deps\n\n const adjustSize = useCallback(debounce(() => {\n if (!node.current) {\n return;\n }\n\n if (variableHeight) {\n setMeasuring(false);\n return;\n }\n\n let size = 'large';\n const width = node.current.getBoundingClientRect().width;\n\n if (width < 100) {\n size = 'small';\n } else if (width < 160) {\n size = 'medium';\n }\n\n setSize(size);\n measuring && setMeasuring(false);\n }, 50, {\n trailing: true\n }), []);\n const [dragging, setDragging] = useState(false);\n const [internalError, setInternalError] = useState(false);\n const {\n value: focused,\n setTrue: handleFocus,\n setFalse: handleBlur\n } = useToggle(false);\n const [size, setSize] = useState('large');\n const [measuring, setMeasuring] = useState(true);\n const i18n = useI18n();\n const getValidatedFiles = useCallback(files => {\n const acceptedFiles = [];\n const rejectedFiles = [];\n Array.from(files).forEach(file => {\n !fileAccepted(file, accept) || customValidator && !customValidator(file) ? rejectedFiles.push(file) : acceptedFiles.push(file);\n });\n\n if (!allowMultiple) {\n acceptedFiles.splice(1, acceptedFiles.length);\n rejectedFiles.push(...acceptedFiles.slice(1));\n }\n\n return {\n files,\n acceptedFiles,\n rejectedFiles\n };\n }, [accept, allowMultiple, customValidator]);\n const handleDrop = useCallback(event => {\n stopEvent(event);\n if (disabled) return;\n const fileList = getDataTransferFiles(event);\n const {\n files,\n acceptedFiles,\n rejectedFiles\n } = getValidatedFiles(fileList);\n dragTargets.current = [];\n setDragging(false);\n setInternalError(rejectedFiles.length > 0);\n onDrop && onDrop(files, acceptedFiles, rejectedFiles);\n onDropAccepted && acceptedFiles.length && onDropAccepted(acceptedFiles);\n onDropRejected && rejectedFiles.length && onDropRejected(rejectedFiles);\n if (!(event.target && 'value' in event.target)) return;\n event.target.value = '';\n }, [disabled, getValidatedFiles, onDrop, onDropAccepted, onDropRejected]);\n const handleDragEnter = useCallback(event => {\n stopEvent(event);\n if (disabled) return;\n const fileList = getDataTransferFiles(event);\n\n if (event.target && !dragTargets.current.includes(event.target)) {\n dragTargets.current.push(event.target);\n }\n\n if (dragging) return;\n const {\n rejectedFiles\n } = getValidatedFiles(fileList);\n setDragging(true);\n setInternalError(rejectedFiles.length > 0);\n onDragEnter && onDragEnter();\n }, [disabled, dragging, getValidatedFiles, onDragEnter]);\n const handleDragOver = useCallback(event => {\n stopEvent(event);\n if (disabled) return;\n onDragOver && onDragOver();\n }, [disabled, onDragOver]);\n const handleDragLeave = useCallback(event => {\n event.preventDefault();\n if (disabled) return;\n dragTargets.current = dragTargets.current.filter(el => {\n const compareNode = dropOnPage && !isServer ? document : node.current;\n return el !== event.target && compareNode && compareNode.contains(el);\n });\n if (dragTargets.current.length > 0) return;\n setDragging(false);\n setInternalError(false);\n onDragLeave && onDragLeave();\n }, [dropOnPage, disabled, onDragLeave]);\n const dropNode = dropOnPage && !isServer ? document : node.current;\n useEventListener('drop', handleDrop, dropNode);\n useEventListener('dragover', handleDragOver, dropNode);\n useEventListener('dragenter', handleDragEnter, dropNode);\n useEventListener('dragleave', handleDragLeave, dropNode);\n useEventListener('resize', adjustSize, isServer ? null : window);\n useComponentDidMount(() => {\n adjustSize();\n });\n const id = useUniqueId('DropZone', idProp);\n const typeSuffix = capitalize(type);\n const allowMultipleKey = createAllowMultipleKey(allowMultiple);\n const overlayTextWithDefault = overlayText === undefined ? i18n.translate(`Polaris.DropZone.${allowMultipleKey}.overlayText${typeSuffix}`) : overlayText;\n const errorOverlayTextWithDefault = errorOverlayText === undefined ? i18n.translate(`Polaris.DropZone.errorOverlayText${typeSuffix}`) : errorOverlayText;\n const labelValue = label || i18n.translate(`Polaris.DropZone.${allowMultipleKey}.label${typeSuffix}`);\n const labelHiddenValue = label ? labelHidden : true;\n const classes = classNames(styles.DropZone, outline && styles.hasOutline, focused && styles.focused, (active || dragging) && styles.isDragging, disabled && styles.isDisabled, (internalError || error) && styles.hasError, !variableHeight && styles[variationName('size', size)], measuring && styles.measuring);\n const dragOverlay = (active || dragging) && !internalError && !error && overlay && overlayMarkup(UploadMajor, 'interactive', overlayTextWithDefault);\n const dragErrorOverlay = dragging && (internalError || error) && overlayMarkup(CircleAlertMajor, 'critical', errorOverlayTextWithDefault);\n const context = useMemo(() => ({\n disabled,\n focused,\n size,\n type: type || 'file',\n measuring,\n allowMultiple\n }), [disabled, focused, measuring, size, type, allowMultiple]);\n const open = useCallback(() => {\n if (!inputRef.current) return;\n inputRef.current.click();\n }, [inputRef]);\n const triggerFileDialog = useCallback(() => {\n open();\n onFileDialogClose === null || onFileDialogClose === void 0 ? void 0 : onFileDialogClose();\n }, [open, onFileDialogClose]);\n\n function overlayMarkup(icon, color, text) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Overlay\n }, /*#__PURE__*/React.createElement(VerticalStack, {\n gap: \"2\",\n inlineAlign: \"center\"\n }, size === 'small' && /*#__PURE__*/React.createElement(Icon, {\n source: icon,\n color: color\n }), (size === 'medium' || size === 'large') && /*#__PURE__*/React.createElement(Text, {\n variant: \"bodySm\",\n as: \"p\",\n fontWeight: \"bold\"\n }, text)));\n }\n\n function handleClick(event) {\n if (disabled) return;\n return onClick ? onClick(event) : open();\n }\n\n useEffect(() => {\n if (openFileDialog) triggerFileDialog();\n }, [openFileDialog, triggerFileDialog]);\n return /*#__PURE__*/React.createElement(DropZoneContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(Labelled, {\n id: id,\n label: labelValue,\n action: labelAction,\n labelHidden: labelHiddenValue\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: node,\n className: classes,\n \"aria-disabled\": disabled,\n onClick: handleClick,\n onDragStart: stopEvent\n }, dragOverlay, dragErrorOverlay, /*#__PURE__*/React.createElement(Text, {\n variant: \"bodySm\",\n as: \"span\",\n visuallyHidden: true\n }, /*#__PURE__*/React.createElement(\"input\", {\n id: id,\n accept: accept,\n disabled: disabled,\n multiple: allowMultiple,\n onChange: handleDrop,\n onFocus: handleFocus,\n onBlur: handleBlur,\n type: \"file\",\n ref: inputRef,\n autoComplete: \"off\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.Container\n }, children))));\n};\n\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nDropZone.FileUpload = FileUpload;\n\nexport { DropZone };\n","import React, { useContext } from 'react';\nimport { classNames } from '../../../../utilities/css.js';\nimport { capitalize } from '../../../../utilities/capitalize.js';\nimport { DropZoneContext } from '../../context.js';\nimport { createAllowMultipleKey } from '../../utils/index.js';\nimport styles from './FileUpload.scss.js';\nimport uploadArrow from '../../images/upload-arrow.svg.js';\nimport { useI18n } from '../../../../utilities/i18n/hooks.js';\nimport { VerticalStack } from '../../../VerticalStack/VerticalStack.js';\nimport { Text } from '../../../Text/Text.js';\n\nfunction FileUpload(props) {\n const i18n = useI18n();\n const {\n size,\n measuring,\n type,\n disabled,\n allowMultiple\n } = useContext(DropZoneContext);\n const typeSuffix = capitalize(type);\n const allowMultipleKey = createAllowMultipleKey(allowMultiple);\n const {\n actionTitle = i18n.translate(`Polaris.DropZone.${allowMultipleKey}.actionTitle${typeSuffix}`),\n actionHint\n } = props;\n const actionClassNames = classNames(styles.Action, disabled && styles.disabled);\n const actionMarkup = /*#__PURE__*/React.createElement(\"div\", {\n className: actionClassNames\n }, actionTitle);\n const fileUploadClassName = classNames(styles.FileUpload, measuring && styles.measuring, size === 'large' && styles.large, size === 'small' && styles.small);\n const actionHintMarkup = actionHint && /*#__PURE__*/React.createElement(Text, {\n variant: \"bodySm\",\n as: \"p\",\n color: \"subdued\"\n }, actionHint);\n let viewMarkup;\n\n switch (size) {\n case 'large':\n viewMarkup = /*#__PURE__*/React.createElement(VerticalStack, {\n inlineAlign: \"center\",\n gap: \"2\"\n }, actionMarkup, actionHintMarkup);\n break;\n\n case 'medium':\n viewMarkup = /*#__PURE__*/React.createElement(VerticalStack, {\n inlineAlign: \"center\",\n gap: \"2\"\n }, actionMarkup, actionHintMarkup);\n break;\n\n case 'small':\n viewMarkup = /*#__PURE__*/React.createElement(\"img\", {\n width: \"20\",\n src: uploadArrow,\n alt: \"\"\n });\n break;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: fileUploadClassName\n }, viewMarkup);\n}\n\nexport { FileUpload };\n","var img = \"data:image/svg+xml,%3csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' d='M20 10a10 10 0 11-20 0 10 10 0 0120 0zM5.3 8.3l4-4a1 1 0 011.4 0l4 4a1 1 0 01-1.4 1.4L11 7.4V15a1 1 0 11-2 0V7.4L6.7 9.7a1 1 0 01-1.4-1.4z' fill='%235C5F62'/%3e%3c/svg%3e\";\n var uploadArrow = img;\n\nexport { uploadArrow as default };\n","var styles = {\n \"Caption\": \"Polaris-Caption\"\n};\n\nexport { styles as default };\n","import React from 'react';\nimport styles from './Caption.scss.js';\n\n/**\n * @deprecated The Caption component will be removed in the next\n * major version. Use the Text component instead. See the\n * Polaris component guide on how to use Text.\n *\n * https://polaris.shopify.com/components/text\n */\nfunction Caption({\n children\n}) {\n return /*#__PURE__*/React.createElement(\"p\", {\n className: styles.Caption\n }, children);\n}\n\nexport { Caption };\n","import React, { useCallback } from 'react';\nimport { useI18n } from '../../utilities/i18n/hooks.js';\nimport { Text } from '../Text/Text.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(Text, {\n as: \"span\",\n visuallyHidden: true\n }, /*#__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","/* eslint-disable no-useless-escape */\r\nimport React, { Component } from 'react';\r\nimport { Page, Layout, Card, Form, FormLayout, Toast, TextField, DropZone, Thumbnail, Caption, Stack, Checkbox, PageActions, InlineError, Button } from '@shopify/polaris';\r\nimport { SkeletonPageCustom } from './SkeletonPageCustom';\r\nimport { fetchApi } from './helpers/fetchApi';\r\n\r\nconst $ = window.$;\r\nvar pattern = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/\r\n\r\nexport class Support extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n props.setIsLoading(true);\r\n\r\n this.saveChanges = this.saveChanges.bind(this);\r\n this.toggleToastActive = this.toggleToastActive.bind(this);\r\n\r\n this.state = {\r\n model: {}, loading: true, toastActive: false, files: [], maxFileSize: 19456,\r\n toastMessage: 'Thank you for your email! Someone will get back to you ASAP.',\r\n error:\r\n {\r\n name: false,\r\n email: false,\r\n invalidEmail: false,\r\n storeUrl: false,\r\n message: false,\r\n }\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateData();\r\n }\r\n\r\n handleChange(fieldName, newValue) {\r\n this.setState(prevState => {\r\n let model = Object.assign({}, prevState.model);\r\n model[fieldName] = newValue;\r\n return { model };\r\n });\r\n }\r\n\r\n handleBlur(fieldName) {\r\n var val = this.state.model[fieldName];\r\n this.setState(prevState => {\r\n let error = Object.assign({}, prevState.error);\r\n if (val) {\r\n error[fieldName] = false;\r\n }\r\n else {\r\n error[fieldName] = true;\r\n }\r\n if (!error[fieldName] && fieldName === 'email') {\r\n error.invalidEmail = !pattern.test(val);\r\n }\r\n return { error };\r\n });\r\n }\r\n\r\n handleDropZoneDrop(files) {\r\n var tFiles = [];\r\n this.state.files.forEach(function (file) {\r\n tFiles.push(file);\r\n });\r\n files.forEach(function (file) {\r\n tFiles.push(file);\r\n });\r\n\r\n this.setState({ files: tFiles });\r\n }\r\n\r\n toggleToastActive() {\r\n this.setState({ toastActive: !this.state.toastActive });\r\n }\r\n\r\n totalFileSize() {\r\n var totalFileSize = 0;\r\n this.state.files.forEach(function (file) {\r\n totalFileSize += file.size;\r\n });\r\n return totalFileSize / 1024;\r\n }\r\n\r\n deleteFile(e, index) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (this.state.files.length > index) {\r\n this.state.files.splice(index, 1);\r\n this.setState({ files: this.state.files });\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const validImageTypes = ['image/gif', 'image/jpeg', 'image/png'];\r\n const fileUpload = !this.state.files.length && <DropZone.FileUpload />;\r\n const uploadedFiles = this.state.files.length > 0 && (\r\n <Stack vertical>\r\n {this.state.files.map((file, index) => (\r\n <Stack alignment=\"center\" key={index}>\r\n <Stack.Item>\r\n <Thumbnail\r\n size=\"small\"\r\n alt={file.name}\r\n source={\r\n validImageTypes.indexOf(file.type) > 0\r\n ? window.URL.createObjectURL(file)\r\n : 'https://cdn.shopify.com/s/files/1/0757/9955/files/New_Post.png?12678548500147524304'\r\n }\r\n />\r\n </Stack.Item>\r\n <Stack.Item fill>\r\n <div>\r\n <Stack>\r\n <Stack.Item fill>\r\n {file.name} <Caption>{(file.size / 1024).toFixed(2)} KB</Caption>\r\n </Stack.Item>\r\n <Stack.Item>\r\n <div className='drop-zone-delete'>\r\n <Button plain onClick={(e) => this.deleteFile(e, index)}>Delete</Button>\r\n </div>\r\n </Stack.Item>\r\n </Stack>\r\n </div>\r\n </Stack.Item>\r\n </Stack>\r\n ))}\r\n </Stack>\r\n );\r\n\r\n const toastMarkup = this.state.toastActive ? (\r\n <Toast onDismiss={this.toggleToastActive} content={this.state.toastMessage} />\r\n ) : null;\r\n\r\n return (\r\n this.state.loading ?\r\n <SkeletonPageCustom />\r\n :\r\n <Page title=\"Get Support\">\r\n <Form>\r\n <Layout>\r\n {/* <Layout.Section>\r\n <Banner\r\n title=\"Contact us\"\r\n status=\"info\"\r\n >\r\n <p>Send us a message and we'll get back to you asap</p>\r\n </Banner>\r\n </Layout.Section> */}\r\n <Layout.AnnotatedSection\r\n title=\"Your Info\"\r\n description=\"\"\r\n >\r\n <Card sectioned>\r\n <FormLayout>\r\n <TextField\r\n id=\"support_name\"\r\n value={this.state.model.name}\r\n onChange={(newValue) => this.handleChange('name', newValue)}\r\n label=\"Name\"\r\n error={this.state.error.name ? 'Name is required' : ''}\r\n onBlur={() => this.handleBlur('name')}\r\n />\r\n <TextField\r\n id=\"support_email\"\r\n type=\"email\"\r\n value={this.state.model.email}\r\n onChange={(newValue) => this.handleChange('email', newValue)}\r\n label=\"Email\"\r\n error={this.state.error.email ? 'Email is required' : (this.state.error.invalidEmail ? 'Email is not valid' : '')}\r\n onBlur={() => this.handleBlur('email')}\r\n />\r\n <Checkbox\r\n label=\"Send copy of the message to the email above as well\"\r\n checked={this.state.model.sendCopy}\r\n onChange={(newValue) => this.handleChange('sendCopy', newValue)}\r\n />\r\n <TextField\r\n id=\"support_storeUrl\"\r\n value={this.state.model.storeUrl}\r\n onChange={(newValue) => this.handleChange('storeUrl', newValue)}\r\n label=\"Store or other related URL(s)\"\r\n error={this.state.error.storeUrl ? 'This field is required' : ''}\r\n onBlur={() => this.handleBlur('storeUrl')}\r\n helpText=\"Paste links to any related pages here\"\r\n />\r\n <TextField\r\n value={this.state.model.storefrontPassword}\r\n onChange={(newValue) => this.handleChange('storefrontPassword', newValue)}\r\n label=\"Storefront Password\"\r\n helpText=\"If your storefront is password protected and cannot be accessed by public, please provide us the storefront password (not your Shopify admin password!)\"\r\n />\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.AnnotatedSection\r\n title=\"Your Message\"\r\n description=\"Use Attachments to send us any screenshots or screen recordings\"\r\n >\r\n <Card sectioned>\r\n <FormLayout>\r\n <TextField\r\n id=\"support_message\"\r\n value={this.state.model.message}\r\n onChange={(newValue) => this.handleChange('message', newValue)}\r\n label=\"Message\"\r\n multiline\r\n error={this.state.error.message ? 'Message is required' : ''}\r\n onBlur={() => this.handleBlur('message')}\r\n />\r\n <DropZone label=\"Attachments\" id=\"attachment\" onDrop={(files) => this.handleDropZoneDrop(files)}>\r\n {uploadedFiles}\r\n {fileUpload}\r\n </DropZone>\r\n {\r\n this.totalFileSize() <= this.state.maxFileSize ? '' :\r\n <InlineError message=\"Maximum size for all attachments is 19 MB\" />\r\n }\r\n\r\n </FormLayout>\r\n </Card>\r\n </Layout.AnnotatedSection>\r\n <Layout.Section>\r\n <PageActions primaryAction={{ content: 'Send', onAction: () => { this.saveChanges() } }} />\r\n </Layout.Section>\r\n </Layout>\r\n </Form>\r\n {toastMarkup}\r\n </Page>\r\n );\r\n }\r\n\r\n async populateData() {\r\n const response = await fetchApi('api/home/support');\r\n const data = await response.json();\r\n\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.props.setIsLoading(false);\r\n this.setState({ model: data, loading: false });\r\n }\r\n }\r\n\r\n async saveChanges() {\r\n\r\n if (!this.state.model.name) {\r\n this.handleBlur('name');\r\n $('#support_name').focus();\r\n return;\r\n }\r\n\r\n if (!this.state.model.email || !pattern.test(this.state.model.email)) {\r\n this.handleBlur('email');\r\n $('#support_email').focus();\r\n return;\r\n }\r\n\r\n if (!this.state.model.storeUrl) {\r\n this.handleBlur('storeUrl');\r\n $('#support_storeUrl').focus();\r\n return;\r\n }\r\n\r\n if (!this.state.model.message) {\r\n this.handleBlur('message');\r\n $('#support_message').focus();\r\n return;\r\n }\r\n\r\n if (this.totalFileSize() > this.state.maxFileSize) {\r\n return;\r\n }\r\n\r\n let formData = new FormData();\r\n formData.append('Name', this.state.model.name);\r\n formData.append('Email', this.state.model.email);\r\n formData.append('Message', this.state.model.message);\r\n formData.append('StoreUrl', this.state.model.storeUrl);\r\n formData.append('StorefrontPassword', this.state.model.storefrontPassword);\r\n formData.append('SendCopy', this.state.model.sendCopy);\r\n\r\n $.each(this.state.files, function (index, file) {\r\n formData.append('file' + index, file);\r\n });\r\n\r\n this.props.setIsLoading(true);\r\n const response = await fetchApi('api/home/sendSupport', { method: 'post', body: formData });\r\n const data = await response.json();\r\n this.props.setIsLoading(false);\r\n\r\n if (response.ok === true) {\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.setState({ toastMessage: data.message });\r\n this.toggleToastActive();\r\n }\r\n }\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Page, Layout, Banner, Card, Stack } from '@shopify/polaris';\r\nimport { SkeletonPageCustom } from './SkeletonPageCustom';\r\n\r\nexport class MoreApps extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n props.setIsLoading(true);\r\n this.state = { loading: true };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateData();\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n this.state.loading ?\r\n <SkeletonPageCustom />\r\n :\r\n <Page title=\"More Awesome Apps\">\r\n <Layout>\r\n <Layout.Section>\r\n <Banner\r\n title=\"Apps recommended just for you\"\r\n status=\"info\"\r\n >\r\n <p>More than 80% of Shopify stores that use Sticky Add To Cart BOOSTER PRO also use one of these apps to grow their business.</p>\r\n </Banner>\r\n </Layout.Section>\r\n <Layout.Section>\r\n <Card sectioned>\r\n <Stack distribution=\"fillEvenly\">\r\n <a href=\"https://apps.shopify.com/window-shoppers?ref=satcb\" target=\"_blank\" rel=\"noreferrer\" title=\"Go to SALES ROCKET | many apps in 1\" className=\"more-apps-link\">\r\n <div className=\"more-apps-container\">\r\n <div className=\"more-apps-icon-container\">\r\n <img srcSet=\"https://cdn.shopify.com/app-store/listing_images/61d4f60c0943274fa4104b9fb8aa42ab/icon/CJfelL30lu8CEAE=.png?height=144&width=144 2x, https://cdn.shopify.com/app-store/listing_images/61d4f60c0943274fa4104b9fb8aa42ab/icon/CJfelL30lu8CEAE=.png?height=72&width=72 1x\" height=\"72\" width=\"72\" alt=\"\" src=\"https://cdn.shopify.com/app-store/listing_images/61d4f60c0943274fa4104b9fb8aa42ab/icon/CJfelL30lu8CEAE=.png?height=72&width=72\" />\r\n </div>\r\n <h4 className=\"more-apps-name\">SALES ROCKET | 40+ apps in one app platform</h4>\r\n <div className=\"more-apps-context\">\r\n <div className=\"more-apps-pricing\">7-day free trial</div>\r\n </div>\r\n <p className=\"more-apps-details\">Sales Pop Notification, Conversion & Revenue Boosters, Upsells</p>\r\n <div className=\"more-apps-review\">\r\n <div className=\"more-apps-rating more-apps-rating-active\" data-rating=\"4\">\r\n <div className=\"more-apps-rating-icon-set\" aria-hidden=\"true\">\r\n <div className=\"more-apps-rating-icon\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\r\n <path d=\"M13,16c-0.2,0-0.4-0.1-0.6-0.2L8,12.5l-4.4,3.3c-0.4,0.3-0.8,0.3-1.2,0c-0.4-0.3-0.5-0.7-0.3-1.1l1.9-5.2L0.4,6.8 C0.1,6.5-0.1,6.1,0.1,5.7C0.2,5.3,0.6,5,1,5h4.5l1.5-4.3C7.2,0.3,7.6,0,8,0s0.8,0.3,0.9,0.7L10.5,5H15c0.4,0,0.8,0.3,0.9,0.7 c0.1,0.4,0,0.9-0.3,1.1l-3.5,2.6l1.9,5.2c0.1,0.4,0,0.9-0.3,1.1C13.4,15.9,13.2,16,13,16z\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n <div>\r\n <span>4.9</span>\r\n <span className=\"more-apps-review-count-summary\">(400+)</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n <a href=\"https://apps.shopify.com/preorderly?ref=satcb\" target=\"_blank\" rel=\"noreferrer\" title=\"Go to Pre‑order PRO | Pre‑orderly\" className=\"more-apps-link\">\r\n <div className=\"more-apps-container\">\r\n <div className=\"more-apps-icon-container\">\r\n <img srcSet=\"https://cdn.shopify.com/app-store/listing_images/f8c828a11729e6dbdb2c7a69524e6ae4/icon/CI2+6cP0lu8CEAE=.png?height=144&width=144 2x, https://cdn.shopify.com/app-store/listing_images/f8c828a11729e6dbdb2c7a69524e6ae4/icon/CI2+6cP0lu8CEAE=.png?height=72&width=72 1x\" height=\"72\" width=\"72\" alt=\"\" src=\"https://cdn.shopify.com/app-store/listing_images/f8c828a11729e6dbdb2c7a69524e6ae4/icon/CI2+6cP0lu8CEAE=.png?height=72&width=72\" />\r\n </div>\r\n <h4 className=\"more-apps-name\">Pre‑order PRO | Pre‑orderly</h4>\r\n <div className=\"more-apps-context\">\r\n <div className=\"more-apps-pricing\">7-day free trial</div>\r\n </div>\r\n <p className=\"more-apps-details\">Pre-orders Made Easy! Manage out of stock & Pre-order products</p>\r\n <div className=\"more-apps-review\">\r\n <div className=\"more-apps-rating more-apps-rating-active\" data-rating=\"4\">\r\n <div className=\"more-apps-rating-icon-set\" aria-hidden=\"true\">\r\n <div className=\"more-apps-rating-icon\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\r\n <path d=\"M13,16c-0.2,0-0.4-0.1-0.6-0.2L8,12.5l-4.4,3.3c-0.4,0.3-0.8,0.3-1.2,0c-0.4-0.3-0.5-0.7-0.3-1.1l1.9-5.2L0.4,6.8 C0.1,6.5-0.1,6.1,0.1,5.7C0.2,5.3,0.6,5,1,5h4.5l1.5-4.3C7.2,0.3,7.6,0,8,0s0.8,0.3,0.9,0.7L10.5,5H15c0.4,0,0.8,0.3,0.9,0.7 c0.1,0.4,0,0.9-0.3,1.1l-3.5,2.6l1.9,5.2c0.1,0.4,0,0.9-0.3,1.1C13.4,15.9,13.2,16,13,16z\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n <div>\r\n <span>4.7</span>\r\n <span className=\"more-apps-review-count-summary\">(100+)</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n <a href=\"https://apps.shopify.com/frequently-bought-together-one-click-upsell-cross-sell?ref=satcb\" target=\"_blank\" rel=\"noreferrer\" title=\"Go to Upsell & Cross Sell • Upselly\" className=\"more-apps-link\">\r\n <div className=\"more-apps-container\">\r\n <div className=\"more-apps-icon-container\">\r\n <img srcSet=\"https://cdn.shopify.com/app-store/listing_images/dbe5407b41b71e6887ec84165e65b153/icon/CNDes-bnvvgCEAE=.jpeg?height=144&width=144 2x, https://cdn.shopify.com/app-store/listing_images/dbe5407b41b71e6887ec84165e65b153/icon/CNDes-bnvvgCEAE=.jpeg?height=72&width=72 1x\" height=\"72\" width=\"72\" alt=\"\" src=\"https://cdn.shopify.com/app-store/listing_images/dbe5407b41b71e6887ec84165e65b153/icon/CNDes-bnvvgCEAE=.jpeg?height=72&width=72\" />\r\n </div>\r\n <h4 className=\"more-apps-name\">Upsell & Cross Sell • Upselly</h4>\r\n <div className=\"more-apps-context\">\r\n <div className=\"more-apps-pricing\">7-day free trial</div>\r\n </div>\r\n <p className=\"more-apps-details\">Frequently Bought Together 1-Click Upsell & Cross Sell!</p>\r\n <div className=\"more-apps-review\">\r\n <div className=\"more-apps-rating more-apps-rating-active\" data-rating=\"4\">\r\n <div className=\"more-apps-rating-icon-set\" aria-hidden=\"true\">\r\n <div className=\"more-apps-rating-icon\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\r\n <path d=\"M13,16c-0.2,0-0.4-0.1-0.6-0.2L8,12.5l-4.4,3.3c-0.4,0.3-0.8,0.3-1.2,0c-0.4-0.3-0.5-0.7-0.3-1.1l1.9-5.2L0.4,6.8 C0.1,6.5-0.1,6.1,0.1,5.7C0.2,5.3,0.6,5,1,5h4.5l1.5-4.3C7.2,0.3,7.6,0,8,0s0.8,0.3,0.9,0.7L10.5,5H15c0.4,0,0.8,0.3,0.9,0.7 c0.1,0.4,0,0.9-0.3,1.1l-3.5,2.6l1.9,5.2c0.1,0.4,0,0.9-0.3,1.1C13.4,15.9,13.2,16,13,16z\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n <div>\r\n <span>5.0</span>\r\n <span className=\"more-apps-review-count-summary\">(20+)</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n <a href=\"https://apps.shopify.com/affliate-by-secomapp?utm_source=stickyaddtocartboosterpro&utm_medium=banner&ref=satcb\" target=\"_blank\" rel=\"noreferrer\" title=\"UpPromote: Affiliate Marketing\" className=\"more-apps-link\">\r\n <div className=\"more-apps-container\">\r\n <div className=\"more-apps-icon-container\">\r\n <img height=\"72\" width=\"72\" alt=\"\" src=\"./images/UpPromote.png\" />\r\n </div>\r\n <h4 className=\"more-apps-name\">UpPromote: Affiliate Marketing</h4>\r\n <div className=\"more-apps-context\">\r\n <div className=\"more-apps-pricing\">14-day free trial</div>\r\n </div>\r\n <p className=\"more-apps-details\">Grow With Ambassador, Influencer, referral & Affiliate Program</p>\r\n <div className=\"more-apps-review\">\r\n <div className=\"more-apps-rating more-apps-rating-active\" data-rating=\"4\">\r\n <div className=\"more-apps-rating-icon-set\" aria-hidden=\"true\">\r\n <div class=\"more-apps-rating more-apps-rating-active\" data-rating=\"4\"><div class=\"more-apps-rating-icon-set\" aria-hidden=\"true\"><div class=\"more-apps-rating-icon\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path d=\"M13,16c-0.2,0-0.4-0.1-0.6-0.2L8,12.5l-4.4,3.3c-0.4,0.3-0.8,0.3-1.2,0c-0.4-0.3-0.5-0.7-0.3-1.1l1.9-5.2L0.4,6.8 C0.1,6.5-0.1,6.1,0.1,5.7C0.2,5.3,0.6,5,1,5h4.5l1.5-4.3C7.2,0.3,7.6,0,8,0s0.8,0.3,0.9,0.7L10.5,5H15c0.4,0,0.8,0.3,0.9,0.7 c0.1,0.4,0,0.9-0.3,1.1l-3.5,2.6l1.9,5.2c0.1,0.4,0,0.9-0.3,1.1C13.4,15.9,13.2,16,13,16z\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n <div>\r\n <span>5.0</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n <a href=\"https://apps.shopify.com/accessibilityspark?utm_source=stickyaddtocartboosterpro&utm_medium=banner&ref=satcb\" target=\"_blank\" rel=\"noreferrer\" title=\"Accessibility Spark Accessibility Spark ‑ ADA & WCAG 2.1\" className=\"more-apps-link\">\r\n <div className=\"more-apps-container\">\r\n <div className=\"more-apps-icon-container\">\r\n <img srcSet=\"https://cdn.shopify.com/app-store/listing_images/13220c451d632c726c5e239ce0e8130e/icon/CKnck4aQrPICEAE=.jpeg?height=120&quality=90&width=120 2x, https://cdn.shopify.com/app-store/listing_images/13220c451d632c726c5e239ce0e8130e/icon/CKnck4aQrPICEAE=.jpeg?height=72&quality=90&width=72\" height=\"72\" width=\"72\" alt=\"\" src=\"./images/Accessibilty-Spark Logo.png\" />\r\n </div>\r\n <h4 className=\"more-apps-name\">Accessibility Spark</h4>\r\n <div className=\"more-apps-context\">\r\n <div className=\"more-apps-pricing\">5-day free trial</div>\r\n </div>\r\n <p className=\"more-apps-details\">AI-Powered Web Accessibility for WCAG, EAA, & ADA Compliance</p>\r\n <div className=\"more-apps-review\">\r\n <div className=\"more-apps-rating more-apps-rating-active\" data-rating=\"4\">\r\n <div className=\"more-apps-rating-icon-set\" aria-hidden=\"true\">\r\n <div class=\"more-apps-rating more-apps-rating-active\" data-rating=\"4\"><div class=\"more-apps-rating-icon-set\" aria-hidden=\"true\"><div class=\"more-apps-rating-icon\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path d=\"M13,16c-0.2,0-0.4-0.1-0.6-0.2L8,12.5l-4.4,3.3c-0.4,0.3-0.8,0.3-1.2,0c-0.4-0.3-0.5-0.7-0.3-1.1l1.9-5.2L0.4,6.8 C0.1,6.5-0.1,6.1,0.1,5.7C0.2,5.3,0.6,5,1,5h4.5l1.5-4.3C7.2,0.3,7.6,0,8,0s0.8,0.3,0.9,0.7L10.5,5H15c0.4,0,0.8,0.3,0.9,0.7 c0.1,0.4,0,0.9-0.3,1.1l-3.5,2.6l1.9,5.2c0.1,0.4,0,0.9-0.3,1.1C13.4,15.9,13.2,16,13,16z\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n <div>\r\n <span>5.0</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n <a href=\"https://apps.shopify.com/rivyo-product-review?utm_source=in+app+dashboard&utm_medium=banner&utm_campaign=trackify+sticky+add+to+cart+booster+pro\" target=\"_blank\" rel=\"noreferrer\" title=\"Rivyo Product Reviews & QA\" className=\"more-apps-link\">\r\n <div className=\"more-apps-container\">\r\n <div className=\"more-apps-icon-container\">\r\n <img srcSet=\"https://cdn.shopify.com/app-store/listing_images/8ffc62c9384b2409ac15e49c6da0f804/icon/CLzk4Ln0lu8CEAE=.jpg?height=120&quality=90&width=72 2x, https://cdn.shopify.com/app-store/listing_images/8ffc62c9384b2409ac15e49c6da0f804/icon/CLzk4Ln0lu8CEAE=.jpg?height=60&quality=90&width=60 1x\" class=\"vc-app-listing-about-section__icon\" height=\"72\" width=\"72\" alt=\"Rivyo Product Reviews & QA\" src=\" https://cdn.shopify.com/app-store/listing_images/8ffc62c9384b2409ac15e49c6da0f804/icon/CLzk4Ln0lu8CEAE=.jpg?height=60&quality=90&width=60\" />\r\n </div>\r\n <h4 className=\"more-apps-name\">Rivyo Product Reviews & QA</h4>\r\n <div className=\"more-apps-context\">\r\n <div className=\"more-apps-pricing\">Free Plan Available</div>\r\n </div>\r\n <p className=\"more-apps-details\"> Product Reviews, Photos, Amazon/Aliexpress Reviews, Q&A, UGC</p>\r\n <div className=\"more-apps-review\">\r\n <div className=\"more-apps-rating more-apps-rating-active\" data-rating=\"5.0\">\r\n <div className=\"more-apps-rating-icon-set\" aria-hidden=\"true\">\r\n <div class=\"more-apps-rating more-apps-rating-active\" data-rating=\"4\"><div class=\"more-apps-rating-icon-set\" aria-hidden=\"true\"><div class=\"more-apps-rating-icon\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path d=\"M13,16c-0.2,0-0.4-0.1-0.6-0.2L8,12.5l-4.4,3.3c-0.4,0.3-0.8,0.3-1.2,0c-0.4-0.3-0.5-0.7-0.3-1.1l1.9-5.2L0.4,6.8 C0.1,6.5-0.1,6.1,0.1,5.7C0.2,5.3,0.6,5,1,5h4.5l1.5-4.3C7.2,0.3,7.6,0,8,0s0.8,0.3,0.9,0.7L10.5,5H15c0.4,0,0.8,0.3,0.9,0.7 c0.1,0.4,0,0.9-0.3,1.1l-3.5,2.6l1.9,5.2c0.1,0.4,0,0.9-0.3,1.1C13.4,15.9,13.2,16,13,16z\"></path>\r\n </svg>\r\n </div>\r\n </div>\r\n <div>\r\n <span>5.0</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n </Stack>\r\n </Card>\r\n </Layout.Section>\r\n </Layout>\r\n </Page >\r\n );\r\n }\r\n\r\n async populateData() {\r\n\r\n this.props.setIsLoading(false);\r\n this.setState({ loading: false });\r\n \r\n var topNavTimer = setInterval(function(){\r\n if(window.$('#top-nav-div').length > 0){\r\n window.$('#top-nav-div').sticky({ topSpacing: 13, zIndex: 200, isNav: true });\r\n \r\n }\r\n },500);\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Page, Layout, Banner } from '@shopify/polaris';\r\n\r\nexport class Error extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n props.setIsLoading(true);\r\n }\r\n\r\n componentDidMount() {\r\n this.props.setIsLoading(false);\r\n }\r\n\r\n render() {\r\n return (\r\n <Page title=\"Error\">\r\n <Layout>\r\n <Layout.Section>\r\n <Banner title=\"Ops something went wrong\" status=\"critical\">\r\n <p>This most likely means there is a server error on our side. Administrators are notified and are resolving this.</p>\r\n <p>Everything will be back to normal asap.</p>\r\n <p>Thank you for your understanding, patience and sorry for any inconvenience caused.</p>\r\n </Banner>\r\n </Layout.Section>\r\n </Layout>\r\n </Page>\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Layout, Card, SkeletonPage, TextContainer, SkeletonBodyText, SkeletonDisplayText } from '@shopify/polaris';\r\n\r\nexport class SkeletonPage2Custom extends Component {\r\n render() {\r\n return (\r\n <SkeletonPage>\r\n <Layout>\r\n <Layout.Section>\r\n <Card sectioned>\r\n <TextContainer>\r\n <SkeletonDisplayText size=\"small\" />\r\n <SkeletonBodyText lines={9} />\r\n </TextContainer>\r\n </Card>\r\n </Layout.Section>\r\n <Layout.Section secondary>\r\n <Card sectioned>\r\n <TextContainer>\r\n <SkeletonDisplayText size=\"small\" />\r\n <SkeletonBodyText lines={9} />\r\n </TextContainer>\r\n </Card>\r\n </Layout.Section>\r\n </Layout>\r\n </SkeletonPage>\r\n );\r\n }\r\n}\r\n","import React from 'react';\n\nvar _ref =\n/*#__PURE__*/\nReact.createElement(\"path\", {\n d: \"M8 12a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm9.707 4.293l-4.82-4.82A5.968 5.968 0 0 0 14 8 6 6 0 0 0 2 8a6 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\nvar SvgSearchMinor = function SvgSearchMinor(props) {\n return React.createElement(\"svg\", Object.assign({\n viewBox: \"0 0 20 20\"\n }, props), _ref);\n};\n\nexport { SvgSearchMinor as S };\n","import React, { Component } from 'react';\r\nimport { Page, PageActions, Layout, FormLayout, Card, Checkbox, TextField, Icon, Button, Modal, ResourceList, ResourceItem, TextStyle, Spinner, Thumbnail } from '@shopify/polaris';\r\nimport { SkeletonPage2Custom } from './SkeletonPage2Custom';\r\nimport { SearchMinor } from '@shopify/polaris-icons';\r\nimport { fetchApi } from './helpers/fetchApi';\r\n\r\nexport class UpsellBundle extends Component {\r\n\r\n constructor(props, ref) {\r\n super(props);\r\n props.setIsLoading(true);\r\n \r\n this.saveChanges = this.saveChanges.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.toggleModalProductsActive = this.toggleModalProductsActive.bind(this);\r\n this.selectProductsDone = this.selectProductsDone.bind(this);\r\n\r\n var idVar = window.location.pathname.replace('/upsell-bundle', '').replace('/', '');\r\n var id = 0;\r\n if (idVar) {\r\n id = parseFloat(idVar);\r\n }\r\n\r\n this.state = {\r\n initState: {}, model: { id: id, products: [] }, loading: true, modalProductsActive: false,\r\n productSearchTerm: '', productLoading: false, products: [], selectedProducts: []\r\n };\r\n \r\n }\r\n\r\n componentDidMount() {\r\n this.populateData();\r\n this.props.setSaveChanges(this.saveChanges);\r\n }\r\n\r\n handleChange(fieldName, newValue) {\r\n this.setState(prevState => {\r\n let model = Object.assign({}, prevState.model);\r\n model[fieldName] = newValue;\r\n this.props.setIsDirty(JSON.stringify(this.state.initState) !== JSON.stringify(model));\r\n return { model };\r\n });\r\n }\r\n\r\n toggleModalProductsActive() {\r\n this.setState({ modalProductsActive: !this.state.modalProductsActive });\r\n }\r\n\r\n browseProducts() {\r\n if (!this.state.modalProductsActive && !this.state.products.length && !this.state.productSearchTerm) {\r\n this.searchProducts('');\r\n }\r\n else {\r\n this.toggleModalProductsActive();\r\n }\r\n }\r\n\r\n selectProducts(newValue) {\r\n this.setState({ selectedProducts: newValue });\r\n }\r\n\r\n selectProductsDone() {\r\n var products = this.state.model.products;\r\n if (!products) {\r\n products = [];\r\n }\r\n\r\n var searchedProducts = this.state.products;\r\n var selectedProducts = this.state.selectedProducts;\r\n\r\n selectedProducts.forEach(function (id) {\r\n var items = products.filter((p) => p.id === id);\r\n if (!items.length) {\r\n var item = searchedProducts.filter((p) => p.id === id)[0];\r\n products.push({ id: item.id, title: item.title, thumbImageUrl: item.thumbImageUrl });\r\n }\r\n });\r\n\r\n products = products.filter((option) => selectedProducts.indexOf(option.id) !== -1);\r\n\r\n this.handleChange('products', products);\r\n this.toggleModalProductsActive();\r\n }\r\n\r\n removeProduct(id) {\r\n var products = this.state.model.products;\r\n var item = products.filter((p) => p.id === id)[0];\r\n products.splice(products.indexOf(item), 1);\r\n this.handleChange('products', products);\r\n }\r\n\r\n render() {\r\n let token = !window.navigate ? `token=${new URLSearchParams(window.location.search).get(\"token\")}` : \"\";\r\n\r\n\r\n const modalProducts = (\r\n <Modal\r\n open={this.state.modalProductsActive}\r\n onClose={this.toggleModalProductsActive}\r\n title=\"Products\"\r\n primaryAction={{\r\n content: 'Done',\r\n onAction: this.selectProductsDone\r\n }}\r\n secondaryActions={[\r\n {\r\n content: 'Cancel',\r\n onAction: this.toggleModalProductsActive,\r\n },\r\n ]}\r\n >\r\n <div className=\"product-modal-searchbox\">\r\n <TextField\r\n id=\"modalSearch\"\r\n value={this.state.productSearchTerm}\r\n placeholder=\"Search products\"\r\n prefix={<Icon source={SearchMinor} />}\r\n onChange={(newValue) => { this.setState({ productSearchTerm: newValue }); this.searchProducts(newValue); }}\r\n />\r\n </div>\r\n <div className=\"product-modal-list\">\r\n <div>\r\n {\r\n this.state.productLoading ?\r\n <div className=\"product-modal-spinner\">\r\n <Spinner accessibilityLabel=\"Spinner example\" size=\"large\" color=\"teal\" />\r\n </div>\r\n :\r\n <ResourceList\r\n items={this.state.products}\r\n renderItem={(item) => {\r\n const { id, title, thumbImageUrl } = item;\r\n return (\r\n <ResourceItem\r\n id={id}\r\n name={title}\r\n media={<Thumbnail source={thumbImageUrl} size=\"small\" alt={title} />}\r\n >\r\n <h3><TextStyle>{title}</TextStyle></h3>\r\n </ResourceItem>\r\n );\r\n }}\r\n selectedItems={this.state.selectedProducts}\r\n onSelectionChange={(newValue) => this.selectProducts(newValue)}\r\n selectable={true}\r\n showHeader={false}\r\n />\r\n }\r\n </div>\r\n </div>\r\n </Modal>\r\n );\r\n\r\n return (\r\n this.state.loading ?\r\n <SkeletonPage2Custom />\r\n :\r\n <Page title={this.state.model.id > 0 ? this.state.model.name : 'Add bundle'} breadcrumbs={[{ content: 'Cart Slider', url: '/cart-slider#custom-bundles' + token }]}>\r\n <Layout>\r\n <Layout.Section>\r\n <Card sectioned>\r\n <FormLayout>\r\n <Checkbox\r\n label=\"Enabled\"\r\n checked={this.state.model.enabled}\r\n onChange={(newValue) => this.handleChange('enabled', newValue)}\r\n />\r\n <TextField\r\n value={this.state.model.name}\r\n onChange={(newValue) => this.handleChange('name', newValue)}\r\n label=\"Name\"\r\n helpText=\"This is the private name of this Custom Recommendation, only you can see it.\"\r\n />\r\n <TextField\r\n value={this.state.productSearchTerm}\r\n label=\"Select products to include in this bundle (minimum 2 products)\"\r\n placeholder=\"Search products\"\r\n helpText=\"When any of the above selected products are in cart, other products from this Custom Recommendation will show in the In Cart Upsell widget as recommendations. For this Custom Recommendation to work add at least 2 products.\"\r\n prefix={<Icon source={SearchMinor} />}\r\n connectedRight={<Button onClick={(newValue) => this.browseProducts()}>Browse</Button>}\r\n onChange={(newValue) => { this.setState({ productSearchTerm: newValue }); this.searchProducts(newValue); }}\r\n />\r\n <ResourceList\r\n items={this.state.model.products ? this.state.model.products : []}\r\n renderItem={(item) => {\r\n const { id, title, thumbImageUrl } = item;\r\n return (\r\n <ResourceItem\r\n id={id}\r\n name={title}\r\n media={<Thumbnail source={thumbImageUrl} size=\"small\" alt={title} />}\r\n shortcutActions={[\r\n {\r\n content: 'Remove',\r\n accessibilityLabel: `Delete ${title}`,\r\n onAction: () => { this.removeProduct(id) }\r\n },\r\n ]}\r\n persistActions\r\n >\r\n <h3><TextStyle>{title}</TextStyle></h3>\r\n </ResourceItem>\r\n );\r\n }}\r\n />\r\n </FormLayout>\r\n </Card>\r\n </Layout.Section>\r\n <Layout.Section secondary>\r\n <Card sectioned>\r\n <FormLayout>\r\n <TextField\r\n value={this.state.model.buttonText}\r\n onChange={(newValue) => this.handleChange('buttonText', newValue)}\r\n label=\"Button Text\"\r\n helpText=\"The text of the Add To Cart button.\"\r\n />\r\n <TextField\r\n value={this.state.model.titleBeforeText}\r\n onChange={(newValue) => this.handleChange('titleBeforeText', newValue)}\r\n label=\"Text Before Product Name\"\r\n />\r\n <TextField\r\n value={this.state.model.titleAfterText}\r\n onChange={(newValue) => this.handleChange('titleAfterText', newValue)}\r\n label=\"Text After Product Name\"\r\n />\r\n <TextField\r\n value={this.state.model.overwriteProductName}\r\n onChange={(newValue) => this.handleChange('overwriteProductName', newValue)}\r\n label=\"Overwrite Product Name\"\r\n />\r\n </FormLayout>\r\n </Card>\r\n </Layout.Section>\r\n <Layout.Section>\r\n <PageActions primaryAction={{ content: 'Save', onAction: () => { this.saveChanges() } }} />\r\n </Layout.Section>\r\n </Layout>\r\n {modalProducts}\r\n </Page >\r\n );\r\n }\r\n\r\n async populateData() {\r\n \r\n let response = await fetchApi('api/home/upsellBundle?id=' + this.state.model.id);\r\n if (this.props.passbundleId) {\r\n response = await fetchApi('api/home/upsellBundle?id=' + this.props.passbundleId);\r\n }\r\n const data = await response.json();\r\n\r\n \r\n \r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.props.setIsLoading(false);\r\n this.setState({ initState: JSON.parse(JSON.stringify(data)), model: data, loading: false });\r\n if (data.products && data.products.length) {\r\n var ids = data.products.map(x => x.id);\r\n this.setState({ selectedProducts: ids });\r\n }\r\n }\r\n }\r\n\r\n async searchProducts(term) {\r\n if (!this.state.modalProductsActive) {\r\n this.toggleModalProductsActive();\r\n setTimeout(function () {\r\n window.$('#modalSearch').focus();\r\n }, 500);\r\n }\r\n\r\n this.setState({ productLoading: true });\r\n const response = await fetchApi('api/home/searchProducts?term=' + term);\r\n const data = await response.json();\r\n\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.setState({ products: data, productLoading: false });\r\n }\r\n }\r\n\r\n async saveChanges() {\r\n this.props.setIsLoading(true);\r\n const response = await fetchApi('api/home/saveUpsellBundle', { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(this.state.model) });\r\n const data = await response.json();\r\n this.props.setIsLoading(false);\r\n\r\n if (response.ok === true) {\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n\r\n this.handleChange('id', data.id);\r\n this.setState({ initState: JSON.parse(JSON.stringify(this.state.model)) });\r\n this.props.setIsDirty(false);\r\n this.props.setToastActive(true);\r\n }\r\n }\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Page, Layout, Banner, Card, FormLayout, TextField, Button, Stack } from '@shopify/polaris';\r\nimport { SkeletonPageCustom } from './SkeletonPageCustom';\r\n\r\nexport class UnpaidDashboard extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n props.setIsLoading(true);\r\n this.state = { loading: true, errorMessage: '', shopName: '', code: '', shopNameError: '', url: window.location.search };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateData();\r\n }\r\n\r\n render() {\r\n const errorMessage = this.state.errorMessage ? (\r\n <p>{this.state.errorMessage}</p>\r\n ) : null;\r\n return (\r\n this.state.loading ?\r\n <SkeletonPageCustom />\r\n :\r\n <Page>\r\n <Layout>\r\n <Layout.Section>\r\n <Banner\r\n title=\"REQUIRED: Pick your Plan\"\r\n status=\"warning\"\r\n action={{\r\n content: 'Activate your plan', onAction: () => {\r\n const params = new URLSearchParams(this.state.url);\r\n const shop = params.get(\"shop\");\r\n const host = params.get(\"host\");\r\n window.appBridgeRedirect('https://stickyaddtocartbar.azurewebsites.net/Account/ActivatePlan?shop=' + shop + '&host=' + host);\r\n }\r\n }}\r\n >\r\n <p> Your free trial has expired. To enjoy all of Sticky Add To Cart Bar Booster Pro's features, get a plan today. </p>\r\n </Banner>\r\n </Layout.Section>\r\n </Layout>\r\n </Page>\r\n );\r\n }\r\n\r\n async populateData() {\r\n const urlSearchParams = new URLSearchParams(window.location.search);\r\n const params = Object.fromEntries(urlSearchParams.entries());\r\n if(typeof(params.redirect) !== undefined && params.redirect){\r\n this.setState({common: {username:''}});\r\n this.setState({url:params.redirect})\r\n }\r\n \r\n // const response = await fetch('account/GetRechargeSubscriptionLink');\r\n // const data = await response.json();\r\n // console.log('recharge link:',data);\r\n this.props.setIsLoading(false);\r\n this.setState({ loading: false });\r\n }\r\n\r\n \r\n}","import { useMemo, useState } from \"react\";\r\nimport { useLocation, useNavigate } from \"react-router-dom\";\r\nimport { Provider } from \"@shopify/app-bridge-react\";\r\nimport { Banner, Layout, Page } from \"@shopify/polaris\";\r\n\r\n/**\r\n * A component to configure App Bridge.\r\n * @desc A thin wrapper around AppBridgeProvider that provides the following capabilities:\r\n *\r\n * 1. Ensures that navigating inside the app updates the host URL.\r\n * 2. Configures the App Bridge Provider, which unlocks functionality provided by the host.\r\n *\r\n * See: https://shopify.dev/apps/tools/app-bridge/react-components\r\n */\r\nexport function AppBridgeProvider({ children }) {\r\n const SHOPIFY_API_KEY = process.env.SHOPIFY_API_KEY || '7f74f91351c757f966b42f4382e29dbb';\r\n const location = useLocation();\r\n const navigate = useNavigate();\r\n const history = useMemo(\r\n () => ({\r\n replace: (path) => {\r\n navigate(path, { replace: true });\r\n },\r\n }),\r\n [navigate]\r\n );\r\n window.navigate = navigate;\r\n const routerConfig = useMemo(\r\n () => ({ history, location }),\r\n [history, location]\r\n );\r\n\r\n // The host may be present initially, but later removed by navigation.\r\n // By caching this in state, we ensure that the host is never lost.\r\n // During the lifecycle of an app, these values should never be updated anyway.\r\n // Using state in this way is preferable to useMemo.\r\n // See: https://stackoverflow.com/questions/60482318/version-of-usememo-for-caching-a-value-that-will-never-change\r\n const [appBridgeConfig] = useState(() => {\r\n \r\n let host =\r\n new URLSearchParams(location.search).get(\"host\") ||\r\n window.__SHOPIFY_DEV_HOST;\r\n window.__SHOPIFY_DEV_HOST = host;\r\n return {\r\n host,\r\n apiKey: SHOPIFY_API_KEY,\r\n forceRedirect: true,\r\n };\r\n });\r\n\r\n if (!SHOPIFY_API_KEY || !appBridgeConfig.host) {\r\n let shop = new URLSearchParams(location.search).get(\"shop\");\r\n if(shop){\r\n window.location.href = \"https://\" + shop + \"/admin/apps/sticky-add-to-cart-bar\";\r\n }\r\n const bannerProps = !SHOPIFY_API_KEY\r\n ? {\r\n title: \"Missing Shopify API Key\",\r\n children: (\r\n <>\r\n Your app is running without the SHOPIFY_API_KEY environment\r\n variable. Please ensure that it is set when running or building\r\n your React app.\r\n </>\r\n ),\r\n }\r\n : {\r\n title: \"Missing host query argument\",\r\n children: (\r\n <>\r\n Your app can only load if the URL has a <b>host</b> argument.\r\n Please ensure that it is set, or access your app using the\r\n Partners Dashboard <b>Test your app</b> feature\r\n </>\r\n ),\r\n };\r\n\r\n return (\r\n <Page narrowWidth>\r\n <Layout>\r\n <Layout.Section>\r\n <div style={{ marginTop: \"100px\" }}>\r\n <Banner {...bannerProps} status=\"critical\" />\r\n </div>\r\n </Layout.Section>\r\n </Layout>\r\n </Page>\r\n );\r\n }\r\n\r\n return (\r\n <Provider config={appBridgeConfig} router={routerConfig}>\r\n {children}\r\n </Provider>\r\n );\r\n}\r\n","import { authenticatedFetch } from \"@shopify/app-bridge-utils\";\r\nimport { useAppBridge } from \"@shopify/app-bridge-react\";\r\nimport { Redirect } from \"@shopify/app-bridge/actions\";\r\n\r\n/**\r\n * A hook that returns an auth-aware fetch function.\r\n * @desc The returned fetch function that matches the browser's fetch API\r\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\r\n * It will provide the following functionality:\r\n *\r\n * 1. Add a `X-Shopify-Access-Token` header to the request.\r\n * 2. Check response for `X-Shopify-API-Request-Failure-Reauthorize` header.\r\n * 3. Redirect the user to the reauthorization URL if the header is present.\r\n *\r\n * @returns {Function} fetch function\r\n */\r\nexport function useAuthenticatedFetch() {\r\n const app = useAppBridge();\r\n const fetchFunction = authenticatedFetch(app);\r\n const redirect = Redirect.create(app);\r\n window.appBridgeRedirect = (url) => redirect.dispatch( Redirect.Action.REMOTE, decodeURIComponent(url));\r\n window.appBridgeRedirectExternal = (u) => redirect.dispatch(Redirect.Action.REMOTE, { url: u, newContext: true });\r\n\r\n\r\n return async (uri, options) => {\r\n const response = await fetchFunction(uri, options);\r\n checkHeadersForReauthorization(response.headers, app);\r\n return response;\r\n };\r\n}\r\n\r\nfunction checkHeadersForReauthorization(headers, app) {\r\n if (headers.get(\"X-Shopify-API-Request-Failure-Reauthorize\") === \"1\") {\r\n const authUrlHeader =\r\n headers.get(\"X-Shopify-API-Request-Failure-Reauthorize-Url\") ||\r\n `/api/auth`;\r\n\r\n const redirect = Redirect.create(app);\r\n redirect.dispatch(\r\n Redirect.Action.REMOTE,\r\n authUrlHeader.startsWith(\"/\")\r\n ? `https://${window.location.host}${authUrlHeader}`\r\n : authUrlHeader\r\n );\r\n }\r\n}\r\n","import {\r\n QueryClient,\r\n QueryClientProvider,\r\n QueryCache,\r\n MutationCache,\r\n} from \"react-query\";\r\nimport { useAuthenticatedFetch } from \"../../hooks/useAuthenticatedFetch\";\r\n\r\n\r\n/**\r\n * Sets up the QueryClientProvider from react-query.\r\n * @desc See: https://react-query.tanstack.com/reference/QueryClientProvider#_top\r\n */\r\nexport function QueryProvider({ children }) {\r\n const client = new QueryClient({\r\n queryCache: new QueryCache(),\r\n mutationCache: new MutationCache(),\r\n });\r\n\r\n window.authenticatedFetch = useAuthenticatedFetch();\r\n return <QueryClientProvider client={client}>{children}</QueryClientProvider>;\r\n}\r\n","import './custom.css'\r\n\r\nimport React, { Component } from 'react';\r\nimport { ContextualSaveBar, Icon, Frame, Loading, Modal, Navigation, TextContainer, Toast, TopBar, AppProvider } from '@shopify/polaris';\r\nimport {\r\n StarFilledMinor, SettingsMajor, CodeMajor, CartDownMajor, BuyButtonMajor, CartMajor, BuyButtonButtonLayoutMajor,\r\n AnalyticsMajor, QuestionMarkMajor, FavoriteMajor, AppsMajor, LogOutMinor, ViewMajor, ImportStoreMajor, InventoryMajor, SidebarRightMajor\r\n} from '@shopify/polaris-icons';\r\n\r\nimport en from '@shopify/polaris/locales/en.json';\r\nimport { Link } from 'react-router-dom';\r\n\r\n// import { Route } from 'react-router';\r\nimport { Prompt, withRouter } from 'react-router-dom';\r\n\r\nimport { Dashboard } from './components/Dashboard';\r\nimport { StickyAddToCartBar } from './components/StickyAddToCartBar';\r\nimport { StickyCheckoutBar } from './components/StickyCheckoutBar';\r\nimport { StickyCart } from './components/StickyCart';\r\nimport { QuickBuyButton } from './components/QuickBuyButton';\r\nimport { QuickView } from './components/QuickView';\r\nimport { CartSlider } from './components/CartSlider';\r\nimport { Advanced } from './components/Advanced';\r\nimport { Analytics } from './components/Analytics';\r\nimport { Login } from './components/Login';\r\nimport { Support } from './components/Support';\r\nimport { MoreApps } from './components/MoreApps';\r\nimport { Error } from './components/Error';\r\nimport { UpsellBundle } from './components/UpsellBundle';\r\nimport { UnpaidDashboard } from './components/UnpaidDashboard';\r\n\r\nimport { BrowserRouter } from \"react-router-dom\";\r\nimport { NavigationMenu } from \"@shopify/app-bridge-react\";\r\n// import Routes from \"./Routes\";\r\nimport { Routes, Route } from \"react-router-dom\";\r\nimport { useCallback } from \"react\";\r\nimport { useNavigate } from \"@shopify/app-bridge-react\";\r\n// import { AuthInterceptor } from './AuthInterceptor';\r\n\r\n// import \"@shopify/polaris/build/esm/styles.css\";\r\n\r\nimport {\r\n AppBridgeProvider,\r\n QueryProvider,\r\n PolarisProvider,\r\n} from \"./components/providers\";\r\n\r\nimport { fetchApi } from './components/helpers/fetchApi';\r\n\r\n\r\n\r\n\r\nclass App extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.setIsLoading = this.setIsLoading.bind(this);\r\n this.setToastActive = this.setToastActive.bind(this);\r\n this.setIsDirty = this.setIsDirty.bind(this);\r\n this.navigate = this.navigate.bind(this);\r\n this.toggleMobileNavigationActive = this.toggleMobileNavigationActive.bind(this);\r\n this.toggleUserMenuActive = this.toggleUserMenuActive.bind(this);\r\n this.toggleToastActive = this.toggleToastActive.bind(this);\r\n this.toggleModalLeaveActive = this.toggleModalLeaveActive.bind(this);\r\n this.toggleModalReviewActive = this.toggleModalReviewActive.bind(this);\r\n this.toggleModalPermissionsActive = this.toggleModalPermissionsActive.bind(this);\r\n this.handleDiscard = this.handleDiscard.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.handleModalLeave = this.handleModalLeave.bind(this);\r\n this.handleLeaveNavigation = this.handleLeaveNavigation.bind(this);\r\n this.handleReviewOuch = this.handleReviewOuch.bind(this);\r\n this.handleModalPermissions = this.handleModalPermissions.bind(this);\r\n this.handleLogOut = this.handleLogOut.bind(this);\r\n this.logOut = this.logOut.bind(this);\r\n this.doOnboardingStep = this.doOnboardingStep.bind(this);\r\n this.reInstall = this.reInstall.bind(this);\r\n\r\n this.state = {\r\n isLoading: false,\r\n isDirty: false,\r\n bundleId: null,\r\n mobileNavigationActive: false,\r\n userMenuActive: false,\r\n toastActive: false,\r\n modalLeaveActive: false,\r\n modalReviewActive: false,\r\n modalReviewOuch: false,\r\n modalPermissionsActive: false,\r\n modalPermissionsGrantAccess: false,\r\n nextLocation: '',\r\n common: {}\r\n };\r\n \r\n window.addEventListener('load', (event) => { \r\n if(window.innerWidth>767) \r\n { \r\n var refreshId = setInterval(function() {\r\n var isLoaded= false;\r\n\r\n if(document.getElementsByClassName('Polaris-Navigation').length>0){\r\n document.getElementsByClassName('Polaris-Navigation')[0].classList.remove('Polaris-Navigation');\r\n isLoaded=true;\r\n }\r\n if(document.getElementsByClassName('Polaris-Frame__Navigation').length>0){\r\n document.getElementsByClassName('Polaris-Frame__Navigation')[0].classList.remove('Polaris-Frame__Navigation');\r\n }\r\n if(document.getElementsByClassName('Polaris-Navigation__PrimaryNavigation').length>0){\r\n document.getElementsByClassName('Polaris-Navigation__PrimaryNavigation')[0].classList.remove('Polaris-Navigation__PrimaryNavigation');\r\n }\r\n if(document.getElementsByClassName('Polaris-Scrollable').length>0){\r\n document.getElementsByClassName('Polaris-Scrollable')[0].classList.remove('Polaris-Scrollable');\r\n }\r\n if(document.getElementsByClassName('Polaris-Scrollable--vertical').length>0){\r\n document.getElementsByClassName('Polaris-Scrollable--vertical')[0].classList.remove('Polaris-Scrollable--vertical');\r\n }\r\n if(document.getElementsByClassName('Polaris-Scrollable--horizontal').length>0){\r\n document.getElementsByClassName('Polaris-Scrollable--horizontal')[0].id = 'top-nav-div';\r\n document.getElementsByClassName('Polaris-Scrollable--horizontal')[0].classList.add('top-nav-div');\r\n document.getElementsByClassName('Polaris-Scrollable--horizontal')[0].classList.remove('Polaris-Scrollable--horizontal');\r\n }\r\n if(document.getElementsByClassName('Polaris-Navigation__Section').length>0){\r\n document.getElementsByClassName('Polaris-Navigation__Section')[0].classList.remove('Polaris-Navigation__Section');\r\n }\r\n if(document.getElementsByClassName('Polaris-Navigation__Section--withSeparator').length>0){\r\n document.getElementsByClassName('Polaris-Navigation__Section--withSeparator')[0].classList.add('top-nav-ul');\r\n console.log(document.getElementsByClassName('Polaris-Navigation__Section--withSeparator')[0].classList);\r\n document.getElementsByClassName('Polaris-Navigation__Section--withSeparator')[0].classList.remove('Polaris-Navigation__Section--withSeparator');\r\n }\r\n \r\n if(isLoaded)\r\n { \r\n clearInterval(refreshId);\r\n if(document.getElementsByClassName('Polaris-Navigation').length>0){\r\n document.getElementsByClassName(\"Polaris-Navigation\")[0].style.display = \"flex\";\r\n }\r\n }\r\n }, 500); \r\n }\r\n });\r\n \r\n }\r\n\r\n \r\n componentDidMount() {\r\n \r\n if(window.location.search && window.location.search.indexOf(\"redirectUri=\")!=-1){\r\n const params = new URLSearchParams(window.location.search);\r\n const redirectUri = params.get(\"redirectUri\");\r\n const url = new URL(decodeURIComponent(redirectUri));\r\n window.appBridgeRedirect(url);\r\n }else{\r\n this.populateData();\r\n }\r\n }\r\n\r\n getBundleId = (id) => {\r\n \r\n this.setState({ bundleId: id })\r\n \r\n }\r\n componentDidUpdate(prevProps) {\r\n if (this.props.location !== prevProps.location && !this.state.common.adminEnabled) {\r\n window.Intercom(\"update\");\r\n }\r\n }\r\n\r\n setIsLoading(isLoading) {\r\n this.setState({ isLoading: isLoading });\r\n }\r\n\r\n setToastActive(toastActive) {\r\n this.setState({ toastActive: toastActive });\r\n }\r\n\r\n setIsDirty(isDirty) {\r\n this.setState({ isDirty: isDirty });\r\n if (isDirty) {\r\n window.onbeforeunload = () => true\r\n } else {\r\n window.onbeforeunload = undefined\r\n }\r\n }\r\n\r\n saveChanges() { }\r\n\r\n nextOnboardingStep() { }\r\n\r\n navigate(location) {\r\n if (!window.navigate) // for non-embedded app\r\n window.location.href = location;\r\n\r\n \r\n if (!this.state.common.adminEnabled) {\r\n window.Intercom(\"update\");\r\n }\r\n \r\n var history = this.props.history;\r\n var shopQueryString = this.state.common.shopQueryString;\r\n setTimeout(function () {\r\n //window.location.href = location + (shopQueryString ? shopQueryString : '');\r\n //history.push(location + (shopQueryString ? shopQueryString : ''));\r\n window.navigate(location + (shopQueryString ? shopQueryString : '') + window.location.search);\r\n }, 0);\r\n }\r\n\r\n toggleMobileNavigationActive() {\r\n this.setState({ mobileNavigationActive: !this.state.mobileNavigationActive });\r\n }\r\n\r\n toggleUserMenuActive() {\r\n this.setState({ userMenuActive: !this.state.userMenuActive });\r\n }\r\n\r\n toggleToastActive() {\r\n this.setState({ toastActive: !this.state.toastActive });\r\n }\r\n\r\n toggleModalLeaveActive() {\r\n this.setState({ modalLeaveActive: !this.state.modalLeaveActive });\r\n }\r\n\r\n toggleModalReviewActive() {\r\n this.setState({ modalReviewActive: !this.state.modalReviewActive, modalReviewOuch: false });\r\n }\r\n\r\n toggleModalPermissionsActive() {\r\n this.setState({ modalPermissionsActive: !this.state.modalPermissionsActive });\r\n }\r\n\r\n handleDiscard() {\r\n this.setIsDirty(false);\r\n }\r\n\r\n handleSave() {\r\n this.saveChanges();\r\n }\r\n\r\n handleModalLeave() {\r\n this.toggleModalLeaveActive();\r\n this.setIsDirty(false);\r\n this.navigate(this.state.nextLocation);\r\n }\r\n\r\n handleLeaveNavigation = (nextLocation) => {\r\n if (window.location.pathname === nextLocation.pathname) {\r\n return true;\r\n }\r\n else {\r\n this.setState({ nextLocation: nextLocation.pathname });\r\n this.toggleModalLeaveActive();\r\n return false;\r\n }\r\n }\r\n\r\n handleRate(value) {\r\n this.doOnboardingStep(3);\r\n\r\n if (value <= 4) {\r\n this.setState({ modalReviewOuch: true });\r\n }\r\n else {\r\n window.open('https://apps.shopify.com/sticky-add-to-cart-bar?#modal-show=ReviewListingModal', '_blank');\r\n this.toggleModalReviewActive();\r\n }\r\n }\r\n\r\n handleReviewOuch() {\r\n this.toggleModalReviewActive();\r\n this.navigate('support');\r\n }\r\n\r\n handleLogOut() {\r\n this.logOut();\r\n }\r\n \r\n handleModalPermissions() {\r\n this.setState({ modalPermissionsGrantAccess: true });\r\n this.reInstall();\r\n }\r\n\r\n render() {\r\n let token = !window.navigate ? `&token=${new URLSearchParams(window.location.search).get(\"token\")}` : \"\";\r\n\r\n let logout = {\r\n items: [\r\n { content: 'Log out', icon: LogOutMinor, onAction: this.handleLogOut }\r\n ],\r\n };\r\n \r\n const userMenuActions = [\r\n {\r\n items: [\r\n { content: 'Open Storefront', icon: ImportStoreMajor, onAction: () => { window.open(this.state.common.storefrontUrl, '_blank'); } },\r\n { content: 'Open Shopify Admin', icon: InventoryMajor, onAction: () => { window.open(this.state.common.shopifyAdminUrl, '_blank'); } }\r\n ]\r\n },\r\n ];\r\n let discount = \"\"; \r\n if(window.location.search && window.location.search.indexOf(\"discount=\")!==-1){\r\n const params = new URLSearchParams(window.location.search);\r\n discount = params.get(\"discount\");\r\n }\r\n if (process.env.REACT_APP_HIDE_LOG_OUT !== \"true\") {\r\n userMenuActions.push(logout);\r\n }\r\n\r\n \r\n const userMenuMarkup = this.state.common.userName ? (\r\n <TopBar.UserMenu\r\n actions={userMenuActions}\r\n name={this.state.common.userName}\r\n detail={this.state.common.shopName}\r\n initials={this.state.common.userNameInitials}\r\n open={this.state.userMenuActive}\r\n onToggle={this.toggleUserMenuActive}\r\n />\r\n ) : null;\r\n\r\n const topBarMarkup = (\r\n <TopBar\r\n showNavigationToggle\r\n userMenu={userMenuMarkup}\r\n onNavigationToggle={this.toggleMobileNavigationActive}\r\n />\r\n );\r\n\r\n let navItemsArr = [];\r\n\r\n if (process.env.REACT_APP_HIDE_LOG_OUT !== \"true\") {\r\n navItemsArr.push({\r\n url: '/' + this.state.common.shopQueryString + token,\r\n label: 'Dashboard',\r\n icon: SettingsMajor,\r\n exactMatch: true,\r\n onClick: () => {\r\n if (this.state.mobileNavigationActive) { this.toggleMobileNavigationActive(); }\r\n }\r\n });\r\n }\r\n\r\n navItemsArr = [...navItemsArr,\r\n {\r\n url: '/sticky-add-to-cart-bar' + this.state.common.shopQueryString + token,\r\n label: 'Sticky Add To Cart Bar',\r\n icon: BuyButtonMajor,\r\n onClick: () => {\r\n if (this.state.mobileNavigationActive) { this.toggleMobileNavigationActive(); }\r\n }\r\n },\r\n {\r\n url: '/sticky-cart' + this.state.common.shopQueryString + token,\r\n label: 'Sticky Cart',\r\n icon: CartMajor,\r\n onClick: () => {\r\n if (this.state.mobileNavigationActive) { this.toggleMobileNavigationActive(); }\r\n }\r\n },\r\n {\r\n url: '/quick-buy-button' + this.state.common.shopQueryString + token,\r\n label: 'Quick Buy Button',\r\n icon: CartDownMajor,\r\n onClick: () => {\r\n if (this.state.mobileNavigationActive) { this.toggleMobileNavigationActive(); }\r\n }\r\n },\r\n {\r\n url: '/quick-view' + this.state.common.shopQueryString + token,\r\n label: 'Quick View',\r\n icon: ViewMajor,\r\n onClick: () => {\r\n if (this.state.mobileNavigationActive) { this.toggleMobileNavigationActive(); }\r\n }\r\n },\r\n {\r\n url: '/sticky-checkout-bar' + this.state.common.shopQueryString + token,\r\n label: 'Sticky Checkout Bar',\r\n icon: BuyButtonButtonLayoutMajor,\r\n onClick: () => {\r\n if (this.state.mobileNavigationActive) { this.toggleMobileNavigationActive(); }\r\n }\r\n },\r\n {\r\n url: '/cart-slider' + this.state.common.shopQueryString + token,\r\n label: 'Cart Slider',\r\n icon: SidebarRightMajor,\r\n onClick: () => {\r\n if (this.state.mobileNavigationActive) { this.toggleMobileNavigationActive(); }\r\n }\r\n },\r\n // {\r\n // url: '/analytics' + this.state.common.shopQueryString + token,\r\n // label: 'Analytics',\r\n // icon: AnalyticsMajor,\r\n // onClick: () => {\r\n // if (this.state.mobileNavigationActive) { this.toggleMobileNavigationActive(); }\r\n // }\r\n // },\r\n ];\r\n if (process.env.REACT_APP_HIDE_LOG_OUT !== \"true\") {\r\n navItemsArr.push({\r\n url: '/advanced' + this.state.common.shopQueryString + token,\r\n label: 'Advanced',\r\n icon: CodeMajor,\r\n onClick: () => {\r\n if (this.state.mobileNavigationActive) { this.toggleMobileNavigationActive(); }\r\n }\r\n });\r\n }\r\n let navigationMarkup = this.state.common.userName ? (\r\n <Navigation location={window.location.pathname} >\r\n <Navigation.Section\r\n separator\r\n title=\"\"\r\n items={navItemsArr}\r\n />\r\n <Navigation.Section\r\n items={[\r\n //{\r\n // url: '/support' + this.state.common.shopQueryString + token,\r\n // label: 'Get Support',\r\n // icon: QuestionMarkMajor,\r\n // onClick: () => {\r\n // if (this.state.mobileNavigationActive) { this.toggleMobileNavigationActive(); }\r\n // }\r\n //},\r\n //{\r\n // label: 'Write a Review',\r\n // icon: FavoriteMajor,\r\n // onClick: () => {\r\n // //this.toggleModalReviewActive();\r\n // window.open('https://apps.shopify.com/sticky-add-to-cart-bar?#modal-show=ReviewListingModal', '_blank');\r\n // if (this.state.mobileNavigationActive) { this.toggleMobileNavigationActive(); }\r\n // }\r\n //},\r\n // {\r\n // url: '/more-apps' + this.state.common.shopQueryString + token,\r\n // label: 'More Awesome Apps',\r\n // icon: AppsMajor,\r\n // onClick: () => {\r\n // if (this.state.mobileNavigationActive) { this.toggleMobileNavigationActive(); }\r\n // }\r\n // },\r\n ]}\r\n separator\r\n />\r\n <Navigation.Section \r\n items={[\r\n // {\r\n // label: 'Open Storefront',\r\n // icon: ImportStoreMajor,\r\n // onClick: () => {\r\n // window.open(this.state.common.storefrontUrl, '_blank');\r\n // if (this.state.mobileNavigationActive) { this.toggleMobileNavigationActive(); }\r\n // }\r\n // },\r\n // {\r\n // label: 'Open Shopify Admin',\r\n // icon: InventoryMajor,\r\n // onClick: () => {\r\n // window.open(this.state.common.shopifyAdminUrl, '_blank');\r\n // if (this.state.mobileNavigationActive) { this.toggleMobileNavigationActive(); }\r\n // }\r\n // }\r\n ]}\r\n separator\r\n />\r\n </Navigation>\r\n ) : null;\r\n\r\n if(window.location.href.includes(\"unpaid\") ){\r\n navigationMarkup = <Navigation location={window.location.pathname} >\r\n <Navigation.Section \r\n separator\r\n title=\"\"\r\n items={[]}\r\n />\r\n </Navigation>\r\n }\r\n\r\n const loadingMarkup = this.state.isLoading ? <Loading /> : null;\r\n\r\n const contextualSaveBarMarkup = this.state.isDirty ? (\r\n <ContextualSaveBar\r\n message=\"Unsaved changes\"\r\n saveAction={{\r\n onAction: this.handleSave,\r\n }}\r\n discardAction={{\r\n onAction: this.handleDiscard,\r\n }}\r\n />\r\n ) : null;\r\n\r\n const toastMarkup = this.state.toastActive ? (\r\n <Toast onDismiss={this.toggleToastActive} content=\"Changes saved\" />\r\n ) : null;\r\n\r\n const modalLeave = (\r\n <Modal\r\n open={this.state.modalLeaveActive}\r\n onClose={this.toggleModalLeaveActive}\r\n title=\"You have unsaved changes\"\r\n primaryAction={{\r\n content: 'Leave page',\r\n onAction: this.handleModalLeave,\r\n destructive: true\r\n }}\r\n secondaryActions={[\r\n {\r\n content: 'Cancel',\r\n onAction: this.toggleModalLeaveActive,\r\n },\r\n ]}\r\n >\r\n <Modal.Section>\r\n <TextContainer>\r\n <p>If you leave this page, all unsaved changes will be lost.</p>\r\n </TextContainer>\r\n </Modal.Section>\r\n </Modal>\r\n );\r\n\r\n const modalReview = (\r\n <Modal\r\n open={this.state.modalReviewActive}\r\n onClose={this.toggleModalReviewActive}\r\n title=\"Write a review\"\r\n primaryAction={this.state.modalReviewOuch ? {\r\n content: 'OK',\r\n onAction: this.handleReviewOuch\r\n } : null}\r\n >\r\n <Modal.Section>\r\n <TextContainer>\r\n <p className=\"review-title\" style={{ display: this.state.modalReviewOuch ? 'none' : 'block' }}>How would you rate Sticky Add To Cart BOOSTER PRO?</p>\r\n <div className=\"review-star-container\" style={{ display: this.state.modalReviewOuch ? 'none' : 'block' }}>\r\n <span className=\"review-star\" onClick={() => this.handleRate(1)}><Icon source={StarFilledMinor} /></span>\r\n <span className=\"review-star\" onClick={() => this.handleRate(2)}><Icon source={StarFilledMinor} /></span>\r\n <span className=\"review-star\" onClick={() => this.handleRate(3)}><Icon source={StarFilledMinor} /></span>\r\n <span className=\"review-star\" onClick={() => this.handleRate(4)}><Icon source={StarFilledMinor} /></span>\r\n <span className=\"review-star\" onClick={() => this.handleRate(5)}><Icon source={StarFilledMinor} /></span>\r\n </div>\r\n <p className=\"review-title\" style={{ display: this.state.modalReviewOuch ? 'block' : 'none' }}>We want to do better and make it perfect for you!</p>\r\n <p className=\"review-subtitle\" style={{ display: this.state.modalReviewOuch ? 'block' : 'none' }}>Let us know your feedback. We have a team ready to help you ASAP. Click OK to continue.</p>\r\n </TextContainer>\r\n </Modal.Section>\r\n </Modal>\r\n );\r\n\r\n const modalPermissions = (\r\n <Modal\r\n open={this.state.modalPermissionsActive}\r\n onClose={this.toggleModalPermissionsActive}\r\n title=\"More permissions needed\"\r\n primaryAction={{\r\n content: 'Grant Access',\r\n onAction: this.handleModalPermissions,\r\n loading: this.state.modalPermissionsGrantAccess\r\n }}\r\n secondaryActions={[\r\n {\r\n content: 'Cancel',\r\n onAction: this.toggleModalPermissionsActive,\r\n },\r\n ]}\r\n >\r\n <Modal.Section>\r\n <TextContainer>\r\n <p>You need to give more permissions to get access to this feature.</p>\r\n </TextContainer>\r\n </Modal.Section>\r\n </Modal>\r\n );\r\n const appLogo = {\r\n width: 40,\r\n topBarSource: '/images/sticky-addtocart-booster-pro.png',\r\n contextualSaveBarSource: '/images/sticky-addtocart-booster-pro.png',\r\n url: '/' + this.state.common.shopQueryString + token,\r\n accessibilityLabel: 'Sticky Add To Cart BOOSTER PRO',\r\n }; \r\n const theme = {\r\n colors: {\r\n topBar: {\r\n background: '#3b4f66',\r\n },\r\n },\r\n logo: {\r\n width: 40,\r\n topBarSource: '/images/sticky-addtocart-booster-pro.png',\r\n contextualSaveBarSource: '/images/sticky-addtocart-booster-pro.png',\r\n url: '/' + this.state.common.shopQueryString,\r\n accessibilityLabel: 'Sticky Add To Cart BOOSTER PRO',\r\n },\r\n };\r\n\r\n function AdapterLink({ url, ...rest }) {\r\n return <Link to={url} {...rest} />\r\n }\r\n //AppBridgeLink\r\n //AdapterLink\r\n function inIframe() {\r\n try {\r\n return window.self !== window.top;\r\n } catch (e) {\r\n return true;\r\n }\r\n }\r\n let isEmbedded = inIframe();\r\n let frame = (<>\r\n <Frame\r\n topBar={topBarMarkup}\r\n navigation={navigationMarkup}\r\n showMobileNavigation={this.state.mobileNavigationActive}\r\n onNavigationDismiss={this.toggleMobileNavigationActive}\r\n logo={appLogo}\r\n >\r\n {contextualSaveBarMarkup}\r\n {loadingMarkup}\r\n {toastMarkup}\r\n {modalLeave}\r\n {modalReview}\r\n {modalPermissions}\r\n {/* <Prompt when={this.state.isDirty} message={this.handleLeaveNavigation} /> */}\r\n <Routes>\r\n <Route exact path='/' element={<Dashboard {...this.props}\r\n setIsLoading={this.setIsLoading}\r\n setToastActive={this.setToastActive}\r\n setIsDirty={this.setIsDirty}\r\n setSaveChanges={click => this.saveChanges = click}\r\n navigate={this.navigate}\r\n toggleModalReviewActive={this.toggleModalReviewActive}\r\n doOnboardingStep={this.doOnboardingStep}\r\n setNextOnboardingStep={click => this.nextOnboardingStep = click}\r\n toggleModalPermissionsActive={this.toggleModalPermissionsActive}\r\n reInstall={this.reInstall}\r\n common={this.state.common}\r\n discount={discount} />} />\r\n <Route exact path='/' element={<Dashboard {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} toggleModalReviewActive={this.toggleModalReviewActive} doOnboardingStep={this.doOnboardingStep} setNextOnboardingStep={click => this.nextOnboardingStep = click} toggleModalPermissionsActive={this.toggleModalPermissionsActive} reInstall={this.reInstall} common={this.state.common} discount={discount} />} />\r\n <Route path='/sticky-add-to-cart-bar' element={<StickyAddToCartBar {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/sticky-checkout-bar' element={<StickyCheckoutBar {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/sticky-cart' element={<StickyCart {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/quick-buy-button' element={<QuickBuyButton {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/quick-view' element={<QuickView {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/cart-slider' element={<CartSlider {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} setBundleID={this.getBundleId} navigate={this.navigate} common={this.state.common} />} />\r\n <Route path='/upsell-bundle' element={<UpsellBundle {...this.props} setIsLoading={this.setIsLoading} passbundleId={this.state.bundleId} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/advanced' element={<Advanced {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/analytics' element={<Analytics {...this.props} setIsLoading={this.setIsLoading} navigate={this.navigate} />} />\r\n <Route path='/support' element={<Support {...this.props} setIsLoading={this.setIsLoading} navigate={this.navigate} />} />\r\n <Route path='/more-apps' element={<MoreApps {...this.props} setIsLoading={this.setIsLoading} />} />\r\n <Route path='/login' element={<Login {...this.props} setIsLoading={this.setIsLoading} />} />\r\n <Route path='/error' element={<Error {...this.props} setIsLoading={this.setIsLoading} />} />\r\n <Route path='/unpaidDashboard' element={<UnpaidDashboard {...this.props} setIsLoading={this.setIsLoading} />} />\r\n\r\n <Route path='/Account/Install' element={<Dashboard {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} toggleModalReviewActive={this.toggleModalReviewActive} doOnboardingStep={this.doOnboardingStep} setNextOnboardingStep={click => this.nextOnboardingStep = click} toggleModalPermissionsActive={this.toggleModalPermissionsActive} reInstall={this.reInstall} common={this.state.common} discount={discount} />} />\r\n <Route path='/Account/sticky-add-to-cart-bar' element={<StickyAddToCartBar {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/Account/sticky-checkout-bar' element={<StickyCheckoutBar {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/Account/sticky-cart' element={<StickyCart {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/Account/quick-buy-button' element={<QuickBuyButton {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/Account/quick-view' element={<QuickView {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/Account/cart-slider' element={<CartSlider {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} common={this.state.common} />} />\r\n <Route path='/Account/upsell-bundle' element={<UpsellBundle {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/Account/advanced' element={<Advanced {...this.props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/Account/analytics' element={<Analytics {...this.props} setIsLoading={this.setIsLoading} navigate={this.navigate} />} />\r\n <Route path='/Account/support' element={<Support {...this.props} setIsLoading={this.setIsLoading} navigate={this.navigate} />} />\r\n <Route path='/Account/more-apps' element={<MoreApps {...this.props} setIsLoading={this.setIsLoading} />} />\r\n <Route path='/Account/login' element={<Login {...this.props} setIsLoading={this.setIsLoading} />} />\r\n <Route path='/Account/error' element={<Error {...this.props} setIsLoading={this.setIsLoading} />} />\r\n <Route path='/Account/unpaidDashboard' element={<UnpaidDashboard {...this.props} setIsLoading={this.setIsLoading} />} />\r\n\r\n {/* <Route exact path='/' render={(props) => <Dashboard {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} toggleModalReviewActive={this.toggleModalReviewActive} doOnboardingStep={this.doOnboardingStep} setNextOnboardingStep={click => this.nextOnboardingStep = click} toggleModalPermissionsActive={this.toggleModalPermissionsActive} reInstall={this.reInstall} />} /> */}\r\n {/* <Route exact path='/' render={(props) => <Dashboard {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} toggleModalReviewActive={this.toggleModalReviewActive} doOnboardingStep={this.doOnboardingStep} setNextOnboardingStep={click => this.nextOnboardingStep = click} toggleModalPermissionsActive={this.toggleModalPermissionsActive} reInstall={this.reInstall} />} /> */}\r\n {/* <Route path='/sticky-add-to-cart-bar' render={(props) => <StickyAddToCartBar {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/sticky-checkout-bar' render={(props) => <StickyCheckoutBar {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/sticky-cart' render={(props) => <StickyCart {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/quick-buy-button' render={(props) => <QuickBuyButton {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/quick-view' render={(props) => <QuickView {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/cart-slider' render={(props) => <CartSlider {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} common={this.state.common} />} />\r\n <Route path='/upsell-bundle' render={(props) => <UpsellBundle {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/advanced' render={(props) => <Advanced {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/analytics' render={(props) => <Analytics {...props} setIsLoading={this.setIsLoading} navigate={this.navigate} />} />\r\n <Route path='/support' render={(props) => <Support {...props} setIsLoading={this.setIsLoading} navigate={this.navigate} />} />\r\n <Route path='/more-apps' render={(props) => <MoreApps {...props} setIsLoading={this.setIsLoading} />} />\r\n <Route path='/login' render={(props) => <Login {...props} setIsLoading={this.setIsLoading} />} />\r\n <Route path='/error' render={(props) => <Error {...props} setIsLoading={this.setIsLoading} />} />\r\n <Route path='/unpaidDashboard' render={(props) => <UnpaidDashboard {...props} setIsLoading={this.setIsLoading} />} />\r\n\r\n <Route path='/Account/ShopifyAuthCallback' render={(props) => <Dashboard {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} toggleModalReviewActive={this.toggleModalReviewActive} doOnboardingStep={this.doOnboardingStep} setNextOnboardingStep={click => this.nextOnboardingStep = click} toggleModalPermissionsActive={this.toggleModalPermissionsActive} reInstall={this.reInstall} />} />\r\n <Route path='/Account/sticky-add-to-cart-bar' render={(props) => <StickyAddToCartBar {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/Account/sticky-checkout-bar' render={(props) => <StickyCheckoutBar {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/Account/sticky-cart' render={(props) => <StickyCart {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/Account/quick-buy-button' render={(props) => <QuickBuyButton {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/Account/quick-view' render={(props) => <QuickView {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/Account/cart-slider' render={(props) => <CartSlider {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} common={this.state.common} />} />\r\n <Route path='/Account/upsell-bundle' render={(props) => <UpsellBundle {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/Account/advanced' render={(props) => <Advanced {...props} setIsLoading={this.setIsLoading} setToastActive={this.setToastActive} setIsDirty={this.setIsDirty} setSaveChanges={click => this.saveChanges = click} navigate={this.navigate} />} />\r\n <Route path='/Account/analytics' render={(props) => <Analytics {...props} setIsLoading={this.setIsLoading} navigate={this.navigate} />} />\r\n <Route path='/Account/support' render={(props) => <Support {...props} setIsLoading={this.setIsLoading} navigate={this.navigate} />} />\r\n <Route path='/Account/more-apps' render={(props) => <MoreApps {...props} setIsLoading={this.setIsLoading} />} />\r\n <Route path='/Account/login' render={(props) => <Login {...props} setIsLoading={this.setIsLoading} />} />\r\n <Route path='/Account/error' render={(props) => <Error {...props} setIsLoading={this.setIsLoading} />} />\r\n <Route path='/Account/unpaidDashboard' render={(props) => <UnpaidDashboard {...props} setIsLoading={this.setIsLoading} />} /> */}\r\n </Routes>\r\n </Frame>\r\n </>\r\n );\r\n let layout = null;\r\n if (isEmbedded) {\r\n layout = <AppBridgeProvider>\r\n <QueryProvider>\r\n {frame}\r\n </QueryProvider>\r\n </AppBridgeProvider>\r\n } else {\r\n layout = frame;\r\n }\r\n\r\n return (\r\n <AppProvider i18n={en} linkComponent={AdapterLink}>\r\n <BrowserRouter>\r\n { layout }\r\n </BrowserRouter>\r\n \r\n </AppProvider>\r\n \r\n );\r\n }\r\n\r\n async populateData() {\r\n //AuthInterceptor();\r\n const response = await fetchApi('api/home/common');\r\n if (response.status === 401 && window.location.pathname.startsWith('/login') === false) {\r\n this.navigate('/login');\r\n }\r\n const data = await response.json();\r\n try{\r\n var userId = data.userId; // Replace your_user_id with your own if available.\r\n window.hj('identify', userId, {\r\n // Add your own custom attributes here. Some EXAMPLES:\r\n 'user_id': userId,\r\n 'shop_id': data.shopName, // Signup date in ISO-8601 format.\r\n 'shop_name': data.shopName,\r\n 'shop_owner': data.userName,\r\n 'shopify_domain': data.shopName, // Send strings with quotes around them.\r\n 'myshopify_domain': data.shopName, // Send numbers without quotes.\r\n // 'Last purchase date': '2019-06-20Z', // Send dates in ISO-8601 format.\r\n // 'Last refund date': null, // Send null when no value exists for a user.\r\n });\r\n }catch(err){\r\n console.err(err);\r\n }\r\n \r\n if (data.redirectUrl) {\r\n this.navigate(data.redirectUrl);\r\n if (!data.adminEnabled) {\r\n window.Intercom(\"boot\", {\r\n app_id: data.intercomAppId,\r\n \"App name\": data.appName,\r\n });\r\n }\r\n }\r\n else {\r\n this.setState({ common: data });\r\n if (!data.adminEnabled) {\r\n window.Intercom(\"boot\", {\r\n app_id: data.intercomAppId,\r\n name: data.userName,\r\n email: data.email,\r\n phone: data.phone,\r\n user_id: data.userId,\r\n user_hash: data.userHash,\r\n created_at: data.createdAt,\r\n \"Shop name\": data.shopName,\r\n \"App name\": data.appName,\r\n \"Plan\": data.plan,\r\n \"Plan display name\": data.planDisplayName,\r\n \"Is installed\": data.installed,\r\n \"Installed time\": data.installedAt,\r\n \"Uninstalled time\": data.uninstalledAt,\r\n \"Days installed\": data.daysInstalled,\r\n coupon_redeem: data.couponRedeemed,\r\n coupon_value: data.couponValue,\r\n coupon_redeem_at: data.couponRedeemedAt\r\n });\r\n }\r\n }\r\n }\r\n\r\n async logOut() {\r\n const response = await fetchApi('api/home/logOut', { method: 'post', headers: { 'Content-Type': 'application/json' } });\r\n const data = await response.json();\r\n\r\n if (response.ok === true && data.redirectUrl) {\r\n this.setState({ common: {} });\r\n this.navigate(data.redirectUrl);\r\n }\r\n }\r\n\r\n async doOnboardingStep(step) {\r\n const response = await fetchApi('api/home/doOnboardingStep', { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ step: step }) });\r\n const data = await response.json();\r\n\r\n if (response.ok === true) {\r\n if (data.redirectUrl) {\r\n this.props.navigate(data.redirectUrl);\r\n }\r\n else {\r\n this.nextOnboardingStep(step);\r\n }\r\n }\r\n }\r\n\r\n async reInstall() {\r\n const response = await fetchApi('api/home/reinstall', { method: 'post', headers: { 'Content-Type': 'application/json' } });\r\n const data = await response.json();\r\n\r\n if (response.ok === true) {\r\n window.location.href = data.redirectUrl;\r\n }\r\n }\r\n}\r\n\r\nexport default App;","import \"@shopify/polaris/build/esm/styles.css\";\r\nimport React from 'react';\r\n// import ReactDOM from 'react-dom';\r\nimport ReactDOM from 'react-dom/client';\r\nimport { BrowserRouter } from 'react-router-dom';\r\n\r\nimport App from './App';\r\n//import registerServiceWorker from './registerServiceWorker';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nconst root = ReactDOM.createRoot(rootElement);\r\nroot.render(<App />);\r\n\r\n// ReactDOM.render(\r\n// // <BrowserRouter basename={baseUrl} >\r\n// <App />,\r\n// // </BrowserRouter>,\r\n// rootElement);\r\n\r\n//registerServiceWorker();\r\n\r\n"],"names":["__extends","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","TypeError","String","__","constructor","create","__importDefault","mod","__esModule","defineProperty","exports","value","react_1","require","context_1","router_1","ClientRouter","_super","apply","arguments","componentDidMount","history","props","unsubscribe","handleRouteChange","context","componentWillUnmount","render","contextType","AppBridgeContext","default","Component","useAppBridge_1","app","useAppBridge","useEffect","useClientRouting","ClientRouter_1","enumerable","get","hook_1","actions_1","subscribe","Redirect","Action","APP","_a","path","replace","hooks_1","_b","discardAction","_c","saveAction","fullWidth","leaveConfirmationDisable","visible","_d","useContextualSaveBar","show","hide","saveActionSetOptions","setOptions","discardActionSetOptions","ContextualSaveBar_1","Loading","loading","dispatch","START","STOP","Loading_1","__assign","assign","t","s","i","n","length","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","Modal_1","transformers_1","transformProps","wasOpen","title","size","message","src","primaryAction","secondaryActions","safeSize","undefined","Size","srcPayload","match","url","footer","buttons","transformActions","focusReturnPoint","useRef","prevProps","open","isUnmounted","modal","useMemo","rest","current","options","openUpdated","transformedProps","shouldSendUpdate","set","OPEN","document","activeElement","CLOSE","contains","focus","onClose","ModalContent","modalContent","syncLoadingStatus","componentDidUpdate","loaded","ModalContent_1","AppLink_1","NavigationMenu_1","defaultMatcher","link","location","destination","pathname","navigationLinks","matcher","useState","items","setItems","map","JSON","stringify","activeLink","activeLinkIndex","findIndex","active","__createBinding","o","m","k","k2","__setModuleDefault","v","__importStar","result","setClientInterfaceHook","app_bridge_1","RoutePropagator_1","packageJson","Router","useRoutePropagation","next","action","clientInterface","name","version","config","router","children","hooks","LifecycleHook","DispatchAction","routerMarkup","createElement","Provider","Provider_1","ResourceType","ActionVerb","ResourcePicker_1","resourceType","onSelection","onCancel","allowMultiple","selectMultiple","isUnmountedRef","openRef","optionsRef","picker","CANCEL","focusReturnPointRef","storeFocusReturnPoint","useCallback","HTMLElement","applyFocusReturnPoint","SELECT","args","_i","route_propagator_1","RoutePropagator","updateHistory","prevLocation","getOrigin","getTopWindow","getSelfWindow","window","self","top","origin","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","rejected","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","op","pop","push","MessageTransport_1","globals_1","embeddedFrameParamsToRemove","selfWindow","topWindow","renderedInTheTopWindow","renderedAsMainApp","normalizedLocation","search","hash","locationStr","getState","Context","Main","URL","getNormalizedURL","forEach","param","searchParams","delete","History","REPLACE","Button_1","TitleBar_1","ButtonGroup_1","transformBreadcrumb","breadcrumb","updateBreadcrumb","button","content","updateButton","actionProps","redirect","generateRedirect","target","external","CLICK","onAction","currentProps","titleBar","propsChanged","actionGroups","breadcrumbs","isArray","primary","secondaryButtons","secondary","filter","isGroupedButton","secondaryButton","index","updateSecondaryActions","actionGroupButtons","actionBroupButton","actionGroup","nestedButton","nestedIndex","actions","updateActionGroups","DEFAULT_TOAST_DURATION","Toast","error","duration","onDismiss","toast","isError","ACTION","CLEAR","SHOW","PureComponent","Toast_1","__exportStar","unstable_Picker","TitleBar","ResourcePicker","NavigationMenu","Modal","ContextualSaveBar","unstable_Picker_1","Picker_1","onSelect","onSearch","onLoadMore","SEARCH","LOAD_MORE","createContext","useToast","useNavigationHistory","useNavigate","useLocale","useFeatureRequest","useFeaturesAvailable","useAppBridgeState","useAppBridgeState_1","useContextualSaveBar_1","useFeaturesAvailable_1","useFeatureRequest_1","useLocale_1","useNavigate_1","useNavigationHistory_1","useToast_1","query","state","setState","refresh","newState","currentState","visibleRef","onSaveAction","setOnSaveAction","onDiscardAction","setOnDiscardAction","contextualSaveBar","HIDE","shouldUpdate","DISCARD","SAVE","Features_1","group","featuresAvailable","feature","setFeature","handleFeatureUpdate","updatedFeatures","actionPermission_1","REQUEST","types_1","_this","queryRef","features","currentFeatures","onRefreshCleanup","UPDATE","Redirect_1","handleRedirect","to","normalizeUrl","isAppUrl","startsWith","localOrigin","isHostUrl","hostOrigin","isRelative","getRelativePath","ADMIN_PATH","newContext","REMOTE","isAdminSection","convertedSection","ADMIN_SECTION","section","PUSH","toastList","splice","appBridge","useContext","Error","__spreadArray","from","il","j","Button","ButtonGroup","payload","redirectAction","transformAction","style","destructive","Style","Danger","disabled","plain","transformPrimaryAction","secondaryAction","transformSecondaryActions","buttonGroups","groupAction","transformActionGroups","getAuthorizationCodePayload","AuthCode","Error_1","uuid_1","requestId","RESPOND","status","fromAction","FAILED_AUTHENTICATION","request","userAuthorizedFetch","authorization_code_1","needsAuthorizationCode","response","headerValue","headers","toLowerCase","callbackUri","isAuthorizationCodeRequired","fetchOperation","uri","code","hmac","shop","timestamp","formattedCallbackUri","encodeURI","hostname","ok","createMutationObserver","setupModalAutoSizing","platform_1","AUTO_SIZE_CLASS","autoSizeStylesheet","type","innerHTML","createAutoSizeStylesheet","id","mutationTimeoutId","lastKnownWindowHeight","mutationObserver","MutationObserver","clearTimeout","setTimeout","updateHeight","observe","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","height","scrollHeight","updateModalSize","cleanup","removeAutoSizing","handleModalSizeUpdate","appState","isMobile","head","getElementsByTagName","classList","appendChild","add","remove","removeChild","disconnect","addAutoSizing","isShopifyPing","isShopifyPOS","isShopifyMobile","isShopifyEmbedded","env_1","navigator","userAgent","isClient","isUnframed","authenticatedFetch","session_token_1","fetch","sessionToken","finalHeaders","getSessionToken","Headers","append","key","SessionToken","createTransportListener","fromWindow","fromFrame","validator_1","collection_1","frame","handlers","host","frameWindow","AppActionType","WINDOW_UNDEFINED","MobileWebView","postMessageToIframe","postMessage","isDispatchAction","updateIframeUrl","newUrl","currentWindowLocation","frameWindowLocation","href","addEventListener","event","source","isAppMessage","data","handlers_1","handler","errorMessage","invalidOriginAction","hostFrame","addAndRemoveFromCollection","contentWindow","isAppBridgeAction","handlers_2","messageOrigin","listeners","actionListeners","createSubscribeHandler","dispatcher","callback","actionCallback","MessageType","Subscribe","Unsubscribe","handleMessage","listener","handleActionDispatch","hasCallback","ActionSetWithChildren","ActionSet","types_2","helper_1","subgroups","subscriptions","throwError","INVALID_ACTION","defaultGroup","defaultSet","run","UpdateAction","configurable","updateSubscription","subscriptionToRemove","currentIndex","eventType","component","subscription","subscriptionIndices","forEachInEnum","eventNameSpace","toRemove","removeFromCollection","removed","eventName","eventComponent","toUpperCase","boundedCallback","bind","isErrorEventName","getEventNameSpace","Group","updateSubscribe","resetOnly","unsubscribeActions","unsubscribeChildren","resetParentOnly","child","getChild","childIndex","getChildIndex","getChildSubscriptions","sub","addChild","childIter","subs","subscribeToChild","eventNameIter","currentSubscriptions","childComponent","getUpdatedChildActions","newActions","currentActions","uniqueActions","actionsArr","newActionIds","unusedActions","reassign","respond","actionWrapper","isGroupedButtonPayload","update","buttonHelper_1","ActionSet_1","buttonPayload","buttonActionWrapper","castOptions","ComponentType","buttonsOptions","mergedOptions","getMergedProps","Boolean","getButtons","updateAction","updateButtons","newPayload","updated","updateActionFromPayload","getSingleButton","buttonOptions","singleButton","isValidButtonProps","clickButton","Icon","icon","Cart","setLineItemProperties","removeLineItemDiscount","setLineItemDiscount","removeLineItem","updateLineItem","addLineItem","removeProperties","setProperties","setDiscount","updateCustomerAddress","addCustomerAddress","setCustomer","createCartAction","FETCH","SET_CUSTOMER","ADD_CUSTOMER_ADDRESS","UPDATE_CUSTOMER_ADDRESS","SET_DISCOUNT","SET_PROPERTIES","REMOVE_PROPERTIES","ADD_LINE_ITEM","UPDATE_LINE_ITEM","REMOVE_LINE_ITEM","SET_LINE_ITEM_DISCOUNT","REMOVE_LINE_ITEM_DISCOUNT","SET_LINE_ITEM_PROPERTIES","dispatchCartAction","REMOVE_CUSTOMER","REMOVE_DISCOUNT","REMOVE_LINE_ITEM_PROPERTIES","initialize","Client","INITIALIZE","discard","save","createContextBarAction","AppBridgeError","permissionAction","networkAction","persistenceAction","unsupportedOperationAction","unexpectedAction","invalidAction","invalidActionType","invalidPayload","Message","errorActionWrapperWithId","castPayload","INVALID_PAYLOAD","INVALID_ACTION_TYPE","UNEXPECTED_ACTION","UNSUPPORTED_OPERATION","PERSISTENCE","NETWORK","PERMISSION","findMatchInEnum","INVALID_ORIGIN","captureStackTrace","stack","Features","dispatchFeaturesAction","FeedbackModal","close","openAction","closeAction","Flash","clear","Toast_2","Fullscreen","exit","enter","ENTER","EXIT","LeaveConfirmation","confirm","disable","enable","ENABLE","DISABLE","CONFIRM","enableAction","disableAction","confirmAction","AppLink","updatePayload","linkPayload","Link","redirectType","stop","start","MarketingExternalActivityTopBar","clickActionButton","MarketingActivityStatusBadgeType","MARKETING_ACTIVITY_TOPBAR_BUTTON_PROPS","primaryOptions","secondaryOptions","saving","saved","setPrimaryButton","setSecondaryButtons","getButton","updateCb","updatePrimaryButton","updateSecondaryButtons","buttonToUpdate","find","newOptions","getChildButton","newButtons","currentButtons","updateSaving","updateSaved","updateStatus","newAction","currentAction","updatedButton","ChannelMenu","SUBGROUPS","Menu","itemsOptions","activeOptions","updateItem","itemToUpdate","newItems","currentItems","index_1","LOADED","LOADING","dispatchModalAction","UPDATE_CONTENT","ModalIframe","ModalMessage","isMessageModal","isIframeModal","clickFooterButton","closeModal","openModal","FOOTER_BUTTON_PROPS","modalPayload","modalClosePayload","DATA","updateSizePayload","UPDATE_SIZE","Small","footerPrimary","footerSecondary","footerPrimaryOptions","footerSecondaryOptions","setFooterPrimaryButton","updatePrimaryFooterButton","setFooterSecondaryButtons","currentOptions","footerOptions","updateSecondaryFooterButton","Navigation","isRemotePayload","isAdminSectionPayload","isAdminPathPayload","isAppPayload","getPathWithSearchAndHash","toDestination","toApp","toRemote","toAdminSection","toAdminPath","isProductVariantCreateResourcePayload","isProductVariantResourcePayload","isCreateResourcePayload","isResourcePayload","resource","castResource","variant","appPayload","adminPathPayload","adminSectionPayload","remotePayload","URLSearchParams","toString","fullPageLoad","skeletonPageLoad","Performance","SKELETON_PAGE_LOAD","FULL_PAGE_LOAD","loadMore","cancel","select","ALL_RESOURCE_VERTICAL_ALIGNMENT","ALL_MEDIA_KINDS","ALL_BADGE_STATUSES","ALL_BADGE_PROGRESSES","selectedItems","maxSelectable","searchQuery","searchQueryPlaceholder","primaryActionLabel","secondaryActionLabel","emptySearchLabel","canLoadMore","loadingMore","verticalAlignment","_e","_f","Pos","Print","ProductStatus","ProductVariantInventoryManagement","ProductVariantInventoryPolicy","WeightUnit","FulfillmentServiceType","CollectionSortOrder","initialSelectionIds","selection","initialQuery","showHidden","actionVerb","Product","showVariants","showDraft","showArchived","showDraftBadge","showArchivedBadge","_g","_h","_j","Add","baseOptions","capture","openCamera","Scanner","OPEN_CAMERA","dispatchScannerAction","CAPTURE","Share","dispatchShareAction","actionType","clickBreadcrumb","buttonGroupHelper_1","TITLEBAR_BUTTON_PROPS","BREADCRUMB_BUTTON_PROPS","breadcrumbsOption","setBreadcrumbs","setSecondaryButton","getGroupedButton","updateBreadcrumbButton","toastMessage","initializeWebVitals","interactionToNextPaint","timeToFirstByte","firstContentfulPaint","cumulativeLayoutShift","firstInputDelay","largestContentfulPaint","web_vitals_1","WebVitals","LARGEST_CONTENTFUL_PAINT","FIRST_INPUT_DELAY","CUMULATIVE_LAYOUT_SHIFT","FIRST_CONTENTFUL_PAINT","TIME_TO_FIRST_BYTE","INTERACTION_TO_NEXT_PAINT","onReport","cb","metricName","untypedWindow","isServer","__is_web_vitals_initialized__","onLCP","onFID","onCLS","onFCP","onTTFB","onINP","SEPARATOR","PREFIX","NonSnakeCaseGroup","isValidOptionalString","isValidOptionalNumber","getVersion","constants_1","merge_1","newProps","merged","includes","_val","groupToEventNameSpace","subgroups_1","subgroup","types","keys","lookup","mergeProps","obj","newObj","isPrototypeOf","getPrototypeOf","clone","asHex","slice","join","getRandomBytes","Uint8Array","crypto","buffer","randomValues","getRandomValues","Math","random","generateUuid","clockSeqHiAndReserved","timeHiAndVersion","isPermitted","getPermissionKey","isFromApp","isPerformanceOrWebVitalsAction","RegExp","apiKey","permissionType","createApp","createAppWrapper","createClientApp","WINDOW_UNDEFINED_MESSAGE","Print_1","shared_1","Client_1","WebVitals_1","print_1","redirect_1","Hooks_1","middleware","getLocation","MISSING_LOCAL_ORIGIN","transport","currentWindow","getWindow","serverAppBridge","middlewares","getStateListeners","transportListener","resolver","errorType","decodedConfig","INVALID_CONFIG","atob","validateAndDecodeConfig","isRedirecting","forceRedirect","isDevelopmentClient","shouldRedirect","redirectHandler","mockAppBridge","createDispatcher","Dispatch","firstItem","parsedFeatures","reduce","acc","GetState","split","unsubscribeCb","middlewares_1","handleAppPrint","appSetUp","Hooks","hook","val","final","initialArgs","childHandler","printWindow","print","handleMobileAppPrint","input","inputElement","display","createHiddenInput","hasWindow","PermissionType","isV1Config","shopOrigin","module","client_1","collection","item","idx","isProduction","isDevelopment","process","noop","noopPromise","hasOwn","classNames","classes","arg","argType","inner","QueryHandler","each","MediaQuery","isUnconditional","mql","matchMedia","currentTarget","assess","addListener","constuctor","addHandler","qh","matches","on","removeHandler","h","equals","destroy","removeListener","Util","isFunction","MediaQueryDispatch","queries","browserIsIncapable","register","q","shouldDegrade","unregister","deferSetup","setup","initialised","off","unmatch","fn","global","factory","w","noGlobal","arr","getProto","flat","array","concat","class2type","fnToString","ObjectFunctionString","support","nodeType","isWindow","preservedScriptAttributes","nonce","noModule","DOMEval","node","doc","script","text","getAttribute","setAttribute","parentNode","toType","jQuery","selector","init","isArrayLike","jquery","toArray","num","pushStack","elems","ret","merge","prevObject","elem","first","eq","last","even","grep","_elem","odd","len","end","sort","extend","copy","copyIsArray","deep","isPlainObject","expando","isReady","msg","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","callbackExpect","guid","Sizzle","Expr","getText","isXML","tokenize","compile","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","Date","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","pushNative","list","booleans","whitespace","identifier","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","nodeName","dir","childNodes","els","seed","nid","groups","newSelector","ownerDocument","exec","getElementById","getElementsByClassName","qsa","test","testContext","scope","toSelector","cssSupportsSelector","CSS","supports","querySelectorAll","qsaError","removeAttribute","cache","cacheLength","shift","markFunction","assert","el","addHandle","attrs","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","tag","tmp","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","parent","useCache","lastChild","uniqueID","pseudo","setFilters","matched","unmatched","lang","elemLang","hasFocus","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","contents","prev","sibling","has","targets","l","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","reverse","rnothtmlwhite","Identity","Thrower","ex","adoptValue","noValue","method","promise","fail","Callbacks","object","flag","createOptions","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","empty","lock","fireWith","Deferred","func","tuples","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","notifyWith","resolveWith","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","updateFunc","rerrorNames","console","warn","readyException","readyList","completed","removeEventListener","catch","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","string","acceptData","owner","Data","uid","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","parse","getData","removeData","_data","_removeData","dequeue","startLength","_queueHooks","setter","clearQueue","count","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","values","toggle","rcheckableType","rtagName","rscriptType","div","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","ignored","wrap","attached","fragment","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","one","origFn","leverageNative","notAsync","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","handleObj","namespaces","origType","elemData","handle","triggered","bindType","delegateCount","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","rcustomProp","getStyles","opener","getComputedStyle","swap","old","rboxStyle","rtrimCSS","curCSS","computed","width","minWidth","maxWidth","isCustomProp","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","parseInt","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","finalPropName","cssProps","capName","vendorPropName","rdisplayswap","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","percent","eased","pos","fx","scrollTop","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","curValue","finalValue","removeClass","toggleClass","stateVal","isValidValue","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","lastModified","etag","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","abort","statusText","finalText","crossDomain","hasContent","ifModified","beforeSend","success","send","nativeStatusText","responses","isSuccess","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","xhr","XMLHttpRequest","xhrSuccessStatus","xhrSupported","cors","errorCallback","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","trim","_jQuery","_$","$","noConflict","camel2hyphen","obj2mq","mq","isDimension","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","Function","objectToString","nativeMax","nativeMin","min","isObject","toNumber","isObjectLike","isSymbol","other","valueOf","isBinary","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","debounced","isInvoking","leadingEdge","flush","aa","ca","c","da","Set","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","z","ra","sa","ta","pa","qa","oa","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","A","Ma","Na","Oa","prepareStackTrace","Reflect","construct","displayName","Pa","Qa","$$typeof","_payload","_init","Ra","Sa","Ta","Va","_valueTracker","getOwnPropertyDescriptor","getValue","setValue","stopTracking","Ua","Wa","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","db","eb","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","MSApp","execUnsafeLocalFunction","ob","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","lineHeight","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","charAt","substring","tb","menuitem","area","br","embed","hr","img","keygen","meta","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","Tc","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","Uc","jd","kd","ld","md","nd","od","pd","qd","rd","_reactName","_targetInst","cancelBubble","persist","isPersistent","wd","xd","yd","sd","isTrusted","ud","vd","Ad","getModifierState","zd","fromElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","repeat","locale","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Vd","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","number","range","tel","week","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","Le","Me","HTMLIFrameElement","Ne","contentEditable","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","element","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","instance","D","of","pf","qf","rf","sf","passive","J","x","u","F","tf","uf","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","elementType","deletions","Cg","pendingProps","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","ref","_owner","_stringRef","refs","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","r","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","_currentValue","bh","childLanes","dependencies","firstContext","lanes","dh","eh","memoizedValue","fh","gh","hh","interleaved","ih","jh","kh","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","lh","mh","eventTime","lane","nh","K","oh","ph","rh","sh","uh","vh","wh","xh","yh","tagName","zh","Ah","Bh","L","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","ReactCurrentDispatcher","Gh","Hh","M","N","O","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","Uh","Vh","Wh","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","Q","di","lastEffect","stores","ei","fi","gi","hi","ii","deps","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","R","Bi","readContext","useImperativeHandle","useInsertionEffect","useLayoutEffect","useReducer","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ci","defaultProps","Di","Ei","isMounted","_reactInternals","enqueueSetState","enqueueReplaceState","enqueueForceUpdate","Fi","shouldComponentUpdate","isPureReactComponent","Gi","updater","Hi","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ii","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Ji","digest","Ki","Li","Mi","WeakMap","Ni","Oi","Pi","Qi","getDerivedStateFromError","componentDidCatch","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","ReactCurrentOwner","Xi","Yi","Zi","$i","aj","bj","cj","dj","baseLanes","cachePool","transitions","ej","fj","gj","hj","ij","UNSAFE_componentWillUpdate","componentWillUpdate","jj","kj","pendingContext","lj","zj","Aj","Bj","Cj","mj","nj","oj","fallback","pj","qj","sj","dataset","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","tail","tailMode","xj","Dj","S","Ej","Fj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","createElementNS","autoFocus","T","Gj","Hj","Ij","Jj","U","Kj","WeakSet","V","Lj","W","Mj","Nj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","_reactRootContainer","Wj","X","Xj","Yj","Zj","onCommitFiberUnmount","ak","bk","ck","dk","ek","isHidden","fk","gk","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","Vk","lk","mk","nk","Y","Z","pk","qk","rk","sk","tk","Infinity","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","finishedWork","finishedLanes","Pk","timeoutHandle","Qk","Rk","Sk","Tk","Uk","mutableReadLanes","Bc","Oj","onCommitFiberRoot","mc","onRecoverableError","Wk","onPostCommitFiberRoot","Xk","Yk","$k","isReactComponent","pendingChildren","al","mutableSourceEagerHydrationData","bl","pendingSuspenseBoundaries","dl","fl","gl","hl","yj","Zk","kl","reportError","ll","_internalRoot","ml","nl","ol","pl","rl","ql","unmount","unstable_scheduleHydration","form","sl","usingClientEntryPoint","Events","tl","findFiberByHostInstance","bundleType","rendererPackageName","ul","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","vl","supportsFiber","inject","createPortal","cl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","hasElementType","Element","hasMap","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","entries","focusManager","_Subscribable","FocusManager","onFocus","_window","_inheritsLoose","_proto","onSubscribe","setEventListener","onUnsubscribe","_this$cleanup","hasListeners","_this$cleanup2","_this2","focused","setFocused","isFocused","visibilityState","Subscribable","logger","getLogger","setLogger","newLogger","Mutation","_extends","defaultOptions","mutationId","mutationCache","observers","failureCount","isPaused","variables","addObserver","observer","removeObserver","retryer","continue","execute","restored","onMutate","executeMutation","onSuccess","onSettled","_this$options$retry","Retryer","mutationFn","onFail","onPause","onContinue","retry","retryDelay","_this3","reducer","notifyManager","batch","onMutationUpdate","MutationCache","mutations","build","client","mutation","defaultMutationOptions","mutationKey","getMutationDefaults","exact","matchMutation","findAll","resumePausedMutations","onOnline","pausedMutations","NotifyManager","transactions","notifyFn","batchNotifyFn","scheduleMicrotask","batchCalls","_len","setNotifyFunction","setBatchNotifyFunction","onlineManager","OnlineManager","online","setOnline","isOnline","onLine","Query","abortSignalConsumed","hadObservers","queryKey","queryHash","initialState","getDefaultState","scheduleGc","_this$options$cacheTi","cacheTime","setDefaultOptions","clearGcTimeout","isValidTimeout","gcTimeout","optionalRemove","isFetching","setData","_this$options$isDataE","_this$options","prevData","functionalUpdate","isDataEqual","structuralSharing","replaceEqualDeep","dataUpdatedAt","updatedAt","setStateOptions","_this$retryer","silent","isActive","some","enabled","isStale","isInvalidated","getCurrentResult","isStaleByTime","staleTime","timeUntilStale","_this$retryer2","shouldFetchOnWindowFocus","refetch","_this$retryer3","shouldFetchOnReconnect","isTransportCancelable","revert","cancelRetry","getObserversCount","invalidate","fetchOptions","_this$options$behavio","_context$fetchOptions","_abortController$abor","cancelRefetch","_this$retryer4","continueRetry","queryFn","ensureQueryKeyArray","abortController","getAbortController","queryFnContext","pageParam","signal","_this$options$behavio2","_context$fetchOptions2","fetchFn","behavior","onFetch","revertState","fetchMeta","isCancelledError","onQueryUpdate","initialData","initialDataUpdatedAt","dataUpdateCount","errorUpdateCount","errorUpdatedAt","fetchFailureCount","_action$meta","_action$dataUpdatedAt","QueryCache","queriesMap","_options$queryHash","hashQueryKeyByOptions","defaultQueryOptions","getQueryDefaults","queryInMap","arg1","arg2","parseFilterArgs","matchQuery","_this4","_this5","getNextPageParam","pages","getPreviousPageParam","QueryClient","queryCache","queryDefaults","mutationDefaults","mount","unsubscribeFocus","unsubscribeOnline","_this$unsubscribeFocu","_this$unsubscribeOnli","fetching","isMutating","getQueryData","_this$queryCache$find","getQueriesData","queryKeyOrFilters","getQueryCache","_ref","setQueryData","parsedOptions","parseQueryArgs","defaultedOptions","setQueriesData","_ref2","getQueryState","_this$queryCache$find2","removeQueries","resetQueries","arg3","_parseFilterArgs3","refetchFilters","refetchQueries","cancelQueries","_parseFilterArgs4","_parseFilterArgs4$","cancelOptions","promises","all","invalidateQueries","_ref3","_filters$refetchActiv","_filters$refetchInact","_parseFilterArgs5","refetchActive","inactive","refetchInactive","_this6","_parseFilterArgs6","refetchPage","throwOnError","fetchQuery","prefetchQuery","fetchInfiniteQuery","_context$fetchOptions3","_context$fetchOptions4","_context$state$data","_context$state$data2","fetchMore","isFetchingNextPage","direction","isFetchingPreviousPage","oldPages","oldPageParams","pageParams","abortSignal","newPageParams","cancelled","buildNewPages","page","previous","fetchPage","manual","queryFnResult","isCancelable","_manual","_param","shouldFetchFirstPage","_loop","_param2","finalPromise","prefetchInfiniteQuery","cancelMutations","_this7","getMutationCache","getDefaultOptions","setQueryDefaults","hashQueryKey","_this$queryDefaults$f","partialMatchKey","setMutationDefaults","_this$mutationDefault","_defaulted","defaultQueryObserverOptions","defaultRetryDelay","pow","CancelledError","cancelFn","continueFn","promiseResolve","promiseReject","isResolved","outerResolve","outerReject","promiseOrValue","_unused","_config$retry","_config$retryDelay","shouldRetry","sleep","continueResolve","isQueryKey","predicate","stale","queryStatusFilter","mapQueryStatusFilter","queryKeyHashFn","asArray","partialDeepEqual","aSize","bItems","bSize","equalItems","hasObjectPrototype","ctor","prot","AbortController","ReactDOM","defaultContext","React","QueryClientSharingContext","getQueryClientContext","contextSharing","ReactQueryClientContext","QueryClientProvider","_ref$contextSharing","_typeof","PrevArrow","NextArrow","_react","_interopRequireDefault","_classnames","_innerSliderUtils","ownKeys","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","toPrimitive","Number","_toPrimitive","_inherits","subClass","superClass","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_React$PureComponent","clickHandler","prevClasses","prevHandler","infinite","currentSlide","slideCount","slidesToShow","prevArrowProps","customProps","prevArrow","cloneElement","_React$PureComponent2","_super2","nextClasses","nextHandler","canGoNext","nextArrowProps","nextArrow","accessibility","adaptiveHeight","afterChange","appendDots","dots","arrows","autoplay","autoplaySpeed","beforeChange","centerMode","centerPadding","cssEase","customPaging","dotsClass","draggable","edgeFriction","fade","focusOnSelect","initialSlide","lazyLoad","onEdge","onInit","onLazyLoadError","onReInit","pauseOnDotsHover","pauseOnFocus","pauseOnHover","responsive","rows","rtl","slide","slidesPerRow","slidesToScroll","swipe","swipeEvent","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","vertical","waitForAnimate","asNavFor","Dots","spec","_this$props","onMouseEnter","onMouseOver","onMouseLeave","dotCount","mouseEvents","_rightBound","rightBound","clamp","_leftBound","leftBound","dotOptions","_slider","animating","autoplaying","currentDirection","currentLeft","dragging","edgeDragged","initialized","lazyLoadedList","listHeight","listWidth","scrolling","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackStyle","trackWidth","targetSlide","InnerSlider","_initialState","_lodash","_track","_dots","_arrows","_resizeObserverPolyfill","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","_React$Component","querySelector","getHeight","slidesToLoad","getOnDemandLazySlides","prevState","onLazyLoad","listRef","trackRef","updateState","adaptHeight","autoPlay","lazyLoadTimer","setInterval","progressiveLazyLoad","ro","onWindowResized","callbackTimers","onfocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","clearInterval","autoplayTimer","checkImagesLoad","setTrackStyle","didPropsChange","Children","changeSlide","pause","debouncedResize","resizeWindow","updatedState","initializedState","slideIndex","targetLeft","getTrackLeft","getTrackCSS","_trackWidth","_trackLeft","childrenWidths","preClones","getPreClones","postClones","getPostClones","_i2","_trackStyle","currentWidth","childrenCount","trackLeft","images","imagesCount","loadedCount","prevClickHandler","_index","dontAnimate","_slideHandler","slideHandler","nextState","asNavForIndex","innerSlider","firstBatch","clickable","keyHandler","ontouchmove","verticalSwiping","disableBodyScroll","swipeStart","swipeMove","swipeEnd","triggerSlideHandler","enableBodyScroll","nextIndex","playType","play","pauseType","trackProps","extractObject","onTrackOver","onTrackLeave","selectHandler","dotProps","onDotsLeave","onDotsOver","arrowProps","verticalHeightStyle","centerPaddingStyle","listStyle","listProps","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","touchEnd","onTouchCancel","onKeyDown","innerSliderProps","unslick","listRefHandler","Track","trackRefHandler","ssrState","ssrInit","_i3","_Object$keys","_innerSlider","_json2mq","_defaultProps","enquire","canUseDOM","Slider","slickPrev","slickNext","slickGoTo","breakpoint","_responsiveMediaHandlers","breakpoints","breakpt","bQuery","media","resp","newChildren","newSlide","row","innerSliderRefHandler","filterSettings","getSlideClasses","slickActive","slickCenter","slickCloned","centerOffset","floor","getKey","fallbackKey","renderSlides","slides","preCloneSlides","postCloneSlides","startIndex","lazyStartIndex","endIndex","lazyEndIndex","childOnClickOptions","childStyle","getSlideStyle","slideClass","slideClasses","outline","preCloneNo","handleRef","checkSpecKeys","checkNavigable","validSettings","settingName","slidesOnRight","slidesOnLeft","siblingDirection","safePreventDefault","lazySlidesOnRight","lazySlidesOnLeft","getWidth","getTrackAnimateCSS","getTotalSlides","getSwipeDirection","getSlideCount","getRequiredLazySlides","getNavigableIndexes","lowerBound","upperBound","onDemandSlides","requiredSlides","xDist","yDist","swipeAngle","atan2","abs","canGo","newObject","listNode","trackNode","centerPaddingAdj","finalSlide","animationLeft","finalLeft","animationSlide","indexOffset","previousInt","slideOffset","previousTargetSlide","swipeLength","sqrt","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","onSwipe","minSwipe","activeSlide","counter","indexes","navigables","prevNavigable","swipedSlide","slickList","every","offsetTop","offsetLeft","keysArray","trackHeight","trackChildren","WebkitTransition","WebkitTransform","transform","msTransform","marginTop","slidesToOffset","targetSlideIndex","trackElem","__self","__source","Fragment","jsx","jsxs","forceUpdate","_status","_result","only","Profiler","StrictMode","Suspense","act","_currentValue2","_threadCount","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","MapShim","getIndex","entry","class_1","__entries__","ctx","isBrowser","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","leadingCall","trailingCall","resolvePending","timeoutCallback","throttle","connect_","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","positions","getHTMLElementContentRect","clientWidth","clientHeight","paddings","positions_1","getPaddings","horizPad","vertPad","bottom","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","ResizeObserver","sortIndex","performance","setImmediate","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","str","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","leafPrototypes","ns","def","getOwnPropertyNames","definition","globalThis","toStringTag","SvgMobileHamburgerMajor","viewBox","variationName","sanitizeCustomProperties","nonNullValues","fromEntries","getResponsiveProps","componentName","componentProp","tokenSubgroup","responsiveProp","breakpointAlias","aliasOrScale","pluckDeep","currKey","plucked","defaultWidth","useToggle","setTrue","setFalse","MissingAppProviderError","super","ScrollLockManagerContext","ScrollLock","scrollLockManager","useScrollLockManager","registerScrollLock","unregisterScrollLock","SearchDismissOverlay","handleDismiss","Search","overlayVisible","overlayMarkup","SvgCircleCancelMinor","fillRule","SvgSearchMinor","I18nContext","useI18n","i18n","UniqueIdFactoryContext","useUniqueId","overrideId","idFactory","uniqueIdRef","nextId","Text","alignment","as","breakWord","numeric","visuallyHidden","block","break","COLORS_WITH_BACKDROPS","sourceType","backdrop","accessibilityLabel","applyColor","hasBackdrop","SourceComponent","contentMarkup","function","Svg","focusable","placeholder","Placeholder","Img","alt","MessageIndicator","indicatorMarkup","MessageIndicatorWrapper","BannerContext","scrollable","overlay","layer","unstyled","dataPolarisTopBar","portal","LinkContext","UnstyledLink","LinkComponent","targetProp","rel","monochrome","removeUnderline","dataPrimaryLink","shouldBeMonochrome","WithinFilterContext","StatusValue","ProgressValue","getDefaultAccessibilityLabel","progressLabel","statusLabel","Incomplete","translate","PartiallyComplete","Complete","Info","Success","Warning","Critical","Attention","New","Pip","accessibilityLabelOverride","DEFAULT_SIZE","Badge","statusAndProgressLabelOverride","withinFilter","accessibilityMarkup","PipContainer","isElementInViewport","innerWidth","innerHeight","FOCUSABLE_SELECTOR","KEYBOARD_FOCUSABLE_SELECTORS","MENUITEM_FOCUSABLE_SELECTORS","handleMouseUpByBlurring","findFirstFocusableNode","findFirstFocusableNodeIncludingDisabled","focusableSelector","focusFirstFocusableNode","_findFirstFocusableNo","focusNextFocusableNode","nextFocusable","allFocusableElements","sliceLocation","focusableElementsAfterNode","focusableElement","nextFocusableNode","findFirstKeyboardFocusableNode","findLastKeyboardFocusableNode","allFocusable","getMenuFocusableDescendants","getCurrentFocusedElementIndex","allFocusableChildren","currentFocusedElement","currentItemIdx","focusableChild","PortalsManagerContext","Portal","idPrefix","onPortalCreated","portalsManager","usePortalsManager","uniqueId","portalId","enumerableOnly","symbols","sym","_objectSpread2","_slicedToArray","_arrayWithHoles","_s","_arr","_n","_iterableToArrayLimit","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","arr2","_templateObject","strings","BASE_FONT_SIZE","UNIT_PX","UNIT_EM","UNIT_REM","DIGIT_REGEX","freeze","UNIT_REGEX","getUnit","toPx","toEm","fontSize","rem","px","_toRem","toRem","tokensToRems","tokenGroup","getMediaConditions","breakpointEntries","lastBreakpointIndex","_ref8","breakpointsTokenName","upMediaCondition","getUpMediaCondition","up","down","getDownMediaCondition","_toPx","offsetBreakpoint","gray","green","blue","red","yellow","teal","purple","description","motion","space","wrapWithComponent","isElementOfType","isComponent","AComponent","AnotherComponent","_element$props","defaultType","__type__","elementChildren","ConditionalWrapper","condition","wrapper","ConditionalRender","Key","useIsomorphicLayoutEffect","KeypressListener","keyEvent","useCapture","tracked","handleKeyEvent","Rect","zero","center","getRectForNode","rectIsOutsideOfRect","outer","intersectionWithViewport","viewport","windowRect","scrollY","scrollX","debounce","waitArg","useRAF","startTimer","pendingFunc","cancelAnimationFrame","timeSinceLastInvoke","timeWaiting","cancelTimer","UNIQUE_IDENTIFIER","useLazyRef","lazyRef","useIsAfterInitialMount","isAfterInitialMount","setIsAfterInitialMount","useComponentDidMount","hasInvokedLifeCycle","ScrollableContext","Breakpoints","noWindowMatches","onchange","navigationBarCollapsed","breakpointsQueryEntries","mediaConditionEntries","breakpointsToken","mediaConditions","mediaCondition","getBreakpointsQueryEntries","getMatches","defaults","directionAlias","_defaults$directionAl","SIXTY_FPS","StickyManager","stickyItems","stuckItems","topBarOffset","handleResize","manageStickyItems","handleScroll","setContainer","registerStickyItem","stickyItem","unregisterStickyItem","nodeToRemove","stickyNode","isDocument","setTopBarOffset","removeScrollListener","containerTop","handlePositioning","sticky","evaluateStickyItem","updateStuckItems","placeHolderNode","boundingElement","disableWhenStacked","stickyOffset","getOffset","scrollPosition","placeHolderNodeCurrentTop","_stickyNode$firstElem","stickyItemHeight","stickyItemBottomPosition","isNodeStuck","addStuckItem","removeStuckItem","stuckNodesLength","nodeRect","stuckNode","horizontallyOverlaps","topbarElement","rect1","rect2","rect1Left","rect1Right","rect2Left","StickyManagerContext","MAX_SCROLL_HINT_DISTANCE","ScrollableComponent","forwardedRef","horizontal","shadow","hint","onScrolledToBottom","topShadow","setTopShadow","bottomShadow","setBottomShadow","stickyManager","scrollArea","_scrollArea$current","optionsBehavior","prefersReducedMotion","defaultRef","currentScrollArea","canScroll","isBelowTopOfScroll","isAtBottomOfScroll","scrollableDistance","distanceToPeek","goBackToTop","performScrollHint","_stickyManager$curren","finalClassName","Scrollable","ScrollTo","scrollToPosition","forNode","closestElement","EventListener","attachListener","detachProps","detachListener","OBSERVER_CONFIG","attributeFilter","PositionedOverlay","measuring","activatorRect","activator","positioning","outsideScrollableContainer","lockPosition","chevronOffset","scrollableContainers","overlayDetails","desiredHeight","setOverlay","setScrollableContainers","containers","scrollableContainer","_scrollableContainer","parentElement","registerScrollHandlers","handleMeasurement","unregisterScrollHandlers","firstScrollableContainer","preferredPosition","preferredAlignment","onScrollOut","fixed","preferInputActivator","currentOverlayRect","scrollableElement","scrollableContainerRect","overlayRect","topBarElement","overlayMargins","nodeStyles","marginBottom","getMarginsForNode","containerRect","zIndexForLayer","layerNode","getZIndexForLayerFromNode","verticalPosition","activatorTop","activatorBottom","spaceAbove","spaceBelow","verticalMargins","minimumSpaceToScroll","distanceToTopScroll","distanceToBottomScroll","enoughSpaceFromTopScroll","enoughSpaceFromBottomScroll","heightIfBelow","heightIfAbove","containerRectTop","positionIfAbove","positionIfBelow","calculateVerticalPosition","horizontalPosition","maximum","activatorRight","calculateHorizontalPosition","preventInteraction","propClassNames","zIndexOverride","_this$scrollableConta","forceUpdatePosition","Box","background","borderColor","borderStyle","borderWidth","borderBlockStartWidth","borderBlockEndWidth","borderInlineStartWidth","borderInlineEndWidth","borderRadius","borderRadiusEndStart","borderRadiusEndEnd","borderRadiusStartStart","borderRadiusStartEnd","minHeight","outlineColor","outlineStyle","outlineWidth","paddingBlockStart","paddingBlockEnd","paddingInlineStart","paddingInlineEnd","role","printHidden","insetBlockStart","insetBlockEnd","insetInlineStart","insetInlineEnd","restProps","Section","Pane","captureOverscroll","sectioned","maxHeight","PopoverCloseSource","TransitionStatus","PopoverOverlay","transitionStatus","Entering","Exited","contentNode","enteringTimer","overlayRef","renderPopover","fullHeight","fluidContent","hideOnPrint","autofocusTarget","Popover","positionedAbove","contentStyles","contentClassNames","Content","childrenArray","renderPopoverContent","handleClick","Escape","handleEscape","FocusTracker","handleFocusFirstItem","handleFocusLastItem","preventCloseOnChildOverlayClick","composedPath","wasDescendant","portalsContainerElement","eventTarget","Node","wasPolarisPortalDescendant","wasContentNodeDescendant","isActivatorDescendant","nodeContainsDescendant","Entered","Click","handleScrollOut","ScrollOut","EscapeKeypress","FocusOut","_this$overlayRef$curr","changeTransitionStatus","focusContent","oldProps","clearTransitionTimeout","Exiting","preventScroll","rootNode","descendant","PopoverComponent","activatorWrapper","preventFocusOnClose","ariaHaspopup","activatorNode","setActivatorNode","activatorContainer","WrapperComponent","_overlayRef$current","setAccessibilityAttributes","focusableActivator","activatorDisabled","setActivatorAttributes","isInPortal","Item","fill","LegacyStack","spacing","distribution","noWrap","itemMarkup","TextContainer","SvgCaretDownMinor","SvgSelectMinor","SvgCaretUpMinor","useDisableClick","handleClickWrapper","Spinner","hasFocusableParent","spinnerSVGMarkup","xmlns","spanAttributes","accessibilityLabelMarkup","EphemeralPresenceManagerContext","useEphemeralPresenceManager","ephemeralPresenceManager","TooltipOverlay","instant","containerClassName","measured","contentClassName","HOVER_OUT_TIMEOUT","Tooltip","dismissOnMouseOut","originalActive","hoverDelay","hasUnderline","persistOnClick","onOpen","setActiveTrue","handleBlur","togglePersisting","presenceList","addPresence","removePresence","mouseEntered","shouldAnimate","setShouldAnimate","hoverDelayTimeout","hoverOutTimeout","handleFocus","accessibilityNode","handleOpen","tooltip","handleClose","handleKeyUp","wrapperClassNames","TooltipContainer","HasUnderline","onBlur","activatorContainerRef","onKeyUp","HorizontalStack","align","blockAlign","gap","badge","helpText","ellipsis","prefixMarkup","Prefix","backgroundImage","contentText","TruncateText","badgeMarkup","Suffix","suffixMarkup","textMarkup","contentElement","scrollMarkup","control","textRef","isOverflowing","setIsOverflowing","scrollWidth","hasMultipleSections","isFirst","actionRole","onActionAnyItem","actionMarkup","itemOnAction","sectionRole","titleMarkup","sectionMarkup","ActionList","sections","finalSections","actionListRef","elementRole","elementTabIndex","DownArrow","wrapFocusNextFocusableMenuItem","UpArrow","wrapFocusPreviousFocusableMenuItem","UnstyledButton","buttonMarkup","download","pressed","ariaControls","ariaExpanded","ariaDescribedBy","ariaChecked","onKeyPress","commonProps","interactiveProps","onPointerDown","disclosure","textAlign","connectedDisclosure","primaryPlain","iconOnly","disclosureMarkup","DisclosureIcon","getDisclosureIconSource","iconSource","iconMarkup","childMarkup","disclosureActive","setDisclosureActive","toggleDisclosureActive","connectedDisclosureMarkup","connectedDisclosureClassName","ConnectedDisclosure","defaultLabel","disclosureLabel","connectedDisclosureActivator","CaretDownMinor","linkProps","ConnectedDisclosureWrapper","SelectMinor","CaretUpMinor","linkContent","actionContent","activatorContent","customWidth","badgeProps","messageMarkup","ActivatorWrapper","Activator","MenuItems","Status","Image","sourceSet","crossOrigin","onLoad","finalSourceSet","subSource","handleLoad","srcSet","STYLE_CLASSES","Avatar","initials","customer","shape","setStatus","Pending","handleError","Errored","Loaded","hasImage","nameString","splitInitials","imageHasLoaded","xorHash","styleClass","textClassName","long","imageClassName","imageMarkUp","avatarBody","dy","textAnchor","svgMarkup","Initials","FrameContext","useFrame","TopBar","showNavigationToggle","userMenu","searchResults","searchField","secondaryMenu","searchResultsVisible","searchResultsOverlayVisible","onNavigationToggle","onSearchResultsDismiss","contextControl","logoSuffix","logo","forceTrueFocused","forceFalseFocused","iconClassName","navigationButtonMarkup","MobileHamburgerMajor","contextMarkup","topBarSource","searchMarkup","SearchField","onChange","showFocusBorder","forceActive","setForceActive","searchId","handleChange","handleClear","clearMarkup","CircleCancelMinor","htmlFor","autoCapitalize","autoComplete","autoCorrect","SearchMinor","UserMenu","avatar","onToggle","customActivator","showIndicator","activatorContentMarkup","WithinContentContext","NavigationContext","SvgHorizontalDotsMinor","Collapsible","expandOnPrint","preventMeasuringOnChildrenUpdate","_preventMeasuringOnChildrenUpdate","onAnimationEnd","setHeight","isOpen","setIsOpen","animationState","setAnimationState","collapsibleContainer","isFullyOpen","isFullyClosed","wrapperClassName","transitionDisabled","transitionProp","zeroDurationRegex","isTransitionDisabled","collapsibleStyles","transitionDuration","transitionTimingFunction","timingFunction","handleCompleteAnimation","startAnimation","onTransitionEnd","Secondary","List","MediaQueryContext","useMediaQuery","mediaQuery","Indicator","pulse","pulseIndicator","MAX_SECONDARY_ACTIONS","TOOLTIP_HOVER_DELAY","MatchState","subNavigationItems","displayActionsOnHover","selectedOverride","new","isNew","exactMatch","matchPaths","excludePaths","onToggleExpandedState","shouldResizeIcon","truncateText","isNavigationCollapsed","secondaryNavigationId","onNavigationDismiss","navTextRef","isTruncated","setIsTruncated","navTextNode","subNavigationItem","wrappedBadgeMarkup","itemLabelMarkup","ListItem","ItemWrapper","ItemInnerWrapper","ItemInnerDisabled","getClickHandler","secondaryActionMarkup","SecondaryActions","ItemSecondaryAction","itemContentMarkup","outerContentMarkup","matchState","matchStateForItem","matchingSubNavigationItems","subMatchState","MatchForced","MatchUrl","MatchPaths","childIsActive","showExpanded","canBeActive","itemClassName","subNavigationActive","secondaryNavigationMarkup","longestMatch","firstUrl","secondUrl","SecondaryNavigationClassName","SecondaryNavigation","itemLinkMarkup","linkMarkup","controlId","hasSubMenu","normalizeAriaAttributes","ItemWithFloatingActions","markup","SecondaryAction","normalizePathname","barePathname","endsWith","safeStartsWith","NoMatch","Excluded","safeEqual","ariaLabelledBy","logoMarkup","LogoContainer","hasLogoSuffix","LogoLink","Logo","mediaMarkup","ContextControl","PrimaryNavigation","rollup","separator","toggleExpanded","setExpandedFalse","animationFrame","expandedIndex","setExpandedIndex","hasSubNavItems","sectionHeadingMarkup","SectionHeading","itemsMarkup","toggleClassName","RollupToggle","ariaLabel","toggleRollup","HorizontalDotsMinor","activeItemIndex","activePath","itemUrl","sectionItems","additionalItems","additionalItemsId","activeItemsMarkup","RollupSection","startLoading","stopLoading","alignContentFlush","setContextualSaveBar","removeContextualSaveBar","useDeepCompareRef","comparator","isEqual","dependencyList","useDeepEffect","customCompare","showToast","hideToast","getChildMapping","mapFn","mapper","getProp","getNextChildMapping","nextProps","prevChildMapping","onExited","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","in","TransitionGroup","handleExited","contextValue","isMounting","firstRender","mounted","appear","currentChildMapping","childFactory","TransitionGroupContext","propTypes","subdued","titleHidden","forceReflow","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appearStatus","unmountOnExit","mountOnEnter","nextCallback","nextStatus","cancelNextCallback","getTimeouts","mounting","nodeRef","performEnter","performExit","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onExit","onExiting","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","replaceClassName","origClass","classToRemove","baseVal","CSSTransition","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","_this$resolveArgument2","_this$resolveArgument3","getClassNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","_addClass","_this$appliedClasses$","FocusManagerContext","Focus","TrapFocus","trapping","canSafelyFocus","trapFocusList","addFocusItem","removeFocusItem","useFocusManager","focusTrapWrapper","disableFocus","setDisableFocus","containerContentsHaveFocus","Tab","firstFocusableNode","lastFocusableNode","firstFocusable","focusFirstKeyboardFocusableNode","lastFocusable","focusLastKeyboardFocusableNode","Dialog","labelledBy","large","small","limitHeight","fullScreen","setClosing","containerNode","TransitionChild","FadeUp","fadeUpClasses","appearActive","enterActive","exitActive","HorizontalGrid","alignItems","formatHorizontalGrid","responsiveValue","getColumnValue","breakpointHorizontalGrid","column","SvgMobileCancelMajor","CloseButton","MobileCancelMajor","Header","closing","xs","Backdrop","belowNavigation","transparent","buttonsFrom","overrides","buttonFrom","Footer","primaryActionButton","secondaryActionButtons","iFrameName","onIFrameLoad","noScroll","iframeHeight","setIframeHeight","headerId","activatorRef","iframeTitle","dialog","handleEntered","activatorElement","isRef","handleIFrameLoad","iframe","_error","footerMarkup","scrollContainerMarkup","bodyMarkup","activatorMarkup","setRootProperty","isMountedRef","useIsMountedRef","setProgress","setAnimating","customStyles","CSSAnimation","inProp","setTransitionStatus","DiscardConfirmationModal","onDiscard","discardConfirmationModalVisible","toggleDiscardConfirmationModal","closeDiscardConfirmationModal","handleDiscardAction","discardActionContent","discardActionHandler","discardConfirmationModal","discardConfirmationModalMarkup","discardActionMarkup","saveActionContent","saveActionMarkup","imageMarkup","contextualSaveBarSource","contextControlMarkup","contentsClassName","SvgCancelSmallMinor","SvgDiamondAlertMinor","timeoutDuration","dismissMarkup","CancelSmallMinor","leadingIconMarkup","DiamondAlertMinor","ToastManager","toastMessages","toastNodes","updateToasts","targetInPos","currentToast","toastsMarkup","toastNode","toastClasses","enterDone","APP_FRAME_MAIN","FrameInner","skipFocused","globalRibbonHeight","loadingStack","showContextualSaveBar","globalRibbonContainer","navigationNode","setGlobalRibbonHeight","setGlobalRibbonRootProperty","hasToastById","toastId","globalRibbon","skipToContentTarget","handleNavigationDismiss","setGlobalRibbonContainer","handleNavKeydown","showMobileNavigation","navigation","topBar","navClassName","mobileNavHidden","mobileNavShowing","mobileNavAttributes","navigationMarkup","navTransitionClasses","loadingMarkup","contextualSaveBarMarkup","topBarMarkup","globalRibbonMarkup","skipClassName","skipTarget","skipMarkup","navigationAttributes","frameClassName","navigationOverlayMarkup","Frame","SCROLL_LOCKING_ATTRIBUTE","SCROLL_LOCKING_HIDDEN_ATTRIBUTE","SCROLL_LOCKING_WRAPPER_ATTRIBUTE","ScrollLockManager","scrollLocks","handleScrollLocking","scroll","isScrollBarVisible","resetScrollPosition","UniqueIdFactory","idGeneratorFactory","idGenerators","globalIdGeneratorFactory","OBJECT_NOTATION_MATCHER","keypath","getKeypath","mergeRecursively","inputObjA","objB","objA","isMergeableValue","REPLACE_REGEX","I18n","translation","objs","replacements","replacement","replacementData","translationKeyExists","FeaturesContext","MediaQueryProvider","setIsNavigationCollapsed","PortalsContainerComponent","_props","PortalsContainer","PortalsManager","setTrapFocusList","defaultState","EphemeralPresenceManager","presenceCounter","setPresenceCounter","prevList","previousValue","AppProvider","uniqueIdFactory","setBodyStyles","backgroundColor","linkComponent","intl","prevI18n","prevLinkComponent","SvgImportStoreMajor","SvgInventoryMajor","SvgBuyButtonMajor","SvgCartMajor","SvgCartDownMajor","cx","cy","SvgViewMajor","SvgBuyButtonButtonLayoutMajor","SvgSidebarRightMajor","SvgStarFilledMinor","PopStateEventType","getHistoryState","usr","createLocation","parsePath","substr","parsedPath","hashIndex","searchIndex","createClientSideURL","createPath","invariant","getUrlBasedHistory","createHref","validateLocation","v5Compat","globalHistory","Pop","handlePop","listen","encodeLocation","Push","historyState","pushState","Replace","replaceState","go","ResultType","matchRoutes","routes","locationArg","basename","stripBasename","branches","flattenRoutes","score","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","matchRouteBranch","safelyDecodeURI","parentsMeta","parentPath","flattenRoute","route","relativePath","caseSensitive","joinPaths","computeScore","_route$path","exploded","explodeOptionalSegments","segments","isOptional","required","restExploded","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","paramNames","warning","regexpSource","paramName","compilePath","captureGroups","splatValue","decodeURIComponent","safelyDecodeURIComponent","decodeURI","nextChar","cond","getInvalidPathError","field","getPathContributingMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","ErrorResponse","internal","isRouteErrorResponse","validMutationMethodsArr","validRequestMethodsArr","checkIfSnapshotChanged","inst","latestGetSnapshot","prevValue","nextValue","DataRouterContext","DataRouterStateContext","LocationContext","RouteContext","outlet","RouteErrorContext","useInRouterContext","useLocation","routePathnamesJson","activeRef","useResolvedPath","_temp2","DefaultErrorElement","useDataRouterState","DataRouterStateHook","UseRouteError","routeId","useCurrentRouteId","errors","useRouteError","lightgrey","preStyles","codeStyles","fontStyle","RenderErrorBoundary","errorInfo","routeContext","RenderedRoute","dataRouterContext","static","staticContext","errorElement","_deepestRenderedBoundaryId","_renderMatches","parentMatches","dataRouterState","renderedMatches","errorIndex","reduceRight","getChildren","DataRouterHook","hookName","useRouteContext","thisRoute","Route","_ref4","basenameProp","locationProp","navigationType","NavigationType","staticProp","navigationContext","trailingPathname","Routes","_ref5","dataRouterStateContext","routeMatch","parentParams","parentPathnameBase","locationFromContext","parsedLocationArg","useRoutes","createRoutesFromChildren","AwaitRenderStatus","treePath","loader","hasErrorBoundary","shouldRevalidate","BrowserRouter","historyRef","reloadDocument","preventScrollReset","_temp","joinedPathname","useHref","internalOnClick","replaceProp","navigate","isModifiedEvent","shouldProcessLinkClick","useLinkClickHandler","SvgEnableSelectionMinor","InlineError","fieldID","errorTextID","labelID","Label","requiredIndicator","RequiredIndicator","Labelled","labelHidden","helpTextMarkup","HelpText","helpTextID","errorMarkup","labelMarkup","LabelWrapper","PLACEHOLDER_VALUE","Select","optionsProp","labelAction","labelHiddenProp","labelInline","idProp","describedBy","normalizedOptions","normalizeOption","inlineLabelMarkup","selectedOption","optionOrGroup","isGroup","flattenOptions","getSelectedOption","SelectedOption","optionsMarkup","renderOption","Input","isString","normalizeStringOption","renderSingleOption","_prefix","SELECT_ALL_ITEMS","ResourceListContext","Bleed","marginInline","marginBlock","marginBlockStart","marginBlockEnd","marginInlineStart","marginInlineEnd","getNegativeMargins","directionValues","negativeMarginBlockStart","negativeMarginBlockEnd","negativeMarginInlineStart","negativeMarginInlineEnd","SvgMinusMinor","SvgTickSmallMinor","ListboxContext","WithinListboxContext","ActionContext","Choice","onMouseOut","descriptionMarkup","Descriptions","Checkbox","ariaDescribedByProp","inputNode","mouseOver","handleMouseOver","handleMouseOut","isWithinListbox","backdropClassName","isIndeterminate","isChecked","indeterminateAttributes","indeterminate","MinusMinor","TickSmallMinor","inputClassName","segmented","connectedTop","getUniqueCheckboxID","getUniqueOverlayID","BaseResourceItem","actionsMenuVisible","focusedInner","isSelected","checkboxId","overlayId","buttonOverlay","setNode","handleLargerSelectionArea","handleSelection","onSelectionChange","selectMode","anchor","handleActionsClick","handleCloseRequest","nextChildren","nextSelectedItems","restNextContext","restNextProps","restContext","nextSelectMode","shortcutActions","persistActions","selectable","hasBulkActions","resourceName","dataHref","ownedMarkup","handleMarkup","checkboxAccessibilityLabel","getAlignment","ResourceItem","listItemClassName","actionsMarkup","lgUp","Actions","disclosureAccessibilityLabel","lgDown","containerMarkup","sm","itemName","singular","accessibleMarkup","setBreakpoints","mediaQueryLists","useBreakpoints","DEBOUNCE_PERIOD","PADDING_IN_SELECT_MODE","CheckableButton","onToggleAll","ariaLive","checkBoxRef","_checkBoxRef$current","SelectAllActions","paginatedSelectAllText","paginatedSelectAllAction","paginatedSelectAllActionMarkup","AllAction","hasTextAndAction","paginatedSelectAllMarkup","PaginatedSelectAll","checkableButtonProps","wrapperClasses","StickyInner","isSticky","setPlaceHolderNode","setStickyNode","stick","adjustPlaceHolderNode","onStickyChange","toggleAttribute","paddingBottom","childrenContent","Sticky","useStickyManager","emptySearch","EmptySearchResult","withIllustration","altText","illustrationMarkup","BulkActionButton","indicator","showContentInButton","bulkActionButton","isActivatorForMoreActionsPopover","buttonContent","BulkActionMenu","isNewBadgeInBadgeActions","isVisible","toggleMenuVisibility","BulkActionsInner","popoverVisible","containerWidth","buttonsNode","moreActionsNode","groupNode","promotedActionsWidths","bulkActionsWidth","addedMoreActionsWidthForMeasuring","setButtonsNode","setContainerNode","setMoreActionsNode","togglePopover","onMoreActionPopoverToggle","numberOfPromotedActionsToRender","promotedActions","containerWidthMinusAdditionalWidth","sufficientSpace","totalWidth","actionSections","validList","instanceOfBulkActionListSectionArray","instanceOfBulkActionArray","rolledInPromotedActions","instanceOfMenuGroupDescriptor","promotedActionsMarkup","activatorLabel","combinedActions","actionsPopover","groupContent","groupClassName","ButtonGroupWrapper","ButtonGroupInner","_item$badge","BulkActions","getAllItemsOnPage","idForItem","isBreakpointsXS","defaultIdForItem","ResourceList","filterControl","flushFilters","emptyState","emptySearchState","resourceNameProp","promotedBulkActions","bulkActions","isFiltered","hasMoreItems","headerContent","showHeader","totalItemsCount","sortValue","sortOptions","alternateTool","onSortChange","renderItem","resolveItemId","setSelectMode","loadingPosition","setLoadingPositionState","lastSelected","setLastSelected","smallScreen","setSmallScreen","checkableButtonRef","bulkActionsIntersectionRef","tableMeasurerRef","isBulkActionsSticky","bulkActionsAbsoluteOffset","bulkActionsMaxWidth","bulkActionsOffsetLeft","computeTableDimensions","hasIOSupport","IntersectionObserver","setIsSticky","setBulkActionsAbsoluteOffset","setBulkActionsMaxWidth","setBulkActionsOffsetLeft","observerRef","isIntersecting","rootMargin","threshold","paddingHeight","debouncedComputeTableHeight","useIsBulkActionsSticky","defaultResourceName","plural","handleSelectMode","newSmallScreen","isSelectable","headerTitle","itemsCount","selectAllActionsAccessibilityLabel","selectedItemsCount","allSelected","resourceNameSingular","itemsLength","resourceNamePlural","emptySearchResultText","handleSelectAllItemsInStore","newlySelectedItems","setLoadingPosition","viewportHeight","spinnerHeight","spinnerPosition","itemsExist","handleToggleAll","_checkableButtonRef$c","selectAllActionsMarkup","SelectAllActionsWrapper","selectAllActionsLabel","selectState","selectAllSelectState","bulkActionClassNames","BulkActionsWrapper","BulkActionsWrapperSticky","bulkActionsMarkup","onSelectModeToggle","filterControlMarkup","FiltersWrapper","sortingSelectMarkup","SortWrapper","alternateToolMarkup","AlternateToolWrapper","headerTitleMarkup","HeaderTitleWrapper","selectButtonMarkup","SelectButtonWrapper","EnableSelectionMinor","checkableButtonMarkup","CheckableButtonWrapper","needsHeader","headerWrapperOverlay","showEmptyState","showEmptySearchState","headerMarkup","HeaderOuterWrapper","headerClassName","HeaderWrapper","HeaderContentWrapper","emptySearchStateMarkup","EmptySearchResultWrapper","emptyStateMarkup","spinnerStyle","paddingTop","spinnerSize","loadingOverlay","SpinnerContainer","LoadingOverlay","loadingWithoutItemsMarkup","resourceListClassName","disabledPointerEvents","disableTextSelection","listMarkup","selectedIds","currentSelected","handleMultiSelectionChange","selectedId","resourceListWrapperClasses","ResourceListWrapper","ResourceListWrapperWithBulkActions","Stack","VariationValue","TextStyle","variation","Code","variationElement","isInterface","isReactElement","SvgArrowLeftMinor","Breadcrumbs","backAction","ArrowLeftMinor","breadcrumbMarkup","Breadcrumb","EditableTarget","SvgChevronLeftMinor","SvgChevronRightMinor","Pagination","hasPrevious","nextURL","previousURL","onNext","onPrevious","nextTooltip","previousTooltip","nextKeys","previousKeys","accessibilityLabels","navLabel","previousLabel","nextLabel","ChevronLeftMinor","constructedPrevious","ChevronRightMinor","constructedNext","previousHandler","previousButtonEvents","handleCallback","clickPaginationLink","nextButtonEvents","labelTextMarkup","Textarea","hasAttribute","ContentEditable","isInputFocused","Title","subtitle","titleMetadata","compactTitle","TitleWithSubtitle","titleMetadataMarkup","TitleMetadata","wrappedTitleMarkup","TitleWithMetadataWrapper","subtitleMarkup","SubTitle","SubtitleCompact","RollupActions","rollupOpen","toggleRollupOpen","RollupActivator","useEventListener","handlerRef","targetElement","eventOptions","eventListener","getOffsetWidth","secondaryActionsRef","_secondaryActionsRef$","MenuGroup","details","handleOffsetWidth","popoverActivator","Details","ACTION_SPACING","onActionRollup","actionsLayoutRef","menuGroupWidthRef","availableWidthRef","actionsAndGroupsLengthRef","timesMeasured","actionWidthsRef","rollupActiveRef","activeMenuGroup","setActiveMenuGroup","measuredActions","setMeasuredActions","showable","rolledUp","defaultRollupGroup","lastMenuGroup","lastMenuGroupWidth","handleActionsOffsetWidth","handleMenuGroupToggle","handleMenuGroupClose","updateActions","actionsAndGroups","currentMeasuredActions","measureActions","currentAvailableWidth","newShowableActions","newRolledUpActions","isRollupActive","rollUppableActionsMarkup","groupsMarkup","rolledUpGroup","isMenuGroup","groupActions","isDefaultGroup","isLastMenuGroup","finalRolledUpActions","finalRolledUpSectionGroups","sectionAction","groupedActionsMarkup","ActionsLayout","actionOrMenuGroup","ActionMenu","rollupActionsLabel","actionMenuClassNames","rollupSections","convertGroupToSection","SHORT_TITLE","REALLY_SHORT_TITLE","LONG_TITLE","additionalMetadata","pagination","additionalNavigation","isSingleRow","BreadcrumbWrapper","paginationMarkup","PaginationWrapper","additionalNavigationMarkup","pageTitleMarkup","TitleWrapper","primaryActionMarkup","PrimaryActionMarkup","actionMenuMarkup","hasGroupsWithActions","additionalMetadataMarkup","AdditionalMetaData","headerClassNames","hasNavigation","hasActionMenu","mobileView","noBreadcrumbs","mediumTitle","longTitle","slot1","slot2","slot3","slot4","slot5","slot6","layouts","mobileCompact","slots","mobileDefault","desktopCompact","desktopDefault","layout","determineLayout","notNull","Row","RightAlign","shouldShowIconOnly","PrimaryActionWrapper","Page","narrowWidth","divider","pageClassName","hasHeaderContent","oneHalf","oneThird","Layout","AnnotatedSection","SvgCircleTickMajor","SvgCircleInformationMajor","SvgCircleAlertMajor","SvgDiamondAlertMajor","Banner","bannerRef","stopAnnouncements","hideIcon","withinContentContainer","wrapperRef","handleMouseUp","shouldShowFocus","setShouldShowFocus","_wrapperRef$current","useBannerFocus","defaultIcon","iconColor","ariaRoleType","CircleTickMajor","CircleInformationMajor","CircleAlertMajor","DiamondAlertMajor","useBannerAttributes","iconName","hasDismiss","keyFocused","withinPage","headingMarkup","spinnerMarkup","unstyledButtonFrom","PrimaryAction","SecondaryActionFrom","dismissButton","Dismiss","ContentWrapper","titleAreaMarkup","Card","primaryFooterAction","secondaryFooterActions","secondaryFooterActionsDisclosureText","footerActionAlignment","secondaryActionsPopoverOpen","toggleSecondaryActionsPopoverOpen","primaryFooterActionMarkup","secondaryFooterActionsMarkup","Subsection","DisplayText","LegacyCard","SettingAction","Setting","getUniqueSettingToggleId","SettingToggle","condensed","grouped","titleID","helpTextElement","titleElement","Items","FormLayout","wrapChildren","handleStep","handleMouseDown","Segment","SpinnerIcon","Connected","leftConnectionMarkup","rightConnectionMarkup","Resizer","currentHeight","currentHeightProp","minimumLines","onHeightChange","minimumLinesNode","minimumLinesMarkup","DummyInput","getContentsForMinimumLines","handleHeightCheck","newHeight","getFinalContents","ENTITIES_TO_REPLACE","replaceEntity","entity","line","TextField","verticalContent","clearButton","readOnly","multiline","connectedRight","connectedLeft","largeStep","maxLength","minLength","inputMode","spellCheck","ariaOwns","ariaActiveDescendant","ariaAutocomplete","showCharacterCount","monospaced","selectTextOnFocus","suggestion","onClearButtonClick","onSpinnerChange","borderless","setFocus","isAfterInitial","inputRef","textAreaRef","prefixRef","suffixRef","verticalContentRef","buttonPressTimer","spinnerRef","setSelectionRange","normalizedValue","normalizedStep","normalizedMax","normalizedMin","hasValue","inputType","isNumericType","characterCountMarkup","characterCount","characterCountLabel","limit","characterCountClassName","CharacterCount","AlignFieldBottom","characterCountText","handleClickChild","clearButtonMarkup","ClearButton","handleNumberChange","steps","stepAmount","dpl","numericValue","decimalPlaces","newValue","toFixed","handleButtonRelease","handleButtonPress","onChangeInterval","handleOnBlur","handleExpandingResize","resizer","handleOnFocus","getRows","normalizeAriaMultiline","Enter","Home","End","PageUp","PageDown","onInput","inputWithVerticalContentMarkup","VerticalContent","inputMarkup","backdropMarkup","_inputRef$current","_inputRef$current3","inputRefRole","_inputRef$current2","isPrefixOrSuffix","isVerticalContent","isInput","isSpinner","PageActions","secondaryActionsMarkup","VerticalStack","inlineAlign","reverseOrder","SkeletonPage","titleContent","SkeletonDisplayText","SkeletonBodyText","lines","bodyTextLines","SkeletonPageCustom","fetchApi","cusFetch","Authorization","customFetch","Dashboard","setIsLoading","saveChanges","handleEnabledChange","handleLiveModeChange","handleQuickLoadChange","nextOnboardingStep","initState","model","onboarding","common","showSetupGuideBanner","showAppEmbedBanner","showDiscountModal","discount","populateData","getQuickStats","setSaveChanges","setNextOnboardingStep","fieldName","setIsDirty","handleOnboardingChange","currentStep","demoUrl","doOnboardingStep","completeOnboarding","toggleModalReviewActive","liveMode","appBridgeRedirectExternal","shopName","calcOnboardingProgress","completedSteps","step2Done","step23Done","step3Done","getOnboardingActionText","txt","showOnboardingSecondaryAction","getOnboardingSecondaryActionText","setOnboardingCurrentStep","prevStep","nextStep","showOnboardingStep3","shopQueryString","BuyButtonMajor","stickyAddToCartBarEnabled","CartMajor","stickyCartEnabled","CartDownMajor","quickBuyButtonEnabled","ViewMajor","quickViewEnabled","BuyButtonButtonLayoutMajor","stickyCheckoutBarEnabled","SidebarRightMajor","cartSliderEnabled","widgets","sgb","appEmbeddUrl","ownerName","trialDaysLeft","appBridgeRedirect","isAppEmbedEnabled","quickStats","totalClicks","totalRevenue","currency","skipCart","ghostEnabled","spiderEnabled","batsEnabled","batsXTimes","batsEveryX","santaEnabled","hatBallEnabled","snowEnabled","angelEnabled","heartsEnabled","showFallingHearts","topSpacing","isNav","redirectUrl","onboardingStep2Done","onboardingStep23Done","onboardingStep3Done","setToastActive","sharedStyles","DualThumb","sanitizeValue","trackWrapper","thumbLower","thumbUpper","setTrackPosition","thumbSize","adjustedTrackWidth","adjustedTrackLeft","minValuePosition","handleMouseDownThumbLower","registerMouseMoveHandler","handleMouseMoveThumbLower","valueUpper","actualXPosition","Upper","handleTouchStartThumbLower","registerTouchMoveHandler","handleTouchMoveThumbLower","handleMouseDownThumbUpper","handleMouseMoveThumbUpper","valueLower","Lower","handleTouchStartThumbUpper","handleTouchMoveThumbUpper","handleKeypressLower","incrementValueLower","decrementValueLower","RightArrow","LeftArrow","handleKeypressUpper","incrementValueUpper","decrementValueUpper","dispatchValue","dirtyValue","sanitizedValue","isTupleEqual","handleMouseDownTrack","clickXPosition","handleTouchStartTrack","dirtyXPosition","output","idLower","idUpper","trackWrapperClassName","TrackWrapper","thumbLowerClassName","Thumbs","ThumbLower","thumbUpperClassName","ThumbUpper","leftPositionThumbLower","leftPositionThumbUpper","outputLowerClassName","Output","OutputLower","outputMarkupLower","OutputBubble","outputUpperClassName","OutputUpper","outputMarkupUpper","cssVars","RangeSlider","upperValue","lowerMin","inBoundsUpper","roundedToStep","lowerValue","upperMax","inBoundsLower","maxLowerValue","minUpperValue","SingleThumb","clampedValue","sliderProgress","sign","outputMarkup","InputWrapper","sharedProps","isDualThumb","SvgInfoMinor","roundNumberToDecimalPlaces","decimals","exponent","roundedExponent","rgbString","alpha","rgbFromHueAndChroma","hue","chroma","huePrime","intermediateValue","hsbToRgb","saturation","brightness","chromaBrightnessDelta","rgbToHsbl","largestComponent","smallestComponent","lightness","baseSaturation","huePercentage","clampedHue","rgbToHsb","VERTICAL_PADDING","calculateDraggerY","sliderHeight","draggerHeight","slidableArea","offsetForAlpha","alphaForDraggerY","alphaForOffset","isDragging","Slidable","draggerNode","setDraggerNode","startDrag","isMouseDownEvent","handleDraggerMove","handleDragEnd","handleMove","isMouseMoveEvent","onDraggerHeight","draggerX","draggerY","draggerPositioning","moveListener","touchMoveListener","endDragListener","touchEndListener","touchCancelListener","AlphaPicker","setSliderHeight","setDraggerHeight","rgb","alphaGradientForColor","offsetForHue","hueForDraggerY","hueForOffset","HuePicker","ColorPicker","pickerSize","colorNode","setColorNode","handleHueChange","handleAlphaChange","handlePickerDrag","allowAlpha","providedAlpha","colorString","alphaSliderMarkup","ColorPickerCustom","hsbColor","rgbStringToHsb","handleColorChange","rgbaColor","handleColorStringChange","handlePopoverOpen","handlePopoverClose","rgbValues","SvgDesktopMajor","SvgMobileMajor","btnAnimation","StickyAddToCartBar","togglePreviewActive","prevActive","previewActive","previewDesktop","satcb_animateCss","handlePreview","fontFamily","satcbBarFont","barBackgroundColor","useFullWidthButtonMobile","showProductImageDesktop","showProductImageMobile","productTitleColor","proTitleFontSize","showProductTitleDesktop","showProductTitleMobile","showReviewStarsDesktop","showReviewStarsMobile","itemProp","buttonTextColor","proButtonFontSize","buttonColor","buttonText","priceColor","proPriceFontSize","showPriceDesktop","showPriceMobile","comparePriceColor","showComparePriceDesktop","showComparePriceMobile","variantsEnabledDesktop","variantsEnabledMobile","qtyEnabledDesktop","qtyEnabledMobile","float","con","DesktopMajor","MobileMajor","buttonAnimation","trackingEnabled","InfoMinor","showOnDesktop","showOnLoadDesktop","hideOriginalButtonDesktop","qtyAddRemoveEnabledDesktop","barPositionDesktop","customPositionDesktop","zIndexDesktop","showOnMobile","showOnLoadMobile","hideOriginalButtonMobile","qtyAddRemoveEnabledMobile","barPositionMobile","customPositionMobile","zIndexMobile","StickyCheckoutBar","fontFace","barTextColor","showTotalItemsDesktop","priceItemFontSize","ItemsText","buttonFontSize","buttonHoverColor","buttonTextHoverColor","showTotalPriceDesktop","showTotalItemsMobile","textDecorationLine","showTotalPriceMobile","ItemText","StickyCart","stickyCartIcon","totalQuantityBackgroundColor","totalQuantityTextColor","hideOnCartPage","hideWhenEmpty","animateATC","postAction","accept","files","cartIconBase64","reader","FileReader","readAsDataURL","alert","toBase64","QuickBuyButton","showQuantitySelector","buttonStyle","cartIcon","positionTB","addToCart_Translation","buyNow_Translation","showPrice","disableUrls","soldOut_Translation","addedToCartMessage_Translation","QuickView","mobileButtonType","positionMobile","buttonBackgroundColor","buttonBorderColor","quickView_Translation","quantity_Translation","viewDetails_Translation","viewCart_Translation","or_Translation","continueShopping_Translation","atcColor","atcBackgroundColor","atcBorderColor","buyNowColor","buyNowBackgroundColor","buyNowBorderColor","viewDetailsColor","viewDetailsBackgroundColor","viewDetailsBorderColor","productPriceColor","productComparePriceColor","isSection","arraysAreEqual","firstArray","secondArray","secondItem","Option","verticalAlign","onPointerEnter","toggleFocused","handlePointerEnter","Media","singleSelectClassName","SingleSelectOption","multiSelectClassName","checkBoxRole","optionMarkup","OptionList","optionRole","onPointerEnterOption","onFocusOption","setNormalizedOptions","createNormalizedOptions","optionArraysAreEqual","sectionIndex","optionIndex","selectedValue","foundIndex","newSelection","isFirstOption","optionId","testSectionsPropEquality","previousSection","currentSection","previousOptions","optionsAreEqual","titlesAreEqual","EmojiPickerCustom","handleEmojiChange","Tag","onRemove","tagTitle","removeButton","tagContent","ComboboxTextFieldContext","ComboboxListboxContext","ComboboxListboxOptionContext","TextOption","isAction","textOptionClassName","useListbox","listbox","setLoading","listboxSectionDataSelector","listboxWithinSectionDataSelector","SectionContext","useSection","MappedActionContext","onOptionSelect","listItemRef","domId","sectionId","isWithinSection","handleOptionSelect","sectionAttributes","legacyRoleSupport","AutoSelection","OPTION_SELECTOR","OPTION_VALUE_ATTRIBUTE","OPTION_ACTION_ATTRIBUTE","OPTION_FOCUS_ATTRIBUTE","Listbox","autoSelection","FirstSelected","enableKeyboardControl","customListId","onActiveOptionChange","activeOption","setActiveOption","lazyLoading","setLazyLoading","setCurrentOptions","keyboardEventsEnabled","enableKeyboardEvents","disableKeyboardEvents","listId","scrollableRef","listboxRef","listboxId","textFieldLabelId","textFieldFocused","willLoadMoreOptions","setActiveOptionId","setListboxId","onOptionSelected","onKeyToBottom","inCombobox","getNavigableOptions","getFirstNavigableOption","hasSelectedOptions","elementIndex","isInteractable","isFirstNavigableOption","handleScrollIntoView","listTop","listBottom","optionHeight","optionTop","optionBottom","scrollBy","scrollOptionIntoView","handleScrollIntoViewDebounced","handleKeyToBottom","handleChangeActiveOption","nextOption","getFormattedOption","resetActiveOption","_nextOption","_nextOption2","_nextOption3","nextOptions","nextActiveOption","optionIsAlreadyActive","actionContentHasUpdated","currentValues","nextValues","listIsUnchanged","listIsAppended","None","getNextIndex","lastIndex","getNextValidOption","totalOptions","_element","triggerLazyLoad","handleArrow","handleDownArrow","handleUpArrow","handleEnter","listboxContext","MappedOption","singleSelection","mediaClassNames","Combobox","popoverActive","setPopoverActive","activeOptionId","setTextFieldLabelId","setTextFieldFocused","shouldOpen","_ref$current","textFieldContextValue","onTextFieldFocus","onTextFieldChange","onTextFieldBlur","listboxOptionContextValue","listboxContextValue","comboboxTextFieldContext","useComboboxTextField","textFieldId","labelId","TextField$1","MappedAction","wrapOverflow","contentOverflowStyle","actionClassNames","Autocomplete","textField","listTitle","actionBefore","willLoadMoreResults","onLoadMoreResults","buildMappedOptionFromOption","conditionalOptions","noOptionsAvailable","optionList","updateSelection","First","CountryPickerCustom","filteredOptions","selectedOptions","handleSearch","filterRegex","resultOptions","handleSelect","handleRemove","tagsMarkup","tagLabel","CartSliderShippingBar","getBeforeAmountMessage_ShippingBar","totalPrice","minAmount","minAmount_ShippingBar","initialMessageBeforeAmount_ShippingBar","progressMessageBeforeAmount_ShippingBar","getAmmount_ShippingBar","getAfterAmountMessage_ShippingBar","initialMessageAfterAmount_ShippingBar","progressMessageAfterAmount_ShippingBar","getGoalAchievedMessage_ShippingBar","showShopperCountry_ShippingBar","goalAchievedMessage_ShippingBar","getCountryMessage_ShippingBar","messageBeforeCountry_ShippingBar","messageAfterCountry_ShippingBar","getProgress_ShippingBar","showCloseButton_ShippingBar","backgroundColor_ShippingBar","textColor_ShippingBar","amountColor_ShippingBar","showProgressBar_ShippingBar","progressBackgroundColor_ShippingBar","progressBarColor_ShippingBar","CartSliderCartReserved","showTimer","passedSecond","passedSeconds","passedTime","countdownMinutes_CartReserved","actualTime","actualDate","getUTCMinutes","getUTCSeconds","backgroundColor_CartReserved","textColor_CartReserved","borderColor_CartReserved","messageFontSize_CartReserved","borderRadius_CartReserved","paddingRight","emoji_CartReserved","message_CartReserved","messageBeforeTimer_CartReserved","colorOfTimer_CartReserved","messageAfterTimer_CartReserved","CartSliderInCartUpsell","handleChangeDemoQty","handleDemoQtyUpDown","demoQty","titleColor_InCartUpsell","titleBeforeText_Translation_InCartUpsell","overwriteProductName_Translation_InCartUpsell","product","titleAfterText_Translation_InCartUpsell","imageUrl","productLinkColor_InCartUpsell","showVariantsDropdown_InCartUpsell","showQuantityBox_InCartUpsell","showPrice_InCartUpsell","showComparePrice_InCartUpsell","productComparePriceColor_InCartUpsell","defaultVariant","price","productPriceColor_InCartUpsell","buttonBackgroundColor_InCartUpsell","buttonTextColor_InCartUpsell","addToCart_Translation_InCartUpsell","CartSlider","handleSectionSettings","updateSectionSettingsPreview","getDefaultFontValuesSectionSettings","handleCartReserve","getDefaultFontValuesCartReserve","updateCartReservePreview","getDefaultFontValuesInCartUpsell","updateInCartUpsellPreview","handleInCartUpsell","handleShippingCart","updateShippingCartPreview","getDefaultFontValuesShippingCart","handleChangeOptions","removeItem","DefaultFontSizeSectionSettings","DefaultFontSizeCartReserve","DefaultFontSizeInCartUpSell","DefaultFontSizeShippingCart","selectedBundles","visibleItem","closeAfterSeconds","notShowHours_CartReserved","bundledProductsCount_InCartUpsell","shippingCartText1","fontSizes","defaultFont","stepVal","newSize","inCartUpsellText1","inCartUpsellTitle","inCartUpsellQty","inCartUpsellPrice","inCartUpsellBtn","countVal","subTotal","subTotalPrice","textShipping","checkoutBtn","viewCart","continueShopping","proTitle","proQuantity","proPrice","proVariant","Value","cartReserveText1","cartReserveText2","cartReserveTime","cartReserveText3","selectBundles","deleteBundles","bundles_InCartUpsell","showDemo","minValue","hasError","getCurrencySymbol","symbol","lblCustomBundles","lblSmartRecommendation","lblGlobalRecommendation","lblSameCollection","lblSameProductType","lblSameVendor","lblRandomProduct","cartTitle_Translation","enabled_CartReserved","position_CartReserved","enabled_ShippingBar","position_ShippingBar","demoProduct","enabled_InCartUpsell","position_InCartUpsell","cartEmptyText_Translation","showTrustBadges","justifyContent","showTrustBadgesVisa","rx","stroke","showTrustBadgesMastercard","showTrustBadgesAmericanExpress","showTrustBadgesPaypal","showTrustBadgesGPay","showTrustBadgesApplePay","stickyFooter","subtotal_Translation","taxesAndShippingNote_Translation","checkoutButtonBackgroundColor","checkoutButtonColor","checkoutButtonText_Translation","showViewCart","viewCartText_Translation","showContinueShopping","continueShoppingText_Translation","openOnAddToCart","closeAfter","cartButtonCSSSelector","fontStepValIncrease","titleFontSize","selectedRemoveProductOption_CartReserved","clearLowQuantityItemsFromCartOnTimerEnd_CartReserved","lowQuantityThreshold_CartReserved","cartInfoFontSize_CartReserved","countries","eligibleCountries_ShippingBar","shippingFontSize_ShippingBar","trackingEnabled_InCartUpsell","buyNow_Translation_InCartUpsell","soldOut_Translation_InCartUpsell","addedToCartMessage_Translation_InCartUpsell","backgroundColor_InCartUpsell","buttonBackgroundColorOnHover_InCartUpsell","buttonTextColorOnHover_InCartUpsell","cartFontSize_InCartUpsell","setBundleID","globalBundlesEnabled_InCartUpsell","recommendationMethods_InCartUpsell","randomOrder_InCartUpsell","showCouponForm","textBoxPlaceholder_Translation","applyButtonText_Translation","validCouponCodeNote_Translation","invalidCouponCodeNote_Translation","applyButtonBackgroundColor","applyButtonColor","userName","commonResponse","commonData","tgl","clearCartOnTimerEnd_CartReserved","Advanced","customCSS","customJavaScript","adminEnabled","formSelector","buyButtonSelector","variantsSelector","reviewsStarsSelector","priceSelector","wasPriceSelector","quickBuySelector","quickBuyTextButtonSelector","homepageProductUrl","Thumbnail","EmptyState","heading","largeImage","imageContained","footerContent","imageContainedClass","sizes","footerContentMarkup","headingSize","childrenMarkup","textContentMarkup","detailsMarkup","Analytics","topPerformers","imgSrc","mobileClicks","desktopClicks","totalPriceFormatted","mostRecentClicks","priceFormatted","moment","utc","local","format","Login","shopNameError","logIn","submitLogin","discountCode","SvgUploadMajor","capitalize","wordLower","dragEvents","fileAccepted","acceptedFiles","fileName","baseMimeType","validType","getDataTransferFiles","isDragEvent","dt","isChangeEvent","defaultAllowMultiple","createAllowMultipleKey","DropZoneContext","DropZone","dropOnPage","overlayText","errorOverlayText","openFileDialog","variableHeight","onFileDialogClose","customValidator","onDrop","onDropAccepted","onDropRejected","onDragEnter","onDragOver","onDragLeave","dragTargets","adjustSize","setMeasuring","setSize","setDragging","internalError","setInternalError","getValidatedFiles","rejectedFiles","handleDrop","stopEvent","fileList","handleDragEnter","handleDragOver","handleDragLeave","compareNode","dropNode","typeSuffix","allowMultipleKey","overlayTextWithDefault","errorOverlayTextWithDefault","labelValue","labelHiddenValue","hasOutline","dragOverlay","UploadMajor","dragErrorOverlay","triggerFileDialog","Overlay","onDragStart","Container","FileUpload","actionTitle","actionHint","fileUploadClassName","actionHintMarkup","viewMarkup","Caption","Form","acceptCharset","encType","implicitSubmit","noValidate","onSubmit","handleSubmit","autoCompleteInputs","normalizeAutoComplete","submitMarkup","Support","toggleToastActive","toastActive","maxFileSize","invalidEmail","storeUrl","handleDropZoneDrop","tFiles","totalFileSize","deleteFile","validImageTypes","fileUpload","uploadedFiles","createObjectURL","toastMarkup","sendCopy","storefrontPassword","formData","FormData","MoreApps","class","SkeletonPage2Custom","UpsellBundle","toggleModalProductsActive","selectProductsDone","idVar","products","modalProductsActive","productSearchTerm","productLoading","selectedProducts","browseProducts","searchProducts","selectProducts","searchedProducts","thumbImageUrl","removeProduct","modalProducts","titleBeforeText","titleAfterText","overwriteProductName","passbundleId","ids","term","UnpaidDashboard","urlSearchParams","AppBridgeProvider","SHOPIFY_API_KEY","routerConfig","appBridgeConfig","__SHOPIFY_DEV_HOST","bannerProps","useAuthenticatedFetch","fetchFunction","authUrlHeader","checkHeadersForReauthorization","QueryProvider","App","getBundleId","bundleId","handleLeaveNavigation","nextLocation","toggleModalLeaveActive","toggleMobileNavigationActive","toggleUserMenuActive","toggleModalPermissionsActive","handleDiscard","handleSave","handleModalLeave","handleReviewOuch","handleModalPermissions","handleLogOut","logOut","reInstall","isLoading","isDirty","mobileNavigationActive","userMenuActive","modalLeaveActive","modalReviewActive","modalReviewOuch","modalPermissionsActive","modalPermissionsGrantAccess","refreshId","isLoaded","redirectUri","Intercom","onbeforeunload","handleRate","userMenuActions","ImportStoreMajor","storefrontUrl","InventoryMajor","shopifyAdminUrl","userMenuMarkup","userNameInitials","navItemsArr","modalLeave","modalReview","StarFilledMinor","modalPermissions","appLogo","isEmbedded","inIframe","en","userId","app_id","intercomAppId","appName","phone","user_id","user_hash","userHash","created_at","createdAt","plan","planDisplayName","installed","installedAt","uninstalledAt","daysInstalled","coupon_redeem","couponRedeemed","coupon_value","couponValue","coupon_redeem_at","couponRedeemedAt","rootElement"],"sourceRoot":""}