{"version":3,"file":"spa.2bb2ddda288ef2829ad6.js","mappings":"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+M,EAAW7lC,GAChD,MAAmE,IAAI,KAAe,KAE1FusD,EAAWr1F,UAAUqvB,QAAU,SAAUvsB,EAAOijC,GAC5C,GAAIA,GAAYA,EAASjjC,MAErB,OADAijC,EAASjjC,MAAMA,IACR,EAEX,MAAMA,GAEVuyF,EAAWr1F,UAAUu2F,WAAa,SAAUr6C,GAExC,OADA97C,KAAKivB,QAAU6sB,EACR97C,MAEJi1F,EA1EM,GIrBNmB,GAA0B,SAAUhsF,EAAGmC,GAC9C,IAAIq2D,EACJ,IACIA,EAAa16D,KAAK6pE,UAAU3nE,GAEhC,MAAOkB,GACH,IAAI+qF,EAAkI,IAAI,KAAe,IAEzJ,MADAA,EAAWA,WAAa/qF,EAClB+qF,EAEV,OAAOzzB,GCXA0zB,GAAmB,SAAUC,EAAUrzF,EAAQhD,GACtD,IAAIwC,EAAQ,IAAIP,MAAMjC,GAKtB,MAJAwC,EAAMY,KAAO,cACbZ,EAAM6zF,SAAWA,EACjB7zF,EAAM8zF,WAAaD,EAAS/zF,OAC5BE,EAAMQ,OAASA,EACTR,GCLN,GAAiBrD,OAAOO,UAAUC,eCO/B,SAAS,GAAa42F,GAC3B,OAAgB,IAATA,GAA4B,KAATA,ECD5B,MAAMC,GAAgB,gCAEtB,SAASC,GAAgB74C,GACvB,OAAO84C,GAAgB94C,EAAI+4C,WAAW,IAGxC,MAAMD,GAAkB,CACtB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,MACA,MACA,MACA,UACA,MACA,MACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,GACA,GACA,MACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA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","sources":["webpack://nushopweb/webpack/runtime/create fake namespace object","webpack://nushopweb/webpack/runtime/load script","webpack://nushopweb/./node_modules/@loadable/component/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://nushopweb/./node_modules/@loadable/component/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://nushopweb/./node_modules/@loadable/component/dist/loadable.esm.js","webpack://nushopweb/./node_modules/@loadable/component/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://nushopweb/./node_modules/@loadable/component/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ActionButton.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ActionButtonModel.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ActionButtonWithConfirmation.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/BlackFridayIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ButtonModel.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/BuyButton.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/CheckIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Checkbox.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ChevronDownIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ChevronLeftIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ChevronRightIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ChevronUpIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ChristmasIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/CloseIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Col.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Colors.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/DelayedFocusTrap.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/DermoIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/useFixSafariAddressBarMovement-71f3291b.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Drawer.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/DrawerContext.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/styled-db52c42c.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Grid.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Heading.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/HeartIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/HeartOIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/HorizontalChevron.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/IconButton.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ImagePlaceholder.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/InfoCircleIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/InfoIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Input.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/InputError.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/InputHelp.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/InputGroup.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Label.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Link.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Modal.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ModalContext.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ModalModel.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/PowerOfBeautyIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Price.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ProductTileModel.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Ratings.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/RecomendedByDermatologistsIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Row.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/styled-ea676fb6.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Select.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/SkeletonElement.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/styled-3bb91521.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Spinner.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/SpinnerIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/StarIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Stars.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/withTheme.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/StyledChristmasIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/StyledDermoIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/StyledDropdown.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/SummerBlackFridayIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Tag.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/TagModel.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Text.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/TextAlign.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Tooltip-aa4269c8.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/TooltipModel.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/TruckIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/WarningIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/WishlistButton.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/_commonjsHelpers-41cdd1e7.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/_rollupPluginBabelHelpers-fc5c8eb1.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/breakpoints.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/contants-c1124f5c.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/createSvgIcon-89a7bcb8.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/css.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/debounce.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/index-19abfa9e.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/index-865c84cb.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/index-ad1298a0.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/index-ad56866d.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/index-cc00cee0.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/index-f865d2ff.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ThemeContext.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/index.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/keyframes.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/model.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/styled-fd5dd143.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/styled.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/theme.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/useBreakpointValue.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/usePrevious.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/utils-ec9be121.js","webpack://nushopweb/./node_modules/@notino/react-web-utils/dist/notino-react-web-utils.es5.js","webpack://nushopweb/./node_modules/@notino/web-tracking/dist/package/notino-web-tracking.es5.js","webpack://nushopweb/./node_modules/@react-spring/animated/dist/react-spring-animated.esm.js","webpack://nushopweb/./node_modules/@react-spring/core/dist/react-spring-core.esm.js","webpack://nushopweb/./node_modules/@react-spring/rafz/dist/react-spring-rafz.esm.js","webpack://nushopweb/./node_modules/@react-spring/shared/dist/react-spring-shared.esm.js","webpack://nushopweb/./node_modules/@react-spring/web/dist/react-spring-web.esm.js","webpack://nushopweb/./node_modules/@sentry/core/esm/exports.js","webpack://nushopweb/./node_modules/@sentry/core/esm/hub.js","webpack://nushopweb/./node_modules/@sentry/core/esm/scope.js","webpack://nushopweb/./node_modules/@sentry/core/esm/session.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/browser.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/is.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/logger.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/misc.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/node.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/env.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/object.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/string.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/syncpromise.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/time.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/worldwide.js","webpack://nushopweb/./node_modules/@wry/equality/lib/equality.esm.js","webpack://nushopweb/./node_modules/@wry/trie/lib/trie.esm.js","webpack://nushopweb/./node_modules/@wry/context/lib/context.esm.js","webpack://nushopweb/./node_modules/optimism/lib/bundle.esm.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/graphql/fragments.js","webpack://nushopweb/./node_modules/@apollo/client/cache/core/cache.js","webpack://nushopweb/./node_modules/@apollo/client/cache/core/types/common.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/common/objects.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/graphql/storeUtils.js","webpack://nushopweb/./node_modules/graphql/language/ast.mjs","webpack://nushopweb/./node_modules/graphql/language/kinds.mjs","webpack://nushopweb/./node_modules/graphql/language/visitor.mjs","webpack://nushopweb/./node_modules/@apollo/client/utilities/graphql/getFromAST.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/common/filterInPlace.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/graphql/transform.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/common/mergeDeep.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/graphql/directives.js","webpack://nushopweb/./node_modules/@apollo/client/cache/inmemory/helpers.js","webpack://nushopweb/./node_modules/@apollo/client/cache/inmemory/entityStore.js","webpack://nushopweb/./node_modules/@apollo/client/cache/inmemory/object-canon.js","webpack://nushopweb/./node_modules/@apollo/client/cache/inmemory/readFromStore.js","webpack://nushopweb/./node_modules/@apollo/client/cache/inmemory/reactiveVars.js","webpack://nushopweb/./node_modules/@apollo/client/cache/inmemory/key-extractor.js","webpack://nushopweb/./node_modules/@apollo/client/cache/inmemory/policies.js","webpack://nushopweb/./node_modules/@apollo/client/cache/inmemory/writeToStore.js","webpack://nushopweb/./node_modules/@apollo/client/cache/inmemory/inMemoryCache.js","webpack://nushopweb/./node_modules/zen-observable-ts/module.js","webpack://nushopweb/./node_modules/@apollo/client/link/core/ApolloLink.js","webpack://nushopweb/./node_modules/@apollo/client/link/utils/createOperation.js","webpack://nushopweb/./node_modules/@apollo/client/link/utils/transformOperation.js","webpack://nushopweb/./node_modules/@apollo/client/link/utils/validateOperation.js","webpack://nushopweb/./node_modules/@apollo/client/link/http/serializeFetchParameter.js","webpack://nushopweb/./node_modules/@apollo/client/link/utils/throwServerError.js","webpack://nushopweb/./node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js","webpack://nushopweb/./node_modules/graphql/language/characterClasses.mjs","webpack://nushopweb/./node_modules/graphql/language/printString.mjs","webpack://nushopweb/./node_modules/graphql/language/printer.mjs","webpack://nushopweb/./node_modules/graphql/language/blockString.mjs","webpack://nushopweb/./node_modules/@apollo/client/link/http/selectHttpOptionsAndBody.js","webpack://nushopweb/./node_modules/@apollo/client/link/utils/fromError.js","webpack://nushopweb/./node_modules/@apollo/client/link/http/createHttpLink.js","webpack://nushopweb/./node_modules/@apollo/client/link/http/selectURI.js","webpack://nushopweb/./node_modules/@apollo/client/link/http/createSignalIfSupported.js","webpack://nushopweb/./node_modules/@apollo/client/link/http/rewriteURIForGET.js","webpack://nushopweb/./node_modules/@apollo/client/link/core/execute.js","webpack://nushopweb/./node_modules/@apollo/client/link/http/HttpLink.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/observables/asyncMap.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/common/errorHandling.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/common/makeUniqueId.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/observables/iteration.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/observables/subclassing.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/observables/Concast.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/common/cloneDeep.js","webpack://nushopweb/./node_modules/@apollo/client/core/ObservableQuery.js","webpack://nushopweb/./node_modules/@apollo/client/core/LocalState.js","webpack://nushopweb/./node_modules/@apollo/client/core/QueryInfo.js","webpack://nushopweb/./node_modules/@apollo/client/core/QueryManager.js","webpack://nushopweb/./node_modules/@apollo/client/link/persisted-queries/index.js","webpack://nushopweb/./node_modules/@apollo/client/core/ApolloClient.js","webpack://nushopweb/./node_modules/@apollo/client/version.js","webpack://nushopweb/./node_modules/@apollo/client/react/context/ApolloProvider.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ThemeProvider.js","webpack://nushopweb/./packages/client/src/containers/LanguageProvider/IntlProviderOverride.tsx","webpack://nushopweb/./packages/client/src/queries/useResolveWebView/index.ts","webpack://nushopweb/./packages/client/src/containers/LanguageProvider/usePrefixes.ts","webpack://nushopweb/./packages/client/src/containers/LanguageProvider/index.tsx","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/createGlobalStyle.js","webpack://nushopweb/./packages/client/src/global-styles.ts","webpack://nushopweb/./packages/client/src/components/Tunnel/index.tsx","webpack://nushopweb/./packages/client/src/containers/App/loadables.ts","webpack://nushopweb/./packages/client/src/components/WebView/index.tsx","webpack://nushopweb/./packages/client/src/containers/App/index.tsx","webpack://nushopweb/./node_modules/@sentry/core/esm/integrations/inboundfilters.js","webpack://nushopweb/./node_modules/@sentry/core/esm/integrations/functiontostring.js","webpack://nushopweb/./node_modules/@sentry/core/esm/integration.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/stacktrace.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/supports.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/instrument.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/error.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/dsn.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/normalize.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/memo.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/envelope.js","webpack://nushopweb/./node_modules/@sentry/core/esm/api.js","webpack://nushopweb/./node_modules/@sentry/core/esm/baseclient.js","webpack://nushopweb/./node_modules/@sentry/core/esm/envelope.js","webpack://nushopweb/./node_modules/@sentry/core/esm/version.js","webpack://nushopweb/./node_modules/@sentry/browser/esm/eventbuilder.js","webpack://nushopweb/./node_modules/@sentry/browser/esm/helpers.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/severity.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/url.js","webpack://nushopweb/./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","webpack://nushopweb/./node_modules/@sentry/browser/esm/client.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/buildPolyfills/_optionalChain.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/clientreport.js","webpack://nushopweb/./node_modules/@sentry/browser/esm/stack-parsers.js","webpack://nushopweb/./node_modules/@sentry/browser/esm/integrations/trycatch.js","webpack://nushopweb/./node_modules/@sentry/browser/esm/integrations/globalhandlers.js","webpack://nushopweb/./node_modules/@sentry/browser/esm/integrations/linkederrors.js","webpack://nushopweb/./node_modules/@sentry/browser/esm/integrations/dedupe.js","webpack://nushopweb/./node_modules/@sentry/browser/esm/integrations/httpcontext.js","webpack://nushopweb/./node_modules/@sentry/core/esm/transports/base.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/promisebuffer.js","webpack://nushopweb/./node_modules/@sentry/utils/esm/ratelimit.js","webpack://nushopweb/./node_modules/@sentry/browser/esm/transports/utils.js","webpack://nushopweb/./node_modules/@sentry/browser/esm/transports/fetch.js","webpack://nushopweb/./node_modules/@sentry/browser/esm/transports/xhr.js","webpack://nushopweb/./node_modules/@sentry/browser/esm/sdk.js","webpack://nushopweb/./packages/client/src/utils/sentry/constants.ts","webpack://nushopweb/./packages/client/src/state-load.ts","webpack://nushopweb/./packages/client/src/app.tsx","webpack://nushopweb/./packages/shared/graphql/apollo-client-options.ts","webpack://nushopweb/./packages/client/src/utils/sentry/init.ts","webpack://nushopweb/./node_modules/@sentry/core/esm/sdk.js","webpack://nushopweb/./node_modules/@apollo/client/link/context/index.js","webpack://nushopweb/./packages/client/src/components/CdnImage/styled.ts","webpack://nushopweb/./packages/client/src/components/CdnImage/index.tsx","webpack://nushopweb/./packages/client/src/components/CdnImage/useImageAttributes.ts","webpack://nushopweb/./packages/client/src/components/ClientRedirect/useHandleClientRedirect.ts","webpack://nushopweb/./packages/client/src/components/Divider/styled.tsx","webpack://nushopweb/./packages/client/src/components/ErrorBoundary/components/index.tsx","webpack://nushopweb/./packages/client/src/components/ErrorBoundary/index.tsx","webpack://nushopweb/./packages/client/src/components/ErrorPage/loadable.tsx","webpack://nushopweb/./packages/client/src/components/GenericInput/messages.tsx","webpack://nushopweb/./packages/client/src/components/GenericInput/InputGroup.tsx","webpack://nushopweb/./packages/client/src/components/HttpContext/index.tsx","webpack://nushopweb/./packages/client/src/components/NotFound/index.tsx","webpack://nushopweb/./packages/client/src/components/Placeholders/components/styled.tsx","webpack://nushopweb/./packages/client/src/components/Placeholders/components/RectanglePlaceholder.tsx","webpack://nushopweb/./packages/client/src/components/PortalTooltip/Portal.tsx","webpack://nushopweb/./packages/client/src/components/PortalTooltip/getTooltipPositionStyles.ts","webpack://nushopweb/./packages/client/src/components/PortalTooltip/getArrowPositionStyles.ts","webpack://nushopweb/./packages/client/src/components/PortalTooltip/styled.tsx","webpack://nushopweb/./packages/client/src/components/PortalTooltip/index.tsx","webpack://nushopweb/./packages/client/src/components/PriceLabel/components/LineHeight.ts","webpack://nushopweb/./packages/client/src/components/PriceLabel/components/Currency.tsx","webpack://nushopweb/./packages/client/src/components/PriceLabel/components/Wrapper.tsx","webpack://nushopweb/./packages/client/src/components/PriceLabel/components/index.tsx","webpack://nushopweb/./packages/client/src/components/PriceLabel/components/styled.tsx","webpack://nushopweb/./packages/client/src/components/PriceLabel/index.tsx","webpack://nushopweb/./packages/client/src/components/PriceLabel/useFormattedPrice.ts","webpack://nushopweb/./packages/client/src/components/PriceLabel/usePriceConfig.ts","webpack://nushopweb/./packages/client/src/components/ProductSlider/index.tsx","webpack://nushopweb/./packages/client/src/components/ProgressBar/index.tsx","webpack://nushopweb/./packages/client/src/components/SpecialPageComponent/loadable.ts","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/DiscountIcon.js","webpack://nushopweb/./packages/client/src/components/Tags/model.tsx","webpack://nushopweb/./packages/client/src/components/Tags/utils.ts","webpack://nushopweb/./packages/client/src/components/Tooltip/Content.ts","webpack://nushopweb/./packages/client/src/components/Universals/ProductItem/styled.ts","webpack://nushopweb/./packages/client/src/components/Universals/ProductItem/components/BuyButton.tsx","webpack://nushopweb/./packages/client/src/components/Universals/ProductItem/messages.ts","webpack://nushopweb/./packages/client/src/components/Universals/ProductItem/useGetProductItemProps.tsx","webpack://nushopweb/./packages/client/src/components/Universals/ProductItem/utils.ts","webpack://nushopweb/./packages/client/src/components/Tags/messages.tsx","webpack://nushopweb/./packages/client/src/components/Universals/ProductItem/useTagAttributes.ts","webpack://nushopweb/./packages/client/src/components/Universals/Routine/loadable.ts","webpack://nushopweb/./packages/client/src/components/Universals/WishlistModifier/tracking/exponea.ts","webpack://nushopweb/./packages/client/src/components/Universals/WishlistModifier/useWishlistActions/useIsWishlistEnabled.ts","webpack://nushopweb/./packages/client/src/components/Universals/WishlistModifier/useWishlistActions/index.ts","webpack://nushopweb/./packages/client/src/components/Universals/WishlistModifier/updateWishlistedCache.ts","webpack://nushopweb/./packages/client/src/components/Universals/WishlistModifier/tracking/gtm.ts","webpack://nushopweb/./packages/client/src/components/WebView/utils.ts","webpack://nushopweb/./packages/client/src/components/Wrappers/ContentWrapper.tsx","webpack://nushopweb/./packages/client/src/components/Wrappers/TabWrapper.tsx","webpack://nushopweb/./packages/client/src/components/Wrappers/ViewPort.tsx","webpack://nushopweb/./packages/client/src/constants.ts","webpack://nushopweb/./packages/client/src/containers/AdminPanel/loadable.ts","webpack://nushopweb/./packages/client/src/containers/AdventCalendar/loadable.tsx","webpack://nushopweb/./packages/client/src/containers/App/model.ts","webpack://nushopweb/./packages/client/src/containers/App/utils.tsx","webpack://nushopweb/./packages/client/src/containers/App/validators.ts","webpack://nushopweb/./packages/client/src/containers/Home/loadable.tsx","webpack://nushopweb/./packages/client/src/containers/LanguageProvider/prefixes.ts","webpack://nushopweb/./packages/client/src/containers/Miss/loadable.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/BlogArticles/index.styles.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/BlogArticles/index.tsx","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/HomeIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Breadcrumb.js","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/Breadcrumb/utils.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/Breadcrumb/BreadcrumbsJsonLd.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/Breadcrumb/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/Breadcrumb/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/Header/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/Header/BazaarvoiceRatings.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/Header/utils.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/Header/ProductRating.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/Header/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ModiFaceModal/loadable.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ModiFaceModal/model.ts","webpack://nushopweb/./packages/client/src/utils/isRenderingOnServer.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ModiFaceModal/utils/hasDeviceWebcam.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ModiFaceModal/utils/triggerWebcamPermission.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ModiFaceModal/utils/modifaceTracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/BellowTheLine/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ConditionalFreeDelivery/loadable.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/SelectedVariant/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Shadefinder/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/TryItFirst/tryItFirstMessages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VoucherDiscount/VoucherDiscountInfo/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VoucherDiscount/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VoucherDiscount/styled.ts","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/PercentageDiscountIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/CopyToClipboardIcon.js","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VoucherDiscount/VoucherDiscountInfo/styled.ts","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/InteractiveArea.js","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VoucherDiscount/VoucherDiscountInfo/ProductDiscount/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VoucherDiscount/VoucherDiscountInfo/ProductDiscount/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VoucherDiscount/VoucherDiscountInfo/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VoucherDiscount/ConditionalVoucherDiscount/ConditionalInstructionsText/styled.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VoucherDiscount/ConditionalVoucherDiscount/ConditionalInstructionsText/ConditionsTooltip.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VoucherDiscount/ConditionalVoucherDiscount/ConditionalInstructionsText/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VoucherDiscount/ConditionalVoucherDiscount/ConditionalInstructionsText/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VoucherDiscount/ConditionalVoucherDiscount/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VoucherDiscount/VoucherDiscount.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VoucherDiscount/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/context/EngravingTryItFirst/model.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/context/EngravingTryItFirst/reducer.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Engraving/tracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/context/EngravingTryItFirst/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/context/EngravingTryItFirst/useActions.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/TryItFirst/tracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/hooks/useTryItFirstCampaigns.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useCurrentVariant.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductDetailContext.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useCartServices.ts","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/PlayCircleIcon.js","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/Thumbs/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/Thumbs/Image.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/Thumbs/ScrollThumbs.styles.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/Thumbs/ScrollThumbs.tsx","webpack://nushopweb/./packages/client/src/components/Slider/components/styled.tsx","webpack://nushopweb/./packages/client/src/components/Slider/components/Arrows.tsx","webpack://nushopweb/./packages/client/src/components/Slider/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/Thumbs/index.tsx","webpack://nushopweb/./packages/client/src/components/ModalGallery/constants.ts","webpack://nushopweb/./packages/client/src/components/ModalGallery/styled.tsx","webpack://nushopweb/./packages/client/src/components/ModalGallery/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/constants.ts","webpack://nushopweb/./node_modules/@use-gesture/core/dist/maths-0ab39ae9.esm.js","webpack://nushopweb/./node_modules/@use-gesture/core/dist/actions-94b581a0.esm.js","webpack://nushopweb/./node_modules/@use-gesture/core/dist/use-gesture-core.esm.js","webpack://nushopweb/./node_modules/@use-gesture/react/dist/use-gesture-react.esm.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/tslib/tslib.es6.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/util/isFunction.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/Subscription.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/config.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/util/noop.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/util/errorContext.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/Subscriber.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/symbol/observable.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/util/identity.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/util/pipe.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/Observable.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","webpack://nushopweb/./node_modules/react-spring-carousel/node_modules/rxjs/dist/esm5/internal/Subject.js","webpack://nushopweb/../../src/modules/useCustomEventsModule.tsx","webpack://nushopweb/../../src/utils.ts","webpack://nushopweb/../../src/useSpringCarousel/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/tracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/ImageSlider/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/ImageSlider/ResizableImagePlaceholder.tsx","webpack://nushopweb/./packages/client/src/hooks/useOnTap.ts","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/TouchIcon.js","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/ModiFaceOverlay/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/ModiFaceOverlay/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/ImageSlider/ProgressBar.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/ImageSlider/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/ImageSlider/useTrackSwiping.ts","webpack://nushopweb/../../src/modules/useFullscreenModule.tsx","webpack://nushopweb/../../src/modules/useThumbsModule.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/MainImg/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/MainImg/utils.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/MainImg/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/utils/getImageAttributes.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/utils/getVideoAttrs.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductJsonLd/utils.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/ContentSwitcher/ContentTabLink.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/TabSwitcher/useTabLink.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/ContentSwitcher/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/ProductTabContentProvider.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/Loading/LoadingWrapper.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/Loading/ReviewSummarySkeleton.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/Loading/ReviewsSkeleton.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/Loading/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/context/model.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/context/reducer.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/context/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/context/useActions.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/FetchBlockFailed/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/FetchBlockFailed/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/utils/canBeVoted.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/FetchDoneBlock/ReviewMotivation/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/FetchDoneBlock/ReviewMotivation/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/FetchDoneBlock/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/FetchDoneBlock/Vote.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/FetchDoneBlock/SingleReviewData.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/FetchDoneBlock/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/FetchingBlock/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/FetchingBlock/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewsSummary/ReviewModal/ReviewsFormModalBody/loadable.ts","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/CheckCircleIconModel.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/CheckCircleIcon.js","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewsSummary/ReviewModal/ReviewsSentSuccesModal/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewsSummary/ReviewModal/ReviewsSentSuccesModal/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewsSummary/ReviewModal/ReviewsSentSuccesModal/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewsSummary/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewsSummary/AttributesSummary/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewsSummary/AttributesSummary/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewsSummary/ReviewHeader/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewsSummary/ReviewHeader/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewsSummary/ReviewModal/useReviewModal.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewsSummary/StarsSummary/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewsSummary/StarsSummary/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewsSummary/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/constants.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/utils/shouldOpenReviewModal.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/RichContentArea/loadable.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/useHandleReviewDigest/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/utils/getDefaultTab.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/utils/getProductFullName.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/utils/getDescriptionIndex.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductsSection/useProductsByIdsBatched.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/SectionContainer/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/SectionContainer/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useDispatchProductsShowEvent/index.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useIsDualPriceForCroatia.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useShouldShowReviewPage.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useSsrProductUrl.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/model.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/utils.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/hooks/useSettings.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ForbiddenProductScreen/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ForbiddenProductScreen/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ForbiddenProductScreen/index.tsx","webpack://nushopweb/./packages/client/src/components/RenderInView/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/HeadMeta/utils.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/HeadMeta/index.tsx","webpack://nushopweb/./packages/client/src/utils/requestIdleCallback.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useLastVisited/utils.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useLastVisited/useAddToLastVisited.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/usePriceLogic/tracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/tracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/usePriceLogic/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/usePriceLogic/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/usePriceLogic/utils.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/usePriceLogic/index.ts","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/styled-4a46840a.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ProductSliderPlaceholder.js","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductsSection/ProductSectionContent/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductsSection/ProductSectionContent/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductsSection/ProductSectionContent/constants.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductsSection/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductsSection/ProductItemsContent.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductsSection/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/LastVisitedProducts/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/LastVisitedProducts/useLastVisitedItems.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/LastVisitedProducts/constants.ts","webpack://nushopweb/./packages/client/src/components/Universals/WishlistModifier/messages.ts","webpack://nushopweb/./packages/client/src/components/Universals/WishlistModifier/PulsatingHeart/styled.ts","webpack://nushopweb/./packages/client/src/components/Universals/WishlistModifier/PulsatingHeart/index.tsx","webpack://nushopweb/./packages/client/src/components/Universals/WishlistModifier/WishlistProductDetailIcon/styled.ts","webpack://nushopweb/./packages/client/src/components/Universals/WishlistModifier/WishlistProductDetailIcon/updateVariantCache.ts","webpack://nushopweb/./packages/client/src/components/Universals/WishlistModifier/WishlistProductDetailIcon/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Klarna/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/gtm/tracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/messages.ts","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/styled-78109075.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/RadioButton.js","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/Modal/components/Store/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/utils/dateUtils.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/Modal/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/Modal/components/Store/StoreStockAvailability.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/Modal/components/Store/useStockCount.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/Modal/components/Store/usePickupTime.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/Modal/components/Store/utils.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/Modal/components/Store/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/Modal/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/Modal/utils.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/Modal/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useModifaceVariants.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/Modal/useClickAndCollect.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/Modal/hooks/useTrackModalShow.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/constants.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/trackLoyaltyModal.ts","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/DiamondBigIcon.js","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/components/BaseLoyaltyModal/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/components/BaseLoyaltyModal/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/components/BaseLoyaltyModal/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/components/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/components/BenefitsModal/BenefitsModalTable/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/components/BenefitsModal/BenefitsModalTable/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/components/BenefitsModal/BenefitsModalTable/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/components/BenefitsModal/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/components/BenefitsModal/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/components/BenefitsModal/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/components/HowToLoyaltyDiscountModal/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/components/HowToLoyaltyDiscountModal/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/components/HowToLoyaltyDiscountModal/trackLoyaltyCTA.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/components/HowToLoyaltyDiscountModal/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/styled.ts","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/DiamondIcon.js","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/utils.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/AddToCart/addToCartMessages.ts","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/QuantitySelector.js","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/AddToCart/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/AddToCart/tracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/AddToCart/utils/prepareOptions.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/AddToCart/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VariantsInSelectBox/PriceRatio/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VariantsInSelectBox/PriceRatio/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VariantsInSelectBox/PriceRatio/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/BellowTheLine/index.tsx","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/PlaneIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ShopIcon.js","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/DeliveryTime/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/DeliveryTime/DeliveryLine.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/DeliveryTime/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/DeliveryTime/FormattedDate.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/DeliveryTime/TimeText.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/DeliveryTime/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/DeliveryTime/utils/groupPossibleDeliveries.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/DeliveryTime/utils/hasOneDeliveryTypeWithTwoOptions.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Engraving/engravingMessages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Engraving/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Engraving/EngravingModal.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Engraving/utils/resolveEngravingImageAttributes.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Engraving/utils/imageHandlers.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Engraving/index.tsx","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/GiftIcon.js","webpack://nushopweb/./packages/client/src/abTests.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useAbTest/useAbTest.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ProductGifts/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ProductGifts/GiftImage.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ProductGifts/GiftImageThumb.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ProductGifts/GiftBase.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/FreeGiftPackaging/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Gift/index.tsx","webpack://nushopweb/./packages/client/src/components/Tags/FormattedTooltip.tsx","webpack://nushopweb/./packages/client/src/helpers/withConditionalWrapper.tsx","webpack://nushopweb/./packages/client/src/components/Tags/styled.ts","webpack://nushopweb/./packages/client/src/components/Tags/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VariantsInSelectBox/TagDiscount/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VariantsInSelectBox/TagDiscount/OriginalPrice.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VariantsInSelectBox/TagDiscount/tracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VariantsInSelectBox/TagDiscount/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/SelectedVariant/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/tracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/TryItFirst/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/TryItFirst/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/utils/shouldRenderTagDiscount.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/variantsStyled.ts","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ColorRectangleModel.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ColorRectangle.js","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsColorPickers/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsColorPickers/ColorPicker.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsColorPickers/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsShadesDrawer/constants.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsShadesDrawer/messages.ts","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/ColorCircle.js","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsShadesDrawer/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsShadesDrawer/tracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsShadesDrawer/utils.ts","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/CloseLineIcon.js","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsShadesDrawer/components/OffsetScroll.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsShadesDrawer/ItemStatus.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsShadesDrawer/VariantColorListItem.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsShadesDrawer/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsThumbnail/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsThumbnail/VariantThumbnail.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsThumbnail/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsThumbnail/isPriceSame.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsTile/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsTile/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsTile/tracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsTile/VariantTile.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/VariantsTile/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Variants/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VariantsInSelectBox/ExpandedVariants/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VariantsInSelectBox/ExpandedVariants/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VariantsInSelectBox/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VariantsInSelectBox/VariantItem/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VariantsInSelectBox/VariantItem/NavLink.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VariantsInSelectBox/VariantItem/VariantDiscount.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VariantsInSelectBox/VariantItem/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VariantsInSelectBox/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VariantsInSelectBox/tracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/MobileHeaderPlaceholder/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/BrandLogo/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/BrandLogo/supported-brands.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductImageGallery/BrandLogo/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductJsonLd/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductPictogram/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductPictogram/index.tsx","webpack://nushopweb/./packages/client/src/components/LivestreamBanner/hooks/useLivestreams.tsx","webpack://nushopweb/./packages/client/src/utils/assignRefs.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useOpenBVModal.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/AboutBrand/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/AboutBrand/index.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/ExpandableText/styled.ts","webpack://nushopweb/./packages/client/src/sharedComponents/ExpandableText/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Pictograms/constants.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Pictograms/model.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Pictograms/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Pictograms/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Pictograms/Pictogram.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Pictograms/trackPictograms.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Pictograms/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/tracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/AboutProduct/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/AboutProduct/Characteristic.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/AboutProduct/Instructions/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/AboutProduct/Instructions/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/AboutProduct/Instructions/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/AboutProduct/Instructions/VideoInstructions.tsx","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Typography.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/styled-16d7458e.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/Dot.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/styled-53d0e342.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/InfoCircleOutlinedIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/PlayIcon.js","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/LivestreamCard.js","webpack://nushopweb/./packages/client/src/components/LivestreamBanner/styled.ts","webpack://nushopweb/./packages/client/src/components/LivestreamBanner/utils/getBannerTheme.tsx","webpack://nushopweb/./packages/client/src/components/LivestreamBanner/index.tsx","webpack://nushopweb/./packages/client/src/components/LivestreamBanner/hooks/useInitBambuserLiveShopping.tsx","webpack://nushopweb/./packages/client/src/components/LivestreamBanner/model.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/livestreamTracking.ts","webpack://nushopweb/./packages/client/src/components/LivestreamBanner/utils/getShowElementId.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/AboutProduct/LivestreamBannersCarousel/Arrow/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/AboutProduct/LivestreamBannersCarousel/Arrow/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/AboutProduct/LivestreamBannersCarousel/Dots/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/AboutProduct/LivestreamBannersCarousel/Dots/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/AboutProduct/LivestreamBannersCarousel/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/AboutProduct/LivestreamBannersCarousel/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/AboutProduct/LivestreamBannersCarousel/useLivestreamTracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/AboutProduct/index.tsx","webpack://nushopweb/./packages/client/src/utils/number.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Composition/FadeWrapper.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Composition/styled.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Composition/messages.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Composition/VitaminsTable.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Composition/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/ContentSwitcher/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Other/messages.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Other/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Other/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/ProductLivestreams/components/LivestreamCard.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/ProductLivestreams/hooks/useLivestreamTracking/index.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/ProductLivestreams/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/ProductLivestreams/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/useTrackReviewListView.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/useResetOpenTabOnProductChange.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/MobileTabContentPlaceholder.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/RelatedProducts/constants.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/RelatedProducts/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/RoutineOrRelatedProducts/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/StickySidebar/styled.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/StickySidebar/useInViewRef.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/StickySidebar/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/StickySidebar/useScrollDirectionRef.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/StickySidebar/useAdjustStickyElementWidth.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/StickySidebar/utils.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/SwogoScript/useGetProductById.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/SwogoScript/useGetProductByIds.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/SwogoScript/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/SwogoScript/useIntegrateSwogo.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/SwogoScript/useSwogoTracking.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/VariantName.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useModiface.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/useHasWebcam/index.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useRegisterNotinoApi.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useDynamicCatalogCollection/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useTrackPageView.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useTrackItemAndReload.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useTrackProductUrlChange.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/index.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/getRcVersionKeys.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/loadable.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/messages.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/model.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/utils.ts","webpack://nushopweb/./packages/client/src/containers/ProductListing/model.ts","webpack://nushopweb/./packages/client/src/containers/ReviewsPage/loadable.ts","webpack://nushopweb/./packages/client/src/containers/Sampling/loadable.tsx","webpack://nushopweb/./packages/client/src/containers/SamplingThanks/loadable.tsx","webpack://nushopweb/./packages/client/src/containers/Tryandbuy/loadable.tsx","webpack://nushopweb/./packages/client/src/containers/Tryandbuy/validations.ts","webpack://nushopweb/./packages/client/src/containers/TryandbuyError/loadable.tsx","webpack://nushopweb/./packages/client/src/containers/TryandbuyThanks/loadable.tsx","webpack://nushopweb/./packages/client/src/containers/WishList/loadable.tsx","webpack://nushopweb/./packages/client/src/context/contextConfig.tsx","webpack://nushopweb/./packages/client/src/context/launch-darkly/LDProvider.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/loading/styled.ts","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/loading/SpaLoadingSkeleton.tsx","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/loading/index.tsx","webpack://nushopweb/./packages/client/src/context/product-view/index.tsx","webpack://nushopweb/./packages/client/src/context/tracking/TrackingContext.tsx","webpack://nushopweb/./packages/client/src/context/tracking/utils.ts","webpack://nushopweb/./packages/client/src/helpers/accessibility/registerKeyboardListeners.ts","webpack://nushopweb/./packages/client/src/helpers/emailUtils.ts","webpack://nushopweb/./packages/client/src/helpers/googleTagManager/useGetMasterAddToCart.ts","webpack://nushopweb/./packages/client/src/helpers/googleTagManager/useTrackDynamicList.ts","webpack://nushopweb/./packages/client/src/helpers/googleTagManager/prepareProductInfo/prepareProductInfo.ts","webpack://nushopweb/./packages/client/src/helpers/utils.ts","webpack://nushopweb/./packages/client/src/hooks/useMeasure.ts","webpack://nushopweb/./packages/client/src/hooks/useUpdateEffect.ts","webpack://nushopweb/./packages/client/src/hooks/useApolloClientHeaders.ts","webpack://nushopweb/./packages/client/src/hooks/useArrows/index.ts","webpack://nushopweb/./packages/client/src/hooks/useArrows/styled.ts","webpack://nushopweb/./packages/client/src/hooks/useFeatureSwitches/index.ts","webpack://nushopweb/./packages/client/src/hooks/useThrottleEffect.ts","webpack://nushopweb/./packages/client/src/messages.tsx","webpack://nushopweb/./packages/client/src/queries/useReviews/useReviewsFetch.ts","webpack://nushopweb/./packages/client/src/queries/useReviews/useReviewsSummaryFetch.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartButton.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/sharedComponents/BuyButton/messages.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/sharedComponents/BuyButton/styled.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/sharedComponents/BuyButton/BuyButtonWithDefaults.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/sharedComponents/BuyButton/LegacyAddToCartButton/index.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/sharedComponents/BuyButton/hooks/useRequestHeaders.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/sharedComponents/BuyButton/index.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/SpecialAddToCartModal/styled.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/SpecialAddToCartModal/index.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/SpecialAddToCartModal/useMessagesForSpecialModal.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/styled.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartCoreComponentButton.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartModal/styled.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/context/useAddToCartMutation.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/context/index.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/context/store.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartModal/UpsellingProducts/styled.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartModal/UpsellingProducts/constants.ts","webpack://nushopweb/./packages/client/src/sharedComponents/Icons/SpecialSalesIcon/icons/styled.ts","webpack://nushopweb/./packages/client/src/sharedComponents/Icons/SpecialSalesIcon/icons/ChristmasIcon.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartModal/UpsellingProducts/UpsellingList/ProductTile/styled.ts","webpack://nushopweb/./packages/client/src/sharedComponents/Icons/SpecialSalesIcon/index.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/MaxProductsInCartModal/messages.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/MaxProductsInCartModal/styled.tsx","webpack://nushopweb/./node_modules/@notino/react-styleguide/dist/es/BagWithoutBrandIcon.js","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/MaxProductsInCartModal/index.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartModal/UpsellingProducts/UpsellingList/ProductTile/UpsellingAddToCartButton.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartModal/UpsellingProducts/UpsellingList/ProductTile/index.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartModal/UpsellingProducts/UpsellingList/styled.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartModal/UpsellingProducts/UpsellingList/index.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartModal/UpsellingProducts/index.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartModal/UpsellingProducts/utils.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartModal/index.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/NotificationModal.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/getModalAfterAddToCart.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/messages.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/model.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartModal/ModalSubHeader.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/SystemOverloadedModal/styled.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/sharedComponents/BuyButton/utils/getSettings.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/sharedComponents/BuyButton/utils/addToCartResult.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/sharedComponents/BuyButton/utils/updateHeaderCartOverview.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/sharedComponents/BuyButton/hooks/useHandleAddToCart.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/SystemOverloadedModal/index.tsx","webpack://nushopweb/./packages/client/src/utils/wait.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/sharedComponents/BuyButton/utils/addToCart.ts","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/utils.ts","webpack://nushopweb/./packages/client/src/sharedComponents/Icons/HorizontalChevron/index.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/TabSwitcher/TabLink.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/TabSwitcher/context/TabSwitcherContext.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/TabSwitcher/TabTitle/styled.ts","webpack://nushopweb/./packages/client/src/sharedComponents/TabSwitcher/TabTitle/index.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/TabSwitcher/TabContent.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/TabSwitcher/styled.ts","webpack://nushopweb/./packages/client/src/sharedComponents/TabSwitcher/trackingTab.ts","webpack://nushopweb/./packages/client/src/sharedComponents/Watchdog/model.ts","webpack://nushopweb/./packages/client/src/sharedComponents/Watchdog/styled.tsx","webpack://nushopweb/./packages/client/src/components/GenericInput/SimpleInput.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/Watchdog/WatchdogForm/WatchdogInput/styled.ts","webpack://nushopweb/./packages/client/src/sharedComponents/Watchdog/WatchdogForm/WatchdogInput/index.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/Watchdog/WatchdogForm/index.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/Watchdog/WatchdogModal.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/Watchdog/index.tsx","webpack://nushopweb/./packages/client/src/sharedComponents/Watchdog/tracking.ts","webpack://nushopweb/./packages/client/src/sharedComponents/Watchdog/watchdogMessages.ts","webpack://nushopweb/./packages/client/src/themes/default.ts","webpack://nushopweb/./packages/client/src/headersHelper.ts","webpack://nushopweb/./packages/client/src/utils/admin-panel.ts","webpack://nushopweb/./packages/client/src/utils/array.ts","webpack://nushopweb/./packages/client/src/utils/constants.ts","webpack://nushopweb/./packages/client/src/utils/drawer.ts","webpack://nushopweb/./packages/client/src/utils/exponea-logging.ts","webpack://nushopweb/./packages/client/src/utils/helpers.ts","webpack://nushopweb/./packages/client/src/utils/noop.ts","webpack://nushopweb/./packages/client/src/utils/notino-events.ts","webpack://nushopweb/./packages/shared/client-utils.ts","webpack://nushopweb/./packages/shared/definitions/custom-definitions.ts","webpack://nushopweb/./packages/shared/definitions/types.ts","webpack://nushopweb/./node_modules/classnames/index.js","webpack://nushopweb/./node_modules/enquire.js/src/MediaQuery.js","webpack://nushopweb/./node_modules/enquire.js/src/MediaQueryDispatch.js","webpack://nushopweb/./node_modules/enquire.js/src/QueryHandler.js","webpack://nushopweb/./node_modules/enquire.js/src/Util.js","webpack://nushopweb/./node_modules/enquire.js/src/index.js","webpack://nushopweb/./node_modules/focus-trap-react/dist/focus-trap-react.js","webpack://nushopweb/./node_modules/tabbable/dist/index.esm.js","webpack://nushopweb/./node_modules/focus-trap/dist/focus-trap.esm.js","webpack://nushopweb/./packages/client/src/components/CdnImage/queries/imageSettings.graphql","webpack://nushopweb/./packages/client/src/components/ClientRedirect/queries/updateResolveUrl.graphql","webpack://nushopweb/./packages/client/src/components/LivestreamBanner/queries/getLivestreams.graphql","webpack://nushopweb/./packages/client/src/components/PriceLabel/priceConfig.graphql","webpack://nushopweb/./packages/client/src/components/Universals/BatchVPProductQuery/queries/productsByIdBatched.graphql","webpack://nushopweb/./packages/client/src/components/Universals/ProductItem/queries/fragVpProductById.graphql","webpack://nushopweb/./packages/client/src/components/Universals/ProductItem/queries/itemDataById.graphql","webpack://nushopweb/./packages/client/src/components/Universals/WishlistModifier/queries/addToWishlist.graphql","webpack://nushopweb/./packages/client/src/components/Universals/WishlistModifier/queries/isWishlistEnabled.graphql","webpack://nushopweb/./packages/client/src/components/Universals/WishlistModifier/queries/removeFromWishlist.graphql","webpack://nushopweb/./packages/client/src/components/WebView/productPathName.graphql","webpack://nushopweb/./packages/client/src/components/WebView/productWebView.graphql","webpack://nushopweb/./packages/client/src/containers/LanguageProvider/queries/localesData.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/BlogArticles/queries/getBlogArticles.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/Modal/mutations/addToClickAndCollect.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/ClickAndCollect/Modal/queries/stores.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/components/HowToLoyaltyDiscountModal/queries/getUserLoyaltyProgress.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/LoyaltyDiscount/queries/getCustomerBenefits.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/queries/addToCartTryFirst.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/queries/handleVote.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/SwogoScript/queries/getAvailabilityAndPriceQuery.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/SwogoScript/queries/getAvailabilityAndPriceQueryBatched.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/hooks/useAbTest/queries/getAbTest.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/useHasWebcam/hasWebcamQuery.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/hooks/queries/getSettings.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/queries/databreakersRecommendedProducts.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/queries/fragProductDetailView.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/queries/fragVariant.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/queries/loadingProduct.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/queries/productView.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/queries/reviewOverview.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/queries/richContentAvailable.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/queries/sectionsAvailability.graphql","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/queries/servicesIncluded.graphql","webpack://nushopweb/./packages/client/src/hooks/useFeatureSwitches/featureSwitchesFragment.graphql","webpack://nushopweb/./packages/client/src/queries/fragProductDetailView.graphql","webpack://nushopweb/./packages/client/src/queries/fragVariant.graphql","webpack://nushopweb/./packages/client/src/queries/getDefaultData.graphql","webpack://nushopweb/./packages/client/src/queries/masterProductInfo.graphql","webpack://nushopweb/./packages/client/src/queries/productView.graphql","webpack://nushopweb/./packages/client/src/queries/requestHeaders.graphql","webpack://nushopweb/./packages/client/src/queries/showUnitPrices.graphql","webpack://nushopweb/./packages/client/src/queries/useReviews/queries/reviewSummary.graphql","webpack://nushopweb/./packages/client/src/queries/useReviews/queries/reviews.graphql","webpack://nushopweb/./packages/client/src/queries/userWithCart.graphql","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartModal/UpsellingProducts/UpsellingList/queries/fragUpselingProduct.graphql","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartModal/UpsellingProducts/UpsellingList/queries/upsellingData.graphql","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartModal/UpsellingProducts/queries/databreakersUpsellingQuery.graphql","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/AddToCartModal/queries/productByIds.graphql","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/queries/addToCart.graphql","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/queries/addToCartSettings.graphql","webpack://nushopweb/./packages/client/src/sharedComponents/AddToCartButton/sharedComponents/BuyButton/requestInfo.graphql","webpack://nushopweb/./packages/client/src/sharedComponents/Watchdog/queries/sendWatchdog.graphql","webpack://nushopweb/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://nushopweb/./node_modules/invariant/browser.js","webpack://nushopweb/./node_modules/isomorphic-fetch/fetch-npm-browserify.js","webpack://nushopweb/./node_modules/js-cookie/src/js.cookie.js","webpack://nushopweb/./node_modules/json2mq/index.js","webpack://nushopweb/./node_modules/lodash.debounce/index.js","webpack://nushopweb/./node_modules/lodash/_DataView.js","webpack://nushopweb/./node_modules/lodash/_Hash.js","webpack://nushopweb/./node_modules/lodash/_LazyWrapper.js","webpack://nushopweb/./node_modules/lodash/_ListCache.js","webpack://nushopweb/./node_modules/lodash/_LodashWrapper.js","webpack://nushopweb/./node_modules/lodash/_Map.js","webpack://nushopweb/./node_modules/lodash/_MapCache.js","webpack://nushopweb/./node_modules/lodash/_Promise.js","webpack://nushopweb/./node_modules/lodash/_Set.js","webpack://nushopweb/./node_modules/lodash/_SetCache.js","webpack://nushopweb/./node_modules/lodash/_Stack.js","webpack://nushopweb/./node_modules/lodash/_Symbol.js","webpack://nushopweb/./node_modules/lodash/_Uint8Array.js","webpack://nushopweb/./node_modules/lodash/_WeakMap.js","webpack://nushopweb/./node_modules/lodash/_apply.js","webpack://nushopweb/./node_modules/lodash/_arrayFilter.js","webpack://nushopweb/./node_modules/lodash/_arrayLikeKeys.js","webpack://nushopweb/./node_modules/lodash/_arrayMap.js","webpack://nushopweb/./node_modules/lodash/_arrayPush.js","webpack://nushopweb/./node_modules/lodash/_arrayReduce.js","webpack://nushopweb/./node_modules/lodash/_arraySome.js","webpack://nushopweb/./node_modules/lodash/_asciiWords.js","webpack://nushopweb/./node_modules/lodash/_assocIndexOf.js","webpack://nushopweb/./node_modules/lodash/_baseCreate.js","webpack://nushopweb/./node_modules/lodash/_baseEach.js","webpack://nushopweb/./node_modules/lodash/_baseFindIndex.js","webpack://nushopweb/./node_modules/lodash/_baseFlatten.js","webpack://nushopweb/./node_modules/lodash/_baseFor.js","webpack://nushopweb/./node_modules/lodash/_baseForOwn.js","webpack://nushopweb/./node_modules/lodash/_baseGet.js","webpack://nushopweb/./node_modules/lodash/_baseGetAllKeys.js","webpack://nushopweb/./node_modules/lodash/_baseGetTag.js","webpack://nushopweb/./node_modules/lodash/_baseHasIn.js","webpack://nushopweb/./node_modules/lodash/_baseIsArguments.js","webpack://nushopweb/./node_modules/lodash/_baseIsEqual.js","webpack://nushopweb/./node_modules/lodash/_baseIsEqualDeep.js","webpack://nushopweb/./node_modules/lodash/_baseIsMatch.js","webpack://nushopweb/./node_modules/lodash/_baseIsNative.js","webpack://nushopweb/./node_modules/lodash/_baseIsTypedArray.js","webpack://nushopweb/./node_modules/lodash/_baseIteratee.js","webpack://nushopweb/./node_modules/lodash/_baseKeys.js","webpack://nushopweb/./node_modules/lodash/_baseLodash.js","webpack://nushopweb/./node_modules/lodash/_baseMap.js","webpack://nushopweb/./node_modules/lodash/_baseMatches.js","webpack://nushopweb/./node_modules/lodash/_baseMatchesProperty.js","webpack://nushopweb/./node_modules/lodash/_baseProperty.js","webpack://nushopweb/./node_modules/lodash/_basePropertyDeep.js","webpack://nushopweb/./node_modules/lodash/_basePropertyOf.js","webpack://nushopweb/./node_modules/lodash/_baseSetToString.js","webpack://nushopweb/./node_modules/lodash/_baseTimes.js","webpack://nushopweb/./node_modules/lodash/_baseToString.js","webpack://nushopweb/./node_modules/lodash/_baseTrim.js","webpack://nushopweb/./node_modules/lodash/_baseUnary.js","webpack://nushopweb/./node_modules/lodash/_cacheHas.js","webpack://nushopweb/./node_modules/lodash/_castPath.js","webpack://nushopweb/./node_modules/lodash/_copyArray.js","webpack://nushopweb/./node_modules/lodash/_coreJsData.js","webpack://nushopweb/./node_modules/lodash/_createBaseEach.js","webpack://nushopweb/./node_modules/lodash/_createBaseFor.js","webpack://nushopweb/./node_modules/lodash/_createCompounder.js","webpack://nushopweb/./node_modules/lodash/_createFlow.js","webpack://nushopweb/./node_modules/lodash/_deburrLetter.js","webpack://nushopweb/./node_modules/lodash/_defineProperty.js","webpack://nushopweb/./node_modules/lodash/_equalArrays.js","webpack://nushopweb/./node_modules/lodash/_equalByTag.js","webpack://nushopweb/./node_modules/lodash/_equalObjects.js","webpack://nushopweb/./node_modules/lodash/_flatRest.js","webpack://nushopweb/./node_modules/lodash/_freeGlobal.js","webpack://nushopweb/./node_modules/lodash/_getAllKeys.js","webpack://nushopweb/./node_modules/lodash/_getData.js","webpack://nushopweb/./node_modules/lodash/_getFuncName.js","webpack://nushopweb/./node_modules/lodash/_getMapData.js","webpack://nushopweb/./node_modules/lodash/_getMatchData.js","webpack://nushopweb/./node_modules/lodash/_getNative.js","webpack://nushopweb/./node_modules/lodash/_getRawTag.js","webpack://nushopweb/./node_modules/lodash/_getSymbols.js","webpack://nushopweb/./node_modules/lodash/_getTag.js","webpack://nushopweb/./node_modules/lodash/_getValue.js","webpack://nushopweb/./node_modules/lodash/_hasPath.js","webpack://nushopweb/./node_modules/lodash/_hasUnicodeWord.js","webpack://nushopweb/./node_modules/lodash/_hashClear.js","webpack://nushopweb/./node_modules/lodash/_hashDelete.js","webpack://nushopweb/./node_modules/lodash/_hashGet.js","webpack://nushopweb/./node_modules/lodash/_hashHas.js","webpack://nushopweb/./node_modules/lodash/_hashSet.js","webpack://nushopweb/./node_modules/lodash/_isFlattenable.js","webpack://nushopweb/./node_modules/lodash/_isIndex.js","webpack://nushopweb/./node_modules/lodash/_isKey.js","webpack://nushopweb/./node_modules/lodash/_isKeyable.js","webpack://nushopweb/./node_modules/lodash/_isLaziable.js","webpack://nushopweb/./node_modules/lodash/_isMasked.js","webpack://nushopweb/./node_modules/lodash/_isPrototype.js","webpack://nushopweb/./node_modules/lodash/_isStrictComparable.js","webpack://nushopweb/./node_modules/lodash/_listCacheClear.js","webpack://nushopweb/./node_modules/lodash/_listCacheDelete.js","webpack://nushopweb/./node_modules/lodash/_listCacheGet.js","webpack://nushopweb/./node_modules/lodash/_listCacheHas.js","webpack://nushopweb/./node_modules/lodash/_listCacheSet.js","webpack://nushopweb/./node_modules/lodash/_mapCacheClear.js","webpack://nushopweb/./node_modules/lodash/_mapCacheDelete.js","webpack://nushopweb/./node_modules/lodash/_mapCacheGet.js","webpack://nushopweb/./node_modules/lodash/_mapCacheHas.js","webpack://nushopweb/./node_modules/lodash/_mapCacheSet.js","webpack://nushopweb/./node_modules/lodash/_mapToArray.js","webpack://nushopweb/./node_modules/lodash/_matchesStrictComparable.js","webpack://nushopweb/./node_modules/lodash/_memoizeCapped.js","webpack://nushopweb/./node_modules/lodash/_metaMap.js","webpack://nushopweb/./node_modules/lodash/_nativeCreate.js","webpack://nushopweb/./node_modules/lodash/_nativeKeys.js","webpack://nushopweb/./node_modules/lodash/_nodeUtil.js","webpack://nushopweb/./node_modules/lodash/_objectToString.js","webpack://nushopweb/./node_modules/lodash/_overArg.js","webpack://nushopweb/./node_modules/lodash/_overRest.js","webpack://nushopweb/./node_modules/lodash/_realNames.js","webpack://nushopweb/./node_modules/lodash/_root.js","webpack://nushopweb/./node_modules/lodash/_setCacheAdd.js","webpack://nushopweb/./node_modules/lodash/_setCacheHas.js","webpack://nushopweb/./node_modules/lodash/_setToArray.js","webpack://nushopweb/./node_modules/lodash/_setToString.js","webpack://nushopweb/./node_modules/lodash/_shortOut.js","webpack://nushopweb/./node_modules/lodash/_stackClear.js","webpack://nushopweb/./node_modules/lodash/_stackDelete.js","webpack://nushopweb/./node_modules/lodash/_stackGet.js","webpack://nushopweb/./node_modules/lodash/_stackHas.js","webpack://nushopweb/./node_modules/lodash/_stackSet.js","webpack://nushopweb/./node_modules/lodash/_stringToPath.js","webpack://nushopweb/./node_modules/lodash/_toKey.js","webpack://nushopweb/./node_modules/lodash/_toSource.js","webpack://nushopweb/./node_modules/lodash/_trimmedEndIndex.js","webpack://nushopweb/./node_modules/lodash/_unicodeWords.js","webpack://nushopweb/./node_modules/lodash/_wrapperClone.js","webpack://nushopweb/./node_modules/lodash/constant.js","webpack://nushopweb/./node_modules/lodash/deburr.js","webpack://nushopweb/./node_modules/lodash/eq.js","webpack://nushopweb/./node_modules/lodash/findIndex.js","webpack://nushopweb/./node_modules/lodash/flatten.js","webpack://nushopweb/./node_modules/lodash/flowRight.js","webpack://nushopweb/./node_modules/lodash/get.js","webpack://nushopweb/./node_modules/lodash/hasIn.js","webpack://nushopweb/./node_modules/lodash/identity.js","webpack://nushopweb/./node_modules/lodash/isArguments.js","webpack://nushopweb/./node_modules/lodash/isArray.js","webpack://nushopweb/./node_modules/lodash/isArrayLike.js","webpack://nushopweb/./node_modules/lodash/isBuffer.js","webpack://nushopweb/./node_modules/lodash/isFunction.js","webpack://nushopweb/./node_modules/lodash/isLength.js","webpack://nushopweb/./node_modules/lodash/isObject.js","webpack://nushopweb/./node_modules/lodash/isObjectLike.js","webpack://nushopweb/./node_modules/lodash/isSymbol.js","webpack://nushopweb/./node_modules/lodash/isTypedArray.js","webpack://nushopweb/./node_modules/lodash/keys.js","webpack://nushopweb/./node_modules/lodash/map.js","webpack://nushopweb/./node_modules/lodash/memoize.js","webpack://nushopweb/./node_modules/lodash/noop.js","webpack://nushopweb/./node_modules/lodash/property.js","webpack://nushopweb/./node_modules/lodash/snakeCase.js","webpack://nushopweb/./node_modules/lodash/stubArray.js","webpack://nushopweb/./node_modules/lodash/stubFalse.js","webpack://nushopweb/./node_modules/lodash/toFinite.js","webpack://nushopweb/./node_modules/lodash/toInteger.js","webpack://nushopweb/./node_modules/lodash/toNumber.js","webpack://nushopweb/./node_modules/lodash/toString.js","webpack://nushopweb/./node_modules/lodash/words.js","webpack://nushopweb/./node_modules/lodash/wrapperLodash.js","webpack://nushopweb/./node_modules/react-dom/client.js","webpack://nushopweb/./node_modules/react-fast-compare/index.js","webpack://nushopweb/./node_modules/react-helmet-async/lib/index.module.js","webpack://nushopweb/./node_modules/react-schemaorg/dist/src/index.js","webpack://nushopweb/./node_modules/react-schemaorg/dist/src/json-ld.js","webpack://nushopweb/./node_modules/react-slick/lib/arrows.js","webpack://nushopweb/./node_modules/react-slick/lib/default-props.js","webpack://nushopweb/./node_modules/react-slick/lib/dots.js","webpack://nushopweb/./node_modules/react-slick/lib/index.js","webpack://nushopweb/./node_modules/react-slick/lib/initial-state.js","webpack://nushopweb/./node_modules/react-slick/lib/inner-slider.js","webpack://nushopweb/./node_modules/react-slick/lib/slider.js","webpack://nushopweb/./node_modules/react-slick/lib/track.js","webpack://nushopweb/./node_modules/react-slick/lib/utils/innerSliderUtils.js","webpack://nushopweb/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://nushopweb/./node_modules/react/jsx-runtime.js","webpack://nushopweb/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://nushopweb/./node_modules/screenfull/dist/screenfull.js","webpack://nushopweb/./node_modules/shallowequal/index.js","webpack://nushopweb/./node_modules/string-convert/camel2hyphen.js","webpack://nushopweb/./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack://nushopweb/./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://nushopweb/./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://nushopweb/./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://nushopweb/./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://nushopweb/./node_modules/tslib/tslib.es6.js","webpack://nushopweb/./node_modules/use-media/lib/index.js","webpack://nushopweb/./node_modules/use-media/lib/useMedia.js","webpack://nushopweb/./node_modules/use-media/lib/utilities/camelToHyphen.js","webpack://nushopweb/./node_modules/use-media/lib/utilities/index.js","webpack://nushopweb/./node_modules/use-media/lib/utilities/noop.js","webpack://nushopweb/./node_modules/use-media/lib/utilities/queryObjectToString.js","webpack://nushopweb/./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","webpack://nushopweb/./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","webpack://nushopweb/./node_modules/use-sync-external-store/shim/index.js","webpack://nushopweb/./node_modules/use-sync-external-store/shim/with-selector.js","webpack://nushopweb/./node_modules/uuid/index.js","webpack://nushopweb/./node_modules/uuid/lib/bytesToUuid.js","webpack://nushopweb/./node_modules/uuid/lib/rng-browser.js","webpack://nushopweb/./node_modules/uuid/v1.js","webpack://nushopweb/./node_modules/uuid/v4.js","webpack://nushopweb/./node_modules/whatwg-fetch/fetch.js","webpack://nushopweb/./packages/client/src/containers/ProductDetailContainer/ProductDetail/ProductTabContent/Pictograms/icons/ sync ^\\.\\/.*\\.svg$","webpack://nushopweb/external var \"window.sharedLibraries[\\\"nushop\\\"][\\\"prop-types\\\"]\"","webpack://nushopweb/external var \"window.sharedLibraries[\\\"nushop\\\"][\\\"react-dom\\\"]\"","webpack://nushopweb/external var \"window.sharedLibraries[\\\"nushop\\\"][\\\"react-intl\\\"]\"","webpack://nushopweb/external var \"window.sharedLibraries[\\\"nushop\\\"][\\\"react-is\\\"]\"","webpack://nushopweb/external var \"window.sharedLibraries[\\\"nushop\\\"][\\\"react-router-dom\\\"]\"","webpack://nushopweb/external var \"window.sharedLibraries[\\\"nushop\\\"][\\\"react-router\\\"]\"","webpack://nushopweb/external var \"window.sharedLibraries[\\\"nushop\\\"][\\\"react\\\"]\"","webpack://nushopweb/./node_modules/@apollo/client/core/networkStatus.js","webpack://nushopweb/./node_modules/@apollo/client/errors/index.js","webpack://nushopweb/./node_modules/@apollo/client/react/context/ApolloContext.js","webpack://nushopweb/./node_modules/@apollo/client/react/hooks/useApolloClient.js","webpack://nushopweb/./node_modules/@apollo/client/react/hooks/useMutation.js","webpack://nushopweb/./node_modules/@apollo/client/react/hooks/useSyncExternalStore.js","webpack://nushopweb/./node_modules/@apollo/client/react/hooks/useQuery.js","webpack://nushopweb/./node_modules/@apollo/client/react/parser/index.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/common/arrays.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/common/canUse.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/common/compact.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/common/maybeDeepFreeze.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/common/mergeOptions.js","webpack://nushopweb/./node_modules/@apollo/client/node_modules/ts-invariant/node_modules/tslib/tslib.es6.js","webpack://nushopweb/./node_modules/@apollo/client/node_modules/ts-invariant/lib/invariant.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/globals/maybe.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/globals/global.js","webpack://nushopweb/./node_modules/@apollo/client/utilities/globals/DEV.js","webpack://nushopweb/./node_modules/@apollo/client/node_modules/ts-invariant/process/index.js","webpack://nushopweb/./node_modules/graphql/language/source.mjs","webpack://nushopweb/./node_modules/@apollo/client/utilities/globals/index.js","webpack://nushopweb/./node_modules/graphql/jsutils/devAssert.mjs","webpack://nushopweb/./node_modules/graphql/jsutils/inspect.mjs","webpack://nushopweb/./node_modules/react-intersection-observer/react-intersection-observer.modern.mjs","webpack://nushopweb/./node_modules/zustand/esm/index.mjs","webpack://nushopweb/./node_modules/zustand/esm/vanilla.mjs","webpack://nushopweb/webpack/bootstrap","webpack://nushopweb/webpack/runtime/compat get default export","webpack://nushopweb/webpack/runtime/define property getters","webpack://nushopweb/webpack/runtime/ensure chunk","webpack://nushopweb/webpack/runtime/get javascript chunk filename","webpack://nushopweb/webpack/runtime/global","webpack://nushopweb/webpack/runtime/harmony module decorator","webpack://nushopweb/webpack/runtime/hasOwnProperty shorthand","webpack://nushopweb/webpack/runtime/make namespace object","webpack://nushopweb/webpack/runtime/node module decorator","webpack://nushopweb/webpack/runtime/publicPath","webpack://nushopweb/webpack/runtime/jsonp chunk loading","webpack://nushopweb/webpack/runtime/nonce","webpack://nushopweb/webpack/startup"],"sourcesContent":["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};","var inProgress = {};\nvar dataWebpackPrefix = \"nushopweb:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","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\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\n return target;\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import React from 'react';\nimport _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 { isValidElementType } from 'react-is';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n\n/* eslint-disable import/prefer-default-export */\nfunction invariant(condition, message) {\n if (condition) return;\n var error = new Error(\"loadable: \" + message);\n error.framesToPop = 1;\n error.name = 'Invariant Violation';\n throw error;\n}\nfunction warn(message) {\n // eslint-disable-next-line no-console\n console.warn(\"loadable: \" + message);\n}\n\nvar Context = /*#__PURE__*/\nReact.createContext();\n\nvar LOADABLE_REQUIRED_CHUNKS_KEY = '__LOADABLE_REQUIRED_CHUNKS__';\nfunction getRequiredChunkKey(namespace) {\n return \"\" + namespace + LOADABLE_REQUIRED_CHUNKS_KEY;\n}\n\nvar sharedInternals = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getRequiredChunkKey: getRequiredChunkKey,\n invariant: invariant,\n Context: Context\n});\n\nvar LOADABLE_SHARED = {\n initialChunks: {}\n};\n\nvar STATUS_PENDING = 'PENDING';\nvar STATUS_RESOLVED = 'RESOLVED';\nvar STATUS_REJECTED = 'REJECTED';\n\nfunction resolveConstructor(ctor) {\n if (typeof ctor === 'function') {\n return {\n requireAsync: ctor,\n resolve: function resolve() {\n return undefined;\n },\n chunkName: function chunkName() {\n return undefined;\n }\n };\n }\n\n return ctor;\n}\n\nvar withChunkExtractor = function withChunkExtractor(Component) {\n var LoadableWithChunkExtractor = function LoadableWithChunkExtractor(props) {\n return React.createElement(Context.Consumer, null, function (extractor) {\n return React.createElement(Component, Object.assign({\n __chunkExtractor: extractor\n }, props));\n });\n };\n\n if (Component.displayName) {\n LoadableWithChunkExtractor.displayName = Component.displayName + \"WithChunkExtractor\";\n }\n\n return LoadableWithChunkExtractor;\n};\n\nvar identity = function identity(v) {\n return v;\n};\n\nfunction createLoadable(_ref) {\n var _ref$defaultResolveCo = _ref.defaultResolveComponent,\n defaultResolveComponent = _ref$defaultResolveCo === void 0 ? identity : _ref$defaultResolveCo,\n _render = _ref.render,\n onLoad = _ref.onLoad;\n\n function loadable(loadableConstructor, options) {\n if (options === void 0) {\n options = {};\n }\n\n var ctor = resolveConstructor(loadableConstructor);\n var cache = {};\n /**\n * Cachekey represents the component to be loaded\n * if key changes - component has to be reloaded\n * @param props\n * @returns {null|Component}\n */\n\n function _getCacheKey(props) {\n if (options.cacheKey) {\n return options.cacheKey(props);\n }\n\n if (ctor.resolve) {\n return ctor.resolve(props);\n }\n\n return 'static';\n }\n /**\n * Resolves loaded `module` to a specific `Component\n * @param module\n * @param props\n * @param Loadable\n * @returns Component\n */\n\n\n function resolve(module, props, Loadable) {\n var Component = options.resolveComponent ? options.resolveComponent(module, props) : defaultResolveComponent(module);\n\n if (options.resolveComponent && !isValidElementType(Component)) {\n throw new Error(\"resolveComponent returned something that is not a React component!\");\n }\n\n hoistNonReactStatics(Loadable, Component, {\n preload: true\n });\n return Component;\n }\n\n var cachedLoad = function cachedLoad(props) {\n var cacheKey = _getCacheKey(props);\n\n var promise = cache[cacheKey];\n\n if (!promise || promise.status === STATUS_REJECTED) {\n promise = ctor.requireAsync(props);\n promise.status = STATUS_PENDING;\n cache[cacheKey] = promise;\n promise.then(function () {\n promise.status = STATUS_RESOLVED;\n }, function (error) {\n console.error('loadable-components: failed to asynchronously load component', {\n fileName: ctor.resolve(props),\n chunkName: ctor.chunkName(props),\n error: error ? error.message : error\n });\n promise.status = STATUS_REJECTED;\n });\n }\n\n return promise;\n };\n\n var InnerLoadable =\n /*#__PURE__*/\n function (_React$Component) {\n _inheritsLoose(InnerLoadable, _React$Component);\n\n InnerLoadable.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n var cacheKey = _getCacheKey(props);\n\n return _extends({}, state, {\n cacheKey: cacheKey,\n // change of a key triggers loading state automatically\n loading: state.loading || state.cacheKey !== cacheKey\n });\n };\n\n function InnerLoadable(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n result: null,\n error: null,\n loading: true,\n cacheKey: _getCacheKey(props)\n };\n invariant(!props.__chunkExtractor || ctor.requireSync, 'SSR requires `@loadable/babel-plugin`, please install it'); // Server-side\n\n if (props.__chunkExtractor) {\n // This module has been marked with no SSR\n if (options.ssr === false) {\n return _assertThisInitialized(_this);\n } // We run load function, we assume that it won't fail and that it\n // triggers a synchronous loading of the module\n\n\n ctor.requireAsync(props)[\"catch\"](function () {\n return null;\n }); // So we can require now the module synchronously\n\n _this.loadSync();\n\n props.__chunkExtractor.addChunk(ctor.chunkName(props));\n\n return _assertThisInitialized(_this);\n } // Client-side with `isReady` method present (SSR probably)\n // If module is already loaded, we use a synchronous loading\n // Only perform this synchronous loading if the component has not\n // been marked with no SSR, else we risk hydration mismatches\n\n\n if (options.ssr !== false && ( // is ready - was loaded in this session\n ctor.isReady && ctor.isReady(props) || // is ready - was loaded during SSR process\n ctor.chunkName && LOADABLE_SHARED.initialChunks[ctor.chunkName(props)])) {\n _this.loadSync();\n }\n\n return _this;\n }\n\n var _proto = InnerLoadable.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true; // retrieve loading promise from a global cache\n\n var cachedPromise = this.getCache(); // if promise exists, but rejected - clear cache\n\n if (cachedPromise && cachedPromise.status === STATUS_REJECTED) {\n this.setCache();\n } // component might be resolved synchronously in the constructor\n\n\n if (this.state.loading) {\n this.loadAsync();\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Component has to be reloaded on cacheKey change\n if (prevState.cacheKey !== this.state.cacheKey) {\n this.loadAsync();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n if (this.mounted) {\n this.setState(nextState, callback);\n }\n }\n /**\n * returns a cache key for the current props\n * @returns {Component|string}\n */\n ;\n\n _proto.getCacheKey = function getCacheKey() {\n return _getCacheKey(this.props);\n }\n /**\n * access the persistent cache\n */\n ;\n\n _proto.getCache = function getCache() {\n return cache[this.getCacheKey()];\n }\n /**\n * sets the cache value. If called without value sets it as undefined\n */\n ;\n\n _proto.setCache = function setCache(value) {\n if (value === void 0) {\n value = undefined;\n }\n\n cache[this.getCacheKey()] = value;\n };\n\n _proto.triggerOnLoad = function triggerOnLoad() {\n var _this2 = this;\n\n if (onLoad) {\n setTimeout(function () {\n onLoad(_this2.state.result, _this2.props);\n });\n }\n }\n /**\n * Synchronously loads component\n * target module is expected to already exists in the module cache\n * or be capable to resolve synchronously (webpack target=node)\n */\n ;\n\n _proto.loadSync = function loadSync() {\n // load sync is expecting component to be in the \"loading\" state already\n // sounds weird, but loading=true is the initial state of InnerLoadable\n if (!this.state.loading) return;\n\n try {\n var loadedModule = ctor.requireSync(this.props);\n var result = resolve(loadedModule, this.props, Loadable);\n this.state.result = result;\n this.state.loading = false;\n } catch (error) {\n console.error('loadable-components: failed to synchronously load component, which expected to be available', {\n fileName: ctor.resolve(this.props),\n chunkName: ctor.chunkName(this.props),\n error: error ? error.message : error\n });\n this.state.error = error;\n }\n }\n /**\n * Asynchronously loads a component.\n */\n ;\n\n _proto.loadAsync = function loadAsync() {\n var _this3 = this;\n\n var promise = this.resolveAsync();\n promise.then(function (loadedModule) {\n var result = resolve(loadedModule, _this3.props, Loadable);\n\n _this3.safeSetState({\n result: result,\n loading: false\n }, function () {\n return _this3.triggerOnLoad();\n });\n })[\"catch\"](function (error) {\n return _this3.safeSetState({\n error: error,\n loading: false\n });\n });\n return promise;\n }\n /**\n * Asynchronously resolves(not loads) a component.\n * Note - this function does not change the state\n */\n ;\n\n _proto.resolveAsync = function resolveAsync() {\n var _this$props = this.props,\n __chunkExtractor = _this$props.__chunkExtractor,\n forwardedRef = _this$props.forwardedRef,\n props = _objectWithoutPropertiesLoose(_this$props, [\"__chunkExtractor\", \"forwardedRef\"]);\n\n return cachedLoad(props);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n forwardedRef = _this$props2.forwardedRef,\n propFallback = _this$props2.fallback,\n __chunkExtractor = _this$props2.__chunkExtractor,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"forwardedRef\", \"fallback\", \"__chunkExtractor\"]);\n\n var _this$state = this.state,\n error = _this$state.error,\n loading = _this$state.loading,\n result = _this$state.result;\n\n if (options.suspense) {\n var cachedPromise = this.getCache() || this.loadAsync();\n\n if (cachedPromise.status === STATUS_PENDING) {\n throw this.loadAsync();\n }\n }\n\n if (error) {\n throw error;\n }\n\n var fallback = propFallback || options.fallback || null;\n\n if (loading) {\n return fallback;\n }\n\n return _render({\n fallback: fallback,\n result: result,\n options: options,\n props: _extends({}, props, {\n ref: forwardedRef\n })\n });\n };\n\n return InnerLoadable;\n }(React.Component);\n\n var EnhancedInnerLoadable = withChunkExtractor(InnerLoadable);\n var Loadable = React.forwardRef(function (props, ref) {\n return React.createElement(EnhancedInnerLoadable, Object.assign({\n forwardedRef: ref\n }, props));\n });\n Loadable.displayName = 'Loadable'; // In future, preload could use ``\n\n Loadable.preload = function (props) {\n Loadable.load(props);\n };\n\n Loadable.load = function (props) {\n return cachedLoad(props);\n };\n\n return Loadable;\n }\n\n function lazy(ctor, options) {\n return loadable(ctor, _extends({}, options, {\n suspense: true\n }));\n }\n\n return {\n loadable: loadable,\n lazy: lazy\n };\n}\n\nfunction defaultResolveComponent(loadedModule) {\n // eslint-disable-next-line no-underscore-dangle\n return loadedModule.__esModule ? loadedModule[\"default\"] : loadedModule[\"default\"] || loadedModule;\n}\n\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\nvar _createLoadable =\n/*#__PURE__*/\ncreateLoadable({\n defaultResolveComponent: defaultResolveComponent,\n render: function render(_ref) {\n var Component = _ref.result,\n props = _ref.props;\n return React.createElement(Component, props);\n }\n}),\n loadable = _createLoadable.loadable,\n lazy = _createLoadable.lazy;\n\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\nvar _createLoadable$1 =\n/*#__PURE__*/\ncreateLoadable({\n onLoad: function onLoad(result, props) {\n if (result && props.forwardedRef) {\n if (typeof props.forwardedRef === 'function') {\n props.forwardedRef(result);\n } else {\n props.forwardedRef.current = result;\n }\n }\n },\n render: function render(_ref) {\n var result = _ref.result,\n props = _ref.props;\n\n if (props.children) {\n return props.children(result);\n }\n\n return null;\n }\n}),\n loadable$1 = _createLoadable$1.loadable,\n lazy$1 = _createLoadable$1.lazy;\n\n/* eslint-disable no-underscore-dangle, camelcase */\nvar BROWSER = typeof window !== 'undefined';\nfunction loadableReady(done, _temp) {\n if (done === void 0) {\n done = function done() {};\n }\n\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$namespace = _ref.namespace,\n namespace = _ref$namespace === void 0 ? '' : _ref$namespace,\n _ref$chunkLoadingGlob = _ref.chunkLoadingGlobal,\n chunkLoadingGlobal = _ref$chunkLoadingGlob === void 0 ? '__LOADABLE_LOADED_CHUNKS__' : _ref$chunkLoadingGlob;\n\n if (!BROWSER) {\n warn('`loadableReady()` must be called in browser only');\n done();\n return Promise.resolve();\n }\n\n var requiredChunks = null;\n\n if (BROWSER) {\n var id = getRequiredChunkKey(namespace);\n var dataElement = document.getElementById(id);\n\n if (dataElement) {\n requiredChunks = JSON.parse(dataElement.textContent);\n var extElement = document.getElementById(id + \"_ext\");\n\n if (extElement) {\n var _JSON$parse = JSON.parse(extElement.textContent),\n namedChunks = _JSON$parse.namedChunks;\n\n namedChunks.forEach(function (chunkName) {\n LOADABLE_SHARED.initialChunks[chunkName] = true;\n });\n } else {\n // version mismatch\n throw new Error('loadable-component: @loadable/server does not match @loadable/component');\n }\n }\n }\n\n if (!requiredChunks) {\n warn('`loadableReady()` requires state, please use `getScriptTags` or `getScriptElements` server-side');\n done();\n return Promise.resolve();\n }\n\n var resolved = false;\n return new Promise(function (resolve) {\n window[chunkLoadingGlobal] = window[chunkLoadingGlobal] || [];\n var loadedChunks = window[chunkLoadingGlobal];\n var originalPush = loadedChunks.push.bind(loadedChunks);\n\n function checkReadyState() {\n if (requiredChunks.every(function (chunk) {\n return loadedChunks.some(function (_ref2) {\n var chunks = _ref2[0];\n return chunks.indexOf(chunk) > -1;\n });\n })) {\n if (!resolved) {\n resolved = true;\n resolve();\n }\n }\n }\n\n loadedChunks.push = function () {\n originalPush.apply(void 0, arguments);\n checkReadyState();\n };\n\n checkReadyState();\n }).then(done);\n}\n\n/* eslint-disable no-underscore-dangle */\nvar loadable$2 = loadable;\nloadable$2.lib = loadable$1;\nvar lazy$2 = lazy;\nlazy$2.lib = lazy$1;\nvar __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = sharedInternals;\n\nexport default loadable$2;\nexport { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, lazy$2 as lazy, loadableReady };\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import{b as r,a as o,_ as t}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as e from\"react\";import{ButtonModel as n}from\"./ButtonModel.js\";import{b as a}from\"./index-19abfa9e.js\";import{SpinnerIcon as m}from\"./SpinnerIcon.js\";import{WarningIcon as i}from\"./WarningIcon.js\";import{Loading as s}from\"./ActionButtonModel.js\";import{css as l}from\"./css.js\";import{keyframes as d}from\"./keyframes.js\";import{styled as c}from\"./styled.js\";import{IconButton as p}from\"./IconButton.js\";import\"react-router-dom\";import\"./Colors.js\";import\"./createSvgIcon-89a7bcb8.js\";import\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var f,g,u,b=d(f||(f=r([\"\\n 0%, 100% { transform: rotate(0deg); }\\n 12.5% { transform: rotate(45deg); }\\n 25% { transform: rotate(90deg); }\\n 37.5% { transform: rotate(135deg); }\\n 50% { transform: rotate(180deg); }\\n 62.5% { transform: rotate(225deg); }\\n 75% { transform: rotate(270deg); }\\n 87.5% { transform: rotate(315deg); }\\n\"]))),j=l(g||(g=r([\"\\n background-color: \",\" !important;\\n border-color: \",\" !important;\\n svg {\\n animation: \",\" 1s infinite step-start;\\n }\\n\"])),(function(r){return r.theme.palette[r.bgColor]}),(function(r){return r.theme.palette[r.borderColor]}),b),y=c(p)(u||(u=r([\"\\n \",\";\\n\"])),(function(r){return r.loading===s.IsLoading?j:\"\"})),v=[\"loading\",\"error\",\"buttonStyle\",\"children\"],I=function(r){var l=r.loading,d=r.error,c=r.buttonStyle,p=r.children,f=o(r,v),g=t({},f),u=c||n.Styles.primary;l&&(g.overlayIcon=e.createElement(m,null)),d&&(u=n.Styles.danger,g.icon=e.createElement(i,null));var b=a[u].bgActive,j=a[u].borderActive;return e.createElement(y,t({loading:l?s.IsLoading:s.NotLoading,borderColor:j,bgColor:b,buttonStyle:u,disabled:l},g),p)};export{I as ActionButton};\n//# sourceMappingURL=ActionButton.js.map\n","var o;!function(o){o[o.IsLoading=0]=\"IsLoading\",o[o.NotLoading=1]=\"NotLoading\"}(o||(o={}));export{o as Loading};\n//# sourceMappingURL=ActionButtonModel.js.map\n","import{_ as o}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as t from\"react\";import{CheckIcon as r}from\"./CheckIcon.js\";import{ActionButton as e}from\"./ActionButton.js\";import\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";import\"./ButtonModel.js\";import\"./index-19abfa9e.js\";import\"react-router-dom\";import\"./css.js\";import\"./styled.js\";import\"./Colors.js\";import\"./SpinnerIcon.js\";import\"./createSvgIcon-89a7bcb8.js\";import\"./WarningIcon.js\";import\"./ActionButtonModel.js\";import\"./keyframes.js\";import\"./IconButton.js\";var n=function(n){var i=n.loading,m=n.error,s=n.confirmedTimeout,c=void 0===s?2e3:s,p=t.useRef(i),u=t.useState(!1),a=u[0],j=u[1];return p.current===i||a||(p.current&&!m&&(j(!0),setTimeout((function(){return j(!1)}),c)),p.current=i),t.createElement(e,o({},n,{overlayIcon:a&&t.createElement(r,null)}))};export{n as ActionButtonWithConfirmation};\n//# sourceMappingURL=ActionButtonWithConfirmation.js.map\n","import{a as e,_ as t}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as r from\"react\";import i from\"styled-components\";import{breakpoints as o}from\"./breakpoints.js\";import{theme as n}from\"./theme.js\";var m=[\"text\"],a=i.div.withConfig({displayName:\"BlackFridayIcon__StyledBlackFridayIcon\",componentId:\"sc-1i7bv26-0\"})([\"display:flex;flex-direction:column;justify-content:center;background-color:black;color:white;min-width:2.5rem !important;height:2.25rem !important;font-size:0.625rem;line-height:0.75rem;box-sizing:border-box !important;text-transform:uppercase;text-align:center;padding:0 0.2rem 0.1875rem;border-top:0.25rem solid \",\";@media (min-width:\",\"){min-width:2.8125rem !important;height:2.5rem !important;line-height:0.8125rem;}\"],n.palette.primary,o.lg),l=function(i){var o=i.text,n=e(i,m);return r.createElement(a,t({},n,{\"data-testid\":\"black-friday-icon\"}),o.split(\" \").map((function(e){return r.createElement(\"span\",{key:e},e)})))};export{l as BlackFridayIcon};\n//# sourceMappingURL=BlackFridayIcon.js.map\n","var e,a,l,r;a=e||(e={}),function(e){e.default=\"default\",e.xSmall=\"xSmall\",e.small=\"small\",e.medium=\"medium\",e.large=\"large\"}(l||(l={})),a.Sizes=l,function(e){e.default=\"default\",e.primary=\"primary\",e.secondary=\"secondary\",e.neutral=\"neutral\",e.inverse=\"inverse\",e.danger=\"danger\",e.success=\"success\"}(r||(r={})),a.Styles=r;export{e as ButtonModel};\n//# sourceMappingURL=ButtonModel.js.map\n","import{b as t,_ as o}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as r from\"react\";import{ButtonModel as e}from\"./ButtonModel.js\";import{styled as n}from\"./styled.js\";import{ActionButtonWithConfirmation as i}from\"./ActionButtonWithConfirmation.js\";import\"styled-components\";import\"./CheckIcon.js\";import\"./index.js\";import\"./ThemeContext.js\";import\"./ActionButton.js\";import\"./index-19abfa9e.js\";import\"react-router-dom\";import\"./css.js\";import\"./Colors.js\";import\"./SpinnerIcon.js\";import\"./createSvgIcon-89a7bcb8.js\";import\"./WarningIcon.js\";import\"./ActionButtonModel.js\";import\"./keyframes.js\";import\"./IconButton.js\";var m,s=n(i)(m||(m=t([\"\\n margin: 1rem;\\n\"]))),p=function(t){return r.createElement(s,o({buttonStyle:e.Styles.secondary,buttonSize:e.Sizes.xSmall,type:\"button\"},t),t.label)};export{p as BuyButton};\n//# sourceMappingURL=BuyButton.js.map\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as t from\"react\";import{Icon as o}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var r=function(r){return t.createElement(o,e({},r,{viewBox:\"0 0 48 64\",\"data-testid\":\"check-icon\"}),t.createElement(\"polygon\",{fill:\"currentColor\",points:\"45.17 15.32 16.15 44.34 2.83 31.03 0 33.85 16.15 50 48 18.15 45.17 15.32\"}))};export{r as CheckIcon};\n//# sourceMappingURL=CheckIcon.js.map\n","import{b as e,a as n,_ as t}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as o from\"react\";import{n as r}from\"./utils-ec9be121.js\";import{styled as i}from\"./styled.js\";import\"styled-components\";var a,l,d,s=i.span(a||(a=e([\"\\n position: absolute;\\n top: \",\";\\n left: 0;\\n height: \",\";\\n width: \",\";\\n background-color: \",\";\\n\\n border-width: 1px;\\n border-style: solid;\\n border-color: \",\";\\n box-sizing: border-box;\\n transition: border 0.5s ease;\\n\\n &:after {\\n content: '';\\n position: absolute;\\n display: \",\";\\n left: 6px;\\n top: 1px;\\n width: 4px;\\n height: 11px;\\n border: solid\\n \",\";\\n border-width: 0 2px 2px 0;\\n transform: rotate(45deg);\\n }\\n\"])),(function(e){var n=e.position;return n>0?n+\"px\":0}),\"20px\",\"20px\",(function(e){return e.disabled?e.theme.palette.neutralLighter:e.theme.palette.basicInverse}),(function(e){var n=e.theme;return e.disabled?n.palette.neutralLight:n.palette.neutralDark}),(function(e){return e.checked?\"block\":\"none\"}),(function(e){return e.disabled?e.theme.palette.neutral:e.theme.palette.basic})),c=i.label(l||(l=e([\"\\n display: inline-block;\\n position: relative;\\n padding-left: \",\"px;\\n font-size: 0.875rem;\\n line-height: \",\";\\n font-weight: \",\";\\n color: \",\";\\n cursor: \",\";\\n user-select: none;\\n outline: none;\\n\\n &:hover input:not(:disabled) ~ \",\" {\\n border-color: \",\";\\n }\\n\\n &:focus input:not(:disabled) ~ \",\" {\\n border-color: \",\";\\n }\\n\"])),36,\"20px\",(function(e){var n=e.bold;return void 0!==n&&n?800:300}),(function(e){return e.disabled?e.theme.palette.neutral:e.theme.palette.basic}),(function(e){var n=e.disabled;return void 0!==n&&n?\"inherit\":\"pointer\"}),s,(function(e){return e.theme.palette.basic}),s,(function(e){return e.theme.palette.basic})),p=i.input(d||(d=e([\"\\n position: absolute;\\n opacity: 0;\\n top: 0;\\n left: 0;\\n\\n &:checked:not(:disabled) ~ \",\" {\\n border-color: \",\";\\n }\\n\"])),s,(function(e){return e.theme.palette.basic})),b=[\"children\",\"disabled\",\"checked\",\"onChange\",\"position\",\"bold\",\"className\",\"tabIndex\"],u=function(e){var i=e.children,a=e.disabled,l=void 0!==a&&a,d=e.checked,u=e.onChange,h=void 0===u?r:u,m=e.position,f=void 0===m?0:m,x=e.bold,v=void 0!==x&&x,g=e.className,k=e.tabIndex,y=void 0===k?-1:k,w=n(e,b);return o.createElement(c,{disabled:l,bold:v,className:g},i,o.createElement(p,t({},w,{disabled:l,type:\"checkbox\",checked:d,onChange:h,tabIndex:y})),o.createElement(s,{disabled:l,position:f,checked:d}))};export{u as Checkbox};\n//# sourceMappingURL=Checkbox.js.map\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as o from\"react\";import{Icon as t}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var r=function(r){return o.createElement(t,e({},r,{viewBox:\"0 0 50 64\",\"data-testid\":\"chevron-down\"}),o.createElement(\"polygon\",{fill:\"currentColor\",points:\"46.21 19.13 25 40.34 3.79 19.13 0.96 21.96 25 46 49.04 21.96 46.21 19.13\"}))};export{r as ChevronDownIcon};\n//# sourceMappingURL=ChevronDownIcon.js.map\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as o from\"react\";import{Icon as r}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var t=function(t){return o.createElement(r,e({},t,{viewBox:\"0 0 27 64\"}),o.createElement(\"polygon\",{fill:\"currentColor\",points:\"26.87 10.74 24.04 7.92 0 31.96 24.04 56 26.87 53.17 5.66 31.96 26.87 10.74\"}))};export{t as ChevronLeftIcon};\n//# sourceMappingURL=ChevronLeftIcon.js.map\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as o from\"react\";import{Icon as r}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var t=function(t){return o.createElement(r,e({},t,{viewBox:\"0 0 27 64\"}),o.createElement(\"polygon\",{fill:\"currentColor\",points:\"2.96 7.96 0.13 10.79 21.34 32 0.13 53.21 2.96 56.04 27 32 2.96 7.96\"}))};export{t as ChevronRightIcon};\n//# sourceMappingURL=ChevronRightIcon.js.map\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as t from\"react\";import{Icon as o}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var r=function(r){return t.createElement(o,e({},r,{viewBox:\"0 0 50 64\",\"data-testid\":\"chevron-up\"}),t.createElement(\"polygon\",{fill:\"currentColor\",points:\"49.04 42.04 25 18 0.96 42.04 3.79 44.87 25 23.66 46.21 44.87 49.04 42.04\"}))};export{r as ChevronUpIcon};\n//# sourceMappingURL=ChevronUpIcon.js.map\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as c from\"react\";import{Icon as t}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var l=function(l){return c.createElement(t,e({},l,{viewBox:\"0 0 76 64\",\"data-testid\":\"christmas-icon\"}),c.createElement(\"path\",{fill:\"#fff\",d:\"M45.49,7.67A6.61,6.61,0,0,0,39.18,0a6.66,6.66,0,0,0-6.39,6.89c0,.18,0,.35.05.53-1.15.2-2.29.4-3.41.71v9.56a33.38,33.38,0,0,1,19.5.45V8.58A35.45,35.45,0,0,0,45.49,7.67Z\"}),c.createElement(\"path\",{fill:\"#fff\",d:\"M8.21,18.9v6.6a20,20,0,0,1,5.69-.86,20.11,20.11,0,0,1,6.72,1.17v-6.6A19.78,19.78,0,0,0,8.21,18.9Z\"}),c.createElement(\"path\",{fill:\"#fff\",d:\"M54.81,12.41v7a17.85,17.85,0,0,1,5.5-.9,18.09,18.09,0,0,1,6.5,1.23v-7a18.09,18.09,0,0,0-6.5-1.23A17.85,17.85,0,0,0,54.81,12.41Z\"}),c.createElement(\"circle\",{fill:\"#fff\",cx:\"60.81\",cy:\"30.54\",r:\"14.62\"}),c.createElement(\"circle\",{fill:\"#fff\",cx:\"14.42\",cy:\"36.87\",r:\"14.33\"}),c.createElement(\"path\",{fill:\"#6e6e6e\",d:\"M56.91,14v3.55a14.35,14.35,0,0,1,7.81.17V14.14A14.35,14.35,0,0,0,56.91,14Z\"}),c.createElement(\"circle\",{fill:\"#ff3cc6\",cx:\"60.81\",cy:\"30.54\",r:\"12.42\"}),c.createElement(\"path\",{fill:\"#6e6e6e\",d:\"M10.51,20.3v3.55a14.39,14.39,0,0,1,7.82.17V20.46a14.84,14.84,0,0,0-4.24-.62A14.64,14.64,0,0,0,10.51,20.3Z\"}),c.createElement(\"circle\",{fill:\"#d2d2d2\",cx:\"14.42\",cy:\"36.87\",r:\"12.42\"}),c.createElement(\"circle\",{fill:\"#fff\",cx:\"39.1\",cy:\"38.54\",r:\"25.45\"}),c.createElement(\"path\",{fill:\"#212121\",d:\"M43.64,8.81a4.18,4.18,0,0,0,.06-.51,4.52,4.52,0,0,0-9,0c0,.12,0,.23,0,.35-.81.13-1.62.26-2.41.46v6.27a25.22,25.22,0,0,1,13.78.29V9.41C45.28,9.17,44.46,9,43.64,8.81ZM36.25,8.3a2.93,2.93,0,1,1,5.86,0,2.29,2.29,0,0,1,0,.25A25,25,0,0,0,38.6,8.3c-.79,0-1.56.08-2.34.15C36.26,8.4,36.25,8.35,36.25,8.3Z\"}),c.createElement(\"path\",{fill:\"#ffa6ca\",d:\"M42.34,49.5c5,1.22,10.72.35,17-2.49a21.75,21.75,0,0,0,1.72-7.08,33.07,33.07,0,0,1-11.87,2.41,24.4,24.4,0,0,1-5.82-.69c-4.24-1-7.82-3.1-11.27-5.1-4.34-2.52-8.48-4.91-13.67-5.07a21.9,21.9,0,0,0-1.11,6.85c0,.32,0,.62.05.93,5.91.43,10.53,3.06,15,5.65C35.66,46.83,38.78,48.64,42.34,49.5Z\"}),c.createElement(\"path\",{fill:\"#dc0069\",d:\"M44.5,36.94c4.85,1.18,10.31.43,16.31-2.17a21.88,21.88,0,0,0-40.19-8c5.39.65,9.71,3.13,13.9,5.56C37.82,34.27,40.94,36.07,44.5,36.94Z\"}),c.createElement(\"path\",{fill:\"#dc0069\",d:\"M41.2,54.21c-4.24-1-7.82-3.1-11.27-5.1-3.81-2.21-7.46-4.3-11.8-4.9a21.89,21.89,0,0,0,36.59,9.6A30.29,30.29,0,0,1,47,54.9,24.4,24.4,0,0,1,41.2,54.21Z\"}))};export{l as ChristmasIcon};\n//# sourceMappingURL=ChristmasIcon.js.map\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as o from\"react\";import{Icon as t}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var r=function(r){return o.createElement(t,e({},r,{viewBox:\"0 0 50 64\",\"data-testid\":\"close-icon\"}),o.createElement(\"polygon\",{fill:\"currentColor\",points:\"49.04 10.79 46.21 7.96 25 29.17 3.79 7.96 0.96 10.79 22.17 32 0.96 53.21 3.79 56.04 25 34.83 46.21 56.04 49.04 53.21 27.83 32 49.04 10.79\"}))};export{r as CloseIcon};\n//# sourceMappingURL=CloseIcon.js.map\n","import*as t from\"react\";import{S as e}from\"./styled-fd5dd143.js\";import\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import\"./css.js\";import\"styled-components\";import\"./styled.js\";import\"./model.js\";import\"./theme.js\";var r=function(r){return t.createElement(e,r)};export{r as Col};\n//# sourceMappingURL=Col.js.map\n","var r;!function(r){r.primary=\"primary\",r.primaryLight=\"primaryLight\",r.primaryLighter=\"primaryLighter\",r.primaryDark=\"primaryDark\",r.primaryDarker=\"primaryDarker\",r.secondary=\"secondary\",r.secondaryLight=\"secondaryLight\",r.secondaryLighter=\"secondaryLighter\",r.secondaryDark=\"secondaryDark\",r.secondaryDarker=\"secondaryDarker\",r.danger=\"danger\",r.dangerLight=\"dangerLight\",r.dangerLighter=\"dangerLighter\",r.dangerDark=\"dangerDark\",r.dangerDarker=\"dangerDarker\",r.alert=\"alert\",r.alertLight=\"alertLight\",r.alertLighter=\"alertLighter\",r.alertDark=\"alertDark\",r.alertDarker=\"alertDarker\",r.success=\"success\",r.successLight=\"successLight\",r.successLighter=\"successLighter\",r.successDark=\"successDark\",r.successDarker=\"successDarker\",r.neutral=\"neutral\",r.neutralLight=\"neutralLight\",r.neutralLighter=\"neutralLighter\",r.neutralDark=\"neutralDark\",r.neutralDarker=\"neutralDarker\",r.neutralAlt=\"neutralAlt\",r.basic=\"basic\",r.basicInverse=\"basicInverse\",r.transparent=\"transparent\"}(r||(r={}));export{r as Colors};\n//# sourceMappingURL=Colors.js.map\n","import*as e from\"react\";var r=require(\"focus-trap-react\"),t=function(t){var c=t.children,a=t.isActive,i=e.useState(!1),n=i[0],o=i[1];return e.useEffect((function(){o(!0)}),[]),e.createElement(r,{active:n&&a,focusTrapOptions:{preventScroll:!0}},c)};export{t as DelayedFocusTrap};\n//# sourceMappingURL=DelayedFocusTrap.js.map\n","import{_ as h}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as e from\"react\";import{Icon as m}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var c=function(c){return e.createElement(m,h({},c,{viewBox:\"0 0 40 40\"}),e.createElement(\"path\",{d:\"M22.9 11.9h-.5v4.873h-3.8V11.9h-4.8V8.1h4.8V3.227h3.8V8.1h4.8v3.8h-4.3Z\",fill:\"#2350E6\",stroke:\"#2350E6\"}),e.createElement(\"path\",{d:\"M5.788 29H4.27l.01-.972h1.508c.44 0 .807-.096 1.104-.288.3-.192.524-.467.673-.825.153-.358.23-.784.23-1.28v-.385c0-.384-.044-.724-.132-1.02a2 2 0 0 0-.38-.748 1.595 1.595 0 0 0-.616-.459 2.089 2.089 0 0 0-.835-.156H4.24v-.976h1.592c.472 0 .903.08 1.294.239.39.156.728.382 1.01.679.287.296.507.65.66 1.064.153.413.23.876.23 1.387v.376c0 .51-.077.973-.23 1.387a3.015 3.015 0 0 1-.66 1.064c-.286.293-.628.52-1.025.679A3.56 3.56 0 0 1 5.788 29Zm-.84-7.11V29H3.723v-7.11h1.225Zm9.961 6.138V29h-3.774v-.972h3.774Zm-3.428-6.137V29h-1.225v-7.11h1.225Zm2.935 2.968v.957h-3.281v-.957h3.281Zm.469-2.968v.976h-3.75v-.976h3.75Zm1.025 0h2.515c.54 0 1 .081 1.382.244.38.162.672.403.874.722.205.316.307.707.307 1.172 0 .355-.065.668-.195.938-.13.27-.314.498-.552.683-.237.183-.52.324-.85.425l-.37.18H16.76l-.01-.97h1.694c.293 0 .537-.053.733-.157.195-.104.342-.246.44-.425.1-.182.15-.387.15-.615 0-.248-.048-.462-.146-.645a.943.943 0 0 0-.44-.424c-.198-.101-.45-.152-.756-.152h-1.29V29H15.91v-7.11ZM19.968 29l-1.67-3.193 1.284-.005 1.694 3.134V29h-1.308Zm2.739-7.11h1.094l2.055 5.484 2.051-5.483h1.094L26.286 29h-.869l-2.71-7.11Zm-.498 0h1.04l.18 4.747V29h-1.22v-7.11Zm6.25 0h1.045V29h-1.226v-2.363l.181-4.746Zm8.169 3.36v.39c0 .538-.07 1.02-.21 1.446-.14.426-.34.79-.6 1.089-.258.3-.567.529-.928.688a2.996 2.996 0 0 1-1.202.235c-.436 0-.835-.078-1.196-.235a2.686 2.686 0 0 1-.932-.688 3.197 3.197 0 0 1-.616-1.09 4.527 4.527 0 0 1-.214-1.444v-.391c0-.537.071-1.017.214-1.44.144-.427.345-.79.606-1.09.264-.302.574-.531.932-.688.362-.16.76-.239 1.197-.239.44 0 .84.08 1.2.24.362.155.673.385.934.688.26.3.46.662.6 1.089.143.423.215.903.215 1.44Zm-1.226.39v-.4c0-.397-.039-.747-.117-1.05a2.155 2.155 0 0 0-.337-.766 1.407 1.407 0 0 0-.542-.469 1.604 1.604 0 0 0-.727-.161c-.27 0-.511.054-.723.161-.212.104-.392.26-.542.469-.146.205-.259.46-.337.766a4.224 4.224 0 0 0-.117 1.05v.4c0 .398.039.75.117 1.055.078.306.192.565.342.777.153.208.335.366.547.473.211.104.452.157.722.157.274 0 .516-.053.728-.157.212-.107.39-.265.537-.473.147-.212.257-.47.332-.777.078-.306.117-.657.117-1.054Z\",fill:\"#474747\",className:\"iconText\"}))};export{c as DermoIcon};\n//# sourceMappingURL=DermoIcon.js.map\n","import{b as t}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import n,{css as o}from\"styled-components\";import{breakpoints as e}from\"./breakpoints.js\";import{keyframes as i}from\"./keyframes.js\";import{theme as r}from\"./theme.js\";import{M as a,a as s}from\"./contants-c1124f5c.js\";var d=500,l=350,c=a-1,m=\"transparent\",u=\"rgba(0,0,0,0.5)\",h={mobile:\"3.25rem\",desktop:\"4rem\"},p={md:\"25rem\",lg:\"25rem\",xl:\"25rem\"};function f(t,n){return{value:t,unit:n,get css(){return\"\"+t+n}}}var b,g,w,v,y,k={middle:f(40,\"vh\"),top:f(3,\"vh\"),bottom:f(100,\"vh\")},_={middle:\"--max-height-middle\",top:\"--max-height-top\",bottom:\"--max-height-bottom\"},x=\"--subtitle-height\",C={bottom:70,middle:20,top:19},I=1.75,N=i(g||(g=t([\"\\n from {\\n transform: translate(\",\", 0);\\n }\\n to {\\n transform: translateX(0);\\n }\\n\"])),p.lg),S=i(w||(w=t([\"\\n from {\\n background: \",\";\\n }\\n to {\\n background: \",\";\\n }\\n\"])),m,u),H=i(v||(v=t([\"\\n from {\\n background: \",\";\\n }\\n to {\\n background: \",\";\\n }\\n\"])),u,m),j=n.div.withConfig({displayName:\"styled__DrawerBackground\",componentId:\"sc-t9f6c1-0\"})([\"position:fixed;width:100%;top:0;right:0;bottom:0;left:0;animation:\",\" \",\"ms ease-in-out;background:\",\";transition:all \",\"ms;z-index:\",\";\"],(function(t){return t.show?S:H}),500,(function(t){return t.show?u:m}),500,c),B=n.div.attrs({role:\"dialog\",\"aria-modal\":\"true\",\"aria-keyshortcuts\":\"Escape\"}).withConfig({displayName:\"styled__DrawerContainer\",componentId:\"sc-t9f6c1-1\"})([\"width:100vw;height:100vh;position:fixed;padding-bottom:env(safe-area-inset-bottom);transform:translateY(\",\");box-shadow:0 0 0.5rem 0.5rem rgba(0,0,0,0.1);border-top-left-radius:0.25rem;border-top-right-radius:0.25rem;animation:\",\" \",\"ms ease-out;background-color:\",\";@media (min-width:\",\"){width:\",\";height:100vh;transform:translate(0,0);right:0;top:0;animation:\",\" \",\"ms ease-out;border-top-left-radius:0;border-top-right-radius:0;}@media (min-width:\",\"){width:\",\";}@media (min-width:\",\"){width:\",\";}\"],(function(t){var n=t.initialPosition;return k[n].css}),(function(n){var o=n.initialPosition;return i(b||(b=t([\"\\n from {\\n transform: translateY(\",\");\\n }\\n to {\\n transform: translateY(\",\");\\n }\\n\"])),k.bottom.css,k[o].css)}),500,(function(t){var n=t.background;return void 0===n?r.palette.basicInverse:n}),e.md,p.md,N,500,e.lg,p.lg,e.xl,p.xl),Y=n.div.withConfig({displayName:\"styled__SwipeableTop\",componentId:\"sc-t9f6c1-2\"})([\"width:100%;height:\",\";border-bottom:\",\";@media (min-width:\",\"){height:\",\";border-bottom:none;}\"],h.mobile,(function(t){return t.isTitleBorderHidden?\"none\":\"1px solid ${theme.palette.neutralLight}\"}),e.md,h.desktop),T=n.section.withConfig({displayName:\"styled__Container\",componentId:\"sc-t9f6c1-3\"})([\"width:100%;position:absolute;overflow:hidden;\"]),L=n.div.withConfig({displayName:\"styled__Content\",componentId:\"sc-t9f6c1-4\"})([\"width:100%;height:100%;@media (min-width:\",\"){max-height:calc(100vh - \",\") !important;}\"],e.md,h.desktop),P=o([\"-ms-overflow-style:none;scrollbar-width:none;::-webkit-scrollbar{display:none;}\"]),D=n.div.withConfig({displayName:\"styled__ScrollableContent\",componentId:\"sc-t9f6c1-5\"})([\"\",\":\",\";\",\":\",\";\",\":\",\";\",\":0px;height:100%;max-height:var(\",\");overflow-y:scroll;\",\" overscroll-behavior:auto;touch-action:pan-y;::-webkit-scrollbar{-webkit-appearance:none;}::-webkit-scrollbar:vertical{width:0.5rem;}::-webkit-scrollbar-thumb{background-color:\",\";border-right:0.25rem solid \",\";}::-webkit-scrollbar-track{background-color:\",\";}@media (min-width:\",\"){max-height:calc(100vh - \",\" - var(\",\"));}\"],_.middle,k.middle.css,_.top,k.top.css,_.bottom,k.bottom.css,\"--subtitle-height\",(function(t){var n=t.initialPosition;return _[n]}),(function(t){return t.hideScrollbar?P:\"\"}),r.palette.neutral,(function(t){var n=t.background;return void 0===n?r.palette.basicInverse:n}),(function(t){var n=t.background;return void 0===n?r.palette.basicInverse:n}),e.md,h.desktop,\"--subtitle-height\"),E=n.div.withConfig({displayName:\"styled__Title\",componentId:\"sc-t9f6c1-6\"})([\"height:100%;display:flex;flex-flow:row;align-items:center;justify-content:space-between;@media (min-width:\",\"){border-bottom:none;}\"],e.md),z=n.div.withConfig({displayName:\"styled__Fade\",componentId:\"sc-t9f6c1-7\"})([\"width:100vw;height:\",\"rem;background:linear-gradient(180deg,rgba(230,230,230,0) 0%,\",\" 100%);position:absolute;bottom:0;pointer-events:none;@media (min-width:\",\"){width:100%;}\"],2.5,r.palette.neutralLight,e.md),F=n.button.attrs((function(){return{\"aria-expanded\":\"true\",\"aria-keyshortcuts\":\"Escape\"}})).withConfig({displayName:\"styled__CloseButton\",componentId:\"sc-t9f6c1-8\"})([\"background-color:rgba(0,0,0,0);border:0;padding:1rem;cursor:pointer;\"]),M=n.button.withConfig({displayName:\"styled__BackButton\",componentId:\"sc-t9f6c1-9\"})([\"background-color:rgba(0,0,0,0);border:0;padding:1rem;cursor:pointer;\"]),X=n.div.withConfig({displayName:\"styled__StepWrapper\",componentId:\"sc-t9f6c1-10\"})([\"width:100%;background:\",\";height:0.125rem;\"],r.palette.neutralLighter),q=n.div.withConfig({displayName:\"styled__StepIndicator\",componentId:\"sc-t9f6c1-11\"})([\"width:\",\"%;height:100%;background:\",\";transition:all 0.2s ease-in;\"],(function(t){return t.currentStep/t.totalSteps*100}),(function(t){return t.currentStep===t.totalSteps?r.palette.neutralLighter:r.palette.basic})),A=function(){return\"undefined\"==typeof window||y||(y=window.matchMedia(\"(min-width: \"+r.breakpoints.md+\"em)\")),y.matches},G=function(t){return void 0===t&&(t=500),\"all \"+t+\"ms\"},J=function(t){return\"translateX(\"+t+\")\"},V=function(t){return\"translateY(\"+t+\")\"},W=function(t,n){return\"max(\"+t+\", \"+n+\")\"},$=function(t){return\"calc(\"+t+\")\"},K=function(t){return t.scrollTop+t.clientHeight>t.scrollHeight-5},O=function(t){return 0===t.scrollTop},Q=function(t){return O(t)?\"top\":K(t)?\"bottom\":null},R=function(t){return 100/window.innerHeight*t},U=function(t){return k[t].value/100*window.innerHeight},Z=function(t,n){return void 0===n&&(n=window.innerHeight),n/100*t},tt=function(t){t.style.overflowY=\"hidden\"},nt=function(t){t.style.overflowY=\"scroll\"},ot=function(t,n){t.style.maxHeight=\"var(\"+_[n]+\")\"},et=function(t,n){var o=t>=C.bottom,e=n>=1.75;return o&&e?\"slide-down-position-velocity\":o&&!e?\"slide-down-position\":!o&&e?\"slide-down-velocity\":void 0},it=s.styleHookSingleton(),rt=function(){var t=A()?\"\\n body { \\n width: unset !important; \\n }\\n \":\"\";it(t)},at=s.styleHookSingleton(),st=function(){var t=A()?\"\":\"\\n body { \\n overflow: hidden !important; \\n position: fixed !important; \\n width: 100%; \\n bottom: 0; \\n top: \"+-window.scrollY+\"px; \\n }\\n html {\\n height: 100vh;\\n }\\n \";at(t)};export{d as A,M as B,F as C,k as D,B as E,z as F,Y as G,E as H,T as I,L as J,x as S,h as T,I as V,_ as a,D as b,$ as c,O as d,X as e,q as f,J as g,V as h,K as i,p as j,A as k,Q as l,l as m,U as n,R as o,C as p,et as q,ot as r,W as s,G as t,tt as u,Z as v,nt as w,st as x,rt as y,j as z};\n//# sourceMappingURL=useFixSafariAddressBarMovement-71f3291b.js.map\n","import{_ as e,c as t,d as n,a as o}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as r from\"react\";import{e as i}from\"./contants-c1124f5c.js\";import{DelayedFocusTrap as c}from\"./DelayedFocusTrap.js\";import{Colors as a}from\"./Colors.js\";import{ChevronLeftIcon as s}from\"./ChevronLeftIcon.js\";import{B as l,C as u,S as d,D as f,c as p,T as m,a as v,v as w,i as h,F as b,b as E,d as T,e as S,f as y,t as g,g as k,h as R,A as B,j as C,k as P,l as j,r as x,m as D,n as z,o as F,p as L,V as Y,q as M,s as H,u as I,w as U,x as O,y as A,z as V,E as _,G as q,H as W,I as X,J as G}from\"./useFixSafariAddressBarMovement-71f3291b.js\";import{CloseIcon as J}from\"./CloseIcon.js\";import\"./_commonjsHelpers-41cdd1e7.js\";import\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";import\"./breakpoints.js\";import\"./theme.js\";import\"./keyframes.js\";var K=function(t){return r.createElement(l,e({},t,{\"data-testid\":\"back-button\"}),r.createElement(s,{height:\"1.25rem\",color:a.basic}))},N=function(e){return r.createElement(u,e,r.createElement(J,{color:a.basic,width:\"1rem\",height:\"1rem\"}))},Q=function(e){var t=e.innerRef,n=e.isScrolledToBottom,o=e.setScrolledToBottom;return r.useEffect((function(){if(t.current){o(h(t.current));var e=new MutationObserver((function(){o(h(t.current))}));return e.observe(t.current,{childList:!0}),function(){e.disconnect()}}}),[t,o]),r.createElement(b,{hidden:n,\"data-testid\":\"scroll-fade\"})},Z=function(e){var t=e.children,n=e.innerRef,o=e.subtitle,i=e.drawerRef,c=e.initialPosition,a=e.showFade,s=e.background,l=e.hideScrollbar,u=r.useState(!1),b=u[0],S=u[1],y=r.useRef(null),g=r.useRef(0);!function(e,t){r.useLayoutEffect((function(){if(t.current){var n=\"0px\";null!=e&&e.current&&(n=e.current.clientHeight+\"px\"),t.current.style.setProperty(d,n)}}),[t,e])}(y,n),function(e,t){r.useEffect((function(){var n=function(){var n,o=window.innerHeight,r=null==(n=e.current)?void 0:n.offsetHeight;Object.entries(f).forEach((function(e){var n,i=e[0],c=e[1].value,a=w(c,r),s=p(o-a+\"px - \"+m.mobile+\" - var(\"+d+\")\"),l=v[i];null==(n=t.current)||n.style.setProperty(l,s)}))};return n(),window.addEventListener(\"resize\",n),function(){window.removeEventListener(\"resize\",n)}}),[e,t])}(i,n);return r.createElement(r.Fragment,null,o?r.createElement(\"div\",{ref:y},o):null,r.createElement(E,{\"data-testid\":\"drawer-scrollable-content\",onScroll:a?function(e){S(h(e.currentTarget))}:void 0,ref:n,initialPosition:c,onTouchStart:function(e){g.current=e.touches[0].clientY},onTouchMove:function(e){g.currente.touches[0].clientY&&h(e.currentTarget)||e.stopPropagation())},onTouchEnd:function(){g.current=0},background:s,hideScrollbar:l},t),a&&r.createElement(Q,{innerRef:n,isScrolledToBottom:b,setScrolledToBottom:S}))},$=function(e){var t=e.children,n=void 0===t?null:t,o=e.currentStep,i=e.totalSteps,c=e.showProgress;return i&&o&&c?r.createElement(r.Fragment,null,r.createElement(S,null,r.createElement(y,{\"data-testid\":\"progress-bar\",currentStep:o,totalSteps:i})),n):n},ee=function(e){return r.useCallback(function(){var o=t(n().mark((function t(o,r){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return void 0===r&&(r=B),e.current.dataset.position=o,e.current.style.transition=g(r),e.current.style.transform=\"side\"===o?k(C.lg):R(f[o].css),t.abrupt(\"return\",new Promise((function(e){setTimeout(e,r)})));case 5:case\"end\":return t.stop()}}),t)})));return function(e,t){return o.apply(this,arguments)}}(),[e])},te=function(e){var t=r.useRef(null);return r.useMemo((function(){var n=e.fireEventsOnlyWhenScrolledToTopOrBottom,o=e.onSwipedDown,r=e.onVerticalSwiping,i={Up:e.onSwipedUp,Down:o},c=null,a=null,s=null,l=null,u=null,d=function(e){var t=(new Date).getTime()-l,n=a.y-c.y;return{initial:c,deltaY:n,velocity:Math.abs(n)/t,scrollPosition:s,dir:a.y>c.y?\"Down\":\"Up\",nativeEvent:e,elementTop:u,lastPosition:a}};return{ref:t,onTouchStart:function(e){var o=e.touches;e.nativeEvent.stopPropagation(),P()||(s=j(t.current),n&&null===s||(u=t.current.getBoundingClientRect().top,l=(new Date).getTime(),c={x:o[0].clientX,y:o[0].clientY}))},onTouchMove:function(e){c&&(a={x:e.touches[0].clientX,y:e.touches[0].clientY},r(d(e),t))},onTouchEnd:function(e){if(a&&c){var n=a.y>c.y?\"Down\":\"Up\";i[n](d(e),t),c=null,a=null,u=null,s=null}}}}),[e])},ne=function(t,n){var o=n.interceptBrowserBackButtonToCloseDrawer,i=n.onClose,c=n.onResizeToMiddle,a=n.onResizeToTop,s=n.initialPosition,l=n.allowResize,u=r.useRef(s),d=r.useRef(!0),m=r.useRef(),v=ee(t);r.useEffect((function(){P()&&(t.current.dataset.position=\"side\")}),[t]);var w=r.useCallback((function(e){(u.current!==e||l)&&(\"top\"===e?null==a||a():\"middle\"===e&&(null==c||c()))}),[c,a,l]),h=r.useCallback((function(e,t,n){void 0===n&&(n=\"slide-down\");var o=e;l||\"bottom\"===e||(o=s),w(o),cancelAnimationFrame(m.current),d.current=!0,u.current=o,\"bottom\"===o&&i(n),\"top\"===o&&x(t,o),v(o,D).finally((function(){\"top\"!==o&&x(t,o)}))}),[l,w,v,s,i]),b=r.useCallback((function(){i(\"escape\")}),[i]);!function(e,t){r.useEffect((function(){if(t&&!P()){var n=function t(n){\"#drawer\"!==window.location.hash&&(n.preventDefault(),e(),window.removeEventListener(\"hashchange\",t))};return window.location.hash=\"drawer\",window.addEventListener(\"hashchange\",n),function(){window.removeEventListener(\"hashchange\",n),\"#drawer\"===window.location.hash&&history.back()}}}),[t,e])}(r.useCallback((function(){i(\"browser-back\")}),[i]),o),function(e){var t=e.onEscape;r.useEffect((function(){var e=function(e){\"Escape\"===e.key&&t()};return document.addEventListener(\"keydown\",e),function(){document.removeEventListener(\"keydown\",e)}}),[t])}({onEscape:b});var E=function(e){var t=z(u.current),n=F(t+e.deltaY);if(n>=L.bottom||e.velocity>=Y){var o=M(n,e.velocity);h(\"bottom\",S.ref.current,o)}else n>=L.middle?h(\"middle\",S.ref.current):h(\"top\",S.ref.current)},T=function(e){P()||d.current&&(d.current=!1,m.current=requestAnimationFrame((function(){var n=f[u.current].css;x(S.ref.current,\"top\"),t.current.style.transition=\"none\",t.current.style.transform=R(H(\"0vh\",p(n+\" + \"+e.deltaY+\"px\"))),d.current=!0})))},S=te({fireEventsOnlyWhenScrolledToTopOrBottom:!1,onVerticalSwiping:function(t,n){var o=\"Up\"===t.dir,r=\"Down\"===t.dir,i=\"bottom\"===t.scrollPosition,c=\"top\"===t.scrollPosition,a=t.lastPosition.y,s=a0},f),l.current.element):null)},Context:i,useDrawerContext:function(){var e=n.useContext(i);if(!e)throw new Error(\"Must be used inside DrawerContext.Provider\");return e}};export{s as DrawerContext};\n//# sourceMappingURL=DrawerContext.js.map\n","import{b as r}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import{css as n}from\"./css.js\";import{styled as t}from\"./styled.js\";import{Breakpoints as e}from\"./model.js\";var i,o,m,u=n(i||(i=r([\"\\n padding-right: \",\";\\n padding-left: \",\";\\n\"])),(function(r){return r.theme.grid.outerMargin.toString()+\"rem\"}),(function(r){return r.theme.grid.outerMargin.toString()+\"rem\"})),a=n(o||(o=r([\"\\n \",\"\\n\"])),(function(r){return function(r){return e.map((function(n){return r.theme.grid.container[n]&&r.theme.grid.media[n](\"width: \"+r.theme.grid.container[n]+\"rem;\")}))}(r)})),g=t.div(m||(m=r([\"\\n margin-right: auto;\\n margin-left: auto;\\n\\n \",\";\\n\"])),(function(r){return r.fluid?u:a}));export{g as S};\n//# sourceMappingURL=styled-db52c42c.js.map\n","import*as r from\"react\";import{S as t}from\"./styled-db52c42c.js\";import\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import\"./css.js\";import\"styled-components\";import\"./styled.js\";import\"./model.js\";var e=function(e){return r.createElement(t,e)};export{e as Grid};\n//# sourceMappingURL=Grid.js.map\n","import{b as n}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import{breakpoints as e}from\"./breakpoints.js\";import{css as i}from\"./css.js\";import{styled as m}from\"./styled.js\";import{theme as r}from\"./theme.js\";import\"styled-components\";var t,h,o,s,l,f,a,g=i(t||(t=n([\"\\n color: \",\";\\n font-weight: 300;\\n padding: 0;\\n text-transform: none;\\n margin: 1rem 0 0.625rem;\\n\\n @media (min-width: \",\") {\\n margin: 2.125rem 0 1.125rem;\\n }\\n\"])),r.palette.basic,e.sm),d={H1:m.h1(h||(h=n([\"\\n \",\";\\n font-size: 1.5rem;\\n line-height: 2rem;\\n\\n @media (min-width: \",\") {\\n font-size: 2rem;\\n line-height: 2.75rem;\\n }\\n\"])),g,e.sm),H2:m.h2(o||(o=n([\"\\n \",\";\\n font-size: 1.375rem;\\n line-height: 1.75rem;\\n\\n @media (min-width: \",\") {\\n font-size: 1.75rem;\\n line-height: 2.375rem;\\n }\\n\"])),g,e.sm),H3:m.h3(s||(s=n([\"\\n \",\";\\n font-size: 1.125rem;\\n line-height: 1.5rem;\\n\\n @media (min-width: \",\") {\\n font-size: 1.5rem;\\n line-height: 2rem;\\n }\\n\"])),g,e.sm),H4:m.h4(l||(l=n([\"\\n \",\";\\n font-size: 1rem;\\n line-height: 1.375rem;\\n\\n @media (min-width: \",\") {\\n font-size: 1.125rem;\\n line-height: 1.5rem;\\n }\\n\"])),g,e.sm),H5:m.h5(f||(f=n([\"\\n \",\";\\n font-size: 0.875rem;\\n line-height: 1.25rem;\\n\"])),g),H6:m.h6(a||(a=n([\"\\n \",\";\\n font-size: 0.75rem;\\n line-height: 1.25rem;\\n\"])),g)};export{d as Heading};\n//# sourceMappingURL=Heading.js.map\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import{c as o}from\"./createSvgIcon-89a7bcb8.js\";import\"react\";import\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var r=function(r){return o(\"M11.9672727,23.12625 L11.1345455,22.5 C7.71636364,19.9875 5.05454545,17.44125 3.22909091,14.93625 C1.49454545,12.5625 0.538181818,10.27125 0.385454545,8.1375 C0.187012774,6.10535738 0.910493349,4.09271563 2.34545455,2.685 C3.50030137,1.52735746 5.04764879,0.880196689 6.65818182,0.88125 C7.91636364,0.88125 9.54181818,1.0275 10.9490909,2.15625 C11.3317201,2.4506027 11.6838868,2.78487158 12,3.15375 C12.3196784,2.78465931 12.674149,2.44925973 13.0581818,2.1525 C14.4727273,1.0275 16.1018182,0.87375 17.3636364,0.87375 C18.9734518,0.867070062 20.521226,1.51360865 21.6727273,2.67375 C23.1043181,4.08100668 23.8205042,6.0943981 23.6109091,8.1225 C23.4509091,10.26 22.4836364,12.55125 20.7381818,14.925 C18.9090909,17.4375 16.2290909,19.9875 12.8036364,22.5 L11.9672727,23.12625 Z\",e({viewBox:\"0 0 24 24\"},r))};export{r as HeartIcon};\n//# sourceMappingURL=HeartIcon.js.map\n","import{_ as C}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import{c as e}from\"./createSvgIcon-89a7bcb8.js\";import\"react\";import\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var o=function(o){return e(\"M11.9672727,23.12625 L11.1345455,22.5 C7.71636364,19.9875 5.05454545,17.44125 3.22909091,14.93625 C1.49454545,12.5625 0.538181818,10.27125 0.385454545,8.1375 C0.187012774,6.10535738 0.910493349,4.09271563 2.34545455,2.685 C3.50030137,1.52735746 5.04764879,0.880196689 6.65818182,0.88125 C7.91636364,0.88125 9.54181818,1.0275 10.9490909,2.15625 C11.3317201,2.4506027 11.6838868,2.78487158 12,3.15375 C12.3196784,2.78465931 12.674149,2.44925973 13.0581818,2.1525 C14.4727273,1.0275 16.1018182,0.87375 17.3636364,0.87375 C18.9734518,0.867070062 20.521226,1.51360865 21.6727273,2.67375 C23.1043181,4.08100668 23.8205042,6.0943981 23.6109091,8.1225 C23.4509091,10.26 22.4836364,12.55125 20.7381818,14.925 C18.9090909,17.4375 16.2290909,19.9875 12.8036364,22.5 L11.9672727,23.12625 Z M3.45818182,3.8925 C2.38163066,4.96207375 1.84474893,6.48463678 2.00363636,8.0175 C2.13090909,9.82875 2.98181818,11.82375 4.52727273,13.93875 C6.23636364,16.27875 8.74181818,18.6825 11.9745455,21.06375 C15.2181818,18.6675 17.7345455,16.26 19.4581818,13.90875 C21.0145455,11.79 21.8727273,9.78375 22.0036364,7.98375 C22.1659039,6.45046439 21.6284958,4.92640844 20.5490909,3.85875 C19.6976759,3.00042937 18.554287,2.51989764 17.3636364,2.52 C16.36,2.52 15.0763636,2.62875 14.0509091,3.45 C13.6107404,3.77112064 13.2301409,4.17123511 12.9272727,4.63125 L12.9272727,4.6575 L12,6 L11.0909091,4.665 C10.7856904,4.19920346 10.4027928,3.79291346 9.96,3.465 C8.94181818,2.65125 7.66181818,2.5425 6.66181818,2.5425 C5.46548613,2.54247938 4.31674864,3.02575684 3.46181818,3.88875 L3.45818182,3.8925 Z\",C({viewBox:\"0 0 24 24\"},o))};export{o as HeartOIcon};\n//# sourceMappingURL=HeartOIcon.js.map\n","import{a as o,_ as r}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as e from\"react\";import{Colors as t}from\"./Colors.js\";import{ChevronDownIcon as i}from\"./ChevronDownIcon.js\";import{ChevronUpIcon as n}from\"./ChevronUpIcon.js\";import\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var m=[\"isOpen\",\"color\",\"size\"],s=function(s){var p=s.isOpen,l=s.color,c=void 0===l?t.neutral:l,a=s.size,h=void 0===a?\"12px\":a,f=o(s,m);return p?e.createElement(n,r({color:c,width:h,height:h},f)):e.createElement(i,r({color:c,width:h,height:h},f))};export{s as HorizontalChevron};\n//# sourceMappingURL=HorizontalChevron.js.map\n","import{b as e,a as t,_ as n}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as i from\"react\";import{ButtonModel as o}from\"./ButtonModel.js\";import{B as l,a as r,b as a}from\"./index-19abfa9e.js\";import{styled as s}from\"./styled.js\";import\"react-router-dom\";import\"./css.js\";import\"styled-components\";import\"./Colors.js\";var c,d,u,m,p,b,f=s(l)(c||(c=e([\"\\n padding: \",\";\\n box-sizing: border-box;\\n\"])),(function(e){return e.hasText?\"0 0.5625rem\":0})),h=s.span(d||(d=e([\"\\n padding: 0.4375rem;\\n\"]))),v=s.div(u||(u=e([\"\\n position: relative;\\n width: 100%;\\n height: 100%;\\n\"]))),y=s.span(m||(m=e([\"\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 100%;\\n height: 100%;\\n visibility: \",\";\\n\"])),(function(e){return e.visible?\"visible\":\"hidden\"})),g=s.div.attrs({\"data-testid\":\"icon-wrapper\"})(p||(p=e([\"\\n flex: none;\\n\\n display: flex;\\n align-items: center;\\n\"]))),S=s.div.attrs({\"data-testid\":\"overlay-icon-wrapper\"})(b||(b=e([\"\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n\"]))),x=[\"icon\",\"right\",\"overlayIcon\",\"children\"],z=function(e){var l=e.icon,s=void 0===l?null:l,c=e.right,d=void 0!==c&&c,u=e.overlayIcon,m=void 0===u?null:u,p=e.children,b=t(e,x),z=n({},b);z.buttonStyle=b.buttonStyle?b.buttonStyle:o.Styles.primary,z.buttonSize=b.buttonSize?b.buttonSize:o.Sizes.default;var E=r[z.buttonSize],j=a[z.buttonStyle],w=s?i.createElement(g,null,i.cloneElement(s,{width:E.iconSize,height:E.iconSize,color:j.fontDefault})):null,B=m?i.createElement(S,null,i.cloneElement(m,{width:E.overlayIconSize,height:\"100%\",color:j.fontDefault})):null;return i.createElement(f,n({hasText:Boolean(p)},z),i.createElement(v,null,Boolean(m)&&B,i.createElement(y,{visible:!m},d||w,p&&i.createElement(h,null,p),d&&w)))};export{z as IconButton};\n//# sourceMappingURL=IconButton.js.map\n","import{b as A,a as Q,_ as C}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as B from\"react\";import{styled as I}from\"./styled.js\";import\"styled-components\";var g,E,h=I.div.attrs({\"data-testid\":\"img-placeholder\"})(g||(g=A([\"\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: \",\";\\n height: \",\";\\n background: \",\";\\n\"])),(function(A){return A.width||\"100%\"}),(function(A){return A.height||\"100%\"}),(function(A){var Q=A.show,C=A.small;return Q?\"url(\"+function(A){return A?\"data:image/gif;base64,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\":\"data:image/gif;base64,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\"}(C)+\") center center no-repeat\":\"inherit\"})),i=I.img(E||(E=A([\"\\n \",\";\\n\"])),(function(A){return A.hidden?\"visibility: hidden\":\"\"})),w=[\"hidePlaceholder\",\"image\",\"loadDelay\",\"onLoad\",\"small\"],o=function(A){var I=A.hidePlaceholder,g=A.image,E=A.loadDelay,o=A.onLoad,K=A.small,a=void 0!==K&&K,D=Q(A,w),U=B.useState(!1),k=U[0],F=U[1],G=!I&&!k,l=B.useCallback((function(A){I||void 0===E?(F(!0),\"function\"==typeof o&&o(A)):setTimeout((function(){F(!0),\"function\"==typeof o&&o(A)}),E)}),[o,E,I,g.src]),c=B.useCallback((function(A){null!=A&&A.complete?l(A):F(!1)}),[l]);return B.createElement(h,{show:G,width:g.width,height:g.height,small:a},B.createElement(i,C({},g,{ref:c,hidden:G,onLoad:function(A){k||(A.persist(),l(A.currentTarget))},draggable:!1},D)))};export{o as ImagePlaceholder};\n//# sourceMappingURL=ImagePlaceholder.js.map\n","import{c as e}from\"./createSvgIcon-89a7bcb8.js\";import\"react\";import\"./index.js\";import\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import\"./ThemeContext.js\";import\"styled-components\";var r=function(r){return e(\"M32,0A32,32,0,1,0,64,32,32,32,0,0,0,32,0Zm4,52H28V26h8ZM32,22.86a5,5,0,1,1,5-5A5,5,0,0,1,32,22.86Z\",r)};export{r as InfoCircleIcon};\n//# sourceMappingURL=InfoCircleIcon.js.map\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as t from\"react\";import{Icon as r}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var o=function(o){return t.createElement(r,e({},o,{\"data-testid\":\"info-icon\"}),t.createElement(\"rect\",{fill:\"currentColor\",x:\"26.67\",y:\"21.49\",width:\"13.08\",height:\"42.51\"}),t.createElement(\"path\",{fill:\"currentColor\",d:\"M25,8.18a8.18,8.18,0,1,1,8.18,8.18A8.24,8.24,0,0,1,25,8.18Z\"}))};export{o as InfoIcon};\n//# sourceMappingURL=InfoIcon.js.map\n","import{b as e,_ as t}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as n from\"react\";import{useState as r,useCallback as a}from\"react\";import{css as o}from\"./css.js\";import{styled as i}from\"./styled.js\";import\"styled-components\";var l,u,m,p,c,s,d=o(l||(l=e([\"\\n display: inline-block;\\n width: 100%;\\n height: 45px;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 9px 12px;\\n border: 1px solid \",\";\\n border-bottom: 2px solid\\n \",\";\\n font-size: 1rem;\\n line-height: 23px;\\n vertical-align: top;\\n color: \",\";\\n transition: border 0.5s ease;\\n font-family: \",\";\\n\\n &:focus {\\n border-bottom: 2px solid\\n \",\";\\n outline: 0;\\n }\\n\\n ::placeholder {\\n color: \",\";\\n font-weight: 300;\\n }\\n\\n &[type='checkbox'],\\n &[type='radio'] {\\n display: inline-block;\\n border: 0;\\n border-radius: 0;\\n width: auto;\\n height: auto;\\n margin: 0 0.2rem 0 0;\\n }\\n\"])),(function(e){return e.theme.palette.neutralLight}),(function(e){return e.invalid?e.theme.palette.dangerLight:e.theme.palette.neutralLight}),(function(e){return e.theme.palette.neutralDarker}),(function(e){return e.theme.fonts.primary}),(function(e){return e.invalid?e.theme.palette.dangerDark:e.theme.palette.neutralLight}),(function(e){return e.theme.palette.neutral})),h=i.div(u||(u=e([\"\\n position: relative;\\n\"]))),g=i.div.attrs({\"data-testid\":\"text-area-counter\"})(m||(m=e([\"\\n position: absolute;\\n bottom: 2px;\\n right: 1.2rem;\\n font-size: 0.75rem;\\n color: \",\";\\n background: rgba(255, 255, 255, 0.8);\\n\"])),(function(e){return e.theme.palette.neutralDark})),f=i.textarea(p||(p=e([\"\\n \",\";\\n resize: vertical;\\n\"])),d),b=i.select(c||(c=e([\"\\n \",\";\\n\"])),d),x=i.input(s||(s=e([\"\\n \",\";\\n\"])),d),v=function(e){var o=r(String(e.defaultValue||e.value||\"\")),i=o[0],l=o[1],u=e.onChange,m=e.type,p=void 0===m?\"text\":m,c=a((function(e){l(String(e.target.value)),u&&u(e)}),[u]);return\"textarea\"===p?n.createElement(h,null,n.createElement(f,t({},e,{value:i,onChange:c})),e.maxLength&&n.createElement(g,null,i.length,\" /\",e.maxLength)):\"select\"===p?n.createElement(b,e):n.createElement(x,e)};export{v as Input};\n//# sourceMappingURL=Input.js.map\n","import{b as e,_ as t}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as n from\"react\";import{WarningIcon as r}from\"./WarningIcon.js\";import{styled as o}from\"./styled.js\";import\"./createSvgIcon-89a7bcb8.js\";import\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var i,a,l,m=o.label(i||(i=e([\"\\n display: flex;\\n align-items: center;\\n margin: 4px 0 0;\\n font-size: 0.75rem;\\n font-family: \",\";\\n color: \",\";\\n\"])),(function(e){return e.theme.fonts.primary}),(function(e){return e.theme.palette.danger})),p=o.div.attrs({\"data-testid\":\"input-error-icon-wrapper\"})(a||(a=e([\"\\n color: \",\";\\n\"])),(function(e){return e.theme.palette.danger})),c=o.span(l||(l=e([\"\\n padding-left: 5px;\\n\"]))),s=function(e){return n.createElement(m,t({\"data-testid\":\"input-error\"},e),n.createElement(p,null,n.createElement(r,{width:\"16px\",height:\"16px\"})),n.createElement(c,null,e.children))};export{s as InputError};\n//# sourceMappingURL=InputError.js.map\n","import{b as t,_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as r from\"react\";import{styled as n}from\"./styled.js\";import\"styled-components\";var o,l=n.label(o||(o=t([\"\\n display: block;\\n margin: 4px 0 0;\\n color: \",\";\\n font-size: 0.75rem;\\n font-weight: 500 !important;\\n\"])),(function(t){return t.theme.palette.neutralDark})),a=function(t){return r.createElement(l,e({\"data-testid\":\"input-help\"},t),t.children)};export{a as InputHelp};\n//# sourceMappingURL=InputHelp.js.map\n","import{b as r,a as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as t from\"react\";import{InputError as o}from\"./InputError.js\";import{InputHelp as l}from\"./InputHelp.js\";import{Label as n}from\"./Label.js\";import{styled as i}from\"./styled.js\";import\"./WarningIcon.js\";import\"./createSvgIcon-89a7bcb8.js\";import\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var a,m,p,c=i.div(a||(a=r([\"\\n display: \",\";\\n float: \",\";\\n margin-bottom: 5px;\\n\"])),(function(r){return\"horizontal\"===r.layout?\"inline-block\":\"block\"}),(function(r){return\"horizontal\"===r.layout?\"left\":\"initial\"})),u=i.div(m||(m=r([\"\\n display: \",\";\\n\"])),(function(r){return\"horizontal\"===r.layout?\"inline-block\":\"block\"})),s=i.div(p||(p=r([\"\"]))),d=[\"layout\",\"label\",\"error\",\"help\",\"required\",\"children\"],b=function(r){var i=r.layout,a=void 0===i?\"vertical\":i,m=r.label,p=r.error,b=r.help,f=r.required,h=r.children,y=e(r,d);return t.createElement(s,y,m&&t.createElement(c,{layout:a},t.createElement(n,{htmlFor:h.props.id,required:f},m)),t.createElement(u,{layout:a},h,p&&t.createElement(o,{htmlFor:h.props.id},p),b&&t.createElement(l,{htmlFor:h.props.id},b)))};export{b as InputGroup};\n//# sourceMappingURL=InputGroup.js.map\n","import{b as e,_ as r}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as t from\"react\";import{styled as n}from\"./styled.js\";import\"styled-components\";var l,o,a=n.label(l||(l=e([\"\\n margin: 0;\\n font: 700 0.875rem \",\";\\n color: \",\";\\n\"])),(function(e){return e.theme.fonts.primary}),(function(e){return e.theme.palette.neutralDarker})),m=n.span(o||(o=e([\"\\n color: \",\";\\n\"])),(function(e){return e.theme.palette.primary})),i=function(e){return t.createElement(a,r({\"data-testid\":\"label\"},e),e.children,\" \",e.required?t.createElement(m,null,\"*\"):\"\")};export{i as Label};\n//# sourceMappingURL=Label.js.map\n","import{b as t,_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as r from\"react\";import{NavLink as n}from\"react-router-dom\";import{css as o}from\"./css.js\";import{styled as a}from\"./styled.js\";import\"styled-components\";var m,c,i,p=o(m||(m=t([\"\\n font-family: \",\";\\n text-decoration: none;\\n font-weight: 500;\\n color: \",\";\\n text-transform: \",\";\\n\\n &:hover {\\n text-decoration: underline;\\n }\\n\"])),(function(t){return t.theme.fonts.primary}),(function(t){return t.theme.palette.neutralDarker}),(function(t){return t.uppercase?\"uppercase\":\"normal\"})),s=a(n)(c||(c=t([\"\\n \",\";\\n\"])),p),f=a.a(i||(i=t([\"\\n \",\";\\n\"])),p),l=function(t){return t.to?r.createElement(s,e({to:t.to},t)):r.createElement(f,t)};export{l as Link};\n//# sourceMappingURL=Link.js.map\n","import{b as e,a as n}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as o from\"react\";import{M as t,e as r}from\"./contants-c1124f5c.js\";import{_ as i}from\"./index-ad56866d.js\";import{useBreakpointValue as a,isBreakpointValue as l}from\"./useBreakpointValue.js\";import{Colors as s}from\"./Colors.js\";import{theme as m}from\"./theme.js\";import{ChevronLeftIcon as c}from\"./ChevronLeftIcon.js\";import{CloseIcon as d}from\"./CloseIcon.js\";import{n as u}from\"./utils-ec9be121.js\";import{ModalModel as f}from\"./ModalModel.js\";import{CheckIcon as p}from\"./CheckIcon.js\";import{InfoIcon as h}from\"./InfoIcon.js\";import{WarningIcon as g}from\"./WarningIcon.js\";import{breakpoints as v}from\"./breakpoints.js\";import{css as b}from\"./css.js\";import{keyframes as x}from\"./keyframes.js\";import{styled as w}from\"./styled.js\";import{Heading as B}from\"./Heading.js\";import\"./_commonjsHelpers-41cdd1e7.js\";import\"./debounce.js\";import\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";import\"./createSvgIcon-89a7bcb8.js\";var k,y,C,j,E,z,S,O,W,I,M,T,H,V,F,R,L,Y,_={default:{color:s.basic},success:{color:s.success,icon:o.createElement(p,null)},error:{color:s.danger,icon:o.createElement(g,null)},info:{color:s.primary,icon:o.createElement(h,null)},warning:{color:s.alert,icon:o.createElement(g,null)}},q={large:{maxWidth:f.Sizes.large},default:{maxWidth:f.Sizes.default},small:{maxWidth:f.Sizes.small},s400:{maxWidth:f.Sizes.s400},s600:{maxWidth:f.Sizes.s600},s700:{maxWidth:f.Sizes.s700},s900:{maxWidth:f.Sizes.s900},s1000:{maxWidth:f.Sizes.s1000},s1100:{maxWidth:f.Sizes.s1100},s1200:{maxWidth:f.Sizes.s1200}},D=x(k||(k=e([\"\\n from {\\n top:-300px;\\n opacity:0;\\n }\\n\\n to {\\n top:0;\\n opacity:1;\\n }\\n\"]))),P=w.div(y||(y=e([\"\\n display: \",\"; /* Hidden by default */\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background: rgba(0, 0, 0, 0.8);\\n z-index: \",\";\\n animation: \",\" 0.4s;\\n -webkit-overflow-scrolling: touch;\\n\"])),(function(e){return e.show?\"block\":\"none\"}),t,D),A=w.div(C||(C=e([\"\\n background: \",\";\\n padding: \",\";\\n\"])),(function(e){return e.theme.palette[e.bgColor]}),(function(e){var n=e.smallBorders;return e.noBorders?\"0\":\"0 \"+(n?1.25:2)+\"rem 2rem;\"})),G=w.button.attrs((function(){return{\"aria-expanded\":\"true\",\"aria-keyshortcuts\":\"Escape\"}}))(j||(j=e([\"\\n --offset: 0.5rem;\\n \",\";\\n \",\";\\n height: 1.75rem;\\n cursor: pointer;\\n z-index: 100;\\n background: transparent;\\n border: 0;\\n\\n svg {\\n margin-right: var(--offset);\\n height: 1.25rem;\\n width: 1.25rem;\\n }\\n\"])),(function(n){return n.noBorders&&!n.onlyTopBorder?b(E||(E=e([\"\\n position: absolute;\\n right: 0;\\n padding-top: var(--offset);\\n \"]))):b(z||(z=e([\"\\n display: flex;\\n align-items: flex-end;\\n justify-content: flex-end;\\n width: 100%;\\n \"])))}),(function(n){return n.showBackButton?b(S||(S=e([\"\\n display: initial;\\n position: absolute;\\n right: 0;\\n padding-top: var(--offset);\\n width: auto;\\n \"]))):b(O||(O=e([\"\"])))})),J=w.div(W||(W=e([\"\\n margin-bottom: 1.5rem;\\n text-align: \",\" !important;\\n\\n h2,\\n h5 {\\n text-align: \",\" !important;\\n }\\n\"])),(function(e){return e.center?\"center\":\"left\"}),(function(e){return e.center?\"center\":\"left\"})),K=w.div(I||(I=e([\"\\n font-size: 0.875rem;\\n line-height: 1.313rem;\\n\"]))),N=function(e){return e.theme.modalSizes[e.modalSize.maxWidth]+24},Q=b(M||(M=e([\"\\n margin: 0 auto;\\n top: 50%;\\n transform: translateY(-50%);\\n @media (max-width: \",\"px) {\\n top: 0;\\n transform: translateY(0);\\n }\\n\"])),N),U=b(T||(T=e([\"\\n @media (max-width: \",\") {\\n margin: 0 auto;\\n top: 100%;\\n transform: translateY(calc(-100% - 4rem));\\n }\\n\"])),v.sm),X=b(H||(H=e([\"\\n @media (max-width: \",\") {\\n margin: 0 auto !important;\\n max-width: none;\\n height: 100%;\\n }\\n\"])),v.sm),Z=w.div(V||(V=e([\"\\n position: relative;\\n background: \",\";\\n margin: 5rem auto;\\n max-width: \",\"px;\\n\\n \",\";\\n\\n @media (max-width: \",\"px) {\\n margin: \",\"px;\\n }\\n\"])),(function(e){var n=e.bgColor;return m.palette[n]}),(function(e){return e.theme.modalSizes[e.modalSize.maxWidth]}),(function(e){var n=e.centerVertically,o=void 0===n||n,t=e.positionBottomOnMobile,r=e.fullscreenOnMobile;return o?Q:t?U:r?X:\"\"}),N,12),$=w.div(F||(F=e([\"\\n padding-top: 0;\\n overflow-y: \",\";\\n max-height: 85vh;\\n background: \",\";\\n transition: max-height 0.3s ease-out;\\n @media (max-width: \",\"px) {\\n max-height: calc(100vh - \",\"px);\\n }\\n\"])),(function(e){return e.verticalOverflow}),(function(e){var n=e.bgColor;return m.palette[n]}),N,54),ee=w(B.H2)(R||(R=e([\"\\n margin: 0 !important;\\n color: \",\";\\n\"])),(function(e){return e.theme.palette[e.textColor]})),ne=w(B.H5)(L||(L=e([\"\\n margin: 0.75rem 0 0 0 !important;\\n\"]))),oe=w.button.attrs((function(){return{\"aria-expanded\":\"true\"}}))(Y||(Y=e([\"\\n --offset: 0.5rem;\\n height: 1.75rem;\\n cursor: pointer;\\n z-index: 100;\\n background: transparent;\\n border: 0;\\n padding-top: var(--offset);\\n\\n svg {\\n margin-left: var(--offset);\\n height: 1.25rem;\\n width: 1.25rem;\\n }\\n\"]))),te=function(e){var n=e.header,t=e.subHeader,r=e.center,i=e.type,a=void 0===i?f.Types.default:i,l=e.children;return o.createElement(o.Fragment,null,(n||t)&&o.createElement(J,{center:r},o.createElement(ee,{textColor:_[a].color},n),t&&o.createElement(ne,null,t)),o.createElement(K,null,l))},re=[\"breakpoint\",\"show\",\"size\",\"disableBackgroundScroll\",\"onlyTopBorder\",\"onClose\",\"noBorders\",\"children\",\"innerRef\",\"showOverflow\",\"centerVertically\",\"positionBottomOnMobile\",\"fullscreenOnMobile\",\"withFocusTrap\",\"closeIconColor\",\"bgColor\",\"verticalOverflow\",\"showBackButton\",\"disableOnBlurClose\",\"onBackButton\"],ie=require(\"focus-trap-react\"),ae=function(e){var t=e.breakpoint,p=void 0===t?f.Breakpoints.sm:t,h=e.show,g=e.size,v=e.disableBackgroundScroll,b=void 0===v||v,x=e.onlyTopBorder,w=e.onClose,B=void 0===w?u:w,k=e.noBorders,y=e.children,C=e.innerRef,j=void 0===C?null:C,E=e.showOverflow,z=void 0!==E&&E,S=e.centerVertically,O=void 0!==S&&S,W=e.positionBottomOnMobile,I=void 0!==W&&W,M=e.fullscreenOnMobile,T=void 0!==M&&M,H=e.withFocusTrap,V=void 0!==H&&H,F=e.closeIconColor,R=void 0===F?s.neutralDark:F,L=e.bgColor,Y=void 0===L?s.basicInverse:L,_=e.verticalOverflow,D=e.showBackButton,J=void 0!==D&&D,K=e.disableOnBlurClose,N=void 0!==K&&K,Q=e.onBackButton,U=void 0===Q?u:Q,X=n(e,re),ee=o.useRef(),ne=q[g]||q.default,ae=i({maxWidth:m.breakpoints[p]+\"rem\"}),le=a(l(R)?R:{xs:R}),se=o.useCallback((function(e){return 27===e.keyCode&&B()}),[B]);o.useEffect((function(){return window.addEventListener(\"keydown\",se),function(){window.removeEventListener(\"keydown\",se)}}),[se]);var me,ce,de=V?ie:o.Fragment;return o.createElement(r.RemoveScroll,{enabled:b&&h},o.createElement(de,null,o.createElement(P,{show:h,onClick:function(e){N||ee.current.contains(e.target)||B()}},o.createElement(Z,{role:\"dialog\",\"aria-modal\":!0,modalSize:ne,smallBorders:ae,bgColor:Y,positionBottomOnMobile:I,fullscreenOnMobile:T,centerVertically:O,ref:ee},J&&o.createElement(oe,{onClick:U,tabIndex:0},o.createElement(c,{color:le,width:\"1.25rem\",height:\"1.25rem\",\"data-testid\":\"back-icon\"})),o.createElement(G,{onClick:B,tabIndex:0,smallBorders:ae,onlyTopBorder:x,noBorders:k,showBackButton:J},o.createElement(d,{color:le,width:\"1.25rem\",height:\"1.25rem\"})),o.createElement($,{ref:j,bgColor:Y,modalSize:ne,noBorders:k,verticalOverflow:(me=z,ce=_,ce||(me?\"visible\":\"auto\"))},o.createElement(A,{smallBorders:ae,noBorders:k,bgColor:Y},o.createElement(te,X,y)))))))};export{ae as Modal};\n//# sourceMappingURL=Modal.js.map\n","import{_ as o}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as t from\"react\";import{Modal as e}from\"./Modal.js\";import\"./contants-c1124f5c.js\";import\"./_commonjsHelpers-41cdd1e7.js\";import\"./index-ad56866d.js\";import\"./useBreakpointValue.js\";import\"./theme.js\";import\"./debounce.js\";import\"./Colors.js\";import\"./ChevronLeftIcon.js\";import\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";import\"./CloseIcon.js\";import\"./utils-ec9be121.js\";import\"./ModalModel.js\";import\"./CheckIcon.js\";import\"./InfoIcon.js\";import\"./WarningIcon.js\";import\"./createSvgIcon-89a7bcb8.js\";import\"./breakpoints.js\";import\"./css.js\";import\"./keyframes.js\";import\"./styled.js\";import\"./Heading.js\";var n=t.createContext({}),r={modalContent:null,modalOptions:null},s={Provider:function(s){var i=t.useState(r),m=i[0],l=i[1],a=t.useMemo((function(){return{toggleModal:function(o,t){void 0===o&&(o=null),void 0===t&&(t=null),l({modalContent:o,modalOptions:t})},hideModal:function(){return l(r)}}}),[l]),p=Boolean(m.modalContent)||Boolean(m.modalOptions);return t.createElement(n.Provider,{value:a},s.children,p&&t.createElement(e,o({show:!0,onClose:a.hideModal},m.modalOptions),m.modalContent))},Context:n,useModalContext:function(){return t.useContext(n)}};export{s as ModalContext};\n//# sourceMappingURL=ModalContext.js.map\n","var s,e,l,n,r;e=s||(s={}),function(s){s.large=\"large\",s.default=\"default\",s.small=\"small\",s.s400=\"s400\",s.s600=\"s600\",s.s700=\"s700\",s.s900=\"s900\",s.s1000=\"s1000\",s.s1100=\"s1100\",s.s1200=\"s1200\"}(l||(l={})),e.Sizes=l,function(s){s.default=\"default\",s.success=\"success\",s.error=\"error\",s.info=\"info\",s.warning=\"warning\"}(n||(n={})),e.Types=n,function(s){s.xl=\"xl\",s.lg=\"lg\",s.md=\"md\",s.sm=\"sm\",s.xs=\"xs\"}(r||(r={})),e.Breakpoints=r;export{s as ModalModel};\n//# sourceMappingURL=ModalModel.js.map\n","import{_ as h}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as v from\"react\";import e from\"styled-components\";import{Icon as m}from\"./index.js\";import\"./ThemeContext.js\";var c=function(e){return v.createElement(m,h({viewBox:\"0 0 96 64\"},e),v.createElement(\"path\",{d:\"M.5.5h95v63H.5z\"}),v.createElement(\"path\",{fill:\"#fff\",d:\"M10.08 22.38v5.01H8.39v-12.8h4.72c1.4 0 2.5.36 3.29 1.07s1.19 1.66 1.19 2.84c0 1.24-.39 2.2-1.16 2.87s-1.89 1.01-3.34 1.01h-3.01Zm0-1.38h3.03c.9 0 1.59-.21 2.07-.64.48-.43.72-1.04.72-1.84s-.24-1.37-.72-1.83c-.48-.46-1.14-.7-1.98-.71h-3.13v5.03Zm18.7.41c0 1.25-.21 2.35-.63 3.28s-1.02 1.65-1.79 2.14-1.68.74-2.71.74-1.9-.25-2.68-.74-1.38-1.2-1.81-2.12-.65-1.98-.66-3.19v-.92c0-1.23.21-2.32.64-3.26s1.03-1.67 1.81-2.17 1.68-.75 2.69-.75 1.93.25 2.71.74 1.38 1.21 1.81 2.15.63 2.03.63 3.28v.81Zm-1.68-.83c0-1.52-.3-2.68-.91-3.49s-1.46-1.22-2.56-1.22-1.91.41-2.52 1.22-.93 1.94-.94 3.38v.94c0 1.47.31 2.63.93 3.47s1.47 1.26 2.55 1.26 1.93-.4 2.53-1.19.91-1.93.92-3.41v-.95Zm5.74 2.78.25 1.69.36-1.52 2.53-8.93h1.42l2.47 8.93.35 1.55.27-1.72 1.99-8.75h1.7l-3.1 12.8h-1.54l-2.64-9.33-.2-.98-.2.98-2.73 9.33h-1.54l-3.09-12.8h1.69l2.02 8.76Zm19.6-1.88h-5.55v4.54h6.44v1.38H45.2V14.6h8.04v1.38h-6.35v4.12h5.55v1.38Zm6.74.74h-3.01v5.18h-1.7V14.6h4.24c1.44 0 2.55.33 3.33.98s1.16 1.61 1.16 2.87c0 .8-.22 1.49-.65 2.08s-1.03 1.03-1.8 1.33l3.01 5.43v.11h-1.81l-2.78-5.18Zm-3.01-1.38h2.59c.84 0 1.5-.22 2-.65.5-.43.74-1.02.74-1.74 0-.79-.24-1.4-.71-1.82-.47-.42-1.15-.64-2.04-.64h-2.58v4.86Zm21.9.57c0 1.25-.21 2.35-.63 3.28s-1.02 1.65-1.79 2.14-1.68.74-2.71.74-1.9-.25-2.68-.74-1.38-1.2-1.81-2.12-.65-1.98-.66-3.19v-.92c0-1.23.21-2.32.64-3.26s1.03-1.67 1.81-2.17 1.68-.75 2.69-.75 1.93.25 2.71.74 1.38 1.21 1.81 2.15.63 2.03.63 3.28v.81Zm-1.68-.83c0-1.52-.3-2.68-.91-3.49s-1.46-1.22-2.56-1.22-1.91.41-2.52 1.22-.93 1.94-.94 3.38v.94c0 1.47.31 2.63.93 3.47s1.47 1.26 2.55 1.26 1.93-.4 2.53-1.19.91-1.93.92-3.41v-.95Zm10.35 1.16h-5.37v5.65h-1.69v-12.8h7.93v1.38h-6.24v4.39h5.37v1.38ZM13.42 49.39V35.88h4.42c1.47 0 2.57.3 3.31.91.74.61 1.11 1.5 1.11 2.69 0 .63-.18 1.19-.54 1.67-.36.49-.85.86-1.47 1.13.73.2 1.31.59 1.73 1.16.42.57.64 1.25.64 2.05 0 1.21-.39 2.17-1.18 2.86-.79.69-1.9 1.04-3.33 1.04h-4.69Zm1.78-7.75h2.69c.78 0 1.4-.2 1.87-.59.47-.39.7-.92.7-1.59 0-.74-.22-1.28-.65-1.62-.43-.34-1.09-.51-1.98-.51H15.2v4.3Zm0 1.43v4.86h2.94c.83 0 1.48-.21 1.96-.65.48-.43.72-1.02.72-1.78 0-1.63-.88-2.44-2.65-2.44H15.2Zm17.64.08h-5.85v4.79h6.8v1.46h-8.58V35.89h8.49v1.46h-6.71v4.35h5.85v1.46Zm11.23 2.71h-5.66l-1.27 3.53H35.3l5.16-13.51h1.56l5.17 13.51h-1.83l-1.29-3.53Zm-5.12-1.46h4.59l-2.3-6.32-2.29 6.32Zm19.28-8.51v9.18c0 1.27-.41 2.32-1.2 3.13s-1.87 1.26-3.23 1.36l-.47.02c-1.48 0-2.66-.4-3.53-1.2-.88-.8-1.32-1.9-1.34-3.29v-9.2h1.76v9.15c0 .98.27 1.74.81 2.28.54.54 1.3.81 2.3.81s1.78-.27 2.31-.81.8-1.3.8-2.27v-9.16h1.79Zm12.36 1.45h-4.34v12.05h-1.77V37.34h-4.33v-1.46H70.6v1.46Zm6.88 5.33L81 35.89h2.02l-4.66 8.47v5.04h-1.78v-5.04l-4.66-8.47h2.04l3.51 6.78Z\"}))},l=e(c).withConfig({displayName:\"PowerOfBeautyIcon__StyledPowerOfBeautyIcon\",componentId:\"sc-11ac3dl-0\"})([\"height:2.5rem;width:4rem;\"]);export{c as PowerOfBeautyIcon,l as StyledPowerOfBeautyIcon};\n//# sourceMappingURL=PowerOfBeautyIcon.js.map\n","import{b as e,a as r,_ as i}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as n from\"react\";import{styled as t}from\"./styled.js\";import\"styled-components\";var o,c,a,s,d,f=t.div(o||(o=e([\"\\n display: flex;\\n flex-direction: row;\\n justify-content: \",\";\\n align-items: baseline;\\n\"])),(function(e){return e.isPrefixed?\"flex-end\":\"flex-start\"})),p=t.span(c||(c=e([\"\\n font-size: \",\";\\n vertical-align: bottom;\\n\"])),(function(e){return e.fontSize})),m=t(p).attrs({\"data-testid\":\"price-component\"})(a||(a=e([\"\\n order: \",\";\\n\"])),(function(e){return e.isPrefixed?3:2})),u=t(p).attrs({\"data-testid\":\"currency-component\"})(s||(s=e([\"\\n order: \",\";\\n padding-left: \",\";\\n padding-right: \",\";\\n\"])),(function(e){return e.isPrefixed?2:3}),(function(e){var r=e.isPrefixed;return e.isSpaced&&!r?\"0.3em\":0}),(function(e){var r=e.isPrefixed;return e.isSpaced&&r?\"0.3em\":0})),l=t(p).attrs({\"data-testid\":\"prefix-component\"})(d||(d=e([\"\\n order: 1;\\n padding-right: 0.3em;\\n\"]))),x=[\"price\",\"currencySymbol\",\"currencyFormat\",\"priceSize\",\"currencySize\",\"prefix\",\"prefixSize\"],S=function(e){var t=e.price,o=e.currencySymbol,c=e.currencyFormat,a=e.priceSize,s=void 0===a?\"1rem\":a,d=e.currencySize,p=void 0===d?\"1rem\":d,S=e.prefix,y=void 0===S?\"\":S,z=e.prefixSize,v=void 0===z?\"1rem\":z,P=r(e,x),g=c.startsWith(\"s\"),b=\" \"===c.charAt(1);return n.createElement(f,i({isPrefixed:g},P),y&&n.createElement(l,{fontSize:v},y),n.createElement(m,{isPrefixed:g,fontSize:s},t),n.createElement(u,{fontSize:p,isPrefixed:g,isSpaced:b},o))};export{S as Price};\n//# sourceMappingURL=Price.js.map\n","var e,r,a,l,t;r=e||(e={}),function(e){e.Action=\"Action\",e.FreeDelivery=\"FreeDelivery\",e.New=\"New\",e.Clearance=\"Clearance\",e.Damaged=\"Damaged\",e.Returned=\"Returned\"}(a||(a={})),r.TagAttributes=a,function(e){e.christmasOffer=\"christmasOffer\",e.blackFriday=\"blackFriday\",e.summerBlackFriday=\"summerBlackFriday\",e.dermo=\"dermo\",e.recommendedByDermatologists=\"recommendedByDermatologists\",e.lorealLabel=\"lorealLabel\"}(l||(l={})),r.SpecialSales=l,function(e){e.product=\"product\",e.placeholder=\"placeholder\"}(t||(t={})),r.State=t;export{e as ProductTileModel};\n//# sourceMappingURL=ProductTileModel.js.map\n","import{b as e,a as t,_ as n}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as r from\"react\";import{Stars as a}from\"./Stars.js\";import{styled as i}from\"./styled.js\";import\"./withTheme.js\";import\"styled-components\";import\"./css.js\";var o,m,l=i.span(o||(o=e([\"\\n color: \",\";\\n font-size: 12px;\\n display: inline-block;\\n margin-top: 1px;\\n vertical-align: middle;\\n margin-left: 0.34em;\\n\"])),(function(e){return e.theme.palette.neutralDark})),s=i.div(m||(m=e([\"\\n display: inline-block;\\n\"]))),c=[\"ratingId\",\"numReviews\",\"rating\",\"background\",\"foreground\",\"outline\",\"size\",\"microdata\"],p=function(e){var i=e.ratingId,o=e.numReviews,m=e.rating,p=e.background,g=e.foreground,u=e.outline,d=e.size,f=e.microdata,b=t(e,c),E=f?{itemProp:\"ratingCount\",content:o}:{};return r.createElement(s,n({\"data-testid\":\"ratings-wrapper\"},b),r.createElement(a,{starsId:i,rating:m,background:p,foreground:g,outline:u,size:d}),f&&r.createElement(\"span\",null,r.createElement(\"meta\",{itemProp:\"bestRating\",content:\"5\"}),r.createElement(\"meta\",{itemProp:\"worstRating\",content:\"1\"}),r.createElement(\"meta\",{itemProp:\"ratingValue\",content:Math.max(m,1).toString()})),o>0&&r.createElement(l,E,o,\"×\"))};export{p as Ratings};\n//# sourceMappingURL=Ratings.js.map\n","import{_ as l}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as c from\"react\";import e from\"styled-components\";import{breakpoints as t}from\"./breakpoints.js\";import{Icon as m}from\"./index.js\";import\"./theme.js\";import\"./ThemeContext.js\";var Z=function(e){return c.createElement(m,l({viewBox:\"0 0 305 305\"},e),c.createElement(\"circle\",{cx:\"152.5\",cy:\"152.5\",r:\"152.5\",fill:\"#D8EDFC\"}),c.createElement(\"path\",{fill:\"#0B5792\",d:\"M123 80v40H83v64h40v40h64v-40h40v-60h-8v52h-40v40h-48v-40H91v-48h40V88h48v20h8V80h-64Z\"}),c.createElement(\"path\",{fill:\"#0B5792\",d:\"M216.657 108 211 102.343l-52 52-18-18-5.657 5.657 20.829 20.828a3.997 3.997 0 0 0 5.656 0L216.657 108ZM47.026 94.415l-1.278 2.2 7.998 4.615-2.556 4.424-21.84-12.635 4.07-7.052c1.277-2.2 2.84-3.596 4.685-4.14 1.845-.545 3.81-.214 5.94 1.017 2.91 1.68 4.33 3.904 4.258 6.673l11.145 1.325.213.118-2.745 4.733-9.89-1.326v.048Zm-4.946.07 1.444-2.507c.496-.876.591-1.704.26-2.485-.331-.78-.994-1.444-1.964-2.011-2.2-1.254-3.786-1.041-4.78.662l-1.49 2.58 6.506 3.762h.024ZM60.49 72.623l-4.969 6.175 5.206 4.189 5.892-7.312 3.29 2.65-9.087 11.287-19.664-15.83 9.063-11.263 3.313 2.65-5.869 7.288 4.638 3.739 4.97-6.176 3.194 2.579.023.023ZM78.259 59.157c1.845 2.224 2.697 4.378 2.603 6.46-.119 2.106-1.184 4.046-3.171 5.892-2.106 1.917-4.354 2.698-6.744 2.319-2.39-.379-4.756-1.846-7.075-4.425l-2.863-3.147c-2.32-2.556-3.55-5.064-3.644-7.525-.095-2.437.899-4.614 2.957-6.483 2.035-1.846 4.094-2.674 6.2-2.509 2.082.19 4.165 1.278 6.247 3.266l-3.786 3.43c-1.23-1.277-2.272-2.01-3.076-2.176-.828-.166-1.728.213-2.721 1.112-1.018.923-1.397 1.917-1.184 3.005.213 1.089 1.065 2.461 2.485 4.094l3.195 3.526c1.68 1.845 3.052 2.934 4.093 3.265 1.041.308 2.082 0 3.076-.9.994-.898 1.467-1.774 1.396-2.578-.07-.805-.639-1.893-1.75-3.195l3.762-3.43ZM95.132 45.882c1.798 2.863 2.532 5.514 2.177 7.95-.355 2.438-1.728 4.426-4.141 5.94-2.39 1.514-4.78 1.917-7.123 1.207-2.366-.71-4.448-2.461-6.246-5.277l-2.296-3.644c-1.846-2.934-2.626-5.655-2.295-8.14.308-2.508 1.68-4.52 4.094-6.034 2.366-1.49 4.756-1.87 7.146-1.112 2.39.757 4.52 2.58 6.389 5.49l2.295 3.644v-.024Zm-6.578-.852c-1.207-1.916-2.39-3.194-3.526-3.786-1.136-.591-2.295-.52-3.431.213-1.136.71-1.704 1.704-1.68 2.958 0 1.254.615 2.792 1.75 4.662l2.39 3.786c1.184 1.869 2.32 3.076 3.432 3.596 1.112.544 2.248.426 3.407-.307 1.112-.71 1.68-1.68 1.68-2.887s-.568-2.721-1.703-4.543l-2.343-3.715.024.023ZM100.053 27.354l10.909 15.38-2.012-18.74 6.223-2.343 8.921 23.616-4.78 1.798-2.413-6.389-3.266-10.01 1.42 18.008-3.242 1.23-10.837-14.457 4.141 9.678 2.413 6.389-4.756 1.798-8.92-23.615 6.223-2.343h-.024ZM129.963 18.671l7.193 17.44 2.248-18.718 6.602-.899 3.407 25.011-5.063.687-.923-6.768-.947-10.482-2.65 17.865-3.431.473-7.335-16.516 1.869 10.364.923 6.767-5.04.687-3.408-25.012 6.602-.899h-.047ZM165.977 31.52l-7.927-.379-.331 6.673 9.37.45-.213 4.235-14.481-.71 1.254-25.2 14.434.686-.213 4.236-9.347-.45-.284 5.963 7.927.379-.189 4.093v.024ZM186.114 46.38l-4.992-1.066-3.81-17.747-3.478 16.186-4.993-1.065 5.3-24.68 4.993 1.065 3.833 17.77 3.479-16.209 4.969 1.065-5.301 24.68ZM188.978 47.328l9.536-23.379 6.175 2.508c2.722 1.113 4.544 2.864 5.467 5.253.922 2.39.78 5.112-.426 8.14l-1.538 3.786c-1.255 3.077-3.053 5.159-5.372 6.247-2.319 1.089-4.922 1.041-7.761-.118l-6.058-2.46-.023.023Zm12.635-17.51-6.318 15.522 1.42.568c1.586.639 2.84.686 3.834.118.993-.568 1.893-1.869 2.768-3.88l1.656-4.07c.9-2.177 1.207-3.834.947-4.946-.26-1.112-1.112-1.987-2.556-2.626l-1.727-.71-.024.023ZM223.383 52.297l-6.791-4.118-3.454 5.727 8.045 4.874-2.201 3.62-12.399-7.5 13.062-21.58 12.352 7.477-2.201 3.644-7.998-4.851-3.076 5.111 6.791 4.117-2.13 3.502v-.023ZM220.591 63.536l16.256-19.285 5.111 4.307c2.248 1.893 3.455 4.117 3.573 6.696.118 2.58-.828 5.088-2.91 7.62l-2.627 3.123c-2.13 2.532-4.496 3.951-7.051 4.283-2.556.307-5.017-.52-7.359-2.508l-4.993-4.212v-.024Zm17.415-12.754-10.813 12.825 1.159.994c1.302 1.088 2.508 1.514 3.621 1.278 1.112-.237 2.389-1.184 3.833-2.84l2.816-3.36c1.514-1.798 2.319-3.266 2.413-4.401.095-1.136-.449-2.225-1.632-3.29l-1.42-1.206h.023ZM240.254 81.78l20.302-15.003 4.638 6.27c1.562 2.13 2.272 4.07 2.154 5.87-.119 1.798-1.113 3.36-2.935 4.708-1.041.757-2.082 1.183-3.17 1.278-1.089.094-2.083-.119-3.006-.663.403 1.112.403 2.2 0 3.266-.425 1.065-1.206 2.035-2.366 2.887-1.964 1.467-3.857 2.01-5.655 1.68-1.799-.332-3.455-1.538-4.969-3.597l-4.969-6.72-.024.023Zm11.855-2.414-5.419 3.999 1.94 2.626c.545.734 1.184 1.112 1.917 1.16.734.047 1.515-.237 2.366-.852 1.822-1.349 2.272-2.698 1.349-4.046l-2.129-2.887h-.024Zm2.981-2.2 1.586 2.129c1.183 1.609 2.603 1.798 4.283.568.922-.686 1.443-1.349 1.561-2.012.119-.662-.118-1.42-.733-2.248l-1.609-2.176-5.064 3.738h-.024ZM266.637 96.686l11.807-1.869L281 99.739l-17.392 1.443-8.117 4.236-2.389-4.591 8.116-4.235 11.121-13.44 2.556 4.921-8.282 8.613h.024ZM33.845 213.059l22.03-12.304 3.242 5.821c1.443 2.579 1.775 5.087.97 7.525-.78 2.437-2.58 4.472-5.419 6.081l-3.573 1.987c-2.887 1.61-5.584 2.13-8.092 1.515-2.509-.615-4.496-2.248-6.01-4.946l-3.195-5.702.047.023Zm20.8-5.773-14.648 8.163.734 1.325c.828 1.491 1.798 2.319 2.91 2.485 1.113.166 2.65-.26 4.591-1.301l3.833-2.13c2.059-1.16 3.337-2.248 3.834-3.266.497-1.017.378-2.247-.355-3.644l-.9-1.609v-.023ZM62.075 235.942l-4.921-6.224-5.254 4.141 5.822 7.359-3.313 2.627-8.992-11.358 19.782-15.665 8.968 11.335-3.336 2.626-5.798-7.335-4.685 3.691 4.922 6.223-3.218 2.556.023.024ZM69.979 246.233l-1.87-1.703-6.246 6.791-3.739-3.455 17.084-18.575 5.987 5.513c1.87 1.728 2.887 3.55 3.005 5.466.118 1.917-.639 3.763-2.271 5.561-2.272 2.461-4.757 3.36-7.454 2.698l-3.739 10.601-.166.189-4.022-3.715 3.455-9.347-.024-.024Zm1.017-4.827 2.13 1.964c.757.686 1.538.947 2.366.805.828-.142 1.633-.639 2.39-1.491 1.704-1.869 1.846-3.455.379-4.803l-2.2-2.012-5.088 5.537h.023ZM93.924 244.91l-5.395 18.078 13.535-13.133 5.679 3.455-13.086 21.58-4.377-2.65 3.55-5.845 5.844-8.755-13.299 12.21-2.957-1.798 4.685-17.44-5.064 9.229-3.55 5.845-4.353-2.651 13.085-21.58 5.68 3.455h.023ZM114.487 276.876l-6.555-2.319-2.981 4.425-5.088-1.798 15.831-21.178 4.401 1.538-.899 26.431-5.135-1.798.449-5.324-.023.023Zm-4.094-5.939 4.449 1.562.757-9.276-5.206 7.69v.024ZM141.84 266.845l-6.128-1.135-3.786 20.633-5.04-.923 3.786-20.633-6.034-1.112.757-4.189 17.203 3.147-.758 4.165v.047ZM161.173 277.872c-.048 3.384-.9 6.011-2.532 7.856-1.633 1.846-3.857 2.745-6.697 2.698-2.839-.047-5.04-1.018-6.625-2.887-1.586-1.869-2.367-4.496-2.343-7.832l.071-4.307c.047-3.455.899-6.152 2.532-8.069 1.633-1.916 3.881-2.863 6.744-2.816 2.816.048 4.993 1.042 6.602 2.982 1.609 1.94 2.366 4.638 2.319 8.092l-.071 4.307v-.024Zm-5.041-4.306c.048-2.272-.26-3.976-.899-5.088s-1.632-1.68-2.981-1.703c-1.349 0-2.366.497-3.029 1.561-.663 1.065-1.017 2.674-1.088 4.851l-.071 4.496c-.048 2.201.26 3.833.899 4.898.639 1.065 1.656 1.586 3.029 1.609 1.325 0 2.318-.473 2.981-1.49.663-1.018 1.018-2.603 1.065-4.733l.071-4.378.023-.023ZM171.537 282.605l8.849-1.349.639 4.188-13.89 2.106-3.762-24.94 5.04-.757 3.147 20.775-.023-.023ZM199.058 269.352c1.018 3.219 1.042 5.987.095 8.235-.946 2.248-2.792 3.833-5.513 4.685-2.698.852-5.111.639-7.194-.639-2.106-1.278-3.667-3.502-4.685-6.696l-1.301-4.118c-1.042-3.312-1.089-6.128-.142-8.471.946-2.342 2.768-3.951 5.489-4.803 2.674-.852 5.064-.592 7.194.733 2.129 1.325 3.715 3.644 4.78 6.933l1.301 4.118-.024.023Zm-6.152-2.484c-.686-2.177-1.514-3.692-2.461-4.543-.946-.852-2.082-1.089-3.383-.687-1.278.403-2.083 1.207-2.367 2.438-.284 1.206-.118 2.863.521 4.945l1.349 4.283c.662 2.106 1.467 3.549 2.413 4.354.947.804 2.082.994 3.384.568 1.278-.402 2.059-1.183 2.366-2.366.308-1.184.142-2.793-.497-4.828l-1.325-4.188v.024ZM221.986 266.064a9.517 9.517 0 0 1-2.058 3.809c-.994 1.136-2.272 2.106-3.763 2.911-2.555 1.349-4.969 1.633-7.24.781-2.272-.852-4.212-2.769-5.869-5.774l-2.129-3.999c-1.633-3.076-2.225-5.797-1.751-8.164.473-2.366 1.987-4.235 4.543-5.608 2.413-1.277 4.567-1.656 6.412-1.112 1.87.545 3.573 2.035 5.111 4.496l-4.377 2.319c-.876-1.349-1.68-2.153-2.437-2.437-.734-.26-1.609-.142-2.603.402-1.207.639-1.87 1.562-1.941 2.745-.071 1.183.379 2.745 1.397 4.685l2.153 4.046c1.088 2.035 2.153 3.361 3.265 3.952 1.089.592 2.343.544 3.739-.189.899-.473 1.514-1.041 1.869-1.68l.261-.497-2.177-4.094-3.147 1.68-1.799-3.407 7.667-4.07 4.874 9.205ZM232.257 262.206l-4.165 2.957-14.6-20.586 4.165-2.958 14.6 20.587ZM240.681 246.471c-.687-.757-1.42-1.159-2.154-1.183-.733-.023-1.822.213-3.218.734-2.508.994-4.614 1.396-6.294 1.183-1.68-.213-3.124-.947-4.307-2.248-1.443-1.562-2.035-3.336-1.774-5.3.236-1.964 1.23-3.739 2.934-5.301 1.136-1.041 2.39-1.727 3.715-2.059a6.943 6.943 0 0 1 3.928.142c1.278.45 2.437 1.207 3.455 2.343l-3.739 3.431c-.805-.875-1.585-1.372-2.366-1.491-.781-.118-1.538.142-2.225.781-.662.592-.993 1.254-.993 1.988 0 .733.283 1.42.875 2.082.473.521 1.089.781 1.893.828.781.048 1.893-.189 3.36-.709 2.414-.994 4.472-1.397 6.176-1.207 1.704.189 3.218 1.041 4.567 2.532 1.491 1.609 2.13 3.36 1.917 5.205-.19 1.846-1.184 3.597-2.958 5.206-1.207 1.089-2.532 1.846-3.976 2.272-1.443.402-2.863.402-4.259 0-1.396-.403-2.674-1.254-3.809-2.508l3.786-3.455c.993 1.065 1.893 1.656 2.768 1.774.852.095 1.775-.283 2.721-1.135 1.325-1.207 1.325-2.485.071-3.881l-.094-.024ZM246.596 217.697l-3.857 4.898 16.492 12.991-3.17 4.022-16.493-12.991-3.786 4.828-3.337-2.627 10.838-13.724 3.336 2.626-.023-.023ZM265.29 213.698c-.899-.497-1.704-.639-2.413-.426-.71.213-1.657.781-2.816 1.728-2.059 1.751-3.928 2.792-5.585 3.147-1.656.355-3.265.094-4.803-.757-1.87-1.042-2.982-2.509-3.384-4.449-.402-1.94-.024-3.928 1.089-5.963.757-1.349 1.703-2.414 2.863-3.147a6.724 6.724 0 0 1 3.762-1.112c1.349 0 2.698.378 4.023 1.112l-2.461 4.448c-1.041-.567-1.941-.78-2.721-.638-.781.142-1.397.615-1.87 1.467-.426.781-.544 1.514-.307 2.2.213.686.71 1.254 1.49 1.68.616.332 1.278.403 2.059.19.757-.213 1.751-.781 2.958-1.728 1.964-1.727 3.786-2.768 5.466-3.1 1.68-.331 3.384-.047 5.135.923 1.916 1.065 3.076 2.509 3.478 4.331.402 1.822.024 3.786-1.136 5.892-.781 1.419-1.798 2.555-3.029 3.407a7.611 7.611 0 0 1-4.046 1.372c-1.467.071-2.934-.331-4.425-1.135l2.485-4.473c1.278.71 2.342.97 3.194.781.852-.189 1.586-.828 2.201-1.94.852-1.562.473-2.792-1.183-3.715l-.024-.095Z\"}))},r=e(Z).withConfig({displayName:\"RecomendedByDermatologistsIcon__StyledRecomendedByDermatologistsIcon\",componentId:\"sc-11xt5ei-0\"})([\"height:2.5rem;width:2.5rem;box-sizing:border-box;padding:0.1875rem;@media (min-width:\",\"){height:2.8125rem;width:2.8125rem;}\"],t.md),i=function(l){return c.createElement(\"span\",{title:l.title},c.createElement(r,l))};export{Z as RecomendedByDermatologistsIcon,i as RecomendedByDermatologistsIconWithTitle,r as StyledRecomendedByDermatologistsIcon};\n//# sourceMappingURL=RecomendedByDermatologistsIcon.js.map\n","import*as n from\"react\";import{b as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import{styled as t}from\"./styled.js\";import\"styled-components\";var r,i=t.div(r||(r=e([\"\\n box-sizing: border-box;\\n display: flex;\\n flex: 0 1 auto;\\n flex-direction: row;\\n flex-wrap: wrap;\\n margin-right: \",\"rem;\\n margin-left: \",\"rem;\\n background-color: \",\";\\n\\n \",\"\\n\\n \",\"\\n\\n \",\"\\n\\n \",\"\\n\\n \",\"\\n\\n \",\"\\n\\n \",\"\\n\\n \",\"\\n\\n \",\"\\n\\n \",\"\\n\\n \",\"\\n\"])),(function(n){return n.theme.grid.gutterWidth/2*-1}),(function(n){return n.theme.grid.gutterWidth/2*-1}),(function(n){return n.debug?n.theme.palette.primaryDarker:\"transparent\"}),(function(n){return n.reverse&&\"\\n flex-direction: row-reverse;\\n \"}),(function(n){return n.start&&n.theme.grid.media[n.start](\"\\n justify-content: flex-start;\\n text-align: start;\\n \")}),(function(n){return n.center&&n.theme.grid.media[n.center](\"\\n justify-content: center;\\n text-align: center;\\n \")}),(function(n){return n.end&&n.theme.grid.media[n.end](\"\\n justify-content: flex-end;\\n text-align: end;\\n \")}),(function(n){return n.top&&n.theme.grid.media[n.top](\"\\n align-items: flex-start;\\n \")}),(function(n){return n.middle&&n.theme.grid.media[n.middle](\"\\n align-items: center;\\n \")}),(function(n){return n.bottom&&n.theme.grid.media[n.bottom](\"\\n align-items: flex-end;\\n \")}),(function(n){return n.around&&n.theme.grid.media[n.around](\"\\n justify-content: space-around;\\n \")}),(function(n){return n.between&&n.theme.grid.media[n.between](\"\\n justify-content: space-between;\\n \")}),(function(n){return n.first&&n.theme.grid.media[n.first](\"\\n order: -1;\\n \")}),(function(n){return n.last&&n.theme.grid.media[n.last](\"\\n order: 1;\\n \")})),o=function(e){return n.createElement(i,e)};export{o as Row};\n//# sourceMappingURL=Row.js.map\n","import{b as n}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import{styled as r}from\"./styled.js\";import{StyledDropdown as e}from\"./StyledDropdown.js\";import{a as t,b as o,D as i,C as a}from\"./index-f865d2ff.js\";var s,d,l,m,u=r(t)(s||(s=n([\"\\n border: \",\";\\n padding-bottom: 0;\\n margin-bottom: \",\";\\n width: \",\";\\n background-color: transparent;\\n margin-left: \",\";\\n\"])),(function(n){var r=n.borderless,e=n.theme;return r?\"none\":\"1px solid \"+e.palette.neutralLight}),(function(n){return n.borderless?\" 0.375rem\":0}),(function(n){return n.borderless?\"auto\":\"100%\"}),(function(n){return n.borderless?\"-1rem\":0})),h=r(e)(d||(d=n([\"\\n border: 1px solid \",\";\\n\"])),(function(n){return n.theme.palette.neutralLight})),p=r(h)(l||(l=n([\"\\n min-width: auto;\\n left: 0;\\n width: auto;\\n\"]))),f=r(o)(m||(m=n([\"\\n height: 2.625rem;\\n line-height: 2.625rem;\\n \",\" {\\n padding: 0;\\n padding-right: 3rem;\\n }\\n\\n \",\" {\\n line-height: 1.1875rem;\\n height: 1.1875rem;\\n }\\n\"])),i,a);export{u as S,f as a,p as b,h as c};\n//# sourceMappingURL=styled-ea676fb6.js.map\n","import{a as e,_ as t}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as o from\"react\";import{TextAlign as n}from\"./TextAlign.js\";import{T as r}from\"./index-f865d2ff.js\";import{S as i,a as s,b as l,c as p}from\"./styled-ea676fb6.js\";import\"./index-865c84cb.js\";import\"./utils-ec9be121.js\";import\"./StyledDropdown.js\";import\"./breakpoints.js\";import\"./theme.js\";import\"./styled.js\";import\"styled-components\";import\"./Colors.js\";import\"./CheckIcon.js\";import\"./index.js\";import\"./ThemeContext.js\";import\"./HorizontalChevron.js\";import\"./ChevronDownIcon.js\";import\"./ChevronUpIcon.js\";var c=[\"options\",\"handleOptionSelect\",\"currentOption\",\"borderless\",\"keyNavigationConfig\"],a=function(a){var m=a.options,d=a.handleOptionSelect,f=a.currentOption,j=a.borderless,h=a.keyNavigationConfig,C=e(a,c),u=o.useCallback((function(e){return o.createElement(i,t({},e,{keyNavigationConfig:h,textAlign:n.left,showSelectedCheckIcon:!1,options:m,borderless:j}))}),[m,j,h]),b=o.useCallback((function(e){return o.createElement(s,t({},e,{textAlign:n.left,showSelectedCheckIcon:!0}))}),[]);return o.createElement(r,t({},C,{options:m,handleOptionSelect:d,currentOption:f,hideSelected:!1,showSelectedCheckIcon:!0,textAlign:n.left,renderSelect:u,renderOption:b,optionContainer:j?l:p}))};export{a as Select};\n//# sourceMappingURL=Select.js.map\n","import{a as e,_ as t}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as i from\"react\";import n,{keyframes as r,css as a}from\"styled-components\";import{theme as o}from\"./theme.js\";var l=a([\"animation:\",\" 2.5s infinite linear;\"],r([\"0%{background-position:100% 0;}100%{background-position:0 0;}\"])),h=n.div.withConfig({displayName:\"styled__StyledSkeletonItem\",componentId:\"sc-qde8ch-0\"})([\"height:\",\";width:\",\";\",\";background-image:linear-gradient( 90deg,\",\",\",\",\",\",\",\",\",\",\",\",\",\",\",\",\",\" );background-size:300%;\"],(function(e){return e.height}),(function(e){return e.width}),(function(e){return e.animated?l:\"animation: none;\"}),o.palette.neutralLighter,o.palette.neutralLighter,o.palette.neutralLighter,o.palette.neutralLighter,o.palette.neutralLight,o.palette.neutralLighter,o.palette.neutralLighter,o.palette.neutralLighter,o.palette.neutralLighter),m=[\"animated\",\"width\",\"height\"],u=function(n){var r=n.animated,a=void 0===r||r,o=n.width,l=n.height,u=e(n,m),d=o?\"number\"==typeof o?o+\"rem\":o:\"100%\",g=l?\"number\"==typeof l?l+\"rem\":l:\"100%\";return i.createElement(h,t({animated:a,width:d,height:g},u))};export{u as SkeletonElement};\n//# sourceMappingURL=SkeletonElement.js.map\n","import{b as t}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import{keyframes as r}from\"./keyframes.js\";import{styled as n}from\"./styled.js\";var e,a,o=r(e||(e=t([\"\\n 0%, 100% { transform: rotate(0deg); }\\n 12.5% { transform: rotate(45deg); }\\n 25% { transform: rotate(90deg); }\\n 37.5% { transform: rotate(135deg); }\\n 50% { transform: rotate(180deg); }\\n 62.5% { transform: rotate(225deg); }\\n 75% { transform: rotate(270deg); }\\n 87.5% { transform: rotate(315deg); }\\n\"]))),s=n.div.attrs({\"data-testid\":\"spinner\"})(a||(a=t([\"\\n display: inline-block;\\n svg {\\n animation: \",\" 1s infinite step-start;\\n }\\n\"])),o);export{s as S};\n//# sourceMappingURL=styled-3bb91521.js.map\n","import{a as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as r from\"react\";import{SpinnerIcon as o}from\"./SpinnerIcon.js\";import{S as t}from\"./styled-3bb91521.js\";import\"./createSvgIcon-89a7bcb8.js\";import\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";import\"./keyframes.js\";import\"./styled.js\";var m=[\"size\",\"color\"],s=function(s){var i=s.size,p=s.color,c=e(s,m);return r.createElement(t,c,r.createElement(o,{color:p,width:i+\"px\",height:i+\"px\"}))};export{s as Spinner};\n//# sourceMappingURL=Spinner.js.map\n","import{_ as t}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import{c as m}from\"./createSvgIcon-89a7bcb8.js\";import\"react\";import\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var e=function(e){return m(\"M526 1394q0 53-37.5 90.5t-90.5 37.5q-52 0-90-38t-38-90q0-53 37.5-90.5t90.5-37.5 90.5 37.5 37.5 90.5zm498 206q0 53-37.5 90.5t-90.5 37.5-90.5-37.5-37.5-90.5 37.5-90.5 90.5-37.5 90.5 37.5 37.5 90.5zm-704-704q0 53-37.5 90.5t-90.5 37.5-90.5-37.5-37.5-90.5 37.5-90.5 90.5-37.5 90.5 37.5 37.5 90.5zm1202 498q0 52-38 90t-90 38q-53 0-90.5-37.5t-37.5-90.5 37.5-90.5 90.5-37.5 90.5 37.5 37.5 90.5zm-964-996q0 66-47 113t-113 47-113-47-47-113 47-113 113-47 113 47 47 113zm1170 498q0 53-37.5 90.5t-90.5 37.5-90.5-37.5-37.5-90.5 37.5-90.5 90.5-37.5 90.5 37.5 37.5 90.5zm-640-704q0 80-56 136t-136 56-136-56-56-136 56-136 136-56 136 56 56 136zm530 206q0 93-66 158.5t-158 65.5q-93 0-158.5-65.5t-65.5-158.5q0-92 65.5-158t158.5-66q92 0 158 66t66 158z\",t({},e,{viewBox:\"0 0 1792 1792\"}))};export{e as SpinnerIcon};\n//# sourceMappingURL=SpinnerIcon.js.map\n","import*as e from\"react\";import{Icon as r}from\"./index.js\";import\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import\"./ThemeContext.js\";import\"styled-components\";var t=function(t){return e.createElement(r,t,e.createElement(\"polygon\",{fill:\"currentColor\",points:\"32 46 12 62 19.75 37 0 24 24.36 24 32 0 39.5 24 64 24 44.25 37 52 62 32 46\"}))};export{t as StarIcon};\n//# sourceMappingURL=StarIcon.js.map\n","import*as e from\"react\";import{withTheme as t}from\"./withTheme.js\";import{b as n}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import{css as r}from\"./css.js\";import{styled as i}from\"./styled.js\";import\"styled-components\";var o,l,a,u,s,c,m,f,p=function(){return e.createElement(e.Fragment,null,[0,51,102,153,204].map((function(t){return e.createElement(\"path\",{d:\"m25,1 6,17h18l-14,11 5,17-15-10-15,10 5-17-14-11h18z\",key:t,transform:\"translate(\"+t+\",0)\"})})))},d=i.div(o||(o=n([\"\\n position: relative;\\n display: inline-block;\\n width: \",\"px;\\n height: \",\"px;\\n\"])),(function(e){return 5*e.starSize}),(function(e){return e.starSize})),h=i.div(l||(l=n([\"\\n position: absolute;\\n display: flex;\\n width: 100%;\\n height: 100%;\\n\"]))),v=r(a||(a=n([\"\\n flex: 1;\\n background: none;\\n border: none;\\n\"]))),g=i.button(u||(u=n([\"\\n \",\";\\n cursor: pointer;\\n\"])),v),E=i.div.attrs({\"data-testid\":\"star-select-div\"})(s||(s=n([\"\\n \",\";\\n\"])),v),k=i.svg(c||(c=n([\"\\n vertical-align: middle;\\n\"]))),w=i.g(m||(m=n([\"\\n fill: \",\";\\n stroke: \",\";\\n stroke-width: \",\";\\n\"])),(function(e){return e.fill||e.theme.palette.neutralLight}),(function(e){return e.strokeColor?e.strokeColor:e.theme.palette.primary}),(function(e){return e.outline?\"2px\":\"0\"})),b=i.rect(f||(f=n([\"\\n transition: all \",\"s ease;\\n fill: \",\";\\n\"])),(function(e){return e.animationDuration?e.animationDuration:\"0.2\"}),(function(e){return e.theme.palette[e.fill]||e.theme.palette.primary})),y=function(e){return e/5},x=t((function(t){var n=t.starsId,r=t.rating,i=void 0===r?0:r,o=t.background,l=t.foreground,a=t.outline,u=void 0!==a&&a,s=t.theme,c=t.size,m=void 0===c?21:c,f=t.selectable,v=t.animationDuration,x=t.onSelect,S=e.useState(i),z=S[0],j=S[1],C=e.useState(0),D=C[0],P=C[1];e.useEffect((function(){j(y(D))}),[D]);var B=function(e){return function(){j(y(e))}},L=function(){j(y(D))},M=255*(f?z:y(i)),F=\"cut-off-stars\"+n;return e.createElement(d,{starSize:m},e.createElement(h,null,[1,2,3,4,5].map((function(t){return f?e.createElement(g,{key:t,onClick:(n=t,function(){P(n),\"function\"==typeof x&&x(n)}),onMouseEnter:B(t),onMouseLeave:L,type:\"button\"}):e.createElement(E,{key:t});var n}))),e.createElement(k,{version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\",xmlnsXlink:\"http://www.w3.org/1999/xlink\",viewBox:\"0 0 255 48\"},e.createElement(\"defs\",null,e.createElement(\"clipPath\",{id:F},e.createElement(p,null))),e.createElement(w,{fill:s.palette[o],outline:u,strokeColor:u?s.palette[l]:\"none\"},e.createElement(p,null)),e.createElement(b,{height:48,width:M,fill:l,animationDuration:v,clipPath:\"url(#\"+F+\")\"})))}));export{x as Stars};\n//# sourceMappingURL=Stars.js.map\n","import{withTheme as e}from\"styled-components\";var o=e;export{o as withTheme};\n//# sourceMappingURL=withTheme.js.map\n","import t from\"styled-components\";import{ChristmasIcon as e}from\"./ChristmasIcon.js\";import\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import\"react\";import\"./index.js\";import\"./ThemeContext.js\";var o=t(e).withConfig({displayName:\"StyledChristmasIcon\",componentId:\"sc-34t4ac-0\"})([\"height:2.5rem;width:2.5rem;\"]);export{o as StyledChristmasIcon};\n//# sourceMappingURL=StyledChristmasIcon.js.map\n","import e from\"styled-components\";import{breakpoints as r}from\"./breakpoints.js\";import{theme as o}from\"./theme.js\";import{DermoIcon as t}from\"./DermoIcon.js\";import\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import\"react\";import\"./index.js\";import\"./ThemeContext.js\";var m=e(t).withConfig({displayName:\"StyledDermoIcon\",componentId:\"sc-ss046z-0\"})([\"height:2.5rem;width:2.5rem;background-color:\",\";border-radius:100%;box-sizing:border-box;padding:0.1875rem;@media (min-width:\",\"){height:2.8125rem;width:2.8125rem;.iconText{transform:translateY(0.125rem);}}\"],o.palette.basicInverse,r.md);export{m as StyledDermoIcon};\n//# sourceMappingURL=StyledDermoIcon.js.map\n","import{b as n}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import{breakpoints as e}from\"./breakpoints.js\";import{styled as t}from\"./styled.js\";import\"./theme.js\";import\"styled-components\";var o,r=t.div(o||(o=n([\"\\n position: absolute;\\n display: none;\\n\\n border: 1px solid \",\";\\n border-top: none;\\n background: \",\";\\n width: 100%;\\n z-index: 2;\\n\\n \",\"\\n\\n @media all and (min-width: \",\") {\\n display: block;\\n }\\n\"])),(function(n){return n.theme.palette.neutralLight}),(function(n){return n.theme.palette.basicInverse}),(function(n){return function(n){return n?\"\\n max-height: \"+n+\";\\n overflow-y: auto;\\n \":\"\\n ::-webkit-scrollbar {\\n width: 0 !important;\\n }\\n overflow-y: hidden;\\n \"}(n.maxHeight)}),e.md);export{r as StyledDropdown};\n//# sourceMappingURL=StyledDropdown.js.map\n","import{a as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as t from\"react\";import r from\"styled-components\";import{breakpoints as i}from\"./breakpoints.js\";import\"./theme.js\";var n=[\"text\",\"highlightedWordIndex\"],o=[\"#fef600\",\"#e3f400\",\"#bdf200\",\"#9ff000\",\"#5fec00\",\"#39ea00\"],m=r.div.withConfig({displayName:\"SummerBlackFridayIcon__StyledIcon\",componentId:\"sc-grk7c-0\"})([\"display:flex;flex-direction:column;justify-content:center;background-color:black;color:white;min-width:2.5rem !important;min-height:2.5rem !important;font-size:0.625rem;line-height:0.75rem;box-sizing:border-box !important;text-transform:uppercase;text-align:center;padding:0.1875rem 0.25rem;@media (min-width:\",\"){min-width:2.8125rem !important;min-height:2.8125rem !important;line-height:0.8125rem;}\"],i.lg),a=r.span.withConfig({displayName:\"SummerBlackFridayIcon__GradientText\",componentId:\"sc-grk7c-1\"})([\"background:linear-gradient(to right,\",\");background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;\"],o.join(\",\")),c=function(r){var i=r.text,o=r.highlightedWordIndex,c=e(r,n);return t.createElement(m,c,i.split(\" \").map((function(e,r){return r===o?t.createElement(a,{key:e},e):t.createElement(\"span\",{key:e},e)})))};c.colors=o;export{c as SummerBlackFridayIcon};\n//# sourceMappingURL=SummerBlackFridayIcon.js.map\n","import{b as t,_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as n from\"react\";import{TagModel as a}from\"./TagModel.js\";import{Colors as r}from\"./Colors.js\";import{css as l}from\"styled-components\";import{styled as i}from\"./styled.js\";var o,s,f,p={default:{fontSize:\"0.75rem\",fontWeight:\"normal\",padding:\"4px 8px\"},small:{fontSize:\"0.7rem\",fontWeight:\"normal\",padding:\"2px 10px\"}},u={default:{bgDefault:r.success,fontDefault:r.basicInverse},primary:{bgDefault:r.primary,fontDefault:r.basicInverse},neutral:{bgDefault:r.basic,fontDefault:r.basicInverse},muted:{bgDefault:r.neutralLight,fontDefault:r.basic},alert:{bgDefault:r.alert,fontDefault:r.basicInverse},light:{bgDefault:r.neutralLighter,fontDefault:r.neutralDarker}},g=function(t){return function(e){var n=e.tagSize;return p[n][t]}},m=function(t){return function(e){var n=e.tagStyle,a=e.theme,r=u[n][t];return a.palette[r]}},c=i.div.attrs({\"data-testid\":\"corner-tag\"})(o||(o=t([\"\\n position: absolute;\\n top: -1px;\\n right: -1px;\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-color: transparent \",\" transparent transparent;\\n\\n \",\"\\n\"])),m(\"bgDefault\"),(function(t){return t.tagSize===a.Sizes.small?l([\"border-width:0 24px 24px 0;\"]):l([\"border-width:0 32px 32px 0;\"])})),d=i.div(s||(s=t([\"\\n position: absolute;\\n\\n \",\"\\n\"])),(function(t){var e=t.isSmall;return l(e?[\"top:3px;left:12px;line-height:0.4rem;\"]:[\"top:4px;left:17px;line-height:0.8rem;\"])})),b=i.div.attrs({\"data-testid\":\"default-tag\"})(f||(f=t([\"\\n display: inline-block;\\n font: normal \",\" \",\" \",\";\\n color: \",\";\\n text-transform: uppercase;\\n text-decoration: none;\\n background: \",\";\\n padding: \",\";\\n margin: 1px 5px 1px 0;\\n white-space: nowrap;\\n\"])),g(\"fontWeight\"),g(\"fontSize\"),(function(t){return t.theme.fonts.primary}),m(\"fontDefault\"),m(\"bgDefault\"),g(\"padding\")),h=function(t){var r=e({},t,{tagSize:t.tagSize||a.Sizes.default,tagStyle:t.tagStyle||a.Styles.default}),l=r.tagSize===a.Sizes.small;return r.tagType===a.Types.corner?n.createElement(c,{onClick:t.onClick,theme:t.theme,tagStyle:r.tagStyle,tagSize:r.tagSize,className:t.className},n.createElement(d,{isSmall:l},t.icon&&n.cloneElement(t.icon,{color:u[r.tagStyle].fontDefault,width:l?\"9px\":\"13px\",height:l?\"9px\":\"13px\"}))):n.createElement(b,r)};export{h as Tag};\n//# sourceMappingURL=Tag.js.map\n","var t,e,l,a,r;e=t||(t={}),function(t){t.default=\"default\",t.small=\"small\"}(l||(l={})),e.Sizes=l,function(t){t.default=\"default\",t.primary=\"primary\",t.neutral=\"neutral\",t.alert=\"alert\",t.muted=\"muted\",t.light=\"light\"}(a||(a={})),e.Styles=a,function(t){t.default=\"default\",t.corner=\"corner\"}(r||(r={})),e.Types=r;export{t as TagModel};\n//# sourceMappingURL=TagModel.js.map\n","import{a as n,_ as r}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as t from\"react\";import i from\"styled-components\";import{theme as a}from\"./theme.js\";var o=[\"children\",\"typography\"],e=i.span.withConfig({displayName:\"Text__Component\",componentId:\"sc-104pgww-0\"})([\"display:\",\";\",\";\",\";\",\";\",\";\",\";\",\";\",\";\",\";\",\";\",\";\",\";\",\";\",\";\",\";\",\";\",\";\"],(function(n){return n.block?\"block\":\"inline-block\"}),(function(n){var r=n.typography;return a.typography[r]}),(function(n){var r=n.color;return r&&\"color: \"+a.palette[r]}),(function(n){var r=n.padding;return r&&\"padding: \"+r}),(function(n){var r=n.paddingBottom;return r&&\"padding-bottom: \"+r}),(function(n){var r=n.paddingTop;return r&&\"padding-top: \"+r}),(function(n){var r=n.paddingLeft;return r&&\"padding-left: \"+r}),(function(n){var r=n.paddingRight;return r&&\"padding-right: \"+r}),(function(n){var r=n.paddingY;return r&&\"padding-top: \"+r+\"; padding-bottom: \"+r}),(function(n){var r=n.paddingX;return r&&\"padding-left: \"+r+\"; padding-right: \"+r}),(function(n){var r=n.margin;return r&&\"margin: \"+r}),(function(n){var r=n.marginBottom;return r&&\"margin-bottom: \"+r}),(function(n){var r=n.marginTop;return r&&\"margin-top: \"+r}),(function(n){var r=n.marginLeft;return r&&\"margin-left: \"+r}),(function(n){var r=n.marginRight;return r&&\"margin-right: \"+r}),(function(n){var r=n.marginY;return r&&\"margin-top: \"+r+\"; margin-bottom: \"+r}),(function(n){var r=n.marginX;return r&&\"margin-left: \"+r+\"; margin-right: \"+r})),p=function(i){var a=i.children,p=i.typography,g=n(i,o);return t.createElement(e,r({},g,{typography:p}),a)};export{p as Text};\n//# sourceMappingURL=Text.js.map\n","var t;!function(t){t.left=\"left\",t.right=\"right\",t.center=\"center\"}(t||(t={}));export{t as TextAlign};\n//# sourceMappingURL=TextAlign.js.map\n","import{b as n,a as t,_ as o}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as i from\"react\";import{Colors as r}from\"./Colors.js\";import{TooltipModel as e}from\"./TooltipModel.js\";import{styled as a}from\"./styled.js\";import{breakpoints as s}from\"./breakpoints.js\";import{css as u}from\"./css.js\";import{debounce as p}from\"./debounce.js\";var d,m,l,f,c,g,b,v,h,k,C,w,P,T,x,D,L,R,S,j,y,z,B,E,A,H,M,O,I,_,W,q,F,G,J,K=u(d||(d=n([\"\\n @media (min-width: \",\") {\\n \",\"\\n }\\n\"])),(function(n){var t=n.breakpointToCenter;return void 0===t?s.md:t}),(function(n){return n.alignDesktop?\"\":\"left: 50%;\"})),N=u(m||(m=n([\"\\n @media (min-width: \",\") {\\n \",\"\\n }\\n\"])),(function(n){var t=n.breakpointToCenter;return void 0===t?s.md:t}),(function(n){return n.alignDesktop?\"\":\"top: 50%;\"})),Q=((x={})[e.Position.topCenter]={positioning:u(l||(l=n([\"\\n top: 100%;\\n left: 50%;\\n \"]))),margin:\"left\"},x[e.Position.topRight]={positioning:u(f||(f=n([\"\\n top: 100%;\\n left: 10%;\\n \",\"\\n \"])),K),margin:\"left\"},x[e.Position.topLeft]={positioning:u(c||(c=n([\"\\n top: 100%;\\n left: 90%;\\n \",\"\\n \"])),K),margin:\"left\"},x[e.Position.bottomCenter]={positioning:u(g||(g=n([\"\\n bottom: 100%;\\n left: 50%;\\n \"]))),margin:\"left\"},x[e.Position.bottomRight]={positioning:u(b||(b=n([\"\\n bottom: 100%;\\n left: 10%;\\n \",\"\\n \"])),K),margin:\"left\"},x[e.Position.bottomLeft]={positioning:u(v||(v=n([\"\\n bottom: 100%;\\n left: 90%;\\n \",\"\\n \"])),K),margin:\"left\"},x[e.Position.leftTop]={positioning:u(h||(h=n([\"\\n left: 100%;\\n top: 70%;\\n \",\"\\n \"])),N),margin:\"top\"},x[e.Position.leftCenter]={positioning:u(k||(k=n([\"\\n left: 100%;\\n top: 50%;\\n \"]))),margin:\"top\"},x[e.Position.leftBottom]={positioning:u(C||(C=n([\"\\n left: 100%;\\n top: 30%;\\n \",\"\\n \"])),N),margin:\"top\"},x[e.Position.rightTop]={positioning:u(w||(w=n([\"\\n right: 100%;\\n top: 70%;\\n \",\"\\n \"])),N),margin:\"top\"},x[e.Position.rightCenter]={positioning:u(P||(P=n([\"\\n right: 100%;\\n top: 50%;\\n \"]))),margin:\"top\"},x[e.Position.rightBottom]={positioning:u(T||(T=n([\"\\n right: 100%;\\n top: 30%;\\n \",\"\\n \"])),N),margin:\"top\"},x),U=u(D||(D=n([\"\\n bottom: 100%;\\n left: 50%;\\n margin-bottom: 1rem;\\n\"]))),V=u(L||(L=n([\"\\n top: 100%;\\n left: 50%;\\n margin-top: 1rem;\\n\"]))),X=u(R||(R=n([\"\\n right: 100%;\\n top: 50%;\\n margin-right: 1rem;\\n\"]))),Y=u(S||(S=n([\"\\n left: 100%;\\n top: 50%;\\n margin-left: 1rem;\\n\"]))),Z=((q={})[e.Position.topCenter]=u(j||(j=n([\"\\n transform: translate3d(-50%, 0, 0);\\n \",\"\\n \"])),U),q[e.Position.topRight]=u(y||(y=n([\"\\n transform: translate3d(-10%, 0, 0);\\n \",\"\\n @media (min-width: \",\") {\\n \",\"\\n }\\n \"])),U,(function(n){var t=n.breakpointToCenter;return void 0===t?s.md:t}),(function(n){return n.alignDesktop?\"\":\"transform: translate3d(-50%, 0, 0);\"})),q[e.Position.topLeft]=u(z||(z=n([\"\\n transform: translate3d(-90%, 0, 0);\\n \",\"\\n @media (min-width: \",\") {\\n \",\"\\n }\\n \"])),U,(function(n){var t=n.breakpointToCenter;return void 0===t?s.md:t}),(function(n){return n.alignDesktop?\"\":\"transform: translate3d(-50%, 0, 0);\"})),q[e.Position.bottomCenter]=u(B||(B=n([\"\\n transform: translate3d(-50%, 0, 0);\\n \",\"\\n \"])),V),q[e.Position.bottomRight]=u(E||(E=n([\"\\n transform: translate3d(-10%, 0, 0);\\n \",\"\\n @media (min-width: \",\") {\\n \",\"\\n }\\n \"])),V,(function(n){var t=n.breakpointToCenter;return void 0===t?s.md:t}),(function(n){return n.alignDesktop?\"\":\"transform: translate3d(-50%, 0, 0);\"})),q[e.Position.bottomLeft]=u(A||(A=n([\"\\n transform: translate3d(-90%, 0, 0);\\n \",\"\\n @media (min-width: \",\") {\\n \",\"\\n }\\n \"])),V,(function(n){var t=n.breakpointToCenter;return void 0===t?s.md:t}),(function(n){return n.alignDesktop?\"\":\"transform: translate3d(-50%, 0, 0);\"})),q[e.Position.leftTop]=u(H||(H=n([\"\\n transform: translate3d(0, -80%, 0);\\n \",\"\\n @media (min-width: \",\") {\\n \",\"\\n }\\n \"])),X,(function(n){var t=n.breakpointToCenter;return void 0===t?s.md:t}),(function(n){return n.alignDesktop?\"\":\"transform: translate3d(0, -50%, 0);\"})),q[e.Position.leftCenter]=u(M||(M=n([\"\\n transform: translate3d(0, -50%, 0);\\n \",\"\\n \"])),X),q[e.Position.leftBottom]=u(O||(O=n([\"\\n transform: translate3d(0, -20%, 0);\\n \",\"\\n @media (min-width: \",\") {\\n \",\"\\n }\\n \"])),X,(function(n){var t=n.breakpointToCenter;return void 0===t?s.md:t}),(function(n){return n.alignDesktop?\"\":\"transform: translate3d(0, -50%, 0);\"})),q[e.Position.rightTop]=u(I||(I=n([\"\\n transform: translate3d(0, -80%, 0);\\n \",\"\\n @media (min-width: \",\") {\\n \",\"\\n }\\n \"])),Y,(function(n){var t=n.breakpointToCenter;return void 0===t?s.md:t}),(function(n){return n.alignDesktop?\"\":\"transform: translate3d(0, -50%, 0);\"})),q[e.Position.rightCenter]=u(_||(_=n([\"\\n transform: translate3d(0, -50%, 0);\\n \",\"\\n \"])),Y),q[e.Position.rightBottom]=u(W||(W=n([\"\\n transform: translate3d(0, -20%, 0);\\n \",\"\\n @media (min-width: \",\") {\\n \",\"\\n }\\n \"])),Y,(function(n){var t=n.breakpointToCenter;return void 0===t?s.md:t}),(function(n){return n.alignDesktop?\"\":\"transform: translate3d(0, -50%, 0);\"})),q),$=function(n){return n.split(\"-\")[0]},nn=a.div(F||(F=n([\"\\n position: relative;\\n display: inline-block;\\n\"]))),tn=a.div(G||(G=n([\"\\n \",\"\\n\"])),(function(n){return n.interactive?\"\\n padding-\"+$(n.position)+\": 1rem;\\n margin-\"+$(n.position)+\": -1rem;\\n \":\"\"})),on=a.div(J||(J=n([\"\\n \",\"\\n \",\"\\n padding: 0.5rem;\\n backface-visibility: hidden;\\n position: absolute;\\n z-index: 100;\\n background-size: 100% auto;\\n white-space: \",\";\\n background-repeat: no-repeat;\\n background-color: \",\";\\n transform-origin: top;\\n color: \",\";\\n will-change: transform;\\n opacity: \",\";\\n pointer-events: \",\";\\n \",\"\\n\\n &:after, &:before {\\n \",'\\n border: solid transparent;\\n content: \" \";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none;\\n }\\n\\n &:after {\\n border-color: transparent;\\n border-',\"-color: \",\";\\n border-width: 9px;\\n margin-\",\": -9px;\\n }\\n\\n &:before {\\n border-color: transparent;\\n border-\",\"-color: \",\";\\n border-width: 10px;\\n margin-\",\": -10px;\\n }\\n\"])),(function(n){return function(n){return n.outline?\"border: 1px solid \"+n.theme.palette[n.border]+\";\":\"\"}(n)}),(function(n){return function(n){return\"transition: all \"+n.duration+\"ms \"+n.animation}(n)}),(function(n){return n.wrapText?\"wrap\":\"nowrap\"}),(function(n){return n.theme.palette[n.backgroundColor]}),(function(n){return n.theme.palette[n.textColor]}),(function(n){return n.isShowing?1:0}),(function(n){return n.isShowing?\"auto\":\"none\"}),(function(n){return Z[n.position]}),(function(n){return Q[n.position].positioning}),(function(n){return $(n.position)}),(function(n){return n.theme.palette[n.backgroundColor]}),(function(n){return Q[n.position].margin}),(function(n){return $(n.position)}),(function(n){return n.theme.palette[n.outline?n.border:n.backgroundColor]}),(function(n){return Q[n.position].margin})),rn=function(n,t){var o=t===e.Position.topAutomatic,i=t===e.Position.bottomAutomatic;if(!(o||i))return t;var r=\"Center\";if(n){var a=n.getBoundingClientRect();r=a.x<25?\"Right\":a.x+a.width+25>window.outerWidth?\"Left\":\"Center\"}return i?e.Position[\"bottom\"+r]:e.Position[\"top\"+r]},en=[\"position\",\"recalculateOnResize\",\"duration\",\"animation\",\"content\",\"children\",\"onShow\",\"onHide\",\"textColor\",\"backgroundColor\",\"disabled\",\"open\",\"outline\",\"border\",\"wrapText\",\"interactive\",\"alignDesktop\",\"breakpointToCenter\"],an=function(n){var a=n.position,s=void 0===a?e.Position.topLeft:a,u=n.recalculateOnResize,d=void 0!==u&&u,m=n.duration,l=void 0===m?350:m,f=n.animation,c=void 0===f?e.Animation.easeIn:f,g=n.content,b=n.children,v=n.onShow,h=n.onHide,k=n.textColor,C=void 0===k?r.basic:k,w=n.backgroundColor,P=void 0===w?r.basicInverse:w,T=n.disabled,x=n.open,D=n.outline,L=void 0===D||D,R=n.border,S=void 0===R?r.neutral:R,j=n.wrapText,y=n.interactive,z=n.alignDesktop,B=n.breakpointToCenter,E=t(n,en),A=i.useState(null),H=A[0],M=A[1],O=i.useState(!1),I=O[0],_=O[1],W=function(n,t,o){var r=i.useState((function(){return rn(n,t)})),e=r[0],a=r[1];return i.useEffect((function(){var i=p((function(){a(rn(n,t))}),200);if(i(),o)return window.addEventListener(\"resize\",i),function(){window.removeEventListener(\"resize\",i)}}),[t,o,n]),e}(H,s,d),q=i.useCallback((function(){T||(\"function\"==typeof v&&v(),_(!0))}),[T,v]),F=i.useCallback((function(){T||(\"function\"==typeof h&&h(),_(!1))}),[h,T]);return i.createElement(nn,o({onMouseOver:q,onMouseLeave:F},E),i.createElement(tn,{interactive:y,position:W},i.createElement(on,{role:\"tooltip\",ref:M,breakpointToCenter:B,alignDesktop:z,duration:l,position:W,isShowing:void 0!==x?x:I,animation:c,backgroundColor:P,textColor:C,outline:L,border:S,wrapText:j},g),b))};export{an as T};\n//# sourceMappingURL=Tooltip-aa4269c8.js.map\n","var t,o,e,i;o=t||(t={}),function(t){t.topCenter=\"top-center\",t.topLeft=\"top-left\",t.topRight=\"top-right\",t.bottomCenter=\"bottom-center\",t.bottomLeft=\"bottom-left\",t.bottomRight=\"bottom-right\",t.leftCenter=\"left-center\",t.leftTop=\"left-top\",t.leftBottom=\"left-bottom\",t.rightCenter=\"right-center\",t.rightTop=\"right-top\",t.rightBottom=\"right-bottom\",t.bottomAutomatic=\"bottom-automatic\",t.topAutomatic=\"top-automatic\"}(e||(e={})),o.Position=e,function(t){t.ease=\"ease\",t.linear=\"linear\",t.easeIn=\"ease-in\",t.easeOut=\"ease-out\",t.easeInOut=\"ease-in-out\"}(i||(i={})),o.Animation=i;export{t as TooltipModel};\n//# sourceMappingURL=TooltipModel.js.map\n","import{c}from\"./createSvgIcon-89a7bcb8.js\";import\"react\";import\"./index.js\";import\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import\"./ThemeContext.js\";import\"styled-components\";var e=function(e){return c(\"M0.01,40.9c0,-1.94 1.5,-2 1.5,-2h2v-11c-0.04,-4.19 1.61,-8.22 4.58,-11.17l2.46,-2.34c2.38,-2.31 5.58,-3.57 8.89,-3.51h2.56v-7.19c0.02,-1.53 1.28,-2.77 2.81,-2.76h36.57c1.43,0 2.59,1.16 2.59,2.59v37c0,1.55 -1.58,2.48 -3.12,2.48h-2c0,6.29 -5.74,11.48 -12.34,9.41c-4.01,-1.42 -6.72,-5.18 -6.8,-9.43h-13.26c0,6.29 -5.74,11.46 -12.34,9.39c-4.01,-1.44 -6.71,-5.23 -6.77,-9.49h-5.84c0,0 -1.49,-0.04 -1.49,-1.98zM21.87,43.39c0,-1.89 -1.14,-3.59 -2.89,-4.32c-1.75,-0.72 -3.76,-0.32 -5.09,1.02c-1.33,1.34 -1.73,3.35 -1.01,5.09c0.73,1.74 2.43,2.88 4.32,2.88c2.58,-0.01 4.66,-2.09 4.66,-4.67zM22,15h-3c-2.01,-0.05 -3.97,0.66 -5.48,2l-3.95,4.52c-0.64,0.6 -1,1.43 -1,2.3v2.18h13.43zM54.26,43.43c0,-1.89 -1.14,-3.59 -2.89,-4.32c-1.75,-0.72 -3.76,-0.32 -5.09,1.02c-1.33,1.34 -1.73,3.35 -1.01,5.09c0.73,1.74 2.43,2.88 4.32,2.88c2.58,-0.01 4.66,-2.09 4.66,-4.67z\",e)};export{e as TruckIcon};\n//# sourceMappingURL=TruckIcon.js.map\n","import{c as e}from\"./createSvgIcon-89a7bcb8.js\";import\"react\";import\"./index.js\";import\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import\"./ThemeContext.js\";import\"styled-components\";var r=function(r){return e(\"M32,64A32,32,0,1,0,0,32,32,32,0,0,0,32,64ZM28,12h8V38H28Zm4,29.14a5,5,0,1,1-5,5A5,5,0,0,1,32,41.14Z\",r)};export{r as WarningIcon};\n//# sourceMappingURL=WarningIcon.js.map\n","import{b as t,a as o,_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as i from\"react\";import{usePrevious as n}from\"./usePrevious.js\";import{Colors as r}from\"./Colors.js\";import{HeartIcon as s}from\"./HeartIcon.js\";import{HeartOIcon as a}from\"./HeartOIcon.js\";import{n as m}from\"./utils-ec9be121.js\";import{css as l}from\"./css.js\";import{keyframes as c}from\"./keyframes.js\";import{styled as d}from\"./styled.js\";import\"./createSvgIcon-89a7bcb8.js\";import\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var f,p,h,v=c(f||(f=t([\"\\n 0% {\\n transform: scale(1);\\n }\\n 50% {\\n transform: scale(1.5);\\n }\\n 100% {\\n transform: scale(1);\\n }\\n\"]))),u=l(p||(p=t([\"\\n animation: \",\" 350ms ease forwards;\\n\"])),v),j=d.div(h||(h=t([\"\\n cursor: pointer;\\n pointer-events: \",\";\\n width: 100%;\\n height: 100%;\\n svg {\\n \",\";\\n }\\n &:hover {\\n svg {\\n color: \",\";\\n }\\n }\\n\"])),(function(t){return t.notActive?\"none\":\"auto\"}),(function(t){return t.animate?u:\"\"}),(function(t){var o=t.theme,e=t.wishlistedColor;return o.palette[e]})),w=[\"wishlisted\",\"animated\",\"size\",\"onClick\",\"notActive\",\"wishlistedColor\",\"defaultColor\"],C=i.memo((function(t){var l=t.wishlisted,c=void 0!==l&&l,d=t.animated,f=void 0===d||d,p=t.size,h=void 0===p?\"20px\":p,v=t.onClick,u=void 0===v?m:v,C=t.notActive,b=void 0!==C&&C,g=t.wishlistedColor,k=void 0===g?r.primary:g,x=t.defaultColor,y=void 0===x?r.basic:x,A=o(t,w),E=n(c,c);return i.createElement(j,e({},A,{\"data-testid\":\"wishlist-button\",animate:f&&E!==c,onClick:u,notActive:b,wishlisted:c,wishlistedColor:k}),c?i.createElement(s,{width:h,height:h,color:k,\"data-testid\":\"heart-icon-filled\"}):i.createElement(a,{width:h,height:h,color:y,\"data-testid\":\"heart-icon-outlined\"}))}));export{C as WishlistButton};\n//# sourceMappingURL=WishlistButton.js.map\n","var e=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}function r(e){if(e.__esModule)return e;var t=Object.defineProperty({},\"__esModule\",{value:!0});return Object.keys(e).forEach((function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})})),t}function n(e){var t={exports:{}};return e(t,t.exports),t.exports}export{e as a,r as b,n as c,t as g};\n//# sourceMappingURL=_commonjsHelpers-41cdd1e7.js.map\n","function t(){t=function(){return r};var r={},e=Object.prototype,n=e.hasOwnProperty,o=Object.defineProperty||function(t,r,e){t[r]=e.value},i=\"function\"==typeof Symbol?Symbol:{},a=i.iterator||\"@@iterator\",c=i.asyncIterator||\"@@asyncIterator\",u=i.toStringTag||\"@@toStringTag\";function f(t,r,e){return Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}),t[r]}try{f({},\"\")}catch(t){f=function(t,r,e){return t[r]=e}}function h(t,r,e,n){var i=r&&r.prototype instanceof p?r:p,a=Object.create(i.prototype),c=new _(n||[]);return o(a,\"_invoke\",{value:L(t,e,c)}),a}function l(t,r,e){try{return{type:\"normal\",arg:t.call(r,e)}}catch(t){return{type:\"throw\",arg:t}}}r.wrap=h;var s={};function p(){}function v(){}function y(){}var d={};f(d,a,(function(){return this}));var g=Object.getPrototypeOf,m=g&&g(g(P([])));m&&m!==e&&n.call(m,a)&&(d=m);var w=y.prototype=p.prototype=Object.create(d);function b(t){[\"next\",\"throw\",\"return\"].forEach((function(r){f(t,r,(function(t){return this._invoke(r,t)}))}))}function x(t,r){var e;o(this,\"_invoke\",{value:function(o,i){function a(){return new r((function(e,a){!function e(o,i,a,c){var u=l(t[o],t,i);if(\"throw\"!==u.type){var f=u.arg,h=f.value;return h&&\"object\"==typeof h&&n.call(h,\"__await\")?r.resolve(h.__await).then((function(t){e(\"next\",t,a,c)}),(function(t){e(\"throw\",t,a,c)})):r.resolve(h).then((function(t){f.value=t,a(f)}),(function(t){return e(\"throw\",t,a,c)}))}c(u.arg)}(o,i,e,a)}))}return e=e?e.then(a,a):a()}})}function L(t,r,e){var n=\"suspendedStart\";return function(o,i){if(\"executing\"===n)throw new Error(\"Generator is already running\");if(\"completed\"===n){if(\"throw\"===o)throw i;return k()}for(e.method=o,e.arg=i;;){var a=e.delegate;if(a){var c=E(a,e);if(c){if(c===s)continue;return c}}if(\"next\"===e.method)e.sent=e._sent=e.arg;else if(\"throw\"===e.method){if(\"suspendedStart\"===n)throw n=\"completed\",e.arg;e.dispatchException(e.arg)}else\"return\"===e.method&&e.abrupt(\"return\",e.arg);n=\"executing\";var u=l(t,r,e);if(\"normal\"===u.type){if(n=e.done?\"completed\":\"suspendedYield\",u.arg===s)continue;return{value:u.arg,done:e.done}}\"throw\"===u.type&&(n=\"completed\",e.method=\"throw\",e.arg=u.arg)}}}function E(t,r){var e=r.method,n=t.iterator[e];if(void 0===n)return r.delegate=null,\"throw\"===e&&t.iterator.return&&(r.method=\"return\",r.arg=void 0,E(t,r),\"throw\"===r.method)||\"return\"!==e&&(r.method=\"throw\",r.arg=new TypeError(\"The iterator does not provide a '\"+e+\"' method\")),s;var o=l(n,t.iterator,r.arg);if(\"throw\"===o.type)return r.method=\"throw\",r.arg=o.arg,r.delegate=null,s;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,\"return\"!==r.method&&(r.method=\"next\",r.arg=void 0),r.delegate=null,s):i:(r.method=\"throw\",r.arg=new TypeError(\"iterator result is not an object\"),r.delegate=null,s)}function O(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]),2 in t&&(r.finallyLoc=t[2],r.afterLoc=t[3]),this.tryEntries.push(r)}function j(t){var r=t.completion||{};r.type=\"normal\",delete r.arg,t.completion=r}function _(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(O,this),this.reset(!0)}function P(t){if(t){var r=t[a];if(r)return r.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var e=-1,o=function r(){for(;++e=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return e(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev=0;--e){var o=this.tryEntries[e];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev=0;--r){var e=this.tryEntries[r];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),j(e),s}},catch:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.tryLoc===t){var n=e.completion;if(\"throw\"===n.type){var o=n.arg;j(e)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,r,e){return this.delegate={iterator:P(t),resultName:r,nextLoc:e},\"next\"===this.method&&(this.arg=void 0),s}},r}function r(t,r,e,n,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void e(t)}c.done?r(u):Promise.resolve(u).then(n,o)}function e(t){return function(){var e=this,n=arguments;return new Promise((function(o,i){var a=t.apply(e,n);function c(t){r(a,o,i,c,u,\"next\",t)}function u(t){r(a,o,i,c,u,\"throw\",t)}c(void 0)}))}}function n(){return(n=Object.assign?Object.assign.bind():function(t){for(var r=1;r=0||(o[e]=t[e]);return o}function i(t,r){return r||(r=t.slice(0)),t.raw=r,t}export{n as _,o as a,i as b,e as c,t as d};\n//# sourceMappingURL=_rollupPluginBabelHelpers-fc5c8eb1.js.map\n","import{theme as e}from\"./theme.js\";var r=Object.keys(e.breakpoints).reduce((function(r,t){var n=e.breakpoints[t];return r[t]=function(){return n+\"em\"},r}),{});export{r as breakpoints};\n//# sourceMappingURL=breakpoints.js.map\n","import{c as e,b as t}from\"./_commonjsHelpers-41cdd1e7.js\";import r from\"react\";var n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};var o=function(){return(o=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function c(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}function u(e){return this instanceof u?(this.v=e,this):new u(e)}var l=Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}:function(e,t){e.default=t};var f=Object.freeze({__proto__:null,__extends:function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},get __assign(){return o},__rest:function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o=0;c--)(o=e[c])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},__param:function(e,t){return function(r,n){t(r,n,e)}},__metadata:function(e,t){if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.metadata)return Reflect.metadata(e,t)},__awaiter:function(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{u(n.next(e))}catch(e){a(e)}}function c(e){try{u(n.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,c)}u((n=n.apply(e,t||[])).next())}))},__generator:function(e,t){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(u){return function(c){if(r)throw new TypeError(\"Generator is already executing.\");for(;a&&(a=0,c[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,n=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]1||c(e,t)}))})}function c(e,t){try{(r=o[e](t)).value instanceof u?Promise.resolve(r.value.v).then(l,f):s(a[0][2],r)}catch(e){s(a[0][3],e)}var r}function l(e){c(\"next\",e)}function f(e){c(\"throw\",e)}function s(e,t){e(t),a.shift(),a.length&&c(a[0][0],a[0][1])}},__asyncDelegator:function(e){var t,r;return t={},n(\"next\"),n(\"throw\",(function(e){throw e})),n(\"return\"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:u(e[n](t)),done:\"return\"===n}:o?o(t):t}:o}},__asyncValues:function(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=i(e),t={},n(\"next\"),n(\"throw\"),n(\"return\"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,o,(t=e[r](t)).done,t.value)}))}}},__makeTemplateObject:function(e,t){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t,e},__importStar:function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)\"default\"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return l(t,e),t},__importDefault:function(e){return e&&e.__esModule?e:{default:e}},__classPrivateFieldGet:function(e,t,r,n){if(\"a\"===r&&!n)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"==typeof t?e!==t||!n:!t.has(e))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===r?n:\"a\"===r?n.call(e):n?n.value:t.get(e)},__classPrivateFieldSet:function(e,t,r,n,o){if(\"m\"===n)throw new TypeError(\"Private method is not writable\");if(\"a\"===n&&!o)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"==typeof t?e!==t||!o:!t.has(e))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===n?o.call(e,r):o?o.value=r:t.set(e,r),r},__classPrivateFieldIn:function(e,t){if(null===t||\"object\"!=typeof t&&\"function\"!=typeof t)throw new TypeError(\"Cannot use 'in' operator on non-object\");return\"function\"==typeof e?t===e:e.has(t)}}),s=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.removedBarSizeVariable=t.noScrollbarsClassName=t.fullWidthClassName=t.zeroRightClassName=void 0,t.zeroRightClassName=\"right-scroll-bar-position\",t.fullWidthClassName=\"width-before-scroll-bar\",t.noScrollbarsClassName=\"with-scroll-bars-hidden\",t.removedBarSizeVariable=\"--removed-body-scroll-bar-size\"})),d=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.assignRef=void 0,t.assignRef=function(e,t){return\"function\"==typeof e?e(t):e&&(e.current=t),e}})),p=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.useCallbackRef=void 0,t.useCallbackRef=function(e,t){var n=(0,r.useState)((function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}}))[0];return n.callback=t,n.facade}})),y=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.createCallbackRef=void 0,t.createCallbackRef=function(e){var t=null;return{get current(){return t},set current(r){var n=t;n!==r&&(t=r,e(r,n))}}}})),v=d,h=y,b=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.mergeRefs=void 0,t.mergeRefs=function(e){return(0,h.createCallbackRef)((function(t){return e.forEach((function(e){return(0,v.assignRef)(e,t)}))}))}})),_=p,m=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.useMergeRefs=void 0,t.useMergeRefs=function(e,t){return(0,_.useCallbackRef)(t||null,(function(t){return e.forEach((function(e){return(0,v.assignRef)(e,t)}))}))}})),g=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.useTransformRef=void 0,t.useTransformRef=function(e,t){return(0,_.useCallbackRef)(null,(function(r){return(0,v.assignRef)(e,t(r))}))}})),w=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.transformRef=void 0,t.transformRef=function(e,t){return(0,h.createCallbackRef)((function(r){return(0,v.assignRef)(e,t(r))}))}})),O=e((function(e,t){function r(e){return function(t){\"function\"==typeof e?e(t):e&&(e.current=t)}}Object.defineProperty(t,\"__esModule\",{value:!0}),t.useRefToCallback=t.refToCallback=void 0,t.refToCallback=r;var n=function(){return null},o=new WeakMap;t.useRefToCallback=function(e){return function(e){var t=e||n,a=o.get(t);if(a)return a;var i=r(t);return o.set(t,i),i}(e)}})),S=b,j=m,P=g,R=w,C=O,E=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.useRefToCallback=t.refToCallback=t.transformRef=t.useTransformRef=t.useMergeRefs=t.mergeRefs=t.createCallbackRef=t.useCallbackRef=t.assignRef=void 0,Object.defineProperty(t,\"assignRef\",{enumerable:!0,get:function(){return v.assignRef}}),Object.defineProperty(t,\"useCallbackRef\",{enumerable:!0,get:function(){return _.useCallbackRef}}),Object.defineProperty(t,\"createCallbackRef\",{enumerable:!0,get:function(){return h.createCallbackRef}}),Object.defineProperty(t,\"mergeRefs\",{enumerable:!0,get:function(){return S.mergeRefs}}),Object.defineProperty(t,\"useMergeRefs\",{enumerable:!0,get:function(){return j.useMergeRefs}}),Object.defineProperty(t,\"useTransformRef\",{enumerable:!0,get:function(){return P.useTransformRef}}),Object.defineProperty(t,\"transformRef\",{enumerable:!0,get:function(){return R.transformRef}}),Object.defineProperty(t,\"refToCallback\",{enumerable:!0,get:function(){return C.refToCallback}}),Object.defineProperty(t,\"useRefToCallback\",{enumerable:!0,get:function(){return C.useRefToCallback}})})),x=function(e,t){return(x=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};var T=function(){return(T=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function N(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}function I(e){return this instanceof I?(this.v=e,this):new I(e)}var B=Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}:function(e,t){e.default=t};var A=Object.freeze({__proto__:null,__extends:function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}x(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},get __assign(){return T},__rest:function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o=0;c--)(o=e[c])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},__param:function(e,t){return function(r,n){t(r,n,e)}},__metadata:function(e,t){if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.metadata)return Reflect.metadata(e,t)},__awaiter:function(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{u(n.next(e))}catch(e){a(e)}}function c(e){try{u(n.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,c)}u((n=n.apply(e,t||[])).next())}))},__generator:function(e,t){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(a){return function(c){return function(a){if(r)throw new TypeError(\"Generator is already executing.\");for(;i;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,n=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]1||c(e,t)}))})}function c(e,t){try{(r=o[e](t)).value instanceof I?Promise.resolve(r.value.v).then(u,l):f(a[0][2],r)}catch(e){f(a[0][3],e)}var r}function u(e){c(\"next\",e)}function l(e){c(\"throw\",e)}function f(e,t){e(t),a.shift(),a.length&&c(a[0][0],a[0][1])}},__asyncDelegator:function(e){var t,r;return t={},n(\"next\"),n(\"throw\",(function(e){throw e})),n(\"return\"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:I(e[n](t)),done:\"return\"===n}:o?o(t):t}:o}},__asyncValues:function(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=k(e),t={},n(\"next\"),n(\"throw\"),n(\"return\"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,o,(t=e[r](t)).done,t.value)}))}}},__makeTemplateObject:function(e,t){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t,e},__importStar:function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)\"default\"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&M(t,e,r);return B(t,e),t},__importDefault:function(e){return e&&e.__esModule?e:{default:e}},__classPrivateFieldGet:function(e,t,r,n){if(\"a\"===r&&!n)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"==typeof t?e!==t||!n:!t.has(e))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===r?n:\"a\"===r?n.call(e):n?n.value:t.get(e)},__classPrivateFieldSet:function(e,t,r,n,o){if(\"m\"===n)throw new TypeError(\"Private method is not writable\");if(\"a\"===n&&!o)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"==typeof t?e!==t||!o:!t.has(e))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===n?o.call(e,r):o?o.value=r:t.set(e,r),r},__classPrivateFieldIn:function(e,t){if(null===t||\"object\"!=typeof t&&\"function\"!=typeof t)throw new TypeError(\"Cannot use 'in' operator on non-object\");return\"function\"==typeof e?t===e:e.has(t)}}),z={isNode:\"[object process]\"===Object.prototype.toString.call(\"undefined\"!=typeof process?process:0)},D=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.env=void 0,t.env={isNode:z.isNode,forceCache:!1}})),W=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.useSidecar=void 0;var n=new WeakMap,o={};t.useSidecar=function(e,t){var a=t&&t.options||o;return D.env.isNode&&!a.ssr?[null,null]:function(e,t){var a=t&&t.options||o,i=D.env.forceCache||D.env.isNode&&!!a.ssr||!a.async,c=(0,r.useState)(i?function(){return n.get(e)}:void 0),u=c[0],l=c[1],f=(0,r.useState)(null),s=f[0],d=f[1];return(0,r.useEffect)((function(){u||e().then((function(r){var o,a=t?t.read():r.default||r;if(!a)throw console.error(\"Sidecar error: with importer\",e),t?(console.error(\"Sidecar error: with medium\",t),o=new Error(\"Sidecar medium was not found\")):o=new Error(\"Sidecar was not found in exports\"),d((function(){return o})),o;n.set(e,a),l((function(){return a}))}),(function(e){return d((function(){return e}))}))}),[]),[u,s]}(e,t)}})),G=t(A),Y=W,X=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.sidecar=void 0;var n=G.__importStar(r);t.sidecar=function(e,t){var r=function(){return t};return function(o){var a=(0,Y.useSidecar)(e,o.sideCar),i=a[0];return a[1]&&t?r:i?n.createElement(i,G.__assign({},o)):null}}})),L=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.setConfig=t.config=void 0,t.config={onError:function(e){return console.error(e)}};t.setConfig=function(e){Object.assign(t.config,e)}})),F=e((function(e,t){function r(e){return e}function n(e,t){void 0===t&&(t=r);var n=[],o=!1;return{read:function(){if(o)throw new Error(\"Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.\");return n.length?n[n.length-1]:e},useMedium:function(e){var r=t(e,o);return n.push(r),function(){n=n.filter((function(e){return e!==r}))}},assignSyncMedium:function(e){for(o=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){o=!0;var t=[];if(n.length){var r=n;n=[],r.forEach(e),t=n}var a=function(){var r=t;t=[],r.forEach(e)},i=function(){return Promise.resolve().then(a)};i(),n={push:function(e){t.push(e),i()},filter:function(e){return t=t.filter(e),n}}}}}Object.defineProperty(t,\"__esModule\",{value:!0}),t.createSidecarMedium=t.createMedium=void 0,t.createMedium=function(e,t){return void 0===t&&(t=r),n(e,t)},t.createSidecarMedium=function(e){void 0===e&&(e={});var t=n(null);return t.options=G.__assign({async:!0,ssr:!1},e),t}})),V=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.renderCar=void 0;var n=G.__importStar(r);t.renderCar=function(e,t){function o(t){var o=t.stateRef,a=t.props,i=(0,r.useCallback)((function(){for(var e=[],t=0;t=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function ue(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}function le(e){return this instanceof le?(this.v=e,this):new le(e)}var fe=Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}:function(e,t){e.default=t};var se=Object.freeze({__proto__:null,__extends:function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}oe(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},get __assign(){return ae},__rest:function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o=0;c--)(o=e[c])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},__param:function(e,t){return function(r,n){t(r,n,e)}},__metadata:function(e,t){if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.metadata)return Reflect.metadata(e,t)},__awaiter:function(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{u(n.next(e))}catch(e){a(e)}}function c(e){try{u(n.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,c)}u((n=n.apply(e,t||[])).next())}))},__generator:function(e,t){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(a){return function(c){return function(a){if(r)throw new TypeError(\"Generator is already executing.\");for(;i;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,n=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]1||c(e,t)}))})}function c(e,t){try{(r=o[e](t)).value instanceof le?Promise.resolve(r.value.v).then(u,l):f(a[0][2],r)}catch(e){f(a[0][3],e)}var r}function u(e){c(\"next\",e)}function l(e){c(\"throw\",e)}function f(e,t){e(t),a.shift(),a.length&&c(a[0][0],a[0][1])}},__asyncDelegator:function(e){var t,r;return t={},n(\"next\"),n(\"throw\",(function(e){throw e})),n(\"return\"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:le(e[n](t)),done:\"return\"===n}:o?o(t):t}:o}},__asyncValues:function(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=ce(e),t={},n(\"next\"),n(\"throw\"),n(\"return\"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,o,(t=e[r](t)).done,t.value)}))}}},__makeTemplateObject:function(e,t){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t,e},__importStar:function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)\"default\"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&ie(t,e,r);return fe(t,e),t},__importDefault:function(e){return e&&e.__esModule?e:{default:e}},__classPrivateFieldGet:function(e,t,r,n){if(\"a\"===r&&!n)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"==typeof t?e!==t||!n:!t.has(e))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===r?n:\"a\"===r?n.call(e):n?n.value:t.get(e)},__classPrivateFieldSet:function(e,t,r,n,o){if(\"m\"===n)throw new TypeError(\"Private method is not writable\");if(\"a\"===n&&!o)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"==typeof t?e!==t||!o:!t.has(e))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===n?o.call(e,r):o?o.value=r:t.set(e,r),r},__classPrivateFieldIn:function(e,t){if(null===t||\"object\"!=typeof t&&\"function\"!=typeof t)throw new TypeError(\"Cannot use 'in' operator on non-object\");return\"function\"==typeof e?t===e:e.has(t)}}),de=function(e,t){return(de=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};var pe=function(){return(pe=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function he(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}function be(e){return this instanceof be?(this.v=e,this):new be(e)}var _e=Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}:function(e,t){e.default=t};var me,ge=Object.freeze({__proto__:null,__extends:function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}de(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},get __assign(){return pe},__rest:function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o=0;c--)(o=e[c])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},__param:function(e,t){return function(r,n){t(r,n,e)}},__metadata:function(e,t){if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.metadata)return Reflect.metadata(e,t)},__awaiter:function(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{u(n.next(e))}catch(e){a(e)}}function c(e){try{u(n.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,c)}u((n=n.apply(e,t||[])).next())}))},__generator:function(e,t){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(u){return function(c){if(r)throw new TypeError(\"Generator is already executing.\");for(;a&&(a=0,c[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return i.label++,{value:c[1],done:!1};case 5:i.label++,n=c[1],c=[0];continue;case 7:c=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){i=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]1||c(e,t)}))})}function c(e,t){try{(r=o[e](t)).value instanceof be?Promise.resolve(r.value.v).then(u,l):f(a[0][2],r)}catch(e){f(a[0][3],e)}var r}function u(e){c(\"next\",e)}function l(e){c(\"throw\",e)}function f(e,t){e(t),a.shift(),a.length&&c(a[0][0],a[0][1])}},__asyncDelegator:function(e){var t,r;return t={},n(\"next\"),n(\"throw\",(function(e){throw e})),n(\"return\"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:be(e[n](t)),done:\"return\"===n}:o?o(t):t}:o}},__asyncValues:function(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=ve(e),t={},n(\"next\"),n(\"throw\"),n(\"return\"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,o,(t=e[r](t)).done,t.value)}))}}},__makeTemplateObject:function(e,t){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t,e},__importStar:function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)\"default\"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&ye(t,e,r);return _e(t,e),t},__importDefault:function(e){return e&&e.__esModule?e:{default:e}},__classPrivateFieldGet:function(e,t,r,n){if(\"a\"===r&&!n)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"==typeof t?e!==t||!n:!t.has(e))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===r?n:\"a\"===r?n.call(e):n?n.value:t.get(e)},__classPrivateFieldSet:function(e,t,r,n,o){if(\"m\"===n)throw new TypeError(\"Private method is not writable\");if(\"a\"===n&&!o)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"==typeof t?e!==t||!o:!t.has(e))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===n?o.call(e,r):o?o.value=r:t.set(e,r),r},__classPrivateFieldIn:function(e,t){if(null===t||\"object\"!=typeof t&&\"function\"!=typeof t)throw new TypeError(\"Cannot use 'in' operator on non-object\");return\"function\"==typeof e?t===e:e.has(t)}}),we=Object.defineProperty({setNonce:function(e){me=e},getNonce:function(){return me||(\"undefined\"!=typeof __webpack_nonce__?__webpack_nonce__:void 0)}},\"__esModule\",{value:!0}),Oe=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.stylesheetSingleton=void 0;t.stylesheetSingleton=function(){var e=0,t=null;return{add:function(r){var n,o;0==e&&(t=function(){if(!document)return null;var e=document.createElement(\"style\");e.type=\"text/css\";var t=(0,we.getNonce)();return t&&e.setAttribute(\"nonce\",t),e}())&&(o=r,(n=t).styleSheet?n.styleSheet.cssText=o:n.appendChild(document.createTextNode(o)),function(e){(document.head||document.getElementsByTagName(\"head\")[0]).appendChild(e)}(t)),e++},remove:function(){!--e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}}})),Se=t(ge),je=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.styleHookSingleton=void 0;var n=Se.__importStar(r);t.styleHookSingleton=function(){var e=(0,Oe.stylesheetSingleton)();return function(t,r){n.useEffect((function(){return e.add(t),function(){e.remove()}}),[t&&r])}}})),Pe=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.styleSingleton=void 0;t.styleSingleton=function(){var e=(0,je.styleHookSingleton)();return function(t){var r=t.styles,n=t.dynamic;return e(r,n),null}}})),Re=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.styleHookSingleton=t.stylesheetSingleton=t.styleSingleton=void 0,Object.defineProperty(t,\"styleSingleton\",{enumerable:!0,get:function(){return Pe.styleSingleton}}),Object.defineProperty(t,\"stylesheetSingleton\",{enumerable:!0,get:function(){return Oe.stylesheetSingleton}}),Object.defineProperty(t,\"styleHookSingleton\",{enumerable:!0,get:function(){return je.styleHookSingleton}})})),Ce=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.getGapWidth=t.zeroGap=void 0,t.zeroGap={left:0,top:0,right:0,gap:0};var r=function(e){return parseInt(e||\"\",10)||0};t.getGapWidth=function(e){if(void 0===e&&(e=\"margin\"),\"undefined\"==typeof window)return t.zeroGap;var n=function(e){var t=window.getComputedStyle(document.body);\"production\"!==process.env.NODE_ENV&&\"hidden\"===t.overflowY&&console.error(\"react-remove-scroll-bar: cannot calculate scrollbar size because it is removed (overflow:hidden on body\");var n=t[\"padding\"===e?\"paddingLeft\":\"marginLeft\"],o=t[\"padding\"===e?\"paddingTop\":\"marginTop\"],a=t[\"padding\"===e?\"paddingRight\":\"marginRight\"];return[r(n),r(o),r(a)]}(e),o=document.documentElement.clientWidth,a=window.innerWidth;return{left:n[0],top:n[1],right:n[2],gap:Math.max(0,a-o+n[2]-n[0])}}})),Ee=t(se),xe=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.RemoveScrollBar=void 0;var n=Ee.__importStar(r),o=(0,Re.styleSingleton)(),a=function(e,t,r,n){var o=e.left,a=e.top,i=e.right,c=e.gap;return void 0===r&&(r=\"margin\"),\"\\n .\".concat(ee.noScrollbarsClassName,\" {\\n overflow: hidden \").concat(n,\";\\n padding-right: \").concat(c,\"px \").concat(n,\";\\n }\\n body {\\n overflow: hidden \").concat(n,\";\\n overscroll-behavior: contain;\\n \").concat([t&&\"position: relative \".concat(n,\";\"),\"margin\"===r&&\"\\n padding-left: \".concat(o,\"px;\\n padding-top: \").concat(a,\"px;\\n padding-right: \").concat(i,\"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(c,\"px \").concat(n,\";\\n \"),\"padding\"===r&&\"padding-right: \".concat(c,\"px \").concat(n,\";\")].filter(Boolean).join(\"\"),\"\\n }\\n \\n .\").concat(ee.zeroRightClassName,\" {\\n right: \").concat(c,\"px \").concat(n,\";\\n }\\n \\n .\").concat(ee.fullWidthClassName,\" {\\n margin-right: \").concat(c,\"px \").concat(n,\";\\n }\\n \\n .\").concat(ee.zeroRightClassName,\" .\").concat(ee.zeroRightClassName,\" {\\n right: 0 \").concat(n,\";\\n }\\n \\n .\").concat(ee.fullWidthClassName,\" .\").concat(ee.fullWidthClassName,\" {\\n margin-right: 0 \").concat(n,\";\\n }\\n \\n body {\\n \").concat(ee.removedBarSizeVariable,\": \").concat(c,\"px;\\n }\\n\")};t.RemoveScrollBar=function(e){var t=e.noRelative,r=e.noImportant,i=e.gapMode,c=void 0===i?\"margin\":i,u=n.useMemo((function(){return(0,Ce.getGapWidth)(c)}),[c]);return n.createElement(o,{styles:a(u,!t,c,r?\"\":\"!important\")})}})),Te=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.getGapWidth=t.removedBarSizeVariable=t.noScrollbarsClassName=t.fullWidthClassName=t.zeroRightClassName=t.RemoveScrollBar=void 0,Object.defineProperty(t,\"RemoveScrollBar\",{enumerable:!0,get:function(){return xe.RemoveScrollBar}}),Object.defineProperty(t,\"zeroRightClassName\",{enumerable:!0,get:function(){return ee.zeroRightClassName}}),Object.defineProperty(t,\"fullWidthClassName\",{enumerable:!0,get:function(){return ee.fullWidthClassName}}),Object.defineProperty(t,\"noScrollbarsClassName\",{enumerable:!0,get:function(){return ee.noScrollbarsClassName}}),Object.defineProperty(t,\"removedBarSizeVariable\",{enumerable:!0,get:function(){return ee.removedBarSizeVariable}}),Object.defineProperty(t,\"getGapWidth\",{enumerable:!0,get:function(){return Ce.getGapWidth}})})),Me=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.nonPassive=void 0;var r=!1;if(\"undefined\"!=typeof window)try{var n=Object.defineProperty({},\"passive\",{get:function(){return r=!0,!0}});window.addEventListener(\"test\",n,n),window.removeEventListener(\"test\",n,n)}catch(e){r=!1}t.nonPassive=!!r&&{passive:!1}})),ke=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.handleScroll=t.locationCouldBeScrolled=void 0;var r=function(e,t){var r=window.getComputedStyle(e);return\"hidden\"!==r[t]&&!(r.overflowY===r.overflowX&&!function(e){return\"TEXTAREA\"===e.tagName}(e)&&\"visible\"===r[t])};t.locationCouldBeScrolled=function(e,t){var r=t;do{if(\"undefined\"!=typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),n(e,r)){var a=o(e,r);if(a[1]>a[2])return!0}r=r.parentNode}while(r&&r!==document.body);return!1};var n=function(e,t){return\"v\"===e?function(e){return r(e,\"overflowY\")}(t):function(e){return r(e,\"overflowX\")}(t)},o=function(e,t){return\"v\"===e?[(r=t).scrollTop,r.scrollHeight,r.clientHeight]:function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]}(t);var r};t.handleScroll=function(e,t,r,a,i){var c=function(e,t){return\"h\"===e&&\"rtl\"===t?-1:1}(e,window.getComputedStyle(t).direction),u=c*a,l=r.target,f=t.contains(l),s=!1,d=u>0,p=0,y=0;do{var v=o(e,l),h=v[0],b=v[1]-v[2]-c*h;(h||b)&&n(e,l)&&(p+=b,y+=h),l=l.parentNode}while(!f&&l!==document.body||f&&(t.contains(l)||t===l));return(d&&(i&&0===p||!i&&u>p)||!d&&(i&&0===y||!i&&-u>y))&&(s=!0),s}})),Ne=Me,Ie=ke,Be=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.RemoveScrollSideCar=t.getDeltaXY=t.getTouchXY=void 0;var n=$.__importStar(r);t.getTouchXY=function(e){return\"changedTouches\"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]};t.getDeltaXY=function(e){return[e.deltaX,e.deltaY]};var o=function(e){return e&&\"current\"in e?e.current:e},a=function(e){return\"\\n .block-interactivity-\".concat(e,\" {pointer-events: none;}\\n .allow-interactivity-\").concat(e,\" {pointer-events: all;}\\n\")},i=0,c=[];t.RemoveScrollSideCar=function(e){var r=n.useRef([]),u=n.useRef([0,0]),l=n.useRef(),f=n.useState(i++)[0],s=n.useState((function(){return(0,Re.styleSingleton)()}))[0],d=n.useRef(e);n.useEffect((function(){d.current=e}),[e]),n.useEffect((function(){if(e.inert){document.body.classList.add(\"block-interactivity-\".concat(f));var t=$.__spreadArray([e.lockRef.current],(e.shards||[]).map(o),!0).filter(Boolean);return t.forEach((function(e){return e.classList.add(\"allow-interactivity-\".concat(f))})),function(){document.body.classList.remove(\"block-interactivity-\".concat(f)),t.forEach((function(e){return e.classList.remove(\"allow-interactivity-\".concat(f))}))}}}),[e.inert,e.lockRef.current,e.shards]);var p=n.useCallback((function(e,r){if(\"touches\"in e&&2===e.touches.length)return!d.current.allowPinchZoom;var n,o=(0,t.getTouchXY)(e),a=u.current,i=\"deltaX\"in e?e.deltaX:a[0]-o[0],c=\"deltaY\"in e?e.deltaY:a[1]-o[1],f=e.target,s=Math.abs(i)>Math.abs(c)?\"h\":\"v\";if(\"touches\"in e&&\"h\"===s&&\"range\"===f.type)return!1;var p=(0,Ie.locationCouldBeScrolled)(s,f);if(!p)return!0;if(p?n=s:(n=\"v\"===s?\"h\":\"v\",p=(0,Ie.locationCouldBeScrolled)(s,f)),!p)return!1;if(!l.current&&\"changedTouches\"in e&&(i||c)&&(l.current=n),!n)return!0;var y=l.current||n;return(0,Ie.handleScroll)(y,r,e,\"h\"===y?i:c,!0)}),[]),y=n.useCallback((function(e){var n=e;if(c.length&&c[c.length-1]===s){var a=\"deltaY\"in n?(0,t.getDeltaXY)(n):(0,t.getTouchXY)(n),i=r.current.filter((function(e){return e.name===n.type&&e.target===n.target&&(t=e.delta,r=a,t[0]===r[0]&&t[1]===r[1]);var t,r}))[0];if(i&&i.should)n.cancelable&&n.preventDefault();else if(!i){var u=(d.current.shards||[]).map(o).filter(Boolean).filter((function(e){return e.contains(n.target)}));(u.length>0?p(n,u[0]):!d.current.noIsolation)&&n.cancelable&&n.preventDefault()}}}),[]),v=n.useCallback((function(e,t,n,o){var a={name:e,delta:t,target:n,should:o};r.current.push(a),setTimeout((function(){r.current=r.current.filter((function(e){return e!==a}))}),1)}),[]),h=n.useCallback((function(e){u.current=(0,t.getTouchXY)(e),l.current=void 0}),[]),b=n.useCallback((function(r){v(r.type,(0,t.getDeltaXY)(r),r.target,p(r,e.lockRef.current))}),[]),_=n.useCallback((function(r){v(r.type,(0,t.getTouchXY)(r),r.target,p(r,e.lockRef.current))}),[]);n.useEffect((function(){return c.push(s),e.setCallbacks({onScrollCapture:b,onWheelCapture:b,onTouchMoveCapture:_}),document.addEventListener(\"wheel\",y,Ne.nonPassive),document.addEventListener(\"touchmove\",y,Ne.nonPassive),document.addEventListener(\"touchstart\",h,Ne.nonPassive),function(){c=c.filter((function(e){return e!==s})),document.removeEventListener(\"wheel\",y,Ne.nonPassive),document.removeEventListener(\"touchmove\",y,Ne.nonPassive),document.removeEventListener(\"touchstart\",h,Ne.nonPassive)}}),[]);var m=e.removeScrollBar,g=e.inert;return n.createElement(n.Fragment,null,g?n.createElement(s,{styles:a(f)}):null,m?n.createElement(Te.RemoveScrollBar,{gapMode:\"margin\"}):null)}})),Ae=(0,Q.exportSidecar)(re.effectCar,Be.RemoveScrollSideCar),ze=Object.defineProperty({default:Ae},\"__esModule\",{value:!0}),De=ne,We=$.__importStar(r),Ge=$.__importDefault(ze),Ye=We.forwardRef((function(e,t){return We.createElement(De.RemoveScroll,$.__assign({},e,{ref:t,sideCar:Ge.default}))}));Ye.classNames=De.RemoveScroll.classNames;var Xe=Ye,Le=Object.defineProperty({default:Xe},\"__esModule\",{value:!0}),Fe=e((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.RemoveScroll=void 0;var r=$.__importDefault(Le);t.RemoveScroll=r.default})),Ve=9999999;export{Ve as M,Re as a,Fe as e};\n//# sourceMappingURL=contants-c1124f5c.js.map\n","import*as r from\"react\";import{Icon as e}from\"./index.js\";var t=function(t,o){return r.createElement(e,o,r.createElement(\"path\",{fill:\"currentColor\",d:t}))};export{t as c};\n//# sourceMappingURL=createSvgIcon-89a7bcb8.js.map\n","import{css as o}from\"styled-components\";var s=o;export{s as css};\n//# sourceMappingURL=css.js.map\n","var n=function(n,r){var t=null;return function(){for(var u=arguments.length,e=new Array(u),l=0;l * {\\n position: relative;\\n z-index: 2;\\n }\\n\"]))),se=y.div.attrs({\"data-testid\":\"additional-info\"})(_||(_=n([\"\\n display: flex;\\n justify-content: center;\\n margin-top: 0.25rem;\\n color: \",\";\\n font-size: 0.625rem;\\n font-weight: 400;\\n\"])),(function(e){return e.theme.palette.neutralDark})),de=y.div.attrs({\"data-testid\":\"warning-text\"})(N||(N=n([\"\\n margin-top: 0.5rem;\\n font-size: 0.75rem;\\n color: \",\";\\n\"])),(function(e){return e.theme.palette.primary})),ue=y.div.attrs({\"data-testid\":\"order\"})(R||(R=n([\"\\n position: absolute;\\n top: -1rem;\\n font-size: 5rem;\\n font-style: italic;\\n font-weight: bold;\\n z-index: 1;\\n color: \",\";\\n line-height: 1;\\n\\n @media (min-width: \",\") {\\n left: \",\";\\n font-size: 7rem;\\n }\\n\"])),(function(e){return e.theme.palette.neutralLight}),h.md,(function(e){return e.order>1?\"-3.125rem\":\"-2.1875rem\"})),pe=y(oe)(W||(W=n([\"\\n margin-bottom: 1rem;\\n\"]))),fe=y.div(A||(A=n([\"\\n position: absolute;\\n top: -0.375rem;\\n left: 0;\\n z-index: 1;\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n\"]))),ge=y.div(M||(M=n([\"\\n margin-bottom: 1rem;\\n\"]))),he=y.div(O||(O=n([\"\\n position: absolute;\\n top: -0.375rem;\\n left: 0;\\n z-index: 1;\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n\"]))),ye=[\"icon\",\"title\",\"label\",\"highlightedWordIndex\"],ve=[\"icons\"],be=((Z={})[m.SpecialSales.lorealLabel]=1,Z[m.SpecialSales.christmasOffer]=2,Z[m.SpecialSales.summerBlackFriday]=3,Z[m.SpecialSales.blackFriday]=4,Z[m.SpecialSales.dermo]=5,Z[m.SpecialSales.recommendedByDermatologists]=6,Z),Ee=function(n){var i=n.icon,a=n.title,l=n.label,o=void 0===l?\"Black Friday\":l,d=n.highlightedWordIndex,h=void 0===d?0:d,y=e(n,ye);switch(i){case m.SpecialSales.lorealLabel:return r.createElement(s,y);case m.SpecialSales.christmasOffer:return r.createElement(p,y);case m.SpecialSales.summerBlackFriday:return r.createElement(g,t({text:o,highlightedWordIndex:h},y));case m.SpecialSales.blackFriday:return r.createElement(c,t({text:o},y));case m.SpecialSales.dermo:return r.createElement(f,y);case m.SpecialSales.recommendedByDermatologists:return r.createElement(u,t({title:a},y))}},Se=function(n){var i=n.icons,a=e(n,ve);return r.createElement(r.Fragment,null,i.sort((function(e,t){var n,r;return(null!=(n=be[e.icon])?n:100)-(null!=(r=be[t.icon])?r:100)})).map((function(e){return r.createElement(ge,{key:e.icon},r.createElement(Ee,t({},e,a)))})))},xe=((H={})[m.TagAttributes.Action]=v.Styles.primary,H[m.TagAttributes.FreeDelivery]=v.Styles.neutral,H[m.TagAttributes.New]=v.Styles.muted,H[m.TagAttributes.Clearance]=v.Styles.primary,H[m.TagAttributes.Damaged]=v.Styles.muted,H[m.TagAttributes.Returned]=v.Styles.muted,H),we=y(b)(U||(U=n([\"\\n margin: 0 1px 1px 0;\\n\"]))),ze=y.div(V||(V=n([\"\\n position: absolute;\\n bottom: 0;\\n right: 0;\\n left: 0;\\n text-align: center;\\n\"]))),ke=function(e){var t=e.attributes,n=void 0===t?[]:t,i=e.visible;return(void 0===i||i)&&n&&0!==n.length?r.createElement(ze,{\"data-testid\":\"tags-wrapper\"},n.map((function(e){var t=e.attribute,n=e.label;return r.createElement(we,{key:n,tagStyle:xe[t],tagType:v.Types.default,tagSize:v.Sizes.default,className:\"pd-variant-tag-\"+n},n)}))):null},Ie=function(e){var t=e.imageProps,n=e.tags;return r.createElement(a,null,r.createElement(ke,n),r.createElement(l,{image:t,small:!0}))},je=y.div(Y||(Y=n([\"\\n margin-bottom: 0.9375rem;\\n padding-top: 0.3125rem;\\n color: \",\";\\n font-weight: 300;\\n font-size: 1.125rem;\\n\"])),(function(e){return e.theme.palette.basic})),Be=E(q||(q=n([\"\\n margin: 0 !important;\\n font-weight: 300;\\n font-size: 1rem !important;\\n line-height: 1.5rem !important;\\n display: block;\\n color: \",\";\\n\\n @media (min-width: \",\") {\\n font-size: 0.875rem;\\n line-height: 1.1875rem;\\n }\\n\\n \",\":hover & {\\n text-decoration: underline;\\n }\\n\"])),(function(e){return e.theme.palette.neutralDarker}),h.sm,me),Ce=y(S.H2)(G||(G=n([\"\\n \",\";\\n\"])),Be),Pe=y(S.H3)(J||(J=n([\"\\n \",\";\\n font-weight: 700;\\n\"])),Be),De=y.span(K||(K=n([\"\\n display: block;\\n font-size: 0.75rem;\\n line-height: 1rem;\\n color: \",\";\\n\\n @media (min-width: \",\") {\\n line-height: 1.1875rem;\\n }\\n\\n \",\":hover & {\\n text-decoration: underline;\\n }\\n\"])),(function(e){return e.theme.palette.neutralDark}),h.sm,me),Te=y.p(Q||(Q=n([\"\\n clear: left;\\n font-size: 0.75rem;\\n color: \",\";\\n line-height: 1rem;\\n margin: 0;\\n\"])),(function(e){return e.theme.palette.neutralDarker})),Fe=function(e){var t=e.description,n=e.brandName,i=e.name,a=e.subName,l=e.variantName;return r.createElement(r.Fragment,null,t&&r.createElement(je,null,t),n&&r.createElement(Ce,null,n),i&&r.createElement(Pe,null,i),a&&r.createElement(De,null,a),l&&r.createElement(Te,null,l))},Le=y.div(X||(X=n([\"\\n display: flex;\\n justify-content: center;\\n align-items: baseline;\\n padding-top: 0.5rem;\\n\"]))),_e=y(x)($||($=n([\"\\n position: relative;\\n font-weight: 400;\\n margin-right: 0.375rem;\\n color: \",\";\\n :after {\\n position: absolute;\\n left: 0;\\n top: 50%;\\n content: '';\\n width: 100%;\\n border-bottom: solid 1px \",\";\\n z-index: 1;\\n }\\n\"])),(function(e){return e.theme.palette.neutralDark}),(function(e){return e.theme.palette.neutralDark})),Ne=y(x)(ee||(ee=n([\"\\n position: relative;\\n font-weight: 700;\\n color: \",\";\\n\"])),(function(e){return e.theme.palette.neutralDarker})),Re=y.span(te||(te=n([\"\\n padding: 0 0.25rem;\\n font-weight: 700;\\n color: \",\";\\n display: \",\";\\n\"])),(function(e){return e.theme.palette.neutralDarker}),(function(e){return e.isColumnLayout?\"none\":\"block\"})),We=y.div(ne||(ne=n([\"\\n line-height: \",\"rem;\\n display: flex;\\n flex-direction: \",\";\\n justify-content: space-evenly;\\n align-items: center;\\n\"])),(function(e){return e.isColumnLayout?\"1.5\":\"1\"}),(function(e){return e.isColumnLayout?\"column\":\"row\"})),Ae=function(e){var n=e.price,i=e.originalPrice,a=e.dualPrice,l=e.dualOriginalPrice,o=Boolean(l);return r.createElement(Le,{\"data-testid\":\"product-price\"},Boolean(i)&&r.createElement(We,{isColumnLayout:o},l&&r.createElement(r.Fragment,null,r.createElement(_e,t({},l,{priceSize:\"0.75rem\",currencySize:\"0.75rem\",prefixSize:\"0.75rem\"})),r.createElement(Re,{isColumnLayout:o},\"/\")),r.createElement(_e,t({},i,{priceSize:\"0.75rem\",currencySize:\"0.75rem\",prefixSize:\"0.75rem\"}))),r.createElement(We,{isColumnLayout:o},a&&r.createElement(r.Fragment,null,r.createElement(Ne,t({},a,{priceSize:\"1rem\",currencySize:\"0.875rem\",prefixSize:\"0.875rem\"})),r.createElement(Re,{isColumnLayout:o},\"/\")),r.createElement(Ne,t({},n,{priceSize:\"1rem\",currencySize:\"0.875rem\",prefixSize:\"0.875rem\"}))))},Me=y(z)(re||(re=n([\"\\n margin-top: 0.5rem;\\n\"]))),Oe=function(e){var t=e.inSectionOfType,n=e.productId,i=e.score;return r.createElement(Me,{ratingId:(t||\"\")+\"reviewItem\"+n,size:14,rating:i,background:w.neutralLight,foreground:w.basic})},Ze=j.div.attrs({\"data-testid\":\"sponsored-label\"}).withConfig({displayName:\"styled__StyledSponsoredLabel\",componentId:\"sc-1nyfhnp-0\"})([\"margin-top:0.5rem;color:\",\";font-size:0.75rem;font-weight:400;\"],(function(e){return e.theme.palette.neutralDark})),He=j(B).attrs({\"data-testid\":\"sponsored-label-tooltip\"}).withConfig({displayName:\"styled__SponsoredLabelTooltip\",componentId:\"sc-1nyfhnp-1\"})([\"margin-top:-0.125rem;margin-right:0.25rem;vertical-align:middle;\"]),Ue=j.div.withConfig({displayName:\"styled__SponsoredLabelInfoText\",componentId:\"sc-1nyfhnp-2\"})([\"padding:0.5rem;min-width:6rem;@media (min-width:\",\"){min-width:13rem;}\"],h.lg),Ve=function(e){var t=e.label,n=e.tooltip;return r.createElement(Ze,{onClick:function(e){e.preventDefault(),e.stopPropagation()}},n&&r.createElement(He,{wrapText:!0,position:I.Position.topRight,content:r.createElement(Ue,null,n)},r.createElement(k,{color:w.neutral,height:\"14px\",width:\"14px\"})),t)},Ye=function(e){var n=e.price,i=e.unitAmount,a=e.unit;return r.createElement(se,null,r.createElement(x,t({priceSize:\"0.625rem\",currencySize:\"0.625rem\",prefixSize:\"0.625rem\"},n)),\" / \"+i+\" \"+a)},qe=y(P)(ie||(ie=n([\"\\n position: relative;\\n text-align: center;\\n padding: 0 0.3125rem;\\n\"]))),Ge=y(C)(ae||(ae=n([\"\\n position: absolute;\\n top: -1.1875rem;\\n right: 0;\\n width: 2.5rem;\\n height: 2.5rem;\\n align-items: center;\\n display: flex;\\n justify-content: center;\\n transition: opacity 350ms ease;\\n z-index: 1;\\n\\n @media (min-width: \",\") and (pointer: fine) {\\n opacity: \",\";\\n\\n \",\":hover & {\\n opacity: 1;\\n }\\n }\\n\"])),h.lg,(function(e){var t=e.wishlisted;return void 0!==t&&t?1:0}),qe),Je=[\"onClick\"],Ke=function(n){var i=n.onClick,a=e(n,Je),l=r.useCallback((function(e){i(),e.preventDefault(),e.stopPropagation()}),[i]);return r.createElement(Ge,t({},a,{onClick:l,size:\"16px\"}))},Qe=function(e){var n=e.product,a=e.imageProps,l=e.additionalInfo,o=void 0===l?\"\":l,m=e.appendComponent,c=void 0===m?null:m,s=e.buyButton,d=void 0===s?null:s,u=e.href,p=void 0===u?\"\":u,f=e.anchorProps,g=void 0===f?null:f,h=e.onClick,y=e.order,v=void 0===y?0:y,b=e.originalPrice,E=void 0===b?null:b,S=e.dualPrice,x=void 0===S?null:S,w=e.unitPrice,z=void 0===w?null:w,k=e.price,I=void 0===k?null:k,j=e.ratings,B=void 0===j?null:j,C=e.tags,P=void 0===C?null:C,D=e.specialSales,T=e.wishlist,F=void 0===T?null:T,L=e.warningText,_=void 0===L?\"\":L,N=e.aboveBuyButton,R=void 0===N?null:N,W=e.specialSaleLabelText,A=e.sponsoredLabel,M=void 0===A?null:A,O=e.sponsoredLabelInfoText,Z=void 0===O?null:O,H=e.dualOriginalPrice,U=e.productIcons;return r.createElement(r.Fragment,null,r.createElement(me,t({},g,{href:p,onClick:h,hasInteraction:Boolean(h)||Boolean(p)}),F&&r.createElement(Ke,F),(null==D?void 0:D.length)>0&&r.createElement(fe,null,r.createElement(pe,{attributes:D,labelText:W})),(null==U?void 0:U.length)>0&&r.createElement(he,null,r.createElement(Se,{icons:U})),r.createElement(Ie,{imageProps:a,tags:P}),r.createElement(ce,null,v>0&&r.createElement(ue,{order:v},v),r.createElement(Fe,n),B&&r.createElement(Oe,t({},B,{productId:n.id})),I&&r.createElement(Ae,{price:I,originalPrice:E,dualPrice:x,dualOriginalPrice:H}),o&&r.createElement(se,null,o),z&&r.createElement(Ye,z),_&&r.createElement(de,null,_),M&&r.createElement(Ve,{label:M,tooltip:Z})),R),d&&r.createElement(i,d),c)},Xe=j.div.withConfig({displayName:\"BlackFridayDecoration__Wrapper\",componentId:\"sc-1ry086k-0\"})([\"width:1.5rem;height:1.5rem;box-sizing:content-box !important;border-right:0.375rem solid white;border-left:0.375rem solid white;\"]),$e=function(){return r.createElement(Xe,null,r.createElement(D,{viewBox:\"0 0 64 64\",width:\"1.5rem\",height:\"1.5rem\"},r.createElement(\"defs\",null,r.createElement(\"style\",null,\".b{fill:#fff;}.b,.c{fill - rule:evenodd;}\")),r.createElement(\"path\",{className:\"c\",d:\"M32,0c17.67,0,32,14.33,32,32s-14.33,32-32,32S0,49.67,0,32,14.33,0,32,0Z\"}),r.createElement(\"path\",{className:\"b\",d:\"M45.88,15.99L15.35,45.38l2.74,2.64,30.53-29.39-2.74-2.64Zm-16.94,8.25c0-4.26-3.6-7.73-8.03-7.73s-8.03,3.47-8.03,7.73,3.6,7.73,8.03,7.73,8.03-3.47,8.03-7.73Zm-12.19,0c0-2.21,1.87-4.01,4.16-4.01s4.16,1.8,4.16,4.01-1.87,4.01-4.16,4.01-4.16-1.8-4.16-4.01Zm26.34,7.77c-4.43,0-8.03,3.47-8.03,7.73s3.6,7.73,8.03,7.73,8.03-3.47,8.03-7.73-3.6-7.73-8.03-7.73Zm0,11.74c-2.29,0-4.16-1.8-4.16-4.01s1.87-4,4.16-4,4.16,1.8,4.16,4-1.86,4.01-4.16,4.01Z\"})))},et=j.div.withConfig({displayName:\"SummerDecoration__Wrapper\",componentId:\"sc-mh29o6-0\"})([\"width:1.5rem;height:1.5rem;box-sizing:content-box !important;border-right:0.375rem solid white;border-left:0.375rem solid white;\"]),tt=function(){return r.createElement(et,null,r.createElement(D,{viewBox:\"0 0 21.7 21.7\",width:\"1.5rem\",height:\"1.5rem\"},r.createElement(\"path\",{d:\"M10.8.8c5.5 0 10 4.5 10 10s-4.5 10-10 10-10-4.5-10-10 4.5-10 10-10z\",fillRule:\"evenodd\",clipRule:\"evenodd\"}),r.createElement(\"path\",{d:\"M15.2 5.8 5.6 15l.9.8L16 6.6l-.8-.8zM9.9 8.4C9.9 7.1 8.7 6 7.4 6 6 6 4.9 7.1 4.9 8.4c0 1.3 1.1 2.4 2.5 2.4 1.3 0 2.5-1.1 2.5-2.4zm-3.8 0c0-.7.6-1.3 1.3-1.3.7 0 1.3.6 1.3 1.3s-.6 1.3-1.3 1.3c-.8 0-1.3-.6-1.3-1.3zm8.2 2.4c-1.4 0-2.5 1.1-2.5 2.4 0 1.3 1.1 2.4 2.5 2.4s2.5-1.1 2.5-2.4c0-1.3-1.1-2.4-2.5-2.4zm0 3.7c-.7 0-1.3-.6-1.3-1.3 0-.7.6-1.3 1.3-1.3.7 0 1.3.6 1.3 1.3 0 .7-.6 1.3-1.3 1.3z\",fillRule:\"evenodd\",clipRule:\"evenodd\",fill:\"#f0ff00\"})))},nt=j.div.withConfig({displayName:\"styled__UnderlineWrapper\",componentId:\"sc-1b3ggfp-0\"})([\"position:relative;margin-top:1rem;margin-left:auto;margin-right:auto;padding-top:0.75rem;width:75%;z-index:2;border-top:1px dashed \",\";\"],T.palette.neutralLight),rt=j.span.withConfig({displayName:\"styled__DiscountValue\",componentId:\"sc-1b3ggfp-1\"})([\"font-weight:bold;font-size:1rem;color:\",\";\"],T.palette.primary),it=j.div.withConfig({displayName:\"styled__MessageWrapper\",componentId:\"sc-1b3ggfp-2\"})([\"text-align:center;font-size:0.875rem;font-weight:300;margin-top:0.35rem;color:\",\";\"],T.palette.neutralDark),at=j.div.withConfig({displayName:\"styled__DecorationWrapper\",componentId:\"sc-1b3ggfp-3\"})([\"position:absolute;top:0;left:0;transform:translateY(-50%);width:100%;display:flex;justify-content:center;\"]),lt={summerBlackFriday:r.createElement(tt,null),blackFriday:r.createElement($e,null)},ot=[\"productProps\",\"columns\"],mt={xs:6,sm:4,md:3},ct=r.forwardRef((function(n,i){var a=n.productProps,l=n.columns,c=e(n,ot),s={};l&&(s=t({},mt,l));var d=a.state===m.State.product?a.tileProps:{};return r.createElement(qe,t({\"data-testid\":\"product-container\",ref:i},s,c,d),a.state===m.State.placeholder?r.createElement(o,a):r.createElement(Qe,a))}));ct.BuyButton=i,ct.Discount=function(e){var t=e.discountAmount,n=e.discountDescription,i=e.decoration;return r.createElement(nt,null,i&&r.createElement(at,null,\"string\"==typeof i?lt[i]:i),r.createElement(it,null,t&&r.createElement(r.Fragment,null,r.createElement(rt,null,t),\" \"),n))},ct.ProductIcons=Se,ct.ProductImage=Ie,ct.Ratings=Oe,ct.SpecialSalesIcon=oe,ct.Wishlist=Ke;export{ct as P,oe as S,he as a,Se as b,Ae as c};\n//# sourceMappingURL=index-cc00cee0.js.map\n","import{b as e,a as n,_ as t}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as o from\"react\";import{TextAlign as i}from\"./TextAlign.js\";import{u as r,D as l}from\"./index-865c84cb.js\";import{StyledDropdown as c}from\"./StyledDropdown.js\";import{Colors as a}from\"./Colors.js\";import{CheckIcon as d}from\"./CheckIcon.js\";import{n as s}from\"./utils-ec9be121.js\";import{breakpoints as u}from\"./breakpoints.js\";import{styled as p}from\"./styled.js\";import{HorizontalChevron as f}from\"./HorizontalChevron.js\";var m,h,g,v,E,C,b,x,N,O,k,S,w=p.div(m||(m=e([\"\\n display: inline-flex;\\n width: 100%;\\n justify-content: space-between;\\n align-items: center;\\n border-width: 1px;\\n border-style: solid;\\n border-color: \",\";\\n border-bottom: \",\";\\n background-color: \",\";\\n padding-bottom: \",\";\\n outline: none;\\n cursor: pointer;\\n\"])),(function(e){return e.isDropdownOpen?e.theme.palette.neutralLight:e.theme.palette.neutralLighter}),(function(e){return e.isDropdownOpen&&\"none\"}),(function(e){return e.theme.palette.neutralLighter}),(function(e){return e.isDropdownOpen?\"1px\":0})),A=p.div(h||(h=e([\"\\n display: flex;\\n align-items: center;\\n padding: 0.75rem 1rem 0.75rem 0rem;\\n border: none;\\n background: none;\\n\"]))),y=p(A)(g||(g=e([\"\\n visibility: hidden;\\n width: \",\";\\n height: \",\";\\n box-sizing: content-box !important;\\n\"])),\"14px\",\"14px\"),I=p.div(v||(v=e([\"\\n text-align: \",\";\\n color: \",\";\\n min-width: 2.125rem;\\n flex: 1;\\n padding: 0.75rem 1rem;\\n padding-left: \",\";\\n\\n /* IE does not work properly with flex 1 so no flex for IE */\\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\\n flex: none;\\n }\\n\"])),(function(e){return e.textAlign}),(function(e){return e.theme.palette.basic}),(function(e){var n=e.showSelectedCheckIcon,t=e.textAlign;return n&&t===i.left?\"0\":\"1rem\"})),M=p.select(E||(E=e([\"\\n width: 100%;\\n height: 100%;\\n position: absolute;\\n opacity: 0;\\n z-index: 2;\\n top: 0;\\n left: 0;\\n\\n @media all and (min-width: \",\") {\\n display: none;\\n }\\n\"])),u.md),D=p.option(C||(C=e([\"\\n font-size: 1rem;\\n\"]))),P=p.div.attrs({\"data-testid\":\"dropdown-option\"})(b||(b=e([\"\\n /* if text align = left it shrinks content into smallest one in IE11 */\\n display: \",\";\\n white-space: nowrap;\\n justify-content: space-between;\\n background-color: \",\";\\n color: \",\";\\n height: 1.75rem;\\n cursor: pointer;\\n\"])),(function(e){return e.textAlign===i.left?\"block\":\"flex\"}),(function(e){var n=e.theme;return e.focused?n.palette.neutralLighter:n.palette.basicInverse}),(function(e){return e.theme.palette.basic})),R=p(I)(x||(x=e([\"\\n height: 100%;\\n padding: 0.25rem 1rem;\\n padding-left: \",\";\\n\"])),(function(e){var n=e.showSelectedCheckIcon,t=e.textAlign;return n&&t===i.left?\"0\":\"1rem\"})),U=p.div(N||(N=e([\"\\n position: relative;\\n width: 100%;\\n\"]))),_=p.div(O||(O=e([\"\\n display: inline-block;\\n text-align: center;\\n vertical-align: middle;\\n width: \",\";\\n margin: 0 0.5rem;\\n\"])),\"16px\"),B=p(_)(k||(k=e([\"\\n height: 100%;\\n box-sizing: content-box !important;\\n\"]))),j=[\"option\",\"isSelected\",\"isFocused\",\"showSelectedCheckIcon\",\"textAlign\",\"onClick\",\"onFocus\"],F=function(e){var r=e.option,l=e.isSelected,c=void 0!==l&&l,u=e.isFocused,p=void 0!==u&&u,f=e.showSelectedCheckIcon,m=void 0!==f&&f,h=e.textAlign,g=void 0===h?i.left:h,v=e.onClick,E=void 0===v?s:v,C=e.onFocus,b=void 0===C?s:C,x=n(e,j);return o.createElement(P,t({key:r.id,textAlign:g,onClick:E,focused:p,onMouseEnter:b,onFocus:b},x),o.createElement(R,{textAlign:g,showSelectedCheckIcon:m},m&&o.createElement(_,null,c&&o.createElement(d,{color:a.basic,width:\"16px\",height:\"16px\"})),r.label),g!==i.left&&o.createElement(y,null))},W=function(e){var n=e.OptionContainerWrapper,t=e.options,i=e.hideSelected,c=e.renderOption,a=e.loseFocusOnLeave,d=void 0===a||a,s=r(),u=s.selected,p=s.focused,f=s.focusNewOption,m=o.useCallback((function(){d&&f(null)}),[f,d]);return o.createElement(n,{onMouseLeave:m},t.map((function(e){return(!i||e.id!==u.id)&&o.createElement(l.Option,{option:e,key:e.id},c({option:e,isSelected:u&&e.id===u.id,isFocused:p&&e.id===p.id}))})))},L=function(e){var n=e.options,t=r(),i=t.selected,l=t.selectNewOption,c=o.useCallback((function(e){var t=e.target.value,o=n.find((function(e){return String(e.id)===t}));o&&l(o)}),[n,l]);return o.createElement(M,{onChange:c,defaultValue:String(i.id)},n.map((function(e){var n=e.id,t=e.label;return o.createElement(D,{key:n,value:n},t)})))};!function(e){e[e.ENTER=13]=\"ENTER\",e[e.SPACE=32]=\"SPACE\",e[e.UP=38]=\"UP\",e[e.DOWN=40]=\"DOWN\",e[e.NUMBER_ZERO=48]=\"NUMBER_ZERO\",e[e.NUMBER_NINE=57]=\"NUMBER_NINE\",e[e.NUMPAD_ZERO=96]=\"NUMPAD_ZERO\",e[e.NUMPAD_NINE=105]=\"NUMPAD_NINE\",e[e.BACKSPACE=8]=\"BACKSPACE\",e[e.ESCAPE=27]=\"ESCAPE\"}(S||(S={}));var Z=function(e,n,t){return e.find((function(e){return String(e.label).startsWith(n)}))||!t&&e.find((function(e){return String(e.label).includes(n)}))},z=function(e){return e>=S.NUMPAD_ZERO&&e<=S.NUMPAD_NINE},K=function(e,n){var t=void 0===n?{}:n,i=t.keyNavigation,l=void 0!==i&&i,c=t.findOptionByNumberKeys,a=void 0!==c&&c,d=t.selectOptionByNumbersWhenClosed,s=void 0!==d&&d,u=t.findOnlyByPrefix,p=void 0!==u&&u,f=r(),m=f.focused,h=f.toggleMenu,g=f.isMenuOpen,v=f.focusNewOption,E=f.selectNewOption,C=o.useRef(\"\");return o.useEffect((function(){C.current=\"\"}),[g]),o.useCallback((function(n){var t=n.keyCode;if(l&&t)if(t===S.ENTER||t===S.SPACE)n.preventDefault(),g&&m&&m.id&&E(m),h();else if(t===S.UP||t===S.DOWN)n.preventDefault(),function(e,n,t,o){if(void 0===o&&(o=1),n){var i=e.findIndex((function(e){return e.id===n.id}))+o;i>=0&&i0?t(e[0]):o<0&&t(e[e.length-1])}(e,m,v,t===S.DOWN?1:-1),C.current=\"\";else if(a&&function(e){return e>=S.NUMBER_ZERO&&e<=S.NUMBER_NINE||z(e)}(t)){var o=function(e){var n=e;return z(n)&&(n-=S.NUMBER_ZERO),String.fromCharCode(n)}(t),i=C.current+o,r=Z(e,i,p);r&&(g?v(r):s&&E(r),C.current=i)}else if(C.current&&t===S.BACKSPACE){var c=C.current;c=c.slice(0,c.length-1);var d=Z(e,c,p);d&&v(d),C.current=c}else t===S.ESCAPE&&g&&h()}),[l,a,s,g,m,h,e,E,v,p])},T=[\"toggleMenu\",\"isMenuOpen\",\"selected\",\"showSelectedCheckIcon\",\"textAlign\",\"options\",\"keyNavigationConfig\"],H=function(e){var i=e.toggleMenu,r=e.isMenuOpen,l=e.selected,c=e.showSelectedCheckIcon,d=e.textAlign,s=e.options,u=e.keyNavigationConfig,p=void 0===u?{}:u,m=n(e,T),h=K(s,p);return o.createElement(w,t({role:\"combobox\",\"data-testid\":\"selected-value\",\"aria-label\":\"\"+l.label,onClick:i,isDropdownOpen:r,onKeyDown:h,tabIndex:0},m),o.createElement(I,{textAlign:d,showSelectedCheckIcon:c},c&&o.createElement(B,null),l.label),o.createElement(A,null,o.createElement(f,{isOpen:r,color:a.basic,size:\"14px\"})))},V=[\"options\",\"handleOptionSelect\",\"showSelectedCheckIcon\",\"hideSelected\",\"keyNavigationConfig\",\"currentOption\",\"textAlign\",\"renderSelect\",\"renderOption\",\"optionContainer\"],q=function(e){var r=e.options,a=e.handleOptionSelect,d=void 0===a?function(){return null}:a,s=e.showSelectedCheckIcon,u=void 0!==s&&s,p=e.hideSelected,f=void 0!==p&&p,m=e.keyNavigationConfig,h=e.currentOption,g=void 0===h?null:h,v=e.textAlign,E=void 0===v?i.left:v,C=e.renderSelect,b=void 0===C?function(e){return o.createElement(H,t({},e,{textAlign:E,showSelectedCheckIcon:u,options:r,keyNavigationConfig:m}))}:C,x=e.renderOption,N=void 0===x?function(e){return o.createElement(F,t({},e,{textAlign:E,showSelectedCheckIcon:u}))}:x,O=e.optionContainer,k=void 0===O?c:O,S=n(e,V);return o.createElement(l,{onOptionChange:d,hideMenuOnClick:!0,defaultOption:g||r[0]},o.createElement(U,S,o.createElement(l.Select,null,b),o.createElement(l.Content,null,o.createElement(W,{renderOption:N,OptionContainerWrapper:k,options:r,hideSelected:f,loseFocusOnLeave:!m})),o.createElement(L,{options:r})))};export{_ as C,R as D,q as T,H as a,F as b,K as u};\n//# sourceMappingURL=index-f865d2ff.js.map\n","import{ThemeContext as e}from\"styled-components\";var o=e;export{o as ThemeContext};\n//# sourceMappingURL=ThemeContext.js.map\n","import{a as e,_ as t}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as o from\"react\";import{ThemeContext as r}from\"./ThemeContext.js\";import\"styled-components\";var i=[\"color\",\"children\",\"innerRef\",\"height\",\"width\",\"viewBox\"],n=function(n){var l=n.color,p=n.children,h=n.innerRef,a=n.height,m=void 0===a?\"24px\":a,s=n.width,c=void 0===s?\"24px\":s,v=n.viewBox,w=void 0===v?\"0 0 64 64\":v,d=e(n,i),x=o.useContext(r);return o.createElement(\"svg\",t({xmlns:\"http://www.w3.org/2000/svg\",viewBox:w,height:m,width:c,color:l?x.palette[l]:x.palette.primary,ref:h},d),p)};export{n as Icon};\n//# sourceMappingURL=index.js.map\n","import{keyframes as e}from\"styled-components\";var o=e;export{o as keyframes};\n//# sourceMappingURL=keyframes.js.map\n","var x=[\"xs\",\"sm\",\"md\",\"lg\",\"xl\"];export{x as Breakpoints};\n//# sourceMappingURL=model.js.map\n","import{b as n}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import{css as e}from\"./css.js\";import{styled as r}from\"./styled.js\";import{Breakpoints as t}from\"./model.js\";import{theme as i}from\"./theme.js\";var o,m,f=t.map((function(n){return n+\"Offset\"})),u=e(o||(o=n([\"\\n background-clip: content-box;\\n background-color: \",\";\\n min-height: 2rem;\\n margin-top: 0.5rem;\\n margin-bottom: 0.5rem;\\n\"])),i.palette.primary),d=r.div(m||(m=n([\"\\n \",\";\\n\\n box-sizing: border-box;\\n flex: 0 0 auto;\\n padding-right: \",\"rem;\\n padding-left: \",\"rem;\\n\\n \",\"\\n\\n \",\"\\n\\n \",\"\\n\"])),(function(n){return n.debug?u:\"\"}),(function(n){return n.theme.grid.gutterWidth/2}),(function(n){return n.theme.grid.gutterWidth/2}),(function(n){return n.reverse&&\"flex-direction: column-reverse;\"}),(function(n){return Object.keys(n).filter((function(n){return~t.indexOf(n)})).sort((function(n,e){return t.indexOf(n)-t.indexOf(e)})).map((function(e){return n.theme.grid.media[e]((r=n[e],t=n.theme.grid.gridSize,Number.isInteger(r)?\"\\n flex-basis: \"+100/t*r+\"%;\\n max-width: \"+100/t*r+\"%;\\n display: block;\\n \":r?\"\\n flex-grow: 1;\\n flex-basis: 0;\\n max-width: 100%;\\n display: block;\\n \":\"display: none;\"));var r,t}))}),(function(n){return function(n){return Object.keys(n).filter((function(n){return~f.indexOf(n)})).map((function(e){return n.theme.grid.media[e.replace(/Offset$/,\"\")](\"margin-left: \"+100/n.theme.grid.gridSize*n[e]+\"%;\")}))}(n)}));export{d as S};\n//# sourceMappingURL=styled-fd5dd143.js.map\n","import*as o from\"styled-components\";var t=o.default;export{t as styled};\n//# sourceMappingURL=styled.js.map\n","var e={xs:0,sm:36,md:48,lg:62,xl:75,xxl:90,xxxl:120},n={palette:{primary:\"#dc0069\",primaryLight:\"#dc0069\",primaryLighter:\"#dc0069\",primaryDark:\"#b30056\",primaryDarker:\"#b30056\",secondary:\"#c2185b\",secondaryLight:\"#e91e63\",secondaryLighter:\"#f06292\",secondaryDark:\"#f8bbd0\",secondaryDarker:\"#c2e2fb\",danger:\"#cc1315\",dangerLight:\"#f44336\",dangerLighter:\"#f8877f\",dangerDark:\"#ffcdd2\",dangerDarker:\"#c2e2fb\",alert:\"#CC8800\",alertLight:\"#ffc107\",alertLighter:\"#ffd761\",alertDark:\"#ffecb3\",alertDarker:\"#c2e2fb\",success:\"#008700\",successLight:\"#78C878\",successLighter:\"#78C878\",successDark:\"#008700\",successDarker:\"#008700\",neutral:\"#bfbfbf\",neutralLight:\"#e6e6e6\",neutralLighter:\"#f5f5f5\",neutralDark:\"#808080\",neutralDarker:\"#404040\",neutralAlt:\"#e8e8e8\",basic:\"#000000\",basicInverse:\"#ffffff\",transparent:\"transparent\"},fonts:{primary:\"Roboto, Helvetica Neue, Arial, Helvetica, sans-serif\",pre:\"Consolas, Liberation Mono, Menlo, Courier, monospace\",quote:\"Georgia, serif\"},fontBaseSize:16,breakpoints:e,grid:{gridSize:12,gutterWidth:1.875,outerMargin:.9375,mediaQuery:\"only screen\",container:{sm:33.75,md:45,lg:60,xl:71.25},breakpoints:e,media:Object.keys(e).reduce((function(n,t){var i=e[t];return n[t]=function(e){return\"\\n @media only screen \"+(\"xs\"!==t?\"and (min-width: \"+i+\"em)\":\"\")+\" {\\n \"+e+\"\\n }\\n \"},n}),{})},modalSizes:{small:300,default:500,large:800,s400:400,s600:600,s700:700,s900:900,s1000:1e3,s1100:1100,s1200:1200},typography:{titleDisplay:\"\\n font-family: 'Roboto';\\n font-size: 1.5rem;\\n font-weight: 500;\\n line-height: 2rem;\\n letter-spacing: 0;\\n\\n @media (min-width: \"+e.md+\"em) {\\n font-size: 2rem;\\n line-height: 2.25rem;\\n }\\n \",titleLarge:\"\\n font-family: 'Roboto';\\n font-size: 1.25rem;\\n font-weight: 500;\\n line-height: 1.5rem;\\n letter-spacing: 0;\\n\\n @media (min-width: \"+e.md+\"em) {\\n font-size: 1.5rem;\\n line-height: 2rem;\\n }\\n \",titleMedium:\"\\n font-family: 'Roboto';\\n font-size: 1rem;\\n font-weight: 500;\\n line-height: 1.25rem;\\n letter-spacing: 0;\\n\\n @media (min-width: \"+e.md+\"em) {\\n font-size: 1.25rem;\\n line-height: 1.5rem;\\n }\\n \",titleSmall:\"\\n font-family: 'Roboto';\\n font-size: 1rem;\\n font-weight: 500;\\n line-height: 1.25rem;\\n letter-spacing: 0;\\n \",bodyLarge:\"\\n font-family: 'Roboto';\\n font-size: 1rem;\\n font-weight: 400;\\n line-height: 1.75rem;\\n letter-spacing: 0;\\n \",bodyRegular:\"\\n font-family: 'Roboto';\\n font-size: 0.875rem;\\n font-weight: 400;\\n line-height: 1.5rem;\\n letter-spacing: 0;\\n \",bodySmall:\"\\n font-family: 'Roboto';\\n font-size: 0.75rem;\\n font-weight: 400;\\n line-height: 1.25rem;\\n letter-spacing: 0;\\n \",labelLarge:\"\\n font-family: 'Roboto';\\n font-size: 1rem;\\n font-weight: 500;\\n line-height: 1.25rem;\\n letter-spacing: 0;\\n \",labelLarge400:\"\\n font-family: 'Roboto';\\n font-size: 1rem;\\n font-weight: 400;\\n line-height: 1.25rem;\\n letter-spacing: 0;\\n \",labelRegular:\"\\n font-family: 'Roboto';\\n font-size: 0.875rem;\\n font-weight: 500;\\n line-height: 1.25rem;\\n letter-spacing: 0;\\n \",labelRegular400:\"\\n font-family: 'Roboto';\\n font-size: 0.875rem;\\n font-weight: 400;\\n line-height: 1.25rem;\\n letter-spacing: 0;\\n \",labelSmall:\"\\n font-family: 'Roboto';\\n font-size: 0.75rem;\\n font-weight: 500;\\n line-height: 1rem;\\n letter-spacing: 0;\\n \",labelSmall400:\"\\n font-family: 'Roboto';\\n font-size: 0.75rem;\\n font-weight: 400;\\n line-height: 1rem;\\n letter-spacing: 0;\\n \"}};export{n as theme};\n//# sourceMappingURL=theme.js.map\n","import{useRef as e,useCallback as n,useState as r,useEffect as t}from\"react\";import{theme as i}from\"./theme.js\";import{debounce as o}from\"./debounce.js\";var u=[\"xl\",\"lg\",\"md\",\"sm\",\"xs\"];function c(e){return!(!e||\"object\"!=typeof e||0===Object.keys(e).length)&&Object.keys(e).every((function(e){return u.includes(e)}))}function f(c,f){var d=e(c),s=e(f),m=n((function(){if(\"undefined\"==typeof window)return s.current;var e=Object.keys(d.current);if(0!==e.length){var n=u.filter((function(n){return e.includes(n)})).find((function(e){return window.matchMedia(\"(min-width: \"+i.breakpoints[e]+\"em)\").matches}));return n?d.current[n]:void 0}}),[]),a=r((function(){return m()})),v=a[0],w=a[1];return t((function(){var e=o((function(){return w(m())}),30);return window.addEventListener(\"resize\",e),function(){window.removeEventListener(\"resize\",e)}}),[m]),v}export{c as isBreakpointValue,f as useBreakpointValue};\n//# sourceMappingURL=useBreakpointValue.js.map\n","import{useRef as r,useEffect as n}from\"react\";function t(t,o){void 0===o&&(o=null);var u=r(o);return n((function(){u.current=t}),[t]),u.current}export{t as usePrevious};\n//# sourceMappingURL=usePrevious.js.map\n","var n=function(){return null};export{n};\n//# sourceMappingURL=utils-ec9be121.js.map\n","import*as t from\"react\";import{useRef as i,useEffect as a}from\"react\";function e(t){var e=i();return a((function(){e.current=t}),[t]),e.current}var n=function(i,a,e){var n=t.useRef([]),r=t.useRef([]),l=t.useRef(!1);return function(t){n.current.includes(t.id)||(r.current.push(t),n.current.push(t.id),l.current||(l.current=!0,setTimeout((function(){i(r.current,e),r.current=[],l.current=!1}),a)))}};function r(){return r=Object.assign?Object.assign.bind():function(t){for(var i=1;i=0||(n[a]=t[a]);return n}(h,u),c=Object.values(o),d=c.find((function(t){return!0===t.default}))||o.basic,p=o.basic,f=function(t,i,a){return t.length>1?t.map((function(t){var e=\"\";return t.width&&(e=t.width+\"w\"),t.x&&(e=t.x+\"x\"),t.w&&(e=t.w+\"w\"),e?l(t.path,i,a)+\" \"+e:null})).filter(Boolean).join(\", \"):null}(c,i,t.src);return r({alt:t.alt,src:l(d.path,i,t.src),sizes:null==s?void 0:s.join(\", \"),isVideo:t.isVideo},f&&{srcSet:f},p.width&&{width:\"\"+p.width},p.height&&{height:\"\"+p.height})};export{h as getImageAttributes,n as useFunctionInBulk,e as usePrevious};\n//# sourceMappingURL=notino-react-web-utils.es5.js.map\n","var e,n,t;!function(e){e.available=\"true\",e.hidden=\"hidden\",e.notAvailable=\"false\",e.timeout=\"timeout\"}(e||(e={})),function(e){e.active=\"active\",e.inactive=\"inactive\",e.available=\"available\",e.notAvailable=\"false\"}(n||(n={})),function(e){e.cart=\"Cart\",e.clickAndCollect=\"ClickAndCollect\",e.giftcard=\"GiftCard\",e.unknown=\"NULL\"}(t||(t={}));var E={PAGE_VIEW:\"page:viewed\",DETAIL_PAGE_VIEW:\"page:viewed:detail\",PAGE_VIEW_CHECKOUT_STEP:\"page:viewed:checkout\",PAGE_VIEW_WITH_PRODUCTS:\"page:viewed:products\",GENERIC_EVENT:\"tracking:event:generic\",PRODUCT_CLICK:\"product:clicked\",PRODUCT_VIEW:\"product:viewed\",PROMO_CLICK:\"promo:clicked\",PROMO_VIEW:\"promo:viewed\",ADD_TO_CART:\"product:cart:added\",ADD_TO_CLICK_AND_COLLECT:\"product:clickandcollect:added\",REMOVE_FROM_CART:\"product:cart:removed\",ADDITIONAL_PAGE_INIT:\"page:init:additional\",RESET_DATA_LAYER:\"command:reset:datalayer\",RESET_ECOMMERCE_IMPRESSION:\"command:reset:ecommerce\"},i=function(e,n){void 0===n&&(n={}),document.dispatchEvent(new CustomEvent(e,{detail:n}))},c=function(e){i(E.ADD_TO_CART,e)},a=function(e){i(E.PAGE_VIEW_CHECKOUT_STEP,e)},o=function(e){i(E.DETAIL_PAGE_VIEW,e)},_=function(e){i(E.GENERIC_EVENT,e)},d=function(e){i(E.ADDITIONAL_PAGE_INIT,e)},C=function(e){i(E.PAGE_VIEW,e)},u=function(e){i(E.PAGE_VIEW_WITH_PRODUCTS,e)},r=function(e){i(E.PRODUCT_CLICK,e)},A=function(e){i(E.PRODUCT_VIEW,e)},I=function(e){i(E.PROMO_CLICK,e)},T=function(e){i(E.PROMO_VIEW,e)},O=function(e){i(E.REMOVE_FROM_CART,e)},l=function(){i(E.RESET_DATA_LAYER)},v=function(){i(E.RESET_ECOMMERCE_IMPRESSION)},R=function(e){i(E.ADD_TO_CLICK_AND_COLLECT,e)};function f(e){return new CustomEvent(\"ga4-tracking-event\",{detail:e})}var D,P=\"exponea-event\";function L(e){return new CustomEvent(\"exponea-event\",{detail:e})}!function(e){e.ADD=\"add\",e.REMOVE=\"remove\"}(D||(D={}));var p=\"NULL\",m=function(e){return parseFloat(Number(e.value/(100+e.tax)*100).toFixed(2))};export{e as AdditionalServicesAvailability,t as CartType,D as CartUpdate,p as EMPTY_CATEGORY_VALUE,P as ExponeaEventName,n as LoyaltyDiscount,E as TrackingEventNamesGTM,m as getVariantPriceWithoutTax,l as resetDataLayer,v as resetEcommerceImpression,c as trackAddToCart,R as trackAddToClickAndCollect,d as trackAdditionalPageInit,a as trackCheckoutStepPageView,o as trackDetailPageView,_ as trackEvent,L as trackExponeaEvent,C as trackPageView,u as trackPageViewWithProducts,r as trackProductClick,A as trackProductListImpression,I as trackPromoClick,T as trackPromoView,O as trackRemoveFromCart,f as trackingEvent};\n//# sourceMappingURL=notino-web-tracking.es5.js.map\n","import { defineHidden, is, createInterpolator, eachProp, hasFluidValue, getFluidValue, each, isAnimatedString, useForceUpdate, useIsomorphicLayoutEffect, addFluidObserver, removeFluidObserver, raf, useOnce } from '@react-spring/shared';\nimport * as React from 'react';\nimport { forwardRef, useRef, useCallback, useEffect } from 'react';\n\nconst $node = Symbol.for('Animated:node');\nconst isAnimated = value => !!value && value[$node] === value;\nconst getAnimated = owner => owner && owner[$node];\nconst setAnimated = (owner, node) => defineHidden(owner, $node, node);\nconst getPayload = owner => owner && owner[$node] && owner[$node].getPayload();\nclass Animated {\n constructor() {\n this.payload = void 0;\n setAnimated(this, this);\n }\n\n getPayload() {\n return this.payload || [];\n }\n\n}\n\nclass AnimatedValue extends Animated {\n constructor(_value) {\n super();\n this.done = true;\n this.elapsedTime = void 0;\n this.lastPosition = void 0;\n this.lastVelocity = void 0;\n this.v0 = void 0;\n this.durationProgress = 0;\n this._value = _value;\n\n if (is.num(this._value)) {\n this.lastPosition = this._value;\n }\n }\n\n static create(value) {\n return new AnimatedValue(value);\n }\n\n getPayload() {\n return [this];\n }\n\n getValue() {\n return this._value;\n }\n\n setValue(value, step) {\n if (is.num(value)) {\n this.lastPosition = value;\n\n if (step) {\n value = Math.round(value / step) * step;\n\n if (this.done) {\n this.lastPosition = value;\n }\n }\n }\n\n if (this._value === value) {\n return false;\n }\n\n this._value = value;\n return true;\n }\n\n reset() {\n const {\n done\n } = this;\n this.done = false;\n\n if (is.num(this._value)) {\n this.elapsedTime = 0;\n this.durationProgress = 0;\n this.lastPosition = this._value;\n if (done) this.lastVelocity = null;\n this.v0 = null;\n }\n }\n\n}\n\nclass AnimatedString extends AnimatedValue {\n constructor(value) {\n super(0);\n this._string = null;\n this._toString = void 0;\n this._toString = createInterpolator({\n output: [value, value]\n });\n }\n\n static create(value) {\n return new AnimatedString(value);\n }\n\n getValue() {\n let value = this._string;\n return value == null ? this._string = this._toString(this._value) : value;\n }\n\n setValue(value) {\n if (is.str(value)) {\n if (value == this._string) {\n return false;\n }\n\n this._string = value;\n this._value = 1;\n } else if (super.setValue(value)) {\n this._string = null;\n } else {\n return false;\n }\n\n return true;\n }\n\n reset(goal) {\n if (goal) {\n this._toString = createInterpolator({\n output: [this.getValue(), goal]\n });\n }\n\n this._value = 0;\n super.reset();\n }\n\n}\n\nconst TreeContext = {\n dependencies: null\n};\n\nclass AnimatedObject extends Animated {\n constructor(source) {\n super();\n this.source = source;\n this.setValue(source);\n }\n\n getValue(animated) {\n const values = {};\n eachProp(this.source, (source, key) => {\n if (isAnimated(source)) {\n values[key] = source.getValue(animated);\n } else if (hasFluidValue(source)) {\n values[key] = getFluidValue(source);\n } else if (!animated) {\n values[key] = source;\n }\n });\n return values;\n }\n\n setValue(source) {\n this.source = source;\n this.payload = this._makePayload(source);\n }\n\n reset() {\n if (this.payload) {\n each(this.payload, node => node.reset());\n }\n }\n\n _makePayload(source) {\n if (source) {\n const payload = new Set();\n eachProp(source, this._addToPayload, payload);\n return Array.from(payload);\n }\n }\n\n _addToPayload(source) {\n if (TreeContext.dependencies && hasFluidValue(source)) {\n TreeContext.dependencies.add(source);\n }\n\n const payload = getPayload(source);\n\n if (payload) {\n each(payload, node => this.add(node));\n }\n }\n\n}\n\nclass AnimatedArray extends AnimatedObject {\n constructor(source) {\n super(source);\n }\n\n static create(source) {\n return new AnimatedArray(source);\n }\n\n getValue() {\n return this.source.map(node => node.getValue());\n }\n\n setValue(source) {\n const payload = this.getPayload();\n\n if (source.length == payload.length) {\n return payload.map((node, i) => node.setValue(source[i])).some(Boolean);\n }\n\n super.setValue(source.map(makeAnimated));\n return true;\n }\n\n}\n\nfunction makeAnimated(value) {\n const nodeType = isAnimatedString(value) ? AnimatedString : AnimatedValue;\n return nodeType.create(value);\n}\n\nfunction getAnimatedType(value) {\n const parentNode = getAnimated(value);\n return parentNode ? parentNode.constructor : is.arr(value) ? AnimatedArray : isAnimatedString(value) ? AnimatedString : AnimatedValue;\n}\n\nfunction _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\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nconst withAnimated = (Component, host) => {\n const hasInstance = !is.fun(Component) || Component.prototype && Component.prototype.isReactComponent;\n return forwardRef((givenProps, givenRef) => {\n const instanceRef = useRef(null);\n const ref = hasInstance && useCallback(value => {\n instanceRef.current = updateRef(givenRef, value);\n }, [givenRef]);\n const [props, deps] = getAnimatedState(givenProps, host);\n const forceUpdate = useForceUpdate();\n\n const callback = () => {\n const instance = instanceRef.current;\n\n if (hasInstance && !instance) {\n return;\n }\n\n const didUpdate = instance ? host.applyAnimatedValues(instance, props.getValue(true)) : false;\n\n if (didUpdate === false) {\n forceUpdate();\n }\n };\n\n const observer = new PropsObserver(callback, deps);\n const observerRef = useRef();\n useIsomorphicLayoutEffect(() => {\n observerRef.current = observer;\n each(deps, dep => addFluidObserver(dep, observer));\n return () => {\n if (observerRef.current) {\n each(observerRef.current.deps, dep => removeFluidObserver(dep, observerRef.current));\n raf.cancel(observerRef.current.update);\n }\n };\n });\n useEffect(callback, []);\n useOnce(() => () => {\n const observer = observerRef.current;\n each(observer.deps, dep => removeFluidObserver(dep, observer));\n });\n const usedProps = host.getComponentProps(props.getValue());\n return React.createElement(Component, _extends({}, usedProps, {\n ref: ref\n }));\n });\n};\n\nclass PropsObserver {\n constructor(update, deps) {\n this.update = update;\n this.deps = deps;\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n raf.write(this.update);\n }\n }\n\n}\n\nfunction getAnimatedState(props, host) {\n const dependencies = new Set();\n TreeContext.dependencies = dependencies;\n if (props.style) props = _extends({}, props, {\n style: host.createAnimatedStyle(props.style)\n });\n props = new AnimatedObject(props);\n TreeContext.dependencies = null;\n return [props, dependencies];\n}\n\nfunction updateRef(ref, value) {\n if (ref) {\n if (is.fun(ref)) ref(value);else ref.current = value;\n }\n\n return value;\n}\n\nconst cacheKey = Symbol.for('AnimatedComponent');\nconst createHost = (components, {\n applyAnimatedValues: _applyAnimatedValues = () => false,\n createAnimatedStyle: _createAnimatedStyle = style => new AnimatedObject(style),\n getComponentProps: _getComponentProps = props => props\n} = {}) => {\n const hostConfig = {\n applyAnimatedValues: _applyAnimatedValues,\n createAnimatedStyle: _createAnimatedStyle,\n getComponentProps: _getComponentProps\n };\n\n const animated = Component => {\n const displayName = getDisplayName(Component) || 'Anonymous';\n\n if (is.str(Component)) {\n Component = animated[Component] || (animated[Component] = withAnimated(Component, hostConfig));\n } else {\n Component = Component[cacheKey] || (Component[cacheKey] = withAnimated(Component, hostConfig));\n }\n\n Component.displayName = `Animated(${displayName})`;\n return Component;\n };\n\n eachProp(components, (Component, key) => {\n if (is.arr(components)) {\n key = getDisplayName(Component);\n }\n\n animated[key] = animated(Component);\n });\n return {\n animated\n };\n};\n\nconst getDisplayName = arg => is.str(arg) ? arg : arg && is.str(arg.displayName) ? arg.displayName : is.fun(arg) && arg.name || null;\n\nexport { Animated, AnimatedArray, AnimatedObject, AnimatedString, AnimatedValue, createHost, getAnimated, getAnimatedType, getPayload, isAnimated, setAnimated };\n","import { eachProp, is, toArray, getFluidValue, isAnimatedString, Globals, useIsomorphicLayoutEffect, each, raf, flush, FluidValue, deprecateInterpolate, callFluidObservers, frameLoop, hasFluidValue, flushCalls, isEqual, getFluidObservers, addFluidObserver, removeFluidObserver, noop, useMemoOne, deprecateDirectCall, useForceUpdate, usePrev, useOnce, createInterpolator, createStringInterpolator } from '@react-spring/shared';\nexport { Globals, createInterpolator, useIsomorphicLayoutEffect, useReducedMotion } from '@react-spring/shared';\nimport * as React from 'react';\nimport { useContext, useMemo, useRef, useState } from 'react';\nimport { getAnimated, AnimatedValue, getPayload, AnimatedString, getAnimatedType, setAnimated } from '@react-spring/animated';\nexport * from '@react-spring/types/animated';\nexport * from '@react-spring/types/interpolation';\n\nfunction _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\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction callProp(value, ...args) {\n return is.fun(value) ? value(...args) : value;\n}\nconst matchProp = (value, key) => value === true || !!(key && value && (is.fun(value) ? value(key) : toArray(value).includes(key)));\nconst resolveProp = (prop, key) => is.obj(prop) ? key && prop[key] : prop;\nconst getDefaultProp = (props, key) => props.default === true ? props[key] : props.default ? props.default[key] : undefined;\n\nconst noopTransform = value => value;\n\nconst getDefaultProps = (props, transform = noopTransform) => {\n let keys = DEFAULT_PROPS;\n\n if (props.default && props.default !== true) {\n props = props.default;\n keys = Object.keys(props);\n }\n\n const defaults = {};\n\n for (const key of keys) {\n const value = transform(props[key], key);\n\n if (!is.und(value)) {\n defaults[key] = value;\n }\n }\n\n return defaults;\n};\nconst DEFAULT_PROPS = ['config', 'onProps', 'onStart', 'onChange', 'onPause', 'onResume', 'onRest'];\nconst RESERVED_PROPS = {\n config: 1,\n from: 1,\n to: 1,\n ref: 1,\n loop: 1,\n reset: 1,\n pause: 1,\n cancel: 1,\n reverse: 1,\n immediate: 1,\n default: 1,\n delay: 1,\n onProps: 1,\n onStart: 1,\n onChange: 1,\n onPause: 1,\n onResume: 1,\n onRest: 1,\n onResolve: 1,\n items: 1,\n trail: 1,\n sort: 1,\n expires: 1,\n initial: 1,\n enter: 1,\n update: 1,\n leave: 1,\n children: 1,\n onDestroyed: 1,\n keys: 1,\n callId: 1,\n parentId: 1\n};\n\nfunction getForwardProps(props) {\n const forward = {};\n let count = 0;\n eachProp(props, (value, prop) => {\n if (!RESERVED_PROPS[prop]) {\n forward[prop] = value;\n count++;\n }\n });\n\n if (count) {\n return forward;\n }\n}\n\nfunction inferTo(props) {\n const to = getForwardProps(props);\n\n if (to) {\n const out = {\n to\n };\n eachProp(props, (val, key) => key in to || (out[key] = val));\n return out;\n }\n\n return _extends({}, props);\n}\nfunction computeGoal(value) {\n value = getFluidValue(value);\n return is.arr(value) ? value.map(computeGoal) : isAnimatedString(value) ? Globals.createStringInterpolator({\n range: [0, 1],\n output: [value, value]\n })(1) : value;\n}\nfunction hasProps(props) {\n for (const _ in props) return true;\n\n return false;\n}\nfunction isAsyncTo(to) {\n return is.fun(to) || is.arr(to) && is.obj(to[0]);\n}\nfunction detachRefs(ctrl, ref) {\n var _ctrl$ref;\n\n (_ctrl$ref = ctrl.ref) == null ? void 0 : _ctrl$ref.delete(ctrl);\n ref == null ? void 0 : ref.delete(ctrl);\n}\nfunction replaceRef(ctrl, ref) {\n if (ref && ctrl.ref !== ref) {\n var _ctrl$ref2;\n\n (_ctrl$ref2 = ctrl.ref) == null ? void 0 : _ctrl$ref2.delete(ctrl);\n ref.add(ctrl);\n ctrl.ref = ref;\n }\n}\n\nfunction useChain(refs, timeSteps, timeFrame = 1000) {\n useIsomorphicLayoutEffect(() => {\n if (timeSteps) {\n let prevDelay = 0;\n each(refs, (ref, i) => {\n const controllers = ref.current;\n\n if (controllers.length) {\n let delay = timeFrame * timeSteps[i];\n if (isNaN(delay)) delay = prevDelay;else prevDelay = delay;\n each(controllers, ctrl => {\n each(ctrl.queue, props => {\n const memoizedDelayProp = props.delay;\n\n props.delay = key => delay + callProp(memoizedDelayProp || 0, key);\n });\n });\n ref.start();\n }\n });\n } else {\n let p = Promise.resolve();\n each(refs, ref => {\n const controllers = ref.current;\n\n if (controllers.length) {\n const queues = controllers.map(ctrl => {\n const q = ctrl.queue;\n ctrl.queue = [];\n return q;\n });\n p = p.then(() => {\n each(controllers, (ctrl, i) => each(queues[i] || [], update => ctrl.queue.push(update)));\n return Promise.all(ref.start());\n });\n }\n });\n }\n });\n}\n\nconst config = {\n default: {\n tension: 170,\n friction: 26\n },\n gentle: {\n tension: 120,\n friction: 14\n },\n wobbly: {\n tension: 180,\n friction: 12\n },\n stiff: {\n tension: 210,\n friction: 20\n },\n slow: {\n tension: 280,\n friction: 60\n },\n molasses: {\n tension: 280,\n friction: 120\n }\n};\nconst c1 = 1.70158;\nconst c2 = c1 * 1.525;\nconst c3 = c1 + 1;\nconst c4 = 2 * Math.PI / 3;\nconst c5 = 2 * Math.PI / 4.5;\n\nconst bounceOut = x => {\n const n1 = 7.5625;\n const d1 = 2.75;\n\n if (x < 1 / d1) {\n return n1 * x * x;\n } else if (x < 2 / d1) {\n return n1 * (x -= 1.5 / d1) * x + 0.75;\n } else if (x < 2.5 / d1) {\n return n1 * (x -= 2.25 / d1) * x + 0.9375;\n } else {\n return n1 * (x -= 2.625 / d1) * x + 0.984375;\n }\n};\n\nconst easings = {\n linear: x => x,\n easeInQuad: x => x * x,\n easeOutQuad: x => 1 - (1 - x) * (1 - x),\n easeInOutQuad: x => x < 0.5 ? 2 * x * x : 1 - Math.pow(-2 * x + 2, 2) / 2,\n easeInCubic: x => x * x * x,\n easeOutCubic: x => 1 - Math.pow(1 - x, 3),\n easeInOutCubic: x => x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2,\n easeInQuart: x => x * x * x * x,\n easeOutQuart: x => 1 - Math.pow(1 - x, 4),\n easeInOutQuart: x => x < 0.5 ? 8 * x * x * x * x : 1 - Math.pow(-2 * x + 2, 4) / 2,\n easeInQuint: x => x * x * x * x * x,\n easeOutQuint: x => 1 - Math.pow(1 - x, 5),\n easeInOutQuint: x => x < 0.5 ? 16 * x * x * x * x * x : 1 - Math.pow(-2 * x + 2, 5) / 2,\n easeInSine: x => 1 - Math.cos(x * Math.PI / 2),\n easeOutSine: x => Math.sin(x * Math.PI / 2),\n easeInOutSine: x => -(Math.cos(Math.PI * x) - 1) / 2,\n easeInExpo: x => x === 0 ? 0 : Math.pow(2, 10 * x - 10),\n easeOutExpo: x => x === 1 ? 1 : 1 - Math.pow(2, -10 * x),\n easeInOutExpo: x => x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? Math.pow(2, 20 * x - 10) / 2 : (2 - Math.pow(2, -20 * x + 10)) / 2,\n easeInCirc: x => 1 - Math.sqrt(1 - Math.pow(x, 2)),\n easeOutCirc: x => Math.sqrt(1 - Math.pow(x - 1, 2)),\n easeInOutCirc: x => x < 0.5 ? (1 - Math.sqrt(1 - Math.pow(2 * x, 2))) / 2 : (Math.sqrt(1 - Math.pow(-2 * x + 2, 2)) + 1) / 2,\n easeInBack: x => c3 * x * x * x - c1 * x * x,\n easeOutBack: x => 1 + c3 * Math.pow(x - 1, 3) + c1 * Math.pow(x - 1, 2),\n easeInOutBack: x => x < 0.5 ? Math.pow(2 * x, 2) * ((c2 + 1) * 2 * x - c2) / 2 : (Math.pow(2 * x - 2, 2) * ((c2 + 1) * (x * 2 - 2) + c2) + 2) / 2,\n easeInElastic: x => x === 0 ? 0 : x === 1 ? 1 : -Math.pow(2, 10 * x - 10) * Math.sin((x * 10 - 10.75) * c4),\n easeOutElastic: x => x === 0 ? 0 : x === 1 ? 1 : Math.pow(2, -10 * x) * Math.sin((x * 10 - 0.75) * c4) + 1,\n easeInOutElastic: x => x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? -(Math.pow(2, 20 * x - 10) * Math.sin((20 * x - 11.125) * c5)) / 2 : Math.pow(2, -20 * x + 10) * Math.sin((20 * x - 11.125) * c5) / 2 + 1,\n easeInBounce: x => 1 - bounceOut(1 - x),\n easeOutBounce: bounceOut,\n easeInOutBounce: x => x < 0.5 ? (1 - bounceOut(1 - 2 * x)) / 2 : (1 + bounceOut(2 * x - 1)) / 2\n};\n\nconst defaults = _extends({}, config.default, {\n mass: 1,\n damping: 1,\n easing: easings.linear,\n clamp: false\n});\n\nclass AnimationConfig {\n constructor() {\n this.tension = void 0;\n this.friction = void 0;\n this.frequency = void 0;\n this.damping = void 0;\n this.mass = void 0;\n this.velocity = 0;\n this.restVelocity = void 0;\n this.precision = void 0;\n this.progress = void 0;\n this.duration = void 0;\n this.easing = void 0;\n this.clamp = void 0;\n this.bounce = void 0;\n this.decay = void 0;\n this.round = void 0;\n Object.assign(this, defaults);\n }\n\n}\nfunction mergeConfig(config, newConfig, defaultConfig) {\n if (defaultConfig) {\n defaultConfig = _extends({}, defaultConfig);\n sanitizeConfig(defaultConfig, newConfig);\n newConfig = _extends({}, defaultConfig, newConfig);\n }\n\n sanitizeConfig(config, newConfig);\n Object.assign(config, newConfig);\n\n for (const key in defaults) {\n if (config[key] == null) {\n config[key] = defaults[key];\n }\n }\n\n let {\n mass,\n frequency,\n damping\n } = config;\n\n if (!is.und(frequency)) {\n if (frequency < 0.01) frequency = 0.01;\n if (damping < 0) damping = 0;\n config.tension = Math.pow(2 * Math.PI / frequency, 2) * mass;\n config.friction = 4 * Math.PI * damping * mass / frequency;\n }\n\n return config;\n}\n\nfunction sanitizeConfig(config, props) {\n if (!is.und(props.decay)) {\n config.duration = undefined;\n } else {\n const isTensionConfig = !is.und(props.tension) || !is.und(props.friction);\n\n if (isTensionConfig || !is.und(props.frequency) || !is.und(props.damping) || !is.und(props.mass)) {\n config.duration = undefined;\n config.decay = undefined;\n }\n\n if (isTensionConfig) {\n config.frequency = undefined;\n }\n }\n}\n\nconst emptyArray = [];\nclass Animation {\n constructor() {\n this.changed = false;\n this.values = emptyArray;\n this.toValues = null;\n this.fromValues = emptyArray;\n this.to = void 0;\n this.from = void 0;\n this.config = new AnimationConfig();\n this.immediate = false;\n }\n\n}\n\nfunction scheduleProps(callId, {\n key,\n props,\n defaultProps,\n state,\n actions\n}) {\n return new Promise((resolve, reject) => {\n var _props$cancel;\n\n let delay;\n let timeout;\n let cancel = matchProp((_props$cancel = props.cancel) != null ? _props$cancel : defaultProps == null ? void 0 : defaultProps.cancel, key);\n\n if (cancel) {\n onStart();\n } else {\n if (!is.und(props.pause)) {\n state.paused = matchProp(props.pause, key);\n }\n\n let pause = defaultProps == null ? void 0 : defaultProps.pause;\n\n if (pause !== true) {\n pause = state.paused || matchProp(pause, key);\n }\n\n delay = callProp(props.delay || 0, key);\n\n if (pause) {\n state.resumeQueue.add(onResume);\n actions.pause();\n } else {\n actions.resume();\n onResume();\n }\n }\n\n function onPause() {\n state.resumeQueue.add(onResume);\n state.timeouts.delete(timeout);\n timeout.cancel();\n delay = timeout.time - raf.now();\n }\n\n function onResume() {\n if (delay > 0 && !Globals.skipAnimation) {\n state.delayed = true;\n timeout = raf.setTimeout(onStart, delay);\n state.pauseQueue.add(onPause);\n state.timeouts.add(timeout);\n } else {\n onStart();\n }\n }\n\n function onStart() {\n if (state.delayed) {\n state.delayed = false;\n }\n\n state.pauseQueue.delete(onPause);\n state.timeouts.delete(timeout);\n\n if (callId <= (state.cancelId || 0)) {\n cancel = true;\n }\n\n try {\n actions.start(_extends({}, props, {\n callId,\n cancel\n }), resolve);\n } catch (err) {\n reject(err);\n }\n }\n });\n}\n\nconst getCombinedResult = (target, results) => results.length == 1 ? results[0] : results.some(result => result.cancelled) ? getCancelledResult(target.get()) : results.every(result => result.noop) ? getNoopResult(target.get()) : getFinishedResult(target.get(), results.every(result => result.finished));\nconst getNoopResult = value => ({\n value,\n noop: true,\n finished: true,\n cancelled: false\n});\nconst getFinishedResult = (value, finished, cancelled = false) => ({\n value,\n finished,\n cancelled\n});\nconst getCancelledResult = value => ({\n value,\n cancelled: true,\n finished: false\n});\n\nfunction runAsync(to, props, state, target) {\n const {\n callId,\n parentId,\n onRest\n } = props;\n const {\n asyncTo: prevTo,\n promise: prevPromise\n } = state;\n\n if (!parentId && to === prevTo && !props.reset) {\n return prevPromise;\n }\n\n return state.promise = (async () => {\n state.asyncId = callId;\n state.asyncTo = to;\n const defaultProps = getDefaultProps(props, (value, key) => key === 'onRest' ? undefined : value);\n let preventBail;\n let bail;\n const bailPromise = new Promise((resolve, reject) => (preventBail = resolve, bail = reject));\n\n const bailIfEnded = bailSignal => {\n const bailResult = callId <= (state.cancelId || 0) && getCancelledResult(target) || callId !== state.asyncId && getFinishedResult(target, false);\n\n if (bailResult) {\n bailSignal.result = bailResult;\n bail(bailSignal);\n throw bailSignal;\n }\n };\n\n const animate = (arg1, arg2) => {\n const bailSignal = new BailSignal();\n const skipAnimationSignal = new SkipAniamtionSignal();\n return (async () => {\n if (Globals.skipAnimation) {\n stopAsync(state);\n skipAnimationSignal.result = getFinishedResult(target, false);\n bail(skipAnimationSignal);\n throw skipAnimationSignal;\n }\n\n bailIfEnded(bailSignal);\n const props = is.obj(arg1) ? _extends({}, arg1) : _extends({}, arg2, {\n to: arg1\n });\n props.parentId = callId;\n eachProp(defaultProps, (value, key) => {\n if (is.und(props[key])) {\n props[key] = value;\n }\n });\n const result = await target.start(props);\n bailIfEnded(bailSignal);\n\n if (state.paused) {\n await new Promise(resume => {\n state.resumeQueue.add(resume);\n });\n }\n\n return result;\n })();\n };\n\n let result;\n\n if (Globals.skipAnimation) {\n stopAsync(state);\n return getFinishedResult(target, false);\n }\n\n try {\n let animating;\n\n if (is.arr(to)) {\n animating = (async queue => {\n for (const props of queue) {\n await animate(props);\n }\n })(to);\n } else {\n animating = Promise.resolve(to(animate, target.stop.bind(target)));\n }\n\n await Promise.all([animating.then(preventBail), bailPromise]);\n result = getFinishedResult(target.get(), true, false);\n } catch (err) {\n if (err instanceof BailSignal) {\n result = err.result;\n } else if (err instanceof SkipAniamtionSignal) {\n result = err.result;\n } else {\n throw err;\n }\n } finally {\n if (callId == state.asyncId) {\n state.asyncId = parentId;\n state.asyncTo = parentId ? prevTo : undefined;\n state.promise = parentId ? prevPromise : undefined;\n }\n }\n\n if (is.fun(onRest)) {\n raf.batchedUpdates(() => {\n onRest(result, target, target.item);\n });\n }\n\n return result;\n })();\n}\nfunction stopAsync(state, cancelId) {\n flush(state.timeouts, t => t.cancel());\n state.pauseQueue.clear();\n state.resumeQueue.clear();\n state.asyncId = state.asyncTo = state.promise = undefined;\n if (cancelId) state.cancelId = cancelId;\n}\nclass BailSignal extends Error {\n constructor() {\n super('An async animation has been interrupted. You see this error because you ' + 'forgot to use `await` or `.catch(...)` on its returned promise.');\n this.result = void 0;\n }\n\n}\nclass SkipAniamtionSignal extends Error {\n constructor() {\n super('SkipAnimationSignal');\n this.result = void 0;\n }\n\n}\n\nconst isFrameValue = value => value instanceof FrameValue;\nlet nextId$1 = 1;\nclass FrameValue extends FluidValue {\n constructor(...args) {\n super(...args);\n this.id = nextId$1++;\n this.key = void 0;\n this._priority = 0;\n }\n\n get priority() {\n return this._priority;\n }\n\n set priority(priority) {\n if (this._priority != priority) {\n this._priority = priority;\n\n this._onPriorityChange(priority);\n }\n }\n\n get() {\n const node = getAnimated(this);\n return node && node.getValue();\n }\n\n to(...args) {\n return Globals.to(this, args);\n }\n\n interpolate(...args) {\n deprecateInterpolate();\n return Globals.to(this, args);\n }\n\n toJSON() {\n return this.get();\n }\n\n observerAdded(count) {\n if (count == 1) this._attach();\n }\n\n observerRemoved(count) {\n if (count == 0) this._detach();\n }\n\n _attach() {}\n\n _detach() {}\n\n _onChange(value, idle = false) {\n callFluidObservers(this, {\n type: 'change',\n parent: this,\n value,\n idle\n });\n }\n\n _onPriorityChange(priority) {\n if (!this.idle) {\n frameLoop.sort(this);\n }\n\n callFluidObservers(this, {\n type: 'priority',\n parent: this,\n priority\n });\n }\n\n}\n\nconst $P = Symbol.for('SpringPhase');\nconst HAS_ANIMATED = 1;\nconst IS_ANIMATING = 2;\nconst IS_PAUSED = 4;\nconst hasAnimated = target => (target[$P] & HAS_ANIMATED) > 0;\nconst isAnimating = target => (target[$P] & IS_ANIMATING) > 0;\nconst isPaused = target => (target[$P] & IS_PAUSED) > 0;\nconst setActiveBit = (target, active) => active ? target[$P] |= IS_ANIMATING | HAS_ANIMATED : target[$P] &= ~IS_ANIMATING;\nconst setPausedBit = (target, paused) => paused ? target[$P] |= IS_PAUSED : target[$P] &= ~IS_PAUSED;\n\nclass SpringValue extends FrameValue {\n constructor(arg1, arg2) {\n super();\n this.key = void 0;\n this.animation = new Animation();\n this.queue = void 0;\n this.defaultProps = {};\n this._state = {\n paused: false,\n delayed: false,\n pauseQueue: new Set(),\n resumeQueue: new Set(),\n timeouts: new Set()\n };\n this._pendingCalls = new Set();\n this._lastCallId = 0;\n this._lastToId = 0;\n this._memoizedDuration = 0;\n\n if (!is.und(arg1) || !is.und(arg2)) {\n const props = is.obj(arg1) ? _extends({}, arg1) : _extends({}, arg2, {\n from: arg1\n });\n\n if (is.und(props.default)) {\n props.default = true;\n }\n\n this.start(props);\n }\n }\n\n get idle() {\n return !(isAnimating(this) || this._state.asyncTo) || isPaused(this);\n }\n\n get goal() {\n return getFluidValue(this.animation.to);\n }\n\n get velocity() {\n const node = getAnimated(this);\n return node instanceof AnimatedValue ? node.lastVelocity || 0 : node.getPayload().map(node => node.lastVelocity || 0);\n }\n\n get hasAnimated() {\n return hasAnimated(this);\n }\n\n get isAnimating() {\n return isAnimating(this);\n }\n\n get isPaused() {\n return isPaused(this);\n }\n\n get isDelayed() {\n return this._state.delayed;\n }\n\n advance(dt) {\n let idle = true;\n let changed = false;\n const anim = this.animation;\n let {\n config,\n toValues\n } = anim;\n const payload = getPayload(anim.to);\n\n if (!payload && hasFluidValue(anim.to)) {\n toValues = toArray(getFluidValue(anim.to));\n }\n\n anim.values.forEach((node, i) => {\n if (node.done) return;\n const to = node.constructor == AnimatedString ? 1 : payload ? payload[i].lastPosition : toValues[i];\n let finished = anim.immediate;\n let position = to;\n\n if (!finished) {\n position = node.lastPosition;\n\n if (config.tension <= 0) {\n node.done = true;\n return;\n }\n\n let elapsed = node.elapsedTime += dt;\n const from = anim.fromValues[i];\n const v0 = node.v0 != null ? node.v0 : node.v0 = is.arr(config.velocity) ? config.velocity[i] : config.velocity;\n let velocity;\n const precision = config.precision || (from == to ? 0.005 : Math.min(1, Math.abs(to - from) * 0.001));\n\n if (!is.und(config.duration)) {\n let p = 1;\n\n if (config.duration > 0) {\n if (this._memoizedDuration !== config.duration) {\n this._memoizedDuration = config.duration;\n\n if (node.durationProgress > 0) {\n node.elapsedTime = config.duration * node.durationProgress;\n elapsed = node.elapsedTime += dt;\n }\n }\n\n p = (config.progress || 0) + elapsed / this._memoizedDuration;\n p = p > 1 ? 1 : p < 0 ? 0 : p;\n node.durationProgress = p;\n }\n\n position = from + config.easing(p) * (to - from);\n velocity = (position - node.lastPosition) / dt;\n finished = p == 1;\n } else if (config.decay) {\n const decay = config.decay === true ? 0.998 : config.decay;\n const e = Math.exp(-(1 - decay) * elapsed);\n position = from + v0 / (1 - decay) * (1 - e);\n finished = Math.abs(node.lastPosition - position) <= precision;\n velocity = v0 * e;\n } else {\n velocity = node.lastVelocity == null ? v0 : node.lastVelocity;\n const restVelocity = config.restVelocity || precision / 10;\n const bounceFactor = config.clamp ? 0 : config.bounce;\n const canBounce = !is.und(bounceFactor);\n const isGrowing = from == to ? node.v0 > 0 : from < to;\n let isMoving;\n let isBouncing = false;\n const step = 1;\n const numSteps = Math.ceil(dt / step);\n\n for (let n = 0; n < numSteps; ++n) {\n isMoving = Math.abs(velocity) > restVelocity;\n\n if (!isMoving) {\n finished = Math.abs(to - position) <= precision;\n\n if (finished) {\n break;\n }\n }\n\n if (canBounce) {\n isBouncing = position == to || position > to == isGrowing;\n\n if (isBouncing) {\n velocity = -velocity * bounceFactor;\n position = to;\n }\n }\n\n const springForce = -config.tension * 0.000001 * (position - to);\n const dampingForce = -config.friction * 0.001 * velocity;\n const acceleration = (springForce + dampingForce) / config.mass;\n velocity = velocity + acceleration * step;\n position = position + velocity * step;\n }\n }\n\n node.lastVelocity = velocity;\n\n if (Number.isNaN(position)) {\n console.warn(`Got NaN while animating:`, this);\n finished = true;\n }\n }\n\n if (payload && !payload[i].done) {\n finished = false;\n }\n\n if (finished) {\n node.done = true;\n } else {\n idle = false;\n }\n\n if (node.setValue(position, config.round)) {\n changed = true;\n }\n });\n const node = getAnimated(this);\n const currVal = node.getValue();\n\n if (idle) {\n const finalVal = getFluidValue(anim.to);\n\n if ((currVal !== finalVal || changed) && !config.decay) {\n node.setValue(finalVal);\n\n this._onChange(finalVal);\n } else if (changed && config.decay) {\n this._onChange(currVal);\n }\n\n this._stop();\n } else if (changed) {\n this._onChange(currVal);\n }\n }\n\n set(value) {\n raf.batchedUpdates(() => {\n this._stop();\n\n this._focus(value);\n\n this._set(value);\n });\n return this;\n }\n\n pause() {\n this._update({\n pause: true\n });\n }\n\n resume() {\n this._update({\n pause: false\n });\n }\n\n finish() {\n if (isAnimating(this)) {\n const {\n to,\n config\n } = this.animation;\n raf.batchedUpdates(() => {\n this._onStart();\n\n if (!config.decay) {\n this._set(to, false);\n }\n\n this._stop();\n });\n }\n\n return this;\n }\n\n update(props) {\n const queue = this.queue || (this.queue = []);\n queue.push(props);\n return this;\n }\n\n start(to, arg2) {\n let queue;\n\n if (!is.und(to)) {\n queue = [is.obj(to) ? to : _extends({}, arg2, {\n to\n })];\n } else {\n queue = this.queue || [];\n this.queue = [];\n }\n\n return Promise.all(queue.map(props => {\n const up = this._update(props);\n\n return up;\n })).then(results => getCombinedResult(this, results));\n }\n\n stop(cancel) {\n const {\n to\n } = this.animation;\n\n this._focus(this.get());\n\n stopAsync(this._state, cancel && this._lastCallId);\n raf.batchedUpdates(() => this._stop(to, cancel));\n return this;\n }\n\n reset() {\n this._update({\n reset: true\n });\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n this._start();\n } else if (event.type == 'priority') {\n this.priority = event.priority + 1;\n }\n }\n\n _prepareNode(props) {\n const key = this.key || '';\n let {\n to,\n from\n } = props;\n to = is.obj(to) ? to[key] : to;\n\n if (to == null || isAsyncTo(to)) {\n to = undefined;\n }\n\n from = is.obj(from) ? from[key] : from;\n\n if (from == null) {\n from = undefined;\n }\n\n const range = {\n to,\n from\n };\n\n if (!hasAnimated(this)) {\n if (props.reverse) [to, from] = [from, to];\n from = getFluidValue(from);\n\n if (!is.und(from)) {\n this._set(from);\n } else if (!getAnimated(this)) {\n this._set(to);\n }\n }\n\n return range;\n }\n\n _update(_ref, isLoop) {\n let props = _extends({}, _ref);\n\n const {\n key,\n defaultProps\n } = this;\n if (props.default) Object.assign(defaultProps, getDefaultProps(props, (value, prop) => /^on/.test(prop) ? resolveProp(value, key) : value));\n mergeActiveFn(this, props, 'onProps');\n sendEvent(this, 'onProps', props, this);\n\n const range = this._prepareNode(props);\n\n if (Object.isFrozen(this)) {\n throw Error('Cannot animate a `SpringValue` object that is frozen. ' + 'Did you forget to pass your component to `animated(...)` before animating its props?');\n }\n\n const state = this._state;\n return scheduleProps(++this._lastCallId, {\n key,\n props,\n defaultProps,\n state,\n actions: {\n pause: () => {\n if (!isPaused(this)) {\n setPausedBit(this, true);\n flushCalls(state.pauseQueue);\n sendEvent(this, 'onPause', getFinishedResult(this, checkFinished(this, this.animation.to)), this);\n }\n },\n resume: () => {\n if (isPaused(this)) {\n setPausedBit(this, false);\n\n if (isAnimating(this)) {\n this._resume();\n }\n\n flushCalls(state.resumeQueue);\n sendEvent(this, 'onResume', getFinishedResult(this, checkFinished(this, this.animation.to)), this);\n }\n },\n start: this._merge.bind(this, range)\n }\n }).then(result => {\n if (props.loop && result.finished && !(isLoop && result.noop)) {\n const nextProps = createLoopUpdate(props);\n\n if (nextProps) {\n return this._update(nextProps, true);\n }\n }\n\n return result;\n });\n }\n\n _merge(range, props, resolve) {\n if (props.cancel) {\n this.stop(true);\n return resolve(getCancelledResult(this));\n }\n\n const hasToProp = !is.und(range.to);\n const hasFromProp = !is.und(range.from);\n\n if (hasToProp || hasFromProp) {\n if (props.callId > this._lastToId) {\n this._lastToId = props.callId;\n } else {\n return resolve(getCancelledResult(this));\n }\n }\n\n const {\n key,\n defaultProps,\n animation: anim\n } = this;\n const {\n to: prevTo,\n from: prevFrom\n } = anim;\n let {\n to = prevTo,\n from = prevFrom\n } = range;\n\n if (hasFromProp && !hasToProp && (!props.default || is.und(to))) {\n to = from;\n }\n\n if (props.reverse) [to, from] = [from, to];\n const hasFromChanged = !isEqual(from, prevFrom);\n\n if (hasFromChanged) {\n anim.from = from;\n }\n\n from = getFluidValue(from);\n const hasToChanged = !isEqual(to, prevTo);\n\n if (hasToChanged) {\n this._focus(to);\n }\n\n const hasAsyncTo = isAsyncTo(props.to);\n const {\n config\n } = anim;\n const {\n decay,\n velocity\n } = config;\n\n if (hasToProp || hasFromProp) {\n config.velocity = 0;\n }\n\n if (props.config && !hasAsyncTo) {\n mergeConfig(config, callProp(props.config, key), props.config !== defaultProps.config ? callProp(defaultProps.config, key) : void 0);\n }\n\n let node = getAnimated(this);\n\n if (!node || is.und(to)) {\n return resolve(getFinishedResult(this, true));\n }\n\n const reset = is.und(props.reset) ? hasFromProp && !props.default : !is.und(from) && matchProp(props.reset, key);\n const value = reset ? from : this.get();\n const goal = computeGoal(to);\n const isAnimatable = is.num(goal) || is.arr(goal) || isAnimatedString(goal);\n const immediate = !hasAsyncTo && (!isAnimatable || matchProp(defaultProps.immediate || props.immediate, key));\n\n if (hasToChanged) {\n const nodeType = getAnimatedType(to);\n\n if (nodeType !== node.constructor) {\n if (immediate) {\n node = this._set(goal);\n } else throw Error(`Cannot animate between ${node.constructor.name} and ${nodeType.name}, as the \"to\" prop suggests`);\n }\n }\n\n const goalType = node.constructor;\n let started = hasFluidValue(to);\n let finished = false;\n\n if (!started) {\n const hasValueChanged = reset || !hasAnimated(this) && hasFromChanged;\n\n if (hasToChanged || hasValueChanged) {\n finished = isEqual(computeGoal(value), goal);\n started = !finished;\n }\n\n if (!isEqual(anim.immediate, immediate) && !immediate || !isEqual(config.decay, decay) || !isEqual(config.velocity, velocity)) {\n started = true;\n }\n }\n\n if (finished && isAnimating(this)) {\n if (anim.changed && !reset) {\n started = true;\n } else if (!started) {\n this._stop(prevTo);\n }\n }\n\n if (!hasAsyncTo) {\n if (started || hasFluidValue(prevTo)) {\n anim.values = node.getPayload();\n anim.toValues = hasFluidValue(to) ? null : goalType == AnimatedString ? [1] : toArray(goal);\n }\n\n if (anim.immediate != immediate) {\n anim.immediate = immediate;\n\n if (!immediate && !reset) {\n this._set(prevTo);\n }\n }\n\n if (started) {\n const {\n onRest\n } = anim;\n each(ACTIVE_EVENTS, type => mergeActiveFn(this, props, type));\n const result = getFinishedResult(this, checkFinished(this, prevTo));\n flushCalls(this._pendingCalls, result);\n\n this._pendingCalls.add(resolve);\n\n if (anim.changed) raf.batchedUpdates(() => {\n anim.changed = !reset;\n onRest == null ? void 0 : onRest(result, this);\n\n if (reset) {\n callProp(defaultProps.onRest, result);\n } else {\n anim.onStart == null ? void 0 : anim.onStart(result, this);\n }\n });\n }\n }\n\n if (reset) {\n this._set(value);\n }\n\n if (hasAsyncTo) {\n resolve(runAsync(props.to, props, this._state, this));\n } else if (started) {\n this._start();\n } else if (isAnimating(this) && !hasToChanged) {\n this._pendingCalls.add(resolve);\n } else {\n resolve(getNoopResult(value));\n }\n }\n\n _focus(value) {\n const anim = this.animation;\n\n if (value !== anim.to) {\n if (getFluidObservers(this)) {\n this._detach();\n }\n\n anim.to = value;\n\n if (getFluidObservers(this)) {\n this._attach();\n }\n }\n }\n\n _attach() {\n let priority = 0;\n const {\n to\n } = this.animation;\n\n if (hasFluidValue(to)) {\n addFluidObserver(to, this);\n\n if (isFrameValue(to)) {\n priority = to.priority + 1;\n }\n }\n\n this.priority = priority;\n }\n\n _detach() {\n const {\n to\n } = this.animation;\n\n if (hasFluidValue(to)) {\n removeFluidObserver(to, this);\n }\n }\n\n _set(arg, idle = true) {\n const value = getFluidValue(arg);\n\n if (!is.und(value)) {\n const oldNode = getAnimated(this);\n\n if (!oldNode || !isEqual(value, oldNode.getValue())) {\n const nodeType = getAnimatedType(value);\n\n if (!oldNode || oldNode.constructor != nodeType) {\n setAnimated(this, nodeType.create(value));\n } else {\n oldNode.setValue(value);\n }\n\n if (oldNode) {\n raf.batchedUpdates(() => {\n this._onChange(value, idle);\n });\n }\n }\n }\n\n return getAnimated(this);\n }\n\n _onStart() {\n const anim = this.animation;\n\n if (!anim.changed) {\n anim.changed = true;\n sendEvent(this, 'onStart', getFinishedResult(this, checkFinished(this, anim.to)), this);\n }\n }\n\n _onChange(value, idle) {\n if (!idle) {\n this._onStart();\n\n callProp(this.animation.onChange, value, this);\n }\n\n callProp(this.defaultProps.onChange, value, this);\n\n super._onChange(value, idle);\n }\n\n _start() {\n const anim = this.animation;\n getAnimated(this).reset(getFluidValue(anim.to));\n\n if (!anim.immediate) {\n anim.fromValues = anim.values.map(node => node.lastPosition);\n }\n\n if (!isAnimating(this)) {\n setActiveBit(this, true);\n\n if (!isPaused(this)) {\n this._resume();\n }\n }\n }\n\n _resume() {\n if (Globals.skipAnimation) {\n this.finish();\n } else {\n frameLoop.start(this);\n }\n }\n\n _stop(goal, cancel) {\n if (isAnimating(this)) {\n setActiveBit(this, false);\n const anim = this.animation;\n each(anim.values, node => {\n node.done = true;\n });\n\n if (anim.toValues) {\n anim.onChange = anim.onPause = anim.onResume = undefined;\n }\n\n callFluidObservers(this, {\n type: 'idle',\n parent: this\n });\n const result = cancel ? getCancelledResult(this.get()) : getFinishedResult(this.get(), checkFinished(this, goal != null ? goal : anim.to));\n flushCalls(this._pendingCalls, result);\n\n if (anim.changed) {\n anim.changed = false;\n sendEvent(this, 'onRest', result, this);\n }\n }\n }\n\n}\n\nfunction checkFinished(target, to) {\n const goal = computeGoal(to);\n const value = computeGoal(target.get());\n return isEqual(value, goal);\n}\n\nfunction createLoopUpdate(props, loop = props.loop, to = props.to) {\n let loopRet = callProp(loop);\n\n if (loopRet) {\n const overrides = loopRet !== true && inferTo(loopRet);\n const reverse = (overrides || props).reverse;\n const reset = !overrides || overrides.reset;\n return createUpdate(_extends({}, props, {\n loop,\n default: false,\n pause: undefined,\n to: !reverse || isAsyncTo(to) ? to : undefined,\n from: reset ? props.from : undefined,\n reset\n }, overrides));\n }\n}\nfunction createUpdate(props) {\n const {\n to,\n from\n } = props = inferTo(props);\n const keys = new Set();\n if (is.obj(to)) findDefined(to, keys);\n if (is.obj(from)) findDefined(from, keys);\n props.keys = keys.size ? Array.from(keys) : null;\n return props;\n}\nfunction declareUpdate(props) {\n const update = createUpdate(props);\n\n if (is.und(update.default)) {\n update.default = getDefaultProps(update);\n }\n\n return update;\n}\n\nfunction findDefined(values, keys) {\n eachProp(values, (value, key) => value != null && keys.add(key));\n}\n\nconst ACTIVE_EVENTS = ['onStart', 'onRest', 'onChange', 'onPause', 'onResume'];\n\nfunction mergeActiveFn(target, props, type) {\n target.animation[type] = props[type] !== getDefaultProp(props, type) ? resolveProp(props[type], target.key) : undefined;\n}\n\nfunction sendEvent(target, type, ...args) {\n var _target$animation$typ, _target$animation, _target$defaultProps$, _target$defaultProps;\n\n (_target$animation$typ = (_target$animation = target.animation)[type]) == null ? void 0 : _target$animation$typ.call(_target$animation, ...args);\n (_target$defaultProps$ = (_target$defaultProps = target.defaultProps)[type]) == null ? void 0 : _target$defaultProps$.call(_target$defaultProps, ...args);\n}\n\nconst BATCHED_EVENTS = ['onStart', 'onChange', 'onRest'];\nlet nextId = 1;\nclass Controller {\n constructor(props, flush) {\n this.id = nextId++;\n this.springs = {};\n this.queue = [];\n this.ref = void 0;\n this._flush = void 0;\n this._initialProps = void 0;\n this._lastAsyncId = 0;\n this._active = new Set();\n this._changed = new Set();\n this._started = false;\n this._item = void 0;\n this._state = {\n paused: false,\n pauseQueue: new Set(),\n resumeQueue: new Set(),\n timeouts: new Set()\n };\n this._events = {\n onStart: new Map(),\n onChange: new Map(),\n onRest: new Map()\n };\n this._onFrame = this._onFrame.bind(this);\n\n if (flush) {\n this._flush = flush;\n }\n\n if (props) {\n this.start(_extends({\n default: true\n }, props));\n }\n }\n\n get idle() {\n return !this._state.asyncTo && Object.values(this.springs).every(spring => {\n return spring.idle && !spring.isDelayed && !spring.isPaused;\n });\n }\n\n get item() {\n return this._item;\n }\n\n set item(item) {\n this._item = item;\n }\n\n get() {\n const values = {};\n this.each((spring, key) => values[key] = spring.get());\n return values;\n }\n\n set(values) {\n for (const key in values) {\n const value = values[key];\n\n if (!is.und(value)) {\n this.springs[key].set(value);\n }\n }\n }\n\n update(props) {\n if (props) {\n this.queue.push(createUpdate(props));\n }\n\n return this;\n }\n\n start(props) {\n let {\n queue\n } = this;\n\n if (props) {\n queue = toArray(props).map(createUpdate);\n } else {\n this.queue = [];\n }\n\n if (this._flush) {\n return this._flush(this, queue);\n }\n\n prepareKeys(this, queue);\n return flushUpdateQueue(this, queue);\n }\n\n stop(arg, keys) {\n if (arg !== !!arg) {\n keys = arg;\n }\n\n if (keys) {\n const springs = this.springs;\n each(toArray(keys), key => springs[key].stop(!!arg));\n } else {\n stopAsync(this._state, this._lastAsyncId);\n this.each(spring => spring.stop(!!arg));\n }\n\n return this;\n }\n\n pause(keys) {\n if (is.und(keys)) {\n this.start({\n pause: true\n });\n } else {\n const springs = this.springs;\n each(toArray(keys), key => springs[key].pause());\n }\n\n return this;\n }\n\n resume(keys) {\n if (is.und(keys)) {\n this.start({\n pause: false\n });\n } else {\n const springs = this.springs;\n each(toArray(keys), key => springs[key].resume());\n }\n\n return this;\n }\n\n each(iterator) {\n eachProp(this.springs, iterator);\n }\n\n _onFrame() {\n const {\n onStart,\n onChange,\n onRest\n } = this._events;\n const active = this._active.size > 0;\n const changed = this._changed.size > 0;\n\n if (active && !this._started || changed && !this._started) {\n this._started = true;\n flush(onStart, ([onStart, result]) => {\n result.value = this.get();\n onStart(result, this, this._item);\n });\n }\n\n const idle = !active && this._started;\n const values = changed || idle && onRest.size ? this.get() : null;\n\n if (changed && onChange.size) {\n flush(onChange, ([onChange, result]) => {\n result.value = values;\n onChange(result, this, this._item);\n });\n }\n\n if (idle) {\n this._started = false;\n flush(onRest, ([onRest, result]) => {\n result.value = values;\n onRest(result, this, this._item);\n });\n }\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n this._changed.add(event.parent);\n\n if (!event.idle) {\n this._active.add(event.parent);\n }\n } else if (event.type == 'idle') {\n this._active.delete(event.parent);\n } else return;\n\n raf.onFrame(this._onFrame);\n }\n\n}\nfunction flushUpdateQueue(ctrl, queue) {\n return Promise.all(queue.map(props => flushUpdate(ctrl, props))).then(results => getCombinedResult(ctrl, results));\n}\nasync function flushUpdate(ctrl, props, isLoop) {\n const {\n keys,\n to,\n from,\n loop,\n onRest,\n onResolve\n } = props;\n const defaults = is.obj(props.default) && props.default;\n\n if (loop) {\n props.loop = false;\n }\n\n if (to === false) props.to = null;\n if (from === false) props.from = null;\n const asyncTo = is.arr(to) || is.fun(to) ? to : undefined;\n\n if (asyncTo) {\n props.to = undefined;\n props.onRest = undefined;\n\n if (defaults) {\n defaults.onRest = undefined;\n }\n } else {\n each(BATCHED_EVENTS, key => {\n const handler = props[key];\n\n if (is.fun(handler)) {\n const queue = ctrl['_events'][key];\n\n props[key] = ({\n finished,\n cancelled\n }) => {\n const result = queue.get(handler);\n\n if (result) {\n if (!finished) result.finished = false;\n if (cancelled) result.cancelled = true;\n } else {\n queue.set(handler, {\n value: null,\n finished: finished || false,\n cancelled: cancelled || false\n });\n }\n };\n\n if (defaults) {\n defaults[key] = props[key];\n }\n }\n });\n }\n\n const state = ctrl['_state'];\n\n if (props.pause === !state.paused) {\n state.paused = props.pause;\n flushCalls(props.pause ? state.pauseQueue : state.resumeQueue);\n } else if (state.paused) {\n props.pause = true;\n }\n\n const promises = (keys || Object.keys(ctrl.springs)).map(key => ctrl.springs[key].start(props));\n const cancel = props.cancel === true || getDefaultProp(props, 'cancel') === true;\n\n if (asyncTo || cancel && state.asyncId) {\n promises.push(scheduleProps(++ctrl['_lastAsyncId'], {\n props,\n state,\n actions: {\n pause: noop,\n resume: noop,\n\n start(props, resolve) {\n if (cancel) {\n stopAsync(state, ctrl['_lastAsyncId']);\n resolve(getCancelledResult(ctrl));\n } else {\n props.onRest = onRest;\n resolve(runAsync(asyncTo, props, state, ctrl));\n }\n }\n\n }\n }));\n }\n\n if (state.paused) {\n await new Promise(resume => {\n state.resumeQueue.add(resume);\n });\n }\n\n const result = getCombinedResult(ctrl, await Promise.all(promises));\n\n if (loop && result.finished && !(isLoop && result.noop)) {\n const nextProps = createLoopUpdate(props, loop, to);\n\n if (nextProps) {\n prepareKeys(ctrl, [nextProps]);\n return flushUpdate(ctrl, nextProps, true);\n }\n }\n\n if (onResolve) {\n raf.batchedUpdates(() => onResolve(result, ctrl, ctrl.item));\n }\n\n return result;\n}\nfunction getSprings(ctrl, props) {\n const springs = _extends({}, ctrl.springs);\n\n if (props) {\n each(toArray(props), props => {\n if (is.und(props.keys)) {\n props = createUpdate(props);\n }\n\n if (!is.obj(props.to)) {\n props = _extends({}, props, {\n to: undefined\n });\n }\n\n prepareSprings(springs, props, key => {\n return createSpring(key);\n });\n });\n }\n\n setSprings(ctrl, springs);\n return springs;\n}\nfunction setSprings(ctrl, springs) {\n eachProp(springs, (spring, key) => {\n if (!ctrl.springs[key]) {\n ctrl.springs[key] = spring;\n addFluidObserver(spring, ctrl);\n }\n });\n}\n\nfunction createSpring(key, observer) {\n const spring = new SpringValue();\n spring.key = key;\n\n if (observer) {\n addFluidObserver(spring, observer);\n }\n\n return spring;\n}\n\nfunction prepareSprings(springs, props, create) {\n if (props.keys) {\n each(props.keys, key => {\n const spring = springs[key] || (springs[key] = create(key));\n spring['_prepareNode'](props);\n });\n }\n}\n\nfunction prepareKeys(ctrl, queue) {\n each(queue, props => {\n prepareSprings(ctrl.springs, props, key => {\n return createSpring(key, ctrl);\n });\n });\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\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\n return target;\n}\n\nconst _excluded$3 = [\"children\"];\nconst SpringContext = _ref => {\n let {\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$3);\n\n const inherited = useContext(ctx);\n const pause = props.pause || !!inherited.pause,\n immediate = props.immediate || !!inherited.immediate;\n props = useMemoOne(() => ({\n pause,\n immediate\n }), [pause, immediate]);\n const {\n Provider\n } = ctx;\n return React.createElement(Provider, {\n value: props\n }, children);\n};\nconst ctx = makeContext(SpringContext, {});\nSpringContext.Provider = ctx.Provider;\nSpringContext.Consumer = ctx.Consumer;\n\nfunction makeContext(target, init) {\n Object.assign(target, React.createContext(init));\n target.Provider._context = target;\n target.Consumer._context = target;\n return target;\n}\n\nconst SpringRef = () => {\n const current = [];\n\n const SpringRef = function SpringRef(props) {\n deprecateDirectCall();\n const results = [];\n each(current, (ctrl, i) => {\n if (is.und(props)) {\n results.push(ctrl.start());\n } else {\n const update = _getProps(props, ctrl, i);\n\n if (update) {\n results.push(ctrl.start(update));\n }\n }\n });\n return results;\n };\n\n SpringRef.current = current;\n\n SpringRef.add = function (ctrl) {\n if (!current.includes(ctrl)) {\n current.push(ctrl);\n }\n };\n\n SpringRef.delete = function (ctrl) {\n const i = current.indexOf(ctrl);\n if (~i) current.splice(i, 1);\n };\n\n SpringRef.pause = function () {\n each(current, ctrl => ctrl.pause(...arguments));\n return this;\n };\n\n SpringRef.resume = function () {\n each(current, ctrl => ctrl.resume(...arguments));\n return this;\n };\n\n SpringRef.set = function (values) {\n each(current, ctrl => ctrl.set(values));\n };\n\n SpringRef.start = function (props) {\n const results = [];\n each(current, (ctrl, i) => {\n if (is.und(props)) {\n results.push(ctrl.start());\n } else {\n const update = this._getProps(props, ctrl, i);\n\n if (update) {\n results.push(ctrl.start(update));\n }\n }\n });\n return results;\n };\n\n SpringRef.stop = function () {\n each(current, ctrl => ctrl.stop(...arguments));\n return this;\n };\n\n SpringRef.update = function (props) {\n each(current, (ctrl, i) => ctrl.update(this._getProps(props, ctrl, i)));\n return this;\n };\n\n const _getProps = function _getProps(arg, ctrl, index) {\n return is.fun(arg) ? arg(index, ctrl) : arg;\n };\n\n SpringRef._getProps = _getProps;\n return SpringRef;\n};\n\nfunction useSprings(length, props, deps) {\n const propsFn = is.fun(props) && props;\n if (propsFn && !deps) deps = [];\n const ref = useMemo(() => propsFn || arguments.length == 3 ? SpringRef() : void 0, []);\n const layoutId = useRef(0);\n const forceUpdate = useForceUpdate();\n const state = useMemo(() => ({\n ctrls: [],\n queue: [],\n\n flush(ctrl, updates) {\n const springs = getSprings(ctrl, updates);\n const canFlushSync = layoutId.current > 0 && !state.queue.length && !Object.keys(springs).some(key => !ctrl.springs[key]);\n return canFlushSync ? flushUpdateQueue(ctrl, updates) : new Promise(resolve => {\n setSprings(ctrl, springs);\n state.queue.push(() => {\n resolve(flushUpdateQueue(ctrl, updates));\n });\n forceUpdate();\n });\n }\n\n }), []);\n const ctrls = useRef([...state.ctrls]);\n const updates = [];\n const prevLength = usePrev(length) || 0;\n useMemo(() => {\n each(ctrls.current.slice(length, prevLength), ctrl => {\n detachRefs(ctrl, ref);\n ctrl.stop(true);\n });\n ctrls.current.length = length;\n declareUpdates(prevLength, length);\n }, [length]);\n useMemo(() => {\n declareUpdates(0, Math.min(prevLength, length));\n }, deps);\n\n function declareUpdates(startIndex, endIndex) {\n for (let i = startIndex; i < endIndex; i++) {\n const ctrl = ctrls.current[i] || (ctrls.current[i] = new Controller(null, state.flush));\n const update = propsFn ? propsFn(i, ctrl) : props[i];\n\n if (update) {\n updates[i] = declareUpdate(update);\n }\n }\n }\n\n const springs = ctrls.current.map((ctrl, i) => getSprings(ctrl, updates[i]));\n const context = useContext(SpringContext);\n const prevContext = usePrev(context);\n const hasContext = context !== prevContext && hasProps(context);\n useIsomorphicLayoutEffect(() => {\n layoutId.current++;\n state.ctrls = ctrls.current;\n const {\n queue\n } = state;\n\n if (queue.length) {\n state.queue = [];\n each(queue, cb => cb());\n }\n\n each(ctrls.current, (ctrl, i) => {\n ref == null ? void 0 : ref.add(ctrl);\n\n if (hasContext) {\n ctrl.start({\n default: context\n });\n }\n\n const update = updates[i];\n\n if (update) {\n replaceRef(ctrl, update.ref);\n\n if (ctrl.ref) {\n ctrl.queue.push(update);\n } else {\n ctrl.start(update);\n }\n }\n });\n });\n useOnce(() => () => {\n each(state.ctrls, ctrl => ctrl.stop(true));\n });\n const values = springs.map(x => _extends({}, x));\n return ref ? [values, ref] : values;\n}\n\nfunction useSpring(props, deps) {\n const isFn = is.fun(props);\n const [[values], ref] = useSprings(1, isFn ? props : [props], isFn ? deps || [] : deps);\n return isFn || arguments.length == 2 ? [values, ref] : values;\n}\n\nconst initSpringRef = () => SpringRef();\n\nconst useSpringRef = () => useState(initSpringRef)[0];\n\nfunction useTrail(length, propsArg, deps) {\n var _passedRef;\n\n const propsFn = is.fun(propsArg) && propsArg;\n if (propsFn && !deps) deps = [];\n let reverse = true;\n let passedRef = undefined;\n const result = useSprings(length, (i, ctrl) => {\n const props = propsFn ? propsFn(i, ctrl) : propsArg;\n passedRef = props.ref;\n reverse = reverse && props.reverse;\n return props;\n }, deps || [{}]);\n const ref = (_passedRef = passedRef) != null ? _passedRef : result[1];\n useIsomorphicLayoutEffect(() => {\n each(ref.current, (ctrl, i) => {\n const parent = ref.current[i + (reverse ? 1 : -1)];\n\n if (parent) {\n ctrl.start({\n to: parent.springs\n });\n } else {\n ctrl.start();\n }\n });\n }, deps);\n\n if (propsFn || arguments.length == 3) {\n ref['_getProps'] = (propsArg, ctrl, i) => {\n const props = is.fun(propsArg) ? propsArg(i, ctrl) : propsArg;\n\n if (props) {\n const parent = ref.current[i + (props.reverse ? 1 : -1)];\n if (parent) props.to = parent.springs;\n return props;\n }\n };\n\n return result;\n }\n\n ref['start'] = propsArg => {\n const results = [];\n each(ref.current, (ctrl, i) => {\n const props = is.fun(propsArg) ? propsArg(i, ctrl) : propsArg;\n const parent = ref.current[i + (reverse ? 1 : -1)];\n\n if (parent) {\n results.push(ctrl.start(_extends({}, props, {\n to: parent.springs\n })));\n } else {\n results.push(ctrl.start(_extends({}, props)));\n }\n });\n return results;\n };\n\n return result[0];\n}\n\nlet TransitionPhase;\n\n(function (TransitionPhase) {\n TransitionPhase[\"MOUNT\"] = \"mount\";\n TransitionPhase[\"ENTER\"] = \"enter\";\n TransitionPhase[\"UPDATE\"] = \"update\";\n TransitionPhase[\"LEAVE\"] = \"leave\";\n})(TransitionPhase || (TransitionPhase = {}));\n\nfunction useTransition(data, props, deps) {\n const propsFn = is.fun(props) && props;\n const {\n reset,\n sort,\n trail = 0,\n expires = true,\n exitBeforeEnter = false,\n onDestroyed,\n ref: propsRef,\n config: propsConfig\n } = propsFn ? propsFn() : props;\n const ref = useMemo(() => propsFn || arguments.length == 3 ? SpringRef() : void 0, []);\n const items = toArray(data);\n const transitions = [];\n const usedTransitions = useRef(null);\n const prevTransitions = reset ? null : usedTransitions.current;\n useIsomorphicLayoutEffect(() => {\n usedTransitions.current = transitions;\n });\n useOnce(() => {\n each(transitions, t => {\n ref == null ? void 0 : ref.add(t.ctrl);\n t.ctrl.ref = ref;\n });\n return () => {\n each(usedTransitions.current, t => {\n if (t.expired) {\n clearTimeout(t.expirationId);\n }\n\n detachRefs(t.ctrl, ref);\n t.ctrl.stop(true);\n });\n };\n });\n const keys = getKeys(items, propsFn ? propsFn() : props, prevTransitions);\n const expired = reset && usedTransitions.current || [];\n useIsomorphicLayoutEffect(() => each(expired, ({\n ctrl,\n item,\n key\n }) => {\n detachRefs(ctrl, ref);\n callProp(onDestroyed, item, key);\n }));\n const reused = [];\n if (prevTransitions) each(prevTransitions, (t, i) => {\n if (t.expired) {\n clearTimeout(t.expirationId);\n expired.push(t);\n } else {\n i = reused[i] = keys.indexOf(t.key);\n if (~i) transitions[i] = t;\n }\n });\n each(items, (item, i) => {\n if (!transitions[i]) {\n transitions[i] = {\n key: keys[i],\n item,\n phase: TransitionPhase.MOUNT,\n ctrl: new Controller()\n };\n transitions[i].ctrl.item = item;\n }\n });\n\n if (reused.length) {\n let i = -1;\n const {\n leave\n } = propsFn ? propsFn() : props;\n each(reused, (keyIndex, prevIndex) => {\n const t = prevTransitions[prevIndex];\n\n if (~keyIndex) {\n i = transitions.indexOf(t);\n transitions[i] = _extends({}, t, {\n item: items[keyIndex]\n });\n } else if (leave) {\n transitions.splice(++i, 0, t);\n }\n });\n }\n\n if (is.fun(sort)) {\n transitions.sort((a, b) => sort(a.item, b.item));\n }\n\n let delay = -trail;\n const forceUpdate = useForceUpdate();\n const defaultProps = getDefaultProps(props);\n const changes = new Map();\n const exitingTransitions = useRef(new Map());\n const forceChange = useRef(false);\n each(transitions, (t, i) => {\n const key = t.key;\n const prevPhase = t.phase;\n const p = propsFn ? propsFn() : props;\n let to;\n let phase;\n let propsDelay = callProp(p.delay || 0, key);\n\n if (prevPhase == TransitionPhase.MOUNT) {\n to = p.enter;\n phase = TransitionPhase.ENTER;\n } else {\n const isLeave = keys.indexOf(key) < 0;\n\n if (prevPhase != TransitionPhase.LEAVE) {\n if (isLeave) {\n to = p.leave;\n phase = TransitionPhase.LEAVE;\n } else if (to = p.update) {\n phase = TransitionPhase.UPDATE;\n } else return;\n } else if (!isLeave) {\n to = p.enter;\n phase = TransitionPhase.ENTER;\n } else return;\n }\n\n to = callProp(to, t.item, i);\n to = is.obj(to) ? inferTo(to) : {\n to\n };\n\n if (!to.config) {\n const config = propsConfig || defaultProps.config;\n to.config = callProp(config, t.item, i, phase);\n }\n\n delay += trail;\n\n const payload = _extends({}, defaultProps, {\n delay: propsDelay + delay,\n ref: propsRef,\n immediate: p.immediate,\n reset: false\n }, to);\n\n if (phase == TransitionPhase.ENTER && is.und(payload.from)) {\n const _p = propsFn ? propsFn() : props;\n\n const from = is.und(_p.initial) || prevTransitions ? _p.from : _p.initial;\n payload.from = callProp(from, t.item, i);\n }\n\n const {\n onResolve\n } = payload;\n\n payload.onResolve = result => {\n callProp(onResolve, result);\n const transitions = usedTransitions.current;\n const t = transitions.find(t => t.key === key);\n if (!t) return;\n\n if (result.cancelled && t.phase != TransitionPhase.UPDATE) {\n return;\n }\n\n if (t.ctrl.idle) {\n const idle = transitions.every(t => t.ctrl.idle);\n\n if (t.phase == TransitionPhase.LEAVE) {\n const expiry = callProp(expires, t.item);\n\n if (expiry !== false) {\n const expiryMs = expiry === true ? 0 : expiry;\n t.expired = true;\n\n if (!idle && expiryMs > 0) {\n if (expiryMs <= 0x7fffffff) t.expirationId = setTimeout(forceUpdate, expiryMs);\n return;\n }\n }\n }\n\n if (idle && transitions.some(t => t.expired)) {\n exitingTransitions.current.delete(t);\n\n if (exitBeforeEnter) {\n forceChange.current = true;\n }\n\n forceUpdate();\n }\n }\n };\n\n const springs = getSprings(t.ctrl, payload);\n\n if (phase === TransitionPhase.LEAVE && exitBeforeEnter) {\n exitingTransitions.current.set(t, {\n phase,\n springs,\n payload\n });\n } else {\n changes.set(t, {\n phase,\n springs,\n payload\n });\n }\n });\n const context = useContext(SpringContext);\n const prevContext = usePrev(context);\n const hasContext = context !== prevContext && hasProps(context);\n useIsomorphicLayoutEffect(() => {\n if (hasContext) {\n each(transitions, t => {\n t.ctrl.start({\n default: context\n });\n });\n }\n }, [context]);\n each(changes, (_, t) => {\n if (exitingTransitions.current.size) {\n const ind = transitions.findIndex(state => state.key === t.key);\n transitions.splice(ind, 1);\n }\n });\n useIsomorphicLayoutEffect(() => {\n each(exitingTransitions.current.size ? exitingTransitions.current : changes, ({\n phase,\n payload\n }, t) => {\n const {\n ctrl\n } = t;\n t.phase = phase;\n ref == null ? void 0 : ref.add(ctrl);\n\n if (hasContext && phase == TransitionPhase.ENTER) {\n ctrl.start({\n default: context\n });\n }\n\n if (payload) {\n replaceRef(ctrl, payload.ref);\n\n if ((ctrl.ref || ref) && !forceChange.current) {\n ctrl.update(payload);\n } else {\n ctrl.start(payload);\n\n if (forceChange.current) {\n forceChange.current = false;\n }\n }\n }\n });\n }, reset ? void 0 : deps);\n\n const renderTransitions = render => React.createElement(React.Fragment, null, transitions.map((t, i) => {\n const {\n springs\n } = changes.get(t) || t.ctrl;\n const elem = render(_extends({}, springs), t.item, t, i);\n return elem && elem.type ? React.createElement(elem.type, _extends({}, elem.props, {\n key: is.str(t.key) || is.num(t.key) ? t.key : t.ctrl.id,\n ref: elem.ref\n })) : elem;\n }));\n\n return ref ? [renderTransitions, ref] : renderTransitions;\n}\nlet nextKey = 1;\n\nfunction getKeys(items, {\n key,\n keys = key\n}, prevTransitions) {\n if (keys === null) {\n const reused = new Set();\n return items.map(item => {\n const t = prevTransitions && prevTransitions.find(t => t.item === item && t.phase !== TransitionPhase.LEAVE && !reused.has(t));\n\n if (t) {\n reused.add(t);\n return t.key;\n }\n\n return nextKey++;\n });\n }\n\n return is.und(keys) ? items : is.fun(keys) ? items.map(keys) : toArray(keys);\n}\n\nconst _excluded$2 = [\"children\"];\nfunction Spring(_ref) {\n let {\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n return children(useSpring(props));\n}\n\nconst _excluded$1 = [\"items\", \"children\"];\nfunction Trail(_ref) {\n let {\n items,\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n const trails = useTrail(items.length, props);\n return items.map((item, index) => {\n const result = children(item, index);\n return is.fun(result) ? result(trails[index]) : result;\n });\n}\n\nconst _excluded = [\"items\", \"children\"];\nfunction Transition(_ref) {\n let {\n items,\n children\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return useTransition(items, props)(children);\n}\n\nclass Interpolation extends FrameValue {\n constructor(source, args) {\n super();\n this.key = void 0;\n this.idle = true;\n this.calc = void 0;\n this._active = new Set();\n this.source = source;\n this.calc = createInterpolator(...args);\n\n const value = this._get();\n\n const nodeType = getAnimatedType(value);\n setAnimated(this, nodeType.create(value));\n }\n\n advance(_dt) {\n const value = this._get();\n\n const oldValue = this.get();\n\n if (!isEqual(value, oldValue)) {\n getAnimated(this).setValue(value);\n\n this._onChange(value, this.idle);\n }\n\n if (!this.idle && checkIdle(this._active)) {\n becomeIdle(this);\n }\n }\n\n _get() {\n const inputs = is.arr(this.source) ? this.source.map(getFluidValue) : toArray(getFluidValue(this.source));\n return this.calc(...inputs);\n }\n\n _start() {\n if (this.idle && !checkIdle(this._active)) {\n this.idle = false;\n each(getPayload(this), node => {\n node.done = false;\n });\n\n if (Globals.skipAnimation) {\n raf.batchedUpdates(() => this.advance());\n becomeIdle(this);\n } else {\n frameLoop.start(this);\n }\n }\n }\n\n _attach() {\n let priority = 1;\n each(toArray(this.source), source => {\n if (hasFluidValue(source)) {\n addFluidObserver(source, this);\n }\n\n if (isFrameValue(source)) {\n if (!source.idle) {\n this._active.add(source);\n }\n\n priority = Math.max(priority, source.priority + 1);\n }\n });\n this.priority = priority;\n\n this._start();\n }\n\n _detach() {\n each(toArray(this.source), source => {\n if (hasFluidValue(source)) {\n removeFluidObserver(source, this);\n }\n });\n\n this._active.clear();\n\n becomeIdle(this);\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n if (event.idle) {\n this.advance();\n } else {\n this._active.add(event.parent);\n\n this._start();\n }\n } else if (event.type == 'idle') {\n this._active.delete(event.parent);\n } else if (event.type == 'priority') {\n this.priority = toArray(this.source).reduce((highest, parent) => Math.max(highest, (isFrameValue(parent) ? parent.priority : 0) + 1), 0);\n }\n }\n\n}\n\nfunction isIdle(source) {\n return source.idle !== false;\n}\n\nfunction checkIdle(active) {\n return !active.size || Array.from(active).every(isIdle);\n}\n\nfunction becomeIdle(self) {\n if (!self.idle) {\n self.idle = true;\n each(getPayload(self), node => {\n node.done = true;\n });\n callFluidObservers(self, {\n type: 'idle',\n parent: self\n });\n }\n}\n\nconst to = (source, ...args) => new Interpolation(source, args);\nconst interpolate = (source, ...args) => (deprecateInterpolate(), new Interpolation(source, args));\n\nGlobals.assign({\n createStringInterpolator,\n to: (source, args) => new Interpolation(source, args)\n});\nconst update = frameLoop.advance;\n\nexport { BailSignal, Controller, FrameValue, Interpolation, Spring, SpringContext, SpringRef, SpringValue, Trail, Transition, config, easings, inferTo, interpolate, to, update, useChain, useSpring, useSpringRef, useSprings, useTrail, useTransition };\n","let updateQueue = makeQueue();\nconst raf = fn => schedule(fn, updateQueue);\nlet writeQueue = makeQueue();\n\nraf.write = fn => schedule(fn, writeQueue);\n\nlet onStartQueue = makeQueue();\n\nraf.onStart = fn => schedule(fn, onStartQueue);\n\nlet onFrameQueue = makeQueue();\n\nraf.onFrame = fn => schedule(fn, onFrameQueue);\n\nlet onFinishQueue = makeQueue();\n\nraf.onFinish = fn => schedule(fn, onFinishQueue);\n\nlet timeouts = [];\n\nraf.setTimeout = (handler, ms) => {\n let time = raf.now() + ms;\n\n let cancel = () => {\n let i = timeouts.findIndex(t => t.cancel == cancel);\n if (~i) timeouts.splice(i, 1);\n pendingCount -= ~i ? 1 : 0;\n };\n\n let timeout = {\n time,\n handler,\n cancel\n };\n timeouts.splice(findTimeout(time), 0, timeout);\n pendingCount += 1;\n start();\n return timeout;\n};\n\nlet findTimeout = time => ~(~timeouts.findIndex(t => t.time > time) || ~timeouts.length);\n\nraf.cancel = fn => {\n onStartQueue.delete(fn);\n onFrameQueue.delete(fn);\n onFinishQueue.delete(fn);\n updateQueue.delete(fn);\n writeQueue.delete(fn);\n};\n\nraf.sync = fn => {\n sync = true;\n raf.batchedUpdates(fn);\n sync = false;\n};\n\nraf.throttle = fn => {\n let lastArgs;\n\n function queuedFn() {\n try {\n fn(...lastArgs);\n } finally {\n lastArgs = null;\n }\n }\n\n function throttled(...args) {\n lastArgs = args;\n raf.onStart(queuedFn);\n }\n\n throttled.handler = fn;\n\n throttled.cancel = () => {\n onStartQueue.delete(queuedFn);\n lastArgs = null;\n };\n\n return throttled;\n};\n\nlet nativeRaf = typeof window != 'undefined' ? window.requestAnimationFrame : () => {};\n\nraf.use = impl => nativeRaf = impl;\n\nraf.now = typeof performance != 'undefined' ? () => performance.now() : Date.now;\n\nraf.batchedUpdates = fn => fn();\n\nraf.catch = console.error;\nraf.frameLoop = 'always';\n\nraf.advance = () => {\n if (raf.frameLoop !== 'demand') {\n console.warn('Cannot call the manual advancement of rafz whilst frameLoop is not set as demand');\n } else {\n update();\n }\n};\n\nlet ts = -1;\nlet pendingCount = 0;\nlet sync = false;\n\nfunction schedule(fn, queue) {\n if (sync) {\n queue.delete(fn);\n fn(0);\n } else {\n queue.add(fn);\n start();\n }\n}\n\nfunction start() {\n if (ts < 0) {\n ts = 0;\n\n if (raf.frameLoop !== 'demand') {\n nativeRaf(loop);\n }\n }\n}\n\nfunction stop() {\n ts = -1;\n}\n\nfunction loop() {\n if (~ts) {\n nativeRaf(loop);\n raf.batchedUpdates(update);\n }\n}\n\nfunction update() {\n let prevTs = ts;\n ts = raf.now();\n let count = findTimeout(ts);\n\n if (count) {\n eachSafely(timeouts.splice(0, count), t => t.handler());\n pendingCount -= count;\n }\n\n if (!pendingCount) {\n stop();\n return;\n }\n\n onStartQueue.flush();\n updateQueue.flush(prevTs ? Math.min(64, ts - prevTs) : 16.667);\n onFrameQueue.flush();\n writeQueue.flush();\n onFinishQueue.flush();\n}\n\nfunction makeQueue() {\n let next = new Set();\n let current = next;\n return {\n add(fn) {\n pendingCount += current == next && !next.has(fn) ? 1 : 0;\n next.add(fn);\n },\n\n delete(fn) {\n pendingCount -= current == next && next.has(fn) ? 1 : 0;\n return next.delete(fn);\n },\n\n flush(arg) {\n if (current.size) {\n next = new Set();\n pendingCount -= current.size;\n eachSafely(current, fn => fn(arg) && next.add(fn));\n pendingCount += next.size;\n current = next;\n }\n }\n\n };\n}\n\nfunction eachSafely(values, each) {\n values.forEach(value => {\n try {\n each(value);\n } catch (e) {\n raf.catch(e);\n }\n });\n}\n\nconst __raf = {\n count() {\n return pendingCount;\n },\n\n isRunning() {\n return ts >= 0;\n },\n\n clear() {\n ts = -1;\n timeouts = [];\n onStartQueue = makeQueue();\n updateQueue = makeQueue();\n onFrameQueue = makeQueue();\n writeQueue = makeQueue();\n onFinishQueue = makeQueue();\n pendingCount = 0;\n }\n\n};\n\nexport { __raf, raf };\n","import { raf } from '@react-spring/rafz';\nexport { raf } from '@react-spring/rafz';\nimport { useEffect, useLayoutEffect, useRef, useState } from 'react';\n\nfunction noop() {}\nconst defineHidden = (obj, key, value) => Object.defineProperty(obj, key, {\n value,\n writable: true,\n configurable: true\n});\nconst is = {\n arr: Array.isArray,\n obj: a => !!a && a.constructor.name === 'Object',\n fun: a => typeof a === 'function',\n str: a => typeof a === 'string',\n num: a => typeof a === 'number',\n und: a => a === undefined\n};\nfunction isEqual(a, b) {\n if (is.arr(a)) {\n if (!is.arr(b) || a.length !== b.length) return false;\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n return a === b;\n}\nconst each = (obj, fn) => obj.forEach(fn);\nfunction eachProp(obj, fn, ctx) {\n if (is.arr(obj)) {\n for (let i = 0; i < obj.length; i++) {\n fn.call(ctx, obj[i], `${i}`);\n }\n\n return;\n }\n\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(ctx, obj[key], key);\n }\n }\n}\nconst toArray = a => is.und(a) ? [] : is.arr(a) ? a : [a];\nfunction flush(queue, iterator) {\n if (queue.size) {\n const items = Array.from(queue);\n queue.clear();\n each(items, iterator);\n }\n}\nconst flushCalls = (queue, ...args) => flush(queue, fn => fn(...args));\nconst isSSR = () => typeof window === 'undefined' || !window.navigator || /ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);\n\nlet createStringInterpolator$1;\nlet to;\nlet colors$1 = null;\nlet skipAnimation = false;\nlet willAdvance = noop;\nconst assign = globals => {\n if (globals.to) to = globals.to;\n if (globals.now) raf.now = globals.now;\n if (globals.colors !== undefined) colors$1 = globals.colors;\n if (globals.skipAnimation != null) skipAnimation = globals.skipAnimation;\n if (globals.createStringInterpolator) createStringInterpolator$1 = globals.createStringInterpolator;\n if (globals.requestAnimationFrame) raf.use(globals.requestAnimationFrame);\n if (globals.batchedUpdates) raf.batchedUpdates = globals.batchedUpdates;\n if (globals.willAdvance) willAdvance = globals.willAdvance;\n if (globals.frameLoop) raf.frameLoop = globals.frameLoop;\n};\n\nvar globals = /*#__PURE__*/Object.freeze({\n __proto__: null,\n get createStringInterpolator () { return createStringInterpolator$1; },\n get to () { return to; },\n get colors () { return colors$1; },\n get skipAnimation () { return skipAnimation; },\n get willAdvance () { return willAdvance; },\n assign: assign\n});\n\nconst startQueue = new Set();\nlet currentFrame = [];\nlet prevFrame = [];\nlet priority = 0;\nconst frameLoop = {\n get idle() {\n return !startQueue.size && !currentFrame.length;\n },\n\n start(animation) {\n if (priority > animation.priority) {\n startQueue.add(animation);\n raf.onStart(flushStartQueue);\n } else {\n startSafely(animation);\n raf(advance);\n }\n },\n\n advance,\n\n sort(animation) {\n if (priority) {\n raf.onFrame(() => frameLoop.sort(animation));\n } else {\n const prevIndex = currentFrame.indexOf(animation);\n\n if (~prevIndex) {\n currentFrame.splice(prevIndex, 1);\n startUnsafely(animation);\n }\n }\n },\n\n clear() {\n currentFrame = [];\n startQueue.clear();\n }\n\n};\n\nfunction flushStartQueue() {\n startQueue.forEach(startSafely);\n startQueue.clear();\n raf(advance);\n}\n\nfunction startSafely(animation) {\n if (!currentFrame.includes(animation)) startUnsafely(animation);\n}\n\nfunction startUnsafely(animation) {\n currentFrame.splice(findIndex(currentFrame, other => other.priority > animation.priority), 0, animation);\n}\n\nfunction advance(dt) {\n const nextFrame = prevFrame;\n\n for (let i = 0; i < currentFrame.length; i++) {\n const animation = currentFrame[i];\n priority = animation.priority;\n\n if (!animation.idle) {\n willAdvance(animation);\n animation.advance(dt);\n\n if (!animation.idle) {\n nextFrame.push(animation);\n }\n }\n }\n\n priority = 0;\n prevFrame = currentFrame;\n prevFrame.length = 0;\n currentFrame = nextFrame;\n return currentFrame.length > 0;\n}\n\nfunction findIndex(arr, test) {\n const index = arr.findIndex(test);\n return index < 0 ? arr.length : index;\n}\n\nconst colors = {\n transparent: 0x00000000,\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff\n};\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...parts) {\n return '\\\\(\\\\s*(' + parts.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nconst rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\nconst rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));\nconst hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));\nconst hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\nconst hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nconst hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nconst hex6 = /^#([0-9a-fA-F]{6})$/;\nconst hex8 = /^#([0-9a-fA-F]{8})$/;\n\nfunction normalizeColor(color) {\n let match;\n\n if (typeof color === 'number') {\n return color >>> 0 === color && color >= 0 && color <= 0xffffffff ? color : null;\n }\n\n if (match = hex6.exec(color)) return parseInt(match[1] + 'ff', 16) >>> 0;\n\n if (colors$1 && colors$1[color] !== undefined) {\n return colors$1[color];\n }\n\n if (match = rgb.exec(color)) {\n return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | 0x000000ff) >>> 0;\n }\n\n if (match = rgba.exec(color)) {\n return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | parse1(match[4])) >>> 0;\n }\n\n if (match = hex3.exec(color)) {\n return parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + 'ff', 16) >>> 0;\n }\n\n if (match = hex8.exec(color)) return parseInt(match[1], 16) >>> 0;\n\n if (match = hex4.exec(color)) {\n return parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + match[4] + match[4], 16) >>> 0;\n }\n\n if (match = hsl.exec(color)) {\n return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | 0x000000ff) >>> 0;\n }\n\n if (match = hsla.exec(color)) {\n return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | parse1(match[4])) >>> 0;\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) return 0;\n if (int > 255) return 255;\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (int % 360 + 360) % 360 / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) return 0;\n if (num > 1) return 255;\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n const int = parseFloat(str);\n if (int < 0) return 0;\n if (int > 100) return 1;\n return int / 100;\n}\n\nfunction colorToRgba(input) {\n let int32Color = normalizeColor(input);\n if (int32Color === null) return input;\n int32Color = int32Color || 0;\n let r = (int32Color & 0xff000000) >>> 24;\n let g = (int32Color & 0x00ff0000) >>> 16;\n let b = (int32Color & 0x0000ff00) >>> 8;\n let a = (int32Color & 0x000000ff) / 255;\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n}\n\nconst createInterpolator = (range, output, extrapolate) => {\n if (is.fun(range)) {\n return range;\n }\n\n if (is.arr(range)) {\n return createInterpolator({\n range,\n output: output,\n extrapolate\n });\n }\n\n if (is.str(range.output[0])) {\n return createStringInterpolator$1(range);\n }\n\n const config = range;\n const outputRange = config.output;\n const inputRange = config.range || [0, 1];\n const extrapolateLeft = config.extrapolateLeft || config.extrapolate || 'extend';\n const extrapolateRight = config.extrapolateRight || config.extrapolate || 'extend';\n\n const easing = config.easing || (t => t);\n\n return input => {\n const range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, config.map);\n };\n};\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {\n let result = map ? map(input) : input;\n\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') return result;else if (extrapolateLeft === 'clamp') result = inputMin;\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') return result;else if (extrapolateRight === 'clamp') result = inputMax;\n }\n\n if (outputMin === outputMax) return outputMin;\n if (inputMin === inputMax) return input <= inputMin ? outputMin : outputMax;\n if (inputMin === -Infinity) result = -result;else if (inputMax === Infinity) result = result - inputMin;else result = (result - inputMin) / (inputMax - inputMin);\n result = easing(result);\n if (outputMin === -Infinity) result = -result;else if (outputMax === Infinity) result = result + outputMin;else result = result * (outputMax - outputMin) + outputMin;\n return result;\n}\n\nfunction findRange(input, inputRange) {\n for (var i = 1; i < inputRange.length - 1; ++i) if (inputRange[i] >= input) break;\n\n return i - 1;\n}\n\nfunction _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\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nconst $get = Symbol.for('FluidValue.get');\nconst $observers = Symbol.for('FluidValue.observers');\n\nconst hasFluidValue = arg => Boolean(arg && arg[$get]);\n\nconst getFluidValue = arg => arg && arg[$get] ? arg[$get]() : arg;\n\nconst getFluidObservers = target => target[$observers] || null;\n\nfunction callFluidObserver(observer, event) {\n if (observer.eventObserved) {\n observer.eventObserved(event);\n } else {\n observer(event);\n }\n}\n\nfunction callFluidObservers(target, event) {\n let observers = target[$observers];\n\n if (observers) {\n observers.forEach(observer => {\n callFluidObserver(observer, event);\n });\n }\n}\n\nclass FluidValue {\n constructor(get) {\n this[$get] = void 0;\n this[$observers] = void 0;\n\n if (!get && !(get = this.get)) {\n throw Error('Unknown getter');\n }\n\n setFluidGetter(this, get);\n }\n\n}\n\nconst setFluidGetter = (target, get) => setHidden(target, $get, get);\n\nfunction addFluidObserver(target, observer) {\n if (target[$get]) {\n let observers = target[$observers];\n\n if (!observers) {\n setHidden(target, $observers, observers = new Set());\n }\n\n if (!observers.has(observer)) {\n observers.add(observer);\n\n if (target.observerAdded) {\n target.observerAdded(observers.size, observer);\n }\n }\n }\n\n return observer;\n}\n\nfunction removeFluidObserver(target, observer) {\n let observers = target[$observers];\n\n if (observers && observers.has(observer)) {\n const count = observers.size - 1;\n\n if (count) {\n observers.delete(observer);\n } else {\n target[$observers] = null;\n }\n\n if (target.observerRemoved) {\n target.observerRemoved(count, observer);\n }\n }\n}\n\nconst setHidden = (target, key, value) => Object.defineProperty(target, key, {\n value,\n writable: true,\n configurable: true\n});\n\nconst numberRegex = /[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g;\nconst colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi;\nconst unitRegex = new RegExp(`(${numberRegex.source})(%|[a-z]+)`, 'i');\nconst rgbaRegex = /rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi;\nconst cssVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\n\nconst variableToRgba = input => {\n const [token, fallback] = parseCSSVariable(input);\n\n if (!token || isSSR()) {\n return input;\n }\n\n const value = window.getComputedStyle(document.documentElement).getPropertyValue(token);\n\n if (value) {\n return value.trim();\n } else if (fallback && fallback.startsWith('--')) {\n const _value = window.getComputedStyle(document.documentElement).getPropertyValue(fallback);\n\n if (_value) {\n return _value;\n } else {\n return input;\n }\n } else if (fallback && cssVariableRegex.test(fallback)) {\n return variableToRgba(fallback);\n } else if (fallback) {\n return fallback;\n }\n\n return input;\n};\n\nconst parseCSSVariable = current => {\n const match = cssVariableRegex.exec(current);\n if (!match) return [,];\n const [, token, fallback] = match;\n return [token, fallback];\n};\n\nlet namedColorRegex;\n\nconst rgbaRound = (_, p1, p2, p3, p4) => `rgba(${Math.round(p1)}, ${Math.round(p2)}, ${Math.round(p3)}, ${p4})`;\n\nconst createStringInterpolator = config => {\n if (!namedColorRegex) namedColorRegex = colors$1 ? new RegExp(`(${Object.keys(colors$1).join('|')})(?!\\\\w)`, 'g') : /^\\b$/;\n const output = config.output.map(value => {\n return getFluidValue(value).replace(cssVariableRegex, variableToRgba).replace(colorRegex, colorToRgba).replace(namedColorRegex, colorToRgba);\n });\n const keyframes = output.map(value => value.match(numberRegex).map(Number));\n const outputRanges = keyframes[0].map((_, i) => keyframes.map(values => {\n if (!(i in values)) {\n throw Error('The arity of each \"output\" value must be equal');\n }\n\n return values[i];\n }));\n const interpolators = outputRanges.map(output => createInterpolator(_extends({}, config, {\n output\n })));\n return input => {\n var _output$find;\n\n const missingUnit = !unitRegex.test(output[0]) && ((_output$find = output.find(value => unitRegex.test(value))) == null ? void 0 : _output$find.replace(numberRegex, ''));\n let i = 0;\n return output[0].replace(numberRegex, () => `${interpolators[i++](input)}${missingUnit || ''}`).replace(rgbaRegex, rgbaRound);\n };\n};\n\nconst prefix = 'react-spring: ';\n\nconst once = fn => {\n const func = fn;\n let called = false;\n\n if (typeof func != 'function') {\n throw new TypeError(`${prefix}once requires a function parameter`);\n }\n\n return (...args) => {\n if (!called) {\n func(...args);\n called = true;\n }\n };\n};\n\nconst warnInterpolate = once(console.warn);\nfunction deprecateInterpolate() {\n warnInterpolate(`${prefix}The \"interpolate\" function is deprecated in v9 (use \"to\" instead)`);\n}\nconst warnDirectCall = once(console.warn);\nfunction deprecateDirectCall() {\n warnDirectCall(`${prefix}Directly calling start instead of using the api object is deprecated in v9 (use \".start\" instead), this will be removed in later 0.X.0 versions`);\n}\n\nfunction isAnimatedString(value) {\n return is.str(value) && (value[0] == '#' || /\\d/.test(value) || !isSSR() && cssVariableRegex.test(value) || value in (colors$1 || {}));\n}\n\nconst useIsomorphicLayoutEffect = isSSR() ? useEffect : useLayoutEffect;\n\nconst useIsMounted = () => {\n const isMounted = useRef(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n};\n\nfunction useForceUpdate() {\n const update = useState()[1];\n const isMounted = useIsMounted();\n return () => {\n if (isMounted.current) {\n update(Math.random());\n }\n };\n}\n\nfunction useMemoOne(getResult, inputs) {\n const [initial] = useState(() => ({\n inputs,\n result: getResult()\n }));\n const committed = useRef();\n const prevCache = committed.current;\n let cache = prevCache;\n\n if (cache) {\n const useCache = Boolean(inputs && cache.inputs && areInputsEqual(inputs, cache.inputs));\n\n if (!useCache) {\n cache = {\n inputs,\n result: getResult()\n };\n }\n } else {\n cache = initial;\n }\n\n useEffect(() => {\n committed.current = cache;\n\n if (prevCache == initial) {\n initial.inputs = initial.result = undefined;\n }\n }, [cache]);\n return cache.result;\n}\n\nfunction areInputsEqual(next, prev) {\n if (next.length !== prev.length) {\n return false;\n }\n\n for (let i = 0; i < next.length; i++) {\n if (next[i] !== prev[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nconst useOnce = effect => useEffect(effect, emptyDeps);\nconst emptyDeps = [];\n\nfunction usePrev(value) {\n const prevRef = useRef();\n useEffect(() => {\n prevRef.current = value;\n });\n return prevRef.current;\n}\n\nconst useReducedMotion = () => {\n const [reducedMotion, setReducedMotion] = useState(null);\n useIsomorphicLayoutEffect(() => {\n const mql = window.matchMedia('(prefers-reduced-motion)');\n\n const handleMediaChange = e => {\n setReducedMotion(e.matches);\n assign({\n skipAnimation: e.matches\n });\n };\n\n handleMediaChange(mql);\n mql.addEventListener('change', handleMediaChange);\n return () => {\n mql.removeEventListener('change', handleMediaChange);\n };\n }, []);\n return reducedMotion;\n};\n\nexport { FluidValue, globals as Globals, addFluidObserver, callFluidObserver, callFluidObservers, colorToRgba, colors, createInterpolator, createStringInterpolator, defineHidden, deprecateDirectCall, deprecateInterpolate, each, eachProp, flush, flushCalls, frameLoop, getFluidObservers, getFluidValue, hasFluidValue, hex3, hex4, hex6, hex8, hsl, hsla, is, isAnimatedString, isEqual, isSSR, noop, removeFluidObserver, rgb, rgba, setFluidGetter, toArray, useForceUpdate, useIsomorphicLayoutEffect, useMemoOne, useOnce, usePrev, useReducedMotion };\n","import { Globals } from '@react-spring/core';\nexport * from '@react-spring/core';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport { eachProp, is, toArray, FluidValue, each, getFluidValue, hasFluidValue, addFluidObserver, removeFluidObserver, callFluidObservers, createStringInterpolator, colors } from '@react-spring/shared';\nimport { AnimatedObject, createHost } from '@react-spring/animated';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\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\n return target;\n}\n\nconst _excluded$2 = [\"style\", \"children\", \"scrollTop\", \"scrollLeft\"];\nconst isCustomPropRE = /^--/;\n\nfunction dangerousStyleValue(name, value) {\n if (value == null || typeof value === 'boolean' || value === '') return '';\n if (typeof value === 'number' && value !== 0 && !isCustomPropRE.test(name) && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) return value + 'px';\n return ('' + value).trim();\n}\n\nconst attributeCache = {};\nfunction applyAnimatedValues(instance, props) {\n if (!instance.nodeType || !instance.setAttribute) {\n return false;\n }\n\n const isFilterElement = instance.nodeName === 'filter' || instance.parentNode && instance.parentNode.nodeName === 'filter';\n\n const _ref = props,\n {\n style,\n children,\n scrollTop,\n scrollLeft\n } = _ref,\n attributes = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n const values = Object.values(attributes);\n const names = Object.keys(attributes).map(name => isFilterElement || instance.hasAttribute(name) ? name : attributeCache[name] || (attributeCache[name] = name.replace(/([A-Z])/g, n => '-' + n.toLowerCase())));\n\n if (children !== void 0) {\n instance.textContent = children;\n }\n\n for (let name in style) {\n if (style.hasOwnProperty(name)) {\n const value = dangerousStyleValue(name, style[name]);\n\n if (isCustomPropRE.test(name)) {\n instance.style.setProperty(name, value);\n } else {\n instance.style[name] = value;\n }\n }\n }\n\n names.forEach((name, i) => {\n instance.setAttribute(name, values[i]);\n });\n\n if (scrollTop !== void 0) {\n instance.scrollTop = scrollTop;\n }\n\n if (scrollLeft !== void 0) {\n instance.scrollLeft = scrollLeft;\n }\n}\nlet isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nconst prefixKey = (prefix, key) => prefix + key.charAt(0).toUpperCase() + key.substring(1);\n\nconst prefixes = ['Webkit', 'Ms', 'Moz', 'O'];\nisUnitlessNumber = Object.keys(isUnitlessNumber).reduce((acc, prop) => {\n prefixes.forEach(prefix => acc[prefixKey(prefix, prop)] = acc[prop]);\n return acc;\n}, isUnitlessNumber);\n\nconst _excluded$1 = [\"x\", \"y\", \"z\"];\nconst domTransforms = /^(matrix|translate|scale|rotate|skew)/;\nconst pxTransforms = /^(translate)/;\nconst degTransforms = /^(rotate|skew)/;\n\nconst addUnit = (value, unit) => is.num(value) && value !== 0 ? value + unit : value;\n\nconst isValueIdentity = (value, id) => is.arr(value) ? value.every(v => isValueIdentity(v, id)) : is.num(value) ? value === id : parseFloat(value) === id;\n\nclass AnimatedStyle extends AnimatedObject {\n constructor(_ref) {\n let {\n x,\n y,\n z\n } = _ref,\n style = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n const inputs = [];\n const transforms = [];\n\n if (x || y || z) {\n inputs.push([x || 0, y || 0, z || 0]);\n transforms.push(xyz => [`translate3d(${xyz.map(v => addUnit(v, 'px')).join(',')})`, isValueIdentity(xyz, 0)]);\n }\n\n eachProp(style, (value, key) => {\n if (key === 'transform') {\n inputs.push([value || '']);\n transforms.push(transform => [transform, transform === '']);\n } else if (domTransforms.test(key)) {\n delete style[key];\n if (is.und(value)) return;\n const unit = pxTransforms.test(key) ? 'px' : degTransforms.test(key) ? 'deg' : '';\n inputs.push(toArray(value));\n transforms.push(key === 'rotate3d' ? ([x, y, z, deg]) => [`rotate3d(${x},${y},${z},${addUnit(deg, unit)})`, isValueIdentity(deg, 0)] : input => [`${key}(${input.map(v => addUnit(v, unit)).join(',')})`, isValueIdentity(input, key.startsWith('scale') ? 1 : 0)]);\n }\n });\n\n if (inputs.length) {\n style.transform = new FluidTransform(inputs, transforms);\n }\n\n super(style);\n }\n\n}\n\nclass FluidTransform extends FluidValue {\n constructor(inputs, transforms) {\n super();\n this._value = null;\n this.inputs = inputs;\n this.transforms = transforms;\n }\n\n get() {\n return this._value || (this._value = this._get());\n }\n\n _get() {\n let transform = '';\n let identity = true;\n each(this.inputs, (input, i) => {\n const arg1 = getFluidValue(input[0]);\n const [t, id] = this.transforms[i](is.arr(arg1) ? arg1 : input.map(getFluidValue));\n transform += ' ' + t;\n identity = identity && id;\n });\n return identity ? 'none' : transform;\n }\n\n observerAdded(count) {\n if (count == 1) each(this.inputs, input => each(input, value => hasFluidValue(value) && addFluidObserver(value, this)));\n }\n\n observerRemoved(count) {\n if (count == 0) each(this.inputs, input => each(input, value => hasFluidValue(value) && removeFluidObserver(value, this)));\n }\n\n eventObserved(event) {\n if (event.type == 'change') {\n this._value = null;\n }\n\n callFluidObservers(this, event);\n }\n\n}\n\nconst primitives = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', 'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nconst _excluded = [\"scrollTop\", \"scrollLeft\"];\nGlobals.assign({\n batchedUpdates: unstable_batchedUpdates,\n createStringInterpolator,\n colors\n});\nconst host = createHost(primitives, {\n applyAnimatedValues,\n createAnimatedStyle: style => new AnimatedStyle(style),\n getComponentProps: _ref => {\n let props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return props;\n }\n});\nconst animated = host.animated;\n\nexport { animated as a, animated };\n","import { getCurrentHub } from './hub.js';\n\n// Note: All functions in this file are typed with a return value of `ReturnType`,\n// where HUB_FUNCTION is some method on the Hub class.\n//\n// This is done to make sure the top level SDK methods stay in sync with the hub methods.\n// Although every method here has an explicit return type, some of them (that map to void returns) do not\n// contain `return` keywords. This is done to save on bundle size, as `return` is not minifiable.\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @param captureContext Additional scope data to apply to exception event.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nfunction captureException(exception, captureContext) {\n return getCurrentHub().captureException(exception, { captureContext });\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\nfunction captureMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n captureContext,\n) {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentHub().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nfunction captureEvent(event, hint) {\n return getCurrentHub().captureEvent(event, hint);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nfunction configureScope(callback) {\n getCurrentHub().configureScope(callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nfunction addBreadcrumb(breadcrumb) {\n getCurrentHub().addBreadcrumb(breadcrumb);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setContext(name, context) {\n getCurrentHub().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n getCurrentHub().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n getCurrentHub().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n getCurrentHub().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n getCurrentHub().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n getCurrentHub().setUser(user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nfunction withScope(callback) {\n getCurrentHub().withScope(callback);\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * NOTE: This function should only be used for *manual* instrumentation. Auto-instrumentation should call\n * `startTransaction` directly on the hub.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nfunction startTransaction(\n context,\n customSamplingContext,\n) {\n return getCurrentHub().startTransaction({ ...context }, customSamplingContext);\n}\n\nexport { addBreadcrumb, captureEvent, captureException, captureMessage, configureScope, setContext, setExtra, setExtras, setTag, setTags, setUser, startTransaction, withScope };\n//# sourceMappingURL=exports.js.map\n","import { uuid4, dateTimestampInSeconds, consoleSandbox, logger, GLOBAL_OBJ, isNodeEnv, getGlobalSingleton } from '@sentry/utils';\nimport { Scope } from './scope.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nconst API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * A layer in the process stack.\n * @hidden\n */\n\n/**\n * @inheritDoc\n */\nclass Hub {\n /** Is a {@link Layer}[] containing the client and scope */\n __init() {this._stack = [{}];}\n\n /** Contains the last event id of a captured event. */\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n constructor(client, scope = new Scope(), _version = API_VERSION) {;this._version = _version;Hub.prototype.__init.call(this);\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n isOlderThan(version) {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n bindClient(client) {\n const top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n pushScope() {\n // We want to clone the content of prev scope\n const scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n popScope() {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n withScope(callback) {\n const scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n getClient() {\n return this.getStackTop().client ;\n }\n\n /** Returns the scope of the top stack. */\n getScope() {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n getStack() {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n getStackTop() {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n captureException(exception, hint) {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error('Sentry syntheticException');\n this._withClient((client, scope) => {\n client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n level,\n hint,\n ) {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error(message);\n this._withClient((client, scope) => {\n client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (event.type !== 'transaction') {\n this._lastEventId = eventId;\n }\n\n this._withClient((client, scope) => {\n client.captureEvent(event, { ...hint, event_id: eventId }, scope);\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n lastEventId() {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, hint) {\n const { scope, client } = this.getStackTop();\n\n if (!scope || !client) return;\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) )\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n const scope = this.getScope();\n if (scope) scope.setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n const scope = this.getScope();\n if (scope) scope.setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n const scope = this.getScope();\n if (scope) scope.setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n const scope = this.getScope();\n if (scope) scope.setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n const scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setContext(name, context) {\n const scope = this.getScope();\n if (scope) scope.setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n configureScope(callback) {\n const { scope, client } = this.getStackTop();\n if (scope && client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n run(callback) {\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n const client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n startTransaction(context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n }\n\n /**\n * @inheritDoc\n */\n traceHeaders() {\n return this._callExtensionMethod('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n captureSession(endSession = false) {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n endSession() {\n const layer = this.getStackTop();\n const scope = layer && layer.scope;\n const session = scope && scope.getSession();\n if (session) {\n closeSession(session);\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n if (scope) {\n scope.setSession();\n }\n }\n\n /**\n * @inheritDoc\n */\n startSession(context) {\n const { scope, client } = this.getStackTop();\n const { release, environment } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n ...(scope && { user: scope.getUser() }),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n if (scope) {\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n\n return session;\n }\n\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n */\n shouldSendDefaultPii() {\n const client = this.getClient();\n const options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n\n /**\n * Sends the current Session on the scope\n */\n _sendSessionUpdate() {\n const { scope, client } = this.getStackTop();\n if (!scope) return;\n\n const session = scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n _withClient(callback) {\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(client, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _callExtensionMethod(method, ...args) {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n GLOBAL_OBJ.__SENTRY__ = GLOBAL_OBJ.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return GLOBAL_OBJ;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nfunction makeMain(hub) {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nfunction getCurrentHub() {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n try {\n const sentry = getMainCarrier().__SENTRY__;\n const activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n const registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nfunction getHubFromCarrier(carrier) {\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nfunction setHubOnCarrier(carrier, hub) {\n if (!carrier) return false;\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n\nexport { API_VERSION, Hub, getCurrentHub, getHubFromCarrier, getMainCarrier, makeMain, setHubOnCarrier };\n//# sourceMappingURL=hub.js.map\n","import { isPlainObject, dateTimestampInSeconds, SyncPromise, logger, isThenable, arrayify, getGlobalSingleton } from '@sentry/utils';\nimport { updateSession } from './session.js';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nclass Scope {\n /** Flag if notifying is happening. */\n\n /** Callback for client to receive scope changes. */\n\n /** Callback list that will be called after {@link applyToEvent}. */\n\n /** Array of breadcrumbs. */\n\n /** User */\n\n /** Tags */\n\n /** Extra */\n\n /** Contexts */\n\n /** Attachments */\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n\n /** Fingerprint */\n\n /** Severity */\n // eslint-disable-next-line deprecation/deprecation\n\n /** Transaction Name */\n\n /** Span */\n\n /** Session */\n\n /** Request Mode Session Status */\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n }\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n static clone(scope) {\n const newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n newScope._attachments = [...scope._attachments];\n newScope._sdkProcessingMetadata = { ...scope._sdkProcessingMetadata };\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n this._user = user || {};\n if (this._session) {\n updateSession(this._session, { user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getUser() {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n getRequestSession() {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n setRequestSession(requestSession) {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setLevel(\n // eslint-disable-next-line deprecation/deprecation\n level,\n ) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setContext(key, context) {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setSpan(span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSpan() {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n getTransaction() {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSession() {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n const updatedScope = (captureContext )(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext ;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clear() {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n this._attachments = [];\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getLastBreadcrumb() {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getAttachments() {\n return this._attachments;\n }\n\n /**\n * @inheritDoc\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n\n /**\n * Applies data from the scope to the event and runs all event processors on it.\n *\n * @param event Event\n * @param hint Object containing additional information about the original exception, for use by the event processors.\n * @hidden\n */\n applyToEvent(event, hint = {}) {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n const transactionName = this._span.transaction && this._span.transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = { ...event.sdkProcessingMetadata, ...this._sdkProcessingMetadata };\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n _notifyEventProcessors(\n processors,\n event,\n hint,\n index = 0,\n ) {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) ;\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n processor.id &&\n result === null &&\n logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n _applyFingerprint(event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? arrayify(event.fingerprint) : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nfunction addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n\nexport { Scope, addGlobalEventProcessor };\n//# sourceMappingURL=scope.js.map\n","import { timestampInSeconds, uuid4, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n","import { isString } from './is.js';\nimport { getGlobalObject } from './worldwide.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(\n elem,\n options = {},\n) {\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem ;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n const elem = el\n\n;\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n const allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existance of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getDomElement(selector) {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector) ;\n }\n return null;\n}\n\nexport { getDomElement, getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n","// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat, className) {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isNaN(wat) {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isNaN, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable };\n//# sourceMappingURL=is.js.map\n","import { GLOBAL_OBJ, getGlobalSingleton } from './worldwide.js';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nconst CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert', 'trace'] ;\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const originalConsole = GLOBAL_OBJ.console ;\n const wrappedLevels = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n const originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] ).__sentry_original__;\n if (level in originalConsole && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] ;\n originalConsole[level] = originalWrappedFunc ;\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level ];\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n const logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger;\nif ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger };\n//# sourceMappingURL=logger.js.map\n","import { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n const gbl = GLOBAL_OBJ ;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n\n const getRandomByte =\n crypto && crypto.getRandomValues ? () => crypto.getRandomValues(new Uint8Array(1))[0] : () => Math.random() * 16;\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] ) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c ) ^ ((getRandomByte() & 15) >> ((c ) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception ).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception , '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nfunction arrayify(maybeArray) {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, arrayify, checkOrSetAlreadyCaught, getEventDescription, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n","import { isBrowserBundle } from './env.js';\n\n/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nfunction isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nfunction dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nfunction loadModule(moduleName) {\n let mod;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) ;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n\nexport { dynamicRequire, isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\nexport { isBrowserBundle };\n//# sourceMappingURL=env.js.map\n","import { htmlTreeAsString } from './browser.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { truncate } from './string.js';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] ;\n const wrapped = replacementFactory(original) ;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nfunction urlEncode(object) {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nfunction convertToPlainObject(\n value,\n)\n\n {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj\n\n = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj )[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPlainObject(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue ;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue ;\n }\n\n return inputValue;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat ).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };\n//# sourceMappingURL=object.js.map\n","import { isString, isRegExp } from './is.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.substr(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nfunction isMatchingPattern(\n value,\n pattern,\n requireExactStringMatch = false,\n) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nfunction stringMatchesSomePattern(\n testString,\n patterns = [],\n requireExactStringMatch = false,\n) {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nfunction escapeStringForRegex(regexString) {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n\nexport { escapeStringForRegex, isMatchingPattern, safeJoin, snipLine, stringMatchesSomePattern, truncate };\n//# sourceMappingURL=string.js.map\n","import { isThenable } from './is.js';\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n const PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n const RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n const REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n __init() {this._state = States.PENDING;}\n __init2() {this._handlers = [];}\n\n constructor(\n executor,\n ) {;SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);SyncPromise.prototype.__init5.call(this);SyncPromise.prototype.__init6.call(this);\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init3() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init4() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init5() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init6() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","import { dynamicRequire, isNodeEnv } from './node.js';\nimport { getGlobalObject } from './worldwide.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nconst dateTimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n const timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n const perfHooks = dynamicRequire(module, 'perf_hooks') ;\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nconst platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nconst timestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nconst dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nconst timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nconst timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nconst usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nconst browserPerformanceTimeOrigin = (() => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds, timestampWithMs, usingPerformanceAPI };\n//# sourceMappingURL=time.js.map\n","/** Internal global with common properties and Sentry extensions */\n\n// The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification\n// https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js\n// core-js has the following licence:\n//\n// Copyright (c) 2014-2022 Denis Pushkarev\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/** Returns 'obj' if it's the global object, otherwise returns undefined */\nfunction isGlobalObj(obj) {\n return obj && obj.Math == Math ? obj : undefined;\n}\n\n/** Get's the global object for the current JavaScript runtime */\nconst GLOBAL_OBJ =\n (typeof globalThis == 'object' && isGlobalObj(globalThis)) ||\n // eslint-disable-next-line no-restricted-globals\n (typeof window == 'object' && isGlobalObj(window)) ||\n (typeof self == 'object' && isGlobalObj(self)) ||\n (typeof global == 'object' && isGlobalObj(global)) ||\n (function () {\n return this;\n })() ||\n {};\n\n/**\n * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8\n */\nfunction getGlobalObject() {\n return GLOBAL_OBJ ;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n const gbl = (obj || GLOBAL_OBJ) ;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n\nexport { GLOBAL_OBJ, getGlobalObject, getGlobalSingleton };\n//# sourceMappingURL=worldwide.js.map\n","var _a = Object.prototype, toString = _a.toString, hasOwnProperty = _a.hasOwnProperty;\r\nvar fnToStr = Function.prototype.toString;\r\nvar previousComparisons = new Map();\r\n/**\r\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\r\n */\r\nfunction equal(a, b) {\r\n try {\r\n return check(a, b);\r\n }\r\n finally {\r\n previousComparisons.clear();\r\n }\r\n}\r\nfunction check(a, b) {\r\n // If the two values are strictly equal, our job is easy.\r\n if (a === b) {\r\n return true;\r\n }\r\n // Object.prototype.toString returns a representation of the runtime type of\r\n // the given value that is considerably more precise than typeof.\r\n var aTag = toString.call(a);\r\n var bTag = toString.call(b);\r\n // If the runtime types of a and b are different, they could maybe be equal\r\n // under some interpretation of equality, but for simplicity and performance\r\n // we just return false instead.\r\n if (aTag !== bTag) {\r\n return false;\r\n }\r\n switch (aTag) {\r\n case '[object Array]':\r\n // Arrays are a lot like other objects, but we can cheaply compare their\r\n // lengths as a short-cut before comparing their elements.\r\n if (a.length !== b.length)\r\n return false;\r\n // Fall through to object case...\r\n case '[object Object]': {\r\n if (previouslyCompared(a, b))\r\n return true;\r\n var aKeys = definedKeys(a);\r\n var bKeys = definedKeys(b);\r\n // If `a` and `b` have a different number of enumerable keys, they\r\n // must be different.\r\n var keyCount = aKeys.length;\r\n if (keyCount !== bKeys.length)\r\n return false;\r\n // Now make sure they have the same keys.\r\n for (var k = 0; k < keyCount; ++k) {\r\n if (!hasOwnProperty.call(b, aKeys[k])) {\r\n return false;\r\n }\r\n }\r\n // Finally, check deep equality of all child properties.\r\n for (var k = 0; k < keyCount; ++k) {\r\n var key = aKeys[k];\r\n if (!check(a[key], b[key])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n case '[object Error]':\r\n return a.name === b.name && a.message === b.message;\r\n case '[object Number]':\r\n // Handle NaN, which is !== itself.\r\n if (a !== a)\r\n return b !== b;\r\n // Fall through to shared +a === +b case...\r\n case '[object Boolean]':\r\n case '[object Date]':\r\n return +a === +b;\r\n case '[object RegExp]':\r\n case '[object String]':\r\n return a == \"\" + b;\r\n case '[object Map]':\r\n case '[object Set]': {\r\n if (a.size !== b.size)\r\n return false;\r\n if (previouslyCompared(a, b))\r\n return true;\r\n var aIterator = a.entries();\r\n var isMap = aTag === '[object Map]';\r\n while (true) {\r\n var info = aIterator.next();\r\n if (info.done)\r\n break;\r\n // If a instanceof Set, aValue === aKey.\r\n var _a = info.value, aKey = _a[0], aValue = _a[1];\r\n // So this works the same way for both Set and Map.\r\n if (!b.has(aKey)) {\r\n return false;\r\n }\r\n // However, we care about deep equality of values only when dealing\r\n // with Map structures.\r\n if (isMap && !check(aValue, b.get(aKey))) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n case '[object Uint16Array]':\r\n case '[object Uint8Array]': // Buffer, in Node.js.\r\n case '[object Uint32Array]':\r\n case '[object Int32Array]':\r\n case '[object Int8Array]':\r\n case '[object Int16Array]':\r\n case '[object ArrayBuffer]':\r\n // DataView doesn't need these conversions, but the equality check is\r\n // otherwise the same.\r\n a = new Uint8Array(a);\r\n b = new Uint8Array(b);\r\n // Fall through...\r\n case '[object DataView]': {\r\n var len = a.byteLength;\r\n if (len === b.byteLength) {\r\n while (len-- && a[len] === b[len]) {\r\n // Keep looping as long as the bytes are equal.\r\n }\r\n }\r\n return len === -1;\r\n }\r\n case '[object AsyncFunction]':\r\n case '[object GeneratorFunction]':\r\n case '[object AsyncGeneratorFunction]':\r\n case '[object Function]': {\r\n var aCode = fnToStr.call(a);\r\n if (aCode !== fnToStr.call(b)) {\r\n return false;\r\n }\r\n // We consider non-native functions equal if they have the same code\r\n // (native functions require === because their code is censored).\r\n // Note that this behavior is not entirely sound, since !== function\r\n // objects with the same code can behave differently depending on\r\n // their closure scope. However, any function can behave differently\r\n // depending on the values of its input arguments (including this)\r\n // and its calling context (including its closure scope), even\r\n // though the function object is === to itself; and it is entirely\r\n // possible for functions that are not === to behave exactly the\r\n // same under all conceivable circumstances. Because none of these\r\n // factors are statically decidable in JavaScript, JS function\r\n // equality is not well-defined. This ambiguity allows us to\r\n // consider the best possible heuristic among various imperfect\r\n // options, and equating non-native functions that have the same\r\n // code has enormous practical benefits, such as when comparing\r\n // functions that are repeatedly passed as fresh function\r\n // expressions within objects that are otherwise deeply equal. Since\r\n // any function created from the same syntactic expression (in the\r\n // same code location) will always stringify to the same code\r\n // according to fnToStr.call, we can reasonably expect these\r\n // repeatedly passed function expressions to have the same code, and\r\n // thus behave \"the same\" (with all the caveats mentioned above),\r\n // even though the runtime function objects are !== to one another.\r\n return !endsWith(aCode, nativeCodeSuffix);\r\n }\r\n }\r\n // Otherwise the values are not equal.\r\n return false;\r\n}\r\nfunction definedKeys(obj) {\r\n // Remember that the second argument to Array.prototype.filter will be\r\n // used as `this` within the callback function.\r\n return Object.keys(obj).filter(isDefinedKey, obj);\r\n}\r\nfunction isDefinedKey(key) {\r\n return this[key] !== void 0;\r\n}\r\nvar nativeCodeSuffix = \"{ [native code] }\";\r\nfunction endsWith(full, suffix) {\r\n var fromIndex = full.length - suffix.length;\r\n return fromIndex >= 0 &&\r\n full.indexOf(suffix, fromIndex) === fromIndex;\r\n}\r\nfunction previouslyCompared(a, b) {\r\n // Though cyclic references can make an object graph appear infinite from the\r\n // perspective of a depth-first traversal, the graph still contains a finite\r\n // number of distinct object references. We use the previousComparisons cache\r\n // to avoid comparing the same pair of object references more than once, which\r\n // guarantees termination (even if we end up comparing every object in one\r\n // graph to every object in the other graph, which is extremely unlikely),\r\n // while still allowing weird isomorphic structures (like rings with different\r\n // lengths) a chance to pass the equality test.\r\n var bSet = previousComparisons.get(a);\r\n if (bSet) {\r\n // Return true here because we can be sure false will be returned somewhere\r\n // else if the objects are not equivalent.\r\n if (bSet.has(b))\r\n return true;\r\n }\r\n else {\r\n previousComparisons.set(a, bSet = new Set);\r\n }\r\n bSet.add(b);\r\n return false;\r\n}\n\nexport default equal;\nexport { equal };\n//# sourceMappingURL=equality.esm.js.map\n","// A [trie](https://en.wikipedia.org/wiki/Trie) data structure that holds\r\n// object keys weakly, yet can also hold non-object keys, unlike the\r\n// native `WeakMap`.\r\n// If no makeData function is supplied, the looked-up data will be an empty,\r\n// null-prototype Object.\r\nvar defaultMakeData = function () { return Object.create(null); };\r\n// Useful for processing arguments objects as well as arrays.\r\nvar _a = Array.prototype, forEach = _a.forEach, slice = _a.slice;\r\nvar Trie = /** @class */ (function () {\r\n function Trie(weakness, makeData) {\r\n if (weakness === void 0) { weakness = true; }\r\n if (makeData === void 0) { makeData = defaultMakeData; }\r\n this.weakness = weakness;\r\n this.makeData = makeData;\r\n }\r\n Trie.prototype.lookup = function () {\r\n var array = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n array[_i] = arguments[_i];\r\n }\r\n return this.lookupArray(array);\r\n };\r\n Trie.prototype.lookupArray = function (array) {\r\n var node = this;\r\n forEach.call(array, function (key) { return node = node.getChildTrie(key); });\r\n return node.data || (node.data = this.makeData(slice.call(array)));\r\n };\r\n Trie.prototype.getChildTrie = function (key) {\r\n var map = this.weakness && isObjRef(key)\r\n ? this.weak || (this.weak = new WeakMap())\r\n : this.strong || (this.strong = new Map());\r\n var child = map.get(key);\r\n if (!child)\r\n map.set(key, child = new Trie(this.weakness, this.makeData));\r\n return child;\r\n };\r\n return Trie;\r\n}());\r\nfunction isObjRef(value) {\r\n switch (typeof value) {\r\n case \"object\":\r\n if (value === null)\r\n break;\r\n // Fall through to return true...\r\n case \"function\":\r\n return true;\r\n }\r\n return false;\r\n}\n\nexport { Trie };\n//# sourceMappingURL=trie.esm.js.map\n","// This currentContext variable will only be used if the makeSlotClass\r\n// function is called, which happens only if this is the first copy of the\r\n// @wry/context package to be imported.\r\nvar currentContext = null;\r\n// This unique internal object is used to denote the absence of a value\r\n// for a given Slot, and is never exposed to outside code.\r\nvar MISSING_VALUE = {};\r\nvar idCounter = 1;\r\n// Although we can't do anything about the cost of duplicated code from\r\n// accidentally bundling multiple copies of the @wry/context package, we can\r\n// avoid creating the Slot class more than once using makeSlotClass.\r\nvar makeSlotClass = function () { return /** @class */ (function () {\r\n function Slot() {\r\n // If you have a Slot object, you can find out its slot.id, but you cannot\r\n // guess the slot.id of a Slot you don't have access to, thanks to the\r\n // randomized suffix.\r\n this.id = [\r\n \"slot\",\r\n idCounter++,\r\n Date.now(),\r\n Math.random().toString(36).slice(2),\r\n ].join(\":\");\r\n }\r\n Slot.prototype.hasValue = function () {\r\n for (var context_1 = currentContext; context_1; context_1 = context_1.parent) {\r\n // We use the Slot object iself as a key to its value, which means the\r\n // value cannot be obtained without a reference to the Slot object.\r\n if (this.id in context_1.slots) {\r\n var value = context_1.slots[this.id];\r\n if (value === MISSING_VALUE)\r\n break;\r\n if (context_1 !== currentContext) {\r\n // Cache the value in currentContext.slots so the next lookup will\r\n // be faster. This caching is safe because the tree of contexts and\r\n // the values of the slots are logically immutable.\r\n currentContext.slots[this.id] = value;\r\n }\r\n return true;\r\n }\r\n }\r\n if (currentContext) {\r\n // If a value was not found for this Slot, it's never going to be found\r\n // no matter how many times we look it up, so we might as well cache\r\n // the absence of the value, too.\r\n currentContext.slots[this.id] = MISSING_VALUE;\r\n }\r\n return false;\r\n };\r\n Slot.prototype.getValue = function () {\r\n if (this.hasValue()) {\r\n return currentContext.slots[this.id];\r\n }\r\n };\r\n Slot.prototype.withValue = function (value, callback, \r\n // Given the prevalence of arrow functions, specifying arguments is likely\r\n // to be much more common than specifying `this`, hence this ordering:\r\n args, thisArg) {\r\n var _a;\r\n var slots = (_a = {\r\n __proto__: null\r\n },\r\n _a[this.id] = value,\r\n _a);\r\n var parent = currentContext;\r\n currentContext = { parent: parent, slots: slots };\r\n try {\r\n // Function.prototype.apply allows the arguments array argument to be\r\n // omitted or undefined, so args! is fine here.\r\n return callback.apply(thisArg, args);\r\n }\r\n finally {\r\n currentContext = parent;\r\n }\r\n };\r\n // Capture the current context and wrap a callback function so that it\r\n // reestablishes the captured context when called.\r\n Slot.bind = function (callback) {\r\n var context = currentContext;\r\n return function () {\r\n var saved = currentContext;\r\n try {\r\n currentContext = context;\r\n return callback.apply(this, arguments);\r\n }\r\n finally {\r\n currentContext = saved;\r\n }\r\n };\r\n };\r\n // Immediately run a callback function without any captured context.\r\n Slot.noContext = function (callback, \r\n // Given the prevalence of arrow functions, specifying arguments is likely\r\n // to be much more common than specifying `this`, hence this ordering:\r\n args, thisArg) {\r\n if (currentContext) {\r\n var saved = currentContext;\r\n try {\r\n currentContext = null;\r\n // Function.prototype.apply allows the arguments array argument to be\r\n // omitted or undefined, so args! is fine here.\r\n return callback.apply(thisArg, args);\r\n }\r\n finally {\r\n currentContext = saved;\r\n }\r\n }\r\n else {\r\n return callback.apply(thisArg, args);\r\n }\r\n };\r\n return Slot;\r\n}()); };\r\n// We store a single global implementation of the Slot class as a permanent\r\n// non-enumerable symbol property of the Array constructor. This obfuscation\r\n// does nothing to prevent access to the Slot class, but at least it ensures\r\n// the implementation (i.e. currentContext) cannot be tampered with, and all\r\n// copies of the @wry/context package (hopefully just one) will share the\r\n// same Slot implementation. Since the first copy of the @wry/context package\r\n// to be imported wins, this technique imposes a very high cost for any\r\n// future breaking changes to the Slot class.\r\nvar globalKey = \"@wry/context:Slot\";\r\nvar host = Array;\r\nvar Slot = host[globalKey] || function () {\r\n var Slot = makeSlotClass();\r\n try {\r\n Object.defineProperty(host, globalKey, {\r\n value: host[globalKey] = Slot,\r\n enumerable: false,\r\n writable: false,\r\n configurable: false,\r\n });\r\n }\r\n finally {\r\n return Slot;\r\n }\r\n}();\n\nvar bind = Slot.bind, noContext = Slot.noContext;\r\nfunction setTimeoutWithContext(callback, delay) {\r\n return setTimeout(bind(callback), delay);\r\n}\r\n// Turn any generator function into an async function (using yield instead\r\n// of await), with context automatically preserved across yields.\r\nfunction asyncFromGen(genFn) {\r\n return function () {\r\n var gen = genFn.apply(this, arguments);\r\n var boundNext = bind(gen.next);\r\n var boundThrow = bind(gen.throw);\r\n return new Promise(function (resolve, reject) {\r\n function invoke(method, argument) {\r\n try {\r\n var result = method.call(gen, argument);\r\n }\r\n catch (error) {\r\n return reject(error);\r\n }\r\n var next = result.done ? resolve : invokeNext;\r\n if (isPromiseLike(result.value)) {\r\n result.value.then(next, result.done ? reject : invokeThrow);\r\n }\r\n else {\r\n next(result.value);\r\n }\r\n }\r\n var invokeNext = function (value) { return invoke(boundNext, value); };\r\n var invokeThrow = function (error) { return invoke(boundThrow, error); };\r\n invokeNext();\r\n });\r\n };\r\n}\r\nfunction isPromiseLike(value) {\r\n return value && typeof value.then === \"function\";\r\n}\r\n// If you use the fibers npm package to implement coroutines in Node.js,\r\n// you should call this function at least once to ensure context management\r\n// remains coherent across any yields.\r\nvar wrappedFibers = [];\r\nfunction wrapYieldingFiberMethods(Fiber) {\r\n // There can be only one implementation of Fiber per process, so this array\r\n // should never grow longer than one element.\r\n if (wrappedFibers.indexOf(Fiber) < 0) {\r\n var wrap = function (obj, method) {\r\n var fn = obj[method];\r\n obj[method] = function () {\r\n return noContext(fn, arguments, this);\r\n };\r\n };\r\n // These methods can yield, according to\r\n // https://github.com/laverdet/node-fibers/blob/ddebed9b8ae3883e57f822e2108e6943e5c8d2a8/fibers.js#L97-L100\r\n wrap(Fiber, \"yield\");\r\n wrap(Fiber.prototype, \"run\");\r\n wrap(Fiber.prototype, \"throwInto\");\r\n wrappedFibers.push(Fiber);\r\n }\r\n return Fiber;\r\n}\n\nexport { Slot, asyncFromGen, bind, noContext, setTimeoutWithContext as setTimeout, wrapYieldingFiberMethods };\n//# sourceMappingURL=context.esm.js.map\n","import { Trie } from '@wry/trie';\nexport { Trie as KeyTrie } from '@wry/trie';\nimport { Slot } from '@wry/context';\nexport { asyncFromGen, bind as bindContext, noContext, setTimeout } from '@wry/context';\n\nfunction defaultDispose() { }\r\nvar Cache = /** @class */ (function () {\r\n function Cache(max, dispose) {\r\n if (max === void 0) { max = Infinity; }\r\n if (dispose === void 0) { dispose = defaultDispose; }\r\n this.max = max;\r\n this.dispose = dispose;\r\n this.map = new Map();\r\n this.newest = null;\r\n this.oldest = null;\r\n }\r\n Cache.prototype.has = function (key) {\r\n return this.map.has(key);\r\n };\r\n Cache.prototype.get = function (key) {\r\n var node = this.getNode(key);\r\n return node && node.value;\r\n };\r\n Cache.prototype.getNode = function (key) {\r\n var node = this.map.get(key);\r\n if (node && node !== this.newest) {\r\n var older = node.older, newer = node.newer;\r\n if (newer) {\r\n newer.older = older;\r\n }\r\n if (older) {\r\n older.newer = newer;\r\n }\r\n node.older = this.newest;\r\n node.older.newer = node;\r\n node.newer = null;\r\n this.newest = node;\r\n if (node === this.oldest) {\r\n this.oldest = newer;\r\n }\r\n }\r\n return node;\r\n };\r\n Cache.prototype.set = function (key, value) {\r\n var node = this.getNode(key);\r\n if (node) {\r\n return node.value = value;\r\n }\r\n node = {\r\n key: key,\r\n value: value,\r\n newer: null,\r\n older: this.newest\r\n };\r\n if (this.newest) {\r\n this.newest.newer = node;\r\n }\r\n this.newest = node;\r\n this.oldest = this.oldest || node;\r\n this.map.set(key, node);\r\n return node.value;\r\n };\r\n Cache.prototype.clean = function () {\r\n while (this.oldest && this.map.size > this.max) {\r\n this.delete(this.oldest.key);\r\n }\r\n };\r\n Cache.prototype.delete = function (key) {\r\n var node = this.map.get(key);\r\n if (node) {\r\n if (node === this.newest) {\r\n this.newest = node.older;\r\n }\r\n if (node === this.oldest) {\r\n this.oldest = node.newer;\r\n }\r\n if (node.newer) {\r\n node.newer.older = node.older;\r\n }\r\n if (node.older) {\r\n node.older.newer = node.newer;\r\n }\r\n this.map.delete(key);\r\n this.dispose(node.value, key);\r\n return true;\r\n }\r\n return false;\r\n };\r\n return Cache;\r\n}());\n\nvar parentEntrySlot = new Slot();\n\nvar _a;\r\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\r\nvar \r\n// This Array.from polyfill is restricted to working with Set for now,\r\n// but we can improve the polyfill and add other input types, as needed. Note\r\n// that this fallback implementation will only be used if the host environment\r\n// does not support a native Array.from function. In most modern JS runtimes,\r\n// the toArray function exported here will be === Array.from.\r\ntoArray = (_a = Array.from, _a === void 0 ? function (collection) {\r\n var array = [];\r\n collection.forEach(function (item) { return array.push(item); });\r\n return array;\r\n} : _a);\r\nfunction maybeUnsubscribe(entryOrDep) {\r\n var unsubscribe = entryOrDep.unsubscribe;\r\n if (typeof unsubscribe === \"function\") {\r\n entryOrDep.unsubscribe = void 0;\r\n unsubscribe();\r\n }\r\n}\n\nvar emptySetPool = [];\r\nvar POOL_TARGET_SIZE = 100;\r\n// Since this package might be used browsers, we should avoid using the\r\n// Node built-in assert module.\r\nfunction assert(condition, optionalMessage) {\r\n if (!condition) {\r\n throw new Error(optionalMessage || \"assertion failure\");\r\n }\r\n}\r\nfunction valueIs(a, b) {\r\n var len = a.length;\r\n return (\r\n // Unknown values are not equal to each other.\r\n len > 0 &&\r\n // Both values must be ordinary (or both exceptional) to be equal.\r\n len === b.length &&\r\n // The underlying value or exception must be the same.\r\n a[len - 1] === b[len - 1]);\r\n}\r\nfunction valueGet(value) {\r\n switch (value.length) {\r\n case 0: throw new Error(\"unknown value\");\r\n case 1: return value[0];\r\n case 2: throw value[1];\r\n }\r\n}\r\nfunction valueCopy(value) {\r\n return value.slice(0);\r\n}\r\nvar Entry = /** @class */ (function () {\r\n function Entry(fn) {\r\n this.fn = fn;\r\n this.parents = new Set();\r\n this.childValues = new Map();\r\n // When this Entry has children that are dirty, this property becomes\r\n // a Set containing other Entry objects, borrowed from emptySetPool.\r\n // When the set becomes empty, it gets recycled back to emptySetPool.\r\n this.dirtyChildren = null;\r\n this.dirty = true;\r\n this.recomputing = false;\r\n this.value = [];\r\n this.deps = null;\r\n ++Entry.count;\r\n }\r\n Entry.prototype.peek = function () {\r\n if (this.value.length === 1 && !mightBeDirty(this)) {\r\n rememberParent(this);\r\n return this.value[0];\r\n }\r\n };\r\n // This is the most important method of the Entry API, because it\r\n // determines whether the cached this.value can be returned immediately,\r\n // or must be recomputed. The overall performance of the caching system\r\n // depends on the truth of the following observations: (1) this.dirty is\r\n // usually false, (2) this.dirtyChildren is usually null/empty, and thus\r\n // (3) valueGet(this.value) is usually returned without recomputation.\r\n Entry.prototype.recompute = function (args) {\r\n assert(!this.recomputing, \"already recomputing\");\r\n rememberParent(this);\r\n return mightBeDirty(this)\r\n ? reallyRecompute(this, args)\r\n : valueGet(this.value);\r\n };\r\n Entry.prototype.setDirty = function () {\r\n if (this.dirty)\r\n return;\r\n this.dirty = true;\r\n this.value.length = 0;\r\n reportDirty(this);\r\n // We can go ahead and unsubscribe here, since any further dirty\r\n // notifications we receive will be redundant, and unsubscribing may\r\n // free up some resources, e.g. file watchers.\r\n maybeUnsubscribe(this);\r\n };\r\n Entry.prototype.dispose = function () {\r\n var _this = this;\r\n this.setDirty();\r\n // Sever any dependency relationships with our own children, so those\r\n // children don't retain this parent Entry in their child.parents sets,\r\n // thereby preventing it from being fully garbage collected.\r\n forgetChildren(this);\r\n // Because this entry has been kicked out of the cache (in index.js),\r\n // we've lost the ability to find out if/when this entry becomes dirty,\r\n // whether that happens through a subscription, because of a direct call\r\n // to entry.setDirty(), or because one of its children becomes dirty.\r\n // Because of this loss of future information, we have to assume the\r\n // worst (that this entry might have become dirty very soon), so we must\r\n // immediately mark this entry's parents as dirty. Normally we could\r\n // just call entry.setDirty() rather than calling parent.setDirty() for\r\n // each parent, but that would leave this entry in parent.childValues\r\n // and parent.dirtyChildren, which would prevent the child from being\r\n // truly forgotten.\r\n eachParent(this, function (parent, child) {\r\n parent.setDirty();\r\n forgetChild(parent, _this);\r\n });\r\n };\r\n Entry.prototype.forget = function () {\r\n // The code that creates Entry objects in index.ts will replace this method\r\n // with one that actually removes the Entry from the cache, which will also\r\n // trigger the entry.dispose method.\r\n this.dispose();\r\n };\r\n Entry.prototype.dependOn = function (dep) {\r\n dep.add(this);\r\n if (!this.deps) {\r\n this.deps = emptySetPool.pop() || new Set();\r\n }\r\n this.deps.add(dep);\r\n };\r\n Entry.prototype.forgetDeps = function () {\r\n var _this = this;\r\n if (this.deps) {\r\n toArray(this.deps).forEach(function (dep) { return dep.delete(_this); });\r\n this.deps.clear();\r\n emptySetPool.push(this.deps);\r\n this.deps = null;\r\n }\r\n };\r\n Entry.count = 0;\r\n return Entry;\r\n}());\r\nfunction rememberParent(child) {\r\n var parent = parentEntrySlot.getValue();\r\n if (parent) {\r\n child.parents.add(parent);\r\n if (!parent.childValues.has(child)) {\r\n parent.childValues.set(child, []);\r\n }\r\n if (mightBeDirty(child)) {\r\n reportDirtyChild(parent, child);\r\n }\r\n else {\r\n reportCleanChild(parent, child);\r\n }\r\n return parent;\r\n }\r\n}\r\nfunction reallyRecompute(entry, args) {\r\n forgetChildren(entry);\r\n // Set entry as the parent entry while calling recomputeNewValue(entry).\r\n parentEntrySlot.withValue(entry, recomputeNewValue, [entry, args]);\r\n if (maybeSubscribe(entry, args)) {\r\n // If we successfully recomputed entry.value and did not fail to\r\n // (re)subscribe, then this Entry is no longer explicitly dirty.\r\n setClean(entry);\r\n }\r\n return valueGet(entry.value);\r\n}\r\nfunction recomputeNewValue(entry, args) {\r\n entry.recomputing = true;\r\n // Set entry.value as unknown.\r\n entry.value.length = 0;\r\n try {\r\n // If entry.fn succeeds, entry.value will become a normal Value.\r\n entry.value[0] = entry.fn.apply(null, args);\r\n }\r\n catch (e) {\r\n // If entry.fn throws, entry.value will become exceptional.\r\n entry.value[1] = e;\r\n }\r\n // Either way, this line is always reached.\r\n entry.recomputing = false;\r\n}\r\nfunction mightBeDirty(entry) {\r\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\r\n}\r\nfunction setClean(entry) {\r\n entry.dirty = false;\r\n if (mightBeDirty(entry)) {\r\n // This Entry may still have dirty children, in which case we can't\r\n // let our parents know we're clean just yet.\r\n return;\r\n }\r\n reportClean(entry);\r\n}\r\nfunction reportDirty(child) {\r\n eachParent(child, reportDirtyChild);\r\n}\r\nfunction reportClean(child) {\r\n eachParent(child, reportCleanChild);\r\n}\r\nfunction eachParent(child, callback) {\r\n var parentCount = child.parents.size;\r\n if (parentCount) {\r\n var parents = toArray(child.parents);\r\n for (var i = 0; i < parentCount; ++i) {\r\n callback(parents[i], child);\r\n }\r\n }\r\n}\r\n// Let a parent Entry know that one of its children may be dirty.\r\nfunction reportDirtyChild(parent, child) {\r\n // Must have called rememberParent(child) before calling\r\n // reportDirtyChild(parent, child).\r\n assert(parent.childValues.has(child));\r\n assert(mightBeDirty(child));\r\n var parentWasClean = !mightBeDirty(parent);\r\n if (!parent.dirtyChildren) {\r\n parent.dirtyChildren = emptySetPool.pop() || new Set;\r\n }\r\n else if (parent.dirtyChildren.has(child)) {\r\n // If we already know this child is dirty, then we must have already\r\n // informed our own parents that we are dirty, so we can terminate\r\n // the recursion early.\r\n return;\r\n }\r\n parent.dirtyChildren.add(child);\r\n // If parent was clean before, it just became (possibly) dirty (according to\r\n // mightBeDirty), since we just added child to parent.dirtyChildren.\r\n if (parentWasClean) {\r\n reportDirty(parent);\r\n }\r\n}\r\n// Let a parent Entry know that one of its children is no longer dirty.\r\nfunction reportCleanChild(parent, child) {\r\n // Must have called rememberChild(child) before calling\r\n // reportCleanChild(parent, child).\r\n assert(parent.childValues.has(child));\r\n assert(!mightBeDirty(child));\r\n var childValue = parent.childValues.get(child);\r\n if (childValue.length === 0) {\r\n parent.childValues.set(child, valueCopy(child.value));\r\n }\r\n else if (!valueIs(childValue, child.value)) {\r\n parent.setDirty();\r\n }\r\n removeDirtyChild(parent, child);\r\n if (mightBeDirty(parent)) {\r\n return;\r\n }\r\n reportClean(parent);\r\n}\r\nfunction removeDirtyChild(parent, child) {\r\n var dc = parent.dirtyChildren;\r\n if (dc) {\r\n dc.delete(child);\r\n if (dc.size === 0) {\r\n if (emptySetPool.length < POOL_TARGET_SIZE) {\r\n emptySetPool.push(dc);\r\n }\r\n parent.dirtyChildren = null;\r\n }\r\n }\r\n}\r\n// Removes all children from this entry and returns an array of the\r\n// removed children.\r\nfunction forgetChildren(parent) {\r\n if (parent.childValues.size > 0) {\r\n parent.childValues.forEach(function (_value, child) {\r\n forgetChild(parent, child);\r\n });\r\n }\r\n // Remove this parent Entry from any sets to which it was added by the\r\n // addToSet method.\r\n parent.forgetDeps();\r\n // After we forget all our children, this.dirtyChildren must be empty\r\n // and therefore must have been reset to null.\r\n assert(parent.dirtyChildren === null);\r\n}\r\nfunction forgetChild(parent, child) {\r\n child.parents.delete(parent);\r\n parent.childValues.delete(child);\r\n removeDirtyChild(parent, child);\r\n}\r\nfunction maybeSubscribe(entry, args) {\r\n if (typeof entry.subscribe === \"function\") {\r\n try {\r\n maybeUnsubscribe(entry); // Prevent double subscriptions.\r\n entry.unsubscribe = entry.subscribe.apply(null, args);\r\n }\r\n catch (e) {\r\n // If this Entry has a subscribe function and it threw an exception\r\n // (or an unsubscribe function it previously returned now throws),\r\n // return false to indicate that we were not able to subscribe (or\r\n // unsubscribe), and this Entry should remain dirty.\r\n entry.setDirty();\r\n return false;\r\n }\r\n }\r\n // Returning true indicates either that there was no entry.subscribe\r\n // function or that it succeeded.\r\n return true;\r\n}\n\nvar EntryMethods = {\r\n setDirty: true,\r\n dispose: true,\r\n forget: true,\r\n};\r\nfunction dep(options) {\r\n var depsByKey = new Map();\r\n var subscribe = options && options.subscribe;\r\n function depend(key) {\r\n var parent = parentEntrySlot.getValue();\r\n if (parent) {\r\n var dep_1 = depsByKey.get(key);\r\n if (!dep_1) {\r\n depsByKey.set(key, dep_1 = new Set);\r\n }\r\n parent.dependOn(dep_1);\r\n if (typeof subscribe === \"function\") {\r\n maybeUnsubscribe(dep_1);\r\n dep_1.unsubscribe = subscribe(key);\r\n }\r\n }\r\n }\r\n depend.dirty = function dirty(key, entryMethodName) {\r\n var dep = depsByKey.get(key);\r\n if (dep) {\r\n var m_1 = (entryMethodName &&\r\n hasOwnProperty.call(EntryMethods, entryMethodName)) ? entryMethodName : \"setDirty\";\r\n // We have to use toArray(dep).forEach instead of dep.forEach, because\r\n // modifying a Set while iterating over it can cause elements in the Set\r\n // to be removed from the Set before they've been iterated over.\r\n toArray(dep).forEach(function (entry) { return entry[m_1](); });\r\n depsByKey.delete(key);\r\n maybeUnsubscribe(dep);\r\n }\r\n };\r\n return depend;\r\n}\n\nfunction makeDefaultMakeCacheKeyFunction() {\r\n var keyTrie = new Trie(typeof WeakMap === \"function\");\r\n return function () {\r\n return keyTrie.lookupArray(arguments);\r\n };\r\n}\r\n// The defaultMakeCacheKey function is remarkably powerful, because it gives\r\n// a unique object for any shallow-identical list of arguments. If you need\r\n// to implement a custom makeCacheKey function, you may find it helpful to\r\n// delegate the final work to defaultMakeCacheKey, which is why we export it\r\n// here. However, you may want to avoid defaultMakeCacheKey if your runtime\r\n// does not support WeakMap, or you have the ability to return a string key.\r\n// In those cases, just write your own custom makeCacheKey functions.\r\nvar defaultMakeCacheKey = makeDefaultMakeCacheKeyFunction();\r\nvar caches = new Set();\r\nfunction wrap(originalFunction, options) {\r\n if (options === void 0) { options = Object.create(null); }\r\n var cache = new Cache(options.max || Math.pow(2, 16), function (entry) { return entry.dispose(); });\r\n var keyArgs = options.keyArgs;\r\n var makeCacheKey = options.makeCacheKey ||\r\n makeDefaultMakeCacheKeyFunction();\r\n var optimistic = function () {\r\n var key = makeCacheKey.apply(null, keyArgs ? keyArgs.apply(null, arguments) : arguments);\r\n if (key === void 0) {\r\n return originalFunction.apply(null, arguments);\r\n }\r\n var entry = cache.get(key);\r\n if (!entry) {\r\n cache.set(key, entry = new Entry(originalFunction));\r\n entry.subscribe = options.subscribe;\r\n // Give the Entry the ability to trigger cache.delete(key), even though\r\n // the Entry itself does not know about key or cache.\r\n entry.forget = function () { return cache.delete(key); };\r\n }\r\n var value = entry.recompute(Array.prototype.slice.call(arguments));\r\n // Move this entry to the front of the least-recently used queue,\r\n // since we just finished computing its value.\r\n cache.set(key, entry);\r\n caches.add(cache);\r\n // Clean up any excess entries in the cache, but only if there is no\r\n // active parent entry, meaning we're not in the middle of a larger\r\n // computation that might be flummoxed by the cleaning.\r\n if (!parentEntrySlot.hasValue()) {\r\n caches.forEach(function (cache) { return cache.clean(); });\r\n caches.clear();\r\n }\r\n return value;\r\n };\r\n Object.defineProperty(optimistic, \"size\", {\r\n get: function () {\r\n return cache[\"map\"].size;\r\n },\r\n configurable: false,\r\n enumerable: false,\r\n });\r\n function dirtyKey(key) {\r\n var entry = cache.get(key);\r\n if (entry) {\r\n entry.setDirty();\r\n }\r\n }\r\n optimistic.dirtyKey = dirtyKey;\r\n optimistic.dirty = function dirty() {\r\n dirtyKey(makeCacheKey.apply(null, arguments));\r\n };\r\n function peekKey(key) {\r\n var entry = cache.get(key);\r\n if (entry) {\r\n return entry.peek();\r\n }\r\n }\r\n optimistic.peekKey = peekKey;\r\n optimistic.peek = function peek() {\r\n return peekKey(makeCacheKey.apply(null, arguments));\r\n };\r\n function forgetKey(key) {\r\n return cache.delete(key);\r\n }\r\n optimistic.forgetKey = forgetKey;\r\n optimistic.forget = function forget() {\r\n return forgetKey(makeCacheKey.apply(null, arguments));\r\n };\r\n optimistic.makeCacheKey = makeCacheKey;\r\n optimistic.getKey = keyArgs ? function getKey() {\r\n return makeCacheKey.apply(null, keyArgs.apply(null, arguments));\r\n } : makeCacheKey;\r\n return Object.freeze(optimistic);\r\n}\n\nexport { defaultMakeCacheKey, dep, wrap };\n//# sourceMappingURL=bundle.esm.js.map\n","import { __assign, __spreadArray } from \"tslib\";\nimport { invariant, InvariantError } from \"../globals/index.js\";\nexport function getFragmentQueryDocument(document, fragmentName) {\n var actualFragmentName = fragmentName;\n var fragments = [];\n document.definitions.forEach(function (definition) {\n if (definition.kind === 'OperationDefinition') {\n throw __DEV__ ? new InvariantError(\"Found a \".concat(definition.operation, \" operation\").concat(definition.name ? \" named '\".concat(definition.name.value, \"'\") : '', \". \") +\n 'No operations are allowed when using a fragment as a query. Only fragments are allowed.') : new InvariantError(41);\n }\n if (definition.kind === 'FragmentDefinition') {\n fragments.push(definition);\n }\n });\n if (typeof actualFragmentName === 'undefined') {\n __DEV__ ? invariant(fragments.length === 1, \"Found \".concat(fragments.length, \" fragments. `fragmentName` must be provided when there is not exactly 1 fragment.\")) : invariant(fragments.length === 1, 42);\n actualFragmentName = fragments[0].name.value;\n }\n var query = __assign(__assign({}, document), { definitions: __spreadArray([\n {\n kind: 'OperationDefinition',\n operation: 'query',\n selectionSet: {\n kind: 'SelectionSet',\n selections: [\n {\n kind: 'FragmentSpread',\n name: {\n kind: 'Name',\n value: actualFragmentName,\n },\n },\n ],\n },\n }\n ], document.definitions, true) });\n return query;\n}\nexport function createFragmentMap(fragments) {\n if (fragments === void 0) { fragments = []; }\n var symTable = {};\n fragments.forEach(function (fragment) {\n symTable[fragment.name.value] = fragment;\n });\n return symTable;\n}\nexport function getFragmentFromSelection(selection, fragmentMap) {\n switch (selection.kind) {\n case 'InlineFragment':\n return selection;\n case 'FragmentSpread': {\n var fragment = fragmentMap && fragmentMap[selection.name.value];\n __DEV__ ? invariant(fragment, \"No fragment named \".concat(selection.name.value, \".\")) : invariant(fragment, 43);\n return fragment;\n }\n default:\n return null;\n }\n}\n//# sourceMappingURL=fragments.js.map","import { __assign, __rest } from \"tslib\";\nimport { wrap } from 'optimism';\nimport { getFragmentQueryDocument, } from \"../../utilities/index.js\";\nvar ApolloCache = (function () {\n function ApolloCache() {\n this.getFragmentDoc = wrap(getFragmentQueryDocument);\n }\n ApolloCache.prototype.batch = function (options) {\n var _this = this;\n var optimisticId = typeof options.optimistic === \"string\" ? options.optimistic :\n options.optimistic === false ? null : void 0;\n var updateResult;\n this.performTransaction(function () { return updateResult = options.update(_this); }, optimisticId);\n return updateResult;\n };\n ApolloCache.prototype.recordOptimisticTransaction = function (transaction, optimisticId) {\n this.performTransaction(transaction, optimisticId);\n };\n ApolloCache.prototype.transformDocument = function (document) {\n return document;\n };\n ApolloCache.prototype.identify = function (object) {\n return;\n };\n ApolloCache.prototype.gc = function () {\n return [];\n };\n ApolloCache.prototype.modify = function (options) {\n return false;\n };\n ApolloCache.prototype.transformForLink = function (document) {\n return document;\n };\n ApolloCache.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = !!options.optimistic; }\n return this.read(__assign(__assign({}, options), { rootId: options.id || 'ROOT_QUERY', optimistic: optimistic }));\n };\n ApolloCache.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = !!options.optimistic; }\n return this.read(__assign(__assign({}, options), { query: this.getFragmentDoc(options.fragment, options.fragmentName), rootId: options.id, optimistic: optimistic }));\n };\n ApolloCache.prototype.writeQuery = function (_a) {\n var id = _a.id, data = _a.data, options = __rest(_a, [\"id\", \"data\"]);\n return this.write(Object.assign(options, {\n dataId: id || 'ROOT_QUERY',\n result: data,\n }));\n };\n ApolloCache.prototype.writeFragment = function (_a) {\n var id = _a.id, data = _a.data, fragment = _a.fragment, fragmentName = _a.fragmentName, options = __rest(_a, [\"id\", \"data\", \"fragment\", \"fragmentName\"]);\n return this.write(Object.assign(options, {\n query: this.getFragmentDoc(fragment, fragmentName),\n dataId: id,\n result: data,\n }));\n };\n ApolloCache.prototype.updateQuery = function (options, update) {\n return this.batch({\n update: function (cache) {\n var value = cache.readQuery(options);\n var data = update(value);\n if (data === void 0 || data === null)\n return value;\n cache.writeQuery(__assign(__assign({}, options), { data: data }));\n return data;\n },\n });\n };\n ApolloCache.prototype.updateFragment = function (options, update) {\n return this.batch({\n update: function (cache) {\n var value = cache.readFragment(options);\n var data = update(value);\n if (data === void 0 || data === null)\n return value;\n cache.writeFragment(__assign(__assign({}, options), { data: data }));\n return data;\n },\n });\n };\n return ApolloCache;\n}());\nexport { ApolloCache };\n//# sourceMappingURL=cache.js.map","var MissingFieldError = (function () {\n function MissingFieldError(message, path, query, variables) {\n this.message = message;\n this.path = path;\n this.query = query;\n this.variables = variables;\n }\n return MissingFieldError;\n}());\nexport { MissingFieldError };\n//# sourceMappingURL=common.js.map","export function isNonNullObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n//# sourceMappingURL=objects.js.map","import { InvariantError } from \"../globals/index.js\";\nimport { isNonNullObject } from \"../common/objects.js\";\nimport { getFragmentFromSelection } from \"./fragments.js\";\nexport function makeReference(id) {\n return { __ref: String(id) };\n}\nexport function isReference(obj) {\n return Boolean(obj && typeof obj === 'object' && typeof obj.__ref === 'string');\n}\nexport function isDocumentNode(value) {\n return (isNonNullObject(value) &&\n value.kind === \"Document\" &&\n Array.isArray(value.definitions));\n}\nfunction isStringValue(value) {\n return value.kind === 'StringValue';\n}\nfunction isBooleanValue(value) {\n return value.kind === 'BooleanValue';\n}\nfunction isIntValue(value) {\n return value.kind === 'IntValue';\n}\nfunction isFloatValue(value) {\n return value.kind === 'FloatValue';\n}\nfunction isVariable(value) {\n return value.kind === 'Variable';\n}\nfunction isObjectValue(value) {\n return value.kind === 'ObjectValue';\n}\nfunction isListValue(value) {\n return value.kind === 'ListValue';\n}\nfunction isEnumValue(value) {\n return value.kind === 'EnumValue';\n}\nfunction isNullValue(value) {\n return value.kind === 'NullValue';\n}\nexport function valueToObjectRepresentation(argObj, name, value, variables) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n }\n else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n }\n else if (isObjectValue(value)) {\n var nestedArgObj_1 = {};\n value.fields.map(function (obj) {\n return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables);\n });\n argObj[name.value] = nestedArgObj_1;\n }\n else if (isVariable(value)) {\n var variableValue = (variables || {})[value.name.value];\n argObj[name.value] = variableValue;\n }\n else if (isListValue(value)) {\n argObj[name.value] = value.values.map(function (listValue) {\n var nestedArgArrayObj = {};\n valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables);\n return nestedArgArrayObj[name.value];\n });\n }\n else if (isEnumValue(value)) {\n argObj[name.value] = value.value;\n }\n else if (isNullValue(value)) {\n argObj[name.value] = null;\n }\n else {\n throw __DEV__ ? new InvariantError(\"The inline argument \\\"\".concat(name.value, \"\\\" of kind \\\"\").concat(value.kind, \"\\\"\") +\n 'is not supported. Use variables instead of inline arguments to ' +\n 'overcome this limitation.') : new InvariantError(52);\n }\n}\nexport function storeKeyNameFromField(field, variables) {\n var directivesObj = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(function (directive) {\n directivesObj[directive.name.value] = {};\n if (directive.arguments) {\n directive.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables);\n });\n }\n });\n }\n var argObj = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(argObj, name, value, variables);\n });\n }\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\nvar KNOWN_DIRECTIVES = [\n 'connection',\n 'include',\n 'skip',\n 'client',\n 'rest',\n 'export',\n];\nexport var getStoreKeyName = Object.assign(function (fieldName, args, directives) {\n if (args &&\n directives &&\n directives['connection'] &&\n directives['connection']['key']) {\n if (directives['connection']['filter'] &&\n directives['connection']['filter'].length > 0) {\n var filterKeys = directives['connection']['filter']\n ? directives['connection']['filter']\n : [];\n filterKeys.sort();\n var filteredArgs_1 = {};\n filterKeys.forEach(function (key) {\n filteredArgs_1[key] = args[key];\n });\n return \"\".concat(directives['connection']['key'], \"(\").concat(stringify(filteredArgs_1), \")\");\n }\n else {\n return directives['connection']['key'];\n }\n }\n var completeFieldName = fieldName;\n if (args) {\n var stringifiedArgs = stringify(args);\n completeFieldName += \"(\".concat(stringifiedArgs, \")\");\n }\n if (directives) {\n Object.keys(directives).forEach(function (key) {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1)\n return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += \"@\".concat(key, \"(\").concat(stringify(directives[key]), \")\");\n }\n else {\n completeFieldName += \"@\".concat(key);\n }\n });\n }\n return completeFieldName;\n}, {\n setStringify: function (s) {\n var previous = stringify;\n stringify = s;\n return previous;\n },\n});\nvar stringify = function defaultStringify(value) {\n return JSON.stringify(value, stringifyReplacer);\n};\nfunction stringifyReplacer(_key, value) {\n if (isNonNullObject(value) && !Array.isArray(value)) {\n value = Object.keys(value).sort().reduce(function (copy, key) {\n copy[key] = value[key];\n return copy;\n }, {});\n }\n return value;\n}\nexport function argumentsObjectFromField(field, variables) {\n if (field.arguments && field.arguments.length) {\n var argObj_1 = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(argObj_1, name, value, variables);\n });\n return argObj_1;\n }\n return null;\n}\nexport function resultKeyNameFromField(field) {\n return field.alias ? field.alias.value : field.name.value;\n}\nexport function getTypenameFromResult(result, selectionSet, fragmentMap) {\n if (typeof result.__typename === 'string') {\n return result.__typename;\n }\n for (var _i = 0, _a = selectionSet.selections; _i < _a.length; _i++) {\n var selection = _a[_i];\n if (isField(selection)) {\n if (selection.name.value === '__typename') {\n return result[resultKeyNameFromField(selection)];\n }\n }\n else {\n var typename = getTypenameFromResult(result, getFragmentFromSelection(selection, fragmentMap).selectionSet, fragmentMap);\n if (typeof typename === 'string') {\n return typename;\n }\n }\n }\n}\nexport function isField(selection) {\n return selection.kind === 'Field';\n}\nexport function isInlineFragment(selection) {\n return selection.kind === 'InlineFragment';\n}\n//# sourceMappingURL=storeUtils.js.map","/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport class Location {\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The Token at which this Node begins.\n */\n\n /**\n * The Token at which this Node ends.\n */\n\n /**\n * The Source document the AST represents.\n */\n constructor(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n }\n\n get [Symbol.toStringTag]() {\n return 'Location';\n }\n\n toJSON() {\n return {\n start: this.start,\n end: this.end,\n };\n }\n}\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport class Token {\n /**\n * The kind of Token.\n */\n\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The 1-indexed line number on which this Token appears.\n */\n\n /**\n * The 1-indexed column number at which this Token begins.\n */\n\n /**\n * For non-punctuation tokens, represents the interpreted value of the token.\n *\n * Note: is undefined for punctuation tokens, but typed as string for\n * convenience in the parser.\n */\n\n /**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. is always the first node and \n * the last.\n */\n constructor(kind, start, end, line, column, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n this.value = value;\n this.prev = null;\n this.next = null;\n }\n\n get [Symbol.toStringTag]() {\n return 'Token';\n }\n\n toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column,\n };\n }\n}\n/**\n * The list of all possible AST node types.\n */\n\n/**\n * @internal\n */\nexport const QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: [\n 'name',\n 'variableDefinitions',\n 'directives',\n 'selectionSet',\n ],\n VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: [\n 'name', // Note: fragment variable definitions are deprecated and will removed in v17.0.0\n 'variableDefinitions',\n 'typeCondition',\n 'directives',\n 'selectionSet',\n ],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: [\n 'description',\n 'name',\n 'type',\n 'defaultValue',\n 'directives',\n ],\n InterfaceTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields'],\n};\nconst kindValues = new Set(Object.keys(QueryDocumentKeys));\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n const maybeKind =\n maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind;\n return typeof maybeKind === 'string' && kindValues.has(maybeKind);\n}\n/** Name */\n\nvar OperationTypeNode;\n\n(function (OperationTypeNode) {\n OperationTypeNode['QUERY'] = 'query';\n OperationTypeNode['MUTATION'] = 'mutation';\n OperationTypeNode['SUBSCRIPTION'] = 'subscription';\n})(OperationTypeNode || (OperationTypeNode = {}));\n\nexport { OperationTypeNode };\n","/**\n * The set of allowed kind values for AST nodes.\n */\nvar Kind;\n\n(function (Kind) {\n Kind['NAME'] = 'Name';\n Kind['DOCUMENT'] = 'Document';\n Kind['OPERATION_DEFINITION'] = 'OperationDefinition';\n Kind['VARIABLE_DEFINITION'] = 'VariableDefinition';\n Kind['SELECTION_SET'] = 'SelectionSet';\n Kind['FIELD'] = 'Field';\n Kind['ARGUMENT'] = 'Argument';\n Kind['FRAGMENT_SPREAD'] = 'FragmentSpread';\n Kind['INLINE_FRAGMENT'] = 'InlineFragment';\n Kind['FRAGMENT_DEFINITION'] = 'FragmentDefinition';\n Kind['VARIABLE'] = 'Variable';\n Kind['INT'] = 'IntValue';\n Kind['FLOAT'] = 'FloatValue';\n Kind['STRING'] = 'StringValue';\n Kind['BOOLEAN'] = 'BooleanValue';\n Kind['NULL'] = 'NullValue';\n Kind['ENUM'] = 'EnumValue';\n Kind['LIST'] = 'ListValue';\n Kind['OBJECT'] = 'ObjectValue';\n Kind['OBJECT_FIELD'] = 'ObjectField';\n Kind['DIRECTIVE'] = 'Directive';\n Kind['NAMED_TYPE'] = 'NamedType';\n Kind['LIST_TYPE'] = 'ListType';\n Kind['NON_NULL_TYPE'] = 'NonNullType';\n Kind['SCHEMA_DEFINITION'] = 'SchemaDefinition';\n Kind['OPERATION_TYPE_DEFINITION'] = 'OperationTypeDefinition';\n Kind['SCALAR_TYPE_DEFINITION'] = 'ScalarTypeDefinition';\n Kind['OBJECT_TYPE_DEFINITION'] = 'ObjectTypeDefinition';\n Kind['FIELD_DEFINITION'] = 'FieldDefinition';\n Kind['INPUT_VALUE_DEFINITION'] = 'InputValueDefinition';\n Kind['INTERFACE_TYPE_DEFINITION'] = 'InterfaceTypeDefinition';\n Kind['UNION_TYPE_DEFINITION'] = 'UnionTypeDefinition';\n Kind['ENUM_TYPE_DEFINITION'] = 'EnumTypeDefinition';\n Kind['ENUM_VALUE_DEFINITION'] = 'EnumValueDefinition';\n Kind['INPUT_OBJECT_TYPE_DEFINITION'] = 'InputObjectTypeDefinition';\n Kind['DIRECTIVE_DEFINITION'] = 'DirectiveDefinition';\n Kind['SCHEMA_EXTENSION'] = 'SchemaExtension';\n Kind['SCALAR_TYPE_EXTENSION'] = 'ScalarTypeExtension';\n Kind['OBJECT_TYPE_EXTENSION'] = 'ObjectTypeExtension';\n Kind['INTERFACE_TYPE_EXTENSION'] = 'InterfaceTypeExtension';\n Kind['UNION_TYPE_EXTENSION'] = 'UnionTypeExtension';\n Kind['ENUM_TYPE_EXTENSION'] = 'EnumTypeExtension';\n Kind['INPUT_OBJECT_TYPE_EXTENSION'] = 'InputObjectTypeExtension';\n})(Kind || (Kind = {}));\n\nexport { Kind };\n/**\n * The enum type representing the possible kind values of AST nodes.\n *\n * @deprecated Please use `Kind`. Will be remove in v17.\n */\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { isNode, QueryDocumentKeys } from './ast.mjs';\nimport { Kind } from './kinds.mjs';\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport const BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * ```ts\n * const editedAST = visit(ast, {\n * enter(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: skip visiting this node\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * },\n * leave(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: no action\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * }\n * });\n * ```\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to three permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n * ```\n *\n * 2) Named visitors that trigger upon entering and leaving a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n * Kind: {\n * enter(node) {\n * // enter the \"Kind\" node\n * }\n * leave(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n * ```\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * ```ts\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n * ```\n */\n\nexport function visit(root, visitor, visitorKeys = QueryDocumentKeys) {\n const enterLeaveMap = new Map();\n\n for (const kind of Object.values(Kind)) {\n enterLeaveMap.set(kind, getEnterLeaveForKind(visitor, kind));\n }\n /* eslint-disable no-undef-init */\n\n let stack = undefined;\n let inArray = Array.isArray(root);\n let keys = [root];\n let index = -1;\n let edits = [];\n let node = root;\n let key = undefined;\n let parent = undefined;\n const path = [];\n const ancestors = [];\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n const isLeaving = index === keys.length;\n const isEdited = isLeaving && edits.length !== 0;\n\n if (isLeaving) {\n key = ancestors.length === 0 ? undefined : path[path.length - 1];\n node = parent;\n parent = ancestors.pop();\n\n if (isEdited) {\n if (inArray) {\n node = node.slice();\n let editOffset = 0;\n\n for (const [editKey, editValue] of edits) {\n const arrayKey = editKey - editOffset;\n\n if (editValue === null) {\n node.splice(arrayKey, 1);\n editOffset++;\n } else {\n node[arrayKey] = editValue;\n }\n }\n } else {\n node = Object.defineProperties(\n {},\n Object.getOwnPropertyDescriptors(node),\n );\n\n for (const [editKey, editValue] of edits) {\n node[editKey] = editValue;\n }\n }\n }\n\n index = stack.index;\n keys = stack.keys;\n edits = stack.edits;\n inArray = stack.inArray;\n stack = stack.prev;\n } else if (parent) {\n key = inArray ? index : keys[index];\n node = parent[key];\n\n if (node === null || node === undefined) {\n continue;\n }\n\n path.push(key);\n }\n\n let result;\n\n if (!Array.isArray(node)) {\n var _enterLeaveMap$get, _enterLeaveMap$get2;\n\n isNode(node) || devAssert(false, `Invalid AST Node: ${inspect(node)}.`);\n const visitFn = isLeaving\n ? (_enterLeaveMap$get = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get === void 0\n ? void 0\n : _enterLeaveMap$get.leave\n : (_enterLeaveMap$get2 = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get2 === void 0\n ? void 0\n : _enterLeaveMap$get2.enter;\n result =\n visitFn === null || visitFn === void 0\n ? void 0\n : visitFn.call(visitor, node, key, parent, path, ancestors);\n\n if (result === BREAK) {\n break;\n }\n\n if (result === false) {\n if (!isLeaving) {\n path.pop();\n continue;\n }\n } else if (result !== undefined) {\n edits.push([key, result]);\n\n if (!isLeaving) {\n if (isNode(result)) {\n node = result;\n } else {\n path.pop();\n continue;\n }\n }\n }\n }\n\n if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _node$kind;\n\n stack = {\n inArray,\n index,\n keys,\n edits,\n prev: stack,\n };\n inArray = Array.isArray(node);\n keys = inArray\n ? node\n : (_node$kind = visitorKeys[node.kind]) !== null &&\n _node$kind !== void 0\n ? _node$kind\n : [];\n index = -1;\n edits = [];\n\n if (parent) {\n ancestors.push(parent);\n }\n\n parent = node;\n }\n } while (stack !== undefined);\n\n if (edits.length !== 0) {\n // New root\n return edits[edits.length - 1][1];\n }\n\n return root;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n const skipping = new Array(visitors.length).fill(null);\n const mergedVisitor = Object.create(null);\n\n for (const kind of Object.values(Kind)) {\n let hasVisitor = false;\n const enterList = new Array(visitors.length).fill(undefined);\n const leaveList = new Array(visitors.length).fill(undefined);\n\n for (let i = 0; i < visitors.length; ++i) {\n const { enter, leave } = getEnterLeaveForKind(visitors[i], kind);\n hasVisitor || (hasVisitor = enter != null || leave != null);\n enterList[i] = enter;\n leaveList[i] = leave;\n }\n\n if (!hasVisitor) {\n continue;\n }\n\n const mergedEnterLeave = {\n enter(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _enterList$i;\n\n const result =\n (_enterList$i = enterList[i]) === null || _enterList$i === void 0\n ? void 0\n : _enterList$i.apply(visitors[i], args);\n\n if (result === false) {\n skipping[i] = node;\n } else if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined) {\n return result;\n }\n }\n }\n },\n\n leave(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _leaveList$i;\n\n const result =\n (_leaveList$i = leaveList[i]) === null || _leaveList$i === void 0\n ? void 0\n : _leaveList$i.apply(visitors[i], args);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n },\n };\n mergedVisitor[kind] = mergedEnterLeave;\n }\n\n return mergedVisitor;\n}\n/**\n * Given a visitor instance and a node kind, return EnterLeaveVisitor for that kind.\n */\n\nexport function getEnterLeaveForKind(visitor, kind) {\n const kindVisitor = visitor[kind];\n\n if (typeof kindVisitor === 'object') {\n // { Kind: { enter() {}, leave() {} } }\n return kindVisitor;\n } else if (typeof kindVisitor === 'function') {\n // { Kind() {} }\n return {\n enter: kindVisitor,\n leave: undefined,\n };\n } // { enter() {}, leave() {} }\n\n return {\n enter: visitor.enter,\n leave: visitor.leave,\n };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n *\n * @deprecated Please use `getEnterLeaveForKind` instead. Will be removed in v17\n */\n\n/* c8 ignore next 8 */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n const { enter, leave } = getEnterLeaveForKind(visitor, kind);\n return isLeaving ? leave : enter;\n}\n","import { invariant, InvariantError } from \"../globals/index.js\";\nimport { valueToObjectRepresentation } from \"./storeUtils.js\";\nexport function checkDocument(doc) {\n __DEV__ ? invariant(doc && doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\") : invariant(doc && doc.kind === 'Document', 44);\n var operations = doc.definitions\n .filter(function (d) { return d.kind !== 'FragmentDefinition'; })\n .map(function (definition) {\n if (definition.kind !== 'OperationDefinition') {\n throw __DEV__ ? new InvariantError(\"Schema type definitions not allowed in queries. Found: \\\"\".concat(definition.kind, \"\\\"\")) : new InvariantError(45);\n }\n return definition;\n });\n __DEV__ ? invariant(operations.length <= 1, \"Ambiguous GraphQL document: contains \".concat(operations.length, \" operations\")) : invariant(operations.length <= 1, 46);\n return doc;\n}\nexport function getOperationDefinition(doc) {\n checkDocument(doc);\n return doc.definitions.filter(function (definition) { return definition.kind === 'OperationDefinition'; })[0];\n}\nexport function getOperationName(doc) {\n return (doc.definitions\n .filter(function (definition) {\n return definition.kind === 'OperationDefinition' && definition.name;\n })\n .map(function (x) { return x.name.value; })[0] || null);\n}\nexport function getFragmentDefinitions(doc) {\n return doc.definitions.filter(function (definition) { return definition.kind === 'FragmentDefinition'; });\n}\nexport function getQueryDefinition(doc) {\n var queryDef = getOperationDefinition(doc);\n __DEV__ ? invariant(queryDef && queryDef.operation === 'query', 'Must contain a query definition.') : invariant(queryDef && queryDef.operation === 'query', 47);\n return queryDef;\n}\nexport function getFragmentDefinition(doc) {\n __DEV__ ? invariant(doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\") : invariant(doc.kind === 'Document', 48);\n __DEV__ ? invariant(doc.definitions.length <= 1, 'Fragment must have exactly one definition.') : invariant(doc.definitions.length <= 1, 49);\n var fragmentDef = doc.definitions[0];\n __DEV__ ? invariant(fragmentDef.kind === 'FragmentDefinition', 'Must be a fragment definition.') : invariant(fragmentDef.kind === 'FragmentDefinition', 50);\n return fragmentDef;\n}\nexport function getMainDefinition(queryDoc) {\n checkDocument(queryDoc);\n var fragmentDefinition;\n for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) {\n var definition = _a[_i];\n if (definition.kind === 'OperationDefinition') {\n var operation = definition.operation;\n if (operation === 'query' ||\n operation === 'mutation' ||\n operation === 'subscription') {\n return definition;\n }\n }\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n fragmentDefinition = definition;\n }\n }\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n throw __DEV__ ? new InvariantError('Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.') : new InvariantError(51);\n}\nexport function getDefaultValues(definition) {\n var defaultValues = Object.create(null);\n var defs = definition && definition.variableDefinitions;\n if (defs && defs.length) {\n defs.forEach(function (def) {\n if (def.defaultValue) {\n valueToObjectRepresentation(defaultValues, def.variable.name, def.defaultValue);\n }\n });\n }\n return defaultValues;\n}\n//# sourceMappingURL=getFromAST.js.map","export function filterInPlace(array, test, context) {\n var target = 0;\n array.forEach(function (elem, i) {\n if (test.call(this, elem, i, array)) {\n array[target++] = elem;\n }\n }, context);\n array.length = target;\n return array;\n}\n//# sourceMappingURL=filterInPlace.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { invariant } from \"../globals/index.js\";\nimport { visit, } from 'graphql';\nimport { checkDocument, getOperationDefinition, getFragmentDefinition, getFragmentDefinitions, getMainDefinition, } from \"./getFromAST.js\";\nimport { filterInPlace } from \"../common/filterInPlace.js\";\nimport { isField, isInlineFragment } from \"./storeUtils.js\";\nimport { createFragmentMap, } from \"./fragments.js\";\nvar TYPENAME_FIELD = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: '__typename',\n },\n};\nfunction isEmpty(op, fragments) {\n return op.selectionSet.selections.every(function (selection) {\n return selection.kind === 'FragmentSpread' &&\n isEmpty(fragments[selection.name.value], fragments);\n });\n}\nfunction nullIfDocIsEmpty(doc) {\n return isEmpty(getOperationDefinition(doc) || getFragmentDefinition(doc), createFragmentMap(getFragmentDefinitions(doc)))\n ? null\n : doc;\n}\nfunction getDirectiveMatcher(directives) {\n return function directiveMatcher(directive) {\n return directives.some(function (dir) {\n return (dir.name && dir.name === directive.name.value) ||\n (dir.test && dir.test(directive));\n });\n };\n}\nexport function removeDirectivesFromDocument(directives, doc) {\n var variablesInUse = Object.create(null);\n var variablesToRemove = [];\n var fragmentSpreadsInUse = Object.create(null);\n var fragmentSpreadsToRemove = [];\n var modifiedDoc = nullIfDocIsEmpty(visit(doc, {\n Variable: {\n enter: function (node, _key, parent) {\n if (parent.kind !== 'VariableDefinition') {\n variablesInUse[node.name.value] = true;\n }\n },\n },\n Field: {\n enter: function (node) {\n if (directives && node.directives) {\n var shouldRemoveField = directives.some(function (directive) { return directive.remove; });\n if (shouldRemoveField &&\n node.directives &&\n node.directives.some(getDirectiveMatcher(directives))) {\n if (node.arguments) {\n node.arguments.forEach(function (arg) {\n if (arg.value.kind === 'Variable') {\n variablesToRemove.push({\n name: arg.value.name.value,\n });\n }\n });\n }\n if (node.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(node.selectionSet).forEach(function (frag) {\n fragmentSpreadsToRemove.push({\n name: frag.name.value,\n });\n });\n }\n return null;\n }\n }\n },\n },\n FragmentSpread: {\n enter: function (node) {\n fragmentSpreadsInUse[node.name.value] = true;\n },\n },\n Directive: {\n enter: function (node) {\n if (getDirectiveMatcher(directives)(node)) {\n return null;\n }\n },\n },\n }));\n if (modifiedDoc &&\n filterInPlace(variablesToRemove, function (v) { return !!v.name && !variablesInUse[v.name]; }).length) {\n modifiedDoc = removeArgumentsFromDocument(variablesToRemove, modifiedDoc);\n }\n if (modifiedDoc &&\n filterInPlace(fragmentSpreadsToRemove, function (fs) { return !!fs.name && !fragmentSpreadsInUse[fs.name]; })\n .length) {\n modifiedDoc = removeFragmentSpreadFromDocument(fragmentSpreadsToRemove, modifiedDoc);\n }\n return modifiedDoc;\n}\nexport var addTypenameToDocument = Object.assign(function (doc) {\n return visit(doc, {\n SelectionSet: {\n enter: function (node, _key, parent) {\n if (parent &&\n parent.kind === 'OperationDefinition') {\n return;\n }\n var selections = node.selections;\n if (!selections) {\n return;\n }\n var skip = selections.some(function (selection) {\n return (isField(selection) &&\n (selection.name.value === '__typename' ||\n selection.name.value.lastIndexOf('__', 0) === 0));\n });\n if (skip) {\n return;\n }\n var field = parent;\n if (isField(field) &&\n field.directives &&\n field.directives.some(function (d) { return d.name.value === 'export'; })) {\n return;\n }\n return __assign(__assign({}, node), { selections: __spreadArray(__spreadArray([], selections, true), [TYPENAME_FIELD], false) });\n },\n },\n });\n}, {\n added: function (field) {\n return field === TYPENAME_FIELD;\n },\n});\nvar connectionRemoveConfig = {\n test: function (directive) {\n var willRemove = directive.name.value === 'connection';\n if (willRemove) {\n if (!directive.arguments ||\n !directive.arguments.some(function (arg) { return arg.name.value === 'key'; })) {\n __DEV__ && invariant.warn('Removing an @connection directive even though it does not have a key. ' +\n 'You may want to use the key parameter to specify a store key.');\n }\n }\n return willRemove;\n },\n};\nexport function removeConnectionDirectiveFromDocument(doc) {\n return removeDirectivesFromDocument([connectionRemoveConfig], checkDocument(doc));\n}\nfunction hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) {\n if (nestedCheck === void 0) { nestedCheck = true; }\n return (!!selectionSet &&\n selectionSet.selections &&\n selectionSet.selections.some(function (selection) {\n return hasDirectivesInSelection(directives, selection, nestedCheck);\n }));\n}\nfunction hasDirectivesInSelection(directives, selection, nestedCheck) {\n if (nestedCheck === void 0) { nestedCheck = true; }\n if (!isField(selection)) {\n return true;\n }\n if (!selection.directives) {\n return false;\n }\n return (selection.directives.some(getDirectiveMatcher(directives)) ||\n (nestedCheck &&\n hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck)));\n}\nfunction getArgumentMatcher(config) {\n return function argumentMatcher(argument) {\n return config.some(function (aConfig) {\n return argument.value &&\n argument.value.kind === 'Variable' &&\n argument.value.name &&\n (aConfig.name === argument.value.name.value ||\n (aConfig.test && aConfig.test(argument)));\n });\n };\n}\nexport function removeArgumentsFromDocument(config, doc) {\n var argMatcher = getArgumentMatcher(config);\n return nullIfDocIsEmpty(visit(doc, {\n OperationDefinition: {\n enter: function (node) {\n return __assign(__assign({}, node), { variableDefinitions: node.variableDefinitions ? node.variableDefinitions.filter(function (varDef) {\n return !config.some(function (arg) { return arg.name === varDef.variable.name.value; });\n }) : [] });\n },\n },\n Field: {\n enter: function (node) {\n var shouldRemoveField = config.some(function (argConfig) { return argConfig.remove; });\n if (shouldRemoveField) {\n var argMatchCount_1 = 0;\n if (node.arguments) {\n node.arguments.forEach(function (arg) {\n if (argMatcher(arg)) {\n argMatchCount_1 += 1;\n }\n });\n }\n if (argMatchCount_1 === 1) {\n return null;\n }\n }\n },\n },\n Argument: {\n enter: function (node) {\n if (argMatcher(node)) {\n return null;\n }\n },\n },\n }));\n}\nexport function removeFragmentSpreadFromDocument(config, doc) {\n function enter(node) {\n if (config.some(function (def) { return def.name === node.name.value; })) {\n return null;\n }\n }\n return nullIfDocIsEmpty(visit(doc, {\n FragmentSpread: { enter: enter },\n FragmentDefinition: { enter: enter },\n }));\n}\nfunction getAllFragmentSpreadsFromSelectionSet(selectionSet) {\n var allFragments = [];\n selectionSet.selections.forEach(function (selection) {\n if ((isField(selection) || isInlineFragment(selection)) &&\n selection.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(selection.selectionSet).forEach(function (frag) { return allFragments.push(frag); });\n }\n else if (selection.kind === 'FragmentSpread') {\n allFragments.push(selection);\n }\n });\n return allFragments;\n}\nexport function buildQueryFromSelectionSet(document) {\n var definition = getMainDefinition(document);\n var definitionOperation = definition.operation;\n if (definitionOperation === 'query') {\n return document;\n }\n var modifiedDoc = visit(document, {\n OperationDefinition: {\n enter: function (node) {\n return __assign(__assign({}, node), { operation: 'query' });\n },\n },\n });\n return modifiedDoc;\n}\nexport function removeClientSetsFromDocument(document) {\n checkDocument(document);\n var modifiedDoc = removeDirectivesFromDocument([\n {\n test: function (directive) { return directive.name.value === 'client'; },\n remove: true,\n },\n ], document);\n if (modifiedDoc) {\n modifiedDoc = visit(modifiedDoc, {\n FragmentDefinition: {\n enter: function (node) {\n if (node.selectionSet) {\n var isTypenameOnly = node.selectionSet.selections.every(function (selection) {\n return isField(selection) && selection.name.value === '__typename';\n });\n if (isTypenameOnly) {\n return null;\n }\n }\n },\n },\n });\n }\n return modifiedDoc;\n}\n//# sourceMappingURL=transform.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { isNonNullObject } from \"./objects.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function mergeDeep() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n return mergeDeepArray(sources);\n}\nexport function mergeDeepArray(sources) {\n var target = sources[0] || {};\n var count = sources.length;\n if (count > 1) {\n var merger = new DeepMerger();\n for (var i = 1; i < count; ++i) {\n target = merger.merge(target, sources[i]);\n }\n }\n return target;\n}\nvar defaultReconciler = function (target, source, property) {\n return this.merge(target[property], source[property]);\n};\nvar DeepMerger = (function () {\n function DeepMerger(reconciler) {\n if (reconciler === void 0) { reconciler = defaultReconciler; }\n this.reconciler = reconciler;\n this.isObject = isNonNullObject;\n this.pastCopies = new Set();\n }\n DeepMerger.prototype.merge = function (target, source) {\n var _this = this;\n var context = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n context[_i - 2] = arguments[_i];\n }\n if (isNonNullObject(source) && isNonNullObject(target)) {\n Object.keys(source).forEach(function (sourceKey) {\n if (hasOwnProperty.call(target, sourceKey)) {\n var targetValue = target[sourceKey];\n if (source[sourceKey] !== targetValue) {\n var result = _this.reconciler.apply(_this, __spreadArray([target, source, sourceKey], context, false));\n if (result !== targetValue) {\n target = _this.shallowCopyForMerge(target);\n target[sourceKey] = result;\n }\n }\n }\n else {\n target = _this.shallowCopyForMerge(target);\n target[sourceKey] = source[sourceKey];\n }\n });\n return target;\n }\n return source;\n };\n DeepMerger.prototype.shallowCopyForMerge = function (value) {\n if (isNonNullObject(value)) {\n if (!this.pastCopies.has(value)) {\n if (Array.isArray(value)) {\n value = value.slice(0);\n }\n else {\n value = __assign({ __proto__: Object.getPrototypeOf(value) }, value);\n }\n this.pastCopies.add(value);\n }\n }\n return value;\n };\n return DeepMerger;\n}());\nexport { DeepMerger };\n//# sourceMappingURL=mergeDeep.js.map","import { invariant } from \"../globals/index.js\";\nimport { visit, } from 'graphql';\nexport function shouldInclude(_a, variables) {\n var directives = _a.directives;\n if (!directives || !directives.length) {\n return true;\n }\n return getInclusionDirectives(directives).every(function (_a) {\n var directive = _a.directive, ifArgument = _a.ifArgument;\n var evaledValue = false;\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables && variables[ifArgument.value.name.value];\n __DEV__ ? invariant(evaledValue !== void 0, \"Invalid variable referenced in @\".concat(directive.name.value, \" directive.\")) : invariant(evaledValue !== void 0, 37);\n }\n else {\n evaledValue = ifArgument.value.value;\n }\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\nexport function getDirectiveNames(root) {\n var names = [];\n visit(root, {\n Directive: function (node) {\n names.push(node.name.value);\n },\n });\n return names;\n}\nexport function hasDirectives(names, root) {\n return getDirectiveNames(root).some(function (name) { return names.indexOf(name) > -1; });\n}\nexport function hasClientExports(document) {\n return (document &&\n hasDirectives(['client'], document) &&\n hasDirectives(['export'], document));\n}\nfunction isInclusionDirective(_a) {\n var value = _a.name.value;\n return value === 'skip' || value === 'include';\n}\nexport function getInclusionDirectives(directives) {\n var result = [];\n if (directives && directives.length) {\n directives.forEach(function (directive) {\n if (!isInclusionDirective(directive))\n return;\n var directiveArguments = directive.arguments;\n var directiveName = directive.name.value;\n __DEV__ ? invariant(directiveArguments && directiveArguments.length === 1, \"Incorrect number of arguments for the @\".concat(directiveName, \" directive.\")) : invariant(directiveArguments && directiveArguments.length === 1, 38);\n var ifArgument = directiveArguments[0];\n __DEV__ ? invariant(ifArgument.name && ifArgument.name.value === 'if', \"Invalid argument for the @\".concat(directiveName, \" directive.\")) : invariant(ifArgument.name && ifArgument.name.value === 'if', 39);\n var ifValue = ifArgument.value;\n __DEV__ ? invariant(ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), \"Argument for the @\".concat(directiveName, \" directive must be a variable or a boolean value.\")) : invariant(ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 40);\n result.push({ directive: directive, ifArgument: ifArgument });\n });\n }\n return result;\n}\n//# sourceMappingURL=directives.js.map","import { isReference, isField, DeepMerger, resultKeyNameFromField, shouldInclude, isNonNullObject, compact, } from \"../../utilities/index.js\";\nexport var hasOwn = Object.prototype.hasOwnProperty;\nexport function defaultDataIdFromObject(_a, context) {\n var __typename = _a.__typename, id = _a.id, _id = _a._id;\n if (typeof __typename === \"string\") {\n if (context) {\n context.keyObject =\n id !== void 0 ? { id: id } :\n _id !== void 0 ? { _id: _id } :\n void 0;\n }\n if (id === void 0)\n id = _id;\n if (id !== void 0) {\n return \"\".concat(__typename, \":\").concat((typeof id === \"number\" ||\n typeof id === \"string\") ? id : JSON.stringify(id));\n }\n }\n}\nvar defaultConfig = {\n dataIdFromObject: defaultDataIdFromObject,\n addTypename: true,\n resultCaching: true,\n canonizeResults: false,\n};\nexport function normalizeConfig(config) {\n return compact(defaultConfig, config);\n}\nexport function shouldCanonizeResults(config) {\n var value = config.canonizeResults;\n return value === void 0 ? defaultConfig.canonizeResults : value;\n}\nexport function getTypenameFromStoreObject(store, objectOrReference) {\n return isReference(objectOrReference)\n ? store.get(objectOrReference.__ref, \"__typename\")\n : objectOrReference && objectOrReference.__typename;\n}\nexport var TypeOrFieldNameRegExp = /^[_a-z][_0-9a-z]*/i;\nexport function fieldNameFromStoreName(storeFieldName) {\n var match = storeFieldName.match(TypeOrFieldNameRegExp);\n return match ? match[0] : storeFieldName;\n}\nexport function selectionSetMatchesResult(selectionSet, result, variables) {\n if (isNonNullObject(result)) {\n return isArray(result)\n ? result.every(function (item) { return selectionSetMatchesResult(selectionSet, item, variables); })\n : selectionSet.selections.every(function (field) {\n if (isField(field) && shouldInclude(field, variables)) {\n var key = resultKeyNameFromField(field);\n return hasOwn.call(result, key) &&\n (!field.selectionSet ||\n selectionSetMatchesResult(field.selectionSet, result[key], variables));\n }\n return true;\n });\n }\n return false;\n}\nexport function storeValueIsStoreObject(value) {\n return isNonNullObject(value) &&\n !isReference(value) &&\n !isArray(value);\n}\nexport function makeProcessedFieldsMerger() {\n return new DeepMerger;\n}\nexport var isArray = function (a) { return Array.isArray(a); };\n//# sourceMappingURL=helpers.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { dep } from 'optimism';\nimport { equal } from '@wry/equality';\nimport { Trie } from '@wry/trie';\nimport { isReference, makeReference, DeepMerger, maybeDeepFreeze, canUseWeakMap, isNonNullObject, } from \"../../utilities/index.js\";\nimport { hasOwn, fieldNameFromStoreName } from \"./helpers.js\";\nvar DELETE = Object.create(null);\nvar delModifier = function () { return DELETE; };\nvar INVALIDATE = Object.create(null);\nvar EntityStore = (function () {\n function EntityStore(policies, group) {\n var _this = this;\n this.policies = policies;\n this.group = group;\n this.data = Object.create(null);\n this.rootIds = Object.create(null);\n this.refs = Object.create(null);\n this.getFieldValue = function (objectOrReference, storeFieldName) { return maybeDeepFreeze(isReference(objectOrReference)\n ? _this.get(objectOrReference.__ref, storeFieldName)\n : objectOrReference && objectOrReference[storeFieldName]); };\n this.canRead = function (objOrRef) {\n return isReference(objOrRef)\n ? _this.has(objOrRef.__ref)\n : typeof objOrRef === \"object\";\n };\n this.toReference = function (objOrIdOrRef, mergeIntoStore) {\n if (typeof objOrIdOrRef === \"string\") {\n return makeReference(objOrIdOrRef);\n }\n if (isReference(objOrIdOrRef)) {\n return objOrIdOrRef;\n }\n var id = _this.policies.identify(objOrIdOrRef)[0];\n if (id) {\n var ref = makeReference(id);\n if (mergeIntoStore) {\n _this.merge(id, objOrIdOrRef);\n }\n return ref;\n }\n };\n }\n EntityStore.prototype.toObject = function () {\n return __assign({}, this.data);\n };\n EntityStore.prototype.has = function (dataId) {\n return this.lookup(dataId, true) !== void 0;\n };\n EntityStore.prototype.get = function (dataId, fieldName) {\n this.group.depend(dataId, fieldName);\n if (hasOwn.call(this.data, dataId)) {\n var storeObject = this.data[dataId];\n if (storeObject && hasOwn.call(storeObject, fieldName)) {\n return storeObject[fieldName];\n }\n }\n if (fieldName === \"__typename\" &&\n hasOwn.call(this.policies.rootTypenamesById, dataId)) {\n return this.policies.rootTypenamesById[dataId];\n }\n if (this instanceof Layer) {\n return this.parent.get(dataId, fieldName);\n }\n };\n EntityStore.prototype.lookup = function (dataId, dependOnExistence) {\n if (dependOnExistence)\n this.group.depend(dataId, \"__exists\");\n if (hasOwn.call(this.data, dataId)) {\n return this.data[dataId];\n }\n if (this instanceof Layer) {\n return this.parent.lookup(dataId, dependOnExistence);\n }\n if (this.policies.rootTypenamesById[dataId]) {\n return Object.create(null);\n }\n };\n EntityStore.prototype.merge = function (older, newer) {\n var _this = this;\n var dataId;\n if (isReference(older))\n older = older.__ref;\n if (isReference(newer))\n newer = newer.__ref;\n var existing = typeof older === \"string\"\n ? this.lookup(dataId = older)\n : older;\n var incoming = typeof newer === \"string\"\n ? this.lookup(dataId = newer)\n : newer;\n if (!incoming)\n return;\n __DEV__ ? invariant(typeof dataId === \"string\", \"store.merge expects a string ID\") : invariant(typeof dataId === \"string\", 1);\n var merged = new DeepMerger(storeObjectReconciler).merge(existing, incoming);\n this.data[dataId] = merged;\n if (merged !== existing) {\n delete this.refs[dataId];\n if (this.group.caching) {\n var fieldsToDirty_1 = Object.create(null);\n if (!existing)\n fieldsToDirty_1.__exists = 1;\n Object.keys(incoming).forEach(function (storeFieldName) {\n if (!existing || existing[storeFieldName] !== merged[storeFieldName]) {\n fieldsToDirty_1[storeFieldName] = 1;\n var fieldName = fieldNameFromStoreName(storeFieldName);\n if (fieldName !== storeFieldName &&\n !_this.policies.hasKeyArgs(merged.__typename, fieldName)) {\n fieldsToDirty_1[fieldName] = 1;\n }\n if (merged[storeFieldName] === void 0 && !(_this instanceof Layer)) {\n delete merged[storeFieldName];\n }\n }\n });\n if (fieldsToDirty_1.__typename &&\n !(existing && existing.__typename) &&\n this.policies.rootTypenamesById[dataId] === merged.__typename) {\n delete fieldsToDirty_1.__typename;\n }\n Object.keys(fieldsToDirty_1).forEach(function (fieldName) { return _this.group.dirty(dataId, fieldName); });\n }\n }\n };\n EntityStore.prototype.modify = function (dataId, fields) {\n var _this = this;\n var storeObject = this.lookup(dataId);\n if (storeObject) {\n var changedFields_1 = Object.create(null);\n var needToMerge_1 = false;\n var allDeleted_1 = true;\n var sharedDetails_1 = {\n DELETE: DELETE,\n INVALIDATE: INVALIDATE,\n isReference: isReference,\n toReference: this.toReference,\n canRead: this.canRead,\n readField: function (fieldNameOrOptions, from) { return _this.policies.readField(typeof fieldNameOrOptions === \"string\" ? {\n fieldName: fieldNameOrOptions,\n from: from || makeReference(dataId),\n } : fieldNameOrOptions, { store: _this }); },\n };\n Object.keys(storeObject).forEach(function (storeFieldName) {\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var fieldValue = storeObject[storeFieldName];\n if (fieldValue === void 0)\n return;\n var modify = typeof fields === \"function\"\n ? fields\n : fields[storeFieldName] || fields[fieldName];\n if (modify) {\n var newValue = modify === delModifier ? DELETE :\n modify(maybeDeepFreeze(fieldValue), __assign(__assign({}, sharedDetails_1), { fieldName: fieldName, storeFieldName: storeFieldName, storage: _this.getStorage(dataId, storeFieldName) }));\n if (newValue === INVALIDATE) {\n _this.group.dirty(dataId, storeFieldName);\n }\n else {\n if (newValue === DELETE)\n newValue = void 0;\n if (newValue !== fieldValue) {\n changedFields_1[storeFieldName] = newValue;\n needToMerge_1 = true;\n fieldValue = newValue;\n }\n }\n }\n if (fieldValue !== void 0) {\n allDeleted_1 = false;\n }\n });\n if (needToMerge_1) {\n this.merge(dataId, changedFields_1);\n if (allDeleted_1) {\n if (this instanceof Layer) {\n this.data[dataId] = void 0;\n }\n else {\n delete this.data[dataId];\n }\n this.group.dirty(dataId, \"__exists\");\n }\n return true;\n }\n }\n return false;\n };\n EntityStore.prototype.delete = function (dataId, fieldName, args) {\n var _a;\n var storeObject = this.lookup(dataId);\n if (storeObject) {\n var typename = this.getFieldValue(storeObject, \"__typename\");\n var storeFieldName = fieldName && args\n ? this.policies.getStoreFieldName({ typename: typename, fieldName: fieldName, args: args })\n : fieldName;\n return this.modify(dataId, storeFieldName ? (_a = {},\n _a[storeFieldName] = delModifier,\n _a) : delModifier);\n }\n return false;\n };\n EntityStore.prototype.evict = function (options, limit) {\n var evicted = false;\n if (options.id) {\n if (hasOwn.call(this.data, options.id)) {\n evicted = this.delete(options.id, options.fieldName, options.args);\n }\n if (this instanceof Layer && this !== limit) {\n evicted = this.parent.evict(options, limit) || evicted;\n }\n if (options.fieldName || evicted) {\n this.group.dirty(options.id, options.fieldName || \"__exists\");\n }\n }\n return evicted;\n };\n EntityStore.prototype.clear = function () {\n this.replace(null);\n };\n EntityStore.prototype.extract = function () {\n var _this = this;\n var obj = this.toObject();\n var extraRootIds = [];\n this.getRootIdSet().forEach(function (id) {\n if (!hasOwn.call(_this.policies.rootTypenamesById, id)) {\n extraRootIds.push(id);\n }\n });\n if (extraRootIds.length) {\n obj.__META = { extraRootIds: extraRootIds.sort() };\n }\n return obj;\n };\n EntityStore.prototype.replace = function (newData) {\n var _this = this;\n Object.keys(this.data).forEach(function (dataId) {\n if (!(newData && hasOwn.call(newData, dataId))) {\n _this.delete(dataId);\n }\n });\n if (newData) {\n var __META = newData.__META, rest_1 = __rest(newData, [\"__META\"]);\n Object.keys(rest_1).forEach(function (dataId) {\n _this.merge(dataId, rest_1[dataId]);\n });\n if (__META) {\n __META.extraRootIds.forEach(this.retain, this);\n }\n }\n };\n EntityStore.prototype.retain = function (rootId) {\n return this.rootIds[rootId] = (this.rootIds[rootId] || 0) + 1;\n };\n EntityStore.prototype.release = function (rootId) {\n if (this.rootIds[rootId] > 0) {\n var count = --this.rootIds[rootId];\n if (!count)\n delete this.rootIds[rootId];\n return count;\n }\n return 0;\n };\n EntityStore.prototype.getRootIdSet = function (ids) {\n if (ids === void 0) { ids = new Set(); }\n Object.keys(this.rootIds).forEach(ids.add, ids);\n if (this instanceof Layer) {\n this.parent.getRootIdSet(ids);\n }\n else {\n Object.keys(this.policies.rootTypenamesById).forEach(ids.add, ids);\n }\n return ids;\n };\n EntityStore.prototype.gc = function () {\n var _this = this;\n var ids = this.getRootIdSet();\n var snapshot = this.toObject();\n ids.forEach(function (id) {\n if (hasOwn.call(snapshot, id)) {\n Object.keys(_this.findChildRefIds(id)).forEach(ids.add, ids);\n delete snapshot[id];\n }\n });\n var idsToRemove = Object.keys(snapshot);\n if (idsToRemove.length) {\n var root_1 = this;\n while (root_1 instanceof Layer)\n root_1 = root_1.parent;\n idsToRemove.forEach(function (id) { return root_1.delete(id); });\n }\n return idsToRemove;\n };\n EntityStore.prototype.findChildRefIds = function (dataId) {\n if (!hasOwn.call(this.refs, dataId)) {\n var found_1 = this.refs[dataId] = Object.create(null);\n var root = this.data[dataId];\n if (!root)\n return found_1;\n var workSet_1 = new Set([root]);\n workSet_1.forEach(function (obj) {\n if (isReference(obj)) {\n found_1[obj.__ref] = true;\n }\n if (isNonNullObject(obj)) {\n Object.keys(obj).forEach(function (key) {\n var child = obj[key];\n if (isNonNullObject(child)) {\n workSet_1.add(child);\n }\n });\n }\n });\n }\n return this.refs[dataId];\n };\n EntityStore.prototype.makeCacheKey = function () {\n return this.group.keyMaker.lookupArray(arguments);\n };\n return EntityStore;\n}());\nexport { EntityStore };\nvar CacheGroup = (function () {\n function CacheGroup(caching, parent) {\n if (parent === void 0) { parent = null; }\n this.caching = caching;\n this.parent = parent;\n this.d = null;\n this.resetCaching();\n }\n CacheGroup.prototype.resetCaching = function () {\n this.d = this.caching ? dep() : null;\n this.keyMaker = new Trie(canUseWeakMap);\n };\n CacheGroup.prototype.depend = function (dataId, storeFieldName) {\n if (this.d) {\n this.d(makeDepKey(dataId, storeFieldName));\n var fieldName = fieldNameFromStoreName(storeFieldName);\n if (fieldName !== storeFieldName) {\n this.d(makeDepKey(dataId, fieldName));\n }\n if (this.parent) {\n this.parent.depend(dataId, storeFieldName);\n }\n }\n };\n CacheGroup.prototype.dirty = function (dataId, storeFieldName) {\n if (this.d) {\n this.d.dirty(makeDepKey(dataId, storeFieldName), storeFieldName === \"__exists\" ? \"forget\" : \"setDirty\");\n }\n };\n return CacheGroup;\n}());\nfunction makeDepKey(dataId, storeFieldName) {\n return storeFieldName + '#' + dataId;\n}\nexport function maybeDependOnExistenceOfEntity(store, entityId) {\n if (supportsResultCaching(store)) {\n store.group.depend(entityId, \"__exists\");\n }\n}\n(function (EntityStore) {\n var Root = (function (_super) {\n __extends(Root, _super);\n function Root(_a) {\n var policies = _a.policies, _b = _a.resultCaching, resultCaching = _b === void 0 ? true : _b, seed = _a.seed;\n var _this = _super.call(this, policies, new CacheGroup(resultCaching)) || this;\n _this.stump = new Stump(_this);\n _this.storageTrie = new Trie(canUseWeakMap);\n if (seed)\n _this.replace(seed);\n return _this;\n }\n Root.prototype.addLayer = function (layerId, replay) {\n return this.stump.addLayer(layerId, replay);\n };\n Root.prototype.removeLayer = function () {\n return this;\n };\n Root.prototype.getStorage = function () {\n return this.storageTrie.lookupArray(arguments);\n };\n return Root;\n }(EntityStore));\n EntityStore.Root = Root;\n})(EntityStore || (EntityStore = {}));\nvar Layer = (function (_super) {\n __extends(Layer, _super);\n function Layer(id, parent, replay, group) {\n var _this = _super.call(this, parent.policies, group) || this;\n _this.id = id;\n _this.parent = parent;\n _this.replay = replay;\n _this.group = group;\n replay(_this);\n return _this;\n }\n Layer.prototype.addLayer = function (layerId, replay) {\n return new Layer(layerId, this, replay, this.group);\n };\n Layer.prototype.removeLayer = function (layerId) {\n var _this = this;\n var parent = this.parent.removeLayer(layerId);\n if (layerId === this.id) {\n if (this.group.caching) {\n Object.keys(this.data).forEach(function (dataId) {\n var ownStoreObject = _this.data[dataId];\n var parentStoreObject = parent[\"lookup\"](dataId);\n if (!parentStoreObject) {\n _this.delete(dataId);\n }\n else if (!ownStoreObject) {\n _this.group.dirty(dataId, \"__exists\");\n Object.keys(parentStoreObject).forEach(function (storeFieldName) {\n _this.group.dirty(dataId, storeFieldName);\n });\n }\n else if (ownStoreObject !== parentStoreObject) {\n Object.keys(ownStoreObject).forEach(function (storeFieldName) {\n if (!equal(ownStoreObject[storeFieldName], parentStoreObject[storeFieldName])) {\n _this.group.dirty(dataId, storeFieldName);\n }\n });\n }\n });\n }\n return parent;\n }\n if (parent === this.parent)\n return this;\n return parent.addLayer(this.id, this.replay);\n };\n Layer.prototype.toObject = function () {\n return __assign(__assign({}, this.parent.toObject()), this.data);\n };\n Layer.prototype.findChildRefIds = function (dataId) {\n var fromParent = this.parent.findChildRefIds(dataId);\n return hasOwn.call(this.data, dataId) ? __assign(__assign({}, fromParent), _super.prototype.findChildRefIds.call(this, dataId)) : fromParent;\n };\n Layer.prototype.getStorage = function () {\n var p = this.parent;\n while (p.parent)\n p = p.parent;\n return p.getStorage.apply(p, arguments);\n };\n return Layer;\n}(EntityStore));\nvar Stump = (function (_super) {\n __extends(Stump, _super);\n function Stump(root) {\n return _super.call(this, \"EntityStore.Stump\", root, function () { }, new CacheGroup(root.group.caching, root.group)) || this;\n }\n Stump.prototype.removeLayer = function () {\n return this;\n };\n Stump.prototype.merge = function () {\n return this.parent.merge.apply(this.parent, arguments);\n };\n return Stump;\n}(Layer));\nfunction storeObjectReconciler(existingObject, incomingObject, property) {\n var existingValue = existingObject[property];\n var incomingValue = incomingObject[property];\n return equal(existingValue, incomingValue) ? existingValue : incomingValue;\n}\nexport function supportsResultCaching(store) {\n return !!(store instanceof EntityStore && store.group.caching);\n}\n//# sourceMappingURL=entityStore.js.map","import { __assign } from \"tslib\";\nimport \"../../utilities/globals/index.js\";\nimport { Trie } from \"@wry/trie\";\nimport { canUseWeakMap, canUseWeakSet, isNonNullObject as isObjectOrArray, } from \"../../utilities/index.js\";\nimport { isArray } from \"./helpers.js\";\nfunction shallowCopy(value) {\n if (isObjectOrArray(value)) {\n return isArray(value)\n ? value.slice(0)\n : __assign({ __proto__: Object.getPrototypeOf(value) }, value);\n }\n return value;\n}\nvar ObjectCanon = (function () {\n function ObjectCanon() {\n this.known = new (canUseWeakSet ? WeakSet : Set)();\n this.pool = new Trie(canUseWeakMap);\n this.passes = new WeakMap();\n this.keysByJSON = new Map();\n this.empty = this.admit({});\n }\n ObjectCanon.prototype.isKnown = function (value) {\n return isObjectOrArray(value) && this.known.has(value);\n };\n ObjectCanon.prototype.pass = function (value) {\n if (isObjectOrArray(value)) {\n var copy = shallowCopy(value);\n this.passes.set(copy, value);\n return copy;\n }\n return value;\n };\n ObjectCanon.prototype.admit = function (value) {\n var _this = this;\n if (isObjectOrArray(value)) {\n var original = this.passes.get(value);\n if (original)\n return original;\n var proto = Object.getPrototypeOf(value);\n switch (proto) {\n case Array.prototype: {\n if (this.known.has(value))\n return value;\n var array = value.map(this.admit, this);\n var node = this.pool.lookupArray(array);\n if (!node.array) {\n this.known.add(node.array = array);\n if (__DEV__) {\n Object.freeze(array);\n }\n }\n return node.array;\n }\n case null:\n case Object.prototype: {\n if (this.known.has(value))\n return value;\n var proto_1 = Object.getPrototypeOf(value);\n var array_1 = [proto_1];\n var keys = this.sortedKeys(value);\n array_1.push(keys.json);\n var firstValueIndex_1 = array_1.length;\n keys.sorted.forEach(function (key) {\n array_1.push(_this.admit(value[key]));\n });\n var node = this.pool.lookupArray(array_1);\n if (!node.object) {\n var obj_1 = node.object = Object.create(proto_1);\n this.known.add(obj_1);\n keys.sorted.forEach(function (key, i) {\n obj_1[key] = array_1[firstValueIndex_1 + i];\n });\n if (__DEV__) {\n Object.freeze(obj_1);\n }\n }\n return node.object;\n }\n }\n }\n return value;\n };\n ObjectCanon.prototype.sortedKeys = function (obj) {\n var keys = Object.keys(obj);\n var node = this.pool.lookupArray(keys);\n if (!node.keys) {\n keys.sort();\n var json = JSON.stringify(keys);\n if (!(node.keys = this.keysByJSON.get(json))) {\n this.keysByJSON.set(json, node.keys = { sorted: keys, json: json });\n }\n }\n return node.keys;\n };\n return ObjectCanon;\n}());\nexport { ObjectCanon };\nexport var canonicalStringify = Object.assign(function (value) {\n if (isObjectOrArray(value)) {\n if (stringifyCanon === void 0) {\n resetCanonicalStringify();\n }\n var canonical = stringifyCanon.admit(value);\n var json = stringifyCache.get(canonical);\n if (json === void 0) {\n stringifyCache.set(canonical, json = JSON.stringify(canonical));\n }\n return json;\n }\n return JSON.stringify(value);\n}, {\n reset: resetCanonicalStringify,\n});\nvar stringifyCanon;\nvar stringifyCache;\nfunction resetCanonicalStringify() {\n stringifyCanon = new ObjectCanon;\n stringifyCache = new (canUseWeakMap ? WeakMap : Map)();\n}\n//# sourceMappingURL=object-canon.js.map","import { __assign } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { wrap } from 'optimism';\nimport { isField, resultKeyNameFromField, isReference, makeReference, createFragmentMap, shouldInclude, addTypenameToDocument, getDefaultValues, getFragmentDefinitions, getMainDefinition, getQueryDefinition, getFragmentFromSelection, maybeDeepFreeze, mergeDeepArray, DeepMerger, isNonNullObject, canUseWeakMap, compact, } from \"../../utilities/index.js\";\nimport { maybeDependOnExistenceOfEntity, supportsResultCaching } from \"./entityStore.js\";\nimport { getTypenameFromStoreObject, isArray, shouldCanonizeResults } from \"./helpers.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { canonicalStringify, ObjectCanon } from \"./object-canon.js\";\n;\nfunction execSelectionSetKeyArgs(options) {\n return [\n options.selectionSet,\n options.objectOrReference,\n options.context,\n options.context.canonizeResults,\n ];\n}\nvar StoreReader = (function () {\n function StoreReader(config) {\n var _this = this;\n this.knownResults = new (canUseWeakMap ? WeakMap : Map)();\n this.config = compact(config, {\n addTypename: config.addTypename !== false,\n canonizeResults: shouldCanonizeResults(config),\n });\n this.canon = config.canon || new ObjectCanon;\n this.executeSelectionSet = wrap(function (options) {\n var _a;\n var canonizeResults = options.context.canonizeResults;\n var peekArgs = execSelectionSetKeyArgs(options);\n peekArgs[3] = !canonizeResults;\n var other = (_a = _this.executeSelectionSet).peek.apply(_a, peekArgs);\n if (other) {\n if (canonizeResults) {\n return __assign(__assign({}, other), { result: _this.canon.admit(other.result) });\n }\n return other;\n }\n maybeDependOnExistenceOfEntity(options.context.store, options.enclosingRef.__ref);\n return _this.execSelectionSetImpl(options);\n }, {\n max: this.config.resultCacheMaxSize,\n keyArgs: execSelectionSetKeyArgs,\n makeCacheKey: function (selectionSet, parent, context, canonizeResults) {\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(selectionSet, isReference(parent) ? parent.__ref : parent, context.varString, canonizeResults);\n }\n }\n });\n this.executeSubSelectedArray = wrap(function (options) {\n maybeDependOnExistenceOfEntity(options.context.store, options.enclosingRef.__ref);\n return _this.execSubSelectedArrayImpl(options);\n }, {\n max: this.config.resultCacheMaxSize,\n makeCacheKey: function (_a) {\n var field = _a.field, array = _a.array, context = _a.context;\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(field, array, context.varString);\n }\n }\n });\n }\n StoreReader.prototype.resetCanon = function () {\n this.canon = new ObjectCanon;\n };\n StoreReader.prototype.diffQueryAgainstStore = function (_a) {\n var store = _a.store, query = _a.query, _b = _a.rootId, rootId = _b === void 0 ? 'ROOT_QUERY' : _b, variables = _a.variables, _c = _a.returnPartialData, returnPartialData = _c === void 0 ? true : _c, _d = _a.canonizeResults, canonizeResults = _d === void 0 ? this.config.canonizeResults : _d;\n var policies = this.config.cache.policies;\n variables = __assign(__assign({}, getDefaultValues(getQueryDefinition(query))), variables);\n var rootRef = makeReference(rootId);\n var execResult = this.executeSelectionSet({\n selectionSet: getMainDefinition(query).selectionSet,\n objectOrReference: rootRef,\n enclosingRef: rootRef,\n context: {\n store: store,\n query: query,\n policies: policies,\n variables: variables,\n varString: canonicalStringify(variables),\n canonizeResults: canonizeResults,\n fragmentMap: createFragmentMap(getFragmentDefinitions(query)),\n },\n });\n var missing;\n if (execResult.missing) {\n missing = [new MissingFieldError(firstMissing(execResult.missing), execResult.missing, query, variables)];\n if (!returnPartialData) {\n throw missing[0];\n }\n }\n return {\n result: execResult.result,\n complete: !missing,\n missing: missing,\n };\n };\n StoreReader.prototype.isFresh = function (result, parent, selectionSet, context) {\n if (supportsResultCaching(context.store) &&\n this.knownResults.get(result) === selectionSet) {\n var latest = this.executeSelectionSet.peek(selectionSet, parent, context, this.canon.isKnown(result));\n if (latest && result === latest.result) {\n return true;\n }\n }\n return false;\n };\n StoreReader.prototype.execSelectionSetImpl = function (_a) {\n var _this = this;\n var selectionSet = _a.selectionSet, objectOrReference = _a.objectOrReference, enclosingRef = _a.enclosingRef, context = _a.context;\n if (isReference(objectOrReference) &&\n !context.policies.rootTypenamesById[objectOrReference.__ref] &&\n !context.store.has(objectOrReference.__ref)) {\n return {\n result: this.canon.empty,\n missing: \"Dangling reference to missing \".concat(objectOrReference.__ref, \" object\"),\n };\n }\n var variables = context.variables, policies = context.policies, store = context.store;\n var typename = store.getFieldValue(objectOrReference, \"__typename\");\n var objectsToMerge = [];\n var missing;\n var missingMerger = new DeepMerger();\n if (this.config.addTypename &&\n typeof typename === \"string\" &&\n !policies.rootIdsByTypename[typename]) {\n objectsToMerge.push({ __typename: typename });\n }\n function handleMissing(result, resultName) {\n var _a;\n if (result.missing) {\n missing = missingMerger.merge(missing, (_a = {}, _a[resultName] = result.missing, _a));\n }\n return result.result;\n }\n var workSet = new Set(selectionSet.selections);\n workSet.forEach(function (selection) {\n var _a, _b;\n if (!shouldInclude(selection, variables))\n return;\n if (isField(selection)) {\n var fieldValue = policies.readField({\n fieldName: selection.name.value,\n field: selection,\n variables: context.variables,\n from: objectOrReference,\n }, context);\n var resultName = resultKeyNameFromField(selection);\n if (fieldValue === void 0) {\n if (!addTypenameToDocument.added(selection)) {\n missing = missingMerger.merge(missing, (_a = {},\n _a[resultName] = \"Can't find field '\".concat(selection.name.value, \"' on \").concat(isReference(objectOrReference)\n ? objectOrReference.__ref + \" object\"\n : \"object \" + JSON.stringify(objectOrReference, null, 2)),\n _a));\n }\n }\n else if (isArray(fieldValue)) {\n fieldValue = handleMissing(_this.executeSubSelectedArray({\n field: selection,\n array: fieldValue,\n enclosingRef: enclosingRef,\n context: context,\n }), resultName);\n }\n else if (!selection.selectionSet) {\n if (context.canonizeResults) {\n fieldValue = _this.canon.pass(fieldValue);\n }\n }\n else if (fieldValue != null) {\n fieldValue = handleMissing(_this.executeSelectionSet({\n selectionSet: selection.selectionSet,\n objectOrReference: fieldValue,\n enclosingRef: isReference(fieldValue) ? fieldValue : enclosingRef,\n context: context,\n }), resultName);\n }\n if (fieldValue !== void 0) {\n objectsToMerge.push((_b = {}, _b[resultName] = fieldValue, _b));\n }\n }\n else {\n var fragment = getFragmentFromSelection(selection, context.fragmentMap);\n if (fragment && policies.fragmentMatches(fragment, typename)) {\n fragment.selectionSet.selections.forEach(workSet.add, workSet);\n }\n }\n });\n var result = mergeDeepArray(objectsToMerge);\n var finalResult = { result: result, missing: missing };\n var frozen = context.canonizeResults\n ? this.canon.admit(finalResult)\n : maybeDeepFreeze(finalResult);\n if (frozen.result) {\n this.knownResults.set(frozen.result, selectionSet);\n }\n return frozen;\n };\n StoreReader.prototype.execSubSelectedArrayImpl = function (_a) {\n var _this = this;\n var field = _a.field, array = _a.array, enclosingRef = _a.enclosingRef, context = _a.context;\n var missing;\n var missingMerger = new DeepMerger();\n function handleMissing(childResult, i) {\n var _a;\n if (childResult.missing) {\n missing = missingMerger.merge(missing, (_a = {}, _a[i] = childResult.missing, _a));\n }\n return childResult.result;\n }\n if (field.selectionSet) {\n array = array.filter(context.store.canRead);\n }\n array = array.map(function (item, i) {\n if (item === null) {\n return null;\n }\n if (isArray(item)) {\n return handleMissing(_this.executeSubSelectedArray({\n field: field,\n array: item,\n enclosingRef: enclosingRef,\n context: context,\n }), i);\n }\n if (field.selectionSet) {\n return handleMissing(_this.executeSelectionSet({\n selectionSet: field.selectionSet,\n objectOrReference: item,\n enclosingRef: isReference(item) ? item : enclosingRef,\n context: context,\n }), i);\n }\n if (__DEV__) {\n assertSelectionSetForIdValue(context.store, field, item);\n }\n return item;\n });\n return {\n result: context.canonizeResults ? this.canon.admit(array) : array,\n missing: missing,\n };\n };\n return StoreReader;\n}());\nexport { StoreReader };\nfunction firstMissing(tree) {\n try {\n JSON.stringify(tree, function (_, value) {\n if (typeof value === \"string\")\n throw value;\n return value;\n });\n }\n catch (result) {\n return result;\n }\n}\nfunction assertSelectionSetForIdValue(store, field, fieldValue) {\n if (!field.selectionSet) {\n var workSet_1 = new Set([fieldValue]);\n workSet_1.forEach(function (value) {\n if (isNonNullObject(value)) {\n __DEV__ ? invariant(!isReference(value), \"Missing selection set for object of type \".concat(getTypenameFromStoreObject(store, value), \" returned for query field \").concat(field.name.value)) : invariant(!isReference(value), 5);\n Object.values(value).forEach(workSet_1.add, workSet_1);\n }\n });\n }\n}\n//# sourceMappingURL=readFromStore.js.map","import { dep } from \"optimism\";\nimport { Slot } from \"@wry/context\";\nexport var cacheSlot = new Slot();\nvar cacheInfoMap = new WeakMap();\nfunction getCacheInfo(cache) {\n var info = cacheInfoMap.get(cache);\n if (!info) {\n cacheInfoMap.set(cache, info = {\n vars: new Set,\n dep: dep(),\n });\n }\n return info;\n}\nexport function forgetCache(cache) {\n getCacheInfo(cache).vars.forEach(function (rv) { return rv.forgetCache(cache); });\n}\nexport function recallCache(cache) {\n getCacheInfo(cache).vars.forEach(function (rv) { return rv.attachCache(cache); });\n}\nexport function makeVar(value) {\n var caches = new Set();\n var listeners = new Set();\n var rv = function (newValue) {\n if (arguments.length > 0) {\n if (value !== newValue) {\n value = newValue;\n caches.forEach(function (cache) {\n getCacheInfo(cache).dep.dirty(rv);\n broadcast(cache);\n });\n var oldListeners = Array.from(listeners);\n listeners.clear();\n oldListeners.forEach(function (listener) { return listener(value); });\n }\n }\n else {\n var cache = cacheSlot.getValue();\n if (cache) {\n attach(cache);\n getCacheInfo(cache).dep(rv);\n }\n }\n return value;\n };\n rv.onNextChange = function (listener) {\n listeners.add(listener);\n return function () {\n listeners.delete(listener);\n };\n };\n var attach = rv.attachCache = function (cache) {\n caches.add(cache);\n getCacheInfo(cache).vars.add(rv);\n return rv;\n };\n rv.forgetCache = function (cache) { return caches.delete(cache); };\n return rv;\n}\nfunction broadcast(cache) {\n if (cache.broadcastWatches) {\n cache.broadcastWatches();\n }\n}\n//# sourceMappingURL=reactiveVars.js.map","import { invariant } from \"../../utilities/globals/index.js\";\nimport { argumentsObjectFromField, DeepMerger, isNonEmptyArray, isNonNullObject, } from \"../../utilities/index.js\";\nimport { hasOwn, isArray } from \"./helpers.js\";\nvar specifierInfoCache = Object.create(null);\nfunction lookupSpecifierInfo(spec) {\n var cacheKey = JSON.stringify(spec);\n return specifierInfoCache[cacheKey] ||\n (specifierInfoCache[cacheKey] = Object.create(null));\n}\nexport function keyFieldsFnFromSpecifier(specifier) {\n var info = lookupSpecifierInfo(specifier);\n return info.keyFieldsFn || (info.keyFieldsFn = function (object, context) {\n var extract = function (from, key) { return context.readField(key, from); };\n var keyObject = context.keyObject = collectSpecifierPaths(specifier, function (schemaKeyPath) {\n var extracted = extractKeyPath(context.storeObject, schemaKeyPath, extract);\n if (extracted === void 0 &&\n object !== context.storeObject &&\n hasOwn.call(object, schemaKeyPath[0])) {\n extracted = extractKeyPath(object, schemaKeyPath, extractKey);\n }\n __DEV__ ? invariant(extracted !== void 0, \"Missing field '\".concat(schemaKeyPath.join('.'), \"' while extracting keyFields from \").concat(JSON.stringify(object))) : invariant(extracted !== void 0, 2);\n return extracted;\n });\n return \"\".concat(context.typename, \":\").concat(JSON.stringify(keyObject));\n });\n}\nexport function keyArgsFnFromSpecifier(specifier) {\n var info = lookupSpecifierInfo(specifier);\n return info.keyArgsFn || (info.keyArgsFn = function (args, _a) {\n var field = _a.field, variables = _a.variables, fieldName = _a.fieldName;\n var collected = collectSpecifierPaths(specifier, function (keyPath) {\n var firstKey = keyPath[0];\n var firstChar = firstKey.charAt(0);\n if (firstChar === \"@\") {\n if (field && isNonEmptyArray(field.directives)) {\n var directiveName_1 = firstKey.slice(1);\n var d = field.directives.find(function (d) { return d.name.value === directiveName_1; });\n var directiveArgs = d && argumentsObjectFromField(d, variables);\n return directiveArgs && extractKeyPath(directiveArgs, keyPath.slice(1));\n }\n return;\n }\n if (firstChar === \"$\") {\n var variableName = firstKey.slice(1);\n if (variables && hasOwn.call(variables, variableName)) {\n var varKeyPath = keyPath.slice(0);\n varKeyPath[0] = variableName;\n return extractKeyPath(variables, varKeyPath);\n }\n return;\n }\n if (args) {\n return extractKeyPath(args, keyPath);\n }\n });\n var suffix = JSON.stringify(collected);\n if (args || suffix !== \"{}\") {\n fieldName += \":\" + suffix;\n }\n return fieldName;\n });\n}\nexport function collectSpecifierPaths(specifier, extractor) {\n var merger = new DeepMerger;\n return getSpecifierPaths(specifier).reduce(function (collected, path) {\n var _a;\n var toMerge = extractor(path);\n if (toMerge !== void 0) {\n for (var i = path.length - 1; i >= 0; --i) {\n toMerge = (_a = {}, _a[path[i]] = toMerge, _a);\n }\n collected = merger.merge(collected, toMerge);\n }\n return collected;\n }, Object.create(null));\n}\nexport function getSpecifierPaths(spec) {\n var info = lookupSpecifierInfo(spec);\n if (!info.paths) {\n var paths_1 = info.paths = [];\n var currentPath_1 = [];\n spec.forEach(function (s, i) {\n if (isArray(s)) {\n getSpecifierPaths(s).forEach(function (p) { return paths_1.push(currentPath_1.concat(p)); });\n currentPath_1.length = 0;\n }\n else {\n currentPath_1.push(s);\n if (!isArray(spec[i + 1])) {\n paths_1.push(currentPath_1.slice(0));\n currentPath_1.length = 0;\n }\n }\n });\n }\n return info.paths;\n}\nfunction extractKey(object, key) {\n return object[key];\n}\nexport function extractKeyPath(object, path, extract) {\n extract = extract || extractKey;\n return normalize(path.reduce(function reducer(obj, key) {\n return isArray(obj)\n ? obj.map(function (child) { return reducer(child, key); })\n : obj && extract(obj, key);\n }, object));\n}\nfunction normalize(value) {\n if (isNonNullObject(value)) {\n if (isArray(value)) {\n return value.map(normalize);\n }\n return collectSpecifierPaths(Object.keys(value).sort(), function (path) { return extractKeyPath(value, path); });\n }\n return value;\n}\n//# sourceMappingURL=key-extractor.js.map","import { __assign, __rest } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { storeKeyNameFromField, argumentsObjectFromField, isReference, getStoreKeyName, isNonNullObject, stringifyForDisplay, } from \"../../utilities/index.js\";\nimport { hasOwn, fieldNameFromStoreName, storeValueIsStoreObject, selectionSetMatchesResult, TypeOrFieldNameRegExp, defaultDataIdFromObject, isArray, } from \"./helpers.js\";\nimport { cacheSlot } from \"./reactiveVars.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\nimport { keyArgsFnFromSpecifier, keyFieldsFnFromSpecifier } from \"./key-extractor.js\";\ngetStoreKeyName.setStringify(canonicalStringify);\nfunction argsFromFieldSpecifier(spec) {\n return spec.args !== void 0 ? spec.args :\n spec.field ? argumentsObjectFromField(spec.field, spec.variables) : null;\n}\nvar nullKeyFieldsFn = function () { return void 0; };\nvar simpleKeyArgsFn = function (_args, context) { return context.fieldName; };\nvar mergeTrueFn = function (existing, incoming, _a) {\n var mergeObjects = _a.mergeObjects;\n return mergeObjects(existing, incoming);\n};\nvar mergeFalseFn = function (_, incoming) { return incoming; };\nvar Policies = (function () {\n function Policies(config) {\n this.config = config;\n this.typePolicies = Object.create(null);\n this.toBeAdded = Object.create(null);\n this.supertypeMap = new Map();\n this.fuzzySubtypes = new Map();\n this.rootIdsByTypename = Object.create(null);\n this.rootTypenamesById = Object.create(null);\n this.usingPossibleTypes = false;\n this.config = __assign({ dataIdFromObject: defaultDataIdFromObject }, config);\n this.cache = this.config.cache;\n this.setRootTypename(\"Query\");\n this.setRootTypename(\"Mutation\");\n this.setRootTypename(\"Subscription\");\n if (config.possibleTypes) {\n this.addPossibleTypes(config.possibleTypes);\n }\n if (config.typePolicies) {\n this.addTypePolicies(config.typePolicies);\n }\n }\n Policies.prototype.identify = function (object, partialContext) {\n var _a;\n var policies = this;\n var typename = partialContext && (partialContext.typename ||\n ((_a = partialContext.storeObject) === null || _a === void 0 ? void 0 : _a.__typename)) || object.__typename;\n if (typename === this.rootTypenamesById.ROOT_QUERY) {\n return [\"ROOT_QUERY\"];\n }\n var storeObject = partialContext && partialContext.storeObject || object;\n var context = __assign(__assign({}, partialContext), { typename: typename, storeObject: storeObject, readField: partialContext && partialContext.readField || function () {\n var options = normalizeReadFieldOptions(arguments, storeObject);\n return policies.readField(options, {\n store: policies.cache[\"data\"],\n variables: options.variables,\n });\n } });\n var id;\n var policy = typename && this.getTypePolicy(typename);\n var keyFn = policy && policy.keyFn || this.config.dataIdFromObject;\n while (keyFn) {\n var specifierOrId = keyFn(object, context);\n if (isArray(specifierOrId)) {\n keyFn = keyFieldsFnFromSpecifier(specifierOrId);\n }\n else {\n id = specifierOrId;\n break;\n }\n }\n id = id ? String(id) : void 0;\n return context.keyObject ? [id, context.keyObject] : [id];\n };\n Policies.prototype.addTypePolicies = function (typePolicies) {\n var _this = this;\n Object.keys(typePolicies).forEach(function (typename) {\n var _a = typePolicies[typename], queryType = _a.queryType, mutationType = _a.mutationType, subscriptionType = _a.subscriptionType, incoming = __rest(_a, [\"queryType\", \"mutationType\", \"subscriptionType\"]);\n if (queryType)\n _this.setRootTypename(\"Query\", typename);\n if (mutationType)\n _this.setRootTypename(\"Mutation\", typename);\n if (subscriptionType)\n _this.setRootTypename(\"Subscription\", typename);\n if (hasOwn.call(_this.toBeAdded, typename)) {\n _this.toBeAdded[typename].push(incoming);\n }\n else {\n _this.toBeAdded[typename] = [incoming];\n }\n });\n };\n Policies.prototype.updateTypePolicy = function (typename, incoming) {\n var _this = this;\n var existing = this.getTypePolicy(typename);\n var keyFields = incoming.keyFields, fields = incoming.fields;\n function setMerge(existing, merge) {\n existing.merge =\n typeof merge === \"function\" ? merge :\n merge === true ? mergeTrueFn :\n merge === false ? mergeFalseFn :\n existing.merge;\n }\n setMerge(existing, incoming.merge);\n existing.keyFn =\n keyFields === false ? nullKeyFieldsFn :\n isArray(keyFields) ? keyFieldsFnFromSpecifier(keyFields) :\n typeof keyFields === \"function\" ? keyFields :\n existing.keyFn;\n if (fields) {\n Object.keys(fields).forEach(function (fieldName) {\n var existing = _this.getFieldPolicy(typename, fieldName, true);\n var incoming = fields[fieldName];\n if (typeof incoming === \"function\") {\n existing.read = incoming;\n }\n else {\n var keyArgs = incoming.keyArgs, read = incoming.read, merge = incoming.merge;\n existing.keyFn =\n keyArgs === false ? simpleKeyArgsFn :\n isArray(keyArgs) ? keyArgsFnFromSpecifier(keyArgs) :\n typeof keyArgs === \"function\" ? keyArgs :\n existing.keyFn;\n if (typeof read === \"function\") {\n existing.read = read;\n }\n setMerge(existing, merge);\n }\n if (existing.read && existing.merge) {\n existing.keyFn = existing.keyFn || simpleKeyArgsFn;\n }\n });\n }\n };\n Policies.prototype.setRootTypename = function (which, typename) {\n if (typename === void 0) { typename = which; }\n var rootId = \"ROOT_\" + which.toUpperCase();\n var old = this.rootTypenamesById[rootId];\n if (typename !== old) {\n __DEV__ ? invariant(!old || old === which, \"Cannot change root \".concat(which, \" __typename more than once\")) : invariant(!old || old === which, 3);\n if (old)\n delete this.rootIdsByTypename[old];\n this.rootIdsByTypename[typename] = rootId;\n this.rootTypenamesById[rootId] = typename;\n }\n };\n Policies.prototype.addPossibleTypes = function (possibleTypes) {\n var _this = this;\n this.usingPossibleTypes = true;\n Object.keys(possibleTypes).forEach(function (supertype) {\n _this.getSupertypeSet(supertype, true);\n possibleTypes[supertype].forEach(function (subtype) {\n _this.getSupertypeSet(subtype, true).add(supertype);\n var match = subtype.match(TypeOrFieldNameRegExp);\n if (!match || match[0] !== subtype) {\n _this.fuzzySubtypes.set(subtype, new RegExp(subtype));\n }\n });\n });\n };\n Policies.prototype.getTypePolicy = function (typename) {\n var _this = this;\n if (!hasOwn.call(this.typePolicies, typename)) {\n var policy_1 = this.typePolicies[typename] = Object.create(null);\n policy_1.fields = Object.create(null);\n var supertypes = this.supertypeMap.get(typename);\n if (supertypes && supertypes.size) {\n supertypes.forEach(function (supertype) {\n var _a = _this.getTypePolicy(supertype), fields = _a.fields, rest = __rest(_a, [\"fields\"]);\n Object.assign(policy_1, rest);\n Object.assign(policy_1.fields, fields);\n });\n }\n }\n var inbox = this.toBeAdded[typename];\n if (inbox && inbox.length) {\n inbox.splice(0).forEach(function (policy) {\n _this.updateTypePolicy(typename, policy);\n });\n }\n return this.typePolicies[typename];\n };\n Policies.prototype.getFieldPolicy = function (typename, fieldName, createIfMissing) {\n if (typename) {\n var fieldPolicies = this.getTypePolicy(typename).fields;\n return fieldPolicies[fieldName] || (createIfMissing && (fieldPolicies[fieldName] = Object.create(null)));\n }\n };\n Policies.prototype.getSupertypeSet = function (subtype, createIfMissing) {\n var supertypeSet = this.supertypeMap.get(subtype);\n if (!supertypeSet && createIfMissing) {\n this.supertypeMap.set(subtype, supertypeSet = new Set());\n }\n return supertypeSet;\n };\n Policies.prototype.fragmentMatches = function (fragment, typename, result, variables) {\n var _this = this;\n if (!fragment.typeCondition)\n return true;\n if (!typename)\n return false;\n var supertype = fragment.typeCondition.name.value;\n if (typename === supertype)\n return true;\n if (this.usingPossibleTypes &&\n this.supertypeMap.has(supertype)) {\n var typenameSupertypeSet = this.getSupertypeSet(typename, true);\n var workQueue_1 = [typenameSupertypeSet];\n var maybeEnqueue_1 = function (subtype) {\n var supertypeSet = _this.getSupertypeSet(subtype, false);\n if (supertypeSet &&\n supertypeSet.size &&\n workQueue_1.indexOf(supertypeSet) < 0) {\n workQueue_1.push(supertypeSet);\n }\n };\n var needToCheckFuzzySubtypes = !!(result && this.fuzzySubtypes.size);\n var checkingFuzzySubtypes = false;\n for (var i = 0; i < workQueue_1.length; ++i) {\n var supertypeSet = workQueue_1[i];\n if (supertypeSet.has(supertype)) {\n if (!typenameSupertypeSet.has(supertype)) {\n if (checkingFuzzySubtypes) {\n __DEV__ && invariant.warn(\"Inferring subtype \".concat(typename, \" of supertype \").concat(supertype));\n }\n typenameSupertypeSet.add(supertype);\n }\n return true;\n }\n supertypeSet.forEach(maybeEnqueue_1);\n if (needToCheckFuzzySubtypes &&\n i === workQueue_1.length - 1 &&\n selectionSetMatchesResult(fragment.selectionSet, result, variables)) {\n needToCheckFuzzySubtypes = false;\n checkingFuzzySubtypes = true;\n this.fuzzySubtypes.forEach(function (regExp, fuzzyString) {\n var match = typename.match(regExp);\n if (match && match[0] === typename) {\n maybeEnqueue_1(fuzzyString);\n }\n });\n }\n }\n }\n return false;\n };\n Policies.prototype.hasKeyArgs = function (typename, fieldName) {\n var policy = this.getFieldPolicy(typename, fieldName, false);\n return !!(policy && policy.keyFn);\n };\n Policies.prototype.getStoreFieldName = function (fieldSpec) {\n var typename = fieldSpec.typename, fieldName = fieldSpec.fieldName;\n var policy = this.getFieldPolicy(typename, fieldName, false);\n var storeFieldName;\n var keyFn = policy && policy.keyFn;\n if (keyFn && typename) {\n var context = {\n typename: typename,\n fieldName: fieldName,\n field: fieldSpec.field || null,\n variables: fieldSpec.variables,\n };\n var args = argsFromFieldSpecifier(fieldSpec);\n while (keyFn) {\n var specifierOrString = keyFn(args, context);\n if (isArray(specifierOrString)) {\n keyFn = keyArgsFnFromSpecifier(specifierOrString);\n }\n else {\n storeFieldName = specifierOrString || fieldName;\n break;\n }\n }\n }\n if (storeFieldName === void 0) {\n storeFieldName = fieldSpec.field\n ? storeKeyNameFromField(fieldSpec.field, fieldSpec.variables)\n : getStoreKeyName(fieldName, argsFromFieldSpecifier(fieldSpec));\n }\n if (storeFieldName === false) {\n return fieldName;\n }\n return fieldName === fieldNameFromStoreName(storeFieldName)\n ? storeFieldName\n : fieldName + \":\" + storeFieldName;\n };\n Policies.prototype.readField = function (options, context) {\n var objectOrReference = options.from;\n if (!objectOrReference)\n return;\n var nameOrField = options.field || options.fieldName;\n if (!nameOrField)\n return;\n if (options.typename === void 0) {\n var typename = context.store.getFieldValue(objectOrReference, \"__typename\");\n if (typename)\n options.typename = typename;\n }\n var storeFieldName = this.getStoreFieldName(options);\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var existing = context.store.getFieldValue(objectOrReference, storeFieldName);\n var policy = this.getFieldPolicy(options.typename, fieldName, false);\n var read = policy && policy.read;\n if (read) {\n var readOptions = makeFieldFunctionOptions(this, objectOrReference, options, context, context.store.getStorage(isReference(objectOrReference)\n ? objectOrReference.__ref\n : objectOrReference, storeFieldName));\n return cacheSlot.withValue(this.cache, read, [existing, readOptions]);\n }\n return existing;\n };\n Policies.prototype.getReadFunction = function (typename, fieldName) {\n var policy = this.getFieldPolicy(typename, fieldName, false);\n return policy && policy.read;\n };\n Policies.prototype.getMergeFunction = function (parentTypename, fieldName, childTypename) {\n var policy = this.getFieldPolicy(parentTypename, fieldName, false);\n var merge = policy && policy.merge;\n if (!merge && childTypename) {\n policy = this.getTypePolicy(childTypename);\n merge = policy && policy.merge;\n }\n return merge;\n };\n Policies.prototype.runMergeFunction = function (existing, incoming, _a, context, storage) {\n var field = _a.field, typename = _a.typename, merge = _a.merge;\n if (merge === mergeTrueFn) {\n return makeMergeObjectsFunction(context.store)(existing, incoming);\n }\n if (merge === mergeFalseFn) {\n return incoming;\n }\n if (context.overwrite) {\n existing = void 0;\n }\n return merge(existing, incoming, makeFieldFunctionOptions(this, void 0, { typename: typename, fieldName: field.name.value, field: field, variables: context.variables }, context, storage || Object.create(null)));\n };\n return Policies;\n}());\nexport { Policies };\nfunction makeFieldFunctionOptions(policies, objectOrReference, fieldSpec, context, storage) {\n var storeFieldName = policies.getStoreFieldName(fieldSpec);\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var variables = fieldSpec.variables || context.variables;\n var _a = context.store, toReference = _a.toReference, canRead = _a.canRead;\n return {\n args: argsFromFieldSpecifier(fieldSpec),\n field: fieldSpec.field || null,\n fieldName: fieldName,\n storeFieldName: storeFieldName,\n variables: variables,\n isReference: isReference,\n toReference: toReference,\n storage: storage,\n cache: policies.cache,\n canRead: canRead,\n readField: function () {\n return policies.readField(normalizeReadFieldOptions(arguments, objectOrReference, variables), context);\n },\n mergeObjects: makeMergeObjectsFunction(context.store),\n };\n}\nexport function normalizeReadFieldOptions(readFieldArgs, objectOrReference, variables) {\n var fieldNameOrOptions = readFieldArgs[0], from = readFieldArgs[1], argc = readFieldArgs.length;\n var options;\n if (typeof fieldNameOrOptions === \"string\") {\n options = {\n fieldName: fieldNameOrOptions,\n from: argc > 1 ? from : objectOrReference,\n };\n }\n else {\n options = __assign({}, fieldNameOrOptions);\n if (!hasOwn.call(options, \"from\")) {\n options.from = objectOrReference;\n }\n }\n if (__DEV__ && options.from === void 0) {\n __DEV__ && invariant.warn(\"Undefined 'from' passed to readField with arguments \".concat(stringifyForDisplay(Array.from(readFieldArgs))));\n }\n if (void 0 === options.variables) {\n options.variables = variables;\n }\n return options;\n}\nfunction makeMergeObjectsFunction(store) {\n return function mergeObjects(existing, incoming) {\n if (isArray(existing) || isArray(incoming)) {\n throw __DEV__ ? new InvariantError(\"Cannot automatically merge arrays\") : new InvariantError(4);\n }\n if (isNonNullObject(existing) &&\n isNonNullObject(incoming)) {\n var eType = store.getFieldValue(existing, \"__typename\");\n var iType = store.getFieldValue(incoming, \"__typename\");\n var typesDiffer = eType && iType && eType !== iType;\n if (typesDiffer) {\n return incoming;\n }\n if (isReference(existing) &&\n storeValueIsStoreObject(incoming)) {\n store.merge(existing.__ref, incoming);\n return existing;\n }\n if (storeValueIsStoreObject(existing) &&\n isReference(incoming)) {\n store.merge(existing, incoming.__ref);\n return incoming;\n }\n if (storeValueIsStoreObject(existing) &&\n storeValueIsStoreObject(incoming)) {\n return __assign(__assign({}, existing), incoming);\n }\n }\n return incoming;\n };\n}\n//# sourceMappingURL=policies.js.map","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { Trie } from '@wry/trie';\nimport { createFragmentMap, getFragmentFromSelection, getDefaultValues, getFragmentDefinitions, getOperationDefinition, getTypenameFromResult, makeReference, isField, resultKeyNameFromField, isReference, shouldInclude, cloneDeep, addTypenameToDocument, isNonEmptyArray, argumentsObjectFromField, } from \"../../utilities/index.js\";\nimport { makeProcessedFieldsMerger, fieldNameFromStoreName, storeValueIsStoreObject, isArray } from \"./helpers.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\nimport { normalizeReadFieldOptions } from \"./policies.js\";\n;\nfunction getContextFlavor(context, clientOnly, deferred) {\n var key = \"\".concat(clientOnly).concat(deferred);\n var flavored = context.flavors.get(key);\n if (!flavored) {\n context.flavors.set(key, flavored = (context.clientOnly === clientOnly &&\n context.deferred === deferred) ? context : __assign(__assign({}, context), { clientOnly: clientOnly, deferred: deferred }));\n }\n return flavored;\n}\nvar StoreWriter = (function () {\n function StoreWriter(cache, reader) {\n this.cache = cache;\n this.reader = reader;\n }\n StoreWriter.prototype.writeToStore = function (store, _a) {\n var _this = this;\n var query = _a.query, result = _a.result, dataId = _a.dataId, variables = _a.variables, overwrite = _a.overwrite;\n var operationDefinition = getOperationDefinition(query);\n var merger = makeProcessedFieldsMerger();\n variables = __assign(__assign({}, getDefaultValues(operationDefinition)), variables);\n var context = {\n store: store,\n written: Object.create(null),\n merge: function (existing, incoming) {\n return merger.merge(existing, incoming);\n },\n variables: variables,\n varString: canonicalStringify(variables),\n fragmentMap: createFragmentMap(getFragmentDefinitions(query)),\n overwrite: !!overwrite,\n incomingById: new Map,\n clientOnly: false,\n deferred: false,\n flavors: new Map,\n };\n var ref = this.processSelectionSet({\n result: result || Object.create(null),\n dataId: dataId,\n selectionSet: operationDefinition.selectionSet,\n mergeTree: { map: new Map },\n context: context,\n });\n if (!isReference(ref)) {\n throw __DEV__ ? new InvariantError(\"Could not identify object \".concat(JSON.stringify(result))) : new InvariantError(6);\n }\n context.incomingById.forEach(function (_a, dataId) {\n var storeObject = _a.storeObject, mergeTree = _a.mergeTree, fieldNodeSet = _a.fieldNodeSet;\n var entityRef = makeReference(dataId);\n if (mergeTree && mergeTree.map.size) {\n var applied = _this.applyMerges(mergeTree, entityRef, storeObject, context);\n if (isReference(applied)) {\n return;\n }\n storeObject = applied;\n }\n if (__DEV__ && !context.overwrite) {\n var fieldsWithSelectionSets_1 = Object.create(null);\n fieldNodeSet.forEach(function (field) {\n if (field.selectionSet) {\n fieldsWithSelectionSets_1[field.name.value] = true;\n }\n });\n var hasSelectionSet_1 = function (storeFieldName) {\n return fieldsWithSelectionSets_1[fieldNameFromStoreName(storeFieldName)] === true;\n };\n var hasMergeFunction_1 = function (storeFieldName) {\n var childTree = mergeTree && mergeTree.map.get(storeFieldName);\n return Boolean(childTree && childTree.info && childTree.info.merge);\n };\n Object.keys(storeObject).forEach(function (storeFieldName) {\n if (hasSelectionSet_1(storeFieldName) &&\n !hasMergeFunction_1(storeFieldName)) {\n warnAboutDataLoss(entityRef, storeObject, storeFieldName, context.store);\n }\n });\n }\n store.merge(dataId, storeObject);\n });\n store.retain(ref.__ref);\n return ref;\n };\n StoreWriter.prototype.processSelectionSet = function (_a) {\n var _this = this;\n var dataId = _a.dataId, result = _a.result, selectionSet = _a.selectionSet, context = _a.context, mergeTree = _a.mergeTree;\n var policies = this.cache.policies;\n var incoming = Object.create(null);\n var typename = (dataId && policies.rootTypenamesById[dataId]) ||\n getTypenameFromResult(result, selectionSet, context.fragmentMap) ||\n (dataId && context.store.get(dataId, \"__typename\"));\n if (\"string\" === typeof typename) {\n incoming.__typename = typename;\n }\n var readField = function () {\n var options = normalizeReadFieldOptions(arguments, incoming, context.variables);\n if (isReference(options.from)) {\n var info = context.incomingById.get(options.from.__ref);\n if (info) {\n var result_1 = policies.readField(__assign(__assign({}, options), { from: info.storeObject }), context);\n if (result_1 !== void 0) {\n return result_1;\n }\n }\n }\n return policies.readField(options, context);\n };\n var fieldNodeSet = new Set();\n this.flattenFields(selectionSet, result, context, typename).forEach(function (context, field) {\n var _a;\n var resultFieldKey = resultKeyNameFromField(field);\n var value = result[resultFieldKey];\n fieldNodeSet.add(field);\n if (value !== void 0) {\n var storeFieldName = policies.getStoreFieldName({\n typename: typename,\n fieldName: field.name.value,\n field: field,\n variables: context.variables,\n });\n var childTree = getChildMergeTree(mergeTree, storeFieldName);\n var incomingValue = _this.processFieldValue(value, field, field.selectionSet\n ? getContextFlavor(context, false, false)\n : context, childTree);\n var childTypename = void 0;\n if (field.selectionSet &&\n (isReference(incomingValue) ||\n storeValueIsStoreObject(incomingValue))) {\n childTypename = readField(\"__typename\", incomingValue);\n }\n var merge = policies.getMergeFunction(typename, field.name.value, childTypename);\n if (merge) {\n childTree.info = {\n field: field,\n typename: typename,\n merge: merge,\n };\n }\n else {\n maybeRecycleChildMergeTree(mergeTree, storeFieldName);\n }\n incoming = context.merge(incoming, (_a = {},\n _a[storeFieldName] = incomingValue,\n _a));\n }\n else if (__DEV__ &&\n !context.clientOnly &&\n !context.deferred &&\n !addTypenameToDocument.added(field) &&\n !policies.getReadFunction(typename, field.name.value)) {\n __DEV__ && invariant.error(\"Missing field '\".concat(resultKeyNameFromField(field), \"' while writing result \").concat(JSON.stringify(result, null, 2)).substring(0, 1000));\n }\n });\n try {\n var _b = policies.identify(result, {\n typename: typename,\n selectionSet: selectionSet,\n fragmentMap: context.fragmentMap,\n storeObject: incoming,\n readField: readField,\n }), id = _b[0], keyObject = _b[1];\n dataId = dataId || id;\n if (keyObject) {\n incoming = context.merge(incoming, keyObject);\n }\n }\n catch (e) {\n if (!dataId)\n throw e;\n }\n if (\"string\" === typeof dataId) {\n var dataRef = makeReference(dataId);\n var sets = context.written[dataId] || (context.written[dataId] = []);\n if (sets.indexOf(selectionSet) >= 0)\n return dataRef;\n sets.push(selectionSet);\n if (this.reader && this.reader.isFresh(result, dataRef, selectionSet, context)) {\n return dataRef;\n }\n var previous_1 = context.incomingById.get(dataId);\n if (previous_1) {\n previous_1.storeObject = context.merge(previous_1.storeObject, incoming);\n previous_1.mergeTree = mergeMergeTrees(previous_1.mergeTree, mergeTree);\n fieldNodeSet.forEach(function (field) { return previous_1.fieldNodeSet.add(field); });\n }\n else {\n context.incomingById.set(dataId, {\n storeObject: incoming,\n mergeTree: mergeTreeIsEmpty(mergeTree) ? void 0 : mergeTree,\n fieldNodeSet: fieldNodeSet,\n });\n }\n return dataRef;\n }\n return incoming;\n };\n StoreWriter.prototype.processFieldValue = function (value, field, context, mergeTree) {\n var _this = this;\n if (!field.selectionSet || value === null) {\n return __DEV__ ? cloneDeep(value) : value;\n }\n if (isArray(value)) {\n return value.map(function (item, i) {\n var value = _this.processFieldValue(item, field, context, getChildMergeTree(mergeTree, i));\n maybeRecycleChildMergeTree(mergeTree, i);\n return value;\n });\n }\n return this.processSelectionSet({\n result: value,\n selectionSet: field.selectionSet,\n context: context,\n mergeTree: mergeTree,\n });\n };\n StoreWriter.prototype.flattenFields = function (selectionSet, result, context, typename) {\n if (typename === void 0) { typename = getTypenameFromResult(result, selectionSet, context.fragmentMap); }\n var fieldMap = new Map();\n var policies = this.cache.policies;\n var limitingTrie = new Trie(false);\n (function flatten(selectionSet, inheritedContext) {\n var visitedNode = limitingTrie.lookup(selectionSet, inheritedContext.clientOnly, inheritedContext.deferred);\n if (visitedNode.visited)\n return;\n visitedNode.visited = true;\n selectionSet.selections.forEach(function (selection) {\n if (!shouldInclude(selection, context.variables))\n return;\n var clientOnly = inheritedContext.clientOnly, deferred = inheritedContext.deferred;\n if (!(clientOnly && deferred) &&\n isNonEmptyArray(selection.directives)) {\n selection.directives.forEach(function (dir) {\n var name = dir.name.value;\n if (name === \"client\")\n clientOnly = true;\n if (name === \"defer\") {\n var args = argumentsObjectFromField(dir, context.variables);\n if (!args || args.if !== false) {\n deferred = true;\n }\n }\n });\n }\n if (isField(selection)) {\n var existing = fieldMap.get(selection);\n if (existing) {\n clientOnly = clientOnly && existing.clientOnly;\n deferred = deferred && existing.deferred;\n }\n fieldMap.set(selection, getContextFlavor(context, clientOnly, deferred));\n }\n else {\n var fragment = getFragmentFromSelection(selection, context.fragmentMap);\n if (fragment &&\n policies.fragmentMatches(fragment, typename, result, context.variables)) {\n flatten(fragment.selectionSet, getContextFlavor(context, clientOnly, deferred));\n }\n }\n });\n })(selectionSet, context);\n return fieldMap;\n };\n StoreWriter.prototype.applyMerges = function (mergeTree, existing, incoming, context, getStorageArgs) {\n var _a;\n var _this = this;\n if (mergeTree.map.size && !isReference(incoming)) {\n var e_1 = (!isArray(incoming) &&\n (isReference(existing) || storeValueIsStoreObject(existing))) ? existing : void 0;\n var i_1 = incoming;\n if (e_1 && !getStorageArgs) {\n getStorageArgs = [isReference(e_1) ? e_1.__ref : e_1];\n }\n var changedFields_1;\n var getValue_1 = function (from, name) {\n return isArray(from)\n ? (typeof name === \"number\" ? from[name] : void 0)\n : context.store.getFieldValue(from, String(name));\n };\n mergeTree.map.forEach(function (childTree, storeFieldName) {\n var eVal = getValue_1(e_1, storeFieldName);\n var iVal = getValue_1(i_1, storeFieldName);\n if (void 0 === iVal)\n return;\n if (getStorageArgs) {\n getStorageArgs.push(storeFieldName);\n }\n var aVal = _this.applyMerges(childTree, eVal, iVal, context, getStorageArgs);\n if (aVal !== iVal) {\n changedFields_1 = changedFields_1 || new Map;\n changedFields_1.set(storeFieldName, aVal);\n }\n if (getStorageArgs) {\n invariant(getStorageArgs.pop() === storeFieldName);\n }\n });\n if (changedFields_1) {\n incoming = (isArray(i_1) ? i_1.slice(0) : __assign({}, i_1));\n changedFields_1.forEach(function (value, name) {\n incoming[name] = value;\n });\n }\n }\n if (mergeTree.info) {\n return this.cache.policies.runMergeFunction(existing, incoming, mergeTree.info, context, getStorageArgs && (_a = context.store).getStorage.apply(_a, getStorageArgs));\n }\n return incoming;\n };\n return StoreWriter;\n}());\nexport { StoreWriter };\nvar emptyMergeTreePool = [];\nfunction getChildMergeTree(_a, name) {\n var map = _a.map;\n if (!map.has(name)) {\n map.set(name, emptyMergeTreePool.pop() || { map: new Map });\n }\n return map.get(name);\n}\nfunction mergeMergeTrees(left, right) {\n if (left === right || !right || mergeTreeIsEmpty(right))\n return left;\n if (!left || mergeTreeIsEmpty(left))\n return right;\n var info = left.info && right.info ? __assign(__assign({}, left.info), right.info) : left.info || right.info;\n var needToMergeMaps = left.map.size && right.map.size;\n var map = needToMergeMaps ? new Map :\n left.map.size ? left.map : right.map;\n var merged = { info: info, map: map };\n if (needToMergeMaps) {\n var remainingRightKeys_1 = new Set(right.map.keys());\n left.map.forEach(function (leftTree, key) {\n merged.map.set(key, mergeMergeTrees(leftTree, right.map.get(key)));\n remainingRightKeys_1.delete(key);\n });\n remainingRightKeys_1.forEach(function (key) {\n merged.map.set(key, mergeMergeTrees(right.map.get(key), left.map.get(key)));\n });\n }\n return merged;\n}\nfunction mergeTreeIsEmpty(tree) {\n return !tree || !(tree.info || tree.map.size);\n}\nfunction maybeRecycleChildMergeTree(_a, name) {\n var map = _a.map;\n var childTree = map.get(name);\n if (childTree && mergeTreeIsEmpty(childTree)) {\n emptyMergeTreePool.push(childTree);\n map.delete(name);\n }\n}\nvar warnings = new Set();\nfunction warnAboutDataLoss(existingRef, incomingObj, storeFieldName, store) {\n var getChild = function (objOrRef) {\n var child = store.getFieldValue(objOrRef, storeFieldName);\n return typeof child === \"object\" && child;\n };\n var existing = getChild(existingRef);\n if (!existing)\n return;\n var incoming = getChild(incomingObj);\n if (!incoming)\n return;\n if (isReference(existing))\n return;\n if (equal(existing, incoming))\n return;\n if (Object.keys(existing).every(function (key) { return store.getFieldValue(incoming, key) !== void 0; })) {\n return;\n }\n var parentType = store.getFieldValue(existingRef, \"__typename\") ||\n store.getFieldValue(incomingObj, \"__typename\");\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var typeDotName = \"\".concat(parentType, \".\").concat(fieldName);\n if (warnings.has(typeDotName))\n return;\n warnings.add(typeDotName);\n var childTypenames = [];\n if (!isArray(existing) &&\n !isArray(incoming)) {\n [existing, incoming].forEach(function (child) {\n var typename = store.getFieldValue(child, \"__typename\");\n if (typeof typename === \"string\" &&\n !childTypenames.includes(typename)) {\n childTypenames.push(typename);\n }\n });\n }\n __DEV__ && invariant.warn(\"Cache data may be lost when replacing the \".concat(fieldName, \" field of a \").concat(parentType, \" object.\\n\\nTo address this problem (which is not a bug in Apollo Client), \").concat(childTypenames.length\n ? \"either ensure all objects of type \" +\n childTypenames.join(\" and \") + \" have an ID or a custom merge function, or \"\n : \"\", \"define a custom merge function for the \").concat(typeDotName, \" field, so InMemoryCache can safely merge these objects:\\n\\n existing: \").concat(JSON.stringify(existing).slice(0, 1000), \"\\n incoming: \").concat(JSON.stringify(incoming).slice(0, 1000), \"\\n\\nFor more information about these options, please refer to the documentation:\\n\\n * Ensuring entity objects have IDs: https://go.apollo.dev/c/generating-unique-identifiers\\n * Defining custom merge functions: https://go.apollo.dev/c/merging-non-normalized-objects\\n\"));\n}\n//# sourceMappingURL=writeToStore.js.map","import { __assign, __extends } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport \"./fixPolyfills.js\";\nimport { wrap } from 'optimism';\nimport { equal } from '@wry/equality';\nimport { ApolloCache } from \"../core/cache.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { addTypenameToDocument, isReference, } from \"../../utilities/index.js\";\nimport { StoreReader } from \"./readFromStore.js\";\nimport { StoreWriter } from \"./writeToStore.js\";\nimport { EntityStore, supportsResultCaching } from \"./entityStore.js\";\nimport { makeVar, forgetCache, recallCache } from \"./reactiveVars.js\";\nimport { Policies } from \"./policies.js\";\nimport { hasOwn, normalizeConfig, shouldCanonizeResults } from \"./helpers.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\nvar InMemoryCache = (function (_super) {\n __extends(InMemoryCache, _super);\n function InMemoryCache(config) {\n if (config === void 0) { config = {}; }\n var _this = _super.call(this) || this;\n _this.watches = new Set();\n _this.typenameDocumentCache = new Map();\n _this.makeVar = makeVar;\n _this.txCount = 0;\n _this.config = normalizeConfig(config);\n _this.addTypename = !!_this.config.addTypename;\n _this.policies = new Policies({\n cache: _this,\n dataIdFromObject: _this.config.dataIdFromObject,\n possibleTypes: _this.config.possibleTypes,\n typePolicies: _this.config.typePolicies,\n });\n _this.init();\n return _this;\n }\n InMemoryCache.prototype.init = function () {\n var rootStore = this.data = new EntityStore.Root({\n policies: this.policies,\n resultCaching: this.config.resultCaching,\n });\n this.optimisticData = rootStore.stump;\n this.resetResultCache();\n };\n InMemoryCache.prototype.resetResultCache = function (resetResultIdentities) {\n var _this = this;\n var previousReader = this.storeReader;\n this.storeWriter = new StoreWriter(this, this.storeReader = new StoreReader({\n cache: this,\n addTypename: this.addTypename,\n resultCacheMaxSize: this.config.resultCacheMaxSize,\n canonizeResults: shouldCanonizeResults(this.config),\n canon: resetResultIdentities\n ? void 0\n : previousReader && previousReader.canon,\n }));\n this.maybeBroadcastWatch = wrap(function (c, options) {\n return _this.broadcastWatch(c, options);\n }, {\n max: this.config.resultCacheMaxSize,\n makeCacheKey: function (c) {\n var store = c.optimistic ? _this.optimisticData : _this.data;\n if (supportsResultCaching(store)) {\n var optimistic = c.optimistic, rootId = c.rootId, variables = c.variables;\n return store.makeCacheKey(c.query, c.callback, canonicalStringify({ optimistic: optimistic, rootId: rootId, variables: variables }));\n }\n }\n });\n new Set([\n this.data.group,\n this.optimisticData.group,\n ]).forEach(function (group) { return group.resetCaching(); });\n };\n InMemoryCache.prototype.restore = function (data) {\n this.init();\n if (data)\n this.data.replace(data);\n return this;\n };\n InMemoryCache.prototype.extract = function (optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return (optimistic ? this.optimisticData : this.data).extract();\n };\n InMemoryCache.prototype.read = function (options) {\n var _a = options.returnPartialData, returnPartialData = _a === void 0 ? false : _a;\n try {\n return this.storeReader.diffQueryAgainstStore(__assign(__assign({}, options), { store: options.optimistic ? this.optimisticData : this.data, config: this.config, returnPartialData: returnPartialData })).result || null;\n }\n catch (e) {\n if (e instanceof MissingFieldError) {\n return null;\n }\n throw e;\n }\n };\n InMemoryCache.prototype.write = function (options) {\n try {\n ++this.txCount;\n return this.storeWriter.writeToStore(this.data, options);\n }\n finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n InMemoryCache.prototype.modify = function (options) {\n if (hasOwn.call(options, \"id\") && !options.id) {\n return false;\n }\n var store = options.optimistic\n ? this.optimisticData\n : this.data;\n try {\n ++this.txCount;\n return store.modify(options.id || \"ROOT_QUERY\", options.fields);\n }\n finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n InMemoryCache.prototype.diff = function (options) {\n return this.storeReader.diffQueryAgainstStore(__assign(__assign({}, options), { store: options.optimistic ? this.optimisticData : this.data, rootId: options.id || \"ROOT_QUERY\", config: this.config }));\n };\n InMemoryCache.prototype.watch = function (watch) {\n var _this = this;\n if (!this.watches.size) {\n recallCache(this);\n }\n this.watches.add(watch);\n if (watch.immediate) {\n this.maybeBroadcastWatch(watch);\n }\n return function () {\n if (_this.watches.delete(watch) && !_this.watches.size) {\n forgetCache(_this);\n }\n _this.maybeBroadcastWatch.forget(watch);\n };\n };\n InMemoryCache.prototype.gc = function (options) {\n canonicalStringify.reset();\n var ids = this.optimisticData.gc();\n if (options && !this.txCount) {\n if (options.resetResultCache) {\n this.resetResultCache(options.resetResultIdentities);\n }\n else if (options.resetResultIdentities) {\n this.storeReader.resetCanon();\n }\n }\n return ids;\n };\n InMemoryCache.prototype.retain = function (rootId, optimistic) {\n return (optimistic ? this.optimisticData : this.data).retain(rootId);\n };\n InMemoryCache.prototype.release = function (rootId, optimistic) {\n return (optimistic ? this.optimisticData : this.data).release(rootId);\n };\n InMemoryCache.prototype.identify = function (object) {\n if (isReference(object))\n return object.__ref;\n try {\n return this.policies.identify(object)[0];\n }\n catch (e) {\n __DEV__ && invariant.warn(e);\n }\n };\n InMemoryCache.prototype.evict = function (options) {\n if (!options.id) {\n if (hasOwn.call(options, \"id\")) {\n return false;\n }\n options = __assign(__assign({}, options), { id: \"ROOT_QUERY\" });\n }\n try {\n ++this.txCount;\n return this.optimisticData.evict(options, this.data);\n }\n finally {\n if (!--this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n InMemoryCache.prototype.reset = function (options) {\n var _this = this;\n this.init();\n canonicalStringify.reset();\n if (options && options.discardWatches) {\n this.watches.forEach(function (watch) { return _this.maybeBroadcastWatch.forget(watch); });\n this.watches.clear();\n forgetCache(this);\n }\n else {\n this.broadcastWatches();\n }\n return Promise.resolve();\n };\n InMemoryCache.prototype.removeOptimistic = function (idToRemove) {\n var newOptimisticData = this.optimisticData.removeLayer(idToRemove);\n if (newOptimisticData !== this.optimisticData) {\n this.optimisticData = newOptimisticData;\n this.broadcastWatches();\n }\n };\n InMemoryCache.prototype.batch = function (options) {\n var _this = this;\n var update = options.update, _a = options.optimistic, optimistic = _a === void 0 ? true : _a, removeOptimistic = options.removeOptimistic, onWatchUpdated = options.onWatchUpdated;\n var updateResult;\n var perform = function (layer) {\n var _a = _this, data = _a.data, optimisticData = _a.optimisticData;\n ++_this.txCount;\n if (layer) {\n _this.data = _this.optimisticData = layer;\n }\n try {\n return updateResult = update(_this);\n }\n finally {\n --_this.txCount;\n _this.data = data;\n _this.optimisticData = optimisticData;\n }\n };\n var alreadyDirty = new Set();\n if (onWatchUpdated && !this.txCount) {\n this.broadcastWatches(__assign(__assign({}, options), { onWatchUpdated: function (watch) {\n alreadyDirty.add(watch);\n return false;\n } }));\n }\n if (typeof optimistic === 'string') {\n this.optimisticData = this.optimisticData.addLayer(optimistic, perform);\n }\n else if (optimistic === false) {\n perform(this.data);\n }\n else {\n perform();\n }\n if (typeof removeOptimistic === \"string\") {\n this.optimisticData = this.optimisticData.removeLayer(removeOptimistic);\n }\n if (onWatchUpdated && alreadyDirty.size) {\n this.broadcastWatches(__assign(__assign({}, options), { onWatchUpdated: function (watch, diff) {\n var result = onWatchUpdated.call(this, watch, diff);\n if (result !== false) {\n alreadyDirty.delete(watch);\n }\n return result;\n } }));\n if (alreadyDirty.size) {\n alreadyDirty.forEach(function (watch) { return _this.maybeBroadcastWatch.dirty(watch); });\n }\n }\n else {\n this.broadcastWatches(options);\n }\n return updateResult;\n };\n InMemoryCache.prototype.performTransaction = function (update, optimisticId) {\n return this.batch({\n update: update,\n optimistic: optimisticId || (optimisticId !== null),\n });\n };\n InMemoryCache.prototype.transformDocument = function (document) {\n if (this.addTypename) {\n var result = this.typenameDocumentCache.get(document);\n if (!result) {\n result = addTypenameToDocument(document);\n this.typenameDocumentCache.set(document, result);\n this.typenameDocumentCache.set(result, result);\n }\n return result;\n }\n return document;\n };\n InMemoryCache.prototype.broadcastWatches = function (options) {\n var _this = this;\n if (!this.txCount) {\n this.watches.forEach(function (c) { return _this.maybeBroadcastWatch(c, options); });\n }\n };\n InMemoryCache.prototype.broadcastWatch = function (c, options) {\n var lastDiff = c.lastDiff;\n var diff = this.diff(c);\n if (options) {\n if (c.optimistic &&\n typeof options.optimistic === \"string\") {\n diff.fromOptimisticTransaction = true;\n }\n if (options.onWatchUpdated &&\n options.onWatchUpdated.call(this, c, diff, lastDiff) === false) {\n return;\n }\n }\n if (!lastDiff || !equal(lastDiff.result, diff.result)) {\n c.callback(c.lastDiff = diff, lastDiff);\n }\n };\n return InMemoryCache;\n}(ApolloCache));\nexport { InMemoryCache };\n//# sourceMappingURL=inMemoryCache.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n// === Symbol Support ===\nvar hasSymbols = function () {\n return typeof Symbol === 'function';\n};\n\nvar hasSymbol = function (name) {\n return hasSymbols() && Boolean(Symbol[name]);\n};\n\nvar getSymbol = function (name) {\n return hasSymbol(name) ? Symbol[name] : '@@' + name;\n};\n\nif (hasSymbols() && !hasSymbol('observable')) {\n Symbol.observable = Symbol('observable');\n}\n\nvar SymbolIterator = getSymbol('iterator');\nvar SymbolObservable = getSymbol('observable');\nvar SymbolSpecies = getSymbol('species'); // === Abstract Operations ===\n\nfunction getMethod(obj, key) {\n var value = obj[key];\n if (value == null) return undefined;\n if (typeof value !== 'function') throw new TypeError(value + ' is not a function');\n return value;\n}\n\nfunction getSpecies(obj) {\n var ctor = obj.constructor;\n\n if (ctor !== undefined) {\n ctor = ctor[SymbolSpecies];\n\n if (ctor === null) {\n ctor = undefined;\n }\n }\n\n return ctor !== undefined ? ctor : Observable;\n}\n\nfunction isObservable(x) {\n return x instanceof Observable; // SPEC: Brand check\n}\n\nfunction hostReportError(e) {\n if (hostReportError.log) {\n hostReportError.log(e);\n } else {\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nfunction enqueue(fn) {\n Promise.resolve().then(function () {\n try {\n fn();\n } catch (e) {\n hostReportError(e);\n }\n });\n}\n\nfunction cleanupSubscription(subscription) {\n var cleanup = subscription._cleanup;\n if (cleanup === undefined) return;\n subscription._cleanup = undefined;\n\n if (!cleanup) {\n return;\n }\n\n try {\n if (typeof cleanup === 'function') {\n cleanup();\n } else {\n var unsubscribe = getMethod(cleanup, 'unsubscribe');\n\n if (unsubscribe) {\n unsubscribe.call(cleanup);\n }\n }\n } catch (e) {\n hostReportError(e);\n }\n}\n\nfunction closeSubscription(subscription) {\n subscription._observer = undefined;\n subscription._queue = undefined;\n subscription._state = 'closed';\n}\n\nfunction flushSubscription(subscription) {\n var queue = subscription._queue;\n\n if (!queue) {\n return;\n }\n\n subscription._queue = undefined;\n subscription._state = 'ready';\n\n for (var i = 0; i < queue.length; ++i) {\n notifySubscription(subscription, queue[i].type, queue[i].value);\n if (subscription._state === 'closed') break;\n }\n}\n\nfunction notifySubscription(subscription, type, value) {\n subscription._state = 'running';\n var observer = subscription._observer;\n\n try {\n var m = getMethod(observer, type);\n\n switch (type) {\n case 'next':\n if (m) m.call(observer, value);\n break;\n\n case 'error':\n closeSubscription(subscription);\n if (m) m.call(observer, value);else throw value;\n break;\n\n case 'complete':\n closeSubscription(subscription);\n if (m) m.call(observer);\n break;\n }\n } catch (e) {\n hostReportError(e);\n }\n\n if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready';\n}\n\nfunction onNotify(subscription, type, value) {\n if (subscription._state === 'closed') return;\n\n if (subscription._state === 'buffering') {\n subscription._queue.push({\n type: type,\n value: value\n });\n\n return;\n }\n\n if (subscription._state !== 'ready') {\n subscription._state = 'buffering';\n subscription._queue = [{\n type: type,\n value: value\n }];\n enqueue(function () {\n return flushSubscription(subscription);\n });\n return;\n }\n\n notifySubscription(subscription, type, value);\n}\n\nvar Subscription = /*#__PURE__*/function () {\n function Subscription(observer, subscriber) {\n // ASSERT: observer is an object\n // ASSERT: subscriber is callable\n this._cleanup = undefined;\n this._observer = observer;\n this._queue = undefined;\n this._state = 'initializing';\n var subscriptionObserver = new SubscriptionObserver(this);\n\n try {\n this._cleanup = subscriber.call(undefined, subscriptionObserver);\n } catch (e) {\n subscriptionObserver.error(e);\n }\n\n if (this._state === 'initializing') this._state = 'ready';\n }\n\n var _proto = Subscription.prototype;\n\n _proto.unsubscribe = function unsubscribe() {\n if (this._state !== 'closed') {\n closeSubscription(this);\n cleanupSubscription(this);\n }\n };\n\n _createClass(Subscription, [{\n key: \"closed\",\n get: function () {\n return this._state === 'closed';\n }\n }]);\n\n return Subscription;\n}();\n\nvar SubscriptionObserver = /*#__PURE__*/function () {\n function SubscriptionObserver(subscription) {\n this._subscription = subscription;\n }\n\n var _proto2 = SubscriptionObserver.prototype;\n\n _proto2.next = function next(value) {\n onNotify(this._subscription, 'next', value);\n };\n\n _proto2.error = function error(value) {\n onNotify(this._subscription, 'error', value);\n };\n\n _proto2.complete = function complete() {\n onNotify(this._subscription, 'complete');\n };\n\n _createClass(SubscriptionObserver, [{\n key: \"closed\",\n get: function () {\n return this._subscription._state === 'closed';\n }\n }]);\n\n return SubscriptionObserver;\n}();\n\nvar Observable = /*#__PURE__*/function () {\n function Observable(subscriber) {\n if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function');\n if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function');\n this._subscriber = subscriber;\n }\n\n var _proto3 = Observable.prototype;\n\n _proto3.subscribe = function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n observer = {\n next: observer,\n error: arguments[1],\n complete: arguments[2]\n };\n }\n\n return new Subscription(observer, this._subscriber);\n };\n\n _proto3.forEach = function forEach(fn) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n if (typeof fn !== 'function') {\n reject(new TypeError(fn + ' is not a function'));\n return;\n }\n\n function done() {\n subscription.unsubscribe();\n resolve();\n }\n\n var subscription = _this.subscribe({\n next: function (value) {\n try {\n fn(value, done);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n };\n\n _proto3.map = function map(fn) {\n var _this2 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this2.subscribe({\n next: function (value) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n };\n\n _proto3.filter = function filter(fn) {\n var _this3 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this3.subscribe({\n next: function (value) {\n try {\n if (!fn(value)) return;\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n };\n\n _proto3.reduce = function reduce(fn) {\n var _this4 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n return new C(function (observer) {\n return _this4.subscribe({\n next: function (value) {\n var first = !hasValue;\n hasValue = true;\n\n if (!first || hasSeed) {\n try {\n acc = fn(acc, value);\n } catch (e) {\n return observer.error(e);\n }\n } else {\n acc = value;\n }\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence'));\n observer.next(acc);\n observer.complete();\n }\n });\n });\n };\n\n _proto3.concat = function concat() {\n var _this5 = this;\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscription;\n var index = 0;\n\n function startNext(next) {\n subscription = next.subscribe({\n next: function (v) {\n observer.next(v);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (index === sources.length) {\n subscription = undefined;\n observer.complete();\n } else {\n startNext(C.from(sources[index++]));\n }\n }\n });\n }\n\n startNext(_this5);\n return function () {\n if (subscription) {\n subscription.unsubscribe();\n subscription = undefined;\n }\n };\n });\n };\n\n _proto3.flatMap = function flatMap(fn) {\n var _this6 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscriptions = [];\n\n var outer = _this6.subscribe({\n next: function (value) {\n if (fn) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n }\n\n var inner = C.from(value).subscribe({\n next: function (value) {\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n var i = subscriptions.indexOf(inner);\n if (i >= 0) subscriptions.splice(i, 1);\n completeIfDone();\n }\n });\n subscriptions.push(inner);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n completeIfDone();\n }\n });\n\n function completeIfDone() {\n if (outer.closed && subscriptions.length === 0) observer.complete();\n }\n\n return function () {\n subscriptions.forEach(function (s) {\n return s.unsubscribe();\n });\n outer.unsubscribe();\n };\n });\n };\n\n _proto3[SymbolObservable] = function () {\n return this;\n };\n\n Observable.from = function from(x) {\n var C = typeof this === 'function' ? this : Observable;\n if (x == null) throw new TypeError(x + ' is not an object');\n var method = getMethod(x, SymbolObservable);\n\n if (method) {\n var observable = method.call(x);\n if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object');\n if (isObservable(observable) && observable.constructor === C) return observable;\n return new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n\n if (hasSymbol('iterator')) {\n method = getMethod(x, SymbolIterator);\n\n if (method) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var _iterator = _createForOfIteratorHelperLoose(method.call(x)), _step; !(_step = _iterator()).done;) {\n var item = _step.value;\n observer.next(item);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n }\n\n if (Array.isArray(x)) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < x.length; ++i) {\n observer.next(x[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n\n throw new TypeError(x + ' is not observable');\n };\n\n Observable.of = function of() {\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n\n var C = typeof this === 'function' ? this : Observable;\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < items.length; ++i) {\n observer.next(items[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n };\n\n _createClass(Observable, null, [{\n key: SymbolSpecies,\n get: function () {\n return this;\n }\n }]);\n\n return Observable;\n}();\n\nif (hasSymbols()) {\n Object.defineProperty(Observable, Symbol('extensions'), {\n value: {\n symbol: SymbolObservable,\n hostReportError: hostReportError\n },\n configurable: true\n });\n}\n\nexport { Observable };\n","import { __extends } from \"tslib\";\nimport { InvariantError, invariant } from \"../../utilities/globals/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { validateOperation, createOperation, transformOperation, } from \"../utils/index.js\";\nfunction passthrough(op, forward) {\n return (forward ? forward(op) : Observable.of());\n}\nfunction toLink(handler) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n}\nfunction isTerminating(link) {\n return link.request.length <= 1;\n}\nvar LinkError = (function (_super) {\n __extends(LinkError, _super);\n function LinkError(message, link) {\n var _this = _super.call(this, message) || this;\n _this.link = link;\n return _this;\n }\n return LinkError;\n}(Error));\nvar ApolloLink = (function () {\n function ApolloLink(request) {\n if (request)\n this.request = request;\n }\n ApolloLink.empty = function () {\n return new ApolloLink(function () { return Observable.of(); });\n };\n ApolloLink.from = function (links) {\n if (links.length === 0)\n return ApolloLink.empty();\n return links.map(toLink).reduce(function (x, y) { return x.concat(y); });\n };\n ApolloLink.split = function (test, left, right) {\n var leftLink = toLink(left);\n var rightLink = toLink(right || new ApolloLink(passthrough));\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(function (operation) {\n return test(operation)\n ? leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return test(operation)\n ? leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n };\n ApolloLink.execute = function (link, operation) {\n return (link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || Observable.of());\n };\n ApolloLink.concat = function (first, second) {\n var firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n __DEV__ && invariant.warn(new LinkError(\"You are calling concat on a terminating link, which will have no effect\", firstLink));\n return firstLink;\n }\n var nextLink = toLink(second);\n if (isTerminating(nextLink)) {\n return new ApolloLink(function (operation) {\n return firstLink.request(operation, function (op) { return nextLink.request(op) || Observable.of(); }) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return (firstLink.request(operation, function (op) {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of());\n });\n }\n };\n ApolloLink.prototype.split = function (test, left, right) {\n return this.concat(ApolloLink.split(test, left, right || new ApolloLink(passthrough)));\n };\n ApolloLink.prototype.concat = function (next) {\n return ApolloLink.concat(this, next);\n };\n ApolloLink.prototype.request = function (operation, forward) {\n throw __DEV__ ? new InvariantError('request is not implemented') : new InvariantError(19);\n };\n ApolloLink.prototype.onError = function (error, observer) {\n if (observer && observer.error) {\n observer.error(error);\n return false;\n }\n throw error;\n };\n ApolloLink.prototype.setOnError = function (fn) {\n this.onError = fn;\n return this;\n };\n return ApolloLink;\n}());\nexport { ApolloLink };\n//# sourceMappingURL=ApolloLink.js.map","import { __assign } from \"tslib\";\nexport function createOperation(starting, operation) {\n var context = __assign({}, starting);\n var setContext = function (next) {\n if (typeof next === 'function') {\n context = __assign(__assign({}, context), next(context));\n }\n else {\n context = __assign(__assign({}, context), next);\n }\n };\n var getContext = function () { return (__assign({}, context)); };\n Object.defineProperty(operation, 'setContext', {\n enumerable: false,\n value: setContext,\n });\n Object.defineProperty(operation, 'getContext', {\n enumerable: false,\n value: getContext,\n });\n return operation;\n}\n//# sourceMappingURL=createOperation.js.map","import { getOperationName } from \"../../utilities/index.js\";\nexport function transformOperation(operation) {\n var transformedOperation = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query,\n };\n if (!transformedOperation.operationName) {\n transformedOperation.operationName =\n typeof transformedOperation.query !== 'string'\n ? getOperationName(transformedOperation.query) || undefined\n : '';\n }\n return transformedOperation;\n}\n//# sourceMappingURL=transformOperation.js.map","import { InvariantError } from \"../../utilities/globals/index.js\";\nexport function validateOperation(operation) {\n var OPERATION_FIELDS = [\n 'query',\n 'operationName',\n 'variables',\n 'extensions',\n 'context',\n ];\n for (var _i = 0, _a = Object.keys(operation); _i < _a.length; _i++) {\n var key = _a[_i];\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw __DEV__ ? new InvariantError(\"illegal argument: \".concat(key)) : new InvariantError(24);\n }\n }\n return operation;\n}\n//# sourceMappingURL=validateOperation.js.map","import { InvariantError } from \"../../utilities/globals/index.js\";\nexport var serializeFetchParameter = function (p, label) {\n var serialized;\n try {\n serialized = JSON.stringify(p);\n }\n catch (e) {\n var parseError = __DEV__ ? new InvariantError(\"Network request failed. \".concat(label, \" is not serializable: \").concat(e.message)) : new InvariantError(21);\n parseError.parseError = e;\n throw parseError;\n }\n return serialized;\n};\n//# sourceMappingURL=serializeFetchParameter.js.map","export var throwServerError = function (response, result, message) {\n var error = new Error(message);\n error.name = 'ServerError';\n error.response = response;\n error.statusCode = response.status;\n error.result = result;\n throw error;\n};\n//# sourceMappingURL=throwServerError.js.map","import { throwServerError } from \"../utils/index.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function parseAndCheckHttpResponse(operations) {\n return function (response) { return response\n .text()\n .then(function (bodyText) {\n try {\n return JSON.parse(bodyText);\n }\n catch (err) {\n var parseError = err;\n parseError.name = 'ServerParseError';\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n throw parseError;\n }\n })\n .then(function (result) {\n if (response.status >= 300) {\n throwServerError(response, result, \"Response not successful: Received status code \".concat(response.status));\n }\n if (!Array.isArray(result) &&\n !hasOwnProperty.call(result, 'data') &&\n !hasOwnProperty.call(result, 'errors')) {\n throwServerError(response, result, \"Server response was missing for query '\".concat(Array.isArray(operations)\n ? operations.map(function (op) { return op.operationName; })\n : operations.operationName, \"'.\"));\n }\n return result;\n }); };\n}\n//# sourceMappingURL=parseAndCheckHttpResponse.js.map","/**\n * ```\n * WhiteSpace ::\n * - \"Horizontal Tab (U+0009)\"\n * - \"Space (U+0020)\"\n * ```\n * @internal\n */\nexport function isWhiteSpace(code) {\n return code === 0x0009 || code === 0x0020;\n}\n/**\n * ```\n * Digit :: one of\n * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * ```\n * @internal\n */\n\nexport function isDigit(code) {\n return code >= 0x0030 && code <= 0x0039;\n}\n/**\n * ```\n * Letter :: one of\n * - `A` `B` `C` `D` `E` `F` `G` `H` `I` `J` `K` `L` `M`\n * - `N` `O` `P` `Q` `R` `S` `T` `U` `V` `W` `X` `Y` `Z`\n * - `a` `b` `c` `d` `e` `f` `g` `h` `i` `j` `k` `l` `m`\n * - `n` `o` `p` `q` `r` `s` `t` `u` `v` `w` `x` `y` `z`\n * ```\n * @internal\n */\n\nexport function isLetter(code) {\n return (\n (code >= 0x0061 && code <= 0x007a) || // A-Z\n (code >= 0x0041 && code <= 0x005a) // a-z\n );\n}\n/**\n * ```\n * NameStart ::\n * - Letter\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameStart(code) {\n return isLetter(code) || code === 0x005f;\n}\n/**\n * ```\n * NameContinue ::\n * - Letter\n * - Digit\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameContinue(code) {\n return isLetter(code) || isDigit(code) || code === 0x005f;\n}\n","/**\n * Prints a string as a GraphQL StringValue literal. Replaces control characters\n * and excluded characters (\" U+0022 and \\\\ U+005C) with escape sequences.\n */\nexport function printString(str) {\n return `\"${str.replace(escapedRegExp, escapedReplacer)}\"`;\n} // eslint-disable-next-line no-control-regex\n\nconst escapedRegExp = /[\\x00-\\x1f\\x22\\x5c\\x7f-\\x9f]/g;\n\nfunction escapedReplacer(str) {\n return escapeSequences[str.charCodeAt(0)];\n} // prettier-ignore\n\nconst escapeSequences = [\n '\\\\u0000',\n '\\\\u0001',\n '\\\\u0002',\n '\\\\u0003',\n '\\\\u0004',\n '\\\\u0005',\n '\\\\u0006',\n '\\\\u0007',\n '\\\\b',\n '\\\\t',\n '\\\\n',\n '\\\\u000B',\n '\\\\f',\n '\\\\r',\n '\\\\u000E',\n '\\\\u000F',\n '\\\\u0010',\n '\\\\u0011',\n '\\\\u0012',\n '\\\\u0013',\n '\\\\u0014',\n '\\\\u0015',\n '\\\\u0016',\n '\\\\u0017',\n '\\\\u0018',\n '\\\\u0019',\n '\\\\u001A',\n '\\\\u001B',\n '\\\\u001C',\n '\\\\u001D',\n '\\\\u001E',\n '\\\\u001F',\n '',\n '',\n '\\\\\"',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 2F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 3F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 4F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\\\\\',\n '',\n '',\n '', // 5F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 6F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\u007F',\n '\\\\u0080',\n '\\\\u0081',\n '\\\\u0082',\n '\\\\u0083',\n '\\\\u0084',\n '\\\\u0085',\n '\\\\u0086',\n '\\\\u0087',\n '\\\\u0088',\n '\\\\u0089',\n '\\\\u008A',\n '\\\\u008B',\n '\\\\u008C',\n '\\\\u008D',\n '\\\\u008E',\n '\\\\u008F',\n '\\\\u0090',\n '\\\\u0091',\n '\\\\u0092',\n '\\\\u0093',\n '\\\\u0094',\n '\\\\u0095',\n '\\\\u0096',\n '\\\\u0097',\n '\\\\u0098',\n '\\\\u0099',\n '\\\\u009A',\n '\\\\u009B',\n '\\\\u009C',\n '\\\\u009D',\n '\\\\u009E',\n '\\\\u009F',\n];\n","import { printBlockString } from './blockString.mjs';\nimport { printString } from './printString.mjs';\nimport { visit } from './visitor.mjs';\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n return visit(ast, printDocASTReducer);\n}\nconst MAX_LINE_LENGTH = 80;\nconst printDocASTReducer = {\n Name: {\n leave: (node) => node.value,\n },\n Variable: {\n leave: (node) => '$' + node.name,\n },\n // Document\n Document: {\n leave: (node) => join(node.definitions, '\\n\\n'),\n },\n OperationDefinition: {\n leave(node) {\n const varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n const prefix = join(\n [\n node.operation,\n join([node.name, varDefs]),\n join(node.directives, ' '),\n ],\n ' ',\n ); // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return (prefix === 'query' ? '' : prefix + ' ') + node.selectionSet;\n },\n },\n VariableDefinition: {\n leave: ({ variable, type, defaultValue, directives }) =>\n variable +\n ': ' +\n type +\n wrap(' = ', defaultValue) +\n wrap(' ', join(directives, ' ')),\n },\n SelectionSet: {\n leave: ({ selections }) => block(selections),\n },\n Field: {\n leave({ alias, name, arguments: args, directives, selectionSet }) {\n const prefix = wrap('', alias, ': ') + name;\n let argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n if (argsLine.length > MAX_LINE_LENGTH) {\n argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n }\n\n return join([argsLine, join(directives, ' '), selectionSet], ' ');\n },\n },\n Argument: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Fragments\n FragmentSpread: {\n leave: ({ name, directives }) =>\n '...' + name + wrap(' ', join(directives, ' ')),\n },\n InlineFragment: {\n leave: ({ typeCondition, directives, selectionSet }) =>\n join(\n [\n '...',\n wrap('on ', typeCondition),\n join(directives, ' '),\n selectionSet,\n ],\n ' ',\n ),\n },\n FragmentDefinition: {\n leave: (\n { name, typeCondition, variableDefinitions, directives, selectionSet }, // Note: fragment variable definitions are experimental and may be changed\n ) =>\n // or removed in the future.\n `fragment ${name}${wrap('(', join(variableDefinitions, ', '), ')')} ` +\n `on ${typeCondition} ${wrap('', join(directives, ' '), ' ')}` +\n selectionSet,\n },\n // Value\n IntValue: {\n leave: ({ value }) => value,\n },\n FloatValue: {\n leave: ({ value }) => value,\n },\n StringValue: {\n leave: ({ value, block: isBlockString }) =>\n isBlockString ? printBlockString(value) : printString(value),\n },\n BooleanValue: {\n leave: ({ value }) => (value ? 'true' : 'false'),\n },\n NullValue: {\n leave: () => 'null',\n },\n EnumValue: {\n leave: ({ value }) => value,\n },\n ListValue: {\n leave: ({ values }) => '[' + join(values, ', ') + ']',\n },\n ObjectValue: {\n leave: ({ fields }) => '{' + join(fields, ', ') + '}',\n },\n ObjectField: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Directive\n Directive: {\n leave: ({ name, arguments: args }) =>\n '@' + name + wrap('(', join(args, ', '), ')'),\n },\n // Type\n NamedType: {\n leave: ({ name }) => name,\n },\n ListType: {\n leave: ({ type }) => '[' + type + ']',\n },\n NonNullType: {\n leave: ({ type }) => type + '!',\n },\n // Type System Definitions\n SchemaDefinition: {\n leave: ({ description, directives, operationTypes }) =>\n wrap('', description, '\\n') +\n join(['schema', join(directives, ' '), block(operationTypes)], ' '),\n },\n OperationTypeDefinition: {\n leave: ({ operation, type }) => operation + ': ' + type,\n },\n ScalarTypeDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') +\n join(['scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n FieldDefinition: {\n leave: ({ description, name, arguments: args, type, directives }) =>\n wrap('', description, '\\n') +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n ': ' +\n type +\n wrap(' ', join(directives, ' ')),\n },\n InputValueDefinition: {\n leave: ({ description, name, type, defaultValue, directives }) =>\n wrap('', description, '\\n') +\n join(\n [name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')],\n ' ',\n ),\n },\n InterfaceTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeDefinition: {\n leave: ({ description, name, directives, types }) =>\n wrap('', description, '\\n') +\n join(\n ['union', name, join(directives, ' '), wrap('= ', join(types, ' | '))],\n ' ',\n ),\n },\n EnumTypeDefinition: {\n leave: ({ description, name, directives, values }) =>\n wrap('', description, '\\n') +\n join(['enum', name, join(directives, ' '), block(values)], ' '),\n },\n EnumValueDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') + join([name, join(directives, ' ')], ' '),\n },\n InputObjectTypeDefinition: {\n leave: ({ description, name, directives, fields }) =>\n wrap('', description, '\\n') +\n join(['input', name, join(directives, ' '), block(fields)], ' '),\n },\n DirectiveDefinition: {\n leave: ({ description, name, arguments: args, repeatable, locations }) =>\n wrap('', description, '\\n') +\n 'directive @' +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n (repeatable ? ' repeatable' : '') +\n ' on ' +\n join(locations, ' | '),\n },\n SchemaExtension: {\n leave: ({ directives, operationTypes }) =>\n join(\n ['extend schema', join(directives, ' '), block(operationTypes)],\n ' ',\n ),\n },\n ScalarTypeExtension: {\n leave: ({ name, directives }) =>\n join(['extend scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n InterfaceTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeExtension: {\n leave: ({ name, directives, types }) =>\n join(\n [\n 'extend union',\n name,\n join(directives, ' '),\n wrap('= ', join(types, ' | ')),\n ],\n ' ',\n ),\n },\n EnumTypeExtension: {\n leave: ({ name, directives, values }) =>\n join(['extend enum', name, join(directives, ' '), block(values)], ' '),\n },\n InputObjectTypeExtension: {\n leave: ({ name, directives, fields }) =>\n join(['extend input', name, join(directives, ' '), block(fields)], ' '),\n },\n};\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\nfunction join(maybeArray, separator = '') {\n var _maybeArray$filter$jo;\n\n return (_maybeArray$filter$jo =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.filter((x) => x).join(separator)) !== null &&\n _maybeArray$filter$jo !== void 0\n ? _maybeArray$filter$jo\n : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an indented `{ }` block.\n */\n\nfunction block(array) {\n return wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.\n */\n\nfunction wrap(start, maybeString, end = '') {\n return maybeString != null && maybeString !== ''\n ? start + maybeString + end\n : '';\n}\n\nfunction indent(str) {\n return wrap(' ', str.replace(/\\n/g, '\\n '));\n}\n\nfunction hasMultilineItems(maybeArray) {\n var _maybeArray$some;\n\n // FIXME: https://github.com/graphql/graphql-js/issues/2203\n\n /* c8 ignore next */\n return (_maybeArray$some =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.some((str) => str.includes('\\n'))) !== null &&\n _maybeArray$some !== void 0\n ? _maybeArray$some\n : false;\n}\n","import { isWhiteSpace } from './characterClasses.mjs';\n/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\n\nexport function dedentBlockStringLines(lines) {\n var _firstNonEmptyLine2;\n\n let commonIndent = Number.MAX_SAFE_INTEGER;\n let firstNonEmptyLine = null;\n let lastNonEmptyLine = -1;\n\n for (let i = 0; i < lines.length; ++i) {\n var _firstNonEmptyLine;\n\n const line = lines[i];\n const indent = leadingWhitespace(line);\n\n if (indent === line.length) {\n continue; // skip empty lines\n }\n\n firstNonEmptyLine =\n (_firstNonEmptyLine = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine !== void 0\n ? _firstNonEmptyLine\n : i;\n lastNonEmptyLine = i;\n\n if (i !== 0 && indent < commonIndent) {\n commonIndent = indent;\n }\n }\n\n return lines // Remove common indentation from all lines but first.\n .map((line, i) => (i === 0 ? line : line.slice(commonIndent))) // Remove leading and trailing blank lines.\n .slice(\n (_firstNonEmptyLine2 = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine2 !== void 0\n ? _firstNonEmptyLine2\n : 0,\n lastNonEmptyLine + 1,\n );\n}\n\nfunction leadingWhitespace(str) {\n let i = 0;\n\n while (i < str.length && isWhiteSpace(str.charCodeAt(i))) {\n ++i;\n }\n\n return i;\n}\n/**\n * @internal\n */\n\nexport function isPrintableAsBlockString(value) {\n if (value === '') {\n return true; // empty string is printable\n }\n\n let isEmptyLine = true;\n let hasIndent = false;\n let hasCommonIndent = true;\n let seenNonEmptyLine = false;\n\n for (let i = 0; i < value.length; ++i) {\n switch (value.codePointAt(i)) {\n case 0x0000:\n case 0x0001:\n case 0x0002:\n case 0x0003:\n case 0x0004:\n case 0x0005:\n case 0x0006:\n case 0x0007:\n case 0x0008:\n case 0x000b:\n case 0x000c:\n case 0x000e:\n case 0x000f:\n return false;\n // Has non-printable characters\n\n case 0x000d:\n // \\r\n return false;\n // Has \\r or \\r\\n which will be replaced as \\n\n\n case 10:\n // \\n\n if (isEmptyLine && !seenNonEmptyLine) {\n return false; // Has leading new line\n }\n\n seenNonEmptyLine = true;\n isEmptyLine = true;\n hasIndent = false;\n break;\n\n case 9: // \\t\n\n case 32:\n // \n hasIndent || (hasIndent = isEmptyLine);\n break;\n\n default:\n hasCommonIndent && (hasCommonIndent = hasIndent);\n isEmptyLine = false;\n }\n }\n\n if (isEmptyLine) {\n return false; // Has trailing empty lines\n }\n\n if (hasCommonIndent && seenNonEmptyLine) {\n return false; // Has internal indent\n }\n\n return true;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value, options) {\n const escapedValue = value.replace(/\"\"\"/g, '\\\\\"\"\"'); // Expand a block string's raw value into independent lines.\n\n const lines = escapedValue.split(/\\r\\n|[\\n\\r]/g);\n const isSingleLine = lines.length === 1; // If common indentation is found we can fix some of those cases by adding leading new line\n\n const forceLeadingNewLine =\n lines.length > 1 &&\n lines\n .slice(1)\n .every((line) => line.length === 0 || isWhiteSpace(line.charCodeAt(0))); // Trailing triple quotes just looks confusing but doesn't force trailing new line\n\n const hasTrailingTripleQuotes = escapedValue.endsWith('\\\\\"\"\"'); // Trailing quote (single or double) or slash forces trailing new line\n\n const hasTrailingQuote = value.endsWith('\"') && !hasTrailingTripleQuotes;\n const hasTrailingSlash = value.endsWith('\\\\');\n const forceTrailingNewline = hasTrailingQuote || hasTrailingSlash;\n const printAsMultipleLines =\n !(options !== null && options !== void 0 && options.minimize) && // add leading and trailing new lines only if it improves readability\n (!isSingleLine ||\n value.length > 70 ||\n forceTrailingNewline ||\n forceLeadingNewLine ||\n hasTrailingTripleQuotes);\n let result = ''; // Format a multi-line block quote to account for leading space.\n\n const skipLeadingNewLine = isSingleLine && isWhiteSpace(value.charCodeAt(0));\n\n if ((printAsMultipleLines && !skipLeadingNewLine) || forceLeadingNewLine) {\n result += '\\n';\n }\n\n result += escapedValue;\n\n if (printAsMultipleLines || forceTrailingNewline) {\n result += '\\n';\n }\n\n return '\"\"\"' + result + '\"\"\"';\n}\n","import { __assign, __spreadArray } from \"tslib\";\nimport { print } from 'graphql';\n;\nvar defaultHttpOptions = {\n includeQuery: true,\n includeExtensions: false,\n};\nvar defaultHeaders = {\n accept: '*/*',\n 'content-type': 'application/json',\n};\nvar defaultOptions = {\n method: 'POST',\n};\nexport var fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\nexport var defaultPrinter = function (ast, printer) { return printer(ast); };\nexport function selectHttpOptionsAndBody(operation, fallbackConfig) {\n var configs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n configs.unshift(fallbackConfig);\n return selectHttpOptionsAndBodyInternal.apply(void 0, __spreadArray([operation,\n defaultPrinter], configs, false));\n}\nexport function selectHttpOptionsAndBodyInternal(operation, printer) {\n var configs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n var options = {};\n var http = {};\n configs.forEach(function (config) {\n options = __assign(__assign(__assign({}, options), config.options), { headers: __assign(__assign({}, options.headers), headersToLowerCase(config.headers)) });\n if (config.credentials) {\n options.credentials = config.credentials;\n }\n http = __assign(__assign({}, http), config.http);\n });\n var operationName = operation.operationName, extensions = operation.extensions, variables = operation.variables, query = operation.query;\n var body = { operationName: operationName, variables: variables };\n if (http.includeExtensions)\n body.extensions = extensions;\n if (http.includeQuery)\n body.query = printer(query, print);\n return {\n options: options,\n body: body,\n };\n}\n;\nfunction headersToLowerCase(headers) {\n if (headers) {\n var normalized_1 = Object.create(null);\n Object.keys(Object(headers)).forEach(function (name) {\n normalized_1[name.toLowerCase()] = headers[name];\n });\n return normalized_1;\n }\n return headers;\n}\n//# sourceMappingURL=selectHttpOptionsAndBody.js.map","import { Observable } from \"../../utilities/index.js\";\nexport function fromError(errorValue) {\n return new Observable(function (observer) {\n observer.error(errorValue);\n });\n}\n//# sourceMappingURL=fromError.js.map","import { __assign, __rest } from \"tslib\";\nimport \"../../utilities/globals/index.js\";\nimport { visit } from 'graphql';\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nimport { selectURI } from \"./selectURI.js\";\nimport { parseAndCheckHttpResponse } from \"./parseAndCheckHttpResponse.js\";\nimport { checkFetcher } from \"./checkFetcher.js\";\nimport { selectHttpOptionsAndBodyInternal, defaultPrinter, fallbackHttpConfig } from \"./selectHttpOptionsAndBody.js\";\nimport { createSignalIfSupported } from \"./createSignalIfSupported.js\";\nimport { rewriteURIForGET } from \"./rewriteURIForGET.js\";\nimport { fromError } from \"../utils/index.js\";\nimport { maybe } from \"../../utilities/index.js\";\nvar backupFetch = maybe(function () { return fetch; });\nexport var createHttpLink = function (linkOptions) {\n if (linkOptions === void 0) { linkOptions = {}; }\n var _a = linkOptions.uri, uri = _a === void 0 ? '/graphql' : _a, preferredFetch = linkOptions.fetch, _b = linkOptions.print, print = _b === void 0 ? defaultPrinter : _b, includeExtensions = linkOptions.includeExtensions, useGETForQueries = linkOptions.useGETForQueries, _c = linkOptions.includeUnusedVariables, includeUnusedVariables = _c === void 0 ? false : _c, requestOptions = __rest(linkOptions, [\"uri\", \"fetch\", \"print\", \"includeExtensions\", \"useGETForQueries\", \"includeUnusedVariables\"]);\n if (__DEV__) {\n checkFetcher(preferredFetch || backupFetch);\n }\n var linkConfig = {\n http: { includeExtensions: includeExtensions },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n return new ApolloLink(function (operation) {\n var chosenURI = selectURI(operation, uri);\n var context = operation.getContext();\n var clientAwarenessHeaders = {};\n if (context.clientAwareness) {\n var _a = context.clientAwareness, name_1 = _a.name, version = _a.version;\n if (name_1) {\n clientAwarenessHeaders['apollographql-client-name'] = name_1;\n }\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n var contextHeaders = __assign(__assign({}, clientAwarenessHeaders), context.headers);\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders,\n };\n var _b = selectHttpOptionsAndBodyInternal(operation, print, fallbackHttpConfig, linkConfig, contextConfig), options = _b.options, body = _b.body;\n if (body.variables && !includeUnusedVariables) {\n var unusedNames_1 = new Set(Object.keys(body.variables));\n visit(operation.query, {\n Variable: function (node, _key, parent) {\n if (parent && parent.kind !== 'VariableDefinition') {\n unusedNames_1.delete(node.name.value);\n }\n },\n });\n if (unusedNames_1.size) {\n body.variables = __assign({}, body.variables);\n unusedNames_1.forEach(function (name) {\n delete body.variables[name];\n });\n }\n }\n var controller;\n if (!options.signal) {\n var _c = createSignalIfSupported(), _controller = _c.controller, signal = _c.signal;\n controller = _controller;\n if (controller)\n options.signal = signal;\n }\n var definitionIsMutation = function (d) {\n return d.kind === 'OperationDefinition' && d.operation === 'mutation';\n };\n if (useGETForQueries &&\n !operation.query.definitions.some(definitionIsMutation)) {\n options.method = 'GET';\n }\n if (options.method === 'GET') {\n var _d = rewriteURIForGET(chosenURI, body), newURI = _d.newURI, parseError = _d.parseError;\n if (parseError) {\n return fromError(parseError);\n }\n chosenURI = newURI;\n }\n else {\n try {\n options.body = serializeFetchParameter(body, 'Payload');\n }\n catch (parseError) {\n return fromError(parseError);\n }\n }\n return new Observable(function (observer) {\n var currentFetch = preferredFetch || maybe(function () { return fetch; }) || backupFetch;\n currentFetch(chosenURI, options)\n .then(function (response) {\n operation.setContext({ response: response });\n return response;\n })\n .then(parseAndCheckHttpResponse(operation))\n .then(function (result) {\n observer.next(result);\n observer.complete();\n return result;\n })\n .catch(function (err) {\n if (err.name === 'AbortError')\n return;\n if (err.result && err.result.errors && err.result.data) {\n observer.next(err.result);\n }\n observer.error(err);\n });\n return function () {\n if (controller)\n controller.abort();\n };\n });\n });\n};\n//# sourceMappingURL=createHttpLink.js.map","export var selectURI = function (operation, fallbackURI) {\n var context = operation.getContext();\n var contextURI = context.uri;\n if (contextURI) {\n return contextURI;\n }\n else if (typeof fallbackURI === 'function') {\n return fallbackURI(operation);\n }\n else {\n return fallbackURI || '/graphql';\n }\n};\n//# sourceMappingURL=selectURI.js.map","export var createSignalIfSupported = function () {\n if (typeof AbortController === 'undefined')\n return { controller: false, signal: false };\n var controller = new AbortController();\n var signal = controller.signal;\n return { controller: controller, signal: signal };\n};\n//# sourceMappingURL=createSignalIfSupported.js.map","import { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nexport function rewriteURIForGET(chosenURI, body) {\n var queryParams = [];\n var addQueryParam = function (key, value) {\n queryParams.push(\"\".concat(key, \"=\").concat(encodeURIComponent(value)));\n };\n if ('query' in body) {\n addQueryParam('query', body.query);\n }\n if (body.operationName) {\n addQueryParam('operationName', body.operationName);\n }\n if (body.variables) {\n var serializedVariables = void 0;\n try {\n serializedVariables = serializeFetchParameter(body.variables, 'Variables map');\n }\n catch (parseError) {\n return { parseError: parseError };\n }\n addQueryParam('variables', serializedVariables);\n }\n if (body.extensions) {\n var serializedExtensions = void 0;\n try {\n serializedExtensions = serializeFetchParameter(body.extensions, 'Extensions map');\n }\n catch (parseError) {\n return { parseError: parseError };\n }\n addQueryParam('extensions', serializedExtensions);\n }\n var fragment = '', preFragment = chosenURI;\n var fragmentStart = chosenURI.indexOf('#');\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n var queryParamsPrefix = preFragment.indexOf('?') === -1 ? '?' : '&';\n var newURI = preFragment + queryParamsPrefix + queryParams.join('&') + fragment;\n return { newURI: newURI };\n}\n//# sourceMappingURL=rewriteURIForGET.js.map","import { ApolloLink } from \"./ApolloLink.js\";\nexport var execute = ApolloLink.execute;\n//# sourceMappingURL=execute.js.map","import { __extends } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { createHttpLink } from \"./createHttpLink.js\";\nvar HttpLink = (function (_super) {\n __extends(HttpLink, _super);\n function HttpLink(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this, createHttpLink(options).request) || this;\n _this.options = options;\n return _this;\n }\n return HttpLink;\n}(ApolloLink));\nexport { HttpLink };\n//# sourceMappingURL=HttpLink.js.map","import { Observable } from \"./Observable.js\";\nexport function asyncMap(observable, mapFn, catchFn) {\n return new Observable(function (observer) {\n var next = observer.next, error = observer.error, complete = observer.complete;\n var activeCallbackCount = 0;\n var completed = false;\n var promiseQueue = {\n then: function (callback) {\n return new Promise(function (resolve) { return resolve(callback()); });\n },\n };\n function makeCallback(examiner, delegate) {\n if (examiner) {\n return function (arg) {\n ++activeCallbackCount;\n var both = function () { return examiner(arg); };\n promiseQueue = promiseQueue.then(both, both).then(function (result) {\n --activeCallbackCount;\n next && next.call(observer, result);\n if (completed) {\n handler.complete();\n }\n }, function (error) {\n --activeCallbackCount;\n throw error;\n }).catch(function (caught) {\n error && error.call(observer, caught);\n });\n };\n }\n else {\n return function (arg) { return delegate && delegate.call(observer, arg); };\n }\n }\n var handler = {\n next: makeCallback(mapFn, next),\n error: makeCallback(catchFn, error),\n complete: function () {\n completed = true;\n if (!activeCallbackCount) {\n complete && complete.call(observer);\n }\n },\n };\n var sub = observable.subscribe(handler);\n return function () { return sub.unsubscribe(); };\n });\n}\n//# sourceMappingURL=asyncMap.js.map","export function graphQLResultHasError(result) {\n return (result.errors && result.errors.length > 0) || false;\n}\n//# sourceMappingURL=errorHandling.js.map","var prefixCounts = new Map();\nexport function makeUniqueId(prefix) {\n var count = prefixCounts.get(prefix) || 1;\n prefixCounts.set(prefix, count + 1);\n return \"\".concat(prefix, \":\").concat(count, \":\").concat(Math.random().toString(36).slice(2));\n}\n//# sourceMappingURL=makeUniqueId.js.map","export function iterateObserversSafely(observers, method, argument) {\n var observersWithMethod = [];\n observers.forEach(function (obs) { return obs[method] && observersWithMethod.push(obs); });\n observersWithMethod.forEach(function (obs) { return obs[method](argument); });\n}\n//# sourceMappingURL=iteration.js.map","import { Observable } from \"./Observable.js\";\nimport { canUseSymbol } from \"../common/canUse.js\";\nexport function fixObservableSubclass(subclass) {\n function set(key) {\n Object.defineProperty(subclass, key, { value: Observable });\n }\n if (canUseSymbol && Symbol.species) {\n set(Symbol.species);\n }\n set(\"@@species\");\n return subclass;\n}\n//# sourceMappingURL=subclassing.js.map","import { __extends } from \"tslib\";\nimport { Observable } from \"./Observable.js\";\nimport { iterateObserversSafely } from \"./iteration.js\";\nimport { fixObservableSubclass } from \"./subclassing.js\";\nfunction isPromiseLike(value) {\n return value && typeof value.then === \"function\";\n}\nvar Concast = (function (_super) {\n __extends(Concast, _super);\n function Concast(sources) {\n var _this = _super.call(this, function (observer) {\n _this.addObserver(observer);\n return function () { return _this.removeObserver(observer); };\n }) || this;\n _this.observers = new Set();\n _this.addCount = 0;\n _this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n _this.handlers = {\n next: function (result) {\n if (_this.sub !== null) {\n _this.latest = [\"next\", result];\n iterateObserversSafely(_this.observers, \"next\", result);\n }\n },\n error: function (error) {\n var sub = _this.sub;\n if (sub !== null) {\n if (sub)\n setTimeout(function () { return sub.unsubscribe(); });\n _this.sub = null;\n _this.latest = [\"error\", error];\n _this.reject(error);\n iterateObserversSafely(_this.observers, \"error\", error);\n }\n },\n complete: function () {\n var sub = _this.sub;\n if (sub !== null) {\n var value = _this.sources.shift();\n if (!value) {\n if (sub)\n setTimeout(function () { return sub.unsubscribe(); });\n _this.sub = null;\n if (_this.latest &&\n _this.latest[0] === \"next\") {\n _this.resolve(_this.latest[1]);\n }\n else {\n _this.resolve();\n }\n iterateObserversSafely(_this.observers, \"complete\");\n }\n else if (isPromiseLike(value)) {\n value.then(function (obs) { return _this.sub = obs.subscribe(_this.handlers); });\n }\n else {\n _this.sub = value.subscribe(_this.handlers);\n }\n }\n },\n };\n _this.cancel = function (reason) {\n _this.reject(reason);\n _this.sources = [];\n _this.handlers.complete();\n };\n _this.promise.catch(function (_) { });\n if (typeof sources === \"function\") {\n sources = [new Observable(sources)];\n }\n if (isPromiseLike(sources)) {\n sources.then(function (iterable) { return _this.start(iterable); }, _this.handlers.error);\n }\n else {\n _this.start(sources);\n }\n return _this;\n }\n Concast.prototype.start = function (sources) {\n if (this.sub !== void 0)\n return;\n this.sources = Array.from(sources);\n this.handlers.complete();\n };\n Concast.prototype.deliverLastMessage = function (observer) {\n if (this.latest) {\n var nextOrError = this.latest[0];\n var method = observer[nextOrError];\n if (method) {\n method.call(observer, this.latest[1]);\n }\n if (this.sub === null &&\n nextOrError === \"next\" &&\n observer.complete) {\n observer.complete();\n }\n }\n };\n Concast.prototype.addObserver = function (observer) {\n if (!this.observers.has(observer)) {\n this.deliverLastMessage(observer);\n this.observers.add(observer);\n ++this.addCount;\n }\n };\n Concast.prototype.removeObserver = function (observer, quietly) {\n if (this.observers.delete(observer) &&\n --this.addCount < 1 &&\n !quietly) {\n this.handlers.complete();\n }\n };\n Concast.prototype.cleanup = function (callback) {\n var _this = this;\n var called = false;\n var once = function () {\n if (!called) {\n called = true;\n _this.observers.delete(observer);\n callback();\n }\n };\n var observer = {\n next: once,\n error: once,\n complete: once,\n };\n var count = this.addCount;\n this.addObserver(observer);\n this.addCount = count;\n };\n return Concast;\n}(Observable));\nexport { Concast };\nfixObservableSubclass(Concast);\n//# sourceMappingURL=Concast.js.map","var toString = Object.prototype.toString;\nexport function cloneDeep(value) {\n return cloneDeepHelper(value);\n}\nfunction cloneDeepHelper(val, seen) {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n seen = seen || new Map;\n if (seen.has(val))\n return seen.get(val);\n var copy_1 = val.slice(0);\n seen.set(val, copy_1);\n copy_1.forEach(function (child, i) {\n copy_1[i] = cloneDeepHelper(child, seen);\n });\n return copy_1;\n }\n case \"[object Object]\": {\n seen = seen || new Map;\n if (seen.has(val))\n return seen.get(val);\n var copy_2 = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy_2);\n Object.keys(val).forEach(function (key) {\n copy_2[key] = cloneDeepHelper(val[key], seen);\n });\n return copy_2;\n }\n default:\n return val;\n }\n}\n//# sourceMappingURL=cloneDeep.js.map","import { __assign, __extends } from \"tslib\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { cloneDeep, compact, getOperationDefinition, Observable, iterateObserversSafely, isNonEmptyArray, fixObservableSubclass, getQueryDefinition, } from \"../utilities/index.js\";\nvar assign = Object.assign, hasOwnProperty = Object.hasOwnProperty;\nvar ObservableQuery = (function (_super) {\n __extends(ObservableQuery, _super);\n function ObservableQuery(_a) {\n var queryManager = _a.queryManager, queryInfo = _a.queryInfo, options = _a.options;\n var _this = _super.call(this, function (observer) {\n try {\n var subObserver = observer._subscription._observer;\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n }\n catch (_a) { }\n var first = !_this.observers.size;\n _this.observers.add(observer);\n var last = _this.last;\n if (last && last.error) {\n observer.error && observer.error(last.error);\n }\n else if (last && last.result) {\n observer.next && observer.next(last.result);\n }\n if (first) {\n _this.reobserve().catch(function () { });\n }\n return function () {\n if (_this.observers.delete(observer) && !_this.observers.size) {\n _this.tearDownQuery();\n }\n };\n }) || this;\n _this.observers = new Set();\n _this.subscriptions = new Set();\n _this.queryInfo = queryInfo;\n _this.queryManager = queryManager;\n _this.isTornDown = false;\n var _b = queryManager.defaultOptions.watchQuery, _c = _b === void 0 ? {} : _b, _d = _c.fetchPolicy, defaultFetchPolicy = _d === void 0 ? \"cache-first\" : _d;\n var _e = options.fetchPolicy, fetchPolicy = _e === void 0 ? defaultFetchPolicy : _e, _f = options.initialFetchPolicy, initialFetchPolicy = _f === void 0 ? (fetchPolicy === \"standby\" ? defaultFetchPolicy : fetchPolicy) : _f;\n _this.options = __assign(__assign({}, options), { initialFetchPolicy: initialFetchPolicy, fetchPolicy: fetchPolicy });\n _this.queryId = queryInfo.queryId || queryManager.generateQueryId();\n var opDef = getOperationDefinition(_this.query);\n _this.queryName = opDef && opDef.name && opDef.name.value;\n return _this;\n }\n Object.defineProperty(ObservableQuery.prototype, \"query\", {\n get: function () {\n return this.queryManager.transform(this.options.query).document;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ObservableQuery.prototype, \"variables\", {\n get: function () {\n return this.options.variables;\n },\n enumerable: false,\n configurable: true\n });\n ObservableQuery.prototype.result = function () {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var observer = {\n next: function (result) {\n resolve(result);\n _this.observers.delete(observer);\n if (!_this.observers.size) {\n _this.queryManager.removeQuery(_this.queryId);\n }\n setTimeout(function () {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject,\n };\n var subscription = _this.subscribe(observer);\n });\n };\n ObservableQuery.prototype.getCurrentResult = function (saveAsLastResult) {\n if (saveAsLastResult === void 0) { saveAsLastResult = true; }\n var lastResult = this.getLastResult(true);\n var networkStatus = this.queryInfo.networkStatus ||\n (lastResult && lastResult.networkStatus) ||\n NetworkStatus.ready;\n var result = __assign(__assign({}, lastResult), { loading: isNetworkRequestInFlight(networkStatus), networkStatus: networkStatus });\n var _a = this.options.fetchPolicy, fetchPolicy = _a === void 0 ? \"cache-first\" : _a;\n if (fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache' ||\n fetchPolicy === 'standby' ||\n this.queryManager.transform(this.options.query).hasForcedResolvers) {\n }\n else {\n var diff = this.queryInfo.getDiff();\n if (diff.complete || this.options.returnPartialData) {\n result.data = diff.result;\n }\n if (equal(result.data, {})) {\n result.data = void 0;\n }\n if (diff.complete) {\n delete result.partial;\n if (diff.complete &&\n result.networkStatus === NetworkStatus.loading &&\n (fetchPolicy === 'cache-first' ||\n fetchPolicy === 'cache-only')) {\n result.networkStatus = NetworkStatus.ready;\n result.loading = false;\n }\n }\n else {\n result.partial = true;\n }\n if (__DEV__ &&\n !diff.complete &&\n !this.options.partialRefetch &&\n !result.loading &&\n !result.data &&\n !result.error) {\n logMissingFieldErrors(diff.missing);\n }\n }\n if (saveAsLastResult) {\n this.updateLastResult(result);\n }\n return result;\n };\n ObservableQuery.prototype.isDifferentFromLastResult = function (newResult) {\n return !this.last || !equal(this.last.result, newResult);\n };\n ObservableQuery.prototype.getLast = function (key, variablesMustMatch) {\n var last = this.last;\n if (last &&\n last[key] &&\n (!variablesMustMatch || equal(last.variables, this.variables))) {\n return last[key];\n }\n };\n ObservableQuery.prototype.getLastResult = function (variablesMustMatch) {\n return this.getLast(\"result\", variablesMustMatch);\n };\n ObservableQuery.prototype.getLastError = function (variablesMustMatch) {\n return this.getLast(\"error\", variablesMustMatch);\n };\n ObservableQuery.prototype.resetLastResults = function () {\n delete this.last;\n this.isTornDown = false;\n };\n ObservableQuery.prototype.resetQueryStoreErrors = function () {\n this.queryManager.resetErrors(this.queryId);\n };\n ObservableQuery.prototype.refetch = function (variables) {\n var _a;\n var reobserveOptions = {\n pollInterval: 0,\n };\n var fetchPolicy = this.options.fetchPolicy;\n if (fetchPolicy === 'cache-and-network') {\n reobserveOptions.fetchPolicy = fetchPolicy;\n }\n else if (fetchPolicy === 'no-cache') {\n reobserveOptions.fetchPolicy = 'no-cache';\n }\n else {\n reobserveOptions.fetchPolicy = 'network-only';\n }\n if (__DEV__ && variables && hasOwnProperty.call(variables, \"variables\")) {\n var queryDef = getQueryDefinition(this.query);\n var vars = queryDef.variableDefinitions;\n if (!vars || !vars.some(function (v) { return v.variable.name.value === \"variables\"; })) {\n __DEV__ && invariant.warn(\"Called refetch(\".concat(JSON.stringify(variables), \") for query \").concat(((_a = queryDef.name) === null || _a === void 0 ? void 0 : _a.value) || JSON.stringify(queryDef), \", which does not declare a $variables variable.\\nDid you mean to call refetch(variables) instead of refetch({ variables })?\"));\n }\n }\n if (variables && !equal(this.options.variables, variables)) {\n reobserveOptions.variables = this.options.variables = __assign(__assign({}, this.options.variables), variables);\n }\n this.queryInfo.resetLastWrite();\n return this.reobserve(reobserveOptions, NetworkStatus.refetch);\n };\n ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {\n var _this = this;\n var combinedOptions = __assign(__assign({}, (fetchMoreOptions.query ? fetchMoreOptions : __assign(__assign(__assign(__assign({}, this.options), { query: this.query }), fetchMoreOptions), { variables: __assign(__assign({}, this.options.variables), fetchMoreOptions.variables) }))), { fetchPolicy: \"no-cache\" });\n var qid = this.queryManager.generateQueryId();\n var queryInfo = this.queryInfo;\n var originalNetworkStatus = queryInfo.networkStatus;\n queryInfo.networkStatus = NetworkStatus.fetchMore;\n if (combinedOptions.notifyOnNetworkStatusChange) {\n this.observe();\n }\n var updatedQuerySet = new Set();\n return this.queryManager.fetchQuery(qid, combinedOptions, NetworkStatus.fetchMore).then(function (fetchMoreResult) {\n _this.queryManager.removeQuery(qid);\n if (queryInfo.networkStatus === NetworkStatus.fetchMore) {\n queryInfo.networkStatus = originalNetworkStatus;\n }\n _this.queryManager.cache.batch({\n update: function (cache) {\n var updateQuery = fetchMoreOptions.updateQuery;\n if (updateQuery) {\n cache.updateQuery({\n query: _this.query,\n variables: _this.variables,\n returnPartialData: true,\n optimistic: false,\n }, function (previous) { return updateQuery(previous, {\n fetchMoreResult: fetchMoreResult.data,\n variables: combinedOptions.variables,\n }); });\n }\n else {\n cache.writeQuery({\n query: combinedOptions.query,\n variables: combinedOptions.variables,\n data: fetchMoreResult.data,\n });\n }\n },\n onWatchUpdated: function (watch) {\n updatedQuerySet.add(watch.query);\n },\n });\n return fetchMoreResult;\n }).finally(function () {\n if (!updatedQuerySet.has(_this.query)) {\n reobserveCacheFirst(_this);\n }\n });\n };\n ObservableQuery.prototype.subscribeToMore = function (options) {\n var _this = this;\n var subscription = this.queryManager\n .startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n context: options.context,\n })\n .subscribe({\n next: function (subscriptionData) {\n var updateQuery = options.updateQuery;\n if (updateQuery) {\n _this.updateQuery(function (previous, _a) {\n var variables = _a.variables;\n return updateQuery(previous, {\n subscriptionData: subscriptionData,\n variables: variables,\n });\n });\n }\n },\n error: function (err) {\n if (options.onError) {\n options.onError(err);\n return;\n }\n __DEV__ && invariant.error('Unhandled GraphQL subscription error', err);\n },\n });\n this.subscriptions.add(subscription);\n return function () {\n if (_this.subscriptions.delete(subscription)) {\n subscription.unsubscribe();\n }\n };\n };\n ObservableQuery.prototype.setOptions = function (newOptions) {\n return this.reobserve(newOptions);\n };\n ObservableQuery.prototype.setVariables = function (variables) {\n if (equal(this.variables, variables)) {\n return this.observers.size\n ? this.result()\n : Promise.resolve();\n }\n this.options.variables = variables;\n if (!this.observers.size) {\n return Promise.resolve();\n }\n return this.reobserve({\n fetchPolicy: this.options.initialFetchPolicy,\n variables: variables,\n }, NetworkStatus.setVariables);\n };\n ObservableQuery.prototype.updateQuery = function (mapFn) {\n var queryManager = this.queryManager;\n var result = queryManager.cache.diff({\n query: this.options.query,\n variables: this.variables,\n returnPartialData: true,\n optimistic: false,\n }).result;\n var newResult = mapFn(result, {\n variables: this.variables,\n });\n if (newResult) {\n queryManager.cache.writeQuery({\n query: this.options.query,\n data: newResult,\n variables: this.variables,\n });\n queryManager.broadcastQueries();\n }\n };\n ObservableQuery.prototype.startPolling = function (pollInterval) {\n this.options.pollInterval = pollInterval;\n this.updatePolling();\n };\n ObservableQuery.prototype.stopPolling = function () {\n this.options.pollInterval = 0;\n this.updatePolling();\n };\n ObservableQuery.prototype.applyNextFetchPolicy = function (reason, options) {\n if (options.nextFetchPolicy) {\n var _a = options.fetchPolicy, fetchPolicy = _a === void 0 ? \"cache-first\" : _a, _b = options.initialFetchPolicy, initialFetchPolicy = _b === void 0 ? fetchPolicy : _b;\n if (fetchPolicy === \"standby\") {\n }\n else if (typeof options.nextFetchPolicy === \"function\") {\n options.fetchPolicy = options.nextFetchPolicy(fetchPolicy, {\n reason: reason,\n options: options,\n observable: this,\n initialFetchPolicy: initialFetchPolicy,\n });\n }\n else if (reason === \"variables-changed\") {\n options.fetchPolicy = initialFetchPolicy;\n }\n else {\n options.fetchPolicy = options.nextFetchPolicy;\n }\n }\n return options.fetchPolicy;\n };\n ObservableQuery.prototype.fetch = function (options, newNetworkStatus) {\n this.queryManager.setObservableQuery(this);\n return this.queryManager.fetchQueryObservable(this.queryId, options, newNetworkStatus);\n };\n ObservableQuery.prototype.updatePolling = function () {\n var _this = this;\n if (this.queryManager.ssrMode) {\n return;\n }\n var _a = this, pollingInfo = _a.pollingInfo, pollInterval = _a.options.pollInterval;\n if (!pollInterval) {\n if (pollingInfo) {\n clearTimeout(pollingInfo.timeout);\n delete this.pollingInfo;\n }\n return;\n }\n if (pollingInfo &&\n pollingInfo.interval === pollInterval) {\n return;\n }\n __DEV__ ? invariant(pollInterval, 'Attempted to start a polling query without a polling interval.') : invariant(pollInterval, 10);\n var info = pollingInfo || (this.pollingInfo = {});\n info.interval = pollInterval;\n var maybeFetch = function () {\n if (_this.pollingInfo) {\n if (!isNetworkRequestInFlight(_this.queryInfo.networkStatus)) {\n _this.reobserve({\n fetchPolicy: \"network-only\",\n }, NetworkStatus.poll).then(poll, poll);\n }\n else {\n poll();\n }\n }\n ;\n };\n var poll = function () {\n var info = _this.pollingInfo;\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch, info.interval);\n }\n };\n poll();\n };\n ObservableQuery.prototype.updateLastResult = function (newResult, variables) {\n if (variables === void 0) { variables = this.variables; }\n this.last = __assign(__assign({}, this.last), { result: this.queryManager.assumeImmutableResults\n ? newResult\n : cloneDeep(newResult), variables: variables });\n if (!isNonEmptyArray(newResult.errors)) {\n delete this.last.error;\n }\n return this.last;\n };\n ObservableQuery.prototype.reobserve = function (newOptions, newNetworkStatus) {\n var _this = this;\n this.isTornDown = false;\n var useDisposableConcast = newNetworkStatus === NetworkStatus.refetch ||\n newNetworkStatus === NetworkStatus.fetchMore ||\n newNetworkStatus === NetworkStatus.poll;\n var oldVariables = this.options.variables;\n var oldFetchPolicy = this.options.fetchPolicy;\n var mergedOptions = compact(this.options, newOptions || {});\n var options = useDisposableConcast\n ? mergedOptions\n : assign(this.options, mergedOptions);\n if (!useDisposableConcast) {\n this.updatePolling();\n if (newOptions &&\n newOptions.variables &&\n !equal(newOptions.variables, oldVariables) &&\n options.fetchPolicy !== \"standby\" &&\n options.fetchPolicy === oldFetchPolicy) {\n this.applyNextFetchPolicy(\"variables-changed\", options);\n if (newNetworkStatus === void 0) {\n newNetworkStatus = NetworkStatus.setVariables;\n }\n }\n }\n var variables = options.variables && __assign({}, options.variables);\n var concast = this.fetch(options, newNetworkStatus);\n var observer = {\n next: function (result) {\n _this.reportResult(result, variables);\n },\n error: function (error) {\n _this.reportError(error, variables);\n },\n };\n if (!useDisposableConcast) {\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n }\n this.concast = concast;\n this.observer = observer;\n }\n concast.addObserver(observer);\n return concast.promise;\n };\n ObservableQuery.prototype.observe = function () {\n this.reportResult(this.getCurrentResult(false), this.variables);\n };\n ObservableQuery.prototype.reportResult = function (result, variables) {\n var lastError = this.getLastError();\n if (lastError || this.isDifferentFromLastResult(result)) {\n if (lastError || !result.partial || this.options.returnPartialData) {\n this.updateLastResult(result, variables);\n }\n iterateObserversSafely(this.observers, 'next', result);\n }\n };\n ObservableQuery.prototype.reportError = function (error, variables) {\n var errorResult = __assign(__assign({}, this.getLastResult()), { error: error, errors: error.graphQLErrors, networkStatus: NetworkStatus.error, loading: false });\n this.updateLastResult(errorResult, variables);\n iterateObserversSafely(this.observers, 'error', this.last.error = error);\n };\n ObservableQuery.prototype.hasObservers = function () {\n return this.observers.size > 0;\n };\n ObservableQuery.prototype.tearDownQuery = function () {\n if (this.isTornDown)\n return;\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n delete this.concast;\n delete this.observer;\n }\n this.stopPolling();\n this.subscriptions.forEach(function (sub) { return sub.unsubscribe(); });\n this.subscriptions.clear();\n this.queryManager.stopQuery(this.queryId);\n this.observers.clear();\n this.isTornDown = true;\n };\n return ObservableQuery;\n}(Observable));\nexport { ObservableQuery };\nfixObservableSubclass(ObservableQuery);\nexport function reobserveCacheFirst(obsQuery) {\n var _a = obsQuery.options, fetchPolicy = _a.fetchPolicy, nextFetchPolicy = _a.nextFetchPolicy;\n if (fetchPolicy === \"cache-and-network\" ||\n fetchPolicy === \"network-only\") {\n return obsQuery.reobserve({\n fetchPolicy: \"cache-first\",\n nextFetchPolicy: function () {\n this.nextFetchPolicy = nextFetchPolicy;\n if (typeof nextFetchPolicy === \"function\") {\n return nextFetchPolicy.apply(this, arguments);\n }\n return fetchPolicy;\n },\n });\n }\n return obsQuery.reobserve();\n}\nfunction defaultSubscriptionObserverErrorCallback(error) {\n __DEV__ && invariant.error('Unhandled error', error.message, error.stack);\n}\nexport function logMissingFieldErrors(missing) {\n if (__DEV__ && missing) {\n __DEV__ && invariant.debug(\"Missing cache result fields: \".concat(JSON.stringify(missing)), missing);\n }\n}\n//# sourceMappingURL=ObservableQuery.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport { visit, BREAK, } from 'graphql';\nimport { argumentsObjectFromField, buildQueryFromSelectionSet, createFragmentMap, getFragmentDefinitions, getMainDefinition, hasDirectives, isField, isInlineFragment, mergeDeep, mergeDeepArray, removeClientSetsFromDocument, resultKeyNameFromField, shouldInclude, } from \"../utilities/index.js\";\nimport { cacheSlot } from \"../cache/index.js\";\nvar LocalState = (function () {\n function LocalState(_a) {\n var cache = _a.cache, client = _a.client, resolvers = _a.resolvers, fragmentMatcher = _a.fragmentMatcher;\n this.cache = cache;\n if (client) {\n this.client = client;\n }\n if (resolvers) {\n this.addResolvers(resolvers);\n }\n if (fragmentMatcher) {\n this.setFragmentMatcher(fragmentMatcher);\n }\n }\n LocalState.prototype.addResolvers = function (resolvers) {\n var _this = this;\n this.resolvers = this.resolvers || {};\n if (Array.isArray(resolvers)) {\n resolvers.forEach(function (resolverGroup) {\n _this.resolvers = mergeDeep(_this.resolvers, resolverGroup);\n });\n }\n else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n };\n LocalState.prototype.setResolvers = function (resolvers) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n };\n LocalState.prototype.getResolvers = function () {\n return this.resolvers || {};\n };\n LocalState.prototype.runResolvers = function (_a) {\n var document = _a.document, remoteResult = _a.remoteResult, context = _a.context, variables = _a.variables, _b = _a.onlyRunForcedResolvers, onlyRunForcedResolvers = _b === void 0 ? false : _b;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_c) {\n if (document) {\n return [2, this.resolveDocument(document, remoteResult.data, context, variables, this.fragmentMatcher, onlyRunForcedResolvers).then(function (localResult) { return (__assign(__assign({}, remoteResult), { data: localResult.result })); })];\n }\n return [2, remoteResult];\n });\n });\n };\n LocalState.prototype.setFragmentMatcher = function (fragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n };\n LocalState.prototype.getFragmentMatcher = function () {\n return this.fragmentMatcher;\n };\n LocalState.prototype.clientQuery = function (document) {\n if (hasDirectives(['client'], document)) {\n if (this.resolvers) {\n return document;\n }\n }\n return null;\n };\n LocalState.prototype.serverQuery = function (document) {\n return removeClientSetsFromDocument(document);\n };\n LocalState.prototype.prepareContext = function (context) {\n var cache = this.cache;\n return __assign(__assign({}, context), { cache: cache, getCacheKey: function (obj) {\n return cache.identify(obj);\n } });\n };\n LocalState.prototype.addExportedVariables = function (document, variables, context) {\n if (variables === void 0) { variables = {}; }\n if (context === void 0) { context = {}; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (document) {\n return [2, this.resolveDocument(document, this.buildRootValueFromCache(document, variables) || {}, this.prepareContext(context), variables).then(function (data) { return (__assign(__assign({}, variables), data.exportedVariables)); })];\n }\n return [2, __assign({}, variables)];\n });\n });\n };\n LocalState.prototype.shouldForceResolvers = function (document) {\n var forceResolvers = false;\n visit(document, {\n Directive: {\n enter: function (node) {\n if (node.name.value === 'client' && node.arguments) {\n forceResolvers = node.arguments.some(function (arg) {\n return arg.name.value === 'always' &&\n arg.value.kind === 'BooleanValue' &&\n arg.value.value === true;\n });\n if (forceResolvers) {\n return BREAK;\n }\n }\n },\n },\n });\n return forceResolvers;\n };\n LocalState.prototype.buildRootValueFromCache = function (document, variables) {\n return this.cache.diff({\n query: buildQueryFromSelectionSet(document),\n variables: variables,\n returnPartialData: true,\n optimistic: false,\n }).result;\n };\n LocalState.prototype.resolveDocument = function (document, rootValue, context, variables, fragmentMatcher, onlyRunForcedResolvers) {\n if (context === void 0) { context = {}; }\n if (variables === void 0) { variables = {}; }\n if (fragmentMatcher === void 0) { fragmentMatcher = function () { return true; }; }\n if (onlyRunForcedResolvers === void 0) { onlyRunForcedResolvers = false; }\n return __awaiter(this, void 0, void 0, function () {\n var mainDefinition, fragments, fragmentMap, definitionOperation, defaultOperationType, _a, cache, client, execContext;\n return __generator(this, function (_b) {\n mainDefinition = getMainDefinition(document);\n fragments = getFragmentDefinitions(document);\n fragmentMap = createFragmentMap(fragments);\n definitionOperation = mainDefinition\n .operation;\n defaultOperationType = definitionOperation\n ? definitionOperation.charAt(0).toUpperCase() +\n definitionOperation.slice(1)\n : 'Query';\n _a = this, cache = _a.cache, client = _a.client;\n execContext = {\n fragmentMap: fragmentMap,\n context: __assign(__assign({}, context), { cache: cache, client: client }),\n variables: variables,\n fragmentMatcher: fragmentMatcher,\n defaultOperationType: defaultOperationType,\n exportedVariables: {},\n onlyRunForcedResolvers: onlyRunForcedResolvers,\n };\n return [2, this.resolveSelectionSet(mainDefinition.selectionSet, rootValue, execContext).then(function (result) { return ({\n result: result,\n exportedVariables: execContext.exportedVariables,\n }); })];\n });\n });\n };\n LocalState.prototype.resolveSelectionSet = function (selectionSet, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var fragmentMap, context, variables, resultsToMerge, execute;\n var _this = this;\n return __generator(this, function (_a) {\n fragmentMap = execContext.fragmentMap, context = execContext.context, variables = execContext.variables;\n resultsToMerge = [rootValue];\n execute = function (selection) { return __awaiter(_this, void 0, void 0, function () {\n var fragment, typeCondition;\n return __generator(this, function (_a) {\n if (!shouldInclude(selection, variables)) {\n return [2];\n }\n if (isField(selection)) {\n return [2, this.resolveField(selection, rootValue, execContext).then(function (fieldResult) {\n var _a;\n if (typeof fieldResult !== 'undefined') {\n resultsToMerge.push((_a = {},\n _a[resultKeyNameFromField(selection)] = fieldResult,\n _a));\n }\n })];\n }\n if (isInlineFragment(selection)) {\n fragment = selection;\n }\n else {\n fragment = fragmentMap[selection.name.value];\n __DEV__ ? invariant(fragment, \"No fragment named \".concat(selection.name.value)) : invariant(fragment, 9);\n }\n if (fragment && fragment.typeCondition) {\n typeCondition = fragment.typeCondition.name.value;\n if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n return [2, this.resolveSelectionSet(fragment.selectionSet, rootValue, execContext).then(function (fragmentResult) {\n resultsToMerge.push(fragmentResult);\n })];\n }\n }\n return [2];\n });\n }); };\n return [2, Promise.all(selectionSet.selections.map(execute)).then(function () {\n return mergeDeepArray(resultsToMerge);\n })];\n });\n });\n };\n LocalState.prototype.resolveField = function (field, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var variables, fieldName, aliasedFieldName, aliasUsed, defaultResult, resultPromise, resolverType, resolverMap, resolve;\n var _this = this;\n return __generator(this, function (_a) {\n variables = execContext.variables;\n fieldName = field.name.value;\n aliasedFieldName = resultKeyNameFromField(field);\n aliasUsed = fieldName !== aliasedFieldName;\n defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n resultPromise = Promise.resolve(defaultResult);\n if (!execContext.onlyRunForcedResolvers ||\n this.shouldForceResolvers(field)) {\n resolverType = rootValue.__typename || execContext.defaultOperationType;\n resolverMap = this.resolvers && this.resolvers[resolverType];\n if (resolverMap) {\n resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n if (resolve) {\n resultPromise = Promise.resolve(cacheSlot.withValue(this.cache, resolve, [\n rootValue,\n argumentsObjectFromField(field, variables),\n execContext.context,\n { field: field, fragmentMap: execContext.fragmentMap },\n ]));\n }\n }\n }\n return [2, resultPromise.then(function (result) {\n if (result === void 0) { result = defaultResult; }\n if (field.directives) {\n field.directives.forEach(function (directive) {\n if (directive.name.value === 'export' && directive.arguments) {\n directive.arguments.forEach(function (arg) {\n if (arg.name.value === 'as' && arg.value.kind === 'StringValue') {\n execContext.exportedVariables[arg.value.value] = result;\n }\n });\n }\n });\n }\n if (!field.selectionSet) {\n return result;\n }\n if (result == null) {\n return result;\n }\n if (Array.isArray(result)) {\n return _this.resolveSubSelectedArray(field, result, execContext);\n }\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, result, execContext);\n }\n })];\n });\n });\n };\n LocalState.prototype.resolveSubSelectedArray = function (field, result, execContext) {\n var _this = this;\n return Promise.all(result.map(function (item) {\n if (item === null) {\n return null;\n }\n if (Array.isArray(item)) {\n return _this.resolveSubSelectedArray(field, item, execContext);\n }\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, item, execContext);\n }\n }));\n };\n return LocalState;\n}());\nexport { LocalState };\n//# sourceMappingURL=LocalState.js.map","import { __assign } from \"tslib\";\nimport { equal } from \"@wry/equality\";\nimport { reobserveCacheFirst } from \"./ObservableQuery.js\";\nimport { isNonEmptyArray, graphQLResultHasError, canUseWeakMap, } from \"../utilities/index.js\";\nimport { NetworkStatus, isNetworkRequestInFlight, } from \"./networkStatus.js\";\n;\nvar destructiveMethodCounts = new (canUseWeakMap ? WeakMap : Map)();\nfunction wrapDestructiveCacheMethod(cache, methodName) {\n var original = cache[methodName];\n if (typeof original === \"function\") {\n cache[methodName] = function () {\n destructiveMethodCounts.set(cache, (destructiveMethodCounts.get(cache) + 1) % 1e15);\n return original.apply(this, arguments);\n };\n }\n}\nfunction cancelNotifyTimeout(info) {\n if (info[\"notifyTimeout\"]) {\n clearTimeout(info[\"notifyTimeout\"]);\n info[\"notifyTimeout\"] = void 0;\n }\n}\nvar QueryInfo = (function () {\n function QueryInfo(queryManager, queryId) {\n if (queryId === void 0) { queryId = queryManager.generateQueryId(); }\n this.queryId = queryId;\n this.listeners = new Set();\n this.document = null;\n this.lastRequestId = 1;\n this.subscriptions = new Set();\n this.stopped = false;\n this.dirty = false;\n this.observableQuery = null;\n var cache = this.cache = queryManager.cache;\n if (!destructiveMethodCounts.has(cache)) {\n destructiveMethodCounts.set(cache, 0);\n wrapDestructiveCacheMethod(cache, \"evict\");\n wrapDestructiveCacheMethod(cache, \"modify\");\n wrapDestructiveCacheMethod(cache, \"reset\");\n }\n }\n QueryInfo.prototype.init = function (query) {\n var networkStatus = query.networkStatus || NetworkStatus.loading;\n if (this.variables &&\n this.networkStatus !== NetworkStatus.loading &&\n !equal(this.variables, query.variables)) {\n networkStatus = NetworkStatus.setVariables;\n }\n if (!equal(query.variables, this.variables)) {\n this.lastDiff = void 0;\n }\n Object.assign(this, {\n document: query.document,\n variables: query.variables,\n networkError: null,\n graphQLErrors: this.graphQLErrors || [],\n networkStatus: networkStatus,\n });\n if (query.observableQuery) {\n this.setObservableQuery(query.observableQuery);\n }\n if (query.lastRequestId) {\n this.lastRequestId = query.lastRequestId;\n }\n return this;\n };\n QueryInfo.prototype.reset = function () {\n cancelNotifyTimeout(this);\n this.lastDiff = void 0;\n this.dirty = false;\n };\n QueryInfo.prototype.getDiff = function (variables) {\n if (variables === void 0) { variables = this.variables; }\n var options = this.getDiffOptions(variables);\n if (this.lastDiff && equal(options, this.lastDiff.options)) {\n return this.lastDiff.diff;\n }\n this.updateWatch(this.variables = variables);\n var oq = this.observableQuery;\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return { complete: false };\n }\n var diff = this.cache.diff(options);\n this.updateLastDiff(diff, options);\n return diff;\n };\n QueryInfo.prototype.updateLastDiff = function (diff, options) {\n this.lastDiff = diff ? {\n diff: diff,\n options: options || this.getDiffOptions(),\n } : void 0;\n };\n QueryInfo.prototype.getDiffOptions = function (variables) {\n var _a;\n if (variables === void 0) { variables = this.variables; }\n return {\n query: this.document,\n variables: variables,\n returnPartialData: true,\n optimistic: true,\n canonizeResults: (_a = this.observableQuery) === null || _a === void 0 ? void 0 : _a.options.canonizeResults,\n };\n };\n QueryInfo.prototype.setDiff = function (diff) {\n var _this = this;\n var oldDiff = this.lastDiff && this.lastDiff.diff;\n this.updateLastDiff(diff);\n if (!this.dirty &&\n !equal(oldDiff && oldDiff.result, diff && diff.result)) {\n this.dirty = true;\n if (!this.notifyTimeout) {\n this.notifyTimeout = setTimeout(function () { return _this.notify(); }, 0);\n }\n }\n };\n QueryInfo.prototype.setObservableQuery = function (oq) {\n var _this = this;\n if (oq === this.observableQuery)\n return;\n if (this.oqListener) {\n this.listeners.delete(this.oqListener);\n }\n this.observableQuery = oq;\n if (oq) {\n oq[\"queryInfo\"] = this;\n this.listeners.add(this.oqListener = function () {\n var diff = _this.getDiff();\n if (diff.fromOptimisticTransaction) {\n oq[\"observe\"]();\n }\n else {\n reobserveCacheFirst(oq);\n }\n });\n }\n else {\n delete this.oqListener;\n }\n };\n QueryInfo.prototype.notify = function () {\n var _this = this;\n cancelNotifyTimeout(this);\n if (this.shouldNotify()) {\n this.listeners.forEach(function (listener) { return listener(_this); });\n }\n this.dirty = false;\n };\n QueryInfo.prototype.shouldNotify = function () {\n if (!this.dirty || !this.listeners.size) {\n return false;\n }\n if (isNetworkRequestInFlight(this.networkStatus) &&\n this.observableQuery) {\n var fetchPolicy = this.observableQuery.options.fetchPolicy;\n if (fetchPolicy !== \"cache-only\" &&\n fetchPolicy !== \"cache-and-network\") {\n return false;\n }\n }\n return true;\n };\n QueryInfo.prototype.stop = function () {\n if (!this.stopped) {\n this.stopped = true;\n this.reset();\n this.cancel();\n this.cancel = QueryInfo.prototype.cancel;\n this.subscriptions.forEach(function (sub) { return sub.unsubscribe(); });\n var oq = this.observableQuery;\n if (oq)\n oq.stopPolling();\n }\n };\n QueryInfo.prototype.cancel = function () { };\n QueryInfo.prototype.updateWatch = function (variables) {\n var _this = this;\n if (variables === void 0) { variables = this.variables; }\n var oq = this.observableQuery;\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return;\n }\n var watchOptions = __assign(__assign({}, this.getDiffOptions(variables)), { watcher: this, callback: function (diff) { return _this.setDiff(diff); } });\n if (!this.lastWatch ||\n !equal(watchOptions, this.lastWatch)) {\n this.cancel();\n this.cancel = this.cache.watch(this.lastWatch = watchOptions);\n }\n };\n QueryInfo.prototype.resetLastWrite = function () {\n this.lastWrite = void 0;\n };\n QueryInfo.prototype.shouldWrite = function (result, variables) {\n var lastWrite = this.lastWrite;\n return !(lastWrite &&\n lastWrite.dmCount === destructiveMethodCounts.get(this.cache) &&\n equal(variables, lastWrite.variables) &&\n equal(result.data, lastWrite.result.data));\n };\n QueryInfo.prototype.markResult = function (result, options, cacheWriteBehavior) {\n var _this = this;\n this.graphQLErrors = isNonEmptyArray(result.errors) ? result.errors : [];\n this.reset();\n if (options.fetchPolicy === 'no-cache') {\n this.updateLastDiff({ result: result.data, complete: true }, this.getDiffOptions(options.variables));\n }\n else if (cacheWriteBehavior !== 0) {\n if (shouldWriteResult(result, options.errorPolicy)) {\n this.cache.performTransaction(function (cache) {\n if (_this.shouldWrite(result, options.variables)) {\n cache.writeQuery({\n query: _this.document,\n data: result.data,\n variables: options.variables,\n overwrite: cacheWriteBehavior === 1,\n });\n _this.lastWrite = {\n result: result,\n variables: options.variables,\n dmCount: destructiveMethodCounts.get(_this.cache),\n };\n }\n else {\n if (_this.lastDiff &&\n _this.lastDiff.diff.complete) {\n result.data = _this.lastDiff.diff.result;\n return;\n }\n }\n var diffOptions = _this.getDiffOptions(options.variables);\n var diff = cache.diff(diffOptions);\n if (!_this.stopped) {\n _this.updateWatch(options.variables);\n }\n _this.updateLastDiff(diff, diffOptions);\n if (diff.complete) {\n result.data = diff.result;\n }\n });\n }\n else {\n this.lastWrite = void 0;\n }\n }\n };\n QueryInfo.prototype.markReady = function () {\n this.networkError = null;\n return this.networkStatus = NetworkStatus.ready;\n };\n QueryInfo.prototype.markError = function (error) {\n this.networkStatus = NetworkStatus.error;\n this.lastWrite = void 0;\n this.reset();\n if (error.graphQLErrors) {\n this.graphQLErrors = error.graphQLErrors;\n }\n if (error.networkError) {\n this.networkError = error.networkError;\n }\n return error;\n };\n return QueryInfo;\n}());\nexport { QueryInfo };\nexport function shouldWriteResult(result, errorPolicy) {\n if (errorPolicy === void 0) { errorPolicy = \"none\"; }\n var ignoreErrors = errorPolicy === \"ignore\" ||\n errorPolicy === \"all\";\n var writeWithErrors = !graphQLResultHasError(result);\n if (!writeWithErrors && ignoreErrors && result.data) {\n writeWithErrors = true;\n }\n return writeWithErrors;\n}\n//# sourceMappingURL=QueryInfo.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { invariant, InvariantError } from \"../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { execute } from \"../link/core/index.js\";\nimport { canonicalStringify } from \"../cache/index.js\";\nimport { getDefaultValues, getOperationDefinition, getOperationName, hasClientExports, graphQLResultHasError, removeConnectionDirectiveFromDocument, canUseWeakMap, Observable, asyncMap, isNonEmptyArray, Concast, makeUniqueId, isDocumentNode, isNonNullObject, } from \"../utilities/index.js\";\nimport { ApolloError, isApolloError } from \"../errors/index.js\";\nimport { ObservableQuery, logMissingFieldErrors } from \"./ObservableQuery.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { LocalState } from \"./LocalState.js\";\nimport { QueryInfo, shouldWriteResult, } from \"./QueryInfo.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar QueryManager = (function () {\n function QueryManager(_a) {\n var cache = _a.cache, link = _a.link, defaultOptions = _a.defaultOptions, _b = _a.queryDeduplication, queryDeduplication = _b === void 0 ? false : _b, onBroadcast = _a.onBroadcast, _c = _a.ssrMode, ssrMode = _c === void 0 ? false : _c, _d = _a.clientAwareness, clientAwareness = _d === void 0 ? {} : _d, localState = _a.localState, assumeImmutableResults = _a.assumeImmutableResults;\n this.clientAwareness = {};\n this.queries = new Map();\n this.fetchCancelFns = new Map();\n this.transformCache = new (canUseWeakMap ? WeakMap : Map)();\n this.queryIdCounter = 1;\n this.requestIdCounter = 1;\n this.mutationIdCounter = 1;\n this.inFlightLinkObservables = new Map();\n this.cache = cache;\n this.link = link;\n this.defaultOptions = defaultOptions || Object.create(null);\n this.queryDeduplication = queryDeduplication;\n this.clientAwareness = clientAwareness;\n this.localState = localState || new LocalState({ cache: cache });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n if ((this.onBroadcast = onBroadcast)) {\n this.mutationStore = Object.create(null);\n }\n }\n QueryManager.prototype.stop = function () {\n var _this = this;\n this.queries.forEach(function (_info, queryId) {\n _this.stopQueryNoBroadcast(queryId);\n });\n this.cancelPendingFetches(__DEV__ ? new InvariantError('QueryManager stopped while query was in flight') : new InvariantError(11));\n };\n QueryManager.prototype.cancelPendingFetches = function (error) {\n this.fetchCancelFns.forEach(function (cancel) { return cancel(error); });\n this.fetchCancelFns.clear();\n };\n QueryManager.prototype.mutate = function (_a) {\n var _b, _c;\n var mutation = _a.mutation, variables = _a.variables, optimisticResponse = _a.optimisticResponse, updateQueries = _a.updateQueries, _d = _a.refetchQueries, refetchQueries = _d === void 0 ? [] : _d, _e = _a.awaitRefetchQueries, awaitRefetchQueries = _e === void 0 ? false : _e, updateWithProxyFn = _a.update, onQueryUpdated = _a.onQueryUpdated, _f = _a.fetchPolicy, fetchPolicy = _f === void 0 ? ((_b = this.defaultOptions.mutate) === null || _b === void 0 ? void 0 : _b.fetchPolicy) || \"network-only\" : _f, _g = _a.errorPolicy, errorPolicy = _g === void 0 ? ((_c = this.defaultOptions.mutate) === null || _c === void 0 ? void 0 : _c.errorPolicy) || \"none\" : _g, keepRootFields = _a.keepRootFields, context = _a.context;\n return __awaiter(this, void 0, void 0, function () {\n var mutationId, mutationStoreValue, self;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n __DEV__ ? invariant(mutation, 'mutation option is required. You must specify your GraphQL document in the mutation option.') : invariant(mutation, 12);\n __DEV__ ? invariant(fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache', \"Mutations support only 'network-only' or 'no-cache' fetchPolicy strings. The default `network-only` behavior automatically writes mutation results to the cache. Passing `no-cache` skips the cache write.\") : invariant(fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache', 13);\n mutationId = this.generateMutationId();\n mutation = this.transform(mutation).document;\n variables = this.getVariables(mutation, variables);\n if (!this.transform(mutation).hasClientExports) return [3, 2];\n return [4, this.localState.addExportedVariables(mutation, variables, context)];\n case 1:\n variables = (_h.sent());\n _h.label = 2;\n case 2:\n mutationStoreValue = this.mutationStore &&\n (this.mutationStore[mutationId] = {\n mutation: mutation,\n variables: variables,\n loading: true,\n error: null,\n });\n if (optimisticResponse) {\n this.markMutationOptimistic(optimisticResponse, {\n mutationId: mutationId,\n document: mutation,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n context: context,\n updateQueries: updateQueries,\n update: updateWithProxyFn,\n keepRootFields: keepRootFields,\n });\n }\n this.broadcastQueries();\n self = this;\n return [2, new Promise(function (resolve, reject) {\n return asyncMap(self.getObservableFromLink(mutation, __assign(__assign({}, context), { optimisticResponse: optimisticResponse }), variables, false), function (result) {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n throw new ApolloError({\n graphQLErrors: result.errors,\n });\n }\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = null;\n }\n var storeResult = __assign({}, result);\n if (typeof refetchQueries === \"function\") {\n refetchQueries = refetchQueries(storeResult);\n }\n if (errorPolicy === 'ignore' &&\n graphQLResultHasError(storeResult)) {\n delete storeResult.errors;\n }\n return self.markMutationResult({\n mutationId: mutationId,\n result: storeResult,\n document: mutation,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n context: context,\n update: updateWithProxyFn,\n updateQueries: updateQueries,\n awaitRefetchQueries: awaitRefetchQueries,\n refetchQueries: refetchQueries,\n removeOptimistic: optimisticResponse ? mutationId : void 0,\n onQueryUpdated: onQueryUpdated,\n keepRootFields: keepRootFields,\n });\n }).subscribe({\n next: function (storeResult) {\n self.broadcastQueries();\n resolve(storeResult);\n },\n error: function (err) {\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = err;\n }\n if (optimisticResponse) {\n self.cache.removeOptimistic(mutationId);\n }\n self.broadcastQueries();\n reject(err instanceof ApolloError ? err : new ApolloError({\n networkError: err,\n }));\n },\n });\n })];\n }\n });\n });\n };\n QueryManager.prototype.markMutationResult = function (mutation, cache) {\n var _this = this;\n if (cache === void 0) { cache = this.cache; }\n var result = mutation.result;\n var cacheWrites = [];\n var skipCache = mutation.fetchPolicy === \"no-cache\";\n if (!skipCache && shouldWriteResult(result, mutation.errorPolicy)) {\n cacheWrites.push({\n result: result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables,\n });\n var updateQueries_1 = mutation.updateQueries;\n if (updateQueries_1) {\n this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n var queryName = observableQuery && observableQuery.queryName;\n if (!queryName || !hasOwnProperty.call(updateQueries_1, queryName)) {\n return;\n }\n var updater = updateQueries_1[queryName];\n var _b = _this.queries.get(queryId), document = _b.document, variables = _b.variables;\n var _c = cache.diff({\n query: document,\n variables: variables,\n returnPartialData: true,\n optimistic: false,\n }), currentQueryResult = _c.result, complete = _c.complete;\n if (complete && currentQueryResult) {\n var nextQueryResult = updater(currentQueryResult, {\n mutationResult: result,\n queryName: document && getOperationName(document) || void 0,\n queryVariables: variables,\n });\n if (nextQueryResult) {\n cacheWrites.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: document,\n variables: variables,\n });\n }\n }\n });\n }\n }\n if (cacheWrites.length > 0 ||\n mutation.refetchQueries ||\n mutation.update ||\n mutation.onQueryUpdated ||\n mutation.removeOptimistic) {\n var results_1 = [];\n this.refetchQueries({\n updateCache: function (cache) {\n if (!skipCache) {\n cacheWrites.forEach(function (write) { return cache.write(write); });\n }\n var update = mutation.update;\n if (update) {\n if (!skipCache) {\n var diff = cache.diff({\n id: \"ROOT_MUTATION\",\n query: _this.transform(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true,\n });\n if (diff.complete) {\n result = __assign(__assign({}, result), { data: diff.result });\n }\n }\n update(cache, result, {\n context: mutation.context,\n variables: mutation.variables,\n });\n }\n if (!skipCache && !mutation.keepRootFields) {\n cache.modify({\n id: 'ROOT_MUTATION',\n fields: function (value, _a) {\n var fieldName = _a.fieldName, DELETE = _a.DELETE;\n return fieldName === \"__typename\" ? value : DELETE;\n },\n });\n }\n },\n include: mutation.refetchQueries,\n optimistic: false,\n removeOptimistic: mutation.removeOptimistic,\n onQueryUpdated: mutation.onQueryUpdated || null,\n }).forEach(function (result) { return results_1.push(result); });\n if (mutation.awaitRefetchQueries || mutation.onQueryUpdated) {\n return Promise.all(results_1).then(function () { return result; });\n }\n }\n return Promise.resolve(result);\n };\n QueryManager.prototype.markMutationOptimistic = function (optimisticResponse, mutation) {\n var _this = this;\n var data = typeof optimisticResponse === \"function\"\n ? optimisticResponse(mutation.variables)\n : optimisticResponse;\n return this.cache.recordOptimisticTransaction(function (cache) {\n try {\n _this.markMutationResult(__assign(__assign({}, mutation), { result: { data: data } }), cache);\n }\n catch (error) {\n __DEV__ && invariant.error(error);\n }\n }, mutation.mutationId);\n };\n QueryManager.prototype.fetchQuery = function (queryId, options, networkStatus) {\n return this.fetchQueryObservable(queryId, options, networkStatus).promise;\n };\n QueryManager.prototype.getQueryStore = function () {\n var store = Object.create(null);\n this.queries.forEach(function (info, queryId) {\n store[queryId] = {\n variables: info.variables,\n networkStatus: info.networkStatus,\n networkError: info.networkError,\n graphQLErrors: info.graphQLErrors,\n };\n });\n return store;\n };\n QueryManager.prototype.resetErrors = function (queryId) {\n var queryInfo = this.queries.get(queryId);\n if (queryInfo) {\n queryInfo.networkError = undefined;\n queryInfo.graphQLErrors = [];\n }\n };\n QueryManager.prototype.transform = function (document) {\n var transformCache = this.transformCache;\n if (!transformCache.has(document)) {\n var transformed = this.cache.transformDocument(document);\n var forLink = removeConnectionDirectiveFromDocument(this.cache.transformForLink(transformed));\n var clientQuery = this.localState.clientQuery(transformed);\n var serverQuery = forLink && this.localState.serverQuery(forLink);\n var cacheEntry_1 = {\n document: transformed,\n hasClientExports: hasClientExports(transformed),\n hasForcedResolvers: this.localState.shouldForceResolvers(transformed),\n clientQuery: clientQuery,\n serverQuery: serverQuery,\n defaultVars: getDefaultValues(getOperationDefinition(transformed)),\n asQuery: __assign(__assign({}, transformed), { definitions: transformed.definitions.map(function (def) {\n if (def.kind === \"OperationDefinition\" &&\n def.operation !== \"query\") {\n return __assign(__assign({}, def), { operation: \"query\" });\n }\n return def;\n }) })\n };\n var add = function (doc) {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry_1);\n }\n };\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n return transformCache.get(document);\n };\n QueryManager.prototype.getVariables = function (document, variables) {\n return __assign(__assign({}, this.transform(document).defaultVars), variables);\n };\n QueryManager.prototype.watchQuery = function (options) {\n options = __assign(__assign({}, options), { variables: this.getVariables(options.query, options.variables) });\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n var queryInfo = new QueryInfo(this);\n var observable = new ObservableQuery({\n queryManager: this,\n queryInfo: queryInfo,\n options: options,\n });\n this.queries.set(observable.queryId, queryInfo);\n queryInfo.init({\n document: observable.query,\n observableQuery: observable,\n variables: observable.variables,\n });\n return observable;\n };\n QueryManager.prototype.query = function (options, queryId) {\n var _this = this;\n if (queryId === void 0) { queryId = this.generateQueryId(); }\n __DEV__ ? invariant(options.query, 'query option is required. You must specify your GraphQL document ' +\n 'in the query option.') : invariant(options.query, 14);\n __DEV__ ? invariant(options.query.kind === 'Document', 'You must wrap the query string in a \"gql\" tag.') : invariant(options.query.kind === 'Document', 15);\n __DEV__ ? invariant(!options.returnPartialData, 'returnPartialData option only supported on watchQuery.') : invariant(!options.returnPartialData, 16);\n __DEV__ ? invariant(!options.pollInterval, 'pollInterval option only supported on watchQuery.') : invariant(!options.pollInterval, 17);\n return this.fetchQuery(queryId, options).finally(function () { return _this.stopQuery(queryId); });\n };\n QueryManager.prototype.generateQueryId = function () {\n return String(this.queryIdCounter++);\n };\n QueryManager.prototype.generateRequestId = function () {\n return this.requestIdCounter++;\n };\n QueryManager.prototype.generateMutationId = function () {\n return String(this.mutationIdCounter++);\n };\n QueryManager.prototype.stopQueryInStore = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n };\n QueryManager.prototype.stopQueryInStoreNoBroadcast = function (queryId) {\n var queryInfo = this.queries.get(queryId);\n if (queryInfo)\n queryInfo.stop();\n };\n QueryManager.prototype.clearStore = function (options) {\n if (options === void 0) { options = {\n discardWatches: true,\n }; }\n this.cancelPendingFetches(__DEV__ ? new InvariantError('Store reset while query was in flight (not completed in link chain)') : new InvariantError(18));\n this.queries.forEach(function (queryInfo) {\n if (queryInfo.observableQuery) {\n queryInfo.networkStatus = NetworkStatus.loading;\n }\n else {\n queryInfo.stop();\n }\n });\n if (this.mutationStore) {\n this.mutationStore = Object.create(null);\n }\n return this.cache.reset(options);\n };\n QueryManager.prototype.getObservableQueries = function (include) {\n var _this = this;\n if (include === void 0) { include = \"active\"; }\n var queries = new Map();\n var queryNamesAndDocs = new Map();\n var legacyQueryOptions = new Set();\n if (Array.isArray(include)) {\n include.forEach(function (desc) {\n if (typeof desc === \"string\") {\n queryNamesAndDocs.set(desc, false);\n }\n else if (isDocumentNode(desc)) {\n queryNamesAndDocs.set(_this.transform(desc).document, false);\n }\n else if (isNonNullObject(desc) && desc.query) {\n legacyQueryOptions.add(desc);\n }\n });\n }\n this.queries.forEach(function (_a, queryId) {\n var oq = _a.observableQuery, document = _a.document;\n if (oq) {\n if (include === \"all\") {\n queries.set(queryId, oq);\n return;\n }\n var queryName = oq.queryName, fetchPolicy = oq.options.fetchPolicy;\n if (fetchPolicy === \"standby\" ||\n (include === \"active\" && !oq.hasObservers())) {\n return;\n }\n if (include === \"active\" ||\n (queryName && queryNamesAndDocs.has(queryName)) ||\n (document && queryNamesAndDocs.has(document))) {\n queries.set(queryId, oq);\n if (queryName)\n queryNamesAndDocs.set(queryName, true);\n if (document)\n queryNamesAndDocs.set(document, true);\n }\n }\n });\n if (legacyQueryOptions.size) {\n legacyQueryOptions.forEach(function (options) {\n var queryId = makeUniqueId(\"legacyOneTimeQuery\");\n var queryInfo = _this.getQuery(queryId).init({\n document: options.query,\n variables: options.variables,\n });\n var oq = new ObservableQuery({\n queryManager: _this,\n queryInfo: queryInfo,\n options: __assign(__assign({}, options), { fetchPolicy: \"network-only\" }),\n });\n invariant(oq.queryId === queryId);\n queryInfo.setObservableQuery(oq);\n queries.set(queryId, oq);\n });\n }\n if (__DEV__ && queryNamesAndDocs.size) {\n queryNamesAndDocs.forEach(function (included, nameOrDoc) {\n if (!included) {\n __DEV__ && invariant.warn(\"Unknown query \".concat(typeof nameOrDoc === \"string\" ? \"named \" : \"\").concat(JSON.stringify(nameOrDoc, null, 2), \" requested in refetchQueries options.include array\"));\n }\n });\n }\n return queries;\n };\n QueryManager.prototype.reFetchObservableQueries = function (includeStandby) {\n var _this = this;\n if (includeStandby === void 0) { includeStandby = false; }\n var observableQueryPromises = [];\n this.getObservableQueries(includeStandby ? \"all\" : \"active\").forEach(function (observableQuery, queryId) {\n var fetchPolicy = observableQuery.options.fetchPolicy;\n observableQuery.resetLastResults();\n if (includeStandby ||\n (fetchPolicy !== \"standby\" &&\n fetchPolicy !== \"cache-only\")) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n _this.getQuery(queryId).setDiff(null);\n });\n this.broadcastQueries();\n return Promise.all(observableQueryPromises);\n };\n QueryManager.prototype.setObservableQuery = function (observableQuery) {\n this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery);\n };\n QueryManager.prototype.startGraphQLSubscription = function (_a) {\n var _this = this;\n var query = _a.query, fetchPolicy = _a.fetchPolicy, errorPolicy = _a.errorPolicy, variables = _a.variables, _b = _a.context, context = _b === void 0 ? {} : _b;\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n var makeObservable = function (variables) {\n return _this.getObservableFromLink(query, context, variables).map(function (result) {\n if (fetchPolicy !== 'no-cache') {\n if (shouldWriteResult(result, errorPolicy)) {\n _this.cache.write({\n query: query,\n result: result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n variables: variables,\n });\n }\n _this.broadcastQueries();\n }\n if (graphQLResultHasError(result)) {\n throw new ApolloError({\n graphQLErrors: result.errors,\n });\n }\n return result;\n });\n };\n if (this.transform(query).hasClientExports) {\n var observablePromise_1 = this.localState.addExportedVariables(query, variables, context).then(makeObservable);\n return new Observable(function (observer) {\n var sub = null;\n observablePromise_1.then(function (observable) { return sub = observable.subscribe(observer); }, observer.error);\n return function () { return sub && sub.unsubscribe(); };\n });\n }\n return makeObservable(variables);\n };\n QueryManager.prototype.stopQuery = function (queryId) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n };\n QueryManager.prototype.stopQueryNoBroadcast = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n };\n QueryManager.prototype.removeQuery = function (queryId) {\n this.fetchCancelFns.delete(queryId);\n if (this.queries.has(queryId)) {\n this.getQuery(queryId).stop();\n this.queries.delete(queryId);\n }\n };\n QueryManager.prototype.broadcastQueries = function () {\n if (this.onBroadcast)\n this.onBroadcast();\n this.queries.forEach(function (info) { return info.notify(); });\n };\n QueryManager.prototype.getLocalState = function () {\n return this.localState;\n };\n QueryManager.prototype.getObservableFromLink = function (query, context, variables, deduplication) {\n var _this = this;\n var _a;\n if (deduplication === void 0) { deduplication = (_a = context === null || context === void 0 ? void 0 : context.queryDeduplication) !== null && _a !== void 0 ? _a : this.queryDeduplication; }\n var observable;\n var serverQuery = this.transform(query).serverQuery;\n if (serverQuery) {\n var _b = this, inFlightLinkObservables_1 = _b.inFlightLinkObservables, link = _b.link;\n var operation = {\n query: serverQuery,\n variables: variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext(__assign(__assign({}, context), { forceFetch: !deduplication })),\n };\n context = operation.context;\n if (deduplication) {\n var byVariables_1 = inFlightLinkObservables_1.get(serverQuery) || new Map();\n inFlightLinkObservables_1.set(serverQuery, byVariables_1);\n var varJson_1 = canonicalStringify(variables);\n observable = byVariables_1.get(varJson_1);\n if (!observable) {\n var concast = new Concast([\n execute(link, operation)\n ]);\n byVariables_1.set(varJson_1, observable = concast);\n concast.cleanup(function () {\n if (byVariables_1.delete(varJson_1) &&\n byVariables_1.size < 1) {\n inFlightLinkObservables_1.delete(serverQuery);\n }\n });\n }\n }\n else {\n observable = new Concast([\n execute(link, operation)\n ]);\n }\n }\n else {\n observable = new Concast([\n Observable.of({ data: {} })\n ]);\n context = this.prepareContext(context);\n }\n var clientQuery = this.transform(query).clientQuery;\n if (clientQuery) {\n observable = asyncMap(observable, function (result) {\n return _this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context: context,\n variables: variables,\n });\n });\n }\n return observable;\n };\n QueryManager.prototype.getResultsFromLink = function (queryInfo, cacheWriteBehavior, options) {\n var requestId = queryInfo.lastRequestId = this.generateRequestId();\n return asyncMap(this.getObservableFromLink(queryInfo.document, options.context, options.variables), function (result) {\n var hasErrors = isNonEmptyArray(result.errors);\n if (requestId >= queryInfo.lastRequestId) {\n if (hasErrors && options.errorPolicy === \"none\") {\n throw queryInfo.markError(new ApolloError({\n graphQLErrors: result.errors,\n }));\n }\n queryInfo.markResult(result, options, cacheWriteBehavior);\n queryInfo.markReady();\n }\n var aqr = {\n data: result.data,\n loading: false,\n networkStatus: NetworkStatus.ready,\n };\n if (hasErrors && options.errorPolicy !== \"ignore\") {\n aqr.errors = result.errors;\n aqr.networkStatus = NetworkStatus.error;\n }\n return aqr;\n }, function (networkError) {\n var error = isApolloError(networkError)\n ? networkError\n : new ApolloError({ networkError: networkError });\n if (requestId >= queryInfo.lastRequestId) {\n queryInfo.markError(error);\n }\n throw error;\n });\n };\n QueryManager.prototype.fetchQueryObservable = function (queryId, options, networkStatus) {\n var _this = this;\n if (networkStatus === void 0) { networkStatus = NetworkStatus.loading; }\n var query = this.transform(options.query).document;\n var variables = this.getVariables(query, options.variables);\n var queryInfo = this.getQuery(queryId);\n var defaults = this.defaultOptions.watchQuery;\n var _a = options.fetchPolicy, fetchPolicy = _a === void 0 ? defaults && defaults.fetchPolicy || \"cache-first\" : _a, _b = options.errorPolicy, errorPolicy = _b === void 0 ? defaults && defaults.errorPolicy || \"none\" : _b, _c = options.returnPartialData, returnPartialData = _c === void 0 ? false : _c, _d = options.notifyOnNetworkStatusChange, notifyOnNetworkStatusChange = _d === void 0 ? false : _d, _e = options.context, context = _e === void 0 ? {} : _e;\n var normalized = Object.assign({}, options, {\n query: query,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n returnPartialData: returnPartialData,\n notifyOnNetworkStatusChange: notifyOnNetworkStatusChange,\n context: context,\n });\n var fromVariables = function (variables) {\n normalized.variables = variables;\n var concastSources = _this.fetchQueryByPolicy(queryInfo, normalized, networkStatus);\n if (normalized.fetchPolicy !== \"standby\" &&\n concastSources.length > 0 &&\n queryInfo.observableQuery) {\n queryInfo.observableQuery[\"applyNextFetchPolicy\"](\"after-fetch\", options);\n }\n return concastSources;\n };\n var cleanupCancelFn = function () { return _this.fetchCancelFns.delete(queryId); };\n this.fetchCancelFns.set(queryId, function (reason) {\n cleanupCancelFn();\n setTimeout(function () { return concast.cancel(reason); });\n });\n var concast = new Concast(this.transform(normalized.query).hasClientExports\n ? this.localState.addExportedVariables(normalized.query, normalized.variables, normalized.context).then(fromVariables)\n : fromVariables(normalized.variables));\n concast.promise.then(cleanupCancelFn, cleanupCancelFn);\n return concast;\n };\n QueryManager.prototype.refetchQueries = function (_a) {\n var _this = this;\n var updateCache = _a.updateCache, include = _a.include, _b = _a.optimistic, optimistic = _b === void 0 ? false : _b, _c = _a.removeOptimistic, removeOptimistic = _c === void 0 ? optimistic ? makeUniqueId(\"refetchQueries\") : void 0 : _c, onQueryUpdated = _a.onQueryUpdated;\n var includedQueriesById = new Map();\n if (include) {\n this.getObservableQueries(include).forEach(function (oq, queryId) {\n includedQueriesById.set(queryId, {\n oq: oq,\n lastDiff: _this.getQuery(queryId).getDiff(),\n });\n });\n }\n var results = new Map;\n if (updateCache) {\n this.cache.batch({\n update: updateCache,\n optimistic: optimistic && removeOptimistic || false,\n removeOptimistic: removeOptimistic,\n onWatchUpdated: function (watch, diff, lastDiff) {\n var oq = watch.watcher instanceof QueryInfo &&\n watch.watcher.observableQuery;\n if (oq) {\n if (onQueryUpdated) {\n includedQueriesById.delete(oq.queryId);\n var result = onQueryUpdated(oq, diff, lastDiff);\n if (result === true) {\n result = oq.refetch();\n }\n if (result !== false) {\n results.set(oq, result);\n }\n return result;\n }\n if (onQueryUpdated !== null) {\n includedQueriesById.set(oq.queryId, { oq: oq, lastDiff: lastDiff, diff: diff });\n }\n }\n },\n });\n }\n if (includedQueriesById.size) {\n includedQueriesById.forEach(function (_a, queryId) {\n var oq = _a.oq, lastDiff = _a.lastDiff, diff = _a.diff;\n var result;\n if (onQueryUpdated) {\n if (!diff) {\n var info = oq[\"queryInfo\"];\n info.reset();\n diff = info.getDiff();\n }\n result = onQueryUpdated(oq, diff, lastDiff);\n }\n if (!onQueryUpdated || result === true) {\n result = oq.refetch();\n }\n if (result !== false) {\n results.set(oq, result);\n }\n if (queryId.indexOf(\"legacyOneTimeQuery\") >= 0) {\n _this.stopQueryNoBroadcast(queryId);\n }\n });\n }\n if (removeOptimistic) {\n this.cache.removeOptimistic(removeOptimistic);\n }\n return results;\n };\n QueryManager.prototype.fetchQueryByPolicy = function (queryInfo, _a, networkStatus) {\n var _this = this;\n var query = _a.query, variables = _a.variables, fetchPolicy = _a.fetchPolicy, refetchWritePolicy = _a.refetchWritePolicy, errorPolicy = _a.errorPolicy, returnPartialData = _a.returnPartialData, context = _a.context, notifyOnNetworkStatusChange = _a.notifyOnNetworkStatusChange;\n var oldNetworkStatus = queryInfo.networkStatus;\n queryInfo.init({\n document: this.transform(query).document,\n variables: variables,\n networkStatus: networkStatus,\n });\n var readCache = function () { return queryInfo.getDiff(variables); };\n var resultsFromCache = function (diff, networkStatus) {\n if (networkStatus === void 0) { networkStatus = queryInfo.networkStatus || NetworkStatus.loading; }\n var data = diff.result;\n if (__DEV__ &&\n !returnPartialData &&\n !equal(data, {})) {\n logMissingFieldErrors(diff.missing);\n }\n var fromData = function (data) { return Observable.of(__assign({ data: data, loading: isNetworkRequestInFlight(networkStatus), networkStatus: networkStatus }, (diff.complete ? null : { partial: true }))); };\n if (data && _this.transform(query).hasForcedResolvers) {\n return _this.localState.runResolvers({\n document: query,\n remoteResult: { data: data },\n context: context,\n variables: variables,\n onlyRunForcedResolvers: true,\n }).then(function (resolved) { return fromData(resolved.data || void 0); });\n }\n return fromData(data);\n };\n var cacheWriteBehavior = fetchPolicy === \"no-cache\" ? 0 :\n (networkStatus === NetworkStatus.refetch &&\n refetchWritePolicy !== \"merge\") ? 1\n : 2;\n var resultsFromLink = function () { return _this.getResultsFromLink(queryInfo, cacheWriteBehavior, {\n variables: variables,\n context: context,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n }); };\n var shouldNotify = notifyOnNetworkStatusChange &&\n typeof oldNetworkStatus === \"number\" &&\n oldNetworkStatus !== networkStatus &&\n isNetworkRequestInFlight(networkStatus);\n switch (fetchPolicy) {\n default:\n case \"cache-first\": {\n var diff = readCache();\n if (diff.complete) {\n return [\n resultsFromCache(diff, queryInfo.markReady()),\n ];\n }\n if (returnPartialData || shouldNotify) {\n return [\n resultsFromCache(diff),\n resultsFromLink(),\n ];\n }\n return [\n resultsFromLink(),\n ];\n }\n case \"cache-and-network\": {\n var diff = readCache();\n if (diff.complete || returnPartialData || shouldNotify) {\n return [\n resultsFromCache(diff),\n resultsFromLink(),\n ];\n }\n return [\n resultsFromLink(),\n ];\n }\n case \"cache-only\":\n return [\n resultsFromCache(readCache(), queryInfo.markReady()),\n ];\n case \"network-only\":\n if (shouldNotify) {\n return [\n resultsFromCache(readCache()),\n resultsFromLink(),\n ];\n }\n return [resultsFromLink()];\n case \"no-cache\":\n if (shouldNotify) {\n return [\n resultsFromCache(queryInfo.getDiff()),\n resultsFromLink(),\n ];\n }\n return [resultsFromLink()];\n case \"standby\":\n return [];\n }\n };\n QueryManager.prototype.getQuery = function (queryId) {\n if (queryId && !this.queries.has(queryId)) {\n this.queries.set(queryId, new QueryInfo(this, queryId));\n }\n return this.queries.get(queryId);\n };\n QueryManager.prototype.prepareContext = function (context) {\n if (context === void 0) { context = {}; }\n var newContext = this.localState.prepareContext(context);\n return __assign(__assign({}, newContext), { clientAwareness: this.clientAwareness });\n };\n return QueryManager;\n}());\nexport { QueryManager };\n//# sourceMappingURL=QueryManager.js.map","import { __assign } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { print } from 'graphql';\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable, compact, isNonEmptyArray, } from \"../../utilities/index.js\";\nexport var VERSION = 1;\nexport var PersistedQueryLink;\n(function (PersistedQueryLink) {\n ;\n ;\n ;\n})(PersistedQueryLink || (PersistedQueryLink = {}));\nfunction collectErrorsByMessage(graphQLErrors) {\n var collected = Object.create(null);\n if (isNonEmptyArray(graphQLErrors)) {\n graphQLErrors.forEach(function (error) { return collected[error.message] = error; });\n }\n return collected;\n}\nvar defaultOptions = {\n disable: function (_a) {\n var graphQLErrors = _a.graphQLErrors, operation = _a.operation;\n var errorMessages = collectErrorsByMessage(graphQLErrors);\n if (errorMessages.PersistedQueryNotSupported) {\n return true;\n }\n if (errorMessages.PersistedQueryNotFound) {\n return false;\n }\n var response = operation.getContext().response;\n if (response &&\n response.status &&\n (response.status === 400 || response.status === 500)) {\n return true;\n }\n return false;\n },\n useGETForHashedQueries: false,\n};\nfunction operationDefinesMutation(operation) {\n return operation.query.definitions.some(function (d) { return d.kind === 'OperationDefinition' && d.operation === 'mutation'; });\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar hashesByQuery = new WeakMap();\nvar nextHashesChildKey = 0;\nexport var createPersistedQueryLink = function (options) {\n __DEV__ ? invariant(options && (typeof options.sha256 === 'function' ||\n typeof options.generateHash === 'function'), 'Missing/invalid \"sha256\" or \"generateHash\" function. Please ' +\n 'configure one using the \"createPersistedQueryLink(options)\" options ' +\n 'parameter.') : invariant(options && (typeof options.sha256 === 'function' ||\n typeof options.generateHash === 'function'), 22);\n var _a = compact(defaultOptions, options), sha256 = _a.sha256, _b = _a.generateHash, generateHash = _b === void 0 ? function (query) {\n return Promise.resolve(sha256(print(query)));\n } : _b, disable = _a.disable, useGETForHashedQueries = _a.useGETForHashedQueries;\n var supportsPersistedQueries = true;\n var hashesChildKey = 'forLink' + nextHashesChildKey++;\n var getHashPromise = function (query) {\n return new Promise(function (resolve) { return resolve(generateHash(query)); });\n };\n function getQueryHash(query) {\n if (!query || typeof query !== 'object') {\n return getHashPromise(query);\n }\n var hashes = hashesByQuery.get(query);\n if (!hashes)\n hashesByQuery.set(query, hashes = Object.create(null));\n return hasOwnProperty.call(hashes, hashesChildKey)\n ? hashes[hashesChildKey]\n : hashes[hashesChildKey] = getHashPromise(query);\n }\n return new ApolloLink(function (operation, forward) {\n __DEV__ ? invariant(forward, 'PersistedQueryLink cannot be the last link in the chain.') : invariant(forward, 23);\n var query = operation.query;\n return new Observable(function (observer) {\n var subscription;\n var retried = false;\n var originalFetchOptions;\n var setFetchOptions = false;\n var retry = function (_a, cb) {\n var response = _a.response, networkError = _a.networkError;\n if (!retried && ((response && response.errors) || networkError)) {\n retried = true;\n var graphQLErrors = [];\n var responseErrors = response && response.errors;\n if (isNonEmptyArray(responseErrors)) {\n graphQLErrors.push.apply(graphQLErrors, responseErrors);\n }\n var networkErrors = networkError &&\n networkError.result &&\n networkError.result.errors;\n if (isNonEmptyArray(networkErrors)) {\n graphQLErrors.push.apply(graphQLErrors, networkErrors);\n }\n var disablePayload = {\n response: response,\n networkError: networkError,\n operation: operation,\n graphQLErrors: isNonEmptyArray(graphQLErrors) ? graphQLErrors : void 0,\n };\n supportsPersistedQueries = !disable(disablePayload);\n if (collectErrorsByMessage(graphQLErrors).PersistedQueryNotFound ||\n !supportsPersistedQueries) {\n if (subscription)\n subscription.unsubscribe();\n operation.setContext({\n http: {\n includeQuery: true,\n includeExtensions: supportsPersistedQueries,\n },\n fetchOptions: {\n method: 'POST',\n },\n });\n if (setFetchOptions) {\n operation.setContext({ fetchOptions: originalFetchOptions });\n }\n subscription = forward(operation).subscribe(handler);\n return;\n }\n }\n cb();\n };\n var handler = {\n next: function (response) {\n retry({ response: response }, function () { return observer.next(response); });\n },\n error: function (networkError) {\n retry({ networkError: networkError }, function () { return observer.error(networkError); });\n },\n complete: observer.complete.bind(observer),\n };\n operation.setContext({\n http: {\n includeQuery: !supportsPersistedQueries,\n includeExtensions: supportsPersistedQueries,\n },\n });\n if (useGETForHashedQueries &&\n supportsPersistedQueries &&\n !operationDefinesMutation(operation)) {\n operation.setContext(function (_a) {\n var _b = _a.fetchOptions, fetchOptions = _b === void 0 ? {} : _b;\n originalFetchOptions = fetchOptions;\n return {\n fetchOptions: __assign(__assign({}, fetchOptions), { method: 'GET' }),\n };\n });\n setFetchOptions = true;\n }\n if (supportsPersistedQueries) {\n getQueryHash(query).then(function (sha256Hash) {\n operation.extensions.persistedQuery = {\n version: VERSION,\n sha256Hash: sha256Hash,\n };\n subscription = forward(operation).subscribe(handler);\n }).catch(observer.error.bind(observer));\n ;\n }\n else {\n subscription = forward(operation).subscribe(handler);\n }\n return function () {\n if (subscription)\n subscription.unsubscribe();\n };\n });\n });\n};\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from \"../utilities/globals/index.js\";\nimport { ApolloLink, execute } from \"../link/core/index.js\";\nimport { version } from \"../version.js\";\nimport { HttpLink } from \"../link/http/index.js\";\nimport { QueryManager } from \"./QueryManager.js\";\nimport { LocalState, } from \"./LocalState.js\";\nvar hasSuggestedDevtools = false;\nimport { mergeOptions } from \"../utilities/index.js\";\nexport { mergeOptions };\nvar ApolloClient = (function () {\n function ApolloClient(options) {\n var _this = this;\n this.resetStoreCallbacks = [];\n this.clearStoreCallbacks = [];\n var uri = options.uri, credentials = options.credentials, headers = options.headers, cache = options.cache, _a = options.ssrMode, ssrMode = _a === void 0 ? false : _a, _b = options.ssrForceFetchDelay, ssrForceFetchDelay = _b === void 0 ? 0 : _b, _c = options.connectToDevTools, connectToDevTools = _c === void 0 ? typeof window === 'object' &&\n !window.__APOLLO_CLIENT__ &&\n __DEV__ : _c, _d = options.queryDeduplication, queryDeduplication = _d === void 0 ? true : _d, defaultOptions = options.defaultOptions, _e = options.assumeImmutableResults, assumeImmutableResults = _e === void 0 ? false : _e, resolvers = options.resolvers, typeDefs = options.typeDefs, fragmentMatcher = options.fragmentMatcher, clientAwarenessName = options.name, clientAwarenessVersion = options.version;\n var link = options.link;\n if (!link) {\n link = uri\n ? new HttpLink({ uri: uri, credentials: credentials, headers: headers })\n : ApolloLink.empty();\n }\n if (!cache) {\n throw __DEV__ ? new InvariantError(\"To initialize Apollo Client, you must specify a 'cache' property \" +\n \"in the options object. \\n\" +\n \"For more information, please visit: https://go.apollo.dev/c/docs\") : new InvariantError(7);\n }\n this.link = link;\n this.cache = cache;\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.queryDeduplication = queryDeduplication;\n this.defaultOptions = defaultOptions || Object.create(null);\n this.typeDefs = typeDefs;\n if (ssrForceFetchDelay) {\n setTimeout(function () { return (_this.disableNetworkFetches = false); }, ssrForceFetchDelay);\n }\n this.watchQuery = this.watchQuery.bind(this);\n this.query = this.query.bind(this);\n this.mutate = this.mutate.bind(this);\n this.resetStore = this.resetStore.bind(this);\n this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this);\n if (connectToDevTools && typeof window === 'object') {\n window.__APOLLO_CLIENT__ = this;\n }\n if (!hasSuggestedDevtools && __DEV__) {\n hasSuggestedDevtools = true;\n if (typeof window !== 'undefined' &&\n window.document &&\n window.top === window.self &&\n !window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__) {\n var nav = window.navigator;\n var ua = nav && nav.userAgent;\n var url = void 0;\n if (typeof ua === \"string\") {\n if (ua.indexOf(\"Chrome/\") > -1) {\n url = \"https://chrome.google.com/webstore/detail/\" +\n \"apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm\";\n }\n else if (ua.indexOf(\"Firefox/\") > -1) {\n url = \"https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/\";\n }\n }\n if (url) {\n __DEV__ && invariant.log(\"Download the Apollo DevTools for a better development \" +\n \"experience: \" + url);\n }\n }\n }\n this.version = version;\n this.localState = new LocalState({\n cache: cache,\n client: this,\n resolvers: resolvers,\n fragmentMatcher: fragmentMatcher,\n });\n this.queryManager = new QueryManager({\n cache: this.cache,\n link: this.link,\n defaultOptions: this.defaultOptions,\n queryDeduplication: queryDeduplication,\n ssrMode: ssrMode,\n clientAwareness: {\n name: clientAwarenessName,\n version: clientAwarenessVersion,\n },\n localState: this.localState,\n assumeImmutableResults: assumeImmutableResults,\n onBroadcast: connectToDevTools ? function () {\n if (_this.devToolsHookCb) {\n _this.devToolsHookCb({\n action: {},\n state: {\n queries: _this.queryManager.getQueryStore(),\n mutations: _this.queryManager.mutationStore || {},\n },\n dataWithOptimisticResults: _this.cache.extract(true),\n });\n }\n } : void 0,\n });\n }\n ApolloClient.prototype.stop = function () {\n this.queryManager.stop();\n };\n ApolloClient.prototype.watchQuery = function (options) {\n if (this.defaultOptions.watchQuery) {\n options = mergeOptions(this.defaultOptions.watchQuery, options);\n }\n if (this.disableNetworkFetches &&\n (options.fetchPolicy === 'network-only' ||\n options.fetchPolicy === 'cache-and-network')) {\n options = __assign(__assign({}, options), { fetchPolicy: 'cache-first' });\n }\n return this.queryManager.watchQuery(options);\n };\n ApolloClient.prototype.query = function (options) {\n if (this.defaultOptions.query) {\n options = mergeOptions(this.defaultOptions.query, options);\n }\n __DEV__ ? invariant(options.fetchPolicy !== 'cache-and-network', 'The cache-and-network fetchPolicy does not work with client.query, because ' +\n 'client.query can only return a single result. Please use client.watchQuery ' +\n 'to receive multiple results from the cache and the network, or consider ' +\n 'using a different fetchPolicy, such as cache-first or network-only.') : invariant(options.fetchPolicy !== 'cache-and-network', 8);\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = __assign(__assign({}, options), { fetchPolicy: 'cache-first' });\n }\n return this.queryManager.query(options);\n };\n ApolloClient.prototype.mutate = function (options) {\n if (this.defaultOptions.mutate) {\n options = mergeOptions(this.defaultOptions.mutate, options);\n }\n return this.queryManager.mutate(options);\n };\n ApolloClient.prototype.subscribe = function (options) {\n return this.queryManager.startGraphQLSubscription(options);\n };\n ApolloClient.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.cache.readQuery(options, optimistic);\n };\n ApolloClient.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.cache.readFragment(options, optimistic);\n };\n ApolloClient.prototype.writeQuery = function (options) {\n this.cache.writeQuery(options);\n this.queryManager.broadcastQueries();\n };\n ApolloClient.prototype.writeFragment = function (options) {\n this.cache.writeFragment(options);\n this.queryManager.broadcastQueries();\n };\n ApolloClient.prototype.__actionHookForDevTools = function (cb) {\n this.devToolsHookCb = cb;\n };\n ApolloClient.prototype.__requestRaw = function (payload) {\n return execute(this.link, payload);\n };\n ApolloClient.prototype.resetStore = function () {\n var _this = this;\n return Promise.resolve()\n .then(function () { return _this.queryManager.clearStore({\n discardWatches: false,\n }); })\n .then(function () { return Promise.all(_this.resetStoreCallbacks.map(function (fn) { return fn(); })); })\n .then(function () { return _this.reFetchObservableQueries(); });\n };\n ApolloClient.prototype.clearStore = function () {\n var _this = this;\n return Promise.resolve()\n .then(function () { return _this.queryManager.clearStore({\n discardWatches: true,\n }); })\n .then(function () { return Promise.all(_this.clearStoreCallbacks.map(function (fn) { return fn(); })); });\n };\n ApolloClient.prototype.onResetStore = function (cb) {\n var _this = this;\n this.resetStoreCallbacks.push(cb);\n return function () {\n _this.resetStoreCallbacks = _this.resetStoreCallbacks.filter(function (c) { return c !== cb; });\n };\n };\n ApolloClient.prototype.onClearStore = function (cb) {\n var _this = this;\n this.clearStoreCallbacks.push(cb);\n return function () {\n _this.clearStoreCallbacks = _this.clearStoreCallbacks.filter(function (c) { return c !== cb; });\n };\n };\n ApolloClient.prototype.reFetchObservableQueries = function (includeStandby) {\n return this.queryManager.reFetchObservableQueries(includeStandby);\n };\n ApolloClient.prototype.refetchQueries = function (options) {\n var map = this.queryManager.refetchQueries(options);\n var queries = [];\n var results = [];\n map.forEach(function (result, obsQuery) {\n queries.push(obsQuery);\n results.push(result);\n });\n var result = Promise.all(results);\n result.queries = queries;\n result.results = results;\n result.catch(function (error) {\n __DEV__ && invariant.debug(\"In client.refetchQueries, Promise.all promise rejected with error \".concat(error));\n });\n return result;\n };\n ApolloClient.prototype.getObservableQueries = function (include) {\n if (include === void 0) { include = \"active\"; }\n return this.queryManager.getObservableQueries(include);\n };\n ApolloClient.prototype.extract = function (optimistic) {\n return this.cache.extract(optimistic);\n };\n ApolloClient.prototype.restore = function (serializedState) {\n return this.cache.restore(serializedState);\n };\n ApolloClient.prototype.addResolvers = function (resolvers) {\n this.localState.addResolvers(resolvers);\n };\n ApolloClient.prototype.setResolvers = function (resolvers) {\n this.localState.setResolvers(resolvers);\n };\n ApolloClient.prototype.getResolvers = function () {\n return this.localState.getResolvers();\n };\n ApolloClient.prototype.setLocalStateFragmentMatcher = function (fragmentMatcher) {\n this.localState.setFragmentMatcher(fragmentMatcher);\n };\n ApolloClient.prototype.setLink = function (newLink) {\n this.link = this.queryManager.link = newLink;\n };\n return ApolloClient;\n}());\nexport { ApolloClient };\n//# sourceMappingURL=ApolloClient.js.map","export var version = '3.6.9';\n//# sourceMappingURL=version.js.map","import { invariant } from \"../../utilities/globals/index.js\";\nimport * as React from 'react';\nimport { getApolloContext } from \"./ApolloContext.js\";\nexport var ApolloProvider = function (_a) {\n var client = _a.client, children = _a.children;\n var ApolloContext = getApolloContext();\n return (React.createElement(ApolloContext.Consumer, null, function (context) {\n if (context === void 0) { context = {}; }\n if (client && context.client !== client) {\n context = Object.assign({}, context, { client: client });\n }\n __DEV__ ? invariant(context.client, 'ApolloProvider was not passed a client instance. Make ' +\n 'sure you pass in your client via the \"client\" prop.') : invariant(context.client, 26);\n return (React.createElement(ApolloContext.Provider, { value: context }, children));\n }));\n};\n//# sourceMappingURL=ApolloProvider.js.map","import{ThemeProvider as e}from\"styled-components\";var o=e;export{o as ThemeProvider};\n//# sourceMappingURL=ThemeProvider.js.map\n","import * as React from 'react';\nimport { IntlContext, useIntl } from 'react-intl';\n\nimport { ReactFCC } from '@notino/react-styleguide';\n\nconst SPECIAL_COUNTRY_FORMAT = ['lv-LV', 'lt-LT'];\n\n/**\n * Override original IntlProvider formatDate\n * @param props\n * @constructor\n */\nexport const IntlProviderOverride: ReactFCC = ({ children }) => {\n const originalIntl = useIntl();\n\n const values: typeof originalIntl = React.useMemo(\n () => ({\n ...originalIntl,\n formatDate: (value, opts) => {\n const { formatDate: originalFormatDate, locale } = originalIntl;\n if (SPECIAL_COUNTRY_FORMAT.includes(locale)) {\n const date = new Date(value);\n if (\n opts.day === 'numeric' &&\n opts.month === 'numeric' &&\n opts.year === 'numeric'\n ) {\n return `${date.getDate()}.${\n date.getMonth() + 1\n }.${date.getFullYear()}`;\n }\n }\n return originalFormatDate(value, opts);\n },\n }),\n [originalIntl]\n );\n\n return {children};\n};\n","import {\n ApolloError,\n useApolloClient,\n useQuery,\n ApolloClient,\n} from '@apollo/client';\n\nimport { masterUrl } from '@notino/shared/client-utils';\nimport {\n GetProductPathNameQuery,\n GetProductWebViewQuery,\n GetProductWebViewQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport getProductPathNameQuery from '@components/WebView/productPathName.graphql';\nimport getProductWebViewQuery from '@components/WebView/productWebView.graphql';\nimport * as Sentry from '@sentry/browser';\n\ninterface IResolveWebViewResult {\n resolveWebViewLoading: boolean;\n resolveWebViewData: GetProductWebViewQuery;\n resolveWebViewError: ApolloError;\n}\n\ninterface IResolveWebViewParams {\n pathname: string;\n originUrl?: string;\n}\n\n/**\n * We set ProductSsrData.pathname to null, so when we navigate to previous or further page in browser\n * we don't use pathname from SSR, but we rather use browser url\n * @param client\n */\nconst clearSSRProductPath = (client: ApolloClient) => {\n client.writeQuery({\n query: getProductPathNameQuery,\n data: {\n ProductSsrData: {\n pathname: null,\n },\n },\n });\n};\n\nexport const useResolveWebView = ({\n pathname,\n originUrl,\n}: IResolveWebViewParams): IResolveWebViewResult => {\n const client = useApolloClient();\n\n const { ProductSsrData } = client.readQuery<\n GetProductPathNameQuery,\n Record\n >({\n query: getProductPathNameQuery,\n });\n\n const ssrProductPath = ProductSsrData && ProductSsrData.pathname;\n\n const {\n loading: resolveWebViewLoading,\n data: resolveWebViewData,\n error: resolveWebViewError,\n } = useQuery(\n getProductWebViewQuery,\n {\n variables: {\n url: ssrProductPath\n ? ssrProductPath\n : originUrl\n ? decodeURI(originUrl)\n : masterUrl(pathname),\n },\n onError: (e) => {\n Sentry.captureException(\n new Error(`Could not resolve web view\n variables: ${ssrProductPath} - ${originUrl} - ${pathname}.\n Error: ${JSON.stringify(e)}`)\n );\n },\n onCompleted: () => clearSSRProductPath(client),\n errorPolicy: 'all',\n }\n );\n\n return {\n resolveWebViewLoading,\n resolveWebViewData,\n resolveWebViewError,\n };\n};\n","import { useLocation } from 'react-router';\n\nimport { PathTemplate } from '@notino/shared/definitions/types';\n\nimport { createComponents } from '@components/WebView/utils';\nimport { useResolveWebView } from '@queries/useResolveWebView';\n\nimport { prefixes } from './prefixes';\n\nexport const usePrefixes = (originUrl: string): string[] => {\n const location = useLocation();\n\n const { resolveWebViewData, resolveWebViewError, resolveWebViewLoading } =\n useResolveWebView({ pathname: location.pathname, originUrl });\n\n if (resolveWebViewLoading) {\n return null;\n }\n if (resolveWebViewError) {\n return [];\n }\n\n if (\n resolveWebViewData.resolveUrl &&\n resolveWebViewData.resolveUrl.type === PathTemplate.SpecialPageComponent\n ) {\n const types = createComponents(originUrl ? originUrl : location.search).map(\n (component) => component.type\n );\n\n return types\n .map((type) => prefixes[type])\n .filter((prefix) => Boolean(prefix))\n .flat();\n } else if (resolveWebViewData.resolveUrl) {\n return prefixes[resolveWebViewData.resolveUrl.type];\n }\n};\n","import * as React from 'react';\nimport { IntlProvider } from 'react-intl';\n\nimport { useQuery } from '@apollo/client';\n\nimport { ReactFCC } from '@notino/react-styleguide';\nimport {\n GetLocalesDataQuery,\n GetLocalesDataQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport * as Sentry from '@sentry/browser';\n\nimport { IntlProviderOverride } from './IntlProviderOverride';\nimport getLocalesQuery from './queries/localesData.graphql';\nimport { usePrefixes } from './usePrefixes';\ninterface ILanguageProviderProps {\n originUrl: string;\n}\n\nexport const LanguageProvider: ReactFCC = ({\n children,\n originUrl,\n}) => {\n const prefixes = usePrefixes(originUrl);\n\n const { data, error, previousData } = useQuery<\n GetLocalesDataQuery,\n GetLocalesDataQueryVariables\n >(getLocalesQuery, {\n variables: {\n prefixes: prefixes,\n },\n\n skip: prefixes === null,\n });\n\n const languageData = data || previousData;\n\n if (!languageData?.languagedMessagesByPrefixes || error) {\n return null;\n }\n\n const locale = languageData?.languagedMessagesByPrefixes?.acceptLanguage;\n const messages = languageData?.languagedMessagesByPrefixes?.messages;\n\n return (\n \n \n {React.Children.only(children)}\n \n \n );\n};\n","import{createGlobalStyle as e}from\"styled-components\";var o=e;export{o as createGlobalStyle};\n//# sourceMappingURL=createGlobalStyle.js.map\n","import { createGlobalStyle, breakpoints, css } from '@notino/react-styleguide';\n\nimport theme from '@themes/default';\n\nconst listCss = css`\n ul {\n list-style-type: none;\n }\n li {\n position: relative;\n padding-left: 1.2rem;\n margin-bottom: 0;\n\n &:before {\n margin-top: 0;\n content: '';\n display: inline-block;\n height: 1em;\n width: 1.2em;\n background: url(\"data:image/svg+xml;utf8,\n \n \n \n \") 50% 50% no-repeat;\n position: absolute;\n top: 0.3em;\n left: 0;\n }\n }\n`;\n\nconst newListCss = css`\n p,\n ul,\n .expandable-info {\n ${theme.typography.bodyRegular};\n\n @media (min-width: ${breakpoints.md}) {\n ${theme.typography.bodyLarge}\n }\n margin-bottom: 0.75rem;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n ${listCss}\n`;\n\nexport const GlobalStyle = createGlobalStyle<{ newPdDesignEnabled: boolean }>`\n\n *, *:before, *:after {\n margin: 0;\n padding: 0;\n }\n\n html {\n font-family: ${theme.fonts.primary};\n font-size: ${theme.fontBaseSize}px;\n scroll-behavior: smooth;\n }\n\n .app * {\n box-sizing: border-box;\n }\n\n .app:not(.accesibility) * {\n outline: none !important;\n }\n\n body {\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: subpixel-antialiased;\n }\n\n .no-js .placeholder {\n display: none !important;\n }\n\n ${({ newPdDesignEnabled }) =>\n !newPdDesignEnabled\n ? css`\n #pd-description-text,\n #pd-composition-wrapper,\n #pdOthersTab {\n strong {\n font-size: 1.1rem;\n }\n\n a {\n color: ${theme.palette.basic};\n }\n }\n\n #pdDescription,\n #pdOthersTab {\n ${listCss};\n p,\n ul {\n line-height: 1.5;\n margin: 0 0 1.3em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n }\n `\n : css`\n #pd-description-wrapper,\n #pdOthersTab {\n a {\n color: ${theme.palette.basic};\n }\n\n p:not(:first-child) {\n strong {\n margin-top: 2.5rem;\n }\n }\n\n strong {\n display: block;\n\n margin-bottom: 0.75rem;\n\n ${theme.typography.titleSmall};\n\n @media (min-width: ${breakpoints.lg}) {\n ${theme.typography.titleMedium}\n }\n }\n\n br {\n height: 0;\n display: none;\n }\n\n ${newListCss};\n }\n `}\n\n #pd-composition-wrapper, #pdOthersTab {\n ${newListCss}\n }\n`;\n","import * as React from 'react';\n\nexport const TunnelForSpecialPageComponent: React.FC<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n components: any;\n mountId: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n render: (props: { props: any }) => any;\n}> = ({ components, mountId, render }) => {\n if (mountId) {\n const component = components.find(({ id }) => id.toString() === mountId);\n // client rendering\n return
{render({ props: component })}
;\n }\n /**\n * rendering on server\n * warning: this is the twilight zone, be careful\n * note: when there is a change made to App.tsx, the changes have to be reflected here as well so the SSR content is the same\n */\n return (\n // eslint-disable-next-line react/jsx-no-useless-fragment\n <>\n {components.map((component) => (\n
\n
{render({ props: component })}
\n
\n ))}\n \n );\n};\n","/**\n * Import all Route components\n */\nimport ErrorPage from '@components/ErrorPage/loadable';\nimport NotFound from '@components/NotFound';\nimport AdventCalendar from '@containers/AdventCalendar/loadable';\nimport Home from '@containers/Home/loadable';\nimport Miss from '@containers/Miss/loadable';\nimport ProductDetail from '@containers/ProductDetailContainer/loadable';\nimport ReviewsPage from '@containers/ReviewsPage/loadable';\nimport Sampling from '@containers/Sampling/loadable';\nimport SamplingThanks from '@containers/SamplingThanks/loadable';\nimport Tryandbuy from '@containers/Tryandbuy/loadable';\nimport TryandbuyError from '@containers/TryandbuyError/loadable';\nimport TryandbuyThanks from '@containers/TryandbuyThanks/loadable';\nimport WishList from '@containers/WishList/loadable';\n\n/**\n * create dictionary of all loadable components\n */\nconst loadables = {\n Home,\n ProductDetail,\n ErrorPage,\n Tryandbuy,\n TryandbuyThanks,\n TryandbuyError,\n Sampling,\n SamplingThanks,\n NotFound,\n WishList,\n AdventCalendar,\n Miss,\n ReviewsPage,\n};\n\nexport default loadables;\n","import * as React from 'react';\nimport { Route, useLocation, Routes } from 'react-router';\n\nimport { PathTemplate } from '@notino/shared/definitions/types';\n\nimport { TunnelForSpecialPageComponent } from '@components/Tunnel';\nimport ProductDetail from '@containers/ProductDetailContainer';\nimport { useResolveWebView } from '@queries/useResolveWebView';\n\nimport loadables from '../../containers/App/loadables';\nimport { PageLoadFailed } from '../NotFound';\nimport SpecialPageComponent from '../SpecialPageComponent/loadable';\n\nimport { createComponents } from './utils';\n\nconst WebView: React.FC<{\n mountId?: string;\n originUrl?: string;\n productDetailSsrEnabled?: boolean;\n productPath?: string;\n}> = ({ mountId, originUrl, productDetailSsrEnabled }) => {\n const { pathname, search } = useLocation();\n const { resolveWebViewData, resolveWebViewError, resolveWebViewLoading } =\n useResolveWebView({ originUrl, pathname });\n\n if (resolveWebViewLoading) {\n return null;\n }\n if (resolveWebViewError) {\n return ;\n }\n\n switch (resolveWebViewData.resolveUrl.type) {\n case PathTemplate.ProductDetailSimple:\n return (\n \n \n }\n />\n \n );\n\n case PathTemplate.ReviewsPage:\n return (\n \n \n }\n />\n \n );\n\n case PathTemplate.Tryandbuy:\n return (\n \n } />\n }\n />\n }\n />\n \n );\n\n case PathTemplate.Wishlist:\n return (\n \n } />\n \n );\n\n case PathTemplate.Error:\n return (\n \n } />\n \n );\n\n case PathTemplate.SpecialPageComponent:\n return (\n }\n />\n );\n\n case PathTemplate.HomePage:\n return (\n \n } />\n \n );\n\n default:\n return
Not found
;\n }\n};\n\nexport default WebView;\n","import * as React from 'react';\n\nimport {\n ThemeProvider,\n ModalContext,\n DrawerContext,\n} from '@notino/react-styleguide';\n\nimport { LanguageProvider } from '@containers/LanguageProvider';\nimport { TrackingContextProvider } from '@context/tracking/TrackingContext';\nimport { GlobalStyle } from '@global-styles';\nimport theme from '@themes/default';\n\nimport WebView from '../../components/WebView';\nimport { useNewPdDesignEnabled } from '../ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport { runExponeaFunctions } from './utils';\n\ninterface IAppProps {\n mountId?: string;\n originUrl?: string;\n productDetailSsrEnabled?: boolean;\n}\n\nconst App = ({ mountId, originUrl, productDetailSsrEnabled }: IAppProps) => {\n const newPdDesignEnabled = useNewPdDesignEnabled();\n React.useEffect(() => {\n const handleKeyPress = (event) => {\n if (event.keyCode === 9) {\n document.getElementById(mountId).classList.add('accesibility');\n }\n };\n\n const handleMouseClick = () => {\n document.getElementById(mountId).classList.remove('accesibility');\n };\n if (mountId) {\n document.getElementById(mountId).classList.remove('no-js');\n document.getElementById(mountId).classList.add('js');\n\n window.addEventListener('keydown', handleKeyPress);\n window.addEventListener('mousedown', handleMouseClick);\n runExponeaFunctions();\n }\n\n return () => {\n window.removeEventListener('keydown', handleKeyPress);\n window.removeEventListener('mousedown', handleMouseClick);\n };\n }, [mountId]);\n\n /**\n * note: when there is a change made here, the same change must be made in Tunnel component\n */\n return (\n <>\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n );\n};\n\nexport default App;\n","import { logger, getEventDescription, stringMatchesSomePattern } from '@sentry/utils';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\n/** Options for the InboundFilters integration */\n\n/** Inbound filters configurable by the user */\nclass InboundFilters {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'InboundFilters';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = InboundFilters.id;}\n\n constructor( _options = {}) {;this._options = _options;InboundFilters.prototype.__init.call(this);}\n\n /**\n * @inheritDoc\n */\n setupOnce(addGlobalEventProcessor, getCurrentHub) {\n const eventProcess = (event) => {\n const hub = getCurrentHub();\n if (hub) {\n const self = hub.getIntegration(InboundFilters);\n if (self) {\n const client = hub.getClient();\n const clientOptions = client ? client.getOptions() : {};\n const options = _mergeOptions(self._options, clientOptions);\n return _shouldDropEvent(event, options) ? null : event;\n }\n }\n return event;\n };\n\n eventProcess.id = this.name;\n addGlobalEventProcessor(eventProcess);\n }\n} InboundFilters.__initStatic();\n\n/** JSDoc */\nfunction _mergeOptions(\n internalOptions = {},\n clientOptions = {},\n) {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...DEFAULT_IGNORE_ERRORS,\n ],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\n/** JSDoc */\nfunction _shouldDropEvent(event, options) {\n if (options.ignoreInternal && _isSentryError(event)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event, ignoreErrors) {\n if (!ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message => stringMatchesSomePattern(message, ignoreErrors));\n}\n\nfunction _isDeniedUrl(event, denyUrls) {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\n\nfunction _isAllowedUrl(event, allowUrls) {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\n\nfunction _getPossibleEventMessages(event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n const { type = '', value = '' } = (event.exception.values && event.exception.values[0]) || {};\n return [`${value}`, `${type}: ${value}`];\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(`Cannot extract message for event ${getEventDescription(event)}`);\n return [];\n }\n }\n return [];\n}\n\nfunction _isSentryError(event) {\n try {\n // @ts-ignore can't be a sentry error if undefined\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames = []) {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event) {\n try {\n let frames;\n try {\n // @ts-ignore we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n\nexport { InboundFilters, _mergeOptions, _shouldDropEvent };\n//# sourceMappingURL=inboundfilters.js.map\n","import { getOriginalFunction } from '@sentry/utils';\n\nlet originalFunctionToString;\n\n/** Patch toString calls to return proper name for wrapped functions */\nclass FunctionToString {constructor() { FunctionToString.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'FunctionToString';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = FunctionToString.id;}\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function ( ...args) {\n const context = getOriginalFunction(this) || this;\n return originalFunctionToString.apply(context, args);\n };\n }\n} FunctionToString.__initStatic();\n\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map\n","import { arrayify, logger } from '@sentry/utils';\nimport { getCurrentHub } from './hub.js';\nimport { addGlobalEventProcessor } from './scope.js';\n\nconst installedIntegrations = [];\n\n/** Map of integrations assigned to a client */\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preseve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations) {\n const integrationsByName = {};\n\n integrations.forEach(currentInstance => {\n const { name } = currentInstance;\n\n const existingInstance = integrationsByName[name];\n\n // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n // default instance to overwrite an existing user instance\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n\n integrationsByName[name] = currentInstance;\n });\n\n return Object.values(integrationsByName);\n}\n\n/** Gets integrations to install */\nfunction getIntegrationsToSetup(options) {\n const defaultIntegrations = options.defaultIntegrations || [];\n const userIntegrations = options.integrations;\n\n // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n defaultIntegrations.forEach(integration => {\n integration.isDefaultInstance = true;\n });\n\n let integrations;\n\n if (Array.isArray(userIntegrations)) {\n integrations = [...defaultIntegrations, ...userIntegrations];\n } else if (typeof userIntegrations === 'function') {\n integrations = arrayify(userIntegrations(defaultIntegrations));\n } else {\n integrations = defaultIntegrations;\n }\n\n const finalIntegrations = filterDuplicates(integrations);\n\n // The `Debug` integration prints copies of the `event` and `hint` which will be passed to `beforeSend` or\n // `beforeSendTransaction`. It therefore has to run after all other integrations, so that the changes of all event\n // processors will be reflected in the printed values. For lack of a more elegant way to guarantee that, we therefore\n // locate it and, assuming it exists, pop it out of its current spot and shove it onto the end of the array.\n const debugIndex = finalIntegrations.findIndex(integration => integration.name === 'Debug');\n if (debugIndex !== -1) {\n const [debugInstance] = finalIntegrations.splice(debugIndex, 1);\n finalIntegrations.push(debugInstance);\n }\n\n return finalIntegrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nfunction setupIntegrations(integrations) {\n const integrationIndex = {};\n\n integrations.forEach(integration => {\n integrationIndex[integration.name] = integration;\n\n if (installedIntegrations.indexOf(integration.name) === -1) {\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Integration installed: ${integration.name}`);\n }\n });\n\n return integrationIndex;\n}\n\nexport { getIntegrationsToSetup, installedIntegrations, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n","import { _optionalChain } from './buildPolyfills';\n\nconst STACKTRACE_LIMIT = 50;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nfunction createStackParser(...parsers) {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack, skipFirst = 0) => {\n const frames = [];\n\n for (const line of stack.split('\\n').slice(skipFirst)) {\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = line.replace(/\\(error: (.*)\\)/, '$1');\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nfunction stackParserFromStackParserOptions(stackParser) {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * @hidden\n */\nfunction stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n\n let localStack = stack;\n\n const firstFrameFunction = localStack[0].function || '';\n const lastFrameFunction = localStack[localStack.length - 1].function || '';\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(frame => ({\n ...frame,\n filename: frame.filename || localStack[0].filename,\n function: frame.function || '?',\n }))\n .reverse();\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nfunction getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\n// eslint-disable-next-line complexity\nfunction node(getModule) {\n const FILENAME_MATCH = /^\\s*[-]{4,}$/;\n const FULL_MATCH = /at (?:async )?(?:(.+?)\\s+\\()?(?:(.+):(\\d+):(\\d+)?|([^)]+))\\)?/;\n\n // eslint-disable-next-line complexity\n return (line) => {\n if (line.match(FILENAME_MATCH)) {\n return {\n filename: line,\n };\n }\n\n const lineMatch = line.match(FULL_MATCH);\n if (!lineMatch) {\n return undefined;\n }\n\n let object;\n let method;\n let functionName;\n let typeName;\n let methodName;\n\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n\n let methodStart = functionName.lastIndexOf('.');\n if (functionName[methodStart - 1] === '.') {\n methodStart--;\n }\n\n if (methodStart > 0) {\n object = functionName.substr(0, methodStart);\n method = functionName.substr(methodStart + 1);\n const objectEnd = object.indexOf('.Module');\n if (objectEnd > 0) {\n functionName = functionName.substr(objectEnd + 1);\n object = object.substr(0, objectEnd);\n }\n }\n typeName = undefined;\n }\n\n if (method) {\n typeName = object;\n methodName = method;\n }\n\n if (method === '') {\n methodName = undefined;\n functionName = undefined;\n }\n\n if (functionName === undefined) {\n methodName = methodName || '';\n functionName = typeName ? `${typeName}.${methodName}` : methodName;\n }\n\n const filename = _optionalChain([lineMatch, 'access', _ => _[2], 'optionalAccess', _2 => _2.startsWith, 'call', _3 => _3('file://')]) ? lineMatch[2].substr(7) : lineMatch[2];\n const isNative = lineMatch[5] === 'native';\n const isInternal =\n isNative || (filename && !filename.startsWith('/') && !filename.startsWith('.') && filename.indexOf(':\\\\') !== 1);\n\n // in_app is all that's not an internal Node function or a module within node_modules\n // note that isNative appears to return true even for node core libraries\n // see https://github.com/getsentry/raven-node/issues/176\n const in_app = !isInternal && filename !== undefined && !filename.includes('node_modules/');\n\n return {\n filename,\n module: _optionalChain([getModule, 'optionalCall', _4 => _4(filename)]),\n function: functionName,\n lineno: parseInt(lineMatch[3], 10) || undefined,\n colno: parseInt(lineMatch[4], 10) || undefined,\n in_app,\n };\n };\n}\n\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/utils so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\nfunction nodeStackLineParser(getModule) {\n return [90, node(getModule)];\n}\n\nexport { createStackParser, getFunctionName, nodeStackLineParser, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n","import { logger } from './logger.js';\nimport { getGlobalObject } from './worldwide.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMException() {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsFetch() {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nfunction supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(WINDOW.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement ) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReportingObserver() {\n return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' ,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chrome = (WINDOW ).chrome;\n const isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n\nexport { isNativeFetch, supportsDOMError, supportsDOMException, supportsErrorEvent, supportsFetch, supportsHistory, supportsNativeFetch, supportsReferrerPolicy, supportsReportingObserver };\n//# sourceMappingURL=supports.js.map\n","import { isInstanceOf, isString } from './is.js';\nimport { logger, CONSOLE_LEVELS } from './logger.js';\nimport { fill } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\nimport { supportsNativeFetch, supportsHistory } from './supports.js';\nimport { getGlobalObject } from './worldwide.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nconst handlers = {};\nconst instrumented = {};\n\n/** Instruments given API */\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('unknown instrumentation type:', type);\n return;\n }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addInstrumentationHandler(type, callback) {\n handlers[type] = handlers[type] || [];\n (handlers[type] ).push(callback);\n instrument(type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (const handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in WINDOW)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level) {\n if (!(level in WINDOW.console)) {\n return;\n }\n\n fill(WINDOW.console, level, function (originalConsoleMethod) {\n return function (...args) {\n triggerHandlers('console', { args, level });\n\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(WINDOW.console, args);\n }\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(WINDOW, 'fetch', function (originalFetch) {\n return function (...args) {\n const handlerData = {\n args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(WINDOW, args).then(\n (response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs = []) {\n if ('Request' in WINDOW && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs = []) {\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in WINDOW && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in WINDOW)) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen) {\n return function ( ...args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const url = args[1];\n const xhrInfo = (xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n });\n\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler = function () {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr,\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function (...readyStateArgs) {\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n } else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n return originalOpen.apply(xhr, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend) {\n return function ( ...args) {\n if (this.__sentry_xhr__ && args[0] !== undefined) {\n this.__sentry_xhr__.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref;\n\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = WINDOW.onpopstate;\n WINDOW.onpopstate = function ( ...args) {\n const to = WINDOW.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function ( ...args) {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(WINDOW.history, 'pushState', historyReplacementFunction);\n fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n\nconst debounceDuration = 1000;\nlet debounceTimerID;\nlet lastCapturedEvent;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous, current) {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event) {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n const target = event.target ;\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler, globalListener = false) {\n return (event) => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = WINDOW.setTimeout(() => {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in WINDOW)) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = (WINDOW )[target] && (WINDOW )[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (\n\n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this ;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount++;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener) {\n return function (\n\n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this ;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount--;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\nlet _oldOnErrorHandler = null;\n/** JSDoc */\nfunction instrumentError() {\n _oldOnErrorHandler = WINDOW.onerror;\n\n WINDOW.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n url,\n });\n\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nlet _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = WINDOW.onunhandledrejection;\n\n WINDOW.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}\n\nexport { addInstrumentationHandler };\n//# sourceMappingURL=instrument.js.map\n","/** An error emitted by Sentry SDKs and related utilities. */\nclass SentryError extends Error {\n /** Display name of this error instance. */\n\n constructor( message, logLevel = 'warn') {\n super(message);this.message = message;;\n\n this.name = new.target.prototype.constructor.name;\n // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line\n // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes\n // instances of `SentryError` fail `obj instanceof SentryError` checks.\n Object.setPrototypeOf(this, new.target.prototype);\n this.logLevel = logLevel;\n }\n}\n\nexport { SentryError };\n//# sourceMappingURL=error.js.map\n","import { SentryError } from './error.js';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol) {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nfunction dsnToString(dsn, withPassword = false) {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents\n */\nfunction dsnFromString(str) {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(`Invalid Sentry Dsn: ${str}`);\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() ;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol , publicKey });\n}\n\nfunction dsnFromComponents(components) {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn) {\n if (!(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n return;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n requiredComponents.forEach(component => {\n if (!dsn[component]) {\n throw new SentryError(`Invalid Sentry Dsn: ${component} missing`);\n }\n });\n\n if (!projectId.match(/^\\d+$/)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n }\n\n if (!isValidProtocol(protocol)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid port ${port}`);\n }\n\n return true;\n}\n\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nfunction makeDsn(from) {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n validateDsn(components);\n return components;\n}\n\nexport { dsnFromString, dsnToString, makeDsn };\n//# sourceMappingURL=dsn.js.map\n","import { isNaN, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction normalize(input, depth = +Infinity, maxProperties = +Infinity) {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object,\n // Default Node.js REPL depth\n depth = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize = 100 * 1024,\n) {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key,\n value,\n depth = +Infinity,\n maxProperties = +Infinity,\n memo = memoBuilder(),\n) {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (value === null || (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))) {\n return value ;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value )['__sentry_skip_normalization__']) {\n return value ;\n }\n\n // We're also done if we've reached the max depth\n if (depth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n const valueWithToJSON = value ;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, depth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) ;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = convertToPlainObject(value );\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n\n numAdded++;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value,\n) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n return `[object ${(Object.getPrototypeOf(value) ).constructor.name}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\nexport { normalize, normalizeToSize, visit as walk };\n//# sourceMappingURL=normalize.js.map\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Helper to decycle json objects\n */\nfunction memoBuilder() {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner = hasWeakSet ? new WeakSet() : [];\n function memoize(obj) {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj) {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n\nexport { memoBuilder };\n//# sourceMappingURL=memo.js.map\n","import { dsnToString } from './dsn.js';\nimport { normalize } from './normalize.js';\nimport { dropUndefinedKeys } from './object.js';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction createEnvelope(headers, items = []) {\n return [headers, items] ;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction addItemToEnvelope(envelope, newItem) {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] ;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n */\nfunction forEachEnvelopeItem(\n envelope,\n callback,\n) {\n const envelopeItems = envelope[1];\n envelopeItems.forEach((envelopeItem) => {\n const envelopeItemType = envelopeItem[0].type;\n callback(envelopeItem, envelopeItemType);\n });\n}\n\nfunction encodeUTF8(input, textEncoder) {\n const utf8 = textEncoder || new TextEncoder();\n return utf8.encode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nfunction serializeEnvelope(envelope, textEncoder) {\n const [envHeaders, items] = envelope;\n\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts = JSON.stringify(envHeaders);\n\n function append(next) {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts, textEncoder), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next, textEncoder) : next);\n }\n }\n\n for (const item of items) {\n const [itemHeaders, payload] = item;\n\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n\n if (typeof payload === 'string' || payload instanceof Uint8Array) {\n append(payload);\n } else {\n let stringifiedPayload;\n try {\n stringifiedPayload = JSON.stringify(payload);\n } catch (e) {\n // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.strinify()` still\n // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n // performance impact but in this case a performance hit is better than throwing.\n stringifiedPayload = JSON.stringify(normalize(payload));\n }\n append(stringifiedPayload);\n }\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers) {\n const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n const merged = new Uint8Array(totalLength);\n let offset = 0;\n for (const buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\n/**\n * Parses an envelope\n */\nfunction parseEnvelope(\n env,\n textEncoder,\n textDecoder,\n) {\n let buffer = typeof env === 'string' ? textEncoder.encode(env) : env;\n\n function readBinary(length) {\n const bin = buffer.subarray(0, length);\n // Replace the buffer with the remaining data excluding trailing newline\n buffer = buffer.subarray(length + 1);\n return bin;\n }\n\n function readJson() {\n let i = buffer.indexOf(0xa);\n // If we couldn't find a newline, we must have found the end of the buffer\n if (i < 0) {\n i = buffer.length;\n }\n\n return JSON.parse(textDecoder.decode(readBinary(i))) ;\n }\n\n const envelopeHeader = readJson();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const items = [];\n\n while (buffer.length) {\n const itemHeader = readJson();\n const binaryLength = typeof itemHeader.length === 'number' ? itemHeader.length : undefined;\n\n items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n }\n\n return [envelopeHeader, items];\n}\n\n/**\n * Creates attachment envelope items\n */\nfunction createAttachmentEnvelopeItem(\n attachment,\n textEncoder,\n) {\n const buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data, textEncoder) : attachment.data;\n\n return [\n dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n }),\n buffer,\n ];\n}\n\nconst ITEM_TYPE_TO_DATA_CATEGORY_MAP = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n profile: 'profile',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nfunction envelopeItemTypeToDataCategory(type) {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\n/** Extracts the minimal SDK info from from the metadata or an events */\nfunction getSdkMetadataForEnvelopeHeader(metadataOrEvent) {\n if (!metadataOrEvent || !metadataOrEvent.sdk) {\n return;\n }\n const { name, version } = metadataOrEvent.sdk;\n return { name, version };\n}\n\n/**\n * Creates event envelope headers, based on event, sdk info and tunnel\n * Note: This function was extracted from the core package to make it available in Replay\n */\nfunction createEventEnvelopeHeaders(\n event,\n sdkInfo,\n tunnel,\n dsn,\n) {\n const dynamicSamplingContext = event.sdkProcessingMetadata && event.sdkProcessingMetadata.dynamicSamplingContext;\n\n return {\n event_id: event.event_id ,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n ...(event.type === 'transaction' &&\n dynamicSamplingContext && {\n trace: dropUndefinedKeys({ ...dynamicSamplingContext }),\n }),\n };\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, createEventEnvelopeHeaders, envelopeItemTypeToDataCategory, forEachEnvelopeItem, getSdkMetadataForEnvelopeHeader, parseEnvelope, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { urlEncode, makeDsn, dsnToString } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn) {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn) {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn, sdkInfo) {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n ...(sdkInfo && { sentry_client: `${sdkInfo.name}/${sdkInfo.version}` }),\n });\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nfunction getEnvelopeEndpointWithUrlEncodedAuth(\n dsn,\n // TODO (v8): Remove `tunnelOrOptions` in favor of `options`, and use the substitute code below\n // options: ClientOptions = {} as ClientOptions,\n tunnelOrOptions = {} ,\n) {\n // TODO (v8): Use this code instead\n // const { tunnel, _metadata = {} } = options;\n // return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, _metadata.sdk)}`;\n\n const tunnel = typeof tunnelOrOptions === 'string' ? tunnelOrOptions : tunnelOrOptions.tunnel;\n const sdkInfo =\n typeof tunnelOrOptions === 'string' || !tunnelOrOptions._metadata ? undefined : tunnelOrOptions._metadata.sdk;\n\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nfunction getReportDialogEndpoint(\n dsnLike,\n dialogOptions\n\n,\n) {\n const dsn = makeDsn(dsnLike);\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n const user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] )}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n","import { makeDsn, logger, checkOrSetAlreadyCaught, isPrimitive, resolvedSyncPromise, addItemToEnvelope, createAttachmentEnvelopeItem, SyncPromise, uuid4, dateTimestampInSeconds, normalize, truncate, rejectedSyncPromise, SentryError, isThenable, isPlainObject } from '@sentry/utils';\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegrations } from './integration.js';\nimport { Scope } from './scope.js';\nimport { updateSession } from './session.js';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nclass BaseClient {\n /** Options passed to the SDK. */\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n\n /** Array of set up integrations. */\n __init() {this._integrations = {};}\n\n /** Indicates whether this client's integrations have been set up. */\n __init2() {this._integrationsInitialized = false;}\n\n /** Number of calls being processed */\n __init3() {this._numProcessing = 0;}\n\n /** Holds flushable */\n __init4() {this._outcomes = {};}\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n constructor(options) {;BaseClient.prototype.__init.call(this);BaseClient.prototype.__init2.call(this);BaseClient.prototype.__init3.call(this);BaseClient.prototype.__init4.call(this);\n this._options = options;\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options);\n this._transport = options.transport({\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('No DSN provided, client will not do anything.');\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n captureException(exception, hint, scope) {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId = hint && hint.event_id;\n\n this._process(\n this.eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n level,\n hint,\n scope,\n ) {\n let eventId = hint && hint.event_id;\n\n const promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(String(message), level, hint)\n : this.eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, scope) {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId = hint && hint.event_id;\n\n this._process(\n this._captureEvent(event, hint, scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureSession(session) {\n if (!this._isEnabled()) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n\n if (!(typeof session.release === 'string')) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n getDsn() {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n getOptions() {\n return this._options;\n }\n\n /**\n * @inheritDoc\n */\n getTransport() {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n flush(timeout) {\n const transport = this._transport;\n if (transport) {\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n close(timeout) {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n return result;\n });\n }\n\n /**\n * Sets up the integrations\n */\n setupIntegrations() {\n if (this._isEnabled() && !this._integrationsInitialized) {\n this._integrations = setupIntegrations(this._options.integrations);\n this._integrationsInitialized = true;\n }\n }\n\n /**\n * Gets an installed integration by its `id`.\n *\n * @returns The installed integration or `undefined` if no integration with that `id` was installed.\n */\n getIntegrationById(integrationId) {\n return this._integrations[integrationId];\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n try {\n return (this._integrations[integration.id] ) || null;\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint = {}) {\n if (this._dsn) {\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(\n env,\n createAttachmentEnvelopeItem(\n attachment,\n this._options.transportOptions && this._options.transportOptions.textEncoder,\n ),\n );\n }\n\n this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n sendSession(session) {\n if (this._dsn) {\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n recordDroppedEvent(reason, category, _event) {\n // Note: we use `event` in replay, where we overwrite this hook.\n\n if (this._options.sendClientReports) {\n // We want to track each category (error, transaction, session) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n // With typescript 4.1 we could even use template literal types\n const key = `${reason}:${category}`;\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Adding outcome: \"${key}\"`);\n\n // The following works because undefined + 1 === NaN and NaN is falsy\n this._outcomes[key] = this._outcomes[key] + 1 || 1;\n }\n }\n\n /** Updates existing session based on the provided event */\n _updateSessionFromEvent(session, event) {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n _isClientDoneProcessing(timeout) {\n return new SyncPromise(resolve => {\n let ticked = 0;\n const tick = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n _isEnabled() {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n _prepareEvent(event, hint, scope) {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = this.getOptions();\n const prepared = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n let finalScope = scope;\n if (hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n\n // We prepare the result here with a resolved Event.\n let result = resolvedSyncPromise(prepared);\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n //\n // We need to check for the existence of `finalScope.getAttachments`\n // because `getAttachments` can be undefined if users are using an older version\n // of `@sentry/core` that does not have the `getAttachments` method.\n // See: https://github.com/getsentry/sentry-javascript/issues/5229\n if (finalScope && finalScope.getAttachments) {\n // Collect attachments from the hint and scope\n const attachments = [...(hint.attachments || []), ...finalScope.getAttachments()];\n\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(evt => {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return this._normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n }\n\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n _normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n\n const normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n // We cannot use the spread operator here because `toJSON` on `span` is non-enumerable\n if (span.data) {\n span.data = normalize(span.data, depth, maxBreadth);\n }\n return span;\n });\n }\n\n return normalized;\n }\n\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n _applyClientOptions(event) {\n const options = this.getOptions();\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n }\n\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n _applyIntegrationsMetadata(event) {\n const integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationsArray];\n }\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n _captureEvent(event, hint = {}, scope) {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for\n // control flow, log just the message (no stack) as a log-level log.\n const sentryError = reason ;\n if (sentryError.logLevel === 'log') {\n logger.log(sentryError.message);\n } else {\n logger.warn(sentryError);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n _processEvent(event, hint, scope) {\n const options = this.getOptions();\n const { sampleRate } = options;\n\n if (!this._isEnabled()) {\n return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.', 'log'));\n }\n\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || 'error';\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (isError && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n this.recordDroppedEvent('sample_rate', 'error', event);\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n 'log',\n ),\n );\n }\n\n return this._prepareEvent(event, hint, scope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', eventType, event);\n throw new SentryError('An event processor returned `null`, will not send event.', 'log');\n }\n\n const isInternalException = hint.data && (hint.data ).__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n\n const result = processBeforeSend(options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', event.type || 'error', event);\n throw new SentryError(`${beforeSendLabel} returned \\`null\\`, will not send event.`, 'log');\n }\n\n const session = scope && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n changes: [\n ...transactionInfo.changes,\n {\n source,\n // use the same timestamp as the processed event.\n timestamp: processedEvent.timestamp ,\n propagations: transactionInfo.propagations,\n },\n ],\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason ,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n _process(promise) {\n this._numProcessing++;\n void promise.then(\n value => {\n this._numProcessing--;\n return value;\n },\n reason => {\n this._numProcessing--;\n return reason;\n },\n );\n }\n\n /**\n * @inheritdoc\n */\n _sendEnvelope(envelope) {\n if (this._transport && this._dsn) {\n this._transport.send(envelope).then(null, reason => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Error while sending event:', reason);\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Transport disabled');\n }\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n _clearOutcomes() {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.keys(outcomes).map(key => {\n const [reason, category] = key.split(':') ;\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n });\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n beforeSendResult,\n beforeSendLabel,\n) {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n event => {\n if (!isPlainObject(event) && event !== null) {\n throw new SentryError(invalidValueError);\n }\n return event;\n },\n e => {\n throw new SentryError(`${beforeSendLabel} rejected with ${e}`);\n },\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw new SentryError(invalidValueError);\n }\n return beforeSendResult;\n}\n\n/**\n * Process the matching `beforeSendXXX` callback.\n */\nfunction processBeforeSend(\n options,\n event,\n hint,\n) {\n const { beforeSend, beforeSendTransaction } = options;\n\n if (isErrorEvent(event) && beforeSend) {\n return beforeSend(event, hint);\n }\n\n if (isTransactionEvent(event) && beforeSendTransaction) {\n return beforeSendTransaction(event, hint);\n }\n\n return event;\n}\n\nfunction isErrorEvent(event) {\n return event.type === undefined;\n}\n\nfunction isTransactionEvent(event) {\n return event.type === 'transaction';\n}\n\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map\n","import { getSdkMetadataForEnvelopeHeader, dsnToString, createEnvelope, createEventEnvelopeHeaders } from '@sentry/utils';\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nfunction createSessionEnvelope(\n session,\n dsn,\n metadata,\n tunnel,\n) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n const envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n };\n\n const envelopeItem =\n 'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session];\n\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nfunction createEventEnvelope(\n event,\n dsn,\n metadata,\n tunnel,\n) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n const eventType = event.type || 'event';\n\n enhanceEventWithSdkInfo(event, metadata && metadata.sdk);\n\n const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete event.sdkProcessingMetadata;\n\n const eventItem = [{ type: eventType }, event];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\nexport { createEventEnvelope, createSessionEnvelope };\n//# sourceMappingURL=envelope.js.map\n","const SDK_VERSION = '7.28.1';\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { isEvent, extractExceptionKeysForMessage, normalizeToSize, addExceptionMechanism, resolvedSyncPromise, isErrorEvent, isDOMError, isDOMException, addExceptionTypeValue, isError, isPlainObject } from '@sentry/utils';\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nfunction exceptionFromError(stackParser, ex) {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(stackParser, ex);\n\n const exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nfunction eventFromPlainObject(\n stackParser,\n exception,\n syntheticException,\n isUnhandledRejection,\n) {\n const hub = getCurrentHub();\n const client = hub.getClient();\n const normalizeDepth = client && client.getOptions().normalizeDepth;\n\n const event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: `Non-Error ${\n isUnhandledRejection ? 'promise rejection' : 'exception'\n } captured with keys: ${extractExceptionKeysForMessage(exception)}`,\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception, normalizeDepth),\n },\n };\n\n if (syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n (event.exception ).values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromError(stackParser, ex) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nfunction parseStackFrames(\n stackParser,\n ex,\n) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const popSize = getPopSize(ex);\n\n try {\n return stackParser(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex) {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex) {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nfunction eventFromException(\n stackParser,\n exception,\n hint,\n attachStacktrace,\n) {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n stackParser,\n message,\n // eslint-disable-next-line deprecation/deprecation\n level = 'info',\n hint,\n attachStacktrace,\n) {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nfunction eventFromUnknownInput(\n stackParser,\n exception,\n syntheticException,\n attachStacktrace,\n isUnhandledRejection,\n) {\n let event;\n\n if (isErrorEvent(exception ) && (exception ).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception ;\n return eventFromError(stackParser, errorEvent.error );\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception ) || isDOMException(exception )) {\n const domException = exception ;\n\n if ('stack' in (exception )) {\n event = eventFromError(stackParser, exception );\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception ;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception , syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromString(\n stackParser,\n input,\n syntheticException,\n attachStacktrace,\n) {\n const event = {\n message: input,\n };\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: input, stacktrace: { frames } }],\n };\n }\n }\n\n return event;\n}\n\nexport { eventFromError, eventFromException, eventFromMessage, eventFromPlainObject, eventFromString, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n","import { withScope, captureException } from '@sentry/core';\nimport { GLOBAL_OBJ, getOriginalFunction, addExceptionTypeValue, addExceptionMechanism, markFunctionWrapped, addNonEnumerableProperty } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nlet ignoreOnError = 0;\n\n/**\n * @hidden\n */\nfunction shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nfunction ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError++;\n setTimeout(() => {\n ignoreOnError--;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nfunction wrap(\n fn,\n options\n\n = {},\n before,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n const sentryWrapped = function () {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope((scope) => {\n scope.addEventProcessor((event) => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') ;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get() {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\n\nexport { WINDOW, ignoreNextOnError, shouldIgnoreOnError, wrap };\n//# sourceMappingURL=helpers.js.map\n","// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nconst validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a member of the deprecated {@link Severity} enum.\n *\n * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.\n *\n * @param level String representation of Severity\n * @returns Severity\n */\nfunction severityFromString(level) {\n return severityLevelFromString(level) ;\n}\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nfunction severityLevelFromString(level) {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') ;\n}\n\nexport { severityFromString, severityLevelFromString, validSeverityLevels };\n//# sourceMappingURL=severity.js.map\n","/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url)\n\n {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nfunction stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Returns number of URL segments of a passed string URL.\n */\nfunction getNumberOfUrlSegments(url) {\n // split at '/' or at '\\/' to split regex urls correctly\n return url.split(/\\\\?\\//).filter(s => s.length > 0 && s !== ',').length;\n}\n\nexport { getNumberOfUrlSegments, parseUrl, stripUrlQueryAndFragment };\n//# sourceMappingURL=url.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, getEventDescription, logger, htmlTreeAsString, severityLevelFromString, safeJoin, parseUrl } from '@sentry/utils';\nimport { WINDOW } from '../helpers.js';\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\n\n/** maxStringLength gets capped to prevent 100 breadcrumbs exceeding 1MB event payload size */\nconst MAX_ALLOWED_STRING_LENGTH = 1024;\n\nconst BREADCRUMB_INTEGRATION_ID = 'Breadcrumbs';\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nclass Breadcrumbs {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = BREADCRUMB_INTEGRATION_ID;}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = Breadcrumbs.id;}\n\n /**\n * Options of the breadcrumbs integration.\n */\n // This field is public, because we use it in the browser client to check if the `sentry` option is enabled.\n\n /**\n * @inheritDoc\n */\n constructor(options) {;Breadcrumbs.prototype.__init.call(this);\n this.options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n }\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n setupOnce() {\n if (this.options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n if (this.options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this.options.dom));\n }\n if (this.options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n if (this.options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n if (this.options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n }\n\n /**\n * Adds a breadcrumb for Sentry events or transactions if this option is enabled.\n */\n addSentryBreadcrumb(event) {\n if (this.options.sentry) {\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n }\n }\n} Breadcrumbs.__initStatic();\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _domBreadcrumb(dom) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function _innerDomBreadcrumb(handlerData) {\n let target;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n let maxStringLength =\n typeof dom === 'object' && typeof dom.maxStringLength === 'number' ? dom.maxStringLength : undefined;\n if (maxStringLength && maxStringLength > MAX_ALLOWED_STRING_LENGTH) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `\\`dom.maxStringLength\\` cannot exceed ${MAX_ALLOWED_STRING_LENGTH}, but a value of ${maxStringLength} was configured. Sentry will use ${MAX_ALLOWED_STRING_LENGTH} instead.`,\n );\n maxStringLength = MAX_ALLOWED_STRING_LENGTH;\n }\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target , { keyAttrs, maxStringLength })\n : htmlTreeAsString(handlerData.event , { keyAttrs, maxStringLength });\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb(\n {\n category: `ui.${handlerData.name}`,\n message: target,\n },\n {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n },\n );\n }\n\n return _innerDomBreadcrumb;\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _consoleBreadcrumb(handlerData) {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/6010\n // see: https://github.com/getsentry/sentry-javascript/issues/5916\n for (let i = 0; i < handlerData.args.length; i++) {\n if (handlerData.args[i] === 'ref=Ref<') {\n handlerData.args[i + 1] = 'viewRef';\n break;\n }\n }\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _xhrBreadcrumb(handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n\n const { method, url, status_code, body } = handlerData.xhr.__sentry_xhr__ || {};\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'xhr',\n data: {\n method,\n url,\n status_code,\n },\n type: 'http',\n },\n {\n xhr: handlerData.xhr,\n input: body,\n },\n );\n\n return;\n }\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _fetchBreadcrumb(handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: handlerData.fetchData,\n level: 'error',\n type: 'http',\n },\n {\n data: handlerData.error,\n input: handlerData.args,\n },\n );\n } else {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: {\n ...handlerData.fetchData,\n status_code: handlerData.response.status,\n },\n type: 'http',\n },\n {\n input: handlerData.args,\n response: handlerData.response,\n },\n );\n }\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _historyBreadcrumb(handlerData) {\n let from = handlerData.from;\n let to = handlerData.to;\n const parsedLoc = parseUrl(WINDOW.location.href);\n let parsedFrom = parseUrl(from);\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n}\n\nexport { BREADCRUMB_INTEGRATION_ID, Breadcrumbs };\n//# sourceMappingURL=breadcrumbs.js.map\n","import { _optionalChain } from '@sentry/utils/esm/buildPolyfills';\nimport { BaseClient, SDK_VERSION, getEnvelopeEndpointWithUrlEncodedAuth } from '@sentry/core';\nimport { logger, createClientReportEnvelope, dsnToString, serializeEnvelope } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder.js';\nimport { WINDOW } from './helpers.js';\nimport { BREADCRUMB_INTEGRATION_ID } from './integrations/breadcrumbs.js';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see @sentry/types Options for more information.\n */\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nclass BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(options);\n\n if (options.sendClientReports && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n if (WINDOW.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n eventFromMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n level = 'info',\n hint,\n ) {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint) {\n // We only want to add the sentry event breadcrumb when the user has the breadcrumb integration installed and\n // activated its `sentry` option.\n // We also do not want to use the `Breadcrumbs` class here directly, because we do not want it to be included in\n // bundles, if it is not used by the SDK.\n // This all sadly is a bit ugly, but we currently don't have a \"pre-send\" hook on the integrations so we do it this\n // way for now.\n const breadcrumbIntegration = this.getIntegrationById(BREADCRUMB_INTEGRATION_ID) ;\n // We check for definedness of `addSentryBreadcrumb` in case users provided their own integration with id\n // \"Breadcrumbs\" that does not have this function.\n _optionalChain([breadcrumbIntegration, 'optionalAccess', _ => _.addSentryBreadcrumb, 'optionalCall', _2 => _2(event)]);\n\n super.sendEvent(event, hint);\n }\n\n /**\n * @inheritDoc\n */\n _prepareEvent(event, hint, scope) {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No outcomes to send');\n return;\n }\n\n if (!this._dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('Sending outcomes:', outcomes);\n\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, this._options);\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n try {\n const isRealNavigator = Object.prototype.toString.call(WINDOW && WINDOW.navigator) === '[object Navigator]';\n const hasSendBeacon = isRealNavigator && typeof WINDOW.navigator.sendBeacon === 'function';\n // Make sure beacon is not used if user configures custom transport options\n if (hasSendBeacon && !this._options.transportOptions) {\n // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n const sendBeacon = WINDOW.navigator.sendBeacon.bind(WINDOW.navigator);\n sendBeacon(url, serializeEnvelope(envelope));\n } else {\n // If beacon is not supported or if they are using the tunnel option\n // use our regular transport to send client reports to Sentry.\n this._sendEnvelope(envelope);\n }\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(e);\n }\n }\n}\n\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map\n","/**\n * Polyfill for the optional chain operator, `?.`, given previous conversion of the expression into an array of values,\n * descriptors, and functions.\n *\n * Adapted from Sucrase (https://github.com/alangpierce/sucrase)\n * See https://github.com/alangpierce/sucrase/blob/265887868966917f3b924ce38dfad01fbab1329f/src/transformers/OptionalChainingNullishTransformer.ts#L15\n *\n * @param ops Array result of expression conversion\n * @returns The value of the expression\n */\nfunction _optionalChain(ops) {\n let lastAccessLHS = undefined;\n let value = ops[0];\n let i = 1;\n while (i < ops.length) {\n const op = ops[i] ;\n const fn = ops[i + 1] ;\n i += 2;\n // by checking for loose equality to `null`, we catch both `null` and `undefined`\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n // really we're meaning to return `undefined` as an actual value here, but it saves bytes not to write it\n return;\n }\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn((...args) => (value ).call(lastAccessLHS, ...args));\n lastAccessLHS = undefined;\n }\n }\n return value;\n}\n\n// Sucrase version\n// function _optionalChain(ops) {\n// let lastAccessLHS = undefined;\n// let value = ops[0];\n// let i = 1;\n// while (i < ops.length) {\n// const op = ops[i];\n// const fn = ops[i + 1];\n// i += 2;\n// if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n// return undefined;\n// }\n// if (op === 'access' || op === 'optionalAccess') {\n// lastAccessLHS = value;\n// value = fn(value);\n// } else if (op === 'call' || op === 'optionalCall') {\n// value = fn((...args) => value.call(lastAccessLHS, ...args));\n// lastAccessLHS = undefined;\n// }\n// }\n// return value;\n// }\n\nexport { _optionalChain };\n//# sourceMappingURL=_optionalChain.js.map\n","import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nfunction createClientReportEnvelope(\n discarded_events,\n dsn,\n timestamp,\n) {\n const clientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n","import { createStackParser } from '@sentry/utils';\n\n// global reference to slice\nconst UNKNOWN_FUNCTION = '?';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename, func, lineno, colno) {\n const frame = {\n filename,\n function: func,\n // All browser frames are considered in_app\n in_app: true,\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nconst chromeRegex =\n /^\\s*at (?:(.*\\).*?|.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nconst chrome = line => {\n const parts = chromeRegex.exec(line);\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nconst chromeStackLineParser = [CHROME_PRIORITY, chrome];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|safari-extension|safari-web-extension|capacitor)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko = line => {\n const parts = geckoREgex.exec(line);\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nconst geckoStackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs = line => {\n const parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nconst winjsStackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10 = line => {\n const parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nconst opera10StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11 = line => {\n const parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nconst opera11StackLineParser = [OPERA11_PRIORITY, opera11];\n\nconst defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser];\n\nconst defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func, filename) => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n\nexport { chromeStackLineParser, defaultStackLineParsers, defaultStackParser, geckoStackLineParser, opera10StackLineParser, opera11StackLineParser, winjsStackLineParser };\n//# sourceMappingURL=stack-parsers.js.map\n","import { fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\nimport { WINDOW, wrap } from '../helpers.js';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nclass TryCatch {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'TryCatch';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = TryCatch.id;}\n\n /** JSDoc */\n\n /**\n * @inheritDoc\n */\n constructor(options) {;TryCatch.prototype.__init.call(this);\n this._options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n }\n\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n setupOnce() {\n if (this._options.setTimeout) {\n fill(WINDOW, 'setTimeout', _wrapTimeFunction);\n }\n\n if (this._options.setInterval) {\n fill(WINDOW, 'setInterval', _wrapTimeFunction);\n }\n\n if (this._options.requestAnimationFrame) {\n fill(WINDOW, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in WINDOW) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = this._options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n }\n} TryCatch.__initStatic();\n\n/** JSDoc */\nfunction _wrapTimeFunction(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( ...args) {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( callback) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\n/** JSDoc */\nfunction _wrapXHR(originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( ...args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original) {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapEventTarget(target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const globalObject = WINDOW ;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = globalObject[target] && globalObject[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original)\n\n {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n eventName,\n fn,\n options,\n ) {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn , {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n eventName,\n fn,\n options,\n ) {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = fn ;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n\nexport { TryCatch };\n//# sourceMappingURL=trycatch.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, isString, isPrimitive, isErrorEvent, getLocationHref, logger, addExceptionMechanism } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder.js';\nimport { shouldIgnoreOnError } from '../helpers.js';\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/** Global handlers */\nclass GlobalHandlers {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'GlobalHandlers';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = GlobalHandlers.id;}\n\n /** JSDoc */\n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n __init2() {this._installFunc = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };}\n\n /** JSDoc */\n constructor(options) {;GlobalHandlers.prototype.__init.call(this);GlobalHandlers.prototype.__init2.call(this);\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n setupOnce() {\n Error.stackTraceLimit = 50;\n const options = this._options;\n\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n // eslint-disable-next-line guard-for-in\n for (const key in options) {\n const installFunc = this._installFunc[key ];\n if (installFunc && options[key ]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key ] = undefined;\n }\n }\n }\n} GlobalHandlers.__initStatic();\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler() {\n addInstrumentationHandler(\n 'error',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (data) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n const { msg, url, line, column, error } = data;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n\n const event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onerror');\n },\n );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler() {\n addInstrumentationHandler(\n 'unhandledrejection',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (e) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n },\n );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _eventFromIncompleteOnError(msg, url, line, column) {\n const ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n const groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n const event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event, url, line, column) {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction addMechanismAndCapture(hub, error, event, type) {\n addExceptionMechanism(event, {\n handled: false,\n type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\n\nfunction getHubAndOptions() {\n const hub = getCurrentHub();\n const client = hub.getClient();\n const options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return [hub, options.stackParser, options.attachStacktrace];\n}\n\nexport { GlobalHandlers };\n//# sourceMappingURL=globalhandlers.js.map\n","import { getCurrentHub, addGlobalEventProcessor } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder.js';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\n/** Adds SDK info to an event. */\nclass LinkedErrors {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'LinkedErrors';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = LinkedErrors.id;}\n\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n constructor(options = {}) {;LinkedErrors.prototype.__init.call(this);\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n const client = getCurrentHub().getClient();\n if (!client) {\n return;\n }\n addGlobalEventProcessor((event, hint) => {\n const self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(client.getOptions().stackParser, self._key, self._limit, event, hint) : event;\n });\n }\n} LinkedErrors.__initStatic();\n\n/**\n * @inheritDoc\n */\nfunction _handler(\n parser,\n key,\n limit,\n event,\n hint,\n) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n const linkedErrors = _walkErrorTree(parser, limit, hint.originalException , key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n}\n\n/**\n * JSDOC\n */\nfunction _walkErrorTree(\n parser,\n limit,\n error,\n key,\n stack = [],\n) {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n const exception = exceptionFromError(parser, error[key]);\n return _walkErrorTree(parser, limit, error[key], key, [exception, ...stack]);\n}\n\nexport { LinkedErrors, _handler, _walkErrorTree };\n//# sourceMappingURL=linkederrors.js.map\n","import { logger } from '@sentry/utils';\n\n/** Deduplication filter */\nclass Dedupe {constructor() { Dedupe.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'Dedupe';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = Dedupe.id;}\n\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n setupOnce(addGlobalEventProcessor, getCurrentHub) {\n const eventProcessor = currentEvent => {\n const self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n };\n\n eventProcessor.id = this.name;\n addGlobalEventProcessor(eventProcessor);\n }\n} Dedupe.__initStatic();\n\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames ;\n previousFrames = previousFrames ;\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n const frameA = previousFrames[i];\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint ;\n previousFingerprint = previousFingerprint ;\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event) {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event) {\n const exception = event.exception;\n\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n\nexport { Dedupe };\n//# sourceMappingURL=dedupe.js.map\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { WINDOW } from '../helpers.js';\n\n/** HttpContext integration collects information about HTTP request headers */\nclass HttpContext {constructor() { HttpContext.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'HttpContext';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = HttpContext.id;}\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n addGlobalEventProcessor((event) => {\n if (getCurrentHub().getIntegration(HttpContext)) {\n // if none of the information we want exists, don't bother\n if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n return event;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (WINDOW.location && WINDOW.location.href);\n const { referrer } = WINDOW.document || {};\n const { userAgent } = WINDOW.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...(url && { url }), headers };\n\n return { ...event, request };\n }\n return event;\n });\n }\n} HttpContext.__initStatic();\n\nexport { HttpContext };\n//# sourceMappingURL=httpcontext.js.map\n","import { forEachEnvelopeItem, envelopeItemTypeToDataCategory, isRateLimited, resolvedSyncPromise, createEnvelope, serializeEnvelope, logger, updateRateLimits, SentryError, makePromiseBuffer } from '@sentry/utils';\n\nconst DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nfunction createTransport(\n options,\n makeRequest,\n buffer = makePromiseBuffer(options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE),\n) {\n let rateLimits = {};\n\n const flush = (timeout) => buffer.drain(timeout);\n\n function send(envelope) {\n const filteredEnvelopeItems = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n const envelopeItemDataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, envelopeItemDataCategory)) {\n const event = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent('ratelimit_backoff', envelopeItemDataCategory, event);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems );\n\n // Creates client report for each item in an envelope\n const recordEnvelopeLoss = (reason) => {\n forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n const event = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type), event);\n });\n };\n\n const requestTask = () =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope, options.textEncoder) }).then(\n response => {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n },\n error => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Failed while sending event:', error);\n recordEnvelopeLoss('network_error');\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error instanceof SentryError) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Skipped sending event because buffer is full.');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise();\n } else {\n throw error;\n }\n },\n );\n }\n\n return {\n send,\n flush,\n };\n}\n\nfunction getEventForEnvelopeItem(item, type) {\n if (type !== 'event' && type !== 'transaction') {\n return undefined;\n }\n\n return Array.isArray(item) ? (item )[1] : undefined;\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n","import { SentryError } from './error.js';\nimport { rejectedSyncPromise, SyncPromise, resolvedSyncPromise } from './syncpromise.js';\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nfunction makePromiseBuffer(limit) {\n const buffer = [];\n\n function isReady() {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n function remove(task) {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer) {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise because buffer limit was reached.'));\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout) {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n\nexport { makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n","// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\n\nconst DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nfunction parseRetryAfterHeader(header, now = Date.now()) {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that given category is disabled until for rate limiting\n */\nfunction disabledUntil(limits, category) {\n return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nfunction isRateLimited(limits, category, now = Date.now()) {\n return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n * Returns true if headers contains a non-empty rate limiting header.\n */\nfunction updateRateLimits(\n limits,\n { statusCode, headers },\n now = Date.now(),\n) {\n const updatedRateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *
,
,..\n * where each
is of the form\n * : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories] = limit.split(':', 2);\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(';')) {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n","import { isNativeFetch, logger } from '@sentry/utils';\nimport { WINDOW } from '../helpers.js';\n\nlet cachedFetchImpl = undefined;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction getNativeFetchImplementation() {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n /* eslint-disable @typescript-eslint/unbound-method */\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(WINDOW.fetch)) {\n return (cachedFetchImpl = WINDOW.fetch.bind(WINDOW));\n }\n\n const document = WINDOW.document;\n let fetchImpl = WINDOW.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(WINDOW));\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n\n/** Clears cached fetch impl */\nfunction clearCachedFetchImplementation() {\n cachedFetchImpl = undefined;\n}\n\nexport { clearCachedFetchImplementation, getNativeFetchImplementation };\n//# sourceMappingURL=utils.js.map\n","import { createTransport } from '@sentry/core';\nimport { rejectedSyncPromise } from '@sentry/utils';\nimport { clearCachedFetchImplementation, getNativeFetchImplementation } from './utils.js';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nfunction makeFetchTransport(\n options,\n nativeFetch = getNativeFetchImplementation(),\n) {\n function makeRequest(request) {\n const requestOptions = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n // frequently sending events right before the user is switching pages (eg. whenfinishing navigation transactions).\n // Gotchas:\n // - `keepalive` isn't supported by Firefox\n // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch), a request with `keepalive: true`\n // and a content length of > 64 kibibytes returns a network error. We will therefore only activate the flag when\n // we're below that limit.\n keepalive: request.body.length <= 65536,\n ...options.fetchOptions,\n };\n\n try {\n return nativeFetch(options.url, requestOptions).then(response => ({\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n }));\n } catch (e) {\n clearCachedFetchImplementation();\n return rejectedSyncPromise(e);\n }\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeFetchTransport };\n//# sourceMappingURL=fetch.js.map\n","import { createTransport } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nconst XHR_READYSTATE_DONE = 4;\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nfunction makeXHRTransport(options) {\n function makeRequest(request) {\n return new SyncPromise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onerror = reject;\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n resolve({\n statusCode: xhr.status,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n });\n }\n };\n\n xhr.open('POST', options.url);\n\n for (const header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeXHRTransport };\n//# sourceMappingURL=xhr.js.map\n","import { Integrations, getIntegrationsToSetup, initAndBind, getReportDialogEndpoint, getCurrentHub } from '@sentry/core';\nimport { stackParserFromStackParserOptions, supportsFetch, logger, resolvedSyncPromise, addInstrumentationHandler } from '@sentry/utils';\nimport { BrowserClient } from './client.js';\nimport { WINDOW, wrap as wrap$1 } from './helpers.js';\nimport './integrations/index.js';\nimport { defaultStackParser } from './stack-parsers.js';\nimport './transports/index.js';\nimport { TryCatch } from './integrations/trycatch.js';\nimport { Breadcrumbs } from './integrations/breadcrumbs.js';\nimport { GlobalHandlers } from './integrations/globalhandlers.js';\nimport { LinkedErrors } from './integrations/linkederrors.js';\nimport { Dedupe } from './integrations/dedupe.js';\nimport { HttpContext } from './integrations/httpcontext.js';\nimport { makeFetchTransport } from './transports/fetch.js';\nimport { makeXHRTransport } from './transports/xhr.js';\n\nconst defaultIntegrations = [\n new Integrations.InboundFilters(),\n new Integrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new HttpContext(),\n];\n\n/**\n * A magic string that build tooling can leverage in order to inject a release value into the SDK.\n */\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nfunction init(options = {}) {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n // This allows build tooling to find-and-replace __SENTRY_RELEASE__ to inject a release value\n if (typeof __SENTRY_RELEASE__ === 'string') {\n options.release = __SENTRY_RELEASE__;\n }\n\n // This supports the variable that sentry-webpack-plugin injects\n if (WINDOW.SENTRY_RELEASE && WINDOW.SENTRY_RELEASE.id) {\n options.release = WINDOW.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n const clientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || (supportsFetch() ? makeFetchTransport : makeXHRTransport),\n };\n\n initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nfunction showReportDialog(options = {}, hub = getCurrentHub()) {\n // doesn't work without a document (React Native)\n if (!WINDOW.document) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n const { client, scope } = hub.getStackTop();\n const dsn = options.dsn || (client && client.getDsn());\n if (!dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n\n const script = WINDOW.document.createElement('script');\n script.async = true;\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n\n const injectionPoint = WINDOW.document.head || WINDOW.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nfunction lastEventId() {\n return getCurrentHub().lastEventId();\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction forceLoad() {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction onLoad(callback) {\n callback();\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction flush(timeout) {\n const client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction close(timeout) {\n const client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction wrap(fn) {\n return wrap$1(fn)();\n}\n\nfunction startSessionOnHub(hub) {\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n if (typeof WINDOW.document === 'undefined') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n const hub = getCurrentHub();\n\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (!hub.captureSession) {\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSessionOnHub(hub);\n\n // We want to create a session for every navigation as well\n addInstrumentationHandler('history', ({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (!(from === undefined || from === to)) {\n startSessionOnHub(getCurrentHub());\n }\n });\n}\n\nexport { close, defaultIntegrations, flush, forceLoad, init, lastEventId, onLoad, showReportDialog, wrap };\n//# sourceMappingURL=sdk.js.map\n","export const SENTRY_IGNORE_ERROR_RULES: string[] = [\n 'top.GLOBALS',\n 'originalCreateNotification',\n 'canvas.contentDocument',\n 'MyApp_RemoveAllHighlights',\n \"Can't find variable: ZiteReader\",\n 'jigsaw is not defined',\n 'ComboSearch is not defined',\n 'atomicFindClose',\n 'fb_xd_fragment',\n 'bmi_SafeAddOnload',\n 'EBCallBackMessageReceived',\n 'conduitPage',\n];\n\nexport const SENTRY_IGNORE_URL_RULES: RegExp[] = [\n /graph\\.facebook\\.com/i,\n /connect\\.facebook\\.net\\/en_US\\/all\\.js/i,\n /eatdifferent\\.com\\.woopra-ns\\.com/i,\n /static\\.woopra\\.com\\/js\\/woopra\\.js/i,\n /extensions\\//i,\n /^chrome:\\/\\//i,\n /127\\.0\\.0\\.1:4001\\/isrunning/i,\n /webappstoolbarba\\.texthelp\\.com\\//i,\n /metrics\\.itunes\\.apple\\.com\\.edgesuite\\.net\\//i,\n /notinopbx\\.daktela\\.com\\//i,\n /\\/external\\/web\\/web\\.js/i,\n /\\/member\\/publisherBookmarklet\\.js/i,\n /\\/files\\/modiface\\//i,\n /\\/v2\\/braintree\\.js/i,\n /\\/js\\/exponea\\.min\\.js/i,\n /gtag\\/js/i,\n];\n","import { NormalizedCacheObject } from '@apollo/client';\n\nfunction loadApolloState(): NormalizedCacheObject {\n return JSON.parse(document.getElementById('__APOLLO_STATE__').textContent);\n}\n\nfunction initDataLayer() {\n if (typeof window.dataLayer === 'undefined') {\n window.dataLayer = [];\n }\n}\n\nexport { loadApolloState, initDataLayer };\n","/* tslint:disable:ordered-imports */\nimport 'isomorphic-fetch';\n\nimport React from 'react';\nimport { HelmetProvider } from 'react-helmet-async';\nimport { BrowserRouter } from 'react-router-dom';\n\nimport {\n ApolloClient,\n ApolloLink,\n ApolloProvider,\n createHttpLink,\n InMemoryCache,\n} from '@apollo/client';\nimport { setContext } from '@apollo/client/link/context';\nimport { createPersistedQueryLink } from '@apollo/client/link/persisted-queries';\nimport { hydrateRoot } from 'react-dom/client';\n\nimport { GetRequestHeadersQuery } from '@notino/shared/definitions/types';\nimport { getApolloCacheSettings } from '@notino/shared/graphql/apollo-client-options';\n\nimport App from '@containers/App';\nimport { LDProvider } from '@context/launch-darkly/LDProvider';\nimport { loadDevtools } from '@devtools/dev-tools-load';\nimport { loadableReady } from '@loadable/component';\nimport * as Sentry from '@sentry/browser';\nimport { initSentry } from '@utils/sentry/init';\n\nimport getDefaultData from './queries/getDefaultData.graphql';\nimport getRequestHeadersQuery from './queries/requestHeaders.graphql';\nimport { initDataLayer, loadApolloState } from './state-load';\nimport { LocalRequestHeaders } from './utils/admin-panel';\n\nif (process.env.NODE_ENV === 'development') {\n // todo: consider remove of setImmediate\n // no longer supported by webpack\n require('core-js/fn/set-immediate');\n}\n\ninitDataLayer();\n\nconst apolloState = loadApolloState();\nconst cache = new InMemoryCache(getApolloCacheSettings()).restore(apolloState);\n\n// Get default headers from hydrated apollo\nconst requestHeaders = cache.readQuery({\n query: getRequestHeadersQuery,\n});\n\n// set address for public assets of this app, probably CDN\n// eslint-disable-next-line no-undef\n// @ts-ignore\n__webpack_public_path__ = requestHeaders.RequestHeaders.assetsPath;\n\ninitSentry({\n dsn: requestHeaders.RequestHeaders.sentryDsn,\n environment: requestHeaders.RequestHeaders.sentryEnvironment,\n tracingRate: requestHeaders.RequestHeaders.sentryTracingRate,\n shopId: requestHeaders.RequestHeaders.shopId,\n});\n\nLocalRequestHeaders.localHeaders = {\n ...requestHeaders.RequestHeaders,\n} as typeof LocalRequestHeaders.localHeaders;\n\nconst isGatewayProxy =\n requestHeaders.RequestHeaders.ldFlags.gatewayRouterProxyEnabled;\n\nconst auth = setContext((_, { headers }) => ({\n headers: {\n ...headers,\n ...LocalRequestHeaders.getHeaders(isGatewayProxy),\n },\n}));\n\nconst httpLink = createHttpLink({\n uri: requestHeaders.RequestHeaders.gatewayUrl,\n includeExtensions: true,\n});\n\nconst persistedQueriesLink = createPersistedQueryLink({\n // @ts-ignore\n generateHash: ({ documentId }) => documentId,\n useGETForHashedQueries: true,\n});\n\nconst client = new ApolloClient({\n connectToDevTools: process.env.NODE_ENV !== 'production',\n link: ApolloLink.from([persistedQueriesLink, auth, httpLink]),\n cache,\n ssrMode: false,\n defaultOptions: {\n query: {\n fetchPolicy: 'cache-first',\n },\n },\n\n resolvers: {\n Query: {\n RequestHeaders: () => {\n return LocalRequestHeaders.localHeaders;\n },\n },\n },\n});\n\nclient.onResetStore(() => {\n return Promise.resolve(\n cache.writeQuery({\n query: getDefaultData,\n data: {\n RequestHeaders: {\n __typename: 'ClientHeaders',\n ...LocalRequestHeaders.localHeaders,\n },\n // Reseting the pathname because of adminanel\n ProductSsrData: {\n __typename: 'ClientProductSsr',\n id: '0',\n productId: '0',\n type: 'ProductDetail',\n pathname: '',\n },\n },\n })\n );\n});\n\nconst render = () => {\n const { mounts, originUrl, ldFlags } = requestHeaders.RequestHeaders;\n\n const scheduleHydration =\n typeof global.setImmediate !== 'undefined' && ldFlags.pdSetImmediateEnabled\n ? setImmediate\n : (fn) => fn();\n\n mounts.forEach((mount) =>\n scheduleHydration(() =>\n hydrateRoot(\n document.getElementById(mount),\n \n \n \n \n \n \n \n \n \n )\n )\n );\n};\n\nloadableReady(render).catch(Sentry.captureException);\n\nif (process.env.NODE_ENV === 'development') {\n loadDevtools(client, requestHeaders.RequestHeaders.originUrl);\n}\n","import {\n defaultDataIdFromObject,\n InMemoryCacheConfig,\n StoreObject,\n} from '@apollo/client/cache';\n\nimport { GetReviewsQuery } from '@notino/shared/definitions/types';\n\nconst dataIdFromObject = (\n object: Readonly\n) => {\n switch (object.__typename) {\n case 'Product':\n return defaultDataIdFromObject(object); // use `url` as the primary key\n case 'User': {\n if (object.id) {\n return defaultDataIdFromObject(object);\n }\n return `${object.__typename}:__LOGGED_USER__`;\n }\n case 'Settings':\n return `${object.__typename}:0`;\n case 'FeatureSwitches':\n return `${object.__typename}:0`;\n case 'PathView':\n return `${object.__typename}:${decodeURI(object.path)}`;\n default:\n return defaultDataIdFromObject(object); // fall back to default handling\n }\n};\n\nexport function getApolloCacheSettings(): InMemoryCacheConfig {\n return {\n dataIdFromObject,\n typePolicies: {\n RequestHeaders: {\n merge: true,\n },\n Settings: {\n merge: true,\n },\n Product: {\n fields: {\n reviewOverview: {\n merge: true,\n },\n },\n },\n SeoMetaData: {\n fields: {\n keywords: {\n merge: true,\n },\n description: {\n merge: true,\n },\n title: {\n merge: true,\n },\n },\n },\n Query: {\n fields: {\n RequestHeaders: {\n merge: true,\n },\n reviews: {\n keyArgs: ['code', 'orderDesc', 'orderBy', 'hideTranslated'],\n merge(\n existing: GetReviewsQuery['reviews'] = [],\n incoming: GetReviewsQuery['reviews'] = []\n ) {\n return [...existing, ...incoming];\n },\n },\n resolveUrl: {\n merge: true,\n },\n vpProductById: (_, { args, toReference }) => {\n return toReference({\n __typename: 'VpProduct',\n id: args.id,\n });\n },\n },\n },\n },\n };\n}\n","import * as Sentry from '@sentry/browser';\nimport {\n SENTRY_IGNORE_ERROR_RULES,\n SENTRY_IGNORE_URL_RULES,\n} from '@utils/sentry/constants';\n\nconst sentryConfig = ({\n dsn,\n environment,\n tracingRate,\n}): Sentry.BrowserOptions => {\n const isLocalhost = environment === 'localhost';\n return {\n dsn: dsn,\n enabled: true,\n debug: isLocalhost,\n environment,\n release: `nushopweb@${process.env.npm_package_version}`,\n ignoreErrors: SENTRY_IGNORE_ERROR_RULES,\n denyUrls: SENTRY_IGNORE_URL_RULES,\n // this seems to be the right way of doing it\n // https://github.com/getsentry/sentry-javascript/issues/1652\n integrations: (integrations) => {\n // remove globalhandlers so sentry doesn't contain errors we can't solve\n return integrations.filter((i) => i.name !== 'GlobalHandlers');\n },\n beforeSend: (event, hint) => {\n if (isLocalhost) {\n // eslint-disable-next-line no-console\n console.error(\n 'Sentry error',\n hint.originalException || hint.syntheticException\n );\n return null; // this drops the event and nothing will be sent to sentry\n }\n return event;\n },\n attachStacktrace: true,\n // Each transaction has a 20% chance of being sent to Sentry\n // For canary, we want to send all errors\n tracesSampleRate: tracingRate,\n };\n};\n\nexport const initSentry = ({\n dsn,\n environment,\n tracingRate,\n shopId,\n}: {\n dsn: string;\n environment: string;\n tracingRate: number;\n shopId: string;\n}) => {\n Sentry.init(\n sentryConfig({\n dsn,\n environment,\n tracingRate,\n })\n );\n Sentry.setTag('shopId', shopId);\n\n if (window.notinoUser) {\n Sentry.setUser({\n id: window.notinoUser.uid,\n role: window.notinoUser.role,\n });\n }\n};\n","import { logger } from '@sentry/utils';\nimport { getCurrentHub } from './hub.js';\n\n/** A class object that can instantiate Client objects. */\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nfunction initAndBind(\n clientClass,\n options,\n) {\n if (options.debug === true) {\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n }\n }\n const hub = getCurrentHub();\n const scope = hub.getScope();\n if (scope) {\n scope.update(options.initialScope);\n }\n\n const client = new clientClass(options);\n hub.bindClient(client);\n}\n\nexport { initAndBind };\n//# sourceMappingURL=sdk.js.map\n","import { __rest } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nexport function setContext(setter) {\n return new ApolloLink(function (operation, forward) {\n var request = __rest(operation, []);\n return new Observable(function (observer) {\n var handle;\n var closed = false;\n Promise.resolve(request)\n .then(function (req) { return setter(req, operation.getContext()); })\n .then(operation.setContext)\n .then(function () {\n if (closed)\n return;\n handle = forward(operation).subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n })\n .catch(observer.error.bind(observer));\n return function () {\n closed = true;\n if (handle)\n handle.unsubscribe();\n };\n });\n });\n}\n//# sourceMappingURL=index.js.map","import styled from 'styled-components';\n\nexport const Image = styled.img`\n display: block;\n`;\n","import * as React from 'react';\n\nimport { IBasicStyledProps } from '@notino/react-styleguide';\n\nimport { Image } from './styled';\nimport { useImageAttributes } from './useImageAttributes';\n\nexport interface ICdnImageProps extends IBasicStyledProps {\n src: string;\n sourceKey: string;\n alt?: string;\n}\n\nexport const CdnImage: React.FC = ({\n src,\n sourceKey,\n alt = '',\n ...rest\n}) => {\n const imgProps = useImageAttributes(src, sourceKey, alt);\n\n return ;\n};\n","import * as React from 'react';\n\nimport { useQuery } from '@apollo/client';\n\nimport { getImageAttributes } from '@notino/react-web-utils';\nimport { GetImageSettingsQuery } from '@notino/shared/definitions/types';\n\nimport getImageSettingsQuery from './queries/imageSettings.graphql';\n\nexport const useGetImageAttributes = () => {\n const { data: { Settings } = {} } = useQuery(\n getImageSettingsQuery\n );\n\n return React.useCallback(\n (src: string, sourceKey: string, alt: string = '') => {\n return getImageAttributes(\n {\n src,\n alt,\n },\n Settings?.imageDomainPath,\n sourceKey\n );\n },\n [Settings?.imageDomainPath]\n );\n};\n\nexport const useImageAttributes = (\n src: string,\n sourceKey: string,\n alt: string = ''\n) => {\n const getImageAttributesFn = useGetImageAttributes();\n\n return getImageAttributesFn(src, sourceKey, alt);\n};\n","import * as React from 'react';\nimport { useNavigate } from 'react-router-dom';\n\nimport { useApolloClient } from '@apollo/client';\n\nimport { masterUrl } from '@notino/shared/client-utils';\nimport {\n PathTemplate,\n GetLocalesDataQuery,\n GetLocalesDataQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport { prefixes } from '@containers/LanguageProvider/prefixes';\nimport getProductViewQuery from '@containers/ProductDetailContainer/queries/productView.graphql';\nimport * as Sentry from '@sentry/browser';\nimport { dispatchNotinoEvent } from '@utils/notino-events';\n\nimport getLocalesQuery from '../../containers/LanguageProvider/queries/localesData.graphql';\n\nimport UpdateResolveUrlQuery from './queries/updateResolveUrl.graphql';\n\nimport { IClientRedirectProps } from './index';\n\nexport const usePrefetchProduct = () => {\n const { query, cache } = useApolloClient();\n\n const getQueryForTextsIfMissing = () => {\n const languageForPd = {\n query: getLocalesQuery,\n variables: {\n prefixes: prefixes[PathTemplate.ProductDetailSimple],\n },\n };\n const textsForPd = cache.readQuery(languageForPd);\n\n if (textsForPd) {\n return null;\n }\n return query(\n languageForPd\n );\n };\n\n return (product: IClientRedirectProps['product']) => {\n const languageQuery = getQueryForTextsIfMissing();\n\n Promise.all([\n query({\n query: getProductViewQuery,\n variables: {\n masterId: String(product.masterId),\n },\n errorPolicy: 'all',\n }),\n languageQuery,\n ]).catch((e) =>\n Sentry.captureMessage(`Some query for SPA redirect failed ${String(e)}`)\n );\n };\n};\n\nexport const useModifyCacheAndChangePathname = () => {\n const { cache } = useApolloClient();\n const prefetch = usePrefetchProduct();\n\n return (product: IClientRedirectProps['product']) => {\n prefetch(product);\n window.scrollTo({\n top: 0,\n left: 0,\n // @ts-ignore\n behavior: 'instant', // typescript doesn't recognize instant, but it's described in docs - https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo\n });\n\n const type = 'ProductDetailSimple';\n const url = `/productDetail?productId=${product.masterId}&variantId=${product.id}`;\n\n cache.writeQuery({\n query: UpdateResolveUrlQuery,\n data: {\n resolveUrl: {\n __typename: 'PathView',\n id: btoa(url),\n path: url,\n productId: String(product.masterId),\n type: type,\n },\n },\n variables: {\n url: masterUrl(product.url),\n },\n });\n };\n};\n\n/**\n * Spa Redirect decorator for spa redirect for anchor elements\n * @param product = { url, id }\n * @param isSpaEnabled if false, SPA redirect never happens\n * @param useMasterUrl\n */\nexport const useWithSpaRedirect = (\n product: IClientRedirectProps['product'],\n isSpaEnabled: boolean = true,\n useMasterUrl: boolean = false\n): ((\n fc: React.MouseEventHandler\n) => React.MouseEventHandler) => {\n const withProductSpaRedirect = useProductSpaRedirect(\n isSpaEnabled,\n useMasterUrl\n );\n\n return withProductSpaRedirect(product);\n};\n\nexport const useProductSpaRedirect = (\n isSpaEnabled: boolean = true,\n useMasterUrl: boolean = false\n): ((\n product: IClientRedirectProps['product']\n) => (\n fc: React.MouseEventHandler\n) => React.MouseEventHandler) => {\n const modifyCacheAndChangePathname = useModifyCacheAndChangePathname();\n const navigate = useNavigate();\n\n return (product: IClientRedirectProps['product']) =>\n (func: React.MouseEventHandler) =>\n (e) => {\n func(e);\n\n const shouldOpenInNewTab = e.ctrlKey || e.metaKey;\n if (isSpaEnabled && !shouldOpenInNewTab) {\n e.preventDefault();\n modifyCacheAndChangePathname(product);\n navigate(useMasterUrl ? masterUrl(product.url) : product.url);\n dispatchNotinoEvent({\n name: 'spa:redirect',\n });\n }\n };\n};\n","import styled from 'styled-components';\n\nimport { breakpoints } from '@notino/react-styleguide';\n\nexport const StyledDivider = styled.div<{\n newPdDesignEnabled: boolean;\n shouldShowOnMobile?: boolean;\n}>`\n display: ${({ shouldShowOnMobile }) =>\n shouldShowOnMobile ? 'block' : 'none'};\n height: 0.0625rem;\n background-color: ${(props) => props.theme.palette.neutralLighter};\n\n @media (min-width: ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled ? breakpoints.lg : breakpoints.md}) {\n display: block;\n position: relative;\n clear: both;\n margin: 3rem 0 0;\n }\n`;\n","import styled from 'styled-components';\n\ninterface ITagProps {\n display?: string;\n}\n\nexport const Tag = styled.div`\n display: ${(props: ITagProps) => (props.display ? props.display : 'block')};\n`;\n","import * as React from 'react';\n\nimport * as Sentry from '@sentry/browser';\n\nimport { Tag } from './components';\n\ninterface IErrorBoundaryState {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error: any;\n}\n\nconst defaultFallback = () => ;\n\nclass ErrorBoundary extends React.Component<\n React.PropsWithChildren<{ fallback?: () => JSX.Element }>,\n IErrorBoundaryState\n> {\n public state = { error: null };\n\n public componentDidCatch(error) {\n if (typeof window !== 'undefined') {\n this.setState({ error });\n Sentry.captureException(error);\n }\n }\n\n public render() {\n if (this.state.error) {\n const { fallback = defaultFallback } = this.props;\n return fallback();\n }\n return this.props.children;\n }\n}\n\nexport default ErrorBoundary;\n","import loadable from '@loadable/component';\n\nexport default loadable(() => import('../ErrorPage'));\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n reviewsName: {\n id: 'reviews.input.name',\n defaultMessage: 'Jméno',\n },\n reviewsEmail: {\n id: 'reviews.input.email',\n defaultMessage: 'E-mail',\n },\n reviewsEmailErrorRequired: {\n id: 'reviews.input.email.error.required',\n defaultMessage: 'Prosím zadejte e-mail',\n },\n reviewsEmailErrorInvalid: {\n id: 'reviews.input.email.error.invalid',\n defaultMessage: 'Prosím zadejte platný e-mail',\n },\n reviewsEmailErrorTaken: {\n id: 'reviews.input.email.error.taken',\n defaultMessage: 'Tento e-mail už byl použit',\n },\n reviewsEmailErrorFailed: {\n id: 'reviews.input.email.error.failed',\n defaultMessage: 'Chyba při kontrole e-mailu',\n },\n reviewsText: {\n id: 'reviews.input.text',\n defaultMessage: 'Vaše recenze',\n },\n reviewsTextErrorRequired: {\n id: 'reviews.input.text.error.required',\n defaultMessage: 'Prosím zadejte vaši recenzi',\n },\n reviewsTextErrorForbiddenWords: {\n id: 'reviews.input.text.error.forbiddenWords',\n defaultMessage: 'Vaše recenze obsahuje nevhodná slova: {forbiddenWords}',\n },\n reviewsTextErrorMaxLength: {\n id: 'reviews.input.text.error.maxLength',\n defaultMessage: 'Prosím zadejte kratší text recenze',\n },\n watchdogEmail: {\n id: 'watchdog.input.email',\n defaultMessage: 'Vepište svůj e-mail',\n },\n watchdogEmailErrorRequired: {\n id: 'watchdog.input.email.error.required',\n defaultMessage: 'Prosím zadejte e-mail',\n },\n watchdogEmailErrorInvalid: {\n id: 'watchdog.input.email.error.invalid',\n defaultMessage: 'Prosím zadejte platný e-mail',\n },\n watchdogEmailErrorTaken: {\n id: 'watchdog.input.email.error.taken',\n defaultMessage: 'Tento e-mail už byl použit',\n },\n watchdogEmailErrorFailed: {\n id: 'watchdog.input.email.error.failed',\n defaultMessage: 'Chyba při kontrole e-mailu',\n },\n name: {\n id: 'tnb.input.name',\n defaultMessage: 'Jméno a příjmení',\n },\n nameHelp: {\n id: 'tnb.input.name.help',\n defaultMessage: 'Jméno a příjmení musí být stejné jako na vaší schránce',\n },\n nameErrorRequired: {\n id: 'tnb.input.name.error.required',\n defaultMessage: 'Prosím zadejte vaše jméno a příjmení',\n },\n phone: {\n id: 'tnb.input.phone',\n defaultMessage: 'Telefon/mobil',\n },\n phoneErrorRequired: {\n id: 'tnb.input.phone.error.required',\n defaultMessage: 'Prosím zadejte telefonní číslo',\n },\n phoneErrorInvalid: {\n id: 'tnb.input.phone.error.invalid',\n defaultMessage: 'Prosím zadejte platné tel. číslo',\n },\n email: {\n id: 'tnb.input.email',\n defaultMessage: 'E-mail',\n },\n emailErrorRequired: {\n id: 'tnb.input.email.error.required',\n defaultMessage: 'Prosím zadejte e-mail',\n },\n emailErrorInvalid: {\n id: 'tnb.input.email.error.invalid',\n defaultMessage: 'Prosím zadejte platný e-mail',\n },\n emailErrorTaken: {\n id: 'tnb.input.email.error.taken',\n defaultMessage: 'Tento e-mail už byl použit',\n },\n emailErrorFailed: {\n id: 'tnb.input.email.error.failed',\n defaultMessage: 'Chyba při kontrole e-mailu',\n },\n address: {\n id: 'tnb.input.address',\n defaultMessage: 'Ulice a číslo popisné',\n },\n addressErrorRequired: {\n id: 'tnb.input.address.error.required',\n defaultMessage: 'Prosím zadejte ulici a číslo',\n },\n city: {\n id: 'tnb.input.city',\n defaultMessage: 'Město nebo obec',\n },\n cityErrorRequired: {\n id: 'tnb.input.city.error.required',\n defaultMessage: 'Prosím zadejte město nebo obec',\n },\n zip: {\n id: 'tnb.input.zip',\n defaultMessage: 'PSČ',\n },\n zipErrorRequired: {\n id: 'tnb.input.zip.error.required',\n defaultMessage: 'Prosím zadejte PSČ',\n },\n zipErrorInvalid: {\n id: 'tnb.input.zip.error.invalid',\n defaultMessage: 'Prosím zadejte platné PSČ',\n },\n});\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { PrimitiveType } from 'intl-messageformat';\n\nimport {\n Input as SgInput,\n InputGroup as SgInputGroup,\n} from '@notino/react-styleguide';\n\nimport messages from './messages';\n\nexport interface IInputGroupProps {\n required?: boolean;\n help?: boolean;\n\n meta: {\n error: string | { key: string; values: Record };\n touched: boolean;\n };\n\n input: {\n onBlur?: React.FocusEventHandler;\n onFocus?: React.FocusEventHandler;\n onChange?: React.ChangeEventHandler;\n name: string;\n value: string;\n type?: string;\n inputMode?: string;\n };\n}\n\nexport const InputGroup: React.FC = ({\n required,\n meta: { error, touched },\n input: { onBlur, onChange, onFocus, name, value, type },\n help,\n}) => {\n const { formatMessage } = useIntl();\n\n const id = `input_${name}`;\n const inputType = type || 'text';\n\n const formatError = () => {\n if (typeof error === 'string') {\n return formatMessage(messages[`${name}Error${error}`]);\n }\n return formatMessage(\n messages[`${name}Error${String(error.key)}`],\n error.values\n );\n };\n\n return (\n \n \n \n );\n};\n","import * as React from 'react';\nimport { useNavigate } from 'react-router-dom';\n\nexport interface IHttpContext {\n status?: number;\n url?: string;\n reason?: string;\n}\n\nconst HttpContext = React.createContext({} as IHttpContext);\n\nconst HttpStatus = ({ status, reason, children }) => {\n const context = React.useContext(HttpContext);\n context.status = status;\n context.reason = reason;\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{children};\n};\n\nexport interface RedirectProps {\n to: string;\n push?: boolean;\n}\n\nconst Redirect = ({ to, push }: RedirectProps) => {\n const ctx = React.useContext(HttpContext);\n const navigate = useNavigate();\n\n React.useEffect(() => {\n navigate(to, {\n replace: !push,\n });\n }, [navigate, push, to]);\n\n if (ctx) {\n // TODO: This might not work properly with suspense, figure out how to prevent adding\n // a new item for renders that aren't \"committed\"\n ctx.url = to;\n }\n\n return null;\n};\n\nexport { HttpContext, HttpStatus, Redirect };\n","import * as React from 'react';\n\nimport { HttpStatus } from '@components/HttpContext';\n\ninterface ILoadFailedProps {\n reason?: string;\n}\n\nexport const PageNotFound: React.FC = ({ reason }) => {\n return (\n \n {null}\n \n );\n};\n\nexport const PageLoadFailed: React.FC = ({ reason }) => {\n return (\n \n {null}\n \n );\n};\n\nexport default PageNotFound;\n","import styled, { css } from 'styled-components';\n\nimport { theme } from '@notino/react-styleguide';\n\nimport { IRectangleProps } from './RectanglePlaceholder';\n\nconst baseCSS = css`\n margin: 0;\n background-color: ${theme.palette.neutralLighter};\n`;\n\ntype StyledRectangleProps = IRectangleProps;\n\nexport const StyledRectangle = styled.div`\n ${baseCSS};\n width: ${(props: StyledRectangleProps) => {\n return props.widthCss || props.size || '100%';\n }};\n height: ${(props: StyledRectangleProps) => {\n return props.heightCss || props.size || '100%';\n }};\n border-radius: 5px;\n`;\n\nexport const ImageWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n height: 11.875rem;\n margin-bottom: 0.625rem;\n`;\n","import * as React from 'react';\n\nimport { StyledRectangle } from './styled';\n\nexport interface IRectangleProps {\n size?: number | string;\n widthCss?: number | string;\n heightCss?: number | string;\n}\n\nconst RectanglePlaceholder: React.FC = (props) => (\n \n);\n\nexport default RectanglePlaceholder;\n","import * as React from 'react';\nimport { createPortal } from 'react-dom';\n\nimport styled from 'styled-components';\n\nconst DisplayNone = styled.div`\n display: none;\n`;\n\nfunction ClientPortal({ children }) {\n const el = React.useRef(document.createElement('div'));\n\n React.useEffect(() => {\n const currEl = el.current;\n const portal = document.getElementById('nushop-portal-root');\n\n if (!portal) {\n console.warn(\n 'To use portal, please add it on this page:
'\n );\n return;\n }\n\n portal.appendChild(currEl);\n return () => {\n portal.removeChild(currEl);\n };\n }, [el]);\n\n return createPortal(children, el.current);\n}\n\nfunction Portal({ children }) {\n const [isHydrated, setIsHydrated] = React.useState(false);\n\n React.useEffect(() => {\n setIsHydrated(true);\n }, []);\n\n return isHydrated ? (\n {children}\n ) : (\n {children}\n );\n}\n\nexport { Portal };\n","import { css } from 'styled-components';\n\nimport { TooltipModel } from '@notino/react-styleguide';\n\nexport const TOOLTIP_OFFSET_PX = 16;\n\nexport const getTooltipPositionStyles = ({\n position,\n interactive,\n distanceFromArrowToWindowEdge,\n}: {\n position: TooltipModel.Position;\n distanceFromArrowToWindowEdge: number;\n interactive: boolean;\n}) => {\n const offset = `${TOOLTIP_OFFSET_PX}px`;\n const offsetProp = interactive ? 'padding' : 'margin';\n const sideOffset = Math.min(distanceFromArrowToWindowEdge, 30);\n\n switch (position) {\n case TooltipModel.Position.topAutomatic:\n case TooltipModel.Position.topCenter:\n return css`\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n ${offsetProp}-bottom: ${offset};\n `;\n case TooltipModel.Position.topLeft:\n return css`\n bottom: 100%;\n left: 50%;\n transform: translateX(-${sideOffset}px);\n ${offsetProp}-bottom: ${offset};\n `;\n case TooltipModel.Position.topRight:\n return css`\n bottom: 100%;\n right: 50%;\n transform: translateX(${sideOffset}px);\n ${offsetProp}-bottom: ${offset};\n `;\n case TooltipModel.Position.bottomAutomatic:\n case TooltipModel.Position.bottomCenter:\n return css`\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n ${offsetProp}-top: ${offset};\n `;\n case TooltipModel.Position.bottomLeft:\n return css`\n top: 100%;\n left: 50%;\n transform: translateX(-${sideOffset}px);\n ${offsetProp}-top: ${offset};\n `;\n case TooltipModel.Position.bottomRight:\n return css`\n top: 100%;\n right: 50%;\n transform: translateX(${sideOffset}px);\n ${offsetProp}-top: ${offset};\n `;\n case TooltipModel.Position.leftCenter:\n return css`\n top: 50%;\n transform: translateY(-50%);\n right: 100%;\n ${offsetProp}-right: ${offset};\n `;\n case TooltipModel.Position.leftTop:\n return css`\n top: 50%;\n transform: translateY(-20px);\n right: 100%;\n ${offsetProp}-right: ${offset};\n `;\n case TooltipModel.Position.leftBottom:\n return css`\n bottom: 50%;\n transform: translateY(20px);\n right: 100%;\n ${offsetProp}-right: ${offset};\n `;\n case TooltipModel.Position.rightCenter:\n return css`\n top: 50%;\n transform: translateY(-50%);\n left: 100%;\n ${offsetProp}-left: ${offset};\n `;\n case TooltipModel.Position.rightTop:\n return css`\n top: 50%;\n transform: translateY(-20px);\n left: 100%;\n ${offsetProp}-left: ${offset};\n `;\n case TooltipModel.Position.rightBottom:\n return css`\n bottom: 50%;\n transform: translateY(20px);\n left: 100%;\n ${offsetProp}-left: ${offset};\n `;\n }\n};\n","import { css } from 'styled-components';\n\nimport { TooltipModel, theme } from '@notino/react-styleguide';\n\nimport { TOOLTIP_OFFSET_PX } from './getTooltipPositionStyles';\n\nconst topAndBottomCommon = css`\n left: 50%;\n transform: translateX(-50%);\n`;\nconst leftAndRightCommon = css`\n top: 50%;\n transform: translateY(-50%);\n`;\n\nconst arrowHeightPx = 10;\nconst arrowHeight = `${arrowHeightPx}px`;\nconst arrowOffset = TOOLTIP_OFFSET_PX - arrowHeightPx;\n\nconst topCommon = css`\n ::before {\n bottom: calc(100% + ${arrowOffset + 1}px);\n }\n ::after {\n bottom: calc(100% + ${arrowOffset}px);\n border-top: ${arrowHeight} solid ${theme.palette.neutral};\n }\n`;\nconst bottomCommon = css`\n ::before {\n top: calc(100% + ${arrowOffset + 1}px);\n }\n ::after {\n top: calc(100% + ${arrowOffset}px);\n border-bottom: ${arrowHeight} solid ${theme.palette.neutral};\n }\n`;\nconst leftCommon = css`\n ::before {\n right: calc(100% + ${arrowOffset + 1}px);\n }\n ::after {\n right: calc(100% + ${arrowOffset}px);\n border-left: ${arrowHeight} solid ${theme.palette.neutral};\n }\n`;\nconst rightCommon = css`\n ::before {\n left: calc(100% + ${arrowOffset + 1}px);\n }\n ::after {\n left: calc(100% + ${arrowOffset}px);\n border-right: ${arrowHeight} solid ${theme.palette.neutral};\n }\n`;\n\nexport const getArrowPositionStyles = ({\n position,\n}: {\n position: TooltipModel.Position;\n}) => {\n switch (position) {\n case TooltipModel.Position.topCenter:\n return css`\n &:after,\n &:before {\n ${topAndBottomCommon}\n border-left: ${arrowHeight} solid transparent;\n border-right: ${arrowHeight} solid transparent;\n border-top: ${arrowHeight} solid white;\n }\n ${topCommon}\n `;\n case TooltipModel.Position.topLeft:\n return css`\n &:after,\n &:before {\n ${topAndBottomCommon}\n border-left: ${arrowHeight} solid transparent;\n border-right: ${arrowHeight} solid transparent;\n border-top: ${arrowHeight} solid white;\n }\n ${topCommon}\n `;\n case TooltipModel.Position.topRight:\n return css`\n &:after,\n &:before {\n ${topAndBottomCommon}\n\n border-left: ${arrowHeight} solid transparent;\n border-right: ${arrowHeight} solid transparent;\n border-top: ${arrowHeight} solid white;\n }\n ${topCommon}\n `;\n case TooltipModel.Position.bottomCenter:\n return css`\n &:after,\n &:before {\n ${topAndBottomCommon}\n border-left: ${arrowHeight} solid transparent;\n border-right: ${arrowHeight} solid transparent;\n border-bottom: ${arrowHeight} solid white;\n }\n ${bottomCommon}\n `;\n case TooltipModel.Position.bottomLeft:\n return css`\n &:after,\n &:before {\n ${topAndBottomCommon}\n border-left: ${arrowHeight} solid transparent;\n border-right: ${arrowHeight} solid transparent;\n border-bottom: ${arrowHeight} solid white;\n }\n ${bottomCommon}\n `;\n case TooltipModel.Position.bottomRight:\n return css`\n &:after,\n &:before {\n ${topAndBottomCommon}\n border-left: ${arrowHeight} solid transparent;\n border-right: ${arrowHeight} solid transparent;\n border-bottom: ${arrowHeight} solid white;\n }\n ${bottomCommon}\n `;\n case TooltipModel.Position.leftCenter:\n return css`\n &:after,\n &:before {\n ${leftAndRightCommon}\n border-top: ${arrowHeight} solid transparent;\n border-bottom: ${arrowHeight} solid transparent;\n border-left: ${arrowHeight} solid white;\n }\n ${leftCommon}\n `;\n case TooltipModel.Position.leftTop:\n return css`\n &:after,\n &:before {\n ${leftAndRightCommon}\n border-top: ${arrowHeight} solid transparent;\n border-bottom: ${arrowHeight} solid transparent;\n border-left: ${arrowHeight} solid white;\n }\n ${leftCommon}\n `;\n case TooltipModel.Position.leftBottom:\n return css`\n &:after,\n &:before {\n ${leftAndRightCommon}\n border-top: ${arrowHeight} solid transparent;\n border-bottom: ${arrowHeight} solid transparent;\n border-left: ${arrowHeight} solid white;\n }\n ${leftCommon}\n `;\n case TooltipModel.Position.rightCenter:\n return css`\n &:after,\n &:before {\n ${leftAndRightCommon}\n border-top: ${arrowHeight} solid transparent;\n border-bottom: ${arrowHeight} solid transparent;\n border-right: ${arrowHeight} solid white;\n }\n ${rightCommon}\n `;\n case TooltipModel.Position.rightTop:\n return css`\n &:after,\n &:before {\n ${leftAndRightCommon}\n border-top: ${arrowHeight} solid transparent;\n border-bottom: ${arrowHeight} solid transparent;\n border-right: ${arrowHeight} solid white;\n }\n ${rightCommon}\n `;\n case TooltipModel.Position.rightBottom:\n return css`\n &:after,\n &:before {\n ${leftAndRightCommon}\n border-top: ${arrowHeight} solid transparent;\n border-bottom: ${arrowHeight} solid transparent;\n border-right: ${arrowHeight} solid white;\n }\n ${rightCommon}\n `;\n\n default:\n throw Error('Invalid position' + position);\n }\n};\n","import styled, { css } from 'styled-components';\n\nimport { TooltipModel, theme } from '@notino/react-styleguide';\n\nimport { getArrowPositionStyles } from './getArrowPositionStyles';\nimport { getTooltipPositionStyles } from './getTooltipPositionStyles';\n\nexport const Wrapper = styled.div`\n display: inline-block;\n`;\n\nexport const Content = styled.div.attrs({ role: 'tooltip' })`\n padding: 0.5rem;\n font-size: 0.8rem;\n min-width: 15rem;\n background: white;\n border: 1px solid ${theme.palette.neutral};\n`;\n\nexport const Placeholder = styled.div`\n position: absolute;\n z-index: 99;\n`;\n\nexport const RelativeWrapper = styled.div<{\n position: TooltipModel.Position;\n visible: boolean;\n}>`\n position: relative;\n width: 100%;\n height: 100%;\n\n &:after,\n &:before {\n content: '';\n position: absolute;\n width: 0;\n height: 0;\n pointer-events: none;\n opacity: ${({ visible }) => (visible ? 1 : 0)};\n }\n ::before {\n z-index: 1;\n }\n ${getArrowPositionStyles}\n`;\n\nexport const TooltipWrapper = styled.div<{\n position: TooltipModel.Position;\n visible: boolean;\n interactive: boolean;\n distanceFromArrowToWindowEdge: number;\n}>`\n position: absolute;\n pointer-events: ${({ visible }) => (visible ? 'all' : 'none')};\n ${({ visible }) =>\n css`\n opacity: ${visible ? 1 : 0};\n `}\n\n ${getTooltipPositionStyles}\n`;\n","import * as React from 'react';\nimport { PropsWithChildren } from 'react';\n\nimport { StyledComponent } from 'styled-components';\n\nimport { TooltipModel } from '@notino/react-styleguide';\n\nimport { Portal } from './Portal';\nimport {\n Content,\n Placeholder,\n RelativeWrapper,\n TooltipWrapper,\n Wrapper,\n} from './styled';\n\ntype Props = PropsWithChildren<{\n content: React.ReactNode;\n position?: TooltipModel.Position;\n interactive?: boolean;\n isOpen?: boolean;\n disabled?: boolean;\n onShow?: () => void;\n onHide?: () => void;\n}>;\n\ntype CompoundComponent = React.FC & {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Content: StyledComponent<'div', any>;\n};\n\nexport const PortalTooltip: CompoundComponent = ({\n children,\n content,\n onShow,\n onHide,\n disabled,\n interactive = false,\n isOpen: isOpenProp,\n position: initialPosition = TooltipModel.Position.topCenter,\n}) => {\n const [position, setPosition] = React.useState(initialPosition);\n const [isOpen, setIsOpen] = React.useState(false);\n const [placeholderStyle, setPlaceHolderStyle] =\n React.useState({});\n\n const wrapperRef = React.useRef();\n const tooltipWrapperRef = React.useRef();\n const distanceFromArrowToWindowEdge = React.useRef(Number.MAX_VALUE);\n\n const handleSetStyles = React.useCallback((el: HTMLElement) => {\n const { left, top, width, height } = el.getBoundingClientRect();\n setPlaceHolderStyle({\n top: top + window.pageYOffset,\n left,\n width,\n height,\n });\n }, []);\n\n const handleShowTooltip: React.MouseEventHandler = (e) => {\n if (disabled) {\n return;\n }\n const el = e.currentTarget as HTMLElement;\n handleSetStyles(el);\n setIsOpen(true);\n onShow?.();\n };\n\n const handleHideTooltip = () => {\n if (disabled) {\n return;\n }\n setIsOpen(false);\n onHide?.();\n };\n\n React.useEffect(() => {\n const { left, right, width } = wrapperRef.current.getBoundingClientRect();\n const gutter = 4;\n // since arrow is in the middle of wrapped component\n // I add 'width/2' to each computation\n distanceFromArrowToWindowEdge.current = Math.min(\n left + width / 2 - gutter,\n window.innerWidth - right + width / 2 - gutter\n );\n });\n\n React.useEffect(() => {\n handleSetStyles(wrapperRef.current);\n }, [handleSetStyles]);\n\n const positionRef = React.useRef(position);\n React.useEffect(() => {\n positionRef.current = position;\n });\n\n // adjust position if tooltip gets off screen\n React.useEffect(() => {\n const el = tooltipWrapperRef.current;\n const { left, width } = el.getBoundingClientRect();\n\n const overflowsFromRight = left + width > window.innerWidth;\n if (left < 0 && overflowsFromRight) {\n return;\n }\n\n // using positionRef instead of position to prevent infinite update loop\n if (positionRef.current.startsWith('top')) {\n if (left < 0) {\n setPosition(TooltipModel.Position.topLeft);\n }\n if (overflowsFromRight) {\n setPosition(TooltipModel.Position.topRight);\n }\n } else {\n if (left < 0) {\n setPosition(TooltipModel.Position.bottomLeft);\n }\n if (overflowsFromRight) {\n setPosition(TooltipModel.Position.bottomRight);\n }\n }\n }, [placeholderStyle]);\n\n const isVisible = typeof isOpenProp !== 'undefined' ? isOpenProp : isOpen;\n\n return (\n \n {children}\n\n \n \n \n \n {content}\n \n \n \n \n \n );\n};\n\nPortalTooltip.Content = Content;\n","enum LineHeight {\n NORMAL = 'normal',\n MID = '3.5rem',\n LOW = '2.7rem',\n}\n\nexport default LineHeight;\n","import * as React from 'react';\n\nimport { CurrencyStyled } from './styled';\n\nexport interface ICurrencyProps {\n isSpaced: boolean;\n isPrefix: boolean;\n content: string;\n}\n\nconst Currency = (props: ICurrencyProps) => ;\n\nexport default Currency;\n","import LineHeight from './LineHeight';\nimport { Wrapper } from './styled';\n\nexport interface IWrapperProps {\n lineHeight?: LineHeight;\n}\n\nexport default Wrapper;\n","import * as React from 'react';\n\nimport Currency from './Currency';\nimport LineHeight from './LineHeight';\nimport Wrapper from './Wrapper';\n\nconst Span = (props) => ;\n\nexport { Wrapper, Currency, Span, LineHeight };\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints } from '@notino/react-styleguide';\n\nimport { ICurrencyProps } from './Currency';\nimport LineHeight from './LineHeight';\nimport { IWrapperProps } from './Wrapper';\n\nexport const CurrencyStyled = styled.span`\n font-size: 1.5rem;\n font-weight: normal;\n\n @media (min-width: ${breakpoints.sm}) {\n font-size: 2rem;\n }\n\n ${({ isSpaced, isPrefix }: ICurrencyProps) => {\n if (isSpaced)\n return isPrefix\n ? css`\n :after {\n content: ' ';\n }\n `\n : css`\n :before {\n content: ' ';\n }\n `;\n }}\n`;\n\nexport const Wrapper = styled.div`\n font-weight: bold;\n font-size: 1.87rem;\n -webkit-flex-grow: 0;\n flex-grow: 0;\n -webkit-flex-shrink: 0;\n flex-shrink: 0;\n line-height: ${LineHeight.NORMAL};\n white-space: nowrap;\n\n @media (min-width: ${breakpoints.sm}) {\n font-size: 2.6rem;\n line-height: ${(props: IWrapperProps) =>\n props.lineHeight || LineHeight.NORMAL};\n }\n`;\n","import * as React from 'react';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { IPrice } from '@containers/ProductListing/model';\n\nimport { Wrapper, Currency, Span, LineHeight } from './components';\nimport { useFormattedPrice } from './useFormattedPrice';\n\ninterface IPriceLabel {\n price: IPrice;\n lineHeight?: LineHeight;\n currencyComponent?: React.ComponentType>;\n wrapperComponent?: React.ComponentType>;\n id?: string;\n currencySymbolOverride?: string;\n}\n\nconst PriceLabel: React.FC = ({\n price,\n lineHeight,\n currencyComponent: CurrencyComponent = Currency,\n wrapperComponent: WrapperComponent = Wrapper,\n id,\n currencySymbolOverride,\n}) => {\n const formattedPriceObj = useFormattedPrice(price);\n\n if (!formattedPriceObj) {\n return null;\n }\n\n const {\n formattedPrice,\n currentLocale: { priceFormat },\n currencySymbol,\n currentCurrency,\n } = formattedPriceObj;\n\n // format is specified for ex like 'v s' where 'v' is value, 's' is symbol\n const isPrefix = priceFormat.startsWith('s');\n const isSpaced = priceFormat.charAt(1) === ' ';\n\n const symbol = (\n \n {currencySymbolOverride || currencySymbol}\n \n );\n\n return (\n \n \n {isPrefix && symbol}\n {formattedPrice}\n {!isPrefix && symbol}\n \n \n );\n};\n\nexport default PriceLabel;\n","import { useIntl, IntlFormatters } from 'react-intl';\n\nimport { GetPriceConfigQuery } from '@notino/shared/definitions/types';\n\nimport { usePriceConfig } from '@components/PriceLabel/usePriceConfig';\nimport { IPrice } from '@containers/ProductListing/model';\n\ninterface IFormattedPrice extends GetPriceConfigQuery {\n formattedPrice: string;\n currencySymbol: string;\n formattedPriceWithCurrency: string;\n}\n\nconst formatPrice = (\n formatNumber: IntlFormatters['formatNumber'],\n priceConfig: GetPriceConfigQuery,\n price: IPrice\n) => {\n const { currentCurrency, currentLocale } = priceConfig;\n const decimalPlaces = price.decimalPlaces || currentLocale.priceDecimalPlaces;\n\n const formattedPrice = formatNumber(price.value, {\n minimumFractionDigits: decimalPlaces,\n maximumFractionDigits: decimalPlaces,\n }).toString();\n\n const currencySymbol =\n currentCurrency.symbol || currentLocale.currency || price.currency;\n\n const isPrefix = currentLocale.priceFormat?.startsWith('s');\n const isSpaced = currentLocale.priceFormat?.charAt(1) === ' ';\n\n const formattedPriceWithCurrency = `${isPrefix ? currencySymbol : ''}${\n isPrefix && isSpaced ? ' ' : ''\n }${formattedPrice}${!isPrefix && isSpaced ? ' ' : ''}${\n !isPrefix ? currencySymbol : ''\n }`;\n\n return {\n formattedPrice,\n currencySymbol,\n currentCurrency,\n currentLocale,\n formattedPriceWithCurrency,\n };\n};\n\nexport const useFormatPrice = () => {\n const { formatNumber } = useIntl();\n const { loading, error, data } = usePriceConfig();\n\n return (price: IPrice) => {\n if (loading || error || !data || !price) {\n return null;\n }\n return formatPrice(formatNumber, data, price);\n };\n};\n\nexport const useFormattedPrice = (price: IPrice): IFormattedPrice => {\n const formatPriceFn = useFormatPrice();\n\n return formatPriceFn(price);\n};\n","import { useQuery, QueryResult } from '@apollo/client';\n\nimport { GetPriceConfigQuery } from '@notino/shared/definitions/types';\n\nimport getPriceConfigQuery from './priceConfig.graphql';\n\nexport const usePriceConfig = (): QueryResult => {\n return useQuery(getPriceConfigQuery);\n};\n","import loadable from '@loadable/component';\n\nexport const ProductSlider = loadable(() => import('./LoadableProductSlider'), {\n ssr: false,\n});\n","import * as React from 'react';\n\nimport styled from 'styled-components';\n\nimport { Colors, IBasicStyledProps } from '@notino/react-styleguide';\n\nimport { registerKeyboardListeners } from '@helpers/accessibility/registerKeyboardListeners';\nimport { arrayFromNumber } from '@helpers/utils';\n\ninterface IProgressProps extends IBasicStyledProps {\n heightInPx?: number;\n}\n\nconst Progress = styled.div`\n height: ${(props: IProgressProps) =>\n props.heightInPx ? props.heightInPx : 8}px;\n background: ${(props: IProgressProps) => props.theme.palette.neutralLight};\n position: relative;\n`;\n\ninterface IBarProps extends IProgressProps {\n lineWidth: number;\n color?: Colors;\n animationDuration?: number;\n}\nconst Bar = styled.div`\n width: ${(props: IBarProps) => `${props.lineWidth}%`};\n height: ${(props: IBarProps) => (props.heightInPx ? props.heightInPx : 8)}px;\n background: ${(props: IBarProps) =>\n props.color ? props.theme.palette[props.color] : props.theme.palette.basic};\n transition: ${(props: IBarProps) =>\n props.animationDuration ? props.animationDuration : 0.2}s\n ease;\n`;\n\nconst Segments = styled.div`\n position: absolute;\n height: 100%;\n width: 100%;\n line-height: 0;\n`;\n\ninterface ISegmentProps {\n selectable: boolean;\n}\nconst Segment = styled.div`\n display: inline-block;\n width: 20%;\n height: 100%;\n cursor: ${(props: ISegmentProps) => (props.selectable ? 'pointer' : 'auto')};\n\n :not(:last-child) {\n border-right: 1px solid ${(props) => props.theme.palette.basicInverse};\n }\n`;\n\ninterface IProgressBarProps {\n max: number;\n value: number;\n segments?: boolean;\n selectable?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onSelect?: any;\n color?: Colors;\n height?: number;\n animationDuration?: number;\n animationDelay?: number;\n name: string;\n label?: string;\n}\n\nconst ProgressBar = ({\n selectable,\n onSelect,\n segments,\n color,\n height,\n name,\n value,\n max,\n animationDuration,\n label,\n}: IProgressBarProps) => {\n const calcWidth = (segment: number): number => {\n let percent = selectable ? segment * 20 : (value / max) * 100;\n\n if (segments) {\n percent = (percent > 0 ? Math.round(percent / 20) : 0) * 20;\n }\n\n if (percent > 100) {\n percent = 100;\n }\n\n return percent;\n };\n\n const [selectedSegment, setSelectedSegment] = React.useState(0);\n const [width, setWidth] = React.useState(calcWidth(0));\n\n const onSegmentClick = (segment) => {\n if (selectable) {\n onSelect(segment);\n setSelectedSegment(segment);\n setWidth(calcWidth(segment));\n }\n };\n\n const onSegmentHover = (segment) => {\n if (selectable) {\n setWidth(calcWidth(segment));\n }\n };\n\n const onProgressLeave = () => {\n if (selectable) {\n setWidth(calcWidth(selectedSegment));\n }\n };\n\n return (\n \n {segments && (\n \n {arrayFromNumber(5).map((i) => {\n const handleSelect = () => onSegmentClick(i);\n return (\n onSegmentHover(i)}\n {...registerKeyboardListeners({\n Enter: handleSelect,\n Space: handleSelect,\n })}\n />\n );\n })}\n \n )}\n \n \n );\n};\n\nexport default ProgressBar;\n","import loadable from '@loadable/component';\n\nexport default loadable(() => import('../SpecialPageComponent'));\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as t from\"react\";import{Icon as r}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var o=function(o){return t.createElement(r,e({},o,{viewBox:\"0 0 57 64\"}),t.createElement(\"path\",{fill:\"currentColor\",d:\"M11.77,32A11.78,11.78,0,1,1,23.54,20.2,11.79,11.79,0,0,1,11.77,32Zm0-17.88a6.1,6.1,0,1,0,6.1,6.1A6.1,6.1,0,0,0,11.77,14.1Z\"}),t.createElement(\"path\",{fill:\"currentColor\",d:\"M44.28,55.57A11.78,11.78,0,1,1,56.05,43.79,11.79,11.79,0,0,1,44.28,55.57Zm0-17.87a6.1,6.1,0,1,0,6.1,6.09A6.1,6.1,0,0,0,44.28,37.7Z\"}),t.createElement(\"rect\",{fill:\"currentColor\",x:\"-8.73\",y:\"29.16\",width:\"73.52\",height:\"5.68\",transform:\"translate(-14.42 29.19) rotate(-45)\"}))};export{o as DiscountIcon};\n//# sourceMappingURL=DiscountIcon.js.map\n","import * as React from 'react';\nimport { MessageDescriptor } from 'react-intl';\n\nimport {\n DiscountIcon,\n TagModel,\n TruckIcon,\n StarIcon,\n ProductTileModel,\n} from '@notino/react-styleguide';\n\nimport messages from '@containers/ProductDetailContainer/messages';\nimport {\n AttributeTypes,\n AttributeType,\n} from '@containers/ProductListing/model';\n\nexport interface ILabelAttribute {\n icon: JSX.Element;\n style: TagModel.Styles;\n tooltipMessage?: MessageDescriptor;\n}\n\nexport enum ClientOnlyAttributeTypes {\n Damaged = 'Damaged',\n Returned = 'Returned',\n}\n\nexport type ILabelAttributes = {\n [key in ProductTileModel.TagAttributes]: ILabelAttribute;\n};\n\n/** Label attributes definition */\nexport const labelAttributes: ILabelAttributes = {\n [AttributeTypes.Action]: {\n style: TagModel.Styles.primary,\n icon: ,\n },\n [AttributeTypes.FreeDelivery]: {\n style: TagModel.Styles.neutral,\n icon: ,\n },\n [AttributeTypes.New]: {\n style: TagModel.Styles.muted,\n icon: ,\n },\n [AttributeTypes.Clearance]: {\n style: TagModel.Styles.primary,\n icon: ,\n },\n [ClientOnlyAttributeTypes.Damaged]: {\n style: TagModel.Styles.muted,\n icon: ,\n tooltipMessage: messages.productDamaged,\n },\n [ClientOnlyAttributeTypes.Returned]: {\n style: TagModel.Styles.muted,\n icon: ,\n tooltipMessage: messages.productReturned,\n },\n};\n\nexport interface ITagsProps {\n attributes?: AttributeType;\n stockAvailability: string;\n small?: boolean;\n multiple?: boolean;\n type?: TagModel.Types;\n icon?: string;\n onClick?: (attribute: ProductTileModel.TagAttributes) => void;\n nowrapLg?: boolean;\n}\n","import { flowRight as compose } from 'lodash';\n\nimport { ProductTileModel } from '@notino/react-styleguide';\n\nimport {\n AttributeTypes,\n MaximumVolumeInPercent,\n AttributeType,\n} from '@containers/ProductListing/model';\n\nimport {\n ILabelAttributes,\n labelAttributes,\n ClientOnlyAttributeTypes,\n ILabelAttribute,\n} from './model';\n\ninterface LabelPair {\n label: Label;\n attributes: ILabelAttribute;\n}\n\ntype Label = AttributeTypes | ClientOnlyAttributeTypes;\n\n/**\n * Returns an object of variant attributes, where keys are attributes (label) and values are its properties.\n * It respects the order according to labelAttributes keys\n */\nexport const getLabelAttrs = (attributes: Label[]): Partial =>\n Object.keys(labelAttributes)\n .map((label) => attributes.find((variantLabel) => variantLabel === label))\n .filter((element) => element !== undefined)\n .reduce((acc, label) => {\n acc[label] = labelAttributes[label];\n return acc;\n }, {});\n\nexport const getPairs = (attrs: Partial): LabelPair[] =>\n Object.keys(attrs).reduce(\n (acc, label) => [...acc, { label, attributes: labelAttributes[label] }],\n []\n );\n\nexport const resolveDamageAttribute = (attributeValue: {\n volumeInPercent: number;\n}): ClientOnlyAttributeTypes.Damaged | ClientOnlyAttributeTypes.Returned => {\n return attributeValue.volumeInPercent === MaximumVolumeInPercent\n ? ClientOnlyAttributeTypes.Damaged\n : ClientOnlyAttributeTypes.Returned;\n};\n\nexport const mapClientOnlyAttributes = (\n label: AttributeTypes,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n attributeValue: any\n): Label => {\n if (label === AttributeTypes.Damage) {\n return resolveDamageAttribute(attributeValue);\n }\n\n return label;\n};\n\nexport const orderTags = (tags: ProductTileModel.TagAttributes[]) => {\n const tagsOrder = [\n ProductTileModel.TagAttributes.Action,\n ProductTileModel.TagAttributes.Clearance,\n ProductTileModel.TagAttributes.FreeDelivery,\n ];\n\n return [...tags].sort((a, b) => {\n const indexA = tagsOrder.indexOf(a);\n const indexB = tagsOrder.indexOf(b);\n\n if (indexA !== -1 && indexB !== -1) {\n return indexA - indexB;\n } else if (indexA !== -1) {\n return -1;\n } else if (indexB !== -1) {\n return 1;\n }\n return 0;\n });\n};\n\nexport const transformAttributesToTags = (\n attributes: Record = {}\n): ProductTileModel.TagAttributes[] => {\n const tags = Object.keys(attributes)\n .filter((key) => Boolean(attributes[key]))\n .map((key: AttributeTypes) => {\n const label = mapClientOnlyAttributes(key, attributes[key]);\n return ProductTileModel.TagAttributes[label];\n })\n .filter(Boolean);\n\n return orderTags(tags);\n};\n\nconst addClientOnlyAttributes = (attributes: AttributeType): Label[] =>\n Object.keys(attributes).reduce(\n (acc, label) => [\n ...acc,\n mapClientOnlyAttributes(label as AttributeTypes, attributes[label]),\n ],\n []\n );\n\nexport const getRenderableAttributes = compose(\n getLabelAttrs,\n addClientOnlyAttributes\n) as (attributes?: AttributeType) => Partial;\n","import styled from 'styled-components';\n\nexport const TooltipContent = styled.div`\n min-width: 15rem;\n padding: 0.5rem;\n`;\n","import {\n breakpoints,\n Button,\n styled,\n ProductTile,\n theme,\n} from '@notino/react-styleguide';\n\nexport const StyledProductTile = styled(ProductTile)`\n margin-top: 1rem;\n`;\n\nexport const VoucherCode = styled.strong`\n color: ${theme.palette.basic};\n`;\nexport const ButtonWrapper = styled.div`\n margin-top: 1rem;\n display: flex;\n justify-content: center;\n\n & > button,\n form button {\n text-transform: none !important;\n font-weight: normal !important;\n width: auto !important;\n }\n`;\n\nexport const StyledButtonWatchdog = styled(Button)`\n margin-top: 1rem;\n line-height: 1.4;\n padding: 0.4375rem 1rem;\n text-transform: none;\n font-weight: normal;\n white-space: pre-wrap;\n @media (min-width: ${breakpoints.sm}) {\n width: auto;\n }\n`;\n\nexport const CouponIcon = styled.img`\n width: 2.5rem;\n height: 0.5rem;\n z-index: 2;\n`;\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { ButtonModel } from '@notino/react-styleguide';\nimport { GetItemDataByIdQuery } from '@notino/shared/definitions/types';\n\nimport { AddToCartButton } from '@sharedComponents/AddToCartButton/AddToCartButton';\nimport { Watchdog } from '@sharedComponents/Watchdog';\nimport { watchdogMessages } from '@sharedComponents/Watchdog/watchdogMessages';\nimport { noop } from '@utils/noop';\n\nimport { ButtonWrapper, StyledButtonWatchdog } from '../styled';\n\ninterface IBuyButtonProps {\n buttonElementClassName: string;\n product: GetItemDataByIdQuery['vpProductById'];\n showAddToCartModal: boolean;\n disableRedirect: boolean;\n onProductAdded: (\n product: GetItemDataByIdQuery['vpProductById']\n ) => void | Promise;\n onProductAddFailed?: (\n message: string,\n product: GetItemDataByIdQuery['vpProductById']\n ) => void | Promise;\n onClosingCartModal?: () => void;\n}\n\nexport const BuyButton: React.FC = ({\n buttonElementClassName,\n product,\n showAddToCartModal,\n disableRedirect,\n onProductAdded,\n onClosingCartModal,\n onProductAddFailed = noop,\n}) => {\n return (\n <>\n {product.canBuy && (\n onProductAdded(product)}\n onProductAddFailed={(message) => onProductAddFailed(message, product)}\n onClosingModal={onClosingCartModal}\n />\n )}\n \n \n \n \n \n \n );\n};\n","import { defineMessages } from 'react-intl';\nexport const messages = defineMessages({\n inStock: {\n id: 'product.item.in.stock',\n defaultMessage: 'skladem',\n },\n descriptionText: {\n id: 'product.item.black.friday.description.text',\n defaultMessage: 's kódem',\n },\n discountAmount: {\n id: 'product.item.discount.highlighted',\n defaultMessage: '-{amount} %',\n },\n});\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { ProductTile, ProductTileModel } from '@notino/react-styleguide';\nimport { masterUrl } from '@notino/shared/client-utils';\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\n\nimport { VoucherCode } from '@components/Universals/ProductItem/styled';\nimport { useSettings } from '@containers/ProductDetailContainer/hooks/useSettings';\nimport { useIsDualPriceForCroatia } from '@containers/ProductDetailContainer/ProductDetail/hooks/useIsDualPriceForCroatia';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\nimport { ProductEventWither } from '@helpers/googleTagManager';\nimport { noop } from '@utils/noop';\n\nimport { useGetImageAttributes } from '../../CdnImage/useImageAttributes';\nimport { useProductSpaRedirect } from '../../ClientRedirect/useHandleClientRedirect';\nimport { useFormatPrice } from '../../PriceLabel/useFormattedPrice';\nimport { usePriceConfig } from '../../PriceLabel/usePriceConfig';\nimport { useWishlistActionsFactory } from '../WishlistModifier/useWishlistActions';\n\nimport { BuyButton } from './components';\nimport { messages } from './messages';\nimport { IProductItemProps } from './model';\nimport { useGetTagAttributes } from './useTagAttributes';\nimport { useGetProductIcons } from './utils';\n\n// this character ensures that there is same spacing as if text was present\n// found here https://jkorpela.fi/chars/spaces.html\nconst SPECIAL_IDEOGRAPHIC_SPACE = ' ';\n\ntype UseGetProductItemProps = Pick<\n IProductItemProps,\n | 'useMasterUrl'\n | 'setProductWishlisted'\n | 'GTMEventLabel'\n | 'inSectionOfType'\n | 'sendGTM'\n | 'noPriceIfUnavailable'\n | 'noTags'\n | 'showWishlistButton'\n | 'onProductAdded'\n | 'onProductAddFailed'\n | 'onClosingCartModal'\n | 'showBuyButton'\n | 'showAddToCartModal'\n | 'buttonElementClassName'\n | 'canSpaRedirect'\n | 'wishlistActionLocation'\n>;\n\ntype GetProductProps = Pick<\n IProductItemProps,\n | 'product'\n | 'wishlisted'\n | 'order'\n | 'appendComponent'\n | 'description'\n | 'position'\n>;\n\nexport const useGetProductItemProps = ({\n useMasterUrl = false,\n setProductWishlisted,\n GTMEventLabel,\n inSectionOfType = '',\n sendGTM = false,\n noPriceIfUnavailable,\n noTags,\n showWishlistButton,\n onProductAdded = noop,\n onProductAddFailed = noop,\n onClosingCartModal = noop,\n showBuyButton = false,\n showAddToCartModal = true,\n buttonElementClassName,\n canSpaRedirect = true,\n wishlistActionLocation,\n}: UseGetProductItemProps) => {\n const { data: { currentLocale, currentCurrency } = {} } = usePriceConfig();\n const { Settings: { showUnitPrices } = {} } = useSettings();\n\n const formatPrice = useFormatPrice();\n const {\n isDualPriceForCroatia,\n getLeftSideFormattedPrice,\n getRightSideFormattedPrice,\n leftSideCurrency,\n rightSideCurrency,\n } = useIsDualPriceForCroatia();\n const getTagAttributes = useGetTagAttributes();\n const getProductIcons = useGetProductIcons();\n const getImageAttributes = useGetImageAttributes();\n\n const withProductSpaRedirect = useProductSpaRedirect(\n canSpaRedirect,\n useMasterUrl\n );\n\n const { handleWishlistClick, isWishlistAllowed } = useWishlistActionsFactory({\n onCompleted: setProductWishlisted,\n });\n\n return ({\n product,\n wishlisted = false,\n order,\n appendComponent,\n description,\n position = 0,\n }: GetProductProps): ProductTileModel.IProductTileContentProps => {\n if (!currentLocale || !currentCurrency || !product) {\n return null;\n }\n\n const formattedPriceObj = formatPrice(product.price);\n const formattedUnitPriceObj = formatPrice(product.unitPrice);\n const tagAttributes = getTagAttributes(product.attributes);\n\n const productIcons = getProductIcons(product.attributes);\n\n const imageAttributes = getImageAttributes(\n product.imageUrl,\n 'list',\n `${product.brand?.name} ${product.name}`\n );\n\n const handleTracking = () => {\n if (sendGTM && currentCurrency) {\n dispatchTrackingEvent({\n event: 'select_item',\n product: [\n ProductEventWither()\n .withVpProduct(product)\n .withAdditionalData({\n list_position: position,\n list_name: GTMEventLabel,\n })\n .build(),\n ],\n _clear: true,\n });\n }\n };\n\n const withSpaRedirect = withProductSpaRedirect(product);\n const handleClick = withSpaRedirect(handleTracking);\n\n const productInStock = product.stockAvailability.code !== IStock.outOfStock;\n const showPrice = !noPriceIfUnavailable || product.canBuy;\n\n const voucherDiscount = product.attributes.VoucherDiscount;\n\n function getVoucherDiscountDecoration():\n | 'summerBlackFriday'\n | 'blackFriday'\n | undefined {\n if (voucherDiscount?.tags.includes('summerblackfriday')) {\n return 'summerBlackFriday';\n }\n if (voucherDiscount?.tags?.includes('blackfriday')) {\n return 'blackFriday';\n }\n return undefined;\n }\n\n return {\n state: ProductTileModel.State.product,\n tileProps: {\n 'data-testid': 'product-item',\n 'data-cypress': 'productItem-container',\n },\n product: {\n id: product.id,\n description: description,\n name: product.name,\n subName: product.subName,\n brandName: product.brand?.name ?? SPECIAL_IDEOGRAPHIC_SPACE,\n variantName: product.annotation,\n },\n\n unitPrice: showPrice &&\n showUnitPrices &&\n product.unitPrice && {\n price: {\n price: String(\n formattedUnitPriceObj?.formattedPrice || product.unitPrice?.value\n ),\n currencySymbol: formattedUnitPriceObj?.currencySymbol,\n currencyFormat: formattedUnitPriceObj?.currentLocale?.priceFormat,\n },\n unit: product.unitPrice.unit,\n unitAmount: String(product.unitPrice.perAmount),\n },\n ratings: Boolean(product.reviewOverview?.rating) && {\n inSectionOfType,\n score: product.reviewOverview.rating,\n },\n productIcons,\n tags: productInStock &&\n tagAttributes && {\n attributes: tagAttributes,\n visible: !noTags,\n },\n aboveBuyButton: (\n <>\n {Boolean(product.attributes.BlackFridayOfferDiscount) && (\n \n }\n discountDescription={\n \n }\n />\n )}\n\n {Boolean(voucherDiscount) && (\n \n }\n discountDescription={\n \n \n  \n {voucherDiscount.code}\n \n }\n />\n )}\n \n ),\n appendComponent: (\n <>\n {appendComponent}\n {showBuyButton && (\n \n )}\n \n ),\n href: useMasterUrl ? masterUrl(product.url) : product.url,\n imageProps: imageAttributes,\n onClick: handleClick,\n order,\n wishlist: {\n wishlisted: wishlisted || product.wishlisted,\n onClick: () =>\n handleWishlistClick({\n productId: product.id,\n wishlisted: wishlisted || product?.wishlisted,\n actionLocation: wishlistActionLocation,\n listName: GTMEventLabel,\n listPosition: position,\n }),\n notActive: !isWishlistAllowed && showWishlistButton,\n },\n price:\n showPrice &&\n (isDualPriceForCroatia\n ? {\n price: getRightSideFormattedPrice(product.price.value),\n currencySymbol: rightSideCurrency,\n currencyFormat: 'v s',\n }\n : {\n price: String(\n formattedPriceObj?.formattedPrice || product?.price.value\n ),\n currencySymbol:\n formattedPriceObj?.currencySymbol || currentCurrency.symbol,\n currencyFormat:\n formattedPriceObj?.currentLocale?.priceFormat ||\n currentLocale.priceFormat,\n }),\n dualPrice: showPrice &&\n isDualPriceForCroatia && {\n price: getLeftSideFormattedPrice(product.price.value),\n currencySymbol: leftSideCurrency,\n currencyFormat: 'v s',\n },\n };\n };\n};\n\nexport const useProductItemProps = ({\n product,\n wishlisted,\n description,\n position,\n appendComponent,\n order,\n ...rest\n}: IProductItemProps) => {\n const getProductItemProps = useGetProductItemProps(rest);\n\n return getProductItemProps({\n product,\n wishlisted,\n description,\n position,\n appendComponent,\n order,\n });\n};\n","import { useIntl } from 'react-intl';\n\nimport { ProductTileModel } from '@notino/react-styleguide';\n\nimport { messages } from '@containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/VoucherDiscount/VoucherDiscountInfo/messages';\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\nimport { useApolloClientHeaders } from '@hooks/useApolloClientHeaders';\n\ninterface Attributes {\n BlackFridayOfferDiscount?: boolean;\n blackFriday?: boolean;\n christmasOffer?: boolean;\n VoucherDiscount?: {\n productDetailOnly?: boolean;\n theme: string | null;\n tags: string[];\n };\n}\n\nfunction transformProductIcons(\n attributes: Attributes,\n newDermoIcon: boolean,\n formatMessage,\n isFranceShop: boolean\n): ProductTileModel.IProductIcon[] {\n return Object.keys(attributes)\n .map((key) => {\n if (key === 'LorealLabel') {\n return { icon: ProductTileModel.SpecialSales.lorealLabel };\n } else if (['BlackFridayOfferDiscount', 'blackFriday'].includes(key)) {\n return {\n icon: ProductTileModel.SpecialSales.blackFriday,\n label: formatMessage(messages.blackFridayLabel),\n };\n } else if (key === 'christmasOffer') {\n return { icon: ProductTileModel.SpecialSales.christmasOffer };\n } else if (key === 'VoucherDiscount') {\n const voucherDiscount = attributes.VoucherDiscount;\n if (voucherDiscount?.tags.includes('summerblackfriday')) {\n return {\n icon: ProductTileModel.SpecialSales.summerBlackFriday,\n label: formatMessage(messages.sbfLabel),\n title: formatMessage(messages.sbfLabel),\n highlightedWordIndex: isFranceShop ? 2 : 0,\n };\n } else if (voucherDiscount?.tags?.includes('blackfriday')) {\n return {\n icon: ProductTileModel.SpecialSales.blackFriday,\n label: formatMessage(messages.sbfLabel),\n };\n }\n } else if (key === 'Dermo') {\n return {\n icon: newDermoIcon\n ? ProductTileModel.SpecialSales.recommendedByDermatologists\n : ProductTileModel.SpecialSales.dermo,\n };\n }\n return null;\n })\n .filter(Boolean);\n}\n\nexport const useGetProductIcons = () => {\n const { formatMessage } = useIntl();\n const { newDermoIcon } = useFeatureFlags();\n const isFranceShop = useApolloClientHeaders().shopId === 'notino.fr';\n\n return (\n attributes: Record\n ): ProductTileModel.IProductIcon[] => {\n if (!attributes) return [];\n\n return transformProductIcons(\n attributes,\n newDermoIcon,\n formatMessage,\n isFranceShop\n );\n };\n};\n","/*\n * ProductBaseInfo messages\n */\nimport { defineMessages } from 'react-intl';\nexport default defineMessages({\n attributeNew: {\n id: 'attribute.new',\n defaultMessage: 'Nové',\n },\n attributeAction: {\n id: 'attribute.action',\n defaultMessage: 'Akce',\n },\n attributeClearance: {\n id: 'attribute.clearance',\n defaultMessage: 'Výprodej',\n },\n attributeFreeDelivery: {\n id: 'attribute.freedelivery',\n defaultMessage: 'Doprava zdarma',\n },\n attributeDamage: {\n id: 'attribute.damage',\n defaultMessage: 'Speciální sleva',\n },\n attributeDamaged: {\n id: 'attribute.damaged',\n defaultMessage: 'Poškozený obal',\n },\n attributeReturned: {\n id: 'attribute.returned',\n defaultMessage: 'Vráceno',\n },\n});\n","import { useIntl } from 'react-intl';\n\nimport { ProductTileModel } from '@notino/react-styleguide';\n\nimport messages from '@components/Tags/messages';\nimport { labelAttributes } from '@components/Tags/model';\nimport { transformAttributesToTags } from '@components/Tags/utils';\n\nexport function useGetTagAttributes() {\n const { formatMessage } = useIntl();\n\n return (\n attributes: Record,\n options: {\n multiple?: boolean;\n customFilter?: (tagAttributes: ProductTileModel.TagAttributes) => boolean;\n } = {}\n ) => {\n const { multiple = false, customFilter } = options;\n\n if (!attributes) {\n return null;\n }\n\n let renderableAttributes: ProductTileModel.TagAttributes[] =\n transformAttributesToTags(attributes);\n\n if (customFilter) {\n renderableAttributes = renderableAttributes.filter(customFilter);\n }\n\n const attrs = renderableAttributes.slice(0, multiple ? Infinity : 1);\n\n return attrs.map((label) => ({\n attribute: label,\n label: formatMessage(messages[`attribute${label}`]),\n ...labelAttributes[label],\n }));\n };\n}\n\nexport function useTagAttributes(\n attributes: Record,\n options: {\n multiple?: boolean;\n customFilter?: (tagAttributes: ProductTileModel.TagAttributes) => boolean;\n } = {}\n) {\n const getTagAttributes = useGetTagAttributes();\n return getTagAttributes(attributes, options);\n}\n","import loadable from '@loadable/component';\n\nexport const Routine = loadable(() => import('../Routine'));\n","import { withTryToInvokeTrackingEvent } from '@utils/exponea-logging';\n\nexport const trackExponeaWishlistUpdate = withTryToInvokeTrackingEvent(\n 'WishlistUpdate',\n (payload: Parameters[0]) => {\n void window.trackingEvents.WishlistUpdate(payload);\n }\n);\n","import { useQuery } from '@apollo/client';\n\nimport { IsWishlistEnabledQuery } from '@notino/shared/definitions/types';\n\nimport isWishlistEnabledQuery from '../queries/isWishlistEnabled.graphql';\n\nexport const useIsWishlistEnabled = () => {\n const { data, loading, error } = useQuery(\n isWishlistEnabledQuery\n );\n\n return !loading && !error && data?.Settings?.isWishlistAllowed;\n};\n","import * as React from 'react';\n\nimport { useMutation } from '@apollo/client';\n\nimport {\n AddToWishlistMutation,\n AddToWishlistMutationVariables,\n RemoveFromWishlistMutation,\n RemoveFromWishlistMutationVariables,\n} from '@notino/shared/definitions/types';\n\nimport getItemDataByIdQuery from '@components/Universals/ProductItem/queries/itemDataById.graphql';\nimport variantFragment from '@containers/ProductDetailContainer/queries/fragVariant.graphql';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\n\nimport addToWishlistMutation from '../queries/addToWishlist.graphql';\nimport removeFromWishlistMutation from '../queries/removeFromWishlist.graphql';\nimport { trackExponeaWishlistUpdate } from '../tracking/exponea';\nimport {\n handleTrackWishlistOperation,\n WishlistActionLocation,\n} from '../tracking/gtm';\nimport { updateWishlistedCache } from '../updateWishlistedCache';\n\nimport { useIsWishlistEnabled } from './useIsWishlistEnabled';\n\nexport const publishUpdateWishlistCountEvent = () => {\n if (window.wishlistService) {\n window.wishlistService.count();\n } else if (document) {\n // publish a custom event only when the wihlistService is unavailable because\n // when it is available the event is published inside the wishlistService count() method\n const event = new CustomEvent('header:wishlist:overview:update');\n document.dispatchEvent(event);\n }\n};\n\ninterface IUseWishlistActions {\n productId: string;\n wishlisted: boolean;\n onCompleted?: (productId: string, wishlisted: boolean) => void;\n}\n\nexport const useWishlistActionsFactory = ({\n onCompleted,\n}: Pick) => {\n const { getTimeFromInit } = useTrackingContext();\n\n const isWishlistAllowed = useIsWishlistEnabled();\n\n const [add, { loading: addLoading }] = useMutation<\n AddToWishlistMutation,\n AddToWishlistMutationVariables\n >(addToWishlistMutation);\n\n const [remove, { loading: removeLoading }] = useMutation<\n RemoveFromWishlistMutation,\n RemoveFromWishlistMutationVariables\n >(removeFromWishlistMutation);\n\n const loading = addLoading || removeLoading;\n\n const handleWishlistClick = React.useCallback(\n async ({\n productId,\n wishlisted,\n actionLocation,\n trackingPromoLabels = [],\n listName,\n listPosition,\n }: {\n productId: string;\n wishlisted: boolean;\n actionLocation: WishlistActionLocation;\n trackingPromoLabels?: string[];\n listName?: string;\n listPosition?: number;\n }) => {\n const addedToWishlist = !wishlisted;\n const operation = addedToWishlist ? add : remove;\n const { data } = await operation({\n variables: { productId },\n update: (cache) => {\n updateWishlistedCache({\n cache,\n wishlisted: addedToWishlist,\n productId,\n });\n\n const itemDataById = cache.readQuery({\n query: getItemDataByIdQuery,\n variables: { id: productId.toString() },\n })?.vpProductById;\n\n const variantData = cache.readFragment({\n fragment: variantFragment,\n id: `Variant:${productId}`,\n });\n\n const product = itemDataById || variantData;\n\n if (product) {\n handleTrackWishlistOperation({\n addedToWishlist: addedToWishlist,\n product: { ...product, wishlisted: addedToWishlist },\n timing: getTimeFromInit(),\n actionLocation,\n additionalPromoLabels: trackingPromoLabels,\n additionalGtm: {\n list_name: listName,\n list_position: listPosition,\n },\n });\n }\n },\n });\n\n const wishlistProductIds =\n 'WishlistAddProduct' in data\n ? data.WishlistAddProduct.products\n : data.WishlistRemoveProduct.products;\n\n trackExponeaWishlistUpdate({\n action: addedToWishlist ? 'add' : 'remove',\n productId: Number(productId),\n wishlistProductIds: wishlistProductIds.map(Number),\n });\n\n publishUpdateWishlistCountEvent();\n onCompleted?.(productId, addedToWishlist);\n },\n [add, onCompleted, remove, getTimeFromInit]\n );\n\n return React.useMemo(\n () => ({\n handleWishlistClick,\n isWishlistAllowed,\n loading,\n }),\n [handleWishlistClick, isWishlistAllowed, loading]\n );\n};\n\nexport const useWishlistActions = ({\n productId,\n wishlisted,\n onCompleted,\n}: IUseWishlistActions) => {\n const { handleWishlistClick, isWishlistAllowed, loading } =\n useWishlistActionsFactory({ onCompleted });\n\n return React.useMemo(\n () => ({\n handleWishlistClick: (\n actionLocation: WishlistActionLocation,\n trackingPromoLabels: string[] = []\n ) => {\n return handleWishlistClick({\n productId,\n wishlisted,\n actionLocation,\n trackingPromoLabels,\n });\n },\n isWishlistAllowed,\n loading,\n }),\n [handleWishlistClick, isWishlistAllowed, loading, productId, wishlisted]\n );\n};\n","import { GetItemDataByIdQuery as IgetItemDataById } from '@notino/shared/definitions/types';\n\nimport getItemDataByIdQuery from '../ProductItem/queries/itemDataById.graphql';\n\nimport { ICallbackParameters } from './model';\n\nexport const updateWishlistedCache = ({\n cache,\n wishlisted,\n productId,\n}: ICallbackParameters & { productId: string }) => {\n cache.updateQuery(\n {\n query: getItemDataByIdQuery,\n variables: { id: productId.toString() },\n },\n (prev) => ({\n vpProductById: {\n ...prev?.vpProductById,\n wishlisted,\n },\n })\n );\n};\n","import { GetProductsByIdBatchedQuery } from '@notino/shared/definitions/types';\nimport { Product } from '@notino/web-tracking/dist/types/package/ga4/events/products';\n\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\nimport { ProductEventWither } from '@helpers/googleTagManager';\n\nexport type WishlistActionLocation = 'product_detail' | 'wishlist' | 'list';\n\ninterface HandleTrackWishlistOperationParams {\n addedToWishlist: boolean;\n product: GetProductsByIdBatchedQuery['vpProductByIds'][number];\n timing: number;\n actionLocation: WishlistActionLocation;\n additionalPromoLabels?: string[];\n additionalGtm?: Partial;\n}\n\nexport const handleTrackWishlistOperation = ({\n addedToWishlist,\n product,\n timing,\n actionLocation,\n additionalGtm = {},\n additionalPromoLabels = [],\n}: HandleTrackWishlistOperationParams) => {\n const additionalData: Partial = Object.entries(additionalGtm).reduce(\n (acc, [key, value]) =>\n value === undefined ? acc : { ...acc, [key]: value },\n {}\n );\n\n if (addedToWishlist) {\n dispatchTrackingEvent({\n event: 'add_to_wishlist',\n wishlist: {\n action: 'product_added_to_wishlist',\n interaction: 'click_add',\n type: actionLocation,\n timing,\n products: [\n ProductEventWither()\n .withVpProduct(product)\n .withAdditionalPromoLabels(additionalPromoLabels)\n .withAdditionalData(additionalData)\n .build(),\n ],\n },\n _clear: true,\n });\n } else {\n dispatchTrackingEvent({\n event: 'remove_from_wishlist',\n wishlist: {\n action: 'product_removed_from_wishlist',\n interaction: 'click_remove',\n type: actionLocation,\n timing,\n products: [\n ProductEventWither()\n .withVpProduct(product)\n .withAdditionalData(additionalData)\n .build(),\n ],\n },\n _clear: true,\n });\n }\n};\n","interface IMissData {\n missId: number;\n startTime: string;\n year: number;\n}\n\nexport const createCarousel = (\n id: string,\n data: { ids: string[] }\n): Carousel => ({\n id,\n type: ComponentType.Carousel,\n data,\n});\n\nexport const createMiss = (id: string, data: IMissData): Miss => ({\n id,\n type: ComponentType.Miss,\n data,\n});\n\nexport const createUniversalPage = (\n type: ComponentType,\n id: string,\n data: { ids: string[] }\n): UniversalPage => ({\n id,\n type,\n data,\n});\n\nexport enum ComponentType {\n Carousel = 'carousel',\n Wishlist = 'wishlist',\n Miss = 'miss',\n AdventCalendar = 'adventCalendar',\n GiftWrapper = 'giftwrapper',\n TryAndBuy = 'tryAndBuy',\n ShadeFinder = 'shadeFinder',\n}\n\ninterface UniversalPage {\n type: ComponentType;\n id: string;\n data: { ids: string[] };\n}\n\nexport type Components = Carousel | Miss | UniversalPage;\n\nexport interface Carousel {\n type: ComponentType.Carousel;\n id: string;\n data: { ids: string[] };\n}\n\nexport interface Miss {\n type: ComponentType.Miss;\n id: string;\n data: IMissData;\n}\n\nexport const createComponents = (url: string): Components[] => {\n const qs = decodeURIComponent(url).replace('/render', '');\n const reqComponents = new URLSearchParams(qs).get('components');\n\n const data: Array<{\n type: ComponentType;\n id: string;\n data: { ids: string[] };\n }> = JSON.parse(reqComponents);\n\n return data\n .filter((component) =>\n Object.values(ComponentType).includes(component.type)\n )\n .map((component) => {\n switch (component.type) {\n case ComponentType.Carousel: {\n return createCarousel(component.id, component.data);\n }\n case ComponentType.Miss: {\n return createMiss(\n component.id,\n component.data as unknown as IMissData\n );\n }\n // as all unsupported types are filtered, we can default to create universal page\n default: {\n return createUniversalPage(\n component.type,\n component.id,\n component.data\n );\n }\n }\n });\n};\n","import styled, { css } from 'styled-components';\n\nconst ContentWrapper = styled.div<{ newPdDesignEnabled?: boolean }>`\n max-width: 64.6875rem;\n margin: 0 auto;\n padding: 0;\n width: 100%;\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled &&\n css`\n max-width: 80rem;\n @media (min-width: 105rem) {\n max-width: 100rem;\n }\n `}\n`;\n\nexport default ContentWrapper;\n","import styled from 'styled-components';\n\nimport { breakpoints, css } from '@notino/react-styleguide';\n\nconst TabWrapper = styled.div<{ newPdDesignEnabled: boolean }>`\n ${({ newPdDesignEnabled }) =>\n !newPdDesignEnabled &&\n css`\n margin: 0 -0.9375rem;\n `}\n\n @media (min-width: ${breakpoints.md}) {\n margin: 0;\n }\n`;\n\nexport default TabWrapper;\n","import styled from 'styled-components';\n\nconst ViewPort = styled.main`\n padding-bottom: 3.125rem;\n`;\n\nexport default ViewPort;\n","export const zipRegexes = {\n 'notino.cz': {\n pattern: /\\d{3} \\d{2}$/,\n mask: '999 99',\n },\n 'notino.sk': {\n pattern: /\\d{3} \\d{2}$/,\n mask: '999 99',\n },\n 'notino.pl': {\n pattern: /\\d{2}-\\d{3}$/,\n mask: '99-999',\n },\n 'notino.de': {\n pattern: /^\\d{5}$/,\n mask: '99999',\n },\n 'notino.at': {\n pattern: /^\\d{4}$/,\n mask: '9999',\n },\n 'notino.hu': {\n pattern: /^\\d{4}$/,\n mask: '9999',\n },\n 'notino.es': {\n pattern: /^\\d{5}$/,\n mask: '99999',\n },\n 'notino.pt': {\n pattern: /^\\d{4}$/,\n mask: '9999',\n },\n 'notino.co.uk': {\n pattern:\n /^(([A-Z]{1,2}[0-9][A-Z0-9]?|ASCN|STHL|TDCU|BBND|[BFS]IQQ|PCRN|TKCA) ?[0-9][A-Z]{2}|BFPO ?[0-9]{1,4}|(KY[0-9]|MSR|VG|AI)[ -]?[0-9]{4}|[A-Z]{2} ?[0-9]{2}|GE ?CX|GIR ?0A{2}|SAN ?TA1)$/,\n // as UK post code is too complex we do not provide mask\n mask: null,\n },\n 'notino.fr': {\n pattern: /^\\d{5}$/,\n mask: '99999',\n },\n 'notino.it': {\n pattern: /^\\d{5}$/,\n mask: '99999',\n },\n 'notino.nl': {\n pattern: /^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z|A-Z]{2}$/i,\n mask: '9999 aa',\n },\n 'notino.be': {\n pattern: /^\\d{4}$/,\n mask: '9999',\n },\n 'notino.hr': {\n pattern: /^\\d{5}$/,\n mask: '99999',\n },\n 'notino.si': {\n pattern: /^(\\d{4})$/,\n mask: '9999',\n },\n 'notino.dk': {\n pattern: /^\\d{4}$/,\n mask: '9999',\n },\n 'notino.fi': {\n pattern: /^\\d{5}$/,\n mask: '99999',\n },\n 'notino.gr': {\n pattern: /\\d{3} \\d{2}$/,\n mask: '999 99',\n },\n 'notino.bg': {\n pattern: /^\\d{4}$/,\n mask: '9999',\n },\n 'notino.ua': {\n pattern: /^\\d{5}$/,\n mask: '99999',\n },\n 'notino.se': {\n pattern: /\\d{3} \\d{2}$/,\n mask: '999 99',\n },\n 'notino.ro': {\n pattern: /^\\d{6}$/,\n mask: '999999',\n },\n 'notino.ch': {\n pattern: /^\\d{4}$/,\n mask: '9999',\n },\n 'notino.ru': {\n pattern: /^\\d{6}$/,\n mask: '999999',\n },\n};\nexport const LOGIN_URL = '/myaccount.asp';\n","import loadable from '@loadable/component';\n\nexport const AdminPanel = loadable(() => import('../AdminPanel'));\n","import loadable from '@loadable/component';\n\nexport default loadable(() => import('../AdventCalendar'));\n","export interface IRoute {\n component: string;\n path?: string;\n exact?: boolean;\n rolesOnly?: Roles[];\n}\n\ninterface IUserInfo {\n id: string;\n firstName: string;\n lastName: string;\n lastName2: string;\n email: string;\n}\n\n// watch out here, user needs to be single level object for the purposes of error reporting (see src/app.ts)\nexport interface IUser {\n role: string;\n id?: string;\n token?: string;\n cartId?: string;\n info?: IUserInfo;\n}\n\nexport interface ISettings {\n useNewAddToCart: boolean;\n imageDomainPath: string;\n addToCartSettings: {\n buttonAllowed: string;\n buttonAllowedForAll: boolean;\n modalAllowed: string;\n isNewShoppingCartEndpointEnabled: boolean;\n };\n engravingSettings: {\n allowed: string;\n };\n routineSettings: {\n allowed: string;\n };\n routes: IRoute[];\n isWishlistAllowed: boolean;\n isTryItFirstEnabled: boolean;\n deliveriesDisplayMode?: string;\n}\n\nexport interface ICurrency {\n id: number;\n code: string;\n symbol: string;\n}\n\nexport interface ILocale {\n id: number;\n tag: string;\n currency: string;\n priceDecimalPlaces: number;\n priceFormat: string; // values: 'vs', 'v s', 'sv', 's v' where 'v' stands for value, 's' for symbol\n}\n\nexport enum Roles {\n ANONYMOUS = 'Anonymous',\n CUSTOMER = 'Customer',\n SUPERUSER = 'Superuser',\n ADMIN = 'Admin',\n}\n\nexport enum EShop {\n NOTINO_CZ = 'notino.cz',\n NOTINO_SK = 'notino.sk',\n NOTINO_PL = 'notino.pl',\n NOTINO_DE = 'notino.de',\n NOTINO_AT = 'notino.at',\n NOTINO_HU = 'notino.hu',\n NOTINO_ES = 'notino.es',\n NOTINO_PT = 'notino.pt',\n NOTINO_COM = 'notino.com',\n NOTINO_CO_UK = 'notino.co.uk',\n NOTINO_FR = 'notino.fr',\n NOTINO_IT = 'notino.it',\n NOTINO_NL = 'notino.nl',\n NOTINO_BE = 'notino.be',\n NOTINO_HR = 'notino.hr',\n NOTINO_SE = 'notino.se',\n NOTINO_DK = 'notino.dk',\n NOTINO_FI = 'notino.fi',\n NOTINO_GR = 'notino.gr',\n NOTINO_RO = 'notino.ro',\n NOTINO_SI = 'notino.si',\n NOTINO_UA = 'notino.ua',\n NOTINO_BG = 'notino.bg',\n}\n\nexport const RoleGroups = {\n KNOWN: [Roles.ADMIN, Roles.CUSTOMER, Roles.SUPERUSER],\n};\n\nexport type Validator = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any,\n allValues?: Record\n) => string | { key: string; values: Record };\n\nexport interface IValidationDictionary {\n [key: string]: IValidation;\n}\n\nexport interface IValidation {\n required?: boolean;\n maxLength?: number;\n regex?: {\n pattern: string;\n modifier?: string;\n errMsg?: string;\n };\n}\n\nexport type IRegexValidatorFactory = (\n pattern: string,\n modifier?: string,\n error?: string\n) => Validator;\n\nexport enum RequestState {\n DEFAULT = 'default',\n DONE = 'done',\n IN_PROGRESS = 'in_progress',\n RETRYING = 'retrying',\n FAILED = 'failed',\n}\n\nexport type RequestUser = RequestContext & {\n xUserToken?: string;\n jwtToken?: string;\n userName?: string;\n};\n\n/**\n * Add shopId model to global types\n */\ndeclare global {\n namespace Express {\n // tslint:disable-next-line:interface-name\n interface Request {\n user?: RequestUser;\n }\n }\n\n // tslint:disable-next-line:interface-name\n interface RequestContext {\n shopId: EShop;\n role: Roles;\n groupId?: string;\n userId?: string;\n email?: string;\n givenName?: string;\n userName?: string;\n cartId?: string;\n comparisonIds?: string;\n authorization?: string;\n grd: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n jwtPayload?: any;\n }\n\n // tslint:disable-next-line:interface-name\n interface GraphQLRequestContext {\n shopId?: EShop;\n }\n}\n","import { withTryToInvokeTrackingEvent } from '@utils/exponea-logging';\n\nexport const runExponeaFunctions = () => {\n if (typeof window.runExponeaFunctions === 'function') {\n window.runExponeaFunctions();\n } else {\n window.addEventListener('load', runExponeaAndRemoveListener);\n }\n};\n\nconst runExponeaAndRemoveListener = () => {\n if (typeof window.runExponeaFunctions === 'function') {\n window.runExponeaFunctions();\n }\n window.removeEventListener('load', runExponeaAndRemoveListener);\n};\n\nexport const runTrackingEventViewItem = withTryToInvokeTrackingEvent(\n 'ViewItem',\n (payload: Parameters[0]) => {\n void window.trackingEvents.ViewItem(payload);\n }\n);\n","import { Validator } from '@containers/App/model';\n\nimport { IRegexValidatorFactory, IValidation } from './model';\n\nconst composeValidators = (validators) => (value) =>\n validators.reduce((error, validator) => error || validator(value), undefined);\n\nexport const required: Validator = (value) => (value ? undefined : 'Required');\n\nconst maxLengthFactory = (maxLength: number, error = 'MaxLength') => {\n return (value) => {\n return value?.length > maxLength ? error : undefined;\n };\n};\n\nconst regexFactory: IRegexValidatorFactory = (\n pattern,\n modifier,\n error = 'Invalid'\n) => {\n const regex = new RegExp(pattern, modifier);\n return (value) => {\n const testValue = value ? value : '';\n return regex.test(testValue) ? undefined : error;\n };\n};\n\nconst mapValidator = (validation: IValidation): Validator => {\n const validators = [];\n if (validation.required) {\n validators.push(required);\n }\n if (validation.maxLength) {\n validators.push(maxLengthFactory(validation.maxLength));\n }\n if (validation.regex) {\n validators.push(\n regexFactory(\n validation.regex.pattern,\n validation.regex.modifier,\n validation.regex.errMsg\n )\n );\n }\n if (validators.length === 1) {\n return validators[0];\n }\n return composeValidators(validators);\n};\n\nexport const validatorFactory = >(\n validations: T\n): Record =>\n Object.keys(validations).reduce((result, key) => {\n result[key as keyof T] = mapValidator(validations[key]);\n return result;\n }, {} as Record);\n","import loadable from '@loadable/component';\n\nexport default loadable(() => import('../Home'));\n","import { PathTemplate } from '@notino/shared/definitions/types';\n\nimport { ComponentType } from '@components/WebView/utils';\n\n// needed for wishlist -> pd spa redirect\nconst pdSkeletonPrefixes = ['pd.about', 'pd.code', 'pd.availability'];\n\nexport const prefixes = {\n [PathTemplate.ProductDetailSimple]: [\n 'pd',\n 'attribute',\n 'universals',\n 'product',\n 'brand',\n 'reviews',\n 'rating',\n 'order',\n 'relatedProducts',\n 'global',\n 'engraving',\n 'try.it.first',\n 'watchdog',\n 'modiface',\n ],\n [PathTemplate.Error]: ['pd'],\n [PathTemplate.Tryandbuy]: ['tnb'],\n [PathTemplate.Wishlist]: [\n 'wishlist',\n 'universals',\n 'attribute',\n 'reviews',\n 'product',\n 'pd.summer.black.friday',\n 'pd.black.friday',\n 'watchdog',\n 'global',\n ...pdSkeletonPrefixes,\n ],\n // We use component type for development purposes\n [ComponentType.AdventCalendar]: ['adventcalendar'],\n [ComponentType.Miss]: ['miss'],\n [ComponentType.GiftWrapper]: ['gifts'],\n [ComponentType.TryAndBuy]: ['tryandbuy', 'tnb', 'global'],\n};\n","import loadable from '@loadable/component';\n\nexport default loadable(() => import('../Miss'));\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints } from '@notino/react-styleguide';\n\nexport const Margin = styled.div<{ newDesign: boolean }>`\n ${({ newDesign }) =>\n newDesign &&\n css`\n margin-bottom: -2rem;\n @media (min-width: ${breakpoints.lg}) {\n margin-top: -1rem;\n margin-bottom: 4rem;\n }\n `}\n`;\n","import * as React from 'react';\nimport { useInView } from 'react-intersection-observer';\n\nimport { useQuery } from '@apollo/client';\nimport { map } from 'lodash';\n\nimport { IArticle } from '@notino/react-styleguide';\nimport {\n GetProductViewQuery,\n GetBlogArticlesQuery,\n GetBlogArticlesQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport messages from '@containers/ProductDetailContainer/messages';\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\nimport loadable from '@loadable/component';\n\nimport { useNewPdDesignEnabled } from '../hooks/useNewPdDesignEnabled';\nimport { SectionContainer } from '../SectionContainer';\n\nimport { Margin } from './index.styles';\nimport getBlogArticlesQuery from './queries/getBlogArticles.graphql';\n\nconst LoadableArticlesSlider = loadable(\n () => import('./LoadableArticlesSlider')\n);\n\ntype Props = Pick<\n GetProductViewQuery['productDetailByMasterId'][number],\n 'categorization'\n> & {\n brandId: number;\n masterProductCode: string;\n allProductCodes: string[];\n};\n\nexport const BlogArticles = ({\n categorization: { kinds, categories, subCategories, types },\n brandId,\n masterProductCode,\n allProductCodes,\n}: Props) => {\n const { newBlogEndpoint } = useFeatureFlags();\n const { getTimeFromInit } = useTrackingContext();\n const newDesign = useNewPdDesignEnabled();\n\n const [ref, isInView] = useInView({\n triggerOnce: true,\n rootMargin: '50px',\n });\n\n const { data, error } = useQuery<\n GetBlogArticlesQuery,\n GetBlogArticlesQueryVariables\n >(getBlogArticlesQuery, {\n skip: !isInView,\n variables: {\n variables: {\n kinds: map(kinds, 'id'),\n types: map(types, 'id'),\n categories: map(categories, 'id'),\n subCategories: map(subCategories, 'id'),\n brandId: brandId,\n masterProductCode: masterProductCode,\n useNewEndpoint: newBlogEndpoint,\n productCodes: allProductCodes,\n },\n },\n });\n\n const trackClick = (article: IArticle) => {\n dispatchTrackingEvent({\n event: 'article_click',\n _clear: true,\n blog: {\n timing: getTimeFromInit(),\n name: 'blog_tile',\n action: 'click_on_blog_tile',\n interaction: 'click',\n type: 'blog_tile',\n link_path: article.url,\n unified_link: articles.find((x) => x.url === article.url)?.hreflangId,\n location: 'product_detail',\n position: `${articles.map((a) => a.url).indexOf(article.url) + 1}`,\n },\n });\n };\n\n const articles = data?.getArticles?.articles || [];\n\n return (\n
\n {!error && articles.length > 0 && (\n \n \n ({\n ...a,\n image: { alt: a.image.alt, src: a.image.url },\n }))}\n onClick={(_, article) => trackClick(article)}\n />\n \n \n )}\n
\n );\n};\n","import{c as e}from\"./createSvgIcon-89a7bcb8.js\";import\"react\";import\"./index.js\";import\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import\"./ThemeContext.js\";import\"styled-components\";var r=function(r){return e(\"M32,0A32,32,0,1,0,64,32,32,32,0,0,0,32,0ZM46.39,47.74a9,9,0,0,1-9.25-2.8,33.05,33.05,0,0,1-2.55-3.28L24.81,28.09V47.74H17.61V16.26a9.06,9.06,0,0,1,9.25,2.8,33.05,33.05,0,0,1,2.55,3.28l9.78,13.57V16.26h7.19Z\",r)};export{r as HomeIcon};\n//# sourceMappingURL=HomeIcon.js.map\n","import{a as e,_ as n}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as i from\"react\";import{Colors as t}from\"./Colors.js\";import{ChevronRightIcon as r}from\"./ChevronRightIcon.js\";import{HomeIcon as o}from\"./HomeIcon.js\";import{SkeletonElement as a}from\"./SkeletonElement.js\";import l from\"styled-components\";import{breakpoints as m}from\"./breakpoints.js\";import\"./index.js\";import\"./ThemeContext.js\";import\"./createSvgIcon-89a7bcb8.js\";import\"./theme.js\";var c=l.div.withConfig({displayName:\"styled__BreadcrumbWrapper\",componentId:\"sc-caahyp-0\"})([\"display:flex;align-items:center;flex-direction:\",\";overflow:auto;-ms-overflow-style:none;scrollbar-width:none;&::-webkit-scrollbar{display:none;}\"],(function(e){return e.alignToRight?\"row-reverse\":\"row\"})),d=l.a.withConfig({displayName:\"styled__HomeLink\",componentId:\"sc-caahyp-1\"})([\"text-decoration:none;vertical-align:inherit;position:relative;cursor:pointer;display:none;@media (min-width:\",\"){display:flex;align-items:center;margin-right:0.4rem;}\"],m.md),s=l.span.withConfig({displayName:\"styled__LinkSeparator\",componentId:\"sc-caahyp-2\"})([\"margin:0 0.4rem;color:\",\";display:\",\";@media (min-width:\",\"){display:\",\";margin:0 0.3rem;}\"],(function(e){return e.theme.palette.neutral}),(function(e){var n=e.displayMobile,i=e.hide;return n&&!i?\"inline\":\"none\"}),m.md,(function(e){return e.hide?\"none\":\"inline\"})),p=l.a.withConfig({displayName:\"styled__BreadcrumbLink\",componentId:\"sc-caahyp-3\"})([\"cursor:pointer;text-decoration:none;white-space:nowrap;color:\",\";&:hover{text-decoration:underline;}@media (min-width:\",\"){margin:0 0.4rem;}\"],(function(e){return e.theme.palette.neutralDarker}),m.md),h=l.span.withConfig({displayName:\"styled__Text\",componentId:\"sc-caahyp-4\"})([\"white-space:nowrap;color:\",\";@media (min-width:\",\"){margin:0 0.4rem;}\"],(function(e){return e.theme.palette.neutralDarker}),m.md),u=l.div.withConfig({displayName:\"styled__LinksWrapper\",componentId:\"sc-caahyp-5\"})([\"display:flex;align-items:center;justify-content:flex-start;@media (min-width:\",\"){display:block;}\"],m.md),f=[\"items\",\"homeLinkTitle\",\"alignToRight\",\"separator\",\"renderLink\",\"handleNavigation\",\"onItemClick\"],k=[\"onClick\",\"name\",\"link\",\"index\"],g={slash:\"/\",chevron:i.createElement(r,{width:\"0.7em\",height:\"0.7em\",color:t.neutralDarker})},y=function r(a){var l=a.items,m=a.homeLinkTitle,p=a.alignToRight,h=a.separator,k=void 0===h?\"slash\":h,y=a.renderLink,w=void 0===y?function(e){return i.createElement(r.Link,e)}:y,v=a.handleNavigation,x=a.onItemClick,C=e(a,f),b=function(e,n){var i=n.index,t=n.link,r=n.name;null==x||x({index:i,link:t,name:r}),v&&(e.preventDefault(),v({link:t,name:r}))};return(null==l?void 0:l.length)>0&&i.createElement(c,n({alignToRight:p},C),i.createElement(d,{\"data-order\":0,href:\"/\",title:m,onClick:function(e){return b(e,{index:0,link:\"/\",name:m})}},i.createElement(o,{color:t.neutralDarker,width:\"1em\",height:\"1em\"})),i.createElement(s,{hide:!1,displayMobile:!1,role:\"presentation\"},g[k]),i.createElement(u,null,l.map((function(e,n){var t=e.link,r=e.name;return i.createElement(i.Fragment,{key:t},i.createElement(s,{displayMobile:!0,hide:0===n,role:\"presentation\"},g[k]),w({onClick:b,index:n+1,link:t,name:r}))}))))};y.Skeleton=function(){return i.createElement(c,null,i.createElement(a,{height:1,width:15}))},y.Link=function(t){var r=t.onClick,o=t.name,a=t.link,l=t.index,m=e(t,k);return a?i.createElement(p,n({onClick:function(e){return r(e,{index:l,link:a.replace(window.location.origin,\"\"),name:o})},href:a},m),o):i.createElement(h,m,o)};export{y as Breadcrumb};\n//# sourceMappingURL=Breadcrumb.js.map\n","import { ListItem } from 'schema-dts';\n\nimport { TrackingAttributes } from '@context/tracking/types';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nimport { IBreadcrumb } from './model';\n\nconst prepareListItem = (item: IBreadcrumb, index: number): ListItem => ({\n '@type': 'ListItem',\n position: index + 1,\n item: {\n '@id': item.link,\n name: item.name,\n },\n});\n\nexport const prepareItemListElement = (items: IBreadcrumb[]) =>\n items.map(prepareListItem);\n\ntype BreadcrumbClickTrackingEvent = TrackingAttributes<{\n index: 0 | 1 | 2 | 3 | 4;\n name: string;\n link: string;\n text: string[];\n}>;\n\nexport const trackBreadcrumbClick = ({\n name,\n link,\n index,\n variant,\n timing,\n text,\n}: BreadcrumbClickTrackingEvent) => {\n dispatchTrackingEvent({\n event: 'breadcrumbs_click',\n breadcrumbs: {\n timing,\n type: `level_${index}`,\n name,\n path_query: link,\n interaction: 'click',\n variant,\n action: 'breadcrumbs_used',\n text,\n },\n _clear: true,\n });\n};\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\nimport { JsonLd } from 'react-schemaorg';\n\nimport { BreadcrumbList } from 'schema-dts';\n\nimport messages from '@containers/ProductDetailContainer/messages';\n\nimport { IBreadcrumb } from './model';\nimport { prepareItemListElement } from './utils';\n\ninterface IBreadcrumbsJsonLdProps {\n items: IBreadcrumb[];\n}\n\nexport const BreadcrumbsJsonLd = ({ items }: IBreadcrumbsJsonLdProps) => {\n const { formatMessage } = useIntl();\n\n return (\n \n item={{\n '@context': 'https://schema.org',\n '@type': 'BreadcrumbList',\n itemListElement: prepareItemListElement([\n { link: '/', name: formatMessage(messages.mainPage) },\n ...items,\n ]),\n }}\n />\n );\n};\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { Breadcrumb as BreadcrumbSG } from '@notino/react-styleguide';\n\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\n\nimport messages from '../../messages';\nimport { useNewPdDesignEnabled } from '../hooks/useNewPdDesignEnabled';\n\nimport { BreadcrumbsJsonLd } from './BreadcrumbsJsonLd';\nimport { IBreadcrumb } from './model';\nimport { BreadcrumbWrapper } from './styled';\nimport { trackBreadcrumbClick } from './utils';\n\ninterface IBreadcrumbProps {\n items: IBreadcrumb[];\n alignToRight?: boolean;\n renderJsonLd?: boolean;\n}\n\nexport const Breadcrumb = ({\n items,\n alignToRight = true,\n renderJsonLd = true,\n}: IBreadcrumbProps) => {\n const { getTimeFromInit, getVariant } = useTrackingContext();\n const { formatMessage } = useIntl();\n const newPdDesign = useNewPdDesignEnabled();\n\n const handleTrackClick = ({ index, link, name }) => {\n trackBreadcrumbClick({\n index,\n link,\n name,\n timing: getTimeFromInit(),\n variant: getVariant(),\n text: items.map((i) => i.name),\n });\n };\n\n return (\n items?.length > 0 && (\n \n 4}\n items={items}\n homeLinkTitle={formatMessage(messages.mainPage)}\n />\n {renderJsonLd && }\n \n )\n );\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nexport const BreadcrumbWrapper = styled.div<{ newPdDesign?: boolean }>`\n max-width: 64.6875rem;\n font-size: 0.75rem;\n padding: 1rem 0 0 0;\n display: block;\n\n ${({ newPdDesign }) =>\n newPdDesign\n ? css`\n ${theme.typography.labelRegular400}\n font-size: 0.75rem;\n padding: 1rem 0 1.5rem;\n\n @media (min-width: ${breakpoints.lg}) {\n padding: 1.25rem 0 1.5rem;\n }\n `\n : css`\n @media (min-width: ${breakpoints.md}) {\n padding: 1rem 0 1rem;\n }\n `}\n`;\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, Heading, theme } from '@notino/react-styleguide';\nexport const StyledHeader = styled.div<{\n newDesign: boolean;\n}>`\n ${({ newDesign }) =>\n !newDesign\n ? css`\n @media (min-width: ${breakpoints.md}) {\n width: 58.3333%;\n }\n `\n : css`\n @media (min-width: ${breakpoints.md}) {\n width: 100%;\n }\n `} }\n`;\n\nexport const H1 = styled(Heading.H1)<{ newDesign: boolean }>`\n font-size: 1.125rem !important;\n line-height: 2rem !important;\n text-align: left;\n\n @media (min-width: ${breakpoints.sm}) {\n font-size: 1.5rem !important;\n }\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n margin: 0 !important;\n `\n : css`\n margin: 1rem 0 0 !important;\n @media (min-width: ${breakpoints.md}) {\n margin: 0 !important;\n }\n `}\n`;\n\nexport const BrandExtraLine = styled.a<{\n newDesign: boolean;\n}>`\n margin-right: 0.3rem;\n\n &:hover {\n text-decoration: underline;\n }\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n margin-right: 0.25rem;\n color: ${theme.palette.neutralDarker};\n font-size: 1rem;\n `\n : css`\n color: ${theme.palette.basic};\n font-size: 1.125rem;\n @media (min-width: ${breakpoints.sm}) {\n font-size: 1.5rem;\n }\n @media (min-width: ${breakpoints.md}) {\n font-size: 1rem;\n }\n `}\n`;\n\nexport const ProductNameWrapper = styled.span<{\n newDesign: boolean;\n}>`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n\n ${({ newDesign }) =>\n !newDesign\n ? css`\n @media (min-width: ${breakpoints.md}) {\n flex-direction: column;\n }\n `\n : css`\n align-items: center;\n\n @media (min-width: ${breakpoints.md}) {\n flex-direction: row;\n }\n `}\n`;\n\nexport const Span = styled.span<{ newDesign: boolean }>`\n font-weight: bold;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n display: block;\n font-size: 1rem;\n margin-top: 0rem;\n line-height: 1.5rem;\n `\n : css`\n display: inline;\n font-size: 1.125rem;\n\n @media (min-width: ${breakpoints.sm}) {\n font-size: 1.5rem;\n }\n `}\n`;\n\nexport const Description = styled.span<{ newDesign: boolean }>`\n ${({ newDesign }) =>\n newDesign\n ? css`\n ${theme.typography.bodyRegular};\n color: ${theme.palette.neutralDarker};\n margin-bottom: 0.5rem;\n display: block;\n\n @media (min-width: ${breakpoints.md}) {\n margin-top: 0.25rem;\n }\n `\n : css`\n font-size: 0.875rem;\n font-weight: 300;\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n line-height: normal;\n display: block;\n\n @media (min-width: ${breakpoints.sm}) {\n font-size: 1.1rem;\n }\n `}\n`;\n\nexport const SubName = styled.span`\n display: block;\n font-size: 0.875rem;\n font-weight: 300;\n\n @media (min-width: ${breakpoints.sm}) {\n line-height: 2rem;\n font-size: 1.1rem;\n }\n`;\n\nexport const ReviewsAnchor = styled.a`\n cursor: pointer;\n text-decoration: none;\n`;\n\nexport const BazaarvoiceRatingPlaceholder = styled.div`\n position: absolute;\n top: 0;\n z-index: 0;\n`;\n\nexport const BazaarvoiceRatingsDiv = styled.div`\n position: absolute;\n z-index: 1;\n top: 0;\n\n background: ${theme.palette.basicInverse};\n\n font-size: 0.75rem !important;\n`;\n\nexport const Wrapper = styled.div`\n height: 1.125rem;\n position: relative;\n`;\n","import * as React from 'react';\n\nimport { Colors, Ratings } from '@notino/react-styleguide';\n\nimport {\n BazaarvoiceRatingPlaceholder,\n BazaarvoiceRatingsDiv,\n Wrapper,\n} from './styled';\n\ninterface BazaarvoiceRatingsProps {\n productCode: string;\n}\n\nexport const BazaarvoiceRatings = ({\n productCode,\n}: BazaarvoiceRatingsProps) => {\n return (\n \n \n \n \n\n \n \n );\n};\n","import { TrackingAttributes } from '@context/tracking/types';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nexport const trackBrandClick = ({\n timing,\n name,\n}: Omit, 'variant'>) => {\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n timing,\n name,\n action: 'click_on_element',\n interaction: 'click',\n type: 'brand',\n },\n _clear: true,\n });\n};\n\nexport const trackRatingClick = ({\n timing,\n}: Omit) => {\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n timing,\n name: 'stars',\n action: 'click_on_element',\n interaction: 'click',\n type: 'product_detail',\n },\n _clear: true,\n });\n};\n\nexport const withSpaceAfterWord = (word: string) => `${word} `;\n","import * as React from 'react';\n\nimport { useQuery } from '@apollo/client';\n\nimport { Ratings, Colors } from '@notino/react-styleguide';\nimport {\n GetReviewOverviewQuery,\n GetReviewOverviewQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { TabLink } from '@sharedComponents/TabSwitcher';\n\nimport getReviewOverviewQuery from '../../queries/reviewOverview.graphql';\nimport { TabIds } from '../model';\n\nimport { ReviewsAnchor } from './styled';\nimport { trackRatingClick } from './utils';\n\ninterface IPlaceholderProps {\n masterId: string;\n reviewsId?: string;\n}\n\nexport const ProductRating = ({\n masterId,\n reviewsId = 'productBaseInfo',\n}: IPlaceholderProps) => {\n const { getTimeFromInit } = useTrackingContext();\n const { loading, error, data } = useQuery<\n GetReviewOverviewQuery,\n GetReviewOverviewQueryVariables\n >(getReviewOverviewQuery, {\n ssr: true,\n errorPolicy: 'all',\n variables: {\n masterId,\n },\n });\n\n const reviewOverview = data?.productDetailByMasterId?.[0]?.reviewOverview;\n\n const isReviewOverviewLoaded = !loading && !error && reviewOverview;\n\n const rating = isReviewOverviewLoaded ? reviewOverview.rating : 4.0;\n const totalVotes = isReviewOverviewLoaded ? reviewOverview.count : 1;\n\n return (\n \n {({ setActiveTab }) => {\n const handleReviewClick = () => {\n trackRatingClick({ timing: getTimeFromInit() });\n setActiveTab();\n };\n\n return (\n \n \n \n );\n }}\n \n );\n};\n","import * as React from 'react';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\n\nimport { useNewPdDesignEnabled } from '../hooks/useNewPdDesignEnabled';\n\nimport { BazaarvoiceRatings } from './BazaarvoiceRatings';\nimport { IHeaderProps } from './model';\nimport { ProductRating } from './ProductRating';\nimport {\n StyledHeader,\n H1,\n Span,\n Description,\n SubName,\n BrandExtraLine,\n ProductNameWrapper,\n} from './styled';\nimport { trackBrandClick, withSpaceAfterWord } from './utils';\n\nexport const Header = ({\n desc,\n collection,\n subName,\n brandInfo,\n productId,\n productCode,\n children,\n reviewsId,\n hideReviews = false,\n}: React.PropsWithChildren) => {\n const newPdDesign = useNewPdDesignEnabled();\n const { bazaarvoiceIntegrationPd } = useFeatureFlags();\n const { getTimeFromInit } = useTrackingContext();\n\n const handleTrackClick = () =>\n trackBrandClick({\n timing: getTimeFromInit(),\n name: brandInfo.name,\n });\n\n const showOwnRatings = !hideReviews && !bazaarvoiceIntegrationPd;\n const showBazaarvoiceRatings = !hideReviews && !!bazaarvoiceIntegrationPd;\n\n return (\n \n \n

\n \n \n {brandInfo.name}\n \n\n \n {withSpaceAfterWord(collection)}\n \n \n\n {subName && {withSpaceAfterWord(subName)}}\n\n {desc}\n

\n\n {showOwnRatings && (\n \n )}\n\n {showBazaarvoiceRatings && (\n \n )}\n\n {children}\n
\n
\n );\n};\n","import loadable from '@loadable/component';\n\nexport default loadable(() => import('../ModiFaceModal'));\n","export interface IColorVariant {\n colors: string[];\n id: string | number;\n}\n\nexport interface IModiFaceVariant {\n [key: string]: unknown;\n}\n\nexport interface IModifaceEffectVariants {\n [key: string]: IModiFaceVariant[];\n}\n\nexport enum EMessage {\n allowWebcam = 'allowWebcam',\n webcamError = 'webcamError',\n genericError = 'genericError',\n faceNotDetected = 'faceNotDetected',\n fileSizeTooBig = 'fileSizeTooBig',\n unsupportedFormat = 'unsupportedFormat',\n photoDimensionsTooSmall = 'photoDimensionsTooSmall',\n noMessage = '',\n}\n\nexport enum ModeType {\n NONE,\n CAMERA,\n PHOTO,\n}\n","export const isRenderingOnServer = () => typeof window === 'undefined';\n","import { isRenderingOnServer } from '@utils/isRenderingOnServer';\n\nif (\n !isRenderingOnServer() &&\n navigator.mediaDevices &&\n navigator.mediaDevices.enumerateDevices\n) {\n // Firefox 38+ seems having support of enumerateDevices\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n navigator.enumerateDevices = (callback: (param: any) => void) => {\n const enumerateDevices = navigator.mediaDevices.enumerateDevices();\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (enumerateDevices && enumerateDevices.then) {\n navigator.mediaDevices\n .enumerateDevices()\n .then(callback)\n .catch(() => {\n callback([]);\n });\n } else {\n callback([]);\n }\n };\n}\n\nexport const hasDeviceWebcam = (callback: (hasWebcam: boolean) => void) => {\n if (\n (typeof MediaStreamTrack === 'undefined' ||\n !('getSources' in MediaStreamTrack)) &&\n (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices)\n ) {\n callback(false);\n return;\n }\n\n if (\n !navigator.enumerateDevices &&\n window.MediaStreamTrack &&\n window.MediaStreamTrack.getSources\n ) {\n navigator.enumerateDevices = window.MediaStreamTrack.getSources.bind(\n window.MediaStreamTrack\n );\n }\n\n if (!navigator.enumerateDevices && navigator.enumerateDevices) {\n navigator.enumerateDevices = navigator.enumerateDevices.bind(navigator);\n }\n\n if (!navigator.enumerateDevices) {\n callback(false);\n return;\n }\n\n navigator.enumerateDevices((devices) => {\n const hasWebCam = devices.some(\n (device: { kind: string }) =>\n device.kind === 'videoinput' || device.kind === 'video'\n );\n callback(hasWebCam);\n });\n};\n","import { EMessage } from '../model';\n\nexport const triggerWebcamPermission = (\n onSuccess: () => void,\n onFail: (message: EMessage) => void\n) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const navigator = window.navigator as any;\n\n navigator.getUserMedia =\n navigator.getUserMedia ||\n navigator.webkitGetUserMedia ||\n navigator.mozGetUserMedia ||\n navigator.msGetUserMedia;\n\n if (navigator.getUserMedia) {\n navigator.getUserMedia(\n { video: { width: 640, height: 450 } },\n onSuccess,\n () => {\n onFail(EMessage.webcamError);\n }\n );\n } else if (navigator.mediaDevices) {\n // Safari fix\n navigator.mediaDevices.getUserMedia({ video: true }).then(\n (stream: MediaStream) => {\n stream.getVideoTracks()[0].stop();\n onSuccess();\n },\n () => {\n onFail(EMessage.webcamError);\n }\n );\n } else {\n onFail(EMessage.genericError);\n }\n};\n","import { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { TrackingAttributes } from '@context/tracking/types';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\nimport { ProductEventWither } from '@helpers/googleTagManager';\n\nexport const trackModifaceOpen = ({\n timing,\n product,\n}: Omit<\n TrackingAttributes<{\n product: GetProductViewQuery['productDetailByMasterId'][number];\n }>,\n 'variant'\n>) => {\n dispatchTrackingEvent({\n event: 'modiface_open',\n modiface: {\n timing,\n products: [ProductEventWither().withProduct(product).forceBuild()],\n action: 'modiface_opened',\n interaction: 'click',\n },\n _clear: true,\n });\n};\n\nexport const trackModifaceLoaded = ({\n timing,\n product,\n}: Omit<\n TrackingAttributes<{\n product: GetProductViewQuery['productDetailByMasterId'][number];\n }>,\n 'variant'\n>) => {\n dispatchTrackingEvent({\n event: 'modiface_loaded',\n modiface: {\n timing,\n products: [ProductEventWither().withProduct(product).forceBuild()],\n action: 'modiface_loaded',\n interaction: 'automatic',\n },\n _clear: true,\n });\n};\n\nexport const trackModifaceFailed = ({\n timing,\n product,\n error,\n}: Omit<\n TrackingAttributes<{\n product: GetProductViewQuery['productDetailByMasterId'][number];\n error: string;\n }>,\n 'variant'\n>) => {\n dispatchTrackingEvent({\n event: 'modiface_error',\n modiface: {\n timing,\n products: [ProductEventWither().withProduct(product).forceBuild()],\n action: 'modiface_error',\n interaction: 'automatic',\n type: 'load',\n error_message: error,\n },\n _clear: true,\n });\n};\n\nexport const trackModifaceSelectClick = ({\n timing,\n product,\n selectedVariant,\n viewedVariants,\n}: Omit<\n TrackingAttributes<{\n product: GetProductViewQuery['productDetailByMasterId'][number];\n selectedVariant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number];\n viewedVariants: number;\n }>,\n 'variant'\n>) => {\n dispatchTrackingEvent({\n event: 'modiface_select_product',\n modiface: {\n timing,\n products: [\n ProductEventWither()\n .withProduct(product)\n .withVariant(selectedVariant)\n .build(),\n ],\n action: 'modiface_product_selected',\n interaction: 'click',\n viewed_variants: viewedVariants,\n },\n _clear: true,\n });\n};\n\nexport const trackModifaceClosed = ({\n timing,\n product,\n selectedVariant,\n viewedVariants,\n}: Omit<\n TrackingAttributes<{\n product: GetProductViewQuery['productDetailByMasterId'][number];\n selectedVariant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number];\n viewedVariants: number;\n }>,\n 'variant'\n>) => {\n dispatchTrackingEvent({\n event: 'modiface_close',\n modiface: {\n timing,\n products: [\n ProductEventWither()\n .withProduct(product)\n .withVariant(selectedVariant)\n .build(),\n ],\n interaction: 'close_x',\n action: 'modiface_closed',\n viewed_variants: viewedVariants,\n },\n _clear: true,\n });\n};\n","import styled, { css } from 'styled-components';\n\nimport {\n breakpoints,\n IBasicStyledProps,\n InfoCircleIcon,\n theme,\n} from '@notino/react-styleguide';\n\nexport const Wrapper = styled.div<{ newDesign: boolean }>`\n line-height: 1.3125rem;\n margin: 1rem 0;\n font-size: 0.875rem;\n\n ${({ newDesign }) =>\n newDesign &&\n css`\n margin: 0.75rem 0 1rem;\n @media (min-width: ${breakpoints.lg}) {\n margin: 1rem 0;\n }\n `}\n`;\n\nexport const CodeBlock = styled.span`\n color: ${(props) => props.theme.palette.neutralDarker};\n`;\n\nexport const CodeName = styled.span`\n display: none;\n\n @media (min-width: ${breakpoints.sm}) {\n display: inline;\n }\n`;\n\nexport const Separator = styled.span<{ newDesign: boolean }>`\n color: ${({ newDesign }) =>\n newDesign ? theme.palette.neutral : theme.palette.neutralDarker};\n`;\n\nexport interface IAvailabilityProps extends IBasicStyledProps {\n highlight: boolean;\n newDesign: boolean;\n}\n\nexport const Availability = styled.span`\n color: ${(props: IAvailabilityProps) =>\n props.highlight\n ? props.theme.palette.primary\n : props.theme.palette.successDark};\n\n ${({ newDesign, highlight }) =>\n newDesign\n ? css`\n font-weight: ${highlight ? 500 : 'normal'};\n `\n : css`\n font-weight: ${highlight ? 'bold' : 'normal'};\n `}\n`;\n\nexport interface IAdditionalDescriptionStyledProps extends IBasicStyledProps {\n damage?: boolean;\n highlight?: boolean;\n}\n// prettier-ignore\nexport const AdditionalDescriptionStyled = styled.p`\n color: ${(props: IAdditionalDescriptionStyledProps) =>\n props.damage ? props.theme.palette.alert : props.theme.palette.basic};\n font-weight: ${(props: IAdditionalDescriptionStyledProps) =>\n props.highlight ? 'bold' : 'normal'};\n margin: 0;\n`;\n\nexport const AdditionalText = styled.div`\n margin: 0;\n`;\n\nexport const StyledInfoIcon = styled(InfoCircleIcon)`\n margin-bottom: 4px;\n`;\n\nexport const TooltipContent = styled.div`\n max-width: max-content;\n width: 18rem;\n padding: 0.5rem;\n`;\n","import loadable from '@loadable/component';\n\nexport default loadable(() => import('./index'));\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nimport { Wrapper, Currency } from '@components/PriceLabel/components';\nexport const Container = styled.div<{\n newDesign: boolean;\n}>`\n margin-top: 0;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n @media (min-width: ${breakpoints.lg}) {\n margin-top: 1rem;\n }\n `\n : css`\n @media (min-width: ${breakpoints.md}) {\n margin-top: 1.25rem;\n }\n `}\n`;\n\nexport const FlexWrapper = styled.div<{ newDesign: boolean }>`\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n margin-top: 1.5rem;\n height: 2rem;\n `\n : css`\n min-height: 2.1875rem;\n\n @media (min-width: ${breakpoints.sm}) {\n min-height: 3.25rem;\n }\n `}\n`;\n\nexport const LineWrapper = styled.div<{ newDesign: boolean }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n margin: 0.75rem 0;\n @media (min-width: ${breakpoints.lg}) {\n margin-top: 0.5rem;\n }\n `\n : css`\n min-height: 0.9375rem;\n margin-bottom: 0.5625rem;\n `}\n`;\n\nexport const Line = styled.hr<{ dashedLine: boolean }>`\n flex: 1;\n ${({ dashedLine }) =>\n dashedLine\n ? `border-top: 1px dashed ${theme.palette.neutralLight};`\n : `border-top: 1px solid ${theme.palette.neutralDark};`};\n height: 0.0625rem;\n margin: 0;\n border-bottom: none;\n`;\n\nexport const Name = styled.div<{ newDesign: boolean }>`\n padding: 0 0.5rem 0.05rem 0;\n ${({ newDesign }) =>\n newDesign\n ? css`\n ${theme.typography.labelLarge400}\n `\n : css`\n font-weight: 400;\n font-size: 1.25rem;\n\n @media (min-width: ${breakpoints.sm}) {\n font-size: 1.3rem;\n padding: 0 0.5rem 0.2rem 0;\n }\n @media (min-width: ${breakpoints.md}) {\n font-size: 1.3rem;\n padding: 0 0.5rem 0.3rem 0;\n }\n `}\n`;\n\nexport const PriceWrapper = styled(Wrapper)`\n ${theme.typography.titleDisplay}\n`;\n\nexport const CurrencyWrapper = styled(Currency)`\n ${theme.typography.titleLarge}\n`;\n\nexport const DualPriceWrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n`;\n\nexport const DualPrice = styled.div<{ newDesign: boolean }>`\n font-size: 1.55rem;\n font-weight: 700;\n ${({ newDesign }) => newDesign && theme.typography.titleLarge}\n`;\n\nexport const DualPriceSplitter = styled.div<{ newDesign: boolean }>`\n padding: 0 0.3rem;\n font-size: 1.55rem;\n font-weight: 700;\n ${({ newDesign }) => newDesign && theme.typography.titleLarge}\n`;\n","import loadable from '@loadable/component';\n\nexport default loadable(() => import('./ShadefinderButton'));\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n tryItFirst: {\n id: 'try.it.first',\n defaultMessage: 'Nejdřív vyzkoušejte, pak rozbalujte',\n },\n tryItFirstDescription: {\n id: 'try.it.first.description',\n defaultMessage:\n 'Pošleme vám i vzorek produktu a až poté se rozhodnete, zda si velké balení necháte.',\n },\n tryItFirstAbout: {\n id: 'try.it.first.about',\n defaultMessage: 'Více o službě Try it First',\n },\n});\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n discountAmount: {\n id: 'pd.black.friday.discount.highlighted',\n defaultMessage: 'Sleva 20% navíc ',\n },\n code: {\n id: 'pd.black.friday.code',\n defaultMessage: 'SUMMER',\n },\n label: {\n id: 'pd.black.friday.label',\n defaultMessage: 'Black Friday',\n },\n blackFridayLabel: {\n id: 'pd.black.friday.original.label',\n defaultMessage: 'Black Friday',\n },\n sbfLabel: {\n id: 'pd.summer.black.friday.label',\n defaultMessage: 'Summer Black Friday',\n },\n});\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n code: {\n id: 'pd.discount.code',\n defaultMessage: 'notino',\n },\n codeInCart: {\n id: 'pd.discount.code.in.cart',\n defaultMessage: 'Kód zadejte v košíku',\n },\n conditionText: {\n id: 'pd.discount.condition.text',\n defaultMessage: 'Nevztahuje se na zboží v akci a ve výprodeji',\n },\n conditionalTooltipText: {\n id: 'pd.discount.conditionalTooltip.text',\n defaultMessage:\n 'Kód zadejte prosím v košíku. Voucher se nevztahuje na zboží v akci a ve výprodeji.',\n },\n conditionalTooltipSaleIncludedText: {\n id: 'pd.discount.conditionalTooltip.saleIncluded.text',\n defaultMessage: 'Kód zadejte prosím v košíku.',\n },\n descriptionText: {\n id: 'pd.discount.description.text',\n defaultMessage: '{highlighted} s kódem {code}',\n },\n discountAmountPercentage: {\n id: 'product.item.discount.highlighted',\n defaultMessage: '-{amount} %',\n },\n discountAmountAbsolute: {\n id: 'product.item.discount.highlighted.absolute',\n defaultMessage: '{amountPrice} sleva',\n },\n copyCode: {\n id: 'pd.discount.copyToClipboard.tooltip.copyCode',\n defaultMessage: 'Zkopírovat kód ',\n },\n codeCopied: {\n id: 'pd.discount.copyToClipboard.tooltip.codeCopied',\n defaultMessage: 'Kód zkopírovan!',\n },\n});\n","import styled from 'styled-components';\n\nimport { ReactFCC } from '@notino/react-styleguide';\n\nexport const Wrapper = styled.span`\n font-size: inherit;\n line-height: inherit;\n`;\n\nexport const CurrencyWrapper = styled(Wrapper)<{\n isSpaced: boolean;\n isPrefix: boolean;\n}>`\n &:before {\n content: ${(props) => (props.isSpaced && !props.isPrefix ? '\" \"' : '')};\n }\n &:after {\n content: ${(props) => (props.isSpaced && props.isPrefix ? '\" \"' : '')};\n }\n` as ReactFCC;\n\nexport const LineWrapper = styled.div`\n margin-bottom: 0.75rem;\n`;\n\nexport const Slash = styled.span`\n padding: 0 0.25rem;\n`;\n","import*as e from\"react\";import n from\"styled-components\";import{theme as t}from\"./theme.js\";var o=n.div.withConfig({displayName:\"PercentageDiscountIcon__Wrapper\",componentId:\"sc-1w34n0m-0\"})([\"width:2.5rem;height:2.5rem;background:\",\";color:\",\";font-weight:bold;font-size:0.75rem;display:flex;align-items:center;justify-content:center;\"],t.palette.basic,t.palette.basicInverse),r=n.span.withConfig({displayName:\"PercentageDiscountIcon__Minus\",componentId:\"sc-1w34n0m-1\"})([\"margin-right:1px;\"]),i=n.span.withConfig({displayName:\"PercentageDiscountIcon__Symbol\",componentId:\"sc-1w34n0m-2\"})([\"font-weight:normal;margin-left:3px;\"]),a=function(n){var t=n.percentage;return e.createElement(o,null,e.createElement(r,null,\"-\"),t,e.createElement(i,null,\"%\"))};export{a as PercentageDiscountIcon};\n//# sourceMappingURL=PercentageDiscountIcon.js.map\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as t from\"react\";import{Icon as r}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var o=function(o){return t.createElement(r,e({width:\"20\",height:\"20\",viewBox:\"0 0 20 20\"},o),t.createElement(\"path\",{d:\"M4.5 18C4.0875 18 3.73437 17.8531 3.44062 17.5594C3.14687 17.2656 3 16.9125 3 16.5V5H4.5V16.5H14V18H4.5ZM7.5 15C7.0875 15 6.73437 14.8531 6.44062 14.5594C6.14687 14.2656 6 13.9125 6 13.5V3.5C6 3.0875 6.14687 2.73438 6.44062 2.44063C6.73437 2.14688 7.0875 2 7.5 2H15.5C15.9125 2 16.2656 2.14688 16.5594 2.44063C16.8531 2.73438 17 3.0875 17 3.5V13.5C17 13.9125 16.8531 14.2656 16.5594 14.5594C16.2656 14.8531 15.9125 15 15.5 15H7.5ZM7.5 13.5H15.5V3.5H7.5V13.5Z\",fill:\"currentColor\"}))};export{o as CopyToClipboardIcon};\n//# sourceMappingURL=CopyToClipboardIcon.js.map\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints } from '@notino/react-styleguide';\n\nimport theme from '@themes/default';\n\nexport const VoucherDiscountInfoWrapper = styled.div<{\n newDesign: boolean;\n isUnderSelectBox?: boolean;\n}>`\n height: 4rem;\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: ${theme.palette.primary}08;\n padding: 0.75rem;\n margin: ${(props) =>\n props.isUnderSelectBox ? '0 0 0.75rem 0' : '-1rem 0 0.75rem 0'};\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n @media (min-width: ${breakpoints.md}) {\n margin: 0.5rem 0 0.75rem 0;\n }\n `\n : css`\n margin: -1rem 0 0.75rem 0;\n\n @media (min-width: ${breakpoints.md}) {\n margin: -1.15rem 0 0.75rem 0;\n }\n `}\n`;\n\nexport const DiscountInfoDescription = styled.div`\n text-align: left;\n`;\n\nexport const DiscountAmmountWrapper = styled.span<{\n newDesign: boolean;\n color?: string;\n}>`\n color: ${({ color = theme.palette.primary }) => color};\n\n ${({ newDesign }) =>\n newDesign\n ? theme.typography.labelRegular\n : css`\n font-weight: bold;\n `}\n`;\n\nexport const CodeWrapper = styled.span<{ newDesign: boolean }>`\n text-transfrom: uppercase;\n color: ${theme.palette.basic};\n\n ${({ newDesign }) =>\n newDesign\n ? theme.typography.labelRegular\n : css`\n font-weight: bold;\n `}\n`;\n\nexport const TermsWrapper = styled.div<{\n newDesign: boolean;\n}>`\n font-size: 0.75rem;\n color: ${theme.palette.neutralDark};\n font-weight: normal;\n display: flex;\n justify-content: flex-start;\n align-items: flex-start;\n\n @media (min-width: ${breakpoints.sm}) {\n align-items: center;\n }\n\n ${({ newDesign }) =>\n !newDesign &&\n css`\n @media (min-width: ${breakpoints.lg}) {\n margin-top: 0.2rem;\n }\n `}\n`;\n\nexport const TextWrapper = styled.div<{ newDesign: boolean }>`\n margin-bottom: 0.25rem;\n color: ${theme.palette.basic};\n\n ${({ newDesign }) =>\n newDesign\n ? theme.typography.labelRegular400\n : css`\n ${theme.typography.labelLarge}\n font-weight: 500;\n `}\n`;\n\nexport const VoucherDiscountIconWrapper = styled.div<{\n hideDesktop: boolean;\n}>`\n height: 2.25rem;\n display: block;\n\n margin: 0 0 0 2rem;\n\n @media (min-width: ${breakpoints.sm}) {\n display: ${({ hideDesktop }) => (hideDesktop ? 'none' : 'block')};\n margin: 0 0 0 1rem;\n }\n\n @media (min-width: ${breakpoints.md}) {\n margin: 0 0 0 2.5rem;\n }\n`;\n\nexport const InfoIconWrapper = styled.span<{ newDesign: boolean }>`\n display: flex;\n align-items: center;\n margin-top: 0.1rem;\n\n @media (min-width: ${breakpoints.sm}) {\n margin-top: 0;\n }\n`;\n\nexport const InstructionTextWrapper = styled.span<{ newDesign: boolean }>`\n padding-right: 0.3rem;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n ${theme.typography.labelSmall400}\n color: ${theme.palette.neutralDarker}\n `\n : css`\n ${theme.typography.labelRegular400}\n `}\n`;\n","import{a as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as i from\"react\";import n from\"styled-components\";var t=[\"children\",\"size\",\"onClick\"],r=n.span.withConfig({displayName:\"InteractiveArea__Wrapper\",componentId:\"sc-qyhg1f-0\"})([\"position:relative;display:inline-block;\"]),a=n.span.withConfig({displayName:\"InteractiveArea__Interactive\",componentId:\"sc-qyhg1f-1\"})([\"cursor:pointer;position:absolute;z-index:1;height:\",\";width:\",\";top:50%;left:50%;transform:translate(-50%,-50%);display:inline-block;\"],(function(e){return e.size||\"2.5rem\"}),(function(e){return e.size||\"2.5rem\"})),o=function(n){var o=n.children,s=n.size,c=n.onClick,l=e(n,t);return i.createElement(r,l,o,i.createElement(a,{className:\"interactive-area\",size:s,onClick:c}))};export{o as InteractiveArea};\n//# sourceMappingURL=InteractiveArea.js.map\n","import styled from 'styled-components';\n\nimport { InteractiveArea } from '@notino/react-styleguide';\n\nimport { TooltipContent } from '@components/Tooltip/Content';\n\nexport const ProductDiscountWrapper = styled.div`\n margin: -0.5rem 0 1rem 0;\n`;\n\nexport const StyledInteractiveArea = styled(InteractiveArea)`\n vertical-align: middle;\n top: -3px;\n .interactive-area {\n transform: translate(-50%, -18px);\n height: 1.75rem;\n }\n`;\n\nexport const TextAndTooltipWrapper = styled.div`\n display: flex;\n gap: 0.25rem;\n align-items: center;\n`;\n\nexport const CopyTooltipContent = styled(TooltipContent)`\n min-width: 0;\n`;\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport {\n Tooltip,\n TooltipModel,\n InfoCircleIcon,\n Colors,\n CopyToClipboardIcon,\n} from '@notino/react-styleguide';\n\nimport { PortalTooltip } from '@components/PortalTooltip';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport { messages } from '../../messages';\nimport {\n TextWrapper,\n CodeWrapper,\n DiscountAmmountWrapper,\n TermsWrapper,\n InstructionTextWrapper,\n InfoIconWrapper,\n DiscountInfoDescription,\n} from '../styled';\n\nimport {\n CopyTooltipContent,\n StyledInteractiveArea,\n TextAndTooltipWrapper,\n} from './styled';\n\ninterface IProductDiscountProps {\n highlightedDiscountAmount: string | JSX.Element;\n instructionsText: JSX.Element;\n infoTooltipText: JSX.Element;\n discountCode: string;\n highlightedDiscountAmountColor?: string;\n}\n\nexport const ProductDiscount: React.FC = ({\n highlightedDiscountAmount,\n discountCode,\n instructionsText,\n infoTooltipText,\n highlightedDiscountAmountColor,\n}) => {\n const newDesign = useNewPdDesignEnabled();\n const [showIsCopied, setShowIsCopied] = React.useState(false);\n const tooltipTimeout = React.useRef(null);\n\n const handleCopy = async () => {\n await navigator.clipboard.writeText(discountCode);\n setShowIsCopied(true);\n clearTimeout(tooltipTimeout.current);\n tooltipTimeout.current = setTimeout(() => setShowIsCopied(false), 2000);\n };\n\n return (\n \n \n \n {discountCode}\n ),\n highlighted: (\n \n {highlightedDiscountAmount}\n \n ),\n }}\n />\n \n \n {showIsCopied ? (\n \n ) : (\n \n )}\n \n }\n >\n \n \n \n \n \n\n \n \n {instructionsText}\n \n\n {infoTooltipText && (\n {infoTooltipText}\n }\n >\n \n \n \n \n )}\n \n \n );\n};\n","import * as React from 'react';\n\nimport { PercentageDiscountIcon } from '@notino/react-styleguide';\n\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport { ProductDiscount } from './ProductDiscount';\nimport {\n VoucherDiscountInfoWrapper,\n VoucherDiscountIconWrapper,\n} from './styled';\n\nexport interface IVoucherDiscountInfoProps {\n highlightedDiscountAmount: string | JSX.Element;\n instructionsText: JSX.Element;\n infoTooltipText: JSX.Element;\n discountCode: string;\n percentage: number;\n isUnderSelectBox?: boolean;\n showPercentageIcon: boolean;\n highlightedDiscountAmountColor?: string;\n}\n\nexport const VoucherDiscountInfo: React.FC = ({\n showPercentageIcon,\n percentage,\n isUnderSelectBox,\n ...props\n}) => {\n const newDesign = useNewPdDesignEnabled();\n\n return (\n \n \n\n {showPercentageIcon && (\n \n \n \n )}\n \n );\n};\n","import { styled } from '@notino/react-styleguide';\n\nexport const Link = styled.a`\n color: inherit;\n`;\n","import * as React from 'react';\n\nimport { ReactFCC, Tooltip } from '@notino/react-styleguide';\n\nimport { TooltipContent } from '@components/Tooltip/Content';\n\nimport { IConditionalVoucherDiscount } from '..';\n\nimport { Link } from './styled';\n\ninterface IConditionsTooltipProps {\n targets: IConditionalVoucherDiscount['targets'];\n}\nexport const ConditionsTooltip: ReactFCC = ({\n children,\n targets,\n}) => {\n const content = targets.map((target, idx) => (\n \n {target.name}\n {idx < targets.length - 1 && ', '}\n \n ));\n return (\n {content}}\n wrapText={true}\n alignDesktop={true}\n >\n {children}\n \n );\n};\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n brands1Categories0FromPrice: {\n id: 'pd.conditionalVoucherDiscount.fromPrice.brands.1.categories.0',\n defaultMessage: 'Platí od {price} na značku {brand}',\n },\n brands1Categories0FromPieces: {\n id: 'pd.conditionalVoucherDiscount.fromPieces.brands.1.categories.0',\n defaultMessage: 'Platí od {pieces} ks na značku {brand}',\n },\n brandsNCategories0FromPrice: {\n id: 'pd.conditionalVoucherDiscount.fromPrice.brands.N.categories.0',\n defaultMessage: 'Platí od {price} na tyto značky',\n },\n brandsNCategories0FromPieces: {\n id: 'pd.conditionalVoucherDiscount.fromPieces.brands.N.categories.0',\n defaultMessage: 'Platí od {pieces} ks na tyto značky',\n },\n brands0Categories1FromPrice: {\n id: 'pd.conditionalVoucherDiscount.fromPrice.brands.0.categories.1',\n defaultMessage: 'Platí od {price} na kategorii {category}',\n },\n brands0Categories1FromPieces: {\n id: 'pd.conditionalVoucherDiscount.fromPieces.brands.0.categories.1',\n defaultMessage: 'Platí od {pieces} ks na kategorii {category}',\n },\n brands0CategoriesNFromPrice: {\n id: 'pd.conditionalVoucherDiscount.fromPrice.brands.0.categories.N',\n defaultMessage:\n 'Platí od {price} na tyto kategorie',\n },\n brands0CategoriesNFromPieces: {\n id: 'pd.conditionalVoucherDiscount.fromPieces.brands.0.categories.N',\n defaultMessage:\n 'Platí od {pieces} ks na tyto kategorie',\n },\n brandsNCategoriesNFromPrice: {\n id: 'pd.conditionalVoucherDiscount.fromPrice.brands.N.categories.N',\n defaultMessage:\n 'Platí od {price} na tyto značky a kategorie',\n },\n brandsNCategoriesNFromPieces: {\n id: 'pd.conditionalVoucherDiscount.fromPieces.brands.N.categories.N',\n defaultMessage:\n 'Platí od {pieces} ks na tyto značky a kategorie',\n },\n fromPriceSelectedProducts: {\n id: 'pd.conditionalVoucherDiscount.fromPrice.selectedProducts',\n defaultMessage: 'Platí od {price} na vybrané produkty',\n },\n fromPiecesSelectedProducts: {\n id: 'pd.conditionalVoucherDiscount.fromPieces.selectedProducts',\n defaultMessage: 'Platí od {pieces} ks na vybrané produkty',\n },\n});\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { useFormatPrice } from '@components/PriceLabel/useFormattedPrice';\nimport { useIsDualPriceForCroatia } from '@containers/ProductDetailContainer/ProductDetail/hooks/useIsDualPriceForCroatia';\nimport { partition } from '@utils/array';\n\nimport { IConditionalVoucherDiscount } from '..';\n\nimport { ConditionsTooltip } from './ConditionsTooltip';\nimport { messages } from './messages';\nimport { Link } from './styled';\n\ntype Props = {\n discount: IConditionalVoucherDiscount;\n};\n\nexport const ConditionalInstructionsText = ({\n discount: { targets, conditionType, discountConditions },\n}: Props) => {\n const { formatMessage } = useIntl();\n const formatPrice = useFormatPrice();\n const {\n isDualPriceForCroatia,\n getLeftSideFormattedPrice,\n leftSideCurrency,\n rightSideCurrency,\n getRightSideFormattedPrice,\n } = useIsDualPriceForCroatia();\n\n const [brands, categories] = partition(targets, 'type', [\n 'Brand',\n 'Category',\n ]);\n\n const conditionMin = discountConditions[0].conditionMin;\n\n const priceOrPieces =\n conditionType === 'Piece'\n ? { pieces: conditionMin }\n : {\n price: isDualPriceForCroatia\n ? `${getLeftSideFormattedPrice(\n conditionMin\n )} ${leftSideCurrency} / ${getRightSideFormattedPrice(\n conditionMin\n )} ${rightSideCurrency}`\n : formatPrice({ value: conditionMin }).formattedPriceWithCurrency,\n };\n\n let formattedMessage;\n if (brands.length > 0 && categories.length > 0) {\n const message =\n conditionType === 'Price'\n ? messages.brandsNCategoriesNFromPrice\n : messages.brandsNCategoriesNFromPieces;\n\n formattedMessage = formatMessage(message, {\n ...priceOrPieces,\n these: (parts) => (\n {parts}\n ),\n });\n } else if (brands.length > 1) {\n const message =\n conditionType === 'Price'\n ? messages.brandsNCategories0FromPrice\n : messages.brandsNCategories0FromPieces;\n\n formattedMessage = formatMessage(message, {\n ...priceOrPieces,\n brands: (parts) => (\n {parts}\n ),\n });\n } else if (categories.length > 1) {\n const message =\n conditionType === 'Price'\n ? messages.brands0CategoriesNFromPrice\n : messages.brands0CategoriesNFromPieces;\n\n formattedMessage = formatMessage(message, {\n ...priceOrPieces,\n categories: (parts) => (\n {parts}\n ),\n });\n } else if (brands.length === 1) {\n const message =\n conditionType === 'Price'\n ? messages.brands1Categories0FromPrice\n : messages.brands1Categories0FromPieces;\n\n formattedMessage = formatMessage(message, {\n ...priceOrPieces,\n brand: (\n \n {brands[0].name}\n \n ),\n });\n } else if (categories.length === 1) {\n const message =\n conditionType === 'Price'\n ? messages.brands0Categories1FromPrice\n : messages.brands0Categories1FromPieces;\n\n formattedMessage = formatMessage(message, {\n ...priceOrPieces,\n category: (\n \n {categories[0].name}\n \n ),\n });\n } else {\n const message =\n conditionType === 'Price'\n ? messages.fromPriceSelectedProducts\n : messages.fromPiecesSelectedProducts;\n\n formattedMessage = formatMessage(message, priceOrPieces);\n }\n\n return formattedMessage;\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { theme } from '@notino/react-styleguide';\n\nimport PriceLabel from '@components/PriceLabel';\nimport { ICurrency } from '@containers/App/model';\nimport { useIsDualPriceForCroatia } from '@containers/ProductDetailContainer/ProductDetail/hooks/useIsDualPriceForCroatia';\n\nimport { messages } from '../messages';\nimport { Wrapper, CurrencyWrapper, Slash } from '../styled';\nimport { VoucherDiscountInfo } from '../VoucherDiscountInfo';\n\nimport { ConditionalInstructionsText } from './ConditionalInstructionsText';\n\nexport interface IConditionalVoucherDiscount {\n code: string;\n conditionType: 'Price' | 'Piece';\n discountType: 'Absolute' | 'Percentage';\n productsOnSaleIncluded: boolean;\n discountConditions: Array<{\n percentageDiscount: number;\n discountedPrice: number;\n discountAmount: number;\n conditionMin: number;\n }>;\n targets: Array<{\n name: string;\n type: 'Brand' | 'Category';\n url: string;\n }>;\n}\n\nexport interface IVoucherDiscountProps {\n voucherDiscount: IConditionalVoucherDiscount;\n currency: ICurrency;\n isUnderSelectBox?: boolean;\n}\n\nexport const ConditionalVoucherDiscount = ({\n voucherDiscount,\n currency,\n isUnderSelectBox,\n}: IVoucherDiscountProps) => {\n const {\n isDualPriceForCroatia,\n getLeftSideFormattedPrice,\n leftSideCurrency,\n rightSideCurrency,\n getRightSidePrice,\n } = useIsDualPriceForCroatia();\n\n if (voucherDiscount.discountConditions.length !== 1) {\n return null;\n }\n\n const {\n code,\n productsOnSaleIncluded,\n discountType,\n discountConditions: [\n { discountedPrice, discountAmount, percentageDiscount },\n ],\n } = voucherDiscount;\n\n const getPriceComponent = (price: number) => (\n <>\n {isDualPriceForCroatia && (\n \n {getLeftSideFormattedPrice(price)}{' '}\n {leftSideCurrency}\n /\n \n )}\n \n \n );\n\n const discountTypeComponentMap: Record = {\n Percentage: getPriceComponent(discountedPrice),\n Absolute: (\n \n ),\n };\n\n return (\n \n ) : (\n \n )\n }\n instructionsText={\n \n }\n />\n );\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport PriceLabel from '@components/PriceLabel';\nimport { ICurrency } from '@containers/App/model';\n\nimport { useIsDualPriceForCroatia } from '../../hooks/useIsDualPriceForCroatia';\n\nimport { messages } from './messages';\nimport { Wrapper, CurrencyWrapper, Slash } from './styled';\nimport { VoucherDiscountInfo } from './VoucherDiscountInfo';\n\nexport interface IVoucherDiscount {\n displayType: 'DiscountedPrice' | 'Percentage';\n percentage: number;\n discountedPrice: number;\n code: string;\n productsOnSaleIncluded: boolean;\n}\n\nexport interface IVoucherDiscountProps {\n voucherDiscount: IVoucherDiscount;\n currency: ICurrency;\n isUnderSelectBox?: boolean;\n}\n\nexport const VoucherDiscount = ({\n voucherDiscount,\n currency,\n isUnderSelectBox,\n}: IVoucherDiscountProps) => {\n const {\n isDualPriceForCroatia,\n getLeftSideFormattedPrice,\n leftSideCurrency,\n rightSideCurrency,\n getRightSidePrice,\n } = useIsDualPriceForCroatia();\n\n const {\n code,\n percentage,\n discountedPrice,\n displayType,\n productsOnSaleIncluded,\n } = voucherDiscount;\n\n const discountAmountComponentMap: Record = {\n Percentage: (\n \n ),\n DiscountedPrice: (\n <>\n {isDualPriceForCroatia && (\n \n {getLeftSideFormattedPrice(discountedPrice)}{' '}\n {leftSideCurrency}\n /\n \n )}\n \n \n ),\n };\n\n return (\n \n )\n }\n instructionsText={}\n highlightedDiscountAmount={discountAmountComponentMap[displayType]}\n />\n );\n};\n","import * as React from 'react';\n\nimport { ICurrency } from '@containers/App/model';\n\nimport { Line } from '../SelectedVariant/styled';\n\nimport {\n ConditionalVoucherDiscount,\n IConditionalVoucherDiscount,\n} from './ConditionalVoucherDiscount';\nimport { LineWrapper } from './styled';\nimport { IVoucherDiscount, VoucherDiscount } from './VoucherDiscount';\n\ninterface IVoucherDiscountProps {\n voucherDiscount: IVoucherDiscount | IConditionalVoucherDiscount;\n currency: ICurrency;\n isUnderSelectBox?: boolean;\n hideLine?: boolean;\n}\n\nexport const VoucherDiscountMaster = ({\n voucherDiscount,\n hideLine,\n ...rest\n}: IVoucherDiscountProps) => {\n if (\n isConditionalDiscount(voucherDiscount) &&\n voucherDiscount.discountConditions.length !== 1\n ) {\n return null;\n }\n\n return (\n <>\n {isConditionalDiscount(voucherDiscount) ? (\n \n ) : (\n \n )}\n\n {!hideLine && (\n \n \n \n )}\n \n );\n};\n\nconst isConditionalDiscount = (\n discount: IConditionalVoucherDiscount | IVoucherDiscount\n): discount is IConditionalVoucherDiscount => {\n return 'discountConditions' in discount;\n};\n","export interface IEngravingTryItFirstContext {\n actions: IActions;\n state: IEngravingTryItFirstState;\n}\n\nexport interface IEngravingTryItFirstState {\n withEngraving: boolean;\n withTryItFirst: boolean;\n engravingInitials: string;\n}\n\nexport interface IActions {\n changeEngravingInitials: (value: string) => void;\n toggleTryItFirst: (value: boolean) => void;\n clear: () => void;\n}\n\nexport enum ActionTypes {\n CHANGE_ENGRAVING_INITIALS = 'CHANGE_ENGRAVING_INITIALS',\n TOGGLE_TRY_IT_FIRST = 'TOGGLE_TRY_IT_FIRST',\n CLEAR = 'CLEAR',\n}\n\nexport type Action =\n | { type: ActionTypes.CHANGE_ENGRAVING_INITIALS; value: string }\n | { type: ActionTypes.TOGGLE_TRY_IT_FIRST; value: boolean }\n | { type: ActionTypes.CLEAR };\n","import { Action, ActionTypes, IEngravingTryItFirstState } from './model';\n\nexport const initialState: IEngravingTryItFirstState = {\n withEngraving: false,\n withTryItFirst: false,\n engravingInitials: '',\n};\n\nexport const reducer = (\n state: IEngravingTryItFirstState,\n action: Action\n): IEngravingTryItFirstState => {\n switch (action.type) {\n case ActionTypes.CHANGE_ENGRAVING_INITIALS:\n return {\n ...state,\n withEngraving: action.value.length > 0,\n engravingInitials: action.value,\n withTryItFirst: false,\n };\n case ActionTypes.TOGGLE_TRY_IT_FIRST:\n return {\n ...state,\n withTryItFirst: action.value,\n withEngraving: false,\n };\n case ActionTypes.CLEAR:\n return {\n ...initialState,\n };\n default:\n return state;\n }\n};\n","import { dispatchTrackingEvent } from '@context/tracking/utils';\n\nexport const trackEngravingChecked = (checked: boolean, timing: number) => {\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n name: 'engraving',\n action: checked ? 'select_engraving' : 'deselect_engraving',\n interaction: 'checkbox',\n mode: checked ? 'on' : 'off',\n timing,\n type: 'engraving',\n },\n _clear: true,\n });\n};\n","import * as React from 'react';\n\nimport { ReactFCC } from '@notino/react-styleguide';\n\nimport { IEngravingTryItFirstContext } from './model';\nimport { reducer, initialState } from './reducer';\nimport { useActions } from './useActions';\n\nconst initialContext = {\n state: initialState,\n actions: {},\n};\n\nexport const EngravingTryItFirstContext =\n React.createContext(\n initialContext as IEngravingTryItFirstContext\n );\n\nexport const EngravingTryItFirstProvider: ReactFCC = ({ children }) => {\n const [state, dispatch] = React.useReducer(reducer, initialState);\n\n const actions = useActions(dispatch);\n const value = React.useMemo(() => ({ state, actions }), [state, actions]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const useEngravingTryItFirstContext = () =>\n React.useContext(EngravingTryItFirstContext);\n","import * as React from 'react';\n\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\n\nimport { trackEngravingChecked } from '../../Engraving/tracking';\nimport { trackTryItFirstChanged } from '../../TryItFirst/tracking';\n\nimport { Action, ActionTypes, IActions } from './model';\n\nexport const useActions = (dispatch: React.Dispatch): IActions => {\n const { getTimeFromInit } = useTrackingContext();\n\n return React.useMemo(\n () => ({\n changeEngravingInitials: (value: string) => {\n dispatch({ type: ActionTypes.CHANGE_ENGRAVING_INITIALS, value });\n trackEngravingChecked(value.length > 0, getTimeFromInit());\n },\n toggleTryItFirst: (value: boolean) => {\n dispatch({ type: ActionTypes.TOGGLE_TRY_IT_FIRST, value });\n trackTryItFirstChanged(value, getTimeFromInit());\n },\n clear: () => {\n dispatch({ type: ActionTypes.CLEAR });\n },\n }),\n [dispatch, getTimeFromInit]\n );\n};\n","import { dispatchTrackingEvent } from '@context/tracking/utils';\n\nexport const trackTryItFirstChanged = (checked: boolean, timing: number) => {\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n mode: checked ? 'on' : 'off',\n interaction: 'checkbox',\n action: checked ? 'select_try_it_first' : 'deselect_try_it_first',\n name: 'try_it_first',\n type: 'try_it_first',\n timing,\n },\n _clear: true,\n });\n};\n","import * as React from 'react';\n\nimport {\n GiftType,\n GetProductViewQuery,\n} from '@notino/shared/definitions/types';\n\nconst EMPTY_ARR = [];\nexport const useTryItFirstCampaigns = (\n campaigns: GetProductViewQuery['productDetailByMasterId'][number]['campaigns'] = EMPTY_ARR\n) => {\n return React.useMemo(() => {\n return campaigns.filter(\n (campaign) => campaign && campaign.giftType === GiftType.TryItFirst\n );\n }, [campaigns]);\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, Button } from '@notino/react-styleguide';\n\nexport const Container = styled.div<{ newDesign: boolean }>`\n width: 100%;\n\n ${({ newDesign }) =>\n newDesign &&\n css`\n @media (min-width: ${breakpoints.lg}) {\n padding-bottom: 2rem;\n }\n `}\n`;\n\nexport const ButtonsWrapper = styled.div<{ canBuy?: boolean }>`\n display: flex;\n flex-direction: column;\n\n ${({ canBuy }) =>\n canBuy &&\n css`\n @media (min-width: ${breakpoints.lg}) {\n flex-direction: row;\n }\n `}\n`;\n\nexport const LeftIconWrapper = styled.div`\n align-self: flex-start;\n padding-right: 1rem;\n width: 2.25rem;\n line-height: 0;\n`;\n\nexport const StyledWatchdogButton = styled(Button)`\n text-transform: none !important;\n font-weight: normal !important;\n`;\n\nexport const WatchdogWrapper = styled.div`\n text-align: center;\n align-self: flex-start;\n\n @media (min-width: ${breakpoints.md}) {\n text-align: left;\n }\n`;\n\nexport const DiscountWrapper = styled.div<{ newDesign: boolean }>`\n ${({ newDesign }) =>\n newDesign &&\n css`\n margin-top: 0.75rem;\n `}\n`;\n","import * as React from 'react';\nimport { useLocation } from 'react-router';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { selectVariant } from '../../utils';\n\nexport const useCurrentVariant = (\n variants: GetProductViewQuery['productDetailByMasterId'][number]['variants']\n) => {\n const { pathname } = useLocation();\n\n return React.useMemo(\n () => selectVariant(variants, pathname),\n [variants, pathname]\n );\n};\n","import * as React from 'react';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { useCartServices } from './hooks/useCartServices';\nimport { useCurrentVariant } from './hooks/useCurrentVariant';\n\ninterface ProductDetailContextValue extends ReturnType {\n product: GetProductViewQuery['productDetailByMasterId'][number];\n currentVariant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number];\n}\n\ninterface Props {\n product: GetProductViewQuery['productDetailByMasterId'][number];\n}\n\nconst Context = React.createContext(null!);\n\nexport const useProductDetailContext = (throwError = true) => {\n const value = React.useContext(Context);\n if (!value && throwError) {\n throw Error(\n 'useProductDetailContext must be within ProductDetailContextProvider.'\n );\n }\n\n return value;\n};\n\nexport const ProductDetailContextProvider = ({\n children,\n product,\n}: React.PropsWithChildren) => {\n const currentVariant = useCurrentVariant(product.variants);\n const cartServices = useCartServices(product, currentVariant);\n\n const value: ProductDetailContextValue = React.useMemo(\n () => ({\n product,\n currentVariant,\n ...cartServices,\n }),\n [product, currentVariant, cartServices]\n );\n\n return {children};\n};\n","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport { useQuery } from '@apollo/client';\n\nimport {\n GiftType,\n GetProductViewQuery,\n GetServicesIncludedQuery,\n} from '@notino/shared/definitions/types';\n\nimport getServicesIncludedQuery from '@containers/ProductDetailContainer/queries/servicesIncluded.graphql';\n\nimport { getEngravingAvailability, getTryItFirstAvailability } from '../utils';\n\nexport const useCartServices = (\n product: GetProductViewQuery['productDetailByMasterId'][number],\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]\n) => {\n const productsIdsURI = React.useMemo(\n () => product.variants.map(({ id }) => `productIds=${id}`).join('&'),\n [product.variants]\n );\n\n const additionalServices = useQuery(\n getServicesIncludedQuery,\n {\n skip: !variant.canBuy,\n ssr: false,\n variables: {\n productsIds: productsIdsURI,\n },\n }\n );\n\n const engravingAvailable = React.useMemo(\n () =>\n additionalServices &&\n additionalServices.data?.CartServicesIncluded &&\n getEngravingAvailability(\n additionalServices.data.CartServicesIncluded?.engravingShow,\n variant.engraving,\n additionalServices.error\n ),\n [additionalServices, variant.engraving]\n );\n\n const tryItFirstCampaigns = React.useMemo(() => {\n const { campaigns = [] } = product;\n return campaigns.filter(\n (campaign) => campaign && campaign.giftType === GiftType.TryItFirst\n );\n }, [product]);\n\n const tryItFirstAvailable = React.useMemo(\n () =>\n additionalServices &&\n additionalServices.data?.CartServicesIncluded &&\n getTryItFirstAvailability(\n additionalServices.data.CartServicesIncluded?.tryFirstShow,\n tryItFirstCampaigns,\n variant,\n additionalServices.error\n ),\n [additionalServices, variant, tryItFirstCampaigns]\n );\n\n return useMemo(\n () => ({\n additionalServices,\n engravingAvailable,\n tryItFirstAvailable,\n }),\n [additionalServices, engravingAvailable, tryItFirstAvailable]\n );\n};\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as r from\"react\";import{Icon as t}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var o=function(o){return r.createElement(t,e({},o,{viewBox:\"0 0 124.72 124.72\"}),r.createElement(\"circle\",{fill:\"#f5f5f5\",cx:\"62.36\",cy:\"62.36\",r:\"62.36\"}),r.createElement(\"polygon\",{fill:\"currentColor\",points:\"95.82 62.36 45.41 33.26 45.41 91.47 95.82 62.36\"}))};export{o as PlayCircleIcon};\n//# sourceMappingURL=PlayCircleIcon.js.map\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nexport const SliderWrapper = styled.div`\n margin-top: 1.25rem;\n padding: 0 1.5625rem;\n height: 4.375rem;\n display: none;\n\n @media (min-width: ${breakpoints.md}) {\n display: block;\n }\n\n .slick-list {\n min-height: 4.6875rem;\n }\n`;\n\nconst commonImgStyles = css`\n max-width: 4.375rem !important;\n max-height: 4.375rem !important;\n vertical-align: bottom;\n width: auto !important;\n height: auto !important;\n overflow: hidden;\n`;\n\nconst newCommonImgStyles = css`\n width: 8.75rem !important;\n height: 8.75rem !important;\n object-fit: cover;\n overflow: hidden;\n border-radius: 0.25rem;\n`;\n\nexport const Img = styled.img<{ newDesign: boolean; isSelected: boolean }>`\n cursor: pointer;\n display: inline;\n ${({ newDesign }) => (newDesign ? newCommonImgStyles : commonImgStyles)}\n ${({ isSelected, newDesign }) =>\n !isSelected &&\n newDesign &&\n css`\n opacity: 0.5;\n `}\n`;\n\nexport const Div = styled.div<{ newDesign: boolean }>`\n min-width: 4.375rem;\n line-height: 1rem;\n position: relative;\n margin-bottom: 0.3125rem;\n\n cursor: pointer;\n text-align: center;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n mix-blend-mode: multiply;\n `\n : css`\n padding: 0 0.3125rem;\n background-color: ${theme.palette.basicInverse};\n `}\n`;\n\nexport const TopMostDiv = styled.div<{ newDesign: boolean }>`\n ${({ newDesign }) =>\n newDesign &&\n css`\n position: relative;\n border-radius: 0.25rem;\n background-color: ${theme.palette.neutralLighter};\n `}\n`;\n\nexport const Border = styled.div`\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n border: 2px solid ${theme.palette.basic};\n border-radius: 0.25rem;\n`;\n\nexport const VideoIcon = styled.div`\n opacity: 0.8;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n`;\n","import * as React from 'react';\nimport { useInView } from 'react-intersection-observer';\n\nimport { Colors, PlayCircleIcon } from '@notino/react-styleguide';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { RectanglePlaceholder } from '@components/Placeholders';\nimport { IImageProperties } from '@helpers/utils';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\n\nimport { Border, Div, Img, TopMostDiv, VideoIcon } from './styled';\n\nexport interface IImageProps extends IImageProperties {\n onClick?: React.MouseEventHandler;\n onMouseOver?: React.EventHandler>;\n isSelected: boolean;\n}\n\nexport const Image: React.FC = ({\n isVideo,\n onClick,\n onMouseOver,\n ...imageAttributes\n}) => {\n const newDesign = useNewPdDesignEnabled();\n const [ref, inView] = useInView({ triggerOnce: true });\n\n return (\n \n \n {imageAttributes.isSelected && newDesign && }\n\n \n {inView ? (\n \n ) : (\n \n )}\n {isVideo && (\n \n \n \n )}\n
\n \n \n );\n};\n","import styled from 'styled-components';\n\nimport { breakpoints } from '@notino/react-styleguide';\n\nexport const Wrapper = styled.div`\n margin-top: 1.25rem;\n position: relative;\n overflow: hidden;\n display: none;\n\n @media (min-width: ${breakpoints.lg}) {\n margin-top: 1rem;\n display: block;\n }\n`;\n\nexport const ImageWrapper = styled.div`\n flex-basis: 6rem;\n`;\n\nexport const ScrollWrapper = styled.div`\n display: flex;\n gap: 1rem;\n overflow: auto;\n -ms-overflow-style: none;\n scrollbar-width: none;\n\n ::-webkit-scrollbar {\n display: none;\n }\n`;\n","import * as React from 'react';\n\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n Colors,\n} from '@notino/react-styleguide';\n\nimport { IImageProperties } from '@helpers/utils';\nimport { useArrows } from '@hooks/useArrows';\nimport { Fade, Arrow } from '@hooks/useArrows/styled';\n\nimport { useProductDetailContext } from '../../ProductDetailContext';\n\nimport { Image } from './Image';\nimport { ImageWrapper, ScrollWrapper, Wrapper } from './ScrollThumbs.styles';\n\ninterface IProps {\n imageIndex: number;\n handleImageChange: (index: number) => void;\n handleImageClick?: (index: number) => React.MouseEventHandler;\n imagesAttrs: IImageProperties[];\n cypressDataValue?: string;\n}\n\nexport const ScrollThumbs = ({\n imageIndex,\n handleImageChange,\n handleImageClick,\n imagesAttrs,\n cypressDataValue,\n}: IProps) => {\n const { currentVariant } = useProductDetailContext();\n const { containerRef, scrollTo, showLeftArrow, showRightArrow } = useArrows([\n currentVariant.id,\n ]);\n\n return (\n \n {showLeftArrow && (\n <>\n scrollTo('left')} role=\"button\">\n \n \n \n \n )}\n\n \n {imagesAttrs.map((imageAttr, index) => (\n \n handleImageChange(index)}\n />\n \n ))}\n \n\n {showRightArrow && (\n <>\n scrollTo('right')}\n role=\"button\"\n >\n \n \n \n \n )}\n \n );\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints } from '@notino/react-styleguide';\n\nexport const SliderWrapper = styled.div`\n display: block;\n position: relative;\n height: 100%;\n\n .slick-track {\n display: flex;\n align-items: start;\n height: 100%;\n }\n\n .slick-list {\n overflow: hidden;\n height: 100%;\n }\n\n .slick-slider {\n height: 100%;\n }\n`;\n\ninterface IArrowWrapperProps {\n isLeft: boolean;\n}\n\nconst leftArrowCSS = css`\n left: 0;\n @media (min-width: ${breakpoints.lg}) {\n left: -1.5625rem;\n }\n`;\n\nconst rightArrowCSS = css`\n right: 0;\n @media (min-width: ${breakpoints.lg}) {\n right: -1.5625rem;\n }\n`;\n\nexport const ArrowWrapper = styled.div`\n position: absolute;\n top: 50%;\n transform: translate(0, -50%);\n cursor: pointer;\n color: transparent;\n border: none;\n outline: 0;\n background-color: rgb(255, 255, 255);\n z-index: 2;\n\n ${({ isLeft }) => (isLeft ? leftArrowCSS : rightArrowCSS)}\n`;\n","import * as React from 'react';\n\nimport {\n ChevronLeftIcon,\n Colors,\n ChevronRightIcon,\n IBasicStyledProps,\n} from '@notino/react-styleguide';\n\nimport { ArrowWrapper } from './styled';\n\ninterface IArrowProps extends IBasicStyledProps {\n direction: string;\n className?: string;\n onClick?: React.MouseEventHandler;\n}\n\nconst Arrow: React.FC = ({\n direction,\n onClick,\n className,\n ...basicStyledProps\n}) => {\n const color = onClick ? Colors.neutralDarker : Colors.neutralLight;\n const isLeft = direction === 'left';\n return (\n \n {isLeft ? (\n \n ) : (\n \n )}\n \n );\n};\n\nexport default Arrow;\n","import * as React from 'react';\nimport Slider, { Settings } from 'react-slick';\n\nimport { ReactFCC } from '@notino/react-styleguide';\n\nimport { SliderWrapper } from './components/styled';\n\nexport { Arrows } from './components';\n\nexport interface ISimpleSliderProps {\n conf: Settings;\n sliderRef?: React.LegacyRef;\n}\n\nconst SimpleSlider: ReactFCC = ({\n conf,\n children,\n sliderRef,\n}) => (\n \n \n {children}\n \n \n);\n\nexport default SimpleSlider;\n","import * as React from 'react';\nimport { LazyLoadTypes, Settings } from 'react-slick';\n\nimport Slider, { Arrows } from '@components/Slider';\nimport { IImageProperties } from '@helpers/utils';\n\nimport { Image } from './Image';\nimport { SliderWrapper } from './styled';\n\ninterface IThumbsImagesProps {\n imageIndex: number;\n handleImageChange: (index: number) => void;\n handleImageClick?: (index: number) => React.MouseEventHandler;\n imagesAttrs: IImageProperties[];\n config: Settings;\n cypressDataValue?: string;\n}\n\nexport const Thumbs: React.FC = React.memo(\n ({\n imagesAttrs,\n config,\n handleImageChange,\n handleImageClick,\n imageIndex,\n cypressDataValue = '',\n }) => {\n const imagesLen = imagesAttrs.length;\n\n const sliderConfig = React.useMemo(\n () => ({\n cssEase: 'ease-in-out',\n infinite: false,\n lazyLoad: 'ondemand' as LazyLoadTypes,\n prevArrow:\n imagesLen > config.slidesToShow ? : null,\n nextArrow:\n imagesLen > config.slidesToShow ? : null,\n arrows: imagesLen > config.slidesToShow,\n ...config,\n }),\n [imagesLen, config]\n );\n\n return (\n \n \n {imagesAttrs.map((imageAttr, index) => {\n const onMouseOver = () => handleImageChange(index);\n return (\n \n );\n })}\n \n \n );\n }\n);\n","import { Settings } from 'react-slick';\n\nexport const THUMBS_SLIDER_CONFIG: Settings = {\n slidesToShow: 10,\n slidesToScroll: 10,\n responsive: [\n {\n breakpoint: 992,\n settings: {\n slidesToShow: 8,\n slidesToScroll: 8,\n },\n },\n {\n breakpoint: 768,\n settings: {\n slidesToShow: 6,\n slidesToScroll: 6,\n },\n },\n ],\n};\n","import styled from 'styled-components';\n\nimport { breakpoints, Modal } from '@notino/react-styleguide';\n\nexport const Wrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n height: 70vh;\n`;\n\nexport const Image = styled.img`\n max-width: 100%;\n height: auto;\n max-height: 100%;\n object-fit: contain;\n`;\n\nexport const ThumbsWrapper = styled.div`\n width: 100%;\n padding: 1rem 2.5rem 1.5625rem;\n`;\n\nexport const VideoSizeContainer = styled.div`\n flex-basis: 100vh;\n`;\n\nexport const PlayerWrapper = styled.div`\n position: relative;\n padding-bottom: 56.25%; /* 16:9 */\n width: 100%;\n height: 0;\n iframe {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n @media (min-width: ${breakpoints.md}) {\n background: ${(props) => props.theme.palette.neutralLighter};\n }\n }\n`;\n\nexport const GalleryModal = styled(Modal)`\n position: absolute;\n height: 100%;\n`;\n","import * as React from 'react';\n\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport { ScrollThumbs } from '@containers/ProductDetailContainer/ProductDetail/ProductImageGallery/Thumbs/ScrollThumbs';\nimport { IImageProperties } from '@helpers/utils';\n\nimport { Thumbs } from '../../containers/ProductDetailContainer/ProductDetail/ProductImageGallery/Thumbs';\nimport { youtubeIframe } from '../../containers/ProductDetailContainer/utils';\n\nimport { THUMBS_SLIDER_CONFIG } from './constants';\nimport {\n Wrapper,\n PlayerWrapper,\n ThumbsWrapper,\n VideoSizeContainer,\n Image,\n} from './styled';\n\ninterface IModalGalleryProps {\n onClose: () => void;\n imageIndex: number;\n images: IImageProperties[];\n thumbImages: IImageProperties[];\n videos?: string[];\n}\n\nexport const ModalGallery: React.FC = ({\n imageIndex = 0,\n thumbImages,\n videos,\n onClose,\n images,\n}) => {\n const newDesign = useNewPdDesignEnabled();\n const [mediaIndex, setMediaIndex] = React.useState(imageIndex);\n const mediaCount = thumbImages.length;\n\n React.useEffect(() => {\n setMediaIndex(imageIndex);\n }, [imageIndex]);\n\n React.useEffect(() => {\n const goToNext = () => {\n setMediaIndex((prevMediaIndex) =>\n Math.min(mediaCount > 1 ? mediaCount - 1 : 0, prevMediaIndex + 1)\n );\n };\n\n const goToPrev = () => {\n setMediaIndex((prevMediaIndex) => Math.max(0, prevMediaIndex - 1));\n };\n\n const handleKeyPress = (event) => {\n if (event.keyCode === 37) {\n goToPrev();\n } else if (event.keyCode === 39) {\n goToNext();\n } else if (event.keyCode === 27) {\n onClose();\n }\n };\n\n window.addEventListener('keydown', handleKeyPress);\n return () => {\n window.removeEventListener('keydown', handleKeyPress);\n };\n }, [mediaCount, onClose]);\n\n const getVideoId = React.useCallback(\n (index: number): string => {\n const videoIndex = index - images.length;\n return videoIndex < 0 ? '' : videos[videoIndex];\n },\n [images, videos]\n );\n\n const image = images[mediaIndex];\n const videoId = getVideoId(mediaIndex);\n\n return (\n <>\n \n {videoId ? (\n \n \n \n ) : (\n \n )}\n \n\n {thumbImages.length > 1 && !newDesign && (\n \n \n \n )}\n\n {thumbImages.length > 1 && newDesign && (\n \n \n \n )}\n \n );\n};\n","import { Settings } from 'react-slick';\n\nexport const THUMBS_SLIDER_CONFIG: Settings = {\n slidesToShow: 4,\n slidesToScroll: 4,\n responsive: [\n {\n breakpoint: 992,\n settings: {\n slidesToShow: 3,\n slidesToScroll: 3,\n },\n },\n ],\n};\n","function clamp(v, min, max) {\n return Math.max(min, Math.min(v, max));\n}\nconst V = {\n toVector(v, fallback) {\n if (v === undefined) v = fallback;\n return Array.isArray(v) ? v : [v, v];\n },\n add(v1, v2) {\n return [v1[0] + v2[0], v1[1] + v2[1]];\n },\n sub(v1, v2) {\n return [v1[0] - v2[0], v1[1] - v2[1]];\n },\n addTo(v1, v2) {\n v1[0] += v2[0];\n v1[1] += v2[1];\n },\n subTo(v1, v2) {\n v1[0] -= v2[0];\n v1[1] -= v2[1];\n }\n};\nfunction rubberband(distance, dimension, constant) {\n if (dimension === 0 || Math.abs(dimension) === Infinity) return Math.pow(distance, constant * 5);\n return distance * dimension * constant / (dimension + constant * distance);\n}\nfunction rubberbandIfOutOfBounds(position, min, max, constant = 0.15) {\n if (constant === 0) return clamp(position, min, max);\n if (position < min) return -rubberband(min - position, max - min, constant) + min;\n if (position > max) return +rubberband(position - max, max - min, constant) + max;\n return position;\n}\nfunction computeRubberband(bounds, [Vx, Vy], [Rx, Ry]) {\n const [[X0, X1], [Y0, Y1]] = bounds;\n return [rubberbandIfOutOfBounds(Vx, X0, X1, Rx), rubberbandIfOutOfBounds(Vy, Y0, Y1, Ry)];\n}\n\nexport { V, computeRubberband as c, rubberbandIfOutOfBounds as r };\n","import { V, c as computeRubberband } from './maths-0ab39ae9.esm.js';\n\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\n\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\n\nconst EVENT_TYPE_MAP = {\n pointer: {\n start: 'down',\n change: 'move',\n end: 'up'\n },\n mouse: {\n start: 'down',\n change: 'move',\n end: 'up'\n },\n touch: {\n start: 'start',\n change: 'move',\n end: 'end'\n },\n gesture: {\n start: 'start',\n change: 'change',\n end: 'end'\n }\n};\nfunction capitalize(string) {\n if (!string) return '';\n return string[0].toUpperCase() + string.slice(1);\n}\nconst actionsWithoutCaptureSupported = ['enter', 'leave'];\nfunction hasCapture(capture = false, actionKey) {\n return capture && !actionsWithoutCaptureSupported.includes(actionKey);\n}\nfunction toHandlerProp(device, action = '', capture = false) {\n const deviceProps = EVENT_TYPE_MAP[device];\n const actionKey = deviceProps ? deviceProps[action] || action : action;\n return 'on' + capitalize(device) + capitalize(actionKey) + (hasCapture(capture, actionKey) ? 'Capture' : '');\n}\nconst pointerCaptureEvents = ['gotpointercapture', 'lostpointercapture'];\nfunction parseProp(prop) {\n let eventKey = prop.substring(2).toLowerCase();\n const passive = !!~eventKey.indexOf('passive');\n if (passive) eventKey = eventKey.replace('passive', '');\n const captureKey = pointerCaptureEvents.includes(eventKey) ? 'capturecapture' : 'capture';\n const capture = !!~eventKey.indexOf(captureKey);\n if (capture) eventKey = eventKey.replace('capture', '');\n return {\n device: eventKey,\n capture,\n passive\n };\n}\nfunction toDomEventType(device, action = '') {\n const deviceProps = EVENT_TYPE_MAP[device];\n const actionKey = deviceProps ? deviceProps[action] || action : action;\n return device + actionKey;\n}\nfunction isTouch(event) {\n return 'touches' in event;\n}\nfunction getPointerType(event) {\n if (isTouch(event)) return 'touch';\n if ('pointerType' in event) return event.pointerType;\n return 'mouse';\n}\nfunction getCurrentTargetTouchList(event) {\n return Array.from(event.touches).filter(e => {\n var _event$currentTarget, _event$currentTarget$;\n return e.target === event.currentTarget || ((_event$currentTarget = event.currentTarget) === null || _event$currentTarget === void 0 ? void 0 : (_event$currentTarget$ = _event$currentTarget.contains) === null || _event$currentTarget$ === void 0 ? void 0 : _event$currentTarget$.call(_event$currentTarget, e.target));\n });\n}\nfunction getTouchList(event) {\n return event.type === 'touchend' || event.type === 'touchcancel' ? event.changedTouches : event.targetTouches;\n}\nfunction getValueEvent(event) {\n return isTouch(event) ? getTouchList(event)[0] : event;\n}\nfunction distanceAngle(P1, P2) {\n try {\n const dx = P2.clientX - P1.clientX;\n const dy = P2.clientY - P1.clientY;\n const cx = (P2.clientX + P1.clientX) / 2;\n const cy = (P2.clientY + P1.clientY) / 2;\n const distance = Math.hypot(dx, dy);\n const angle = -(Math.atan2(dx, dy) * 180) / Math.PI;\n const origin = [cx, cy];\n return {\n angle,\n distance,\n origin\n };\n } catch (_unused) {}\n return null;\n}\nfunction touchIds(event) {\n return getCurrentTargetTouchList(event).map(touch => touch.identifier);\n}\nfunction touchDistanceAngle(event, ids) {\n const [P1, P2] = Array.from(event.touches).filter(touch => ids.includes(touch.identifier));\n return distanceAngle(P1, P2);\n}\nfunction pointerId(event) {\n const valueEvent = getValueEvent(event);\n return isTouch(event) ? valueEvent.identifier : valueEvent.pointerId;\n}\nfunction pointerValues(event) {\n const valueEvent = getValueEvent(event);\n return [valueEvent.clientX, valueEvent.clientY];\n}\nconst LINE_HEIGHT = 40;\nconst PAGE_HEIGHT = 800;\nfunction wheelValues(event) {\n let {\n deltaX,\n deltaY,\n deltaMode\n } = event;\n if (deltaMode === 1) {\n deltaX *= LINE_HEIGHT;\n deltaY *= LINE_HEIGHT;\n } else if (deltaMode === 2) {\n deltaX *= PAGE_HEIGHT;\n deltaY *= PAGE_HEIGHT;\n }\n return [deltaX, deltaY];\n}\nfunction scrollValues(event) {\n var _ref, _ref2;\n const {\n scrollX,\n scrollY,\n scrollLeft,\n scrollTop\n } = event.currentTarget;\n return [(_ref = scrollX !== null && scrollX !== void 0 ? scrollX : scrollLeft) !== null && _ref !== void 0 ? _ref : 0, (_ref2 = scrollY !== null && scrollY !== void 0 ? scrollY : scrollTop) !== null && _ref2 !== void 0 ? _ref2 : 0];\n}\nfunction getEventDetails(event) {\n const payload = {};\n if ('buttons' in event) payload.buttons = event.buttons;\n if ('shiftKey' in event) {\n const {\n shiftKey,\n altKey,\n metaKey,\n ctrlKey\n } = event;\n Object.assign(payload, {\n shiftKey,\n altKey,\n metaKey,\n ctrlKey\n });\n }\n return payload;\n}\n\nfunction call(v, ...args) {\n if (typeof v === 'function') {\n return v(...args);\n } else {\n return v;\n }\n}\nfunction noop() {}\nfunction chain(...fns) {\n if (fns.length === 0) return noop;\n if (fns.length === 1) return fns[0];\n return function () {\n let result;\n for (const fn of fns) {\n result = fn.apply(this, arguments) || result;\n }\n return result;\n };\n}\nfunction assignDefault(value, fallback) {\n return Object.assign({}, fallback, value || {});\n}\n\nconst BEFORE_LAST_KINEMATICS_DELAY = 32;\nclass Engine {\n constructor(ctrl, args, key) {\n this.ctrl = ctrl;\n this.args = args;\n this.key = key;\n if (!this.state) {\n this.state = {};\n this.computeValues([0, 0]);\n this.computeInitial();\n if (this.init) this.init();\n this.reset();\n }\n }\n get state() {\n return this.ctrl.state[this.key];\n }\n set state(state) {\n this.ctrl.state[this.key] = state;\n }\n get shared() {\n return this.ctrl.state.shared;\n }\n get eventStore() {\n return this.ctrl.gestureEventStores[this.key];\n }\n get timeoutStore() {\n return this.ctrl.gestureTimeoutStores[this.key];\n }\n get config() {\n return this.ctrl.config[this.key];\n }\n get sharedConfig() {\n return this.ctrl.config.shared;\n }\n get handler() {\n return this.ctrl.handlers[this.key];\n }\n reset() {\n const {\n state,\n shared,\n ingKey,\n args\n } = this;\n shared[ingKey] = state._active = state.active = state._blocked = state._force = false;\n state._step = [false, false];\n state.intentional = false;\n state._movement = [0, 0];\n state._distance = [0, 0];\n state._direction = [0, 0];\n state._delta = [0, 0];\n state._bounds = [[-Infinity, Infinity], [-Infinity, Infinity]];\n state.args = args;\n state.axis = undefined;\n state.memo = undefined;\n state.elapsedTime = state.timeDelta = 0;\n state.direction = [0, 0];\n state.distance = [0, 0];\n state.overflow = [0, 0];\n state._movementBound = [false, false];\n state.velocity = [0, 0];\n state.movement = [0, 0];\n state.delta = [0, 0];\n state.timeStamp = 0;\n }\n start(event) {\n const state = this.state;\n const config = this.config;\n if (!state._active) {\n this.reset();\n this.computeInitial();\n state._active = true;\n state.target = event.target;\n state.currentTarget = event.currentTarget;\n state.lastOffset = config.from ? call(config.from, state) : state.offset;\n state.offset = state.lastOffset;\n state.startTime = state.timeStamp = event.timeStamp;\n }\n }\n computeValues(values) {\n const state = this.state;\n state._values = values;\n state.values = this.config.transform(values);\n }\n computeInitial() {\n const state = this.state;\n state._initial = state._values;\n state.initial = state.values;\n }\n compute(event) {\n const {\n state,\n config,\n shared\n } = this;\n state.args = this.args;\n let dt = 0;\n if (event) {\n state.event = event;\n if (config.preventDefault && event.cancelable) state.event.preventDefault();\n state.type = event.type;\n shared.touches = this.ctrl.pointerIds.size || this.ctrl.touchIds.size;\n shared.locked = !!document.pointerLockElement;\n Object.assign(shared, getEventDetails(event));\n shared.down = shared.pressed = shared.buttons % 2 === 1 || shared.touches > 0;\n dt = event.timeStamp - state.timeStamp;\n state.timeStamp = event.timeStamp;\n state.elapsedTime = state.timeStamp - state.startTime;\n }\n if (state._active) {\n const _absoluteDelta = state._delta.map(Math.abs);\n V.addTo(state._distance, _absoluteDelta);\n }\n if (this.axisIntent) this.axisIntent(event);\n const [_m0, _m1] = state._movement;\n const [t0, t1] = config.threshold;\n const {\n _step,\n values\n } = state;\n if (config.hasCustomTransform) {\n if (_step[0] === false) _step[0] = Math.abs(_m0) >= t0 && values[0];\n if (_step[1] === false) _step[1] = Math.abs(_m1) >= t1 && values[1];\n } else {\n if (_step[0] === false) _step[0] = Math.abs(_m0) >= t0 && Math.sign(_m0) * t0;\n if (_step[1] === false) _step[1] = Math.abs(_m1) >= t1 && Math.sign(_m1) * t1;\n }\n state.intentional = _step[0] !== false || _step[1] !== false;\n if (!state.intentional) return;\n const movement = [0, 0];\n if (config.hasCustomTransform) {\n const [v0, v1] = values;\n movement[0] = _step[0] !== false ? v0 - _step[0] : 0;\n movement[1] = _step[1] !== false ? v1 - _step[1] : 0;\n } else {\n movement[0] = _step[0] !== false ? _m0 - _step[0] : 0;\n movement[1] = _step[1] !== false ? _m1 - _step[1] : 0;\n }\n if (this.restrictToAxis && !state._blocked) this.restrictToAxis(movement);\n const previousOffset = state.offset;\n const gestureIsActive = state._active && !state._blocked || state.active;\n if (gestureIsActive) {\n state.first = state._active && !state.active;\n state.last = !state._active && state.active;\n state.active = shared[this.ingKey] = state._active;\n if (event) {\n if (state.first) {\n if ('bounds' in config) state._bounds = call(config.bounds, state);\n if (this.setup) this.setup();\n }\n state.movement = movement;\n this.computeOffset();\n }\n }\n const [ox, oy] = state.offset;\n const [[x0, x1], [y0, y1]] = state._bounds;\n state.overflow = [ox < x0 ? -1 : ox > x1 ? 1 : 0, oy < y0 ? -1 : oy > y1 ? 1 : 0];\n state._movementBound[0] = state.overflow[0] ? state._movementBound[0] === false ? state._movement[0] : state._movementBound[0] : false;\n state._movementBound[1] = state.overflow[1] ? state._movementBound[1] === false ? state._movement[1] : state._movementBound[1] : false;\n const rubberband = state._active ? config.rubberband || [0, 0] : [0, 0];\n state.offset = computeRubberband(state._bounds, state.offset, rubberband);\n state.delta = V.sub(state.offset, previousOffset);\n this.computeMovement();\n if (gestureIsActive && (!state.last || dt > BEFORE_LAST_KINEMATICS_DELAY)) {\n state.delta = V.sub(state.offset, previousOffset);\n const absoluteDelta = state.delta.map(Math.abs);\n V.addTo(state.distance, absoluteDelta);\n state.direction = state.delta.map(Math.sign);\n state._direction = state._delta.map(Math.sign);\n if (!state.first && dt > 0) {\n state.velocity = [absoluteDelta[0] / dt, absoluteDelta[1] / dt];\n state.timeDelta = dt;\n }\n }\n }\n emit() {\n const state = this.state;\n const shared = this.shared;\n const config = this.config;\n if (!state._active) this.clean();\n if ((state._blocked || !state.intentional) && !state._force && !config.triggerAllEvents) return;\n const memo = this.handler(_objectSpread2(_objectSpread2(_objectSpread2({}, shared), state), {}, {\n [this.aliasKey]: state.values\n }));\n if (memo !== undefined) state.memo = memo;\n }\n clean() {\n this.eventStore.clean();\n this.timeoutStore.clean();\n }\n}\n\nfunction selectAxis([dx, dy], threshold) {\n const absDx = Math.abs(dx);\n const absDy = Math.abs(dy);\n if (absDx > absDy && absDx > threshold) {\n return 'x';\n }\n if (absDy > absDx && absDy > threshold) {\n return 'y';\n }\n return undefined;\n}\nclass CoordinatesEngine extends Engine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"aliasKey\", 'xy');\n }\n reset() {\n super.reset();\n this.state.axis = undefined;\n }\n init() {\n this.state.offset = [0, 0];\n this.state.lastOffset = [0, 0];\n }\n computeOffset() {\n this.state.offset = V.add(this.state.lastOffset, this.state.movement);\n }\n computeMovement() {\n this.state.movement = V.sub(this.state.offset, this.state.lastOffset);\n }\n axisIntent(event) {\n const state = this.state;\n const config = this.config;\n if (!state.axis && event) {\n const threshold = typeof config.axisThreshold === 'object' ? config.axisThreshold[getPointerType(event)] : config.axisThreshold;\n state.axis = selectAxis(state._movement, threshold);\n }\n state._blocked = (config.lockDirection || !!config.axis) && !state.axis || !!config.axis && config.axis !== state.axis;\n }\n restrictToAxis(v) {\n if (this.config.axis || this.config.lockDirection) {\n switch (this.state.axis) {\n case 'x':\n v[1] = 0;\n break;\n case 'y':\n v[0] = 0;\n break;\n }\n }\n }\n}\n\nconst identity = v => v;\nconst DEFAULT_RUBBERBAND = 0.15;\nconst commonConfigResolver = {\n enabled(value = true) {\n return value;\n },\n eventOptions(value, _k, config) {\n return _objectSpread2(_objectSpread2({}, config.shared.eventOptions), value);\n },\n preventDefault(value = false) {\n return value;\n },\n triggerAllEvents(value = false) {\n return value;\n },\n rubberband(value = 0) {\n switch (value) {\n case true:\n return [DEFAULT_RUBBERBAND, DEFAULT_RUBBERBAND];\n case false:\n return [0, 0];\n default:\n return V.toVector(value);\n }\n },\n from(value) {\n if (typeof value === 'function') return value;\n if (value != null) return V.toVector(value);\n },\n transform(value, _k, config) {\n const transform = value || config.shared.transform;\n this.hasCustomTransform = !!transform;\n if (process.env.NODE_ENV === 'development') {\n const originalTransform = transform || identity;\n return v => {\n const r = originalTransform(v);\n if (!isFinite(r[0]) || !isFinite(r[1])) {\n console.warn(`[@use-gesture]: config.transform() must produce a valid result, but it was: [${r[0]},${[1]}]`);\n }\n return r;\n };\n }\n return transform || identity;\n },\n threshold(value) {\n return V.toVector(value, 0);\n }\n};\nif (process.env.NODE_ENV === 'development') {\n Object.assign(commonConfigResolver, {\n domTarget(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`domTarget\\` option has been renamed to \\`target\\`.`);\n }\n return NaN;\n },\n lockDirection(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`lockDirection\\` option has been merged with \\`axis\\`. Use it as in \\`{ axis: 'lock' }\\``);\n }\n return NaN;\n },\n initial(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`initial\\` option has been renamed to \\`from\\`.`);\n }\n return NaN;\n }\n });\n}\n\nconst DEFAULT_AXIS_THRESHOLD = 0;\nconst coordinatesConfigResolver = _objectSpread2(_objectSpread2({}, commonConfigResolver), {}, {\n axis(_v, _k, {\n axis\n }) {\n this.lockDirection = axis === 'lock';\n if (!this.lockDirection) return axis;\n },\n axisThreshold(value = DEFAULT_AXIS_THRESHOLD) {\n return value;\n },\n bounds(value = {}) {\n if (typeof value === 'function') {\n return state => coordinatesConfigResolver.bounds(value(state));\n }\n if ('current' in value) {\n return () => value.current;\n }\n if (typeof HTMLElement === 'function' && value instanceof HTMLElement) {\n return value;\n }\n const {\n left = -Infinity,\n right = Infinity,\n top = -Infinity,\n bottom = Infinity\n } = value;\n return [[left, right], [top, bottom]];\n }\n});\n\nconst KEYS_DELTA_MAP = {\n ArrowRight: (displacement, factor = 1) => [displacement * factor, 0],\n ArrowLeft: (displacement, factor = 1) => [-1 * displacement * factor, 0],\n ArrowUp: (displacement, factor = 1) => [0, -1 * displacement * factor],\n ArrowDown: (displacement, factor = 1) => [0, displacement * factor]\n};\nclass DragEngine extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", 'dragging');\n }\n reset() {\n super.reset();\n const state = this.state;\n state._pointerId = undefined;\n state._pointerActive = false;\n state._keyboardActive = false;\n state._preventScroll = false;\n state._delayed = false;\n state.swipe = [0, 0];\n state.tap = false;\n state.canceled = false;\n state.cancel = this.cancel.bind(this);\n }\n setup() {\n const state = this.state;\n if (state._bounds instanceof HTMLElement) {\n const boundRect = state._bounds.getBoundingClientRect();\n const targetRect = state.currentTarget.getBoundingClientRect();\n const _bounds = {\n left: boundRect.left - targetRect.left + state.offset[0],\n right: boundRect.right - targetRect.right + state.offset[0],\n top: boundRect.top - targetRect.top + state.offset[1],\n bottom: boundRect.bottom - targetRect.bottom + state.offset[1]\n };\n state._bounds = coordinatesConfigResolver.bounds(_bounds);\n }\n }\n cancel() {\n const state = this.state;\n if (state.canceled) return;\n state.canceled = true;\n state._active = false;\n setTimeout(() => {\n this.compute();\n this.emit();\n }, 0);\n }\n setActive() {\n this.state._active = this.state._pointerActive || this.state._keyboardActive;\n }\n clean() {\n this.pointerClean();\n this.state._pointerActive = false;\n this.state._keyboardActive = false;\n super.clean();\n }\n pointerDown(event) {\n const config = this.config;\n const state = this.state;\n if (event.buttons != null && (Array.isArray(config.pointerButtons) ? !config.pointerButtons.includes(event.buttons) : config.pointerButtons !== -1 && config.pointerButtons !== event.buttons)) return;\n const ctrlIds = this.ctrl.setEventIds(event);\n if (config.pointerCapture) {\n event.target.setPointerCapture(event.pointerId);\n }\n if (ctrlIds && ctrlIds.size > 1 && state._pointerActive) return;\n this.start(event);\n this.setupPointer(event);\n state._pointerId = pointerId(event);\n state._pointerActive = true;\n this.computeValues(pointerValues(event));\n this.computeInitial();\n if (config.preventScrollAxis && getPointerType(event) !== 'mouse') {\n state._active = false;\n this.setupScrollPrevention(event);\n } else if (config.delay > 0) {\n this.setupDelayTrigger(event);\n if (config.triggerAllEvents) {\n this.compute(event);\n this.emit();\n }\n } else {\n this.startPointerDrag(event);\n }\n }\n startPointerDrag(event) {\n const state = this.state;\n state._active = true;\n state._preventScroll = true;\n state._delayed = false;\n this.compute(event);\n this.emit();\n }\n pointerMove(event) {\n const state = this.state;\n const config = this.config;\n if (!state._pointerActive) return;\n if (state.type === event.type && event.timeStamp === state.timeStamp) return;\n const id = pointerId(event);\n if (state._pointerId !== undefined && id !== state._pointerId) return;\n const _values = pointerValues(event);\n if (document.pointerLockElement === event.target) {\n state._delta = [event.movementX, event.movementY];\n } else {\n state._delta = V.sub(_values, state._values);\n this.computeValues(_values);\n }\n V.addTo(state._movement, state._delta);\n this.compute(event);\n if (state._delayed && state.intentional) {\n this.timeoutStore.remove('dragDelay');\n state.active = false;\n this.startPointerDrag(event);\n return;\n }\n if (config.preventScrollAxis && !state._preventScroll) {\n if (state.axis) {\n if (state.axis === config.preventScrollAxis || config.preventScrollAxis === 'xy') {\n state._active = false;\n this.clean();\n return;\n } else {\n this.timeoutStore.remove('startPointerDrag');\n this.startPointerDrag(event);\n return;\n }\n } else {\n return;\n }\n }\n this.emit();\n }\n pointerUp(event) {\n this.ctrl.setEventIds(event);\n try {\n if (this.config.pointerCapture && event.target.hasPointerCapture(event.pointerId)) {\n ;\n event.target.releasePointerCapture(event.pointerId);\n }\n } catch (_unused) {\n if (process.env.NODE_ENV === 'development') {\n console.warn(`[@use-gesture]: If you see this message, it's likely that you're using an outdated version of \\`@react-three/fiber\\`. \\n\\nPlease upgrade to the latest version.`);\n }\n }\n const state = this.state;\n const config = this.config;\n if (!state._active || !state._pointerActive) return;\n const id = pointerId(event);\n if (state._pointerId !== undefined && id !== state._pointerId) return;\n this.state._pointerActive = false;\n this.setActive();\n this.compute(event);\n const [dx, dy] = state._distance;\n state.tap = dx <= config.tapsThreshold && dy <= config.tapsThreshold;\n if (state.tap && config.filterTaps) {\n state._force = true;\n } else {\n const [_dx, _dy] = state._delta;\n const [_mx, _my] = state._movement;\n const [svx, svy] = config.swipe.velocity;\n const [sx, sy] = config.swipe.distance;\n const sdt = config.swipe.duration;\n if (state.elapsedTime < sdt) {\n const _vx = Math.abs(_dx / state.timeDelta);\n const _vy = Math.abs(_dy / state.timeDelta);\n if (_vx > svx && Math.abs(_mx) > sx) state.swipe[0] = Math.sign(_dx);\n if (_vy > svy && Math.abs(_my) > sy) state.swipe[1] = Math.sign(_dy);\n }\n }\n this.emit();\n }\n pointerClick(event) {\n if (!this.state.tap && event.detail > 0) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n setupPointer(event) {\n const config = this.config;\n const device = config.device;\n if (process.env.NODE_ENV === 'development') {\n try {\n if (device === 'pointer' && config.preventScrollDelay === undefined) {\n const currentTarget = 'uv' in event ? event.sourceEvent.currentTarget : event.currentTarget;\n const style = window.getComputedStyle(currentTarget);\n if (style.touchAction === 'auto') {\n console.warn(`[@use-gesture]: The drag target has its \\`touch-action\\` style property set to \\`auto\\`. It is recommended to add \\`touch-action: 'none'\\` so that the drag gesture behaves correctly on touch-enabled devices. For more information read this: https://use-gesture.netlify.app/docs/extras/#touch-action.\\n\\nThis message will only show in development mode. It won't appear in production. If this is intended, you can ignore it.`, currentTarget);\n }\n }\n } catch (_unused2) {}\n }\n if (config.pointerLock) {\n event.currentTarget.requestPointerLock();\n }\n if (!config.pointerCapture) {\n this.eventStore.add(this.sharedConfig.window, device, 'change', this.pointerMove.bind(this));\n this.eventStore.add(this.sharedConfig.window, device, 'end', this.pointerUp.bind(this));\n this.eventStore.add(this.sharedConfig.window, device, 'cancel', this.pointerUp.bind(this));\n }\n }\n pointerClean() {\n if (this.config.pointerLock && document.pointerLockElement === this.state.currentTarget) {\n document.exitPointerLock();\n }\n }\n preventScroll(event) {\n if (this.state._preventScroll && event.cancelable) {\n event.preventDefault();\n }\n }\n setupScrollPrevention(event) {\n this.state._preventScroll = false;\n persistEvent(event);\n const remove = this.eventStore.add(this.sharedConfig.window, 'touch', 'change', this.preventScroll.bind(this), {\n passive: false\n });\n this.eventStore.add(this.sharedConfig.window, 'touch', 'end', remove);\n this.eventStore.add(this.sharedConfig.window, 'touch', 'cancel', remove);\n this.timeoutStore.add('startPointerDrag', this.startPointerDrag.bind(this), this.config.preventScrollDelay, event);\n }\n setupDelayTrigger(event) {\n this.state._delayed = true;\n this.timeoutStore.add('dragDelay', () => {\n this.state._step = [0, 0];\n this.startPointerDrag(event);\n }, this.config.delay);\n }\n keyDown(event) {\n const deltaFn = KEYS_DELTA_MAP[event.key];\n if (deltaFn) {\n const state = this.state;\n const factor = event.shiftKey ? 10 : event.altKey ? 0.1 : 1;\n this.start(event);\n state._delta = deltaFn(this.config.keyboardDisplacement, factor);\n state._keyboardActive = true;\n V.addTo(state._movement, state._delta);\n this.compute(event);\n this.emit();\n }\n }\n keyUp(event) {\n if (!(event.key in KEYS_DELTA_MAP)) return;\n this.state._keyboardActive = false;\n this.setActive();\n this.compute(event);\n this.emit();\n }\n bind(bindFunction) {\n const device = this.config.device;\n bindFunction(device, 'start', this.pointerDown.bind(this));\n if (this.config.pointerCapture) {\n bindFunction(device, 'change', this.pointerMove.bind(this));\n bindFunction(device, 'end', this.pointerUp.bind(this));\n bindFunction(device, 'cancel', this.pointerUp.bind(this));\n bindFunction('lostPointerCapture', '', this.pointerUp.bind(this));\n }\n if (this.config.keys) {\n bindFunction('key', 'down', this.keyDown.bind(this));\n bindFunction('key', 'up', this.keyUp.bind(this));\n }\n if (this.config.filterTaps) {\n bindFunction('click', '', this.pointerClick.bind(this), {\n capture: true,\n passive: false\n });\n }\n }\n}\nfunction persistEvent(event) {\n 'persist' in event && typeof event.persist === 'function' && event.persist();\n}\n\nconst isBrowser = typeof window !== 'undefined' && window.document && window.document.createElement;\nfunction supportsTouchEvents() {\n return isBrowser && 'ontouchstart' in window;\n}\nfunction isTouchScreen() {\n return supportsTouchEvents() || isBrowser && window.navigator.maxTouchPoints > 1;\n}\nfunction supportsPointerEvents() {\n return isBrowser && 'onpointerdown' in window;\n}\nfunction supportsPointerLock() {\n return isBrowser && 'exitPointerLock' in window.document;\n}\nfunction supportsGestureEvents() {\n try {\n return 'constructor' in GestureEvent;\n } catch (e) {\n return false;\n }\n}\nconst SUPPORT = {\n isBrowser,\n gesture: supportsGestureEvents(),\n touch: isTouchScreen(),\n touchscreen: isTouchScreen(),\n pointer: supportsPointerEvents(),\n pointerLock: supportsPointerLock()\n};\n\nconst DEFAULT_PREVENT_SCROLL_DELAY = 250;\nconst DEFAULT_DRAG_DELAY = 180;\nconst DEFAULT_SWIPE_VELOCITY = 0.5;\nconst DEFAULT_SWIPE_DISTANCE = 50;\nconst DEFAULT_SWIPE_DURATION = 250;\nconst DEFAULT_KEYBOARD_DISPLACEMENT = 10;\nconst DEFAULT_DRAG_AXIS_THRESHOLD = {\n mouse: 0,\n touch: 0,\n pen: 8\n};\nconst dragConfigResolver = _objectSpread2(_objectSpread2({}, coordinatesConfigResolver), {}, {\n device(_v, _k, {\n pointer: {\n touch = false,\n lock = false,\n mouse = false\n } = {}\n }) {\n this.pointerLock = lock && SUPPORT.pointerLock;\n if (SUPPORT.touch && touch) return 'touch';\n if (this.pointerLock) return 'mouse';\n if (SUPPORT.pointer && !mouse) return 'pointer';\n if (SUPPORT.touch) return 'touch';\n return 'mouse';\n },\n preventScrollAxis(value, _k, {\n preventScroll\n }) {\n this.preventScrollDelay = typeof preventScroll === 'number' ? preventScroll : preventScroll || preventScroll === undefined && value ? DEFAULT_PREVENT_SCROLL_DELAY : undefined;\n if (!SUPPORT.touchscreen || preventScroll === false) return undefined;\n return value ? value : preventScroll !== undefined ? 'y' : undefined;\n },\n pointerCapture(_v, _k, {\n pointer: {\n capture = true,\n buttons = 1,\n keys = true\n } = {}\n }) {\n this.pointerButtons = buttons;\n this.keys = keys;\n return !this.pointerLock && this.device === 'pointer' && capture;\n },\n threshold(value, _k, {\n filterTaps = false,\n tapsThreshold = 3,\n axis = undefined\n }) {\n const threshold = V.toVector(value, filterTaps ? tapsThreshold : axis ? 1 : 0);\n this.filterTaps = filterTaps;\n this.tapsThreshold = tapsThreshold;\n return threshold;\n },\n swipe({\n velocity = DEFAULT_SWIPE_VELOCITY,\n distance = DEFAULT_SWIPE_DISTANCE,\n duration = DEFAULT_SWIPE_DURATION\n } = {}) {\n return {\n velocity: this.transform(V.toVector(velocity)),\n distance: this.transform(V.toVector(distance)),\n duration\n };\n },\n delay(value = 0) {\n switch (value) {\n case true:\n return DEFAULT_DRAG_DELAY;\n case false:\n return 0;\n default:\n return value;\n }\n },\n axisThreshold(value) {\n if (!value) return DEFAULT_DRAG_AXIS_THRESHOLD;\n return _objectSpread2(_objectSpread2({}, DEFAULT_DRAG_AXIS_THRESHOLD), value);\n },\n keyboardDisplacement(value = DEFAULT_KEYBOARD_DISPLACEMENT) {\n return value;\n }\n});\nif (process.env.NODE_ENV === 'development') {\n Object.assign(dragConfigResolver, {\n useTouch(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`useTouch\\` option has been renamed to \\`pointer.touch\\`. Use it as in \\`{ pointer: { touch: true } }\\`.`);\n }\n return NaN;\n },\n experimental_preventWindowScrollY(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`experimental_preventWindowScrollY\\` option has been renamed to \\`preventScroll\\`.`);\n }\n return NaN;\n },\n swipeVelocity(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`swipeVelocity\\` option has been renamed to \\`swipe.velocity\\`. Use it as in \\`{ swipe: { velocity: 0.5 } }\\`.`);\n }\n return NaN;\n },\n swipeDistance(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`swipeDistance\\` option has been renamed to \\`swipe.distance\\`. Use it as in \\`{ swipe: { distance: 50 } }\\`.`);\n }\n return NaN;\n },\n swipeDuration(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`swipeDuration\\` option has been renamed to \\`swipe.duration\\`. Use it as in \\`{ swipe: { duration: 250 } }\\`.`);\n }\n return NaN;\n }\n });\n}\n\nfunction clampStateInternalMovementToBounds(state) {\n const [ox, oy] = state.overflow;\n const [dx, dy] = state._delta;\n const [dirx, diry] = state._direction;\n if (ox < 0 && dx > 0 && dirx < 0 || ox > 0 && dx < 0 && dirx > 0) {\n state._movement[0] = state._movementBound[0];\n }\n if (oy < 0 && dy > 0 && diry < 0 || oy > 0 && dy < 0 && diry > 0) {\n state._movement[1] = state._movementBound[1];\n }\n}\n\nconst SCALE_ANGLE_RATIO_INTENT_DEG = 30;\nconst PINCH_WHEEL_RATIO = 100;\nclass PinchEngine extends Engine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", 'pinching');\n _defineProperty(this, \"aliasKey\", 'da');\n }\n init() {\n this.state.offset = [1, 0];\n this.state.lastOffset = [1, 0];\n this.state._pointerEvents = new Map();\n }\n reset() {\n super.reset();\n const state = this.state;\n state._touchIds = [];\n state.canceled = false;\n state.cancel = this.cancel.bind(this);\n state.turns = 0;\n }\n computeOffset() {\n const {\n type,\n movement,\n lastOffset\n } = this.state;\n if (type === 'wheel') {\n this.state.offset = V.add(movement, lastOffset);\n } else {\n this.state.offset = [(1 + movement[0]) * lastOffset[0], movement[1] + lastOffset[1]];\n }\n }\n computeMovement() {\n const {\n offset,\n lastOffset\n } = this.state;\n this.state.movement = [offset[0] / lastOffset[0], offset[1] - lastOffset[1]];\n }\n axisIntent() {\n const state = this.state;\n const [_m0, _m1] = state._movement;\n if (!state.axis) {\n const axisMovementDifference = Math.abs(_m0) * SCALE_ANGLE_RATIO_INTENT_DEG - Math.abs(_m1);\n if (axisMovementDifference < 0) state.axis = 'angle';else if (axisMovementDifference > 0) state.axis = 'scale';\n }\n }\n restrictToAxis(v) {\n if (this.config.lockDirection) {\n if (this.state.axis === 'scale') v[1] = 0;else if (this.state.axis === 'angle') v[0] = 0;\n }\n }\n cancel() {\n const state = this.state;\n if (state.canceled) return;\n setTimeout(() => {\n state.canceled = true;\n state._active = false;\n this.compute();\n this.emit();\n }, 0);\n }\n touchStart(event) {\n this.ctrl.setEventIds(event);\n const state = this.state;\n const ctrlTouchIds = this.ctrl.touchIds;\n if (state._active) {\n if (state._touchIds.every(id => ctrlTouchIds.has(id))) return;\n }\n if (ctrlTouchIds.size < 2) return;\n this.start(event);\n state._touchIds = Array.from(ctrlTouchIds).slice(0, 2);\n const payload = touchDistanceAngle(event, state._touchIds);\n if (!payload) return;\n this.pinchStart(event, payload);\n }\n pointerStart(event) {\n if (event.buttons != null && event.buttons % 2 !== 1) return;\n this.ctrl.setEventIds(event);\n event.target.setPointerCapture(event.pointerId);\n const state = this.state;\n const _pointerEvents = state._pointerEvents;\n const ctrlPointerIds = this.ctrl.pointerIds;\n if (state._active) {\n if (Array.from(_pointerEvents.keys()).every(id => ctrlPointerIds.has(id))) return;\n }\n if (_pointerEvents.size < 2) {\n _pointerEvents.set(event.pointerId, event);\n }\n if (state._pointerEvents.size < 2) return;\n this.start(event);\n const payload = distanceAngle(...Array.from(_pointerEvents.values()));\n if (!payload) return;\n this.pinchStart(event, payload);\n }\n pinchStart(event, payload) {\n const state = this.state;\n state.origin = payload.origin;\n this.computeValues([payload.distance, payload.angle]);\n this.computeInitial();\n this.compute(event);\n this.emit();\n }\n touchMove(event) {\n if (!this.state._active) return;\n const payload = touchDistanceAngle(event, this.state._touchIds);\n if (!payload) return;\n this.pinchMove(event, payload);\n }\n pointerMove(event) {\n const _pointerEvents = this.state._pointerEvents;\n if (_pointerEvents.has(event.pointerId)) {\n _pointerEvents.set(event.pointerId, event);\n }\n if (!this.state._active) return;\n const payload = distanceAngle(...Array.from(_pointerEvents.values()));\n if (!payload) return;\n this.pinchMove(event, payload);\n }\n pinchMove(event, payload) {\n const state = this.state;\n const prev_a = state._values[1];\n const delta_a = payload.angle - prev_a;\n let delta_turns = 0;\n if (Math.abs(delta_a) > 270) delta_turns += Math.sign(delta_a);\n this.computeValues([payload.distance, payload.angle - 360 * delta_turns]);\n state.origin = payload.origin;\n state.turns = delta_turns;\n state._movement = [state._values[0] / state._initial[0] - 1, state._values[1] - state._initial[1]];\n this.compute(event);\n this.emit();\n }\n touchEnd(event) {\n this.ctrl.setEventIds(event);\n if (!this.state._active) return;\n if (this.state._touchIds.some(id => !this.ctrl.touchIds.has(id))) {\n this.state._active = false;\n this.compute(event);\n this.emit();\n }\n }\n pointerEnd(event) {\n const state = this.state;\n this.ctrl.setEventIds(event);\n try {\n event.target.releasePointerCapture(event.pointerId);\n } catch (_unused) {}\n if (state._pointerEvents.has(event.pointerId)) {\n state._pointerEvents.delete(event.pointerId);\n }\n if (!state._active) return;\n if (state._pointerEvents.size < 2) {\n state._active = false;\n this.compute(event);\n this.emit();\n }\n }\n gestureStart(event) {\n if (event.cancelable) event.preventDefault();\n const state = this.state;\n if (state._active) return;\n this.start(event);\n this.computeValues([event.scale, event.rotation]);\n state.origin = [event.clientX, event.clientY];\n this.compute(event);\n this.emit();\n }\n gestureMove(event) {\n if (event.cancelable) event.preventDefault();\n if (!this.state._active) return;\n const state = this.state;\n this.computeValues([event.scale, event.rotation]);\n state.origin = [event.clientX, event.clientY];\n const _previousMovement = state._movement;\n state._movement = [event.scale - 1, event.rotation];\n state._delta = V.sub(state._movement, _previousMovement);\n this.compute(event);\n this.emit();\n }\n gestureEnd(event) {\n if (!this.state._active) return;\n this.state._active = false;\n this.compute(event);\n this.emit();\n }\n wheel(event) {\n const modifierKey = this.config.modifierKey;\n if (modifierKey && !event[modifierKey]) return;\n if (!this.state._active) this.wheelStart(event);else this.wheelChange(event);\n this.timeoutStore.add('wheelEnd', this.wheelEnd.bind(this));\n }\n wheelStart(event) {\n this.start(event);\n this.wheelChange(event);\n }\n wheelChange(event) {\n const isR3f = ('uv' in event);\n if (!isR3f) {\n if (event.cancelable) {\n event.preventDefault();\n }\n if (process.env.NODE_ENV === 'development' && !event.defaultPrevented) {\n console.warn(`[@use-gesture]: To properly support zoom on trackpads, try using the \\`target\\` option.\\n\\nThis message will only appear in development mode.`);\n }\n }\n const state = this.state;\n state._delta = [-wheelValues(event)[1] / PINCH_WHEEL_RATIO * state.offset[0], 0];\n V.addTo(state._movement, state._delta);\n clampStateInternalMovementToBounds(state);\n this.state.origin = [event.clientX, event.clientY];\n this.compute(event);\n this.emit();\n }\n wheelEnd() {\n if (!this.state._active) return;\n this.state._active = false;\n this.compute();\n this.emit();\n }\n bind(bindFunction) {\n const device = this.config.device;\n if (!!device) {\n bindFunction(device, 'start', this[device + 'Start'].bind(this));\n bindFunction(device, 'change', this[device + 'Move'].bind(this));\n bindFunction(device, 'end', this[device + 'End'].bind(this));\n bindFunction(device, 'cancel', this[device + 'End'].bind(this));\n }\n if (this.config.pinchOnWheel) {\n bindFunction('wheel', '', this.wheel.bind(this), {\n passive: false\n });\n }\n }\n}\n\nconst pinchConfigResolver = _objectSpread2(_objectSpread2({}, commonConfigResolver), {}, {\n device(_v, _k, {\n shared,\n pointer: {\n touch = false\n } = {}\n }) {\n const sharedConfig = shared;\n if (sharedConfig.target && !SUPPORT.touch && SUPPORT.gesture) return 'gesture';\n if (SUPPORT.touch && touch) return 'touch';\n if (SUPPORT.touchscreen) {\n if (SUPPORT.pointer) return 'pointer';\n if (SUPPORT.touch) return 'touch';\n }\n },\n bounds(_v, _k, {\n scaleBounds = {},\n angleBounds = {}\n }) {\n const _scaleBounds = state => {\n const D = assignDefault(call(scaleBounds, state), {\n min: -Infinity,\n max: Infinity\n });\n return [D.min, D.max];\n };\n const _angleBounds = state => {\n const A = assignDefault(call(angleBounds, state), {\n min: -Infinity,\n max: Infinity\n });\n return [A.min, A.max];\n };\n if (typeof scaleBounds !== 'function' && typeof angleBounds !== 'function') return [_scaleBounds(), _angleBounds()];\n return state => [_scaleBounds(state), _angleBounds(state)];\n },\n threshold(value, _k, config) {\n this.lockDirection = config.axis === 'lock';\n const threshold = V.toVector(value, this.lockDirection ? [0.1, 3] : 0);\n return threshold;\n },\n modifierKey(value) {\n if (value === undefined) return 'ctrlKey';\n return value;\n },\n pinchOnWheel(value = true) {\n return value;\n }\n});\n\nclass MoveEngine extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", 'moving');\n }\n move(event) {\n if (this.config.mouseOnly && event.pointerType !== 'mouse') return;\n if (!this.state._active) this.moveStart(event);else this.moveChange(event);\n this.timeoutStore.add('moveEnd', this.moveEnd.bind(this));\n }\n moveStart(event) {\n this.start(event);\n this.computeValues(pointerValues(event));\n this.compute(event);\n this.computeInitial();\n this.emit();\n }\n moveChange(event) {\n if (!this.state._active) return;\n const values = pointerValues(event);\n const state = this.state;\n state._delta = V.sub(values, state._values);\n V.addTo(state._movement, state._delta);\n this.computeValues(values);\n this.compute(event);\n this.emit();\n }\n moveEnd(event) {\n if (!this.state._active) return;\n this.state._active = false;\n this.compute(event);\n this.emit();\n }\n bind(bindFunction) {\n bindFunction('pointer', 'change', this.move.bind(this));\n bindFunction('pointer', 'leave', this.moveEnd.bind(this));\n }\n}\n\nconst moveConfigResolver = _objectSpread2(_objectSpread2({}, coordinatesConfigResolver), {}, {\n mouseOnly: (value = true) => value\n});\n\nclass ScrollEngine extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", 'scrolling');\n }\n scroll(event) {\n if (!this.state._active) this.start(event);\n this.scrollChange(event);\n this.timeoutStore.add('scrollEnd', this.scrollEnd.bind(this));\n }\n scrollChange(event) {\n if (event.cancelable) event.preventDefault();\n const state = this.state;\n const values = scrollValues(event);\n state._delta = V.sub(values, state._values);\n V.addTo(state._movement, state._delta);\n this.computeValues(values);\n this.compute(event);\n this.emit();\n }\n scrollEnd() {\n if (!this.state._active) return;\n this.state._active = false;\n this.compute();\n this.emit();\n }\n bind(bindFunction) {\n bindFunction('scroll', '', this.scroll.bind(this));\n }\n}\n\nconst scrollConfigResolver = coordinatesConfigResolver;\n\nclass WheelEngine extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", 'wheeling');\n }\n wheel(event) {\n if (!this.state._active) this.start(event);\n this.wheelChange(event);\n this.timeoutStore.add('wheelEnd', this.wheelEnd.bind(this));\n }\n wheelChange(event) {\n const state = this.state;\n state._delta = wheelValues(event);\n V.addTo(state._movement, state._delta);\n clampStateInternalMovementToBounds(state);\n this.compute(event);\n this.emit();\n }\n wheelEnd() {\n if (!this.state._active) return;\n this.state._active = false;\n this.compute();\n this.emit();\n }\n bind(bindFunction) {\n bindFunction('wheel', '', this.wheel.bind(this));\n }\n}\n\nconst wheelConfigResolver = coordinatesConfigResolver;\n\nclass HoverEngine extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", 'hovering');\n }\n enter(event) {\n if (this.config.mouseOnly && event.pointerType !== 'mouse') return;\n this.start(event);\n this.computeValues(pointerValues(event));\n this.compute(event);\n this.emit();\n }\n leave(event) {\n if (this.config.mouseOnly && event.pointerType !== 'mouse') return;\n const state = this.state;\n if (!state._active) return;\n state._active = false;\n const values = pointerValues(event);\n state._movement = state._delta = V.sub(values, state._values);\n this.computeValues(values);\n this.compute(event);\n state.delta = state.movement;\n this.emit();\n }\n bind(bindFunction) {\n bindFunction('pointer', 'enter', this.enter.bind(this));\n bindFunction('pointer', 'leave', this.leave.bind(this));\n }\n}\n\nconst hoverConfigResolver = _objectSpread2(_objectSpread2({}, coordinatesConfigResolver), {}, {\n mouseOnly: (value = true) => value\n});\n\nconst EngineMap = new Map();\nconst ConfigResolverMap = new Map();\nfunction registerAction(action) {\n EngineMap.set(action.key, action.engine);\n ConfigResolverMap.set(action.key, action.resolver);\n}\nconst dragAction = {\n key: 'drag',\n engine: DragEngine,\n resolver: dragConfigResolver\n};\nconst hoverAction = {\n key: 'hover',\n engine: HoverEngine,\n resolver: hoverConfigResolver\n};\nconst moveAction = {\n key: 'move',\n engine: MoveEngine,\n resolver: moveConfigResolver\n};\nconst pinchAction = {\n key: 'pinch',\n engine: PinchEngine,\n resolver: pinchConfigResolver\n};\nconst scrollAction = {\n key: 'scroll',\n engine: ScrollEngine,\n resolver: scrollConfigResolver\n};\nconst wheelAction = {\n key: 'wheel',\n engine: WheelEngine,\n resolver: wheelConfigResolver\n};\n\nexport { ConfigResolverMap as C, EngineMap as E, SUPPORT as S, _objectSpread2 as _, _defineProperty as a, touchIds as b, chain as c, toHandlerProp as d, dragAction as e, pinchAction as f, hoverAction as h, isTouch as i, moveAction as m, parseProp as p, registerAction as r, scrollAction as s, toDomEventType as t, wheelAction as w };\n","import { S as SUPPORT, C as ConfigResolverMap, _ as _objectSpread2, a as _defineProperty, t as toDomEventType, i as isTouch, b as touchIds, E as EngineMap, c as chain, p as parseProp, d as toHandlerProp } from './actions-94b581a0.esm.js';\nimport './maths-0ab39ae9.esm.js';\n\nfunction _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}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\n\nconst sharedConfigResolver = {\n target(value) {\n if (value) {\n return () => 'current' in value ? value.current : value;\n }\n return undefined;\n },\n enabled(value = true) {\n return value;\n },\n window(value = SUPPORT.isBrowser ? window : undefined) {\n return value;\n },\n eventOptions({\n passive = true,\n capture = false\n } = {}) {\n return {\n passive,\n capture\n };\n },\n transform(value) {\n return value;\n }\n};\n\nconst _excluded = [\"target\", \"eventOptions\", \"window\", \"enabled\", \"transform\"];\nfunction resolveWith(config = {}, resolvers) {\n const result = {};\n for (const [key, resolver] of Object.entries(resolvers)) {\n switch (typeof resolver) {\n case 'function':\n if (process.env.NODE_ENV === 'development') {\n const r = resolver.call(result, config[key], key, config);\n if (!Number.isNaN(r)) result[key] = r;\n } else {\n result[key] = resolver.call(result, config[key], key, config);\n }\n break;\n case 'object':\n result[key] = resolveWith(config[key], resolver);\n break;\n case 'boolean':\n if (resolver) result[key] = config[key];\n break;\n }\n }\n return result;\n}\nfunction parse(newConfig, gestureKey, _config = {}) {\n const _ref = newConfig,\n {\n target,\n eventOptions,\n window,\n enabled,\n transform\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n _config.shared = resolveWith({\n target,\n eventOptions,\n window,\n enabled,\n transform\n }, sharedConfigResolver);\n if (gestureKey) {\n const resolver = ConfigResolverMap.get(gestureKey);\n _config[gestureKey] = resolveWith(_objectSpread2({\n shared: _config.shared\n }, rest), resolver);\n } else {\n for (const key in rest) {\n const resolver = ConfigResolverMap.get(key);\n if (resolver) {\n _config[key] = resolveWith(_objectSpread2({\n shared: _config.shared\n }, rest[key]), resolver);\n } else if (process.env.NODE_ENV === 'development') {\n if (!['drag', 'pinch', 'scroll', 'wheel', 'move', 'hover'].includes(key)) {\n if (key === 'domTarget') {\n throw Error(`[@use-gesture]: \\`domTarget\\` option has been renamed to \\`target\\`.`);\n }\n console.warn(`[@use-gesture]: Unknown config key \\`${key}\\` was used. Please read the documentation for further information.`);\n }\n }\n }\n }\n return _config;\n}\n\nclass EventStore {\n constructor(ctrl, gestureKey) {\n _defineProperty(this, \"_listeners\", new Set());\n this._ctrl = ctrl;\n this._gestureKey = gestureKey;\n }\n add(element, device, action, handler, options) {\n const listeners = this._listeners;\n const type = toDomEventType(device, action);\n const _options = this._gestureKey ? this._ctrl.config[this._gestureKey].eventOptions : {};\n const eventOptions = _objectSpread2(_objectSpread2({}, _options), options);\n element.addEventListener(type, handler, eventOptions);\n const remove = () => {\n element.removeEventListener(type, handler, eventOptions);\n listeners.delete(remove);\n };\n listeners.add(remove);\n return remove;\n }\n clean() {\n this._listeners.forEach(remove => remove());\n this._listeners.clear();\n }\n}\n\nclass TimeoutStore {\n constructor() {\n _defineProperty(this, \"_timeouts\", new Map());\n }\n add(key, callback, ms = 140, ...args) {\n this.remove(key);\n this._timeouts.set(key, window.setTimeout(callback, ms, ...args));\n }\n remove(key) {\n const timeout = this._timeouts.get(key);\n if (timeout) window.clearTimeout(timeout);\n }\n clean() {\n this._timeouts.forEach(timeout => void window.clearTimeout(timeout));\n this._timeouts.clear();\n }\n}\n\nclass Controller {\n constructor(handlers) {\n _defineProperty(this, \"gestures\", new Set());\n _defineProperty(this, \"_targetEventStore\", new EventStore(this));\n _defineProperty(this, \"gestureEventStores\", {});\n _defineProperty(this, \"gestureTimeoutStores\", {});\n _defineProperty(this, \"handlers\", {});\n _defineProperty(this, \"config\", {});\n _defineProperty(this, \"pointerIds\", new Set());\n _defineProperty(this, \"touchIds\", new Set());\n _defineProperty(this, \"state\", {\n shared: {\n shiftKey: false,\n metaKey: false,\n ctrlKey: false,\n altKey: false\n }\n });\n resolveGestures(this, handlers);\n }\n setEventIds(event) {\n if (isTouch(event)) {\n this.touchIds = new Set(touchIds(event));\n return this.touchIds;\n } else if ('pointerId' in event) {\n if (event.type === 'pointerup' || event.type === 'pointercancel') this.pointerIds.delete(event.pointerId);else if (event.type === 'pointerdown') this.pointerIds.add(event.pointerId);\n return this.pointerIds;\n }\n }\n applyHandlers(handlers, nativeHandlers) {\n this.handlers = handlers;\n this.nativeHandlers = nativeHandlers;\n }\n applyConfig(config, gestureKey) {\n this.config = parse(config, gestureKey, this.config);\n }\n clean() {\n this._targetEventStore.clean();\n for (const key of this.gestures) {\n this.gestureEventStores[key].clean();\n this.gestureTimeoutStores[key].clean();\n }\n }\n effect() {\n if (this.config.shared.target) this.bind();\n return () => this._targetEventStore.clean();\n }\n bind(...args) {\n const sharedConfig = this.config.shared;\n const props = {};\n let target;\n if (sharedConfig.target) {\n target = sharedConfig.target();\n if (!target) return;\n }\n if (sharedConfig.enabled) {\n for (const gestureKey of this.gestures) {\n const gestureConfig = this.config[gestureKey];\n const bindFunction = bindToProps(props, gestureConfig.eventOptions, !!target);\n if (gestureConfig.enabled) {\n const Engine = EngineMap.get(gestureKey);\n new Engine(this, args, gestureKey).bind(bindFunction);\n }\n }\n const nativeBindFunction = bindToProps(props, sharedConfig.eventOptions, !!target);\n for (const eventKey in this.nativeHandlers) {\n nativeBindFunction(eventKey, '', event => this.nativeHandlers[eventKey](_objectSpread2(_objectSpread2({}, this.state.shared), {}, {\n event,\n args\n })), undefined, true);\n }\n }\n for (const handlerProp in props) {\n props[handlerProp] = chain(...props[handlerProp]);\n }\n if (!target) return props;\n for (const handlerProp in props) {\n const {\n device,\n capture,\n passive\n } = parseProp(handlerProp);\n this._targetEventStore.add(target, device, '', props[handlerProp], {\n capture,\n passive\n });\n }\n }\n}\nfunction setupGesture(ctrl, gestureKey) {\n ctrl.gestures.add(gestureKey);\n ctrl.gestureEventStores[gestureKey] = new EventStore(ctrl, gestureKey);\n ctrl.gestureTimeoutStores[gestureKey] = new TimeoutStore();\n}\nfunction resolveGestures(ctrl, internalHandlers) {\n if (internalHandlers.drag) setupGesture(ctrl, 'drag');\n if (internalHandlers.wheel) setupGesture(ctrl, 'wheel');\n if (internalHandlers.scroll) setupGesture(ctrl, 'scroll');\n if (internalHandlers.move) setupGesture(ctrl, 'move');\n if (internalHandlers.pinch) setupGesture(ctrl, 'pinch');\n if (internalHandlers.hover) setupGesture(ctrl, 'hover');\n}\nconst bindToProps = (props, eventOptions, withPassiveOption) => (device, action, handler, options = {}, isNative = false) => {\n var _options$capture, _options$passive;\n const capture = (_options$capture = options.capture) !== null && _options$capture !== void 0 ? _options$capture : eventOptions.capture;\n const passive = (_options$passive = options.passive) !== null && _options$passive !== void 0 ? _options$passive : eventOptions.passive;\n let handlerProp = isNative ? device : toHandlerProp(device, action, capture);\n if (withPassiveOption && passive) handlerProp += 'Passive';\n props[handlerProp] = props[handlerProp] || [];\n props[handlerProp].push(handler);\n};\n\nconst RE_NOT_NATIVE = /^on(Drag|Wheel|Scroll|Move|Pinch|Hover)/;\nfunction sortHandlers(_handlers) {\n const native = {};\n const handlers = {};\n const actions = new Set();\n for (let key in _handlers) {\n if (RE_NOT_NATIVE.test(key)) {\n actions.add(RegExp.lastMatch);\n handlers[key] = _handlers[key];\n } else {\n native[key] = _handlers[key];\n }\n }\n return [handlers, native, actions];\n}\nfunction registerGesture(actions, handlers, handlerKey, key, internalHandlers, config) {\n if (!actions.has(handlerKey)) return;\n if (!EngineMap.has(key)) {\n if (process.env.NODE_ENV === 'development') {\n console.warn(`[@use-gesture]: You've created a custom handler that that uses the \\`${key}\\` gesture but isn't properly configured.\\n\\nPlease add \\`${key}Action\\` when creating your handler.`);\n }\n return;\n }\n const startKey = handlerKey + 'Start';\n const endKey = handlerKey + 'End';\n const fn = state => {\n let memo = undefined;\n if (state.first && startKey in handlers) handlers[startKey](state);\n if (handlerKey in handlers) memo = handlers[handlerKey](state);\n if (state.last && endKey in handlers) handlers[endKey](state);\n return memo;\n };\n internalHandlers[key] = fn;\n config[key] = config[key] || {};\n}\nfunction parseMergedHandlers(mergedHandlers, mergedConfig) {\n const [handlers, nativeHandlers, actions] = sortHandlers(mergedHandlers);\n const internalHandlers = {};\n registerGesture(actions, handlers, 'onDrag', 'drag', internalHandlers, mergedConfig);\n registerGesture(actions, handlers, 'onWheel', 'wheel', internalHandlers, mergedConfig);\n registerGesture(actions, handlers, 'onScroll', 'scroll', internalHandlers, mergedConfig);\n registerGesture(actions, handlers, 'onPinch', 'pinch', internalHandlers, mergedConfig);\n registerGesture(actions, handlers, 'onMove', 'move', internalHandlers, mergedConfig);\n registerGesture(actions, handlers, 'onHover', 'hover', internalHandlers, mergedConfig);\n return {\n handlers: internalHandlers,\n config: mergedConfig,\n nativeHandlers\n };\n}\n\nexport { Controller, parseMergedHandlers };\n","import { registerAction, dragAction, pinchAction, wheelAction, scrollAction, moveAction, hoverAction } from '@use-gesture/core/actions';\nexport * from '@use-gesture/core/actions';\nimport React from 'react';\nimport { Controller, parseMergedHandlers } from '@use-gesture/core';\nexport * from '@use-gesture/core/utils';\nexport * from '@use-gesture/core/types';\n\nfunction useRecognizers(handlers, config = {}, gestureKey, nativeHandlers) {\n const ctrl = React.useMemo(() => new Controller(handlers), []);\n ctrl.applyHandlers(handlers, nativeHandlers);\n ctrl.applyConfig(config, gestureKey);\n React.useEffect(ctrl.effect.bind(ctrl));\n React.useEffect(() => {\n return ctrl.clean.bind(ctrl);\n }, []);\n if (config.target === undefined) {\n return ctrl.bind.bind(ctrl);\n }\n return undefined;\n}\n\nfunction useDrag(handler, config) {\n registerAction(dragAction);\n return useRecognizers({\n drag: handler\n }, config || {}, 'drag');\n}\n\nfunction usePinch(handler, config) {\n registerAction(pinchAction);\n return useRecognizers({\n pinch: handler\n }, config || {}, 'pinch');\n}\n\nfunction useWheel(handler, config) {\n registerAction(wheelAction);\n return useRecognizers({\n wheel: handler\n }, config || {}, 'wheel');\n}\n\nfunction useScroll(handler, config) {\n registerAction(scrollAction);\n return useRecognizers({\n scroll: handler\n }, config || {}, 'scroll');\n}\n\nfunction useMove(handler, config) {\n registerAction(moveAction);\n return useRecognizers({\n move: handler\n }, config || {}, 'move');\n}\n\nfunction useHover(handler, config) {\n registerAction(hoverAction);\n return useRecognizers({\n hover: handler\n }, config || {}, 'hover');\n}\n\nfunction createUseGesture(actions) {\n actions.forEach(registerAction);\n return function useGesture(_handlers, _config) {\n const {\n handlers,\n nativeHandlers,\n config\n } = parseMergedHandlers(_handlers, _config || {});\n return useRecognizers(handlers, config, undefined, nativeHandlers);\n };\n}\n\nfunction useGesture(handlers, config) {\n const hook = createUseGesture([dragAction, pinchAction, scrollAction, wheelAction, moveAction, hoverAction]);\n return hook(handlers, config || {});\n}\n\nexport { createUseGesture, useDrag, useGesture, useHover, useMove, usePinch, useScroll, useWheel };\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export var COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind: kind,\n value: value,\n error: error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { createErrorClass } from './createErrorClass';\nexport var ObjectUnsubscribedError = createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { __extends, __values } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(function () {\n _this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n AnonymousSubject.prototype.error = function (err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n AnonymousSubject.prototype.complete = function () {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import { useEffect, useRef } from 'react'\nimport { Subject } from 'rxjs'\nimport {\n UseSpringCarouselEventsObservableProps,\n UseTransitionCarouselEventsObservableProps,\n ObservableCallbackFn,\n EmitObservableFn,\n} from '../types'\n\nexport function useCustomEventsModule() {\n const eventsObserverRef = useRef(\n new Subject<\n T extends 'use-spring'\n ? UseSpringCarouselEventsObservableProps\n : UseTransitionCarouselEventsObservableProps\n >(),\n )\n\n function useListenToCustomEvent(fn: ObservableCallbackFn) {\n useEffect(() => {\n const subscribe = eventsObserverRef.current.subscribe(fn)\n return () => subscribe.unsubscribe()\n }, [fn])\n }\n\n const emitObservable: EmitObservableFn = data => {\n eventsObserverRef.current.next(data)\n }\n\n return {\n useListenToCustomEvent,\n emitObservable,\n }\n}\n","import { useRef, useLayoutEffect, useEffect } from 'react'\n\ntype Callback = () => void | (() => void)\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect\n\nfunction useIsomorphicMount(callback: Callback) {\n const isMounted = useRef(false)\n\n useIsomorphicLayoutEffect(() => {\n if (!isMounted.current) {\n const clean = callback()\n isMounted.current = true\n\n return () => {\n clean && clean()\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n}\n\nexport { useIsomorphicLayoutEffect, useIsomorphicMount }\n","import { useRef, createContext, useContext } from 'react'\nimport { useSpring, config, animated } from 'react-spring'\nimport { useDrag } from '@use-gesture/react'\nimport { useCustomEventsModule, useFullscreenModule, useThumbsModule } from '../modules'\nimport {\n SlideToItemFnProps,\n SlideActionType,\n UseSpringFixedSlideTypeReturnProps,\n} from '../types'\nimport { useIsomorphicLayoutEffect, useIsomorphicMount } from '../utils'\nimport {\n UseSpringCarouselProps,\n ReactSpringCarouselItemWithThumbs,\n UseSpringFluidSlideTypeReturnProps,\n UseSpringCarouselBaseProps,\n UseSpringCarouselWithThumbs,\n UseSpringCarouselFluidType,\n DisableGesturesProps,\n WithLoopProps,\n UseSpringCarouselWithNoThumbs,\n EnableGesturesProps,\n WithNoLoop,\n UseSpringCarouselFixedSlideType,\n} from '../types/useSpringCarousel'\n\ntype ReturnType = T extends 'fixed'\n ? UseSpringFixedSlideTypeReturnProps\n : UseSpringFluidSlideTypeReturnProps\ntype ContextTypes = Omit, 'carouselFragment' | 'thumbsFragment'>\n\nconst Context = createContext | undefined>(undefined)\n\nconst defaultDragSpringConfig = {\n ...config.default,\n mass: 1,\n velocity: 0,\n}\n\nfunction useSpringCarousel(\n props: UseSpringCarouselBaseProps &\n UseSpringCarouselFluidType &\n (UseSpringCarouselWithThumbs | UseSpringCarouselWithNoThumbs) &\n (DisableGesturesProps | EnableGesturesProps) &\n (WithLoopProps | WithNoLoop),\n): ReturnType<'fluid'>\nfunction useSpringCarousel(\n props: UseSpringCarouselBaseProps &\n UseSpringCarouselFixedSlideType &\n (UseSpringCarouselWithThumbs | UseSpringCarouselWithNoThumbs) &\n (DisableGesturesProps | EnableGesturesProps) &\n (WithLoopProps | WithNoLoop),\n): ReturnType<'fixed'>\n\nfunction useSpringCarousel({\n items,\n withLoop = false,\n draggingSlideTreshold,\n springConfig = config.default,\n shouldResizeOnWindowResize = true,\n withThumbs = false,\n enableThumbsWrapperScroll = true,\n slideWhenThresholdIsReached = true,\n carouselSlideAxis = 'x',\n thumbsSlideAxis = 'x',\n prepareThumbsData,\n initialActiveItem = 0,\n initialStartingPosition,\n disableGestures = false,\n gutter = 0,\n startEndGutter = 0,\n touchAction,\n slideAmount,\n freeScroll = false,\n enableFreeScrollDrag,\n itemsPerSlide = 1,\n slideType = 'fixed',\n}: UseSpringCarouselProps): ReturnType<'fixed' | 'fluid'> {\n function getItems() {\n if (withLoop) {\n if (items.length === itemsPerSlide) {\n return [...items, ...items, ...items, ...items, ...items]\n }\n return [...items, ...items, ...items]\n }\n return items\n }\n\n const isFirstMount = useRef(true)\n const slideActionType = useRef('initial' as SlideActionType)\n const internalItems = getItems()\n const activeItem = useRef(initialActiveItem)\n const mainCarouselWrapperRef = useRef(null)\n const carouselTrackWrapperRef = useRef(null)\n const isDragging = useRef(false)\n const isAnimating = useRef(false)\n const windowIsHidden = useRef(false)\n const fluidTotalWrapperScrollValue = useRef(0)\n const slideEndReached = useRef(false)\n const currentWindowWidth = useRef(0)\n const initialWindowWidth = useRef(0)\n const prevSlidedValue = useRef(0)\n const prevItems = useRef(items)\n\n /**\n * Instead of raw values, we store it in\n * useRef for performances reasons during external rerenders\n */\n const draggingSlideTresholdRef = useRef(draggingSlideTreshold ?? 0)\n const itemsPerSlideRef = useRef(itemsPerSlide)\n const gutterRef = useRef(gutter)\n const startEndGutterRef = useRef(startEndGutter)\n const initialActiveItemRef = useRef(initialActiveItem)\n const initialStartingPositionRef = useRef(initialStartingPosition)\n const carouselSlideAxisRef = useRef(carouselSlideAxis)\n\n /**\n * Update inner values during external rerenders!\n */\n itemsPerSlideRef.current = itemsPerSlide\n gutterRef.current = gutter\n startEndGutterRef.current = startEndGutter\n initialActiveItemRef.current = initialActiveItem\n initialStartingPositionRef.current = initialStartingPosition\n carouselSlideAxisRef.current = carouselSlideAxis\n\n const [carouselStyles, setCarouselStyles] = useSpring(() => ({\n y: 0,\n x: 0,\n onChange: ({ value }) => {\n if (mainCarouselWrapperRef.current && freeScroll) {\n mainCarouselWrapperRef.current[\n carouselSlideAxisRef.current === 'x' ? 'scrollLeft' : 'scrollTop'\n ] = Math.abs(value[carouselSlideAxisRef.current])\n }\n },\n }))\n\n useIsomorphicLayoutEffect(() => {\n if (draggingSlideTreshold) {\n draggingSlideTresholdRef.current = draggingSlideTreshold\n } else {\n draggingSlideTresholdRef.current = Math.floor(getSlideValue() / 2 / 2)\n }\n\n resize()\n }, [\n draggingSlideTreshold,\n itemsPerSlide,\n gutter,\n startEndGutter,\n initialActiveItem,\n initialStartingPosition,\n carouselSlideAxis,\n thumbsSlideAxis,\n ])\n\n function getCarouselItem() {\n return carouselTrackWrapperRef.current?.querySelector('.use-spring-carousel-item')\n }\n function getMainCarouselWrapperWidth() {\n if (!mainCarouselWrapperRef.current) {\n throw new Error('mainCarouselWrapperRef is not available')\n }\n return mainCarouselWrapperRef.current.getBoundingClientRect()[\n carouselSlideAxisRef.current === 'x' ? 'width' : 'height'\n ]\n }\n function getCarouselItemWidth() {\n const carouselItem = getCarouselItem()\n if (!carouselItem) {\n throw Error('No carousel items available!')\n }\n return (\n carouselItem.getBoundingClientRect()[\n carouselSlideAxisRef.current === 'x' ? 'width' : 'height'\n ] + gutterRef.current\n )\n }\n function getCurrentSlidedValue() {\n return carouselStyles[carouselSlideAxisRef.current].get()\n }\n function getIfItemsNotFillTheCarousel() {\n return getCarouselItemWidth() * items.length < getMainCarouselWrapperWidth()\n }\n function getFluidWrapperScrollValue() {\n return Math.round(\n Number(\n carouselTrackWrapperRef.current?.[\n carouselSlideAxisRef.current === 'x' ? 'scrollWidth' : 'scrollHeight'\n ],\n ) -\n carouselTrackWrapperRef.current!.getBoundingClientRect()[\n carouselSlideAxisRef.current === 'x' ? 'width' : 'height'\n ],\n )\n }\n function getIsFirstItem() {\n return getCurrentActiveItem() === 0\n }\n function getSlideValue() {\n if (!carouselTrackWrapperRef.current) {\n return 0\n }\n const itemVal = getCarouselItemWidth()\n\n if (slideType === 'fluid' && typeof slideAmount === 'number') {\n if (slideAmount < itemVal) {\n throw new Error('slideAmount must be greater than the width of a single item.')\n }\n return slideAmount\n }\n return itemVal\n }\n function adjustCarouselWrapperPosition(\n ref: HTMLDivElement,\n _initialActiveItem?: number,\n ) {\n const positionProperty = carouselSlideAxisRef.current === 'x' ? 'left' : 'top'\n function getDefaultPositionValue() {\n return getCarouselItemWidth() * items.length\n }\n function setPosition(v: number) {\n if (withLoop) {\n ref.style.top = '0px'\n ref.style[positionProperty] = `-${v - startEndGutterRef.current}px`\n } else {\n ref.style.left = '0px'\n ref.style.top = '0px'\n if (_initialActiveItem && isFirstMount.current) {\n ref.style[positionProperty] = `calc(-${_initialActiveItem} * 100%)`\n }\n }\n }\n function setStartPosition() {\n setPosition(getDefaultPositionValue())\n }\n\n if (slideType === 'fixed') {\n function setCenterPosition(i: number) {\n setPosition(\n getDefaultPositionValue() -\n getSlideValue() * Math.round(((i as number) - 1) / 2),\n )\n }\n function setEndPosition(i: number) {\n setPosition(\n getDefaultPositionValue() - getSlideValue() * Math.round((i as number) - 1),\n )\n }\n\n if (itemsPerSlideRef.current > 1) {\n switch (initialStartingPositionRef.current) {\n default:\n case 'start': {\n setStartPosition()\n break\n }\n case 'center': {\n setCenterPosition(itemsPerSlideRef.current)\n break\n }\n case 'end': {\n setEndPosition(itemsPerSlideRef.current)\n break\n }\n }\n } else {\n setStartPosition()\n }\n } else {\n setStartPosition()\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n function resize() {\n currentWindowWidth.current = window.innerWidth\n\n if (slideType === 'fluid') {\n if (getIfItemsNotFillTheCarousel()) {\n setCarouselStyles.start({\n immediate: true,\n [carouselSlideAxisRef.current]: 0,\n })\n return\n }\n fluidTotalWrapperScrollValue.current = getFluidWrapperScrollValue()\n\n if (slideEndReached.current) {\n const nextValue = -fluidTotalWrapperScrollValue.current\n setCarouselStyles.start({\n immediate: true,\n [carouselSlideAxisRef.current]: nextValue,\n })\n }\n\n initialWindowWidth.current = window.innerWidth\n } else {\n setCarouselStyles.start({\n immediate: true,\n [carouselSlideAxisRef.current]: -(getSlideValue() * getCurrentActiveItem()),\n })\n }\n\n fluidTotalWrapperScrollValue.current = getFluidWrapperScrollValue()\n adjustCarouselWrapperPosition(carouselTrackWrapperRef.current!)\n }\n function handleResize() {\n if (window.innerWidth === currentWindowWidth.current || freeScroll) {\n return\n }\n resize()\n }\n // Custom modules\n const { useListenToCustomEvent, emitObservable } = useCustomEventsModule<'use-spring'>()\n const { enterFullscreen, exitFullscreen, getIsFullscreen } =\n useFullscreenModule<'use-spring'>({\n mainCarouselWrapperRef,\n emitObservable,\n handleResize,\n })\n const { thumbsFragment: _thumbsFragment, handleThumbsScroll } = useThumbsModule({\n withThumbs,\n items: items as ReactSpringCarouselItemWithThumbs[],\n thumbsSlideAxis,\n springConfig,\n prepareThumbsData,\n slideType,\n getFluidWrapperScrollValue,\n getSlideValue,\n })\n\n function getWrapperScrollDirection() {\n if (!mainCarouselWrapperRef.current) {\n throw new Error('Missing mainCarouselWrapperRef.current')\n }\n return mainCarouselWrapperRef.current[\n carouselSlideAxisRef.current === 'x' ? 'scrollLeft' : 'scrollTop'\n ]\n }\n function getIfShouldEnableFluidDrag() {\n if (typeof enableFreeScrollDrag === 'boolean') {\n return enableFreeScrollDrag\n } else if (typeof enableFreeScrollDrag === 'function') {\n return enableFreeScrollDrag()\n }\n return false\n }\n\n const bindDrag = useDrag(\n props => {\n const isDragging = props.dragging\n const movement = props.offset[carouselSlideAxisRef.current === 'x' ? 0 : 1]\n const currentMovement = props.movement[carouselSlideAxisRef.current === 'x' ? 0 : 1]\n const prevItemTreshold = currentMovement > draggingSlideTresholdRef.current\n const nextItemTreshold = currentMovement < -draggingSlideTresholdRef.current\n const direction = props.direction[carouselSlideAxisRef.current === 'x' ? 0 : 1]\n function cancelDrag() {\n props.cancel()\n }\n function setDragDirection() {\n if (direction > 0) {\n setSlideActionType('prev')\n } else {\n setSlideActionType('next')\n }\n }\n function emitDragObservable() {\n emitObservable({\n eventName: 'onDrag',\n slideActionType: getSlideActionType(),\n ...props,\n })\n }\n function resetAnimation() {\n if (slideType === 'fluid') {\n if (\n getIfItemsNotFillTheCarousel() ||\n (getIsFirstItem() && getSlideActionType() === 'prev')\n ) {\n setCarouselStyles.start({\n [carouselSlideAxisRef.current]: 0,\n config: {\n velocity: props.velocity,\n ...springConfig,\n },\n })\n } else if (slideEndReached.current && getSlideActionType() === 'next') {\n setCarouselStyles.start({\n [carouselSlideAxisRef.current]: -fluidTotalWrapperScrollValue.current,\n config: {\n velocity: props.velocity,\n ...springConfig,\n },\n })\n } else {\n setCarouselStyles.start({\n [carouselSlideAxisRef.current]: prevSlidedValue.current,\n config: {\n velocity: props.velocity,\n ...springConfig,\n },\n })\n }\n } else {\n setCarouselStyles.start({\n [carouselSlideAxisRef.current]: -(getCurrentActiveItem() * getSlideValue()),\n config: {\n velocity: props.velocity,\n ...springConfig,\n },\n })\n }\n }\n function checkBounds() {\n const nextItemWillExceed =\n Math.abs(getCurrentSlidedValue()) + 100 >= fluidTotalWrapperScrollValue.current\n\n if (nextItemWillExceed && getSlideActionType() === 'next') {\n slideEndReached.current = true\n }\n if (getSlideActionType() === 'prev') {\n slideEndReached.current = false\n }\n }\n\n if (freeScroll && getIfShouldEnableFluidDrag()) {\n if (isDragging) {\n if (!getIsDragging()) {\n setIsDragging(true)\n }\n\n setDragDirection()\n emitDragObservable()\n checkBounds()\n }\n\n setCarouselStyles.start({\n from: {\n [carouselSlideAxisRef.current]: getWrapperScrollDirection(),\n },\n to: {\n [carouselSlideAxisRef.current]: -movement,\n },\n config: {\n velocity: props.velocity,\n friction: 50,\n tension: 1400,\n },\n })\n\n if (getWrapperScrollDirection() === 0 && getSlideActionType() === 'prev') {\n cancelDrag()\n return\n }\n if (props.last) {\n if (getSlideActionType() === 'prev') {\n slideToPrevItem(props.velocity)\n } else {\n slideToNextItem(props.velocity)\n }\n setIsDragging(false)\n }\n return\n }\n\n if (isDragging) {\n if (!getIsDragging()) {\n setIsDragging(true)\n }\n\n emitDragObservable()\n setDragDirection()\n checkBounds()\n\n if (freeScroll) {\n if (getIfShouldEnableFluidDrag()) {\n if (getWrapperScrollDirection() === 0 && getSlideActionType() === 'prev') {\n cancelDrag()\n return\n } else {\n setCarouselStyles.start({\n config: {\n velocity: props.velocity,\n friction: 50,\n tension: 1400,\n },\n from: {\n [carouselSlideAxisRef.current]: getWrapperScrollDirection(),\n },\n to: {\n [carouselSlideAxisRef.current]: -movement,\n },\n })\n }\n }\n return\n } else {\n setCarouselStyles.start({\n [carouselSlideAxisRef.current]: movement,\n config: {\n velocity: props.velocity,\n friction: 50,\n tension: 1000,\n },\n })\n }\n\n if (\n (prevItemTreshold || nextItemTreshold) &&\n getIfItemsNotFillTheCarousel() &&\n slideType === 'fluid'\n ) {\n cancelDrag()\n resetAnimation()\n } else if (\n slideEndReached.current &&\n getSlideActionType() === 'next' &&\n nextItemTreshold\n ) {\n slideEndReached.current = false\n cancelDrag()\n setCarouselStyles.start({\n [carouselSlideAxisRef.current]: -fluidTotalWrapperScrollValue.current,\n })\n } else if (slideWhenThresholdIsReached) {\n if (nextItemTreshold) {\n cancelDrag()\n if (!withLoop && getIsLastItem()) {\n resetAnimation()\n } else {\n slideToNextItem(props.velocity)\n }\n return\n } else if (prevItemTreshold) {\n cancelDrag()\n if (!withLoop && getIsFirstItem()) {\n resetAnimation()\n } else {\n slideToPrevItem(props.velocity)\n }\n return\n }\n }\n }\n\n if (\n props.last &&\n !slideWhenThresholdIsReached &&\n (nextItemTreshold || prevItemTreshold) &&\n !freeScroll\n ) {\n setIsDragging(false)\n if (nextItemTreshold) {\n if (!withLoop && getIsLastItem()) {\n resetAnimation()\n } else {\n slideToNextItem(props.velocity)\n }\n } else if (prevItemTreshold) {\n if (!withLoop && getIsFirstItem()) {\n resetAnimation()\n } else {\n slideToPrevItem(props.velocity)\n }\n }\n return\n }\n\n if (props.last && !nextItemTreshold && !prevItemTreshold) {\n if (!freeScroll) {\n resetAnimation()\n emitObservable({\n eventName: 'onDrag',\n slideActionType: getSlideActionType(),\n ...props,\n })\n }\n }\n },\n {\n enabled: !disableGestures,\n axis: carouselSlideAxisRef.current,\n from: () => {\n if (freeScroll) {\n if (carouselSlideAxisRef.current === 'x') {\n return [-getWrapperScrollDirection(), 0]\n }\n return [0, -getWrapperScrollDirection()]\n }\n return [carouselStyles.x.get(), carouselStyles.y.get()]\n },\n },\n )\n\n function setSlideActionType(type: SlideActionType) {\n slideActionType.current = type\n }\n function getSlideActionType() {\n return slideActionType.current\n }\n function setActiveItem(newItem: number) {\n activeItem.current = newItem\n }\n function getCurrentActiveItem() {\n return activeItem.current\n }\n function getIsAnimating() {\n return isAnimating.current\n }\n function setIsAnimating(val: boolean) {\n isAnimating.current = val\n }\n function setIsDragging(val: boolean) {\n isDragging.current = val\n }\n function getIsDragging() {\n return isDragging.current\n }\n function getPrevItem() {\n const currentActiveItem = getCurrentActiveItem()\n if (currentActiveItem === 0) {\n return items.length - 1\n }\n return currentActiveItem - 1\n }\n function getNextItem() {\n const currentActiveItem = getCurrentActiveItem()\n if (currentActiveItem === items.length - 1) {\n return 0\n }\n return currentActiveItem + 1\n }\n function getIsNextItem(id: string) {\n const itemIndex = findItemIndex(id)\n const activeItem = getCurrentActiveItem()\n if (withLoop && activeItem === items.length - 1) {\n return itemIndex === 0\n }\n return itemIndex === activeItem + 1\n }\n function getIsPrevItem(id: string) {\n const itemIndex = findItemIndex(id)\n const activeItem = getCurrentActiveItem()\n if (withLoop && activeItem === 0) {\n return itemIndex === items.length - 1\n }\n return itemIndex === activeItem - 1\n }\n function findItemIndex(id: string) {\n return items.findIndex(item => item.id === id)\n }\n function getFromValue(from: SlideToItemFnProps['from']) {\n if (typeof from === 'number') {\n return {\n from: {\n [carouselSlideAxisRef.current]: from,\n },\n }\n }\n return {}\n }\n function getToValue(\n customTo: SlideToItemFnProps['customTo'],\n to: SlideToItemFnProps['to'],\n ) {\n if (typeof customTo === 'number') {\n return {\n [carouselSlideAxisRef.current]: customTo,\n }\n }\n if (typeof to !== 'number') {\n throw new Error(`to values is not a number!`)\n }\n return {\n [carouselSlideAxisRef.current]: -(getSlideValue() * to!),\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n function slideToItem({\n from,\n to = -1,\n customTo,\n immediate = false,\n onRest = () => {},\n velocity,\n }: SlideToItemFnProps) {\n if (!immediate) {\n setActiveItem(to)\n setIsAnimating(true)\n emitObservable({\n eventName: 'onSlideStartChange',\n slideActionType: getSlideActionType(),\n nextItem: {\n index: slideType === 'fluid' ? -1 : to,\n id: slideType === 'fluid' ? '' : items[to].id,\n },\n })\n }\n prevSlidedValue.current = getToValue(customTo, to)[carouselSlideAxis]\n setCarouselStyles.start({\n ...getFromValue(from),\n to: getToValue(customTo, to),\n ...(velocity\n ? {\n config: {\n ...defaultDragSpringConfig,\n velocity,\n friction: undefined,\n tension: undefined,\n },\n }\n : {\n config: {\n velocity: 0,\n ...springConfig,\n },\n }),\n immediate,\n onRest: val => {\n if (val.finished) {\n setIsDragging(false)\n setIsAnimating(false)\n onRest()\n if (!immediate) {\n emitObservable({\n eventName: 'onSlideChange',\n slideActionType: getSlideActionType(),\n currentItem: {\n index: slideType === 'fluid' ? -1 : getCurrentActiveItem(),\n id: slideType === 'fluid' ? '' : items[getCurrentActiveItem()].id,\n },\n })\n }\n }\n },\n })\n if (enableThumbsWrapperScroll && withThumbs && !immediate) {\n handleThumbsScroll(to, getSlideActionType())\n }\n }\n function getIsLastItem() {\n return getCurrentActiveItem() === items.length - 1\n }\n function slideToPrevItem(velocity?: number[]) {\n setSlideActionType('prev')\n slideEndReached.current = false\n\n if (slideType === 'fluid') {\n slideEndReached.current = false\n\n if (getIfItemsNotFillTheCarousel()) {\n return\n }\n const nextPrevValue = getCurrentSlidedValue() + getSlideValue() + 200\n\n if (freeScroll) {\n const nextValue = mainCarouselWrapperRef.current!.scrollLeft - getSlideValue()\n slideToItem({\n customTo: nextValue < 0 ? 0 : nextValue,\n from: mainCarouselWrapperRef.current!.scrollLeft,\n velocity,\n })\n } else if (nextPrevValue >= 0) {\n if (withLoop) {\n slideToItem({\n from: getCurrentSlidedValue() - getCarouselItemWidth() * items.length,\n velocity,\n customTo:\n getCurrentSlidedValue() -\n getCarouselItemWidth() * items.length +\n getSlideValue(),\n })\n } else {\n slideToItem({\n customTo: 0,\n velocity,\n })\n }\n } else {\n slideToItem({\n customTo: getCurrentSlidedValue() + getSlideValue(),\n velocity,\n })\n }\n } else {\n if ((!withLoop && getCurrentActiveItem() === 0) || windowIsHidden.current) {\n return\n }\n\n if (getIsFirstItem()) {\n slideToItem({\n from: getCurrentSlidedValue() - getSlideValue() * items.length,\n to: items.length - 1,\n velocity,\n })\n } else {\n slideToItem({\n to: getPrevItem(),\n velocity,\n })\n }\n }\n }\n function slideToNextItem(velocity?: number[]) {\n setSlideActionType('next')\n\n if (slideType === 'fluid') {\n if (getIfItemsNotFillTheCarousel()) {\n return\n }\n\n const nextItemWillExceed =\n Math.abs(getCurrentSlidedValue() - getSlideValue()) + 100 >=\n fluidTotalWrapperScrollValue.current\n\n if (freeScroll) {\n const nextValue = mainCarouselWrapperRef.current!.scrollLeft + getSlideValue()\n const willExceed = nextValue > fluidTotalWrapperScrollValue.current\n const val = mainCarouselWrapperRef.current!.scrollLeft + getSlideValue()\n\n slideToItem({\n velocity,\n customTo: willExceed ? fluidTotalWrapperScrollValue.current : val,\n from: mainCarouselWrapperRef.current!.scrollLeft,\n })\n } else if (\n withLoop &&\n Math.abs(getCurrentSlidedValue() - getSlideValue()) >=\n items.length * getCarouselItemWidth()\n ) {\n const currentWidth = getCarouselItemWidth() * items.length\n slideToItem({\n from: getCurrentSlidedValue() + currentWidth,\n customTo: getCurrentSlidedValue() + currentWidth - getSlideValue(),\n velocity,\n })\n } else if (slideEndReached.current) {\n return\n } else if (nextItemWillExceed) {\n slideEndReached.current = true\n slideToItem({\n customTo: -fluidTotalWrapperScrollValue.current,\n velocity,\n })\n } else {\n slideToItem({\n customTo: getCurrentSlidedValue() - getSlideValue(),\n velocity,\n })\n }\n } else {\n if (\n (!withLoop && getCurrentActiveItem() === internalItems.length - 1) ||\n windowIsHidden.current\n ) {\n return\n }\n\n const nextItemWillExceed =\n Math.abs(getCurrentSlidedValue() - getSlideValue() + 25) >\n fluidTotalWrapperScrollValue.current\n\n if (nextItemWillExceed && !getIsDragging()) {\n slideEndReached.current = true\n } else if (slideEndReached.current) {\n slideToItem({\n to: items.length - itemsPerSlideRef.current,\n velocity,\n })\n } else if (getIsLastItem()) {\n slideToItem({\n from: getCurrentSlidedValue() + getSlideValue() * items.length,\n to: 0,\n velocity,\n })\n } else {\n slideToItem({\n to: getNextItem(),\n velocity,\n })\n }\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n function _slideToItem(item: string | number) {\n let itemIndex = 0\n\n if (typeof item === 'string') {\n itemIndex = items.findIndex(_item => _item.id === item)\n } else {\n itemIndex = item\n }\n\n if (itemIndex >= items.length) {\n throw Error(\n `The item you want to slide to doesn't exist. This could be due to the fact that \n you provide a wrong id or a higher numeric index.`,\n )\n }\n\n if (\n itemIndex === getCurrentActiveItem() ||\n (items.length !== prevItems.current.length && getCurrentActiveItem() < items.length)\n ) {\n return\n }\n\n const currentItem = findItemIndex(prevItems.current[getCurrentActiveItem()].id)\n const newActiveItem = findItemIndex(items[itemIndex].id)\n\n if (newActiveItem > currentItem) {\n setSlideActionType('next')\n } else {\n setSlideActionType('prev')\n }\n\n slideToItem({\n to: itemIndex,\n })\n }\n function getItemStyles(_itemsPerSlide: number) {\n if (slideType === 'fixed') {\n return {\n ...(carouselSlideAxisRef.current === 'x'\n ? { marginRight: `${gutterRef.current}px` }\n : { marginBottom: `${gutterRef.current}px` }),\n flex: `1 0 calc(100% / ${_itemsPerSlide} - ${\n (gutterRef.current * (_itemsPerSlide - 1)) / _itemsPerSlide\n }px)`,\n }\n }\n return {\n ...(carouselSlideAxisRef.current === 'x'\n ? { marginRight: `${gutterRef.current}px` }\n : { marginBottom: `${gutterRef.current}px` }),\n }\n }\n function getAnimatedWrapperStyles() {\n const percentValue = `calc(100% - ${startEndGutterRef.current * 2}px)`\n return {\n width: carouselSlideAxisRef.current === 'x' ? percentValue : '100%',\n height: carouselSlideAxisRef.current === 'y' ? percentValue : '100%',\n }\n }\n function getOverflowStyles() {\n if (freeScroll) {\n if (carouselSlideAxisRef.current === 'x') {\n return {\n overflowX: 'auto',\n }\n }\n return {\n overflowY: 'auto',\n }\n }\n return {}\n }\n function getWheelEvent() {\n if (freeScroll) {\n return {\n onWheel() {\n carouselStyles[carouselSlideAxisRef.current].stop()\n },\n }\n }\n return {}\n }\n function getTouchAction() {\n if (disableGestures) {\n return 'unset'\n } else if (!touchAction) {\n if (carouselSlideAxisRef.current === 'x') {\n return 'pan-y'\n }\n return 'pan-x'\n }\n return touchAction\n }\n // Perform some check on first mount\n useIsomorphicMount(() => {\n if (itemsPerSlide % 2 === 0 && initialStartingPositionRef.current) {\n throw new Error(\n `initialStartingPosition can be only used if itemsPerSlide is an even value.`,\n )\n }\n if (draggingSlideTresholdRef.current < 0) {\n throw new Error('draggingSlideTreshold must be greater than 0')\n }\n if (draggingSlideTresholdRef.current > getSlideValue() / 2) {\n throw new Error(\n `draggingSlideTreshold must be equal or less than the half of the width of an item, which is ${Math.floor(\n getSlideValue() / 2,\n )}`,\n )\n }\n if (itemsPerSlideRef.current < 1) {\n throw new Error(`The itemsPerSlide prop can't be less than 1.`)\n }\n if (itemsPerSlideRef.current > items.length) {\n throw new Error(\n `The itemsPerSlide prop can't be greater than the total length of the items you provide.`,\n )\n }\n if (initialActiveItemRef.current < 0) {\n throw new Error('The initialActiveItem cannot be less than 0.')\n }\n if (initialActiveItemRef.current > items.length) {\n throw new Error(\n 'The initialActiveItem cannot be greater than the total length of the items you provide.',\n )\n }\n if (!shouldResizeOnWindowResize) {\n console.warn(\n 'You set shouldResizeOnWindowResize={false}; be aware that the carousel could behave in a strange way if you also use the fullscreen functionality or if you change the mobile orientation.',\n )\n }\n })\n useIsomorphicMount(() => {\n function handleVisibilityChange() {\n if (document.hidden) {\n windowIsHidden.current = true\n } else {\n windowIsHidden.current = false\n }\n }\n document.addEventListener('visibilitychange', handleVisibilityChange)\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange)\n }\n })\n useIsomorphicMount(() => {\n isFirstMount.current = false\n fluidTotalWrapperScrollValue.current = getFluidWrapperScrollValue()\n initialWindowWidth.current = window.innerWidth\n currentWindowWidth.current = window.innerWidth\n\n if (initialActiveItem > 0) {\n slideToItem({\n to: initialActiveItem,\n immediate: true,\n })\n setActiveItem(initialActiveItem)\n if (!withLoop && carouselTrackWrapperRef.current) {\n carouselTrackWrapperRef.current.style.top = '0px'\n carouselTrackWrapperRef.current.style.left = '0px'\n }\n }\n })\n useIsomorphicLayoutEffect(() => {\n if (initialActiveItem < items.length && initialActiveItem !== activeItem.current) {\n slideToItem({\n to: initialActiveItem,\n immediate: true,\n })\n setActiveItem(initialActiveItem)\n }\n }, [initialActiveItem])\n useIsomorphicLayoutEffect(() => {\n if (shouldResizeOnWindowResize) {\n window.addEventListener('resize', handleResize)\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [shouldResizeOnWindowResize])\n useIsomorphicLayoutEffect(() => {\n if (carouselTrackWrapperRef.current) {\n if (carouselSlideAxisRef.current === 'x') {\n carouselTrackWrapperRef.current.style.top = '0px'\n }\n if (carouselSlideAxisRef.current === 'y') {\n carouselTrackWrapperRef.current.style.left = '0px'\n }\n }\n }, [carouselSlideAxis])\n useIsomorphicLayoutEffect(() => {\n fluidTotalWrapperScrollValue.current = getFluidWrapperScrollValue()\n const itemsAreEqual = items.length === prevItems.current.length\n\n if (!itemsAreEqual && items.length < prevItems.current.length) {\n _slideToItem(items.length - 1)\n }\n\n prevItems.current = items\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getFluidWrapperScrollValue, items])\n\n const contextProps = {\n useListenToCustomEvent,\n getIsFullscreen,\n enterFullscreen,\n exitFullscreen,\n getIsAnimating,\n getIsDragging,\n getIsNextItem,\n getIsPrevItem,\n slideToPrevItem() {\n slideToPrevItem()\n },\n slideToNextItem() {\n slideToNextItem()\n },\n ...(slideType === 'fixed'\n ? {\n slideToItem: _slideToItem,\n getIsActiveItem: (id: string) => {\n return findItemIndex(id) === getCurrentActiveItem()\n },\n getCurrentActiveItem: () => ({\n id: items[getCurrentActiveItem()].id,\n index: getCurrentActiveItem(),\n }),\n }\n : {}),\n }\n\n const handleCarouselFragmentRef = (ref: HTMLDivElement | null) => {\n if (ref) {\n carouselTrackWrapperRef.current = ref\n adjustCarouselWrapperPosition(ref, initialActiveItemRef.current)\n }\n }\n\n function getInitialStyles() {\n const totalValue = (items.length / itemsPerSlide) * 100\n const singleItemValue = 100 / itemsPerSlide\n const cssProp = carouselSlideAxisRef.current === 'x' ? 'left' : 'y'\n const quantityToMove = Math.floor(50 / singleItemValue)\n\n if (slideType === 'fixed') {\n if (initialStartingPositionRef.current === 'center') {\n return {\n [cssProp]: `calc(-${totalValue}% + ${singleItemValue * quantityToMove}%)`,\n }\n }\n if (initialStartingPositionRef.current === 'end') {\n return {\n [cssProp]: `calc(-${totalValue}% + ${singleItemValue * (quantityToMove * 2)}%)`,\n }\n }\n }\n return {\n [cssProp]: `0px`,\n }\n }\n\n const carouselFragment = (\n \n \n \n {internalItems.map(({ id, renderItem }, index) => {\n return (\n \n {renderItem}\n
\n )\n })}\n \n \n \n )\n const thumbsFragment = (\n {_thumbsFragment}\n )\n\n return {\n ...contextProps,\n carouselFragment,\n thumbsFragment,\n }\n}\n\nfunction useSpringCarouselContext() {\n const context = useContext(Context)\n if (!context) {\n throw new Error(\n 'useSpringCarouselContext must be used only inside a component that is rendered inside the Carousel.',\n )\n }\n return context as ContextTypes\n}\n\nexport { useSpringCarousel, useSpringCarouselContext }\n","import { TrackingAttributes } from '@context/tracking/types';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nexport const trackProductImageClick = ({\n timing,\n}: Pick) => {\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n type: 'image',\n interaction: 'open',\n name: 'pd_image',\n timing,\n action: undefined,\n mode: undefined,\n promo_labels: undefined,\n },\n _clear: true,\n });\n};\n\nexport const trackProductImageTap = ({\n timing,\n}: Pick) => {\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n type: 'image',\n interaction: 'mobile_tap',\n name: 'pd_image',\n timing,\n action: undefined,\n mode: undefined,\n promo_labels: undefined,\n },\n _clear: true,\n });\n};\n\nexport const trackSwitchingImages = ({\n timing,\n interaction,\n}: Pick & {\n interaction: 'swipe' | 'button';\n}) => {\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n type: 'image',\n interaction,\n name: 'pd_image',\n timing,\n action: undefined,\n mode: undefined,\n promo_labels: undefined,\n },\n _clear: true,\n });\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nimport { Arrows } from '@components/Slider';\n\nconst contentSizeCss = css`\n max-height: 18.75rem !important;\n max-width: calc(100vw - 40px) !important;\n margin: auto;\n`;\n\nexport const ImageSliderWrapper = styled.div<{ newPdDesign: boolean }>`\n ${({ newPdDesign }) =>\n newPdDesign\n ? css`\n position: relative;\n left: -0.9375rem;\n width: 100vw;\n background-color: ${theme.palette.neutralLighter};\n height: 21.875rem;\n margin-bottom: 1.25rem;\n aspect-ratio: 1 / 1;\n @media (min-width: ${breakpoints.lg}) {\n display: none;\n }\n @media (min-width: ${breakpoints.md}) {\n height: auto;\n }\n `\n : css`\n .use-spring-carousel-track-wrapper {\n align-items: start;\n }\n @media (min-width: ${breakpoints.md}) {\n display: none;\n }\n `}\n\n overflow: hidden;\n`;\n\nexport const PlayerWrapper = styled.div<{ newPdDesign: boolean }>`\n ${({ newPdDesign }) =>\n newPdDesign\n ? css`\n display: flex;\n align-items: center;\n width: 100%;\n\n height: 100%;\n iframe {\n ${contentSizeCss}\n }\n `\n : css`\n ${contentSizeCss}\n iframe {\n ${contentSizeCss}\n }\n `}\n`;\n\nexport const ImgWrapper = styled.div<{\n newPdDesign: boolean;\n isSquare?: boolean;\n}>`\n height: 100%;\n position: relative;\n overflow: hidden;\n\n margin: auto;\n\n > div {\n min-width: 5rem; // notino placeholder logo is not visible without this\n }\n\n ${({ newPdDesign, isSquare }) =>\n newPdDesign\n ? css`\n background-color: ${theme.palette.neutralLighter};\n max-width: 100vw;\n margin: auto;\n\n ${isSquare\n ? css`\n > div:first-child {\n height: 100%;\n }\n img {\n width: 100%;\n }\n `\n : css`\n padding: 0 2.25rem;\n height: 100%;\n img {\n width: auto;\n max-width: 100% !important;\n height: auto;\n max-height: min(21.875rem, 80%) !important;\n }\n > div:first-child {\n // use first-child so we don't target modiface overlay\n max-height: 100%;\n }\n `}\n\n @media (min-width: ${breakpoints.md}) {\n height: 100%;\n }\n img {\n mix-blend-mode: multiply;\n min-height: auto;\n\n max-height: ${isSquare ? 'none' : '100%'};\n }\n `\n : css`\n height: 18.75rem;\n ${contentSizeCss};\n\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n img {\n width: auto;\n max-width: 100% !important;\n height: auto;\n max-height: 100% !important;\n @media (min-width: ${breakpoints.md}) {\n height: 100%;\n width: auto;\n max-width: unset;\n }\n }\n `}\n`;\n\nexport const StyledArrow = styled(Arrows)<{ newPdDesign: boolean }>`\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n z-index: 2;\n\n ${({ direction }) =>\n direction === 'left'\n ? css`\n left: 0;\n `\n : css`\n right: 0;\n `}\n\n ${({ newPdDesign }) =>\n newPdDesign &&\n css`\n background-color: ${theme.palette.transparent};\n height: 3rem;\n width: 3rem;\n display: flex;\n align-items: center;\n justify-content: center;\n `}\n`;\n","import * as React from 'react';\nimport { useInView } from 'react-intersection-observer';\n\nimport { ImagePlaceholder } from '@notino/react-styleguide';\n\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { useOnTap } from '@hooks/useOnTap';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\nimport { trackProductImageTap } from '../tracking';\n\nimport { ImgWrapper } from './styled';\n\nimport { IImageSliderProps } from '.';\n\ninterface Props {\n initialInView?: boolean;\n imgProps: IImageSliderProps['imagesAttrs'][number];\n}\n\nexport const ResizableImagePlaceholder: React.FC<\n React.PropsWithChildren\n> = ({ imgProps, children, initialInView = false }) => {\n const newPdDesign = useNewPdDesignEnabled();\n const [isSquare, setIsSquare] = React.useState(false);\n const [inViewRef, inView] = useInView({ initialInView, triggerOnce: true });\n\n const { getTimeFromInit } = useTrackingContext();\n const onTapRef = useOnTap(() =>\n trackProductImageTap({ timing: getTimeFromInit() })\n );\n\n const handleImageLoad = (elem: HTMLImageElement) => {\n setIsSquare(\n elem.naturalWidth === elem.naturalHeight &&\n !initialInView &&\n !imgProps.src.includes('-o/')\n );\n };\n\n const handleRef = (node: HTMLDivElement) => {\n onTapRef.current = node;\n inViewRef(node);\n };\n\n return (\n \n {inView && (\n \n )}\n {children}\n \n );\n};\n","import * as React from 'react';\n\nconst TAP_MAX_TIME_MS = 300;\nconst TAP_MAX_OFFSET = 20;\n\nexport const useOnTap = (\n callback: () => void\n) => {\n const ref = React.useRef(null);\n const startTime = React.useRef(0);\n const startPosition = React.useRef({ x: 0, y: 0 });\n\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n\n React.useEffect(() => {\n const el = ref.current;\n\n const handleStart = (e: TouchEvent) => {\n const touch = e.changedTouches.item(0);\n startPosition.current = { x: touch.clientX, y: touch.clientY };\n startTime.current = new Date().getTime();\n };\n\n const handleEnd = (e: TouchEvent) => {\n const now = new Date().getTime();\n const touch = e.changedTouches.item(0);\n const isQuick = now - startTime.current < TAP_MAX_TIME_MS;\n const isClose =\n Math.abs(touch.clientX - startPosition.current.x) < TAP_MAX_OFFSET &&\n Math.abs(touch.clientY - startPosition.current.y) < TAP_MAX_OFFSET;\n\n if (isQuick && isClose) {\n callbackRef.current();\n }\n };\n\n el?.addEventListener('touchstart', handleStart);\n el?.addEventListener('touchend', handleEnd);\n\n return () => {\n el?.addEventListener('touchstart', handleStart);\n el?.removeEventListener('touchend', handleEnd);\n };\n }, []);\n\n return ref;\n};\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as r from\"react\";import{Icon as t}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var l=function(l){return r.createElement(t,e({},l,{viewBox:\"0 0 25 34\"}),r.createElement(\"path\",{fill:\"currentColor\",d:\"M8.6 0C5.9.4 3.5 2.5 2.8 5.3c-.3 1-.3 2.6 0 3.6s.5 1.3 1.1 1.3c.5 0 .8-.2.9-.6.2-.3.2-.4 0-1-.4-1.4-.2-3 .5-4.2 1.4-2.3 4.2-3 6.5-1.8 1.3.7 2.3 2.2 2.5 3.8.1.7.1.9-.1 1.6-.1.7-.1.9 0 1.2.1.4.5.6.9.6s.8-.4.9-.8c.4-1.4.4-3.1-.2-4.6C14.7 1.5 11.7-.3 8.6 0z\"}),r.createElement(\"g\",null,r.createElement(\"path\",{fill:\"currentColor\",d:\"M8.5 4.1c-.9.3-1.5.9-1.9 1.8-.2.4-.2.5-.2 7.4v7l-.7-1.2c-.8-1.3-1.1-1.7-1.8-2.1-.4-.2-.6-.2-1.2-.2s-.8 0-1.3.3c-1 .5-1.4 1.3-1.4 2.7 0 1.1.2 1.8 1.3 4.6 1.5 3.7 3.2 6.9 4.8 8.7.7.9 1 1.1 1.6.9.5-.1.7-.6.7-1.1 0-.3-.2-.5-.5-.9-1.7-2-3.6-5.6-5.3-10.3-.3-.8-.4-1.2-.4-1.8 0-.7 0-.7.2-.9.3-.3.7-.3 1-.1.1.1.9 1.4 1.7 2.9.8 1.5 1.6 2.8 1.8 3 .4.4.9.4 1.3 0l.3-.3v-9c0-9.8 0-9.2.6-9.5.4-.2 1-.1 1.3.1 0 0 .2.2.3.4.1.5 0 6.3 0 6.3.1 7 0 6.7.7 6.9.4.1.9 0 1.1-.4.2-.3.2-.5.2-3 0-3 0-3.1.5-3.4.3-.2.9-.2 1.2 0 .5.3.5.4.5 3.6 0 2.7 0 3 .2 3.2.4.6 1.3.6 1.6 0 .2-.3.2-.5.2-2.5 0-2.5 0-2.7.5-2.9.5-.3 1.2-.1 1.5.4.1.2.1.7.1 2.5 0 2.5 0 2.6.5 2.9.3.2.6.2.9 0 .5-.2.5-.5.5-2 0-1.2 0-1.3.2-1.6.1-.2.4-.4.5-.4.5-.2.9.1 1.2.7.2.4.2.5.3 3.2.1 5.1-.3 9-1.1 11.4-.3 1.1-.3 1.3 0 1.7.5.5 1.2.4 1.5-.2.6-1 1.2-4.2 1.4-7.6.1-1.6.1-7.3 0-8.1-.3-2.3-2.3-3.8-4.1-3-.1 0-.2 0-.3-.3-.2-.5-.9-1.2-1.5-1.5-.5-.3-.7-.3-1.2-.3-.4 0-.8.1-1.1.1-.4.1-.4.1-.5 0 0-.1-.3-.4-.5-.6-.7-.8-1.7-1.1-2.8-.9l-.4.1V8.5c0-2.3 0-2.3-.3-2.8-.5-1-1.4-1.7-2.6-1.7-.5-.1-.8 0-1.1.1z\"})))};export{l as TouchIcon};\n//# sourceMappingURL=TouchIcon.js.map\n","import { styled } from '@notino/react-styleguide';\n\nexport const ModiFaceWrapper = styled.div`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n width: 6.25rem;\n height: 6.25rem;\n border-radius: 50%;\n\n background: rgba(0, 0, 0, 0.75);\n\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n`;\n\nexport const TextWrapper = styled.div`\n font-size: 0.75rem;\n color: ${({ theme }) => theme.palette.basicInverse};\n font-weight: normal;\n padding: 0.25rem 10%;\n`;\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { Colors, TouchIcon } from '@notino/react-styleguide';\n\nimport messages from '../../../messages';\n\nimport { ModiFaceWrapper, TextWrapper } from './styled';\n\ninterface IModiFaceOverlayProps {\n onClick: (e: React.MouseEvent) => void;\n}\n\nexport const ModiFaceOverlay: React.FC = React.memo(\n ({ onClick }) => (\n \n \n \n \n \n \n )\n);\n","import * as React from 'react';\n\nimport styled from 'styled-components';\n\nimport { theme } from '@notino/react-styleguide';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\n\ntype Props = { count: number; index: number };\n\nconst Track = styled.div`\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n`;\n\nconst Indicator = styled.div<{ width: string; left: string }>`\n height: 0.2rem;\n background-color: ${theme.palette.neutralDark};\n position: relative;\n border-radius: 1rem;\n width: ${({ width }) => width};\n left: ${({ left }) => left};\n transition: left 250ms;\n`;\n\nexport const ProgressBar = ({ count, index }: Props) => {\n const isNewDesign = useNewPdDesignEnabled();\n\n if (!isNewDesign || count < 2) {\n return null;\n }\n\n const width = 100 / count;\n const left = width * index;\n\n return (\n \n \n \n );\n};\n","import * as React from 'react';\nimport { useSpringCarousel } from 'react-spring-carousel';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { ResizableImagePlaceholder } from '@containers/ProductDetailContainer/ProductDetail/ProductImageGallery/ImageSlider/ResizableImagePlaceholder';\nimport { IImageProperties } from '@helpers/utils';\n\nimport { youtubeIframe } from '../../../utils';\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\nimport { ModiFaceOverlay } from '../ModiFaceOverlay';\n\nimport { ProgressBar } from './ProgressBar';\nimport { ImageSliderWrapper, PlayerWrapper, StyledArrow } from './styled';\nimport { useTrackSwiping } from './useTrackSwiping';\n\nexport interface IImageSliderProps {\n imagesAttrs: IImageProperties[];\n videos?: string[];\n hasModiface?: boolean;\n openModifaceModal?: () => void;\n}\n\nexport const ImageSlider: React.FC = React.memo(\n ({ imagesAttrs, videos = [], hasModiface, openModifaceModal }) => {\n const newPdDesign = useNewPdDesignEnabled();\n const { trackSwiping } = useTrackSwiping();\n const [currentIndex, setCurrentIndex] = React.useState(0);\n\n const items: Array<{ id: string; renderItem: JSX.Element }> = React.useMemo(\n () => [\n ...imagesAttrs\n .map((imgProps, index) => {\n const showModifaceOverlay = hasModiface && index === 0;\n\n // if modiface overlay on mobile, clone main image so customer can swipe to image a view it without overlay\n if (showModifaceOverlay) {\n return [\n {\n id: `${imgProps.src}-modiface`,\n renderItem: (\n \n \n \n ),\n },\n {\n id: imgProps.src,\n renderItem: ,\n },\n ];\n }\n\n return {\n id: imgProps.src,\n renderItem: (\n \n ),\n };\n })\n .flat(),\n\n ...videos.map((video) => ({\n id: video,\n renderItem: (\n \n ),\n })),\n ],\n [hasModiface, imagesAttrs, newPdDesign, openModifaceModal, videos]\n );\n\n const hasNext = currentIndex < items.length - 1;\n const hasPrev = currentIndex > 0;\n\n const {\n carouselFragment,\n useListenToCustomEvent,\n slideToNextItem,\n slideToPrevItem,\n } = useSpringCarousel({\n items,\n });\n\n useListenToCustomEvent((event) => {\n if (event.eventName === 'onDrag') {\n trackSwiping('swipe');\n } else if (event.eventName === 'onSlideStartChange') {\n setCurrentIndex(event.nextItem.index);\n }\n });\n\n return (\n \n \n {hasPrev && (\n {\n slideToPrevItem();\n trackSwiping('button');\n }}\n />\n )}\n\n {carouselFragment}\n\n \n\n {hasNext && (\n {\n slideToNextItem();\n trackSwiping('button');\n }}\n />\n )}\n \n \n );\n }\n);\n","import * as React from 'react';\n\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\n\nimport { useProductDetailContext } from '../../ProductDetailContext';\nimport { trackSwitchingImages } from '../tracking';\n\nexport const useTrackSwiping = () => {\n const context = useProductDetailContext(false);\n const variantId = context?.currentVariant.id || '';\n const hasAlreadyTracked = React.useRef(false);\n const { getTimeFromInit } = useTrackingContext();\n\n React.useEffect(() => {\n hasAlreadyTracked.current = false;\n }, [variantId]);\n\n const trackSwiping = (interaction: 'swipe' | 'button') => {\n if (hasAlreadyTracked.current) {\n return;\n }\n hasAlreadyTracked.current = true;\n trackSwitchingImages({ timing: getTimeFromInit(), interaction });\n };\n\n return { trackSwiping };\n};\n","import { useRef, MutableRefObject } from 'react'\nimport screenfull from 'screenfull'\nimport { EmitObservableFn } from '../types'\nimport { useIsomorphicMount } from '../utils'\n\ntype FullscreenModule = {\n mainCarouselWrapperRef: MutableRefObject\n emitObservable: EmitObservableFn\n handleResize?(): void\n}\n\nexport function useFullscreenModule({\n mainCarouselWrapperRef,\n emitObservable,\n handleResize,\n}: FullscreenModule) {\n const isFullscreen = useRef(false)\n\n useIsomorphicMount(() => {\n function handleFullscreenChange() {\n if (document.fullscreenElement) {\n setIsFullscreen(true)\n emitObservable({\n eventName: 'onFullscreenChange',\n isFullscreen: true,\n })\n\n handleResize && handleResize()\n }\n\n if (!document.fullscreenElement) {\n setIsFullscreen(false)\n emitObservable({\n eventName: 'onFullscreenChange',\n isFullscreen: false,\n })\n handleResize && handleResize()\n }\n }\n\n if (screenfull.isEnabled) {\n screenfull.on('change', handleFullscreenChange)\n return () => {\n if (screenfull.isEnabled) {\n screenfull.off('change', handleFullscreenChange)\n }\n }\n }\n })\n\n function setIsFullscreen(_isFullscreen: boolean) {\n isFullscreen.current = _isFullscreen\n }\n\n function getIsFullscreen() {\n return isFullscreen.current\n }\n\n function enterFullscreen(elementRef?: HTMLElement) {\n if (screenfull.isEnabled) {\n screenfull.request((elementRef || mainCarouselWrapperRef.current) as Element)\n }\n }\n\n function exitFullscreen() {\n screenfull.isEnabled && screenfull.exit()\n }\n\n return {\n enterFullscreen,\n exitFullscreen,\n getIsFullscreen,\n }\n}\n","import { useRef } from 'react'\nimport { useSpring, SpringConfig, animated } from 'react-spring'\nimport { useIsomorphicMount } from 'src/utils'\nimport { UseSpringCarouselProps, SlideActionType } from '../types'\nimport { ReactSpringCarouselItemWithThumbs } from '../types/useSpringCarousel'\nimport { PrepareThumbsData } from '../types/index'\n\ntype OffsetDimension = 'offsetWidth' | 'offsetHeight'\ntype OffsetDirection = 'offsetLeft' | 'offsetTop'\ntype ScrollDirection = 'scrollLeft' | 'scrollTop'\n\ntype Props = {\n items: ReactSpringCarouselItemWithThumbs[]\n withThumbs: boolean\n slideType: UseSpringCarouselProps['slideType']\n thumbsSlideAxis: UseSpringCarouselProps['thumbsSlideAxis']\n springConfig: SpringConfig\n prepareThumbsData?: UseSpringCarouselProps['prepareThumbsData']\n getFluidWrapperScrollValue?(): number\n getSlideValue?(): number\n}\n\nexport function useThumbsModule({\n items,\n withThumbs,\n thumbsSlideAxis = 'x',\n springConfig,\n prepareThumbsData,\n getFluidWrapperScrollValue = () => 0,\n getSlideValue = () => 0,\n slideType,\n}: Props) {\n const internalThumbsWrapperRef = useRef(null)\n const [thumbListStyles, setThumbListStyles] = useSpring(() => ({\n x: 0,\n y: 0,\n config: springConfig,\n onChange: ({ value }) => {\n if (internalThumbsWrapperRef.current && slideType === 'fluid') {\n internalThumbsWrapperRef.current[\n thumbsSlideAxis === 'x' ? 'scrollLeft' : 'scrollTop'\n ] = Math.abs(value[thumbsSlideAxis])\n }\n },\n }))\n\n useIsomorphicMount(() => {\n if (withThumbs && !internalThumbsWrapperRef.current) {\n throw new Error(\n \"The thumbs wrapper is not defined. If you've passed a Functional component, be sure to wrap your component in forwardRef.\",\n )\n }\n })\n\n function getCurrentThumbScrollValue() {\n return internalThumbsWrapperRef.current![\n thumbsSlideAxis === 'x' ? 'scrollLeft' : 'scrollTop'\n ]\n }\n function getThumbsTotalScrollableValue() {\n return Math.round(\n Number(\n internalThumbsWrapperRef.current?.[\n thumbsSlideAxis === 'x' ? 'scrollWidth' : 'scrollHeight'\n ],\n ) -\n internalThumbsWrapperRef.current!.getBoundingClientRect()[\n thumbsSlideAxis === 'x' ? 'width' : 'height'\n ],\n )\n }\n\n function getThumbSlideValue() {\n const thumbSlideTotal = Math.round(getFluidWrapperScrollValue() / getSlideValue())\n const totalScrollableValue = getThumbsTotalScrollableValue()\n return totalScrollableValue / thumbSlideTotal\n }\n\n function handleThumbsScroll(activeItem: number, actionType?: SlideActionType) {\n if (slideType === 'fluid') {\n const totalScrollableValue = getThumbsTotalScrollableValue()\n\n if (actionType === 'next') {\n const nextValue = getCurrentThumbScrollValue() + getThumbSlideValue()\n setThumbListStyles.start({\n from: {\n [thumbsSlideAxis]: getCurrentThumbScrollValue(),\n },\n to: {\n [thumbsSlideAxis]:\n nextValue > totalScrollableValue ? totalScrollableValue : nextValue,\n },\n })\n }\n if (actionType === 'prev') {\n const nextValue = getCurrentThumbScrollValue() - getThumbSlideValue()\n setThumbListStyles.start({\n from: {\n [thumbsSlideAxis]: getCurrentThumbScrollValue(),\n },\n to: {\n [thumbsSlideAxis]: nextValue < 0 ? 0 : nextValue,\n },\n })\n }\n } else {\n function getOffsetDirection() {\n return thumbsSlideAxis === 'x' ? 'offsetLeft' : 'offsetTop'\n }\n function getOffsetDimension() {\n return thumbsSlideAxis === 'x' ? 'offsetWidth' : 'offsetHeight'\n }\n function getScrollDirecton() {\n return thumbsSlideAxis === 'x' ? 'scrollLeft' : 'scrollTop'\n }\n function getThumbNode() {\n return internalThumbsWrapperRef.current!.querySelector(\n `#thumb-${items[activeItem].id}`,\n ) as HTMLElement\n }\n function getThumbOffsetPosition({\n thumbNode,\n offsetDirection,\n offsetDimension,\n }: {\n thumbNode: HTMLElement\n offsetDirection: OffsetDirection\n offsetDimension: OffsetDimension\n }) {\n return thumbNode[offsetDirection] + thumbNode[offsetDimension] / 2\n }\n function getThumbScrollDimension({\n thumbWrapper,\n offsetDimension,\n }: {\n thumbWrapper: HTMLDivElement\n offsetDimension: OffsetDimension\n }) {\n return thumbWrapper[offsetDimension] / 2\n }\n function getScrollFromValue({\n thumbWrapper,\n scrollDirection,\n }: {\n thumbWrapper: HTMLDivElement\n scrollDirection: ScrollDirection\n }) {\n return thumbWrapper[scrollDirection]\n }\n function getScrollToValue({\n thumbWrapper,\n thumbOffsetPosition,\n thumbScrollDimension,\n offsetDimension,\n }: {\n thumbWrapper: HTMLDivElement\n thumbOffsetPosition: number\n thumbScrollDimension: number\n offsetDimension: OffsetDimension\n }) {\n const scrollDimensionProperty =\n thumbsSlideAxis === 'x' ? 'scrollWidth' : 'scrollHeight'\n\n if (\n activeItem === items.length - 1 ||\n thumbOffsetPosition - thumbScrollDimension >\n thumbWrapper[scrollDimensionProperty] - thumbWrapper[offsetDimension]\n ) {\n return thumbWrapper[scrollDimensionProperty] - thumbWrapper[offsetDimension]\n }\n if (activeItem === 0) {\n return 0\n }\n\n return thumbOffsetPosition - thumbScrollDimension\n }\n\n const thumbNode = getThumbNode()\n\n if (thumbNode) {\n const thumbWrapper = internalThumbsWrapperRef.current!\n const offsetDirection = getOffsetDirection()\n const offsetDimension = getOffsetDimension()\n const scrollDirection = getScrollDirecton()\n const thumbOffsetPosition = getThumbOffsetPosition({\n thumbNode,\n offsetDimension,\n offsetDirection,\n })\n const thumbScrollDimension = getThumbScrollDimension({\n thumbWrapper,\n offsetDimension,\n })\n\n const fromValue = getScrollFromValue({\n thumbWrapper,\n scrollDirection,\n })\n const toValue = getScrollToValue({\n thumbWrapper,\n thumbOffsetPosition,\n thumbScrollDimension,\n offsetDimension,\n })\n\n setThumbListStyles.start({\n from: {\n [thumbsSlideAxis]: fromValue,\n },\n to: {\n [thumbsSlideAxis]: actionType === 'prev' && toValue < 0 ? 0 : toValue,\n },\n onChange: ({ value }) => {\n if (thumbsSlideAxis === 'x') {\n internalThumbsWrapperRef!.current!.scrollLeft = value.x\n } else {\n internalThumbsWrapperRef!.current!.scrollTop = value.y\n }\n },\n })\n }\n }\n }\n function handlePrepareThumbsData() {\n function getPreparedItems(\n _items: ReturnType,\n ): ReturnType {\n return _items.map(i => ({\n id: i.id,\n renderThumb: i.renderThumb,\n }))\n }\n\n if (prepareThumbsData) {\n return prepareThumbsData(getPreparedItems(items))\n }\n return getPreparedItems(items)\n }\n\n const thumbsFragment = withThumbs ? (\n {\n thumbListStyles[thumbsSlideAxis].stop()\n }}\n style={{\n display: 'flex',\n flex: 1,\n position: 'relative',\n width: '100%',\n height: '100%',\n flexDirection: thumbsSlideAxis === 'x' ? 'row' : 'column',\n ...(thumbsSlideAxis === 'x'\n ? { overflowX: 'auto' }\n : {\n overflowY: 'auto',\n maxHeight: '100%',\n }),\n }}\n >\n {handlePrepareThumbsData().map(({ id, renderThumb }) => {\n const thumbId = `thumb-${id}`\n return (\n
\n {renderThumb}\n
\n )\n })}\n \n ) : null\n\n return {\n thumbsFragment,\n handleThumbsScroll,\n }\n}\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints } from '@notino/react-styleguide';\n\nimport { ImageProps } from './utils';\n\nexport const BufferImage = styled.img`\n position: absolute;\n opacity: 0;\n z-index: -1;\n`;\n\ntype MainImgProps = ImageProps & {\n newPd: boolean;\n};\nexport const MainImg = styled.img`\n display: none;\n\n ${({ newPd, hasShadow, fullHeight }) => css`\n ${newPd &&\n css`\n height: auto;\n\n ${hasShadow &&\n css`\n margin-bottom: -2rem;\n `}\n\n ${fullHeight\n ? css`\n height: 100%;\n\n max-height: unset !important;\n max-width: unset !important;\n\n aspect-ratio: unset;\n\n @media (min-width: ${breakpoints.xl}) {\n height: calc(100% - 3rem); // 1.5rem padding on top and bottom\n width: unset;\n }\n `\n : css`\n max-height: min(85%, 21.875rem) !important;\n\n @media (min-width: 1280px) {\n max-height: min(85%, 25rem) !important;\n }\n @media (min-width: 1680px) {\n max-height: min(85%, 28.125rem) !important;\n }\n `}\n `}\n\n ${!newPd &&\n css`\n width: auto;\n height: auto;\n `}\n `}\n\n @media (min-width: ${breakpoints.sm}) {\n display: block;\n max-width: 100%;\n max-height: 100%;\n\n cursor: zoom-in;\n flex-grow: 0;\n transition: opacity 0.5s;\n }\n`;\n","export function hasImageShadow(src: string) {\n return src.includes('-o/');\n}\n\nexport type ImageProps = {\n hasShadow: boolean;\n fullHeight: boolean;\n};\n\nexport function getImageProps(img: HTMLImageElement, idx: number): ImageProps {\n const aspectRatio = img.naturalWidth / img.naturalHeight;\n\n const hasShadow = hasImageShadow(img.src);\n const canBeSized = idx !== 0 && !hasShadow;\n const isMoodImage = aspectRatio === 1;\n\n return {\n fullHeight: isMoodImage && canBeSized,\n hasShadow,\n };\n}\n","import * as React from 'react';\n\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport { IImageProperties } from '@helpers/utils';\n\nimport { MainImg, BufferImage } from './styled';\nimport { getImageProps, hasImageShadow, ImageProps } from './utils';\n\ninterface IMainImageProps {\n imageAttrs: IImageProperties;\n onClick: React.MouseEventHandler;\n index: number;\n}\n\nexport const MainImage: React.FC = (props) => {\n const { imageAttrs, onClick, index } = props;\n const newPdDesignEnabled = useNewPdDesignEnabled();\n\n const [imgProps, setImageProps] = React.useState<\n ImageProps & IMainImageProps['imageAttrs']\n >(() => ({\n hasShadow: hasImageShadow(imageAttrs.src),\n fullHeight: false,\n ...props.imageAttrs,\n }));\n\n const handleImageLoad: React.ReactEventHandler = (\n event\n ) => {\n setImageProps({\n ...getImageProps(event.currentTarget, index),\n ...props.imageAttrs,\n });\n };\n\n return (\n <>\n \n\n {/* Preload image and calculate its size before we render it so there is no flickering*/}\n \n \n );\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, Col, theme } from '@notino/react-styleguide';\n\nexport const StyledCol = styled(Col)<{ newPdDesign: boolean }>`\n ${({ newPdDesign }) =>\n newPdDesign &&\n css`\n padding: 0;\n `};\n`;\n\nexport const MainImgWrapper = styled.div<{ newPdDesign?: boolean }>`\n position: relative;\n display: none;\n\n width: 21.875rem;\n max-width: 100%;\n height: 21.875rem;\n\n margin: 0 auto;\n text-align: center;\n\n ${({ newPdDesign }) =>\n newPdDesign\n ? css`\n height: 70vh;\n max-height: 46.875rem;\n width: 100%;\n cursor: zoom-in;\n background-color: ${theme.palette.neutralLighter};\n @media (min-width: ${breakpoints.lg}) {\n display: block;\n }\n `\n : css`\n @media (min-width: ${breakpoints.md}) {\n display: block;\n }\n `};\n`;\n\nexport const PictogramWrapper = styled.div<{ newPd: boolean }>`\n position: absolute;\n top: ${(props) => (props.newPd ? '1.25rem' : '0.25rem')};\n left: 0.25rem;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0.5rem;\n\n z-index: 1;\n\n ${(props) =>\n props.newPd &&\n css`\n @media (min-width: ${breakpoints.md}) {\n top: 1rem;\n left: 1rem;\n }\n `}\n`;\n\nexport const Container = styled.div<{\n brandLogo: boolean;\n newPdDesign: boolean;\n}>`\n width: 100%;\n position: relative;\n text-align: center;\n height: 20rem;\n margin-top: 1.25rem;\n\n ${({ newPdDesign, brandLogo }) =>\n newPdDesign\n ? css`\n height: auto;\n @media (min-width: ${breakpoints.lg}) {\n margin-top: 0;\n }\n `\n : css`\n @media (min-width: ${breakpoints.md}) {\n height: auto;\n ${!brandLogo ? 'margin-top: 0;' : ''};\n }\n `};\n`;\n\nexport const ImageWrapper = styled.div<{ newPdDesign?: boolean }>`\n width: 100%;\n height: 100%;\n display: none;\n justify-content: center;\n align-items: center;\n\n ${({ newPdDesign }) =>\n newPdDesign\n ? css`\n overflow: hidden;\n mix-blend-mode: multiply;\n > img,\n > ${VideoWrapper} {\n max-height: 25rem;\n @media (min-width: ${breakpoints.lg}) {\n max-height: min(85%, 28.125rem);\n max-width: min(85%, 28.125rem);\n }\n }\n `\n : css`\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n `};\n\n @media (min-width: ${breakpoints.md}) {\n display: flex;\n }\n`;\n\nexport const VideoWrapper = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: 100%;\n }\n\n :hover {\n cursor: pointer;\n svg {\n opacity: 0.95;\n }\n }\n\n svg {\n opacity: 0.8;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n`;\n","import { getImageAttributes } from '@notino/react-web-utils';\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nexport const getImagesAttributes = (\n images: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]['imagesByCategory']['mainImage'][],\n domain: string,\n sourceKey: string\n) => images.map((image) => getImageAttributes(image, domain, sourceKey));\n","import { getImageAttributes } from '@notino/react-web-utils';\n\nexport const getVideoAttrs = (video: string, type: string = 'default') =>\n getImageAttributes(\n {\n src: `https://i.ytimg.com/vi/${video}/${type}.jpg`,\n alt: `${video}`,\n isVideo: true,\n },\n '',\n 'video'\n );\n","import * as React from 'react';\n\nimport {\n Colors,\n PlayCircleIcon,\n ModalContext,\n ModalModel,\n} from '@notino/react-styleguide';\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { ModalGallery } from '@components/ModalGallery';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\n\nimport { useNewPdDesignEnabled } from '../hooks/useNewPdDesignEnabled';\n\nimport { THUMBS_SLIDER_CONFIG } from './constants';\nimport { ImageSlider } from './ImageSlider';\nimport { MainImage } from './MainImg';\nimport { ModiFaceOverlay } from './ModiFaceOverlay';\nimport {\n Container,\n MainImgWrapper,\n ImageWrapper,\n VideoWrapper,\n StyledCol,\n PictogramWrapper,\n} from './styled';\nimport { Thumbs } from './Thumbs';\nimport { ScrollThumbs } from './Thumbs/ScrollThumbs';\nimport { trackProductImageClick } from './tracking';\nimport { getImagesAttributes, getVideoAttrs } from './utils';\n\nexport interface IProductImageGalleryProps {\n images: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]['imagesByCategory'];\n videos: string[];\n domain: string;\n hasModiface?: boolean;\n modifaceMobileEnabled?: boolean;\n modifaceDesktopEnabled?: boolean;\n openModifaceModal?: () => void;\n isBrandLogoVisible?: boolean;\n pictogram?: JSX.Element | null;\n variantId: string;\n}\n\nexport const ProductImageGallery: React.FC = ({\n domain,\n images,\n videos,\n openModifaceModal,\n hasModiface = false,\n modifaceMobileEnabled = false,\n modifaceDesktopEnabled = false,\n isBrandLogoVisible = false,\n pictogram,\n variantId,\n}) => {\n const [imageIndex, setImageIndex] = React.useState(0);\n const newPdDesign = useNewPdDesignEnabled();\n const { toggleModal, hideModal } = ModalContext.useModalContext();\n\n const { getTimeFromInit } = useTrackingContext();\n\n React.useEffect(() => {\n setImageIndex(0);\n }, [images]);\n\n const { imagesAttrsOrder, imagesAttrsZoom, imagesAttrsOriginal } =\n React.useMemo(() => {\n const imagesArray = [\n images.mainImage,\n images.previewImage,\n ...images.others,\n ].filter((item) => item);\n\n const [mainImage, ...otherImages] = imagesArray;\n return {\n imagesAttrsOrder: [\n ...getImagesAttributes(imagesArray, domain, 'order'),\n ...videos.map((video) => getVideoAttrs(video)),\n ],\n imagesAttrsZoom: getImagesAttributes(imagesArray, domain, 'zoomImage'),\n imagesAttrsOriginal: [\n // let first image be in a little worse quality, so it loads faster for better LCP and UX\n ...getImagesAttributes([mainImage], domain, 'detailMain'),\n ...getImagesAttributes(otherImages, domain, 'detailGallery'),\n ],\n };\n }, [images, domain, videos]);\n\n const handleMainImageClick = React.useCallback(\n (imgIndex?: number) => (e: React.MouseEvent) => {\n e.stopPropagation();\n trackProductImageClick({\n timing: getTimeFromInit(),\n });\n\n if (imgIndex) {\n setImageIndex(imgIndex);\n }\n\n toggleModal(\n ,\n {\n center: true,\n size: ModalModel.Sizes.s1200,\n onlyTopBorder: true,\n noBorders: true,\n }\n );\n },\n [\n getTimeFromInit,\n toggleModal,\n hideModal,\n imagesAttrsOrder,\n imagesAttrsZoom,\n videos,\n ]\n );\n\n const videoIndex = imageIndex - imagesAttrsOriginal.length;\n const isVideo: boolean = videoIndex >= 0;\n\n const modifaceEnabledMobile = hasModiface && modifaceMobileEnabled;\n const modifaceEnabledDesktop = hasModiface && modifaceDesktopEnabled;\n\n return (\n \n {pictogram ? (\n {pictogram}\n ) : null}\n\n \n\n \n \n \n {!isVideo && (\n \n )}\n\n {isVideo && (\n \n \n\n \n \n )}\n\n {modifaceEnabledDesktop && imageIndex === 0 && (\n {\n e.stopPropagation();\n openModifaceModal();\n }}\n />\n )}\n \n \n\n {imagesAttrsOrder.length > 1 && !newPdDesign && (\n \n )}\n\n {imagesAttrsOrder.length > 1 && newPdDesign && (\n \n )}\n \n \n );\n};\n","import { Offer, AggregateRating } from 'schema-dts';\n\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { IVoucherDiscount } from '../ProductBaseInfo/VoucherDiscount/VoucherDiscount';\n\nconst SOURCE_KEY = 'order_2k';\n\nconst getImageAddress = (src: string, imageDomainPath: string) =>\n `${imageDomainPath}${SOURCE_KEY}/${src}`;\n\nexport const getMainImageSrc = (\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number],\n imageDomainPath: string\n): string | null =>\n variant.imagesByCategory && variant.imagesByCategory.mainImage\n ? getImageAddress(variant.imagesByCategory.mainImage.src, imageDomainPath)\n : null;\n\nexport const getImagesSrc = (\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number],\n imageDomainPath: string\n): string[] => {\n const result = [];\n\n if (variant.imagesByCategory) {\n const mainImageSrc = getMainImageSrc(variant, imageDomainPath);\n if (mainImageSrc) {\n result.push(mainImageSrc);\n }\n if (variant.imagesByCategory.others) {\n variant.imagesByCategory.others.forEach((image) =>\n result.push(getImageAddress(image.src, imageDomainPath))\n );\n }\n }\n\n return result;\n};\n\nconst getItemAvailability = (\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]\n) => {\n if (\n variant.stockAvailability.code === IStock.outOfStock &&\n variant.showWatchdog\n ) {\n return 'https://schema.org/LimitedAvailability';\n }\n if (variant.stockAvailability.code === IStock.outOfStock) {\n return 'https://schema.org/OutOfStock';\n }\n return 'https://schema.org/InStock';\n};\n\nexport const getVariantOffer = (\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number],\n product: GetProductViewQuery['productDetailByMasterId'][number],\n imageDomainPath: string,\n hasJsonLdOfferVoucherPrice: boolean\n): Offer => {\n const variantMainImageSrc = getMainImageSrc(variant, imageDomainPath);\n const discount: IVoucherDiscount = variant.attributes.VoucherDiscount;\n const price =\n hasJsonLdOfferVoucherPrice && discount\n ? discount.discountedPrice\n : variant.price.value;\n\n return {\n '@type': 'Offer',\n name: `${product.brand} ${variant.name} ${variant.additionalInfo || ''}`,\n availability: getItemAvailability(variant),\n ...(variant.price && {\n price,\n priceCurrency: variant.price.currency,\n }),\n sku: variant.productCode,\n url: variant.url,\n ...(variantMainImageSrc && {\n image: variantMainImageSrc,\n }),\n };\n};\n\nexport const getAggregateRating = (\n reviewOverview: GetProductViewQuery['productDetailByMasterId'][number]['reviewOverview']\n): AggregateRating => ({\n '@type': 'AggregateRating',\n bestRating: '5',\n worstRating: '1',\n ratingValue: reviewOverview.rating,\n ratingCount: reviewOverview.count,\n});\n","import * as React from 'react';\n\nimport { ReactFCC } from '@notino/react-styleguide';\n\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\nimport { registerKeyboardListeners } from '@helpers/accessibility/registerKeyboardListeners';\nimport { useTabSwitcher } from '@sharedComponents/TabSwitcher/context/TabSwitcherContext';\nimport { useTabLink } from '@sharedComponents/TabSwitcher/useTabLink';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\n\nimport { LinkWrapper } from './styled';\n\ninterface IContentTabLinkProps {\n tabId: number;\n isDefaultTab?: boolean;\n id: string;\n trackingLabel?: string;\n ariaControls?: string;\n}\n\nexport const ContentTabLink: ReactFCC = ({\n tabId,\n isDefaultTab = false,\n trackingLabel,\n id,\n children,\n ariaControls,\n}) => {\n const ref = React.useRef();\n const { getTimeFromInit } = useTrackingContext();\n const { isActive, setActiveTabHandler } = useTabLink(tabId, isDefaultTab);\n const { register, selectNext, selectPrevious } = useTabSwitcher();\n const newDesign = useNewPdDesignEnabled();\n\n React.useEffect(() => {\n register(tabId, ref);\n }, [register, tabId]);\n\n const handleClick = () => {\n setActiveTabHandler();\n if (trackingLabel) {\n dispatchTrackingEvent({\n event: 'subpage_view',\n subpage: {\n name: trackingLabel,\n type: 'tab',\n interaction: 'click',\n timing: getTimeFromInit(),\n action: 'click_on_tab',\n },\n _clear: true,\n });\n }\n };\n\n return (\n \n {children}\n \n );\n};\n","import { useTabSwitcher } from './context/TabSwitcherContext';\nimport { REVIEW_TAB_ID } from './TabLink';\n\nexport const useTabLink = (tabId: number, isDefaultTab?: boolean) => {\n const { activeTabId, setActiveTab, toggleIsReviewTabVisibleOnMobile } =\n useTabSwitcher();\n const setActiveTabHandler = () => {\n setActiveTab(tabId);\n\n if (tabId === REVIEW_TAB_ID) {\n toggleIsReviewTabVisibleOnMobile();\n }\n };\n\n const isActive: boolean =\n (typeof activeTabId === 'undefined' && isDefaultTab) ||\n activeTabId === tabId;\n\n return { isActive, setActiveTabHandler };\n};\n","import styled, { css } from 'styled-components';\n\nimport {\n breakpoints,\n IBasicStyledProps,\n theme,\n} from '@notino/react-styleguide';\ninterface IActiveTab extends IBasicStyledProps {\n isActive?: boolean;\n newDesign?: boolean;\n}\n\nexport const Container = styled.div<{ newPdDesignEnabled?: boolean }>`\n max-width: 64.6875rem;\n width: 100%;\n margin: 0 auto;\n position: relative;\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled &&\n css`\n max-width: 80rem;\n @media (min-width: 105rem) {\n max-width: 100rem;\n }\n `}\n`;\n\nexport const ContentSwitcherContainer = styled.div<{\n newPdDesignEnabled: boolean;\n}>`\n display: none;\n @media (min-width: ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled ? breakpoints.lg : breakpoints.md}) {\n display: block;\n margin-top: 4.0625rem;\n }\n`;\n\nexport const ContentSwitcherWrapper = styled.div`\n text-align: left;\n width: 100%;\n background: ${(props: IBasicStyledProps) => props.theme.palette.basicInverse};\n`;\n\nexport const TabList = styled.div`\n position: relative;\n`;\n\nconst HoveredTab = css`\n border-bottom: 1px solid ${(props) => props.theme.palette.basic};\n padding-bottom: 13px;\n`;\n\nexport const LinkWrapper = styled.button`\n color: ${theme.palette.basic};\n cursor: pointer;\n position: relative;\n border: 0;\n border-bottom: 3px solid\n ${(props: IActiveTab) =>\n props.isActive\n ? props.theme.palette.basic\n : props.theme.palette.transparent};\n background: transparent;\n\n display: inline-block;\n list-style-type: none;\n padding: 0.625rem 0 0.6875rem;\n margin-right: 1.875rem;\n\n &:hover {\n ${(props) => (props.isActive ? null : HoveredTab)}\n }\n z-index: 1;\n\n ${({ newDesign, isActive }) =>\n newDesign &&\n css`\n color: ${isActive ? theme.palette.basic : theme.palette.neutralDarker};\n font-weight: ${isActive ? 500 : 400};\n `}\n`;\n\nexport const ReviewSummaryCount = styled.span`\n font-size: 0.75rem;\n color: ${theme.palette.neutralDark};\n`;\n","import * as React from 'react';\n\nimport { ReactFCC } from '@notino/react-styleguide';\n\nimport { TabIds } from '../model';\n\ninterface ITabsWithExpandableTextContext {\n tabsWithExpandableTextState: TTabsWithExpandableTextState;\n toggleTabOpening: (tabId: number) => void;\n toggleFullText: (tabId: number) => void;\n}\n\ninterface ITabsWithExpandableTextProviderProps {\n tabsWithExpandableText?: TabIds[];\n}\n\ntype TTabsWithExpandableTextState = Record<\n number,\n { isTabOpenForTheFirstTime: boolean; shouldShowFullText: boolean }\n>;\n\nconst TabsWithExpandableTextContext =\n React.createContext(null);\n\nexport const TabsWithExpandableTextProvider: ReactFCC<\n ITabsWithExpandableTextProviderProps\n> = ({ children, tabsWithExpandableText }) => {\n const initialState = React.useMemo(() => {\n return tabsWithExpandableText?.reduce(\n (acc, cur) => {\n acc[cur] = {\n isTabOpenForTheFirstTime: true,\n shouldShowFullText: false,\n };\n\n return acc;\n },\n {} as TTabsWithExpandableTextState\n );\n }, []);\n\n const [tabsWithExpandableTextState, setTabsWithExpandableTextState] =\n React.useState(initialState);\n\n const toggleTabOpening = React.useCallback(\n (tabId: number) => {\n if (tabsWithExpandableTextState && tabsWithExpandableTextState[tabId]) {\n setTabsWithExpandableTextState({\n ...tabsWithExpandableTextState,\n [tabId]: {\n ...tabsWithExpandableTextState[tabId],\n isTabOpenForTheFirstTime: false,\n },\n });\n }\n },\n [tabsWithExpandableTextState]\n );\n\n const toggleFullText = React.useCallback((tabId: number) => {\n if (tabsWithExpandableTextState && tabsWithExpandableTextState[tabId]) {\n setTabsWithExpandableTextState({\n ...tabsWithExpandableTextState,\n [tabId]: {\n ...tabsWithExpandableTextState[tabId],\n shouldShowFullText: true,\n },\n });\n }\n }, []);\n\n const value: ITabsWithExpandableTextContext = {\n toggleTabOpening,\n toggleFullText,\n tabsWithExpandableTextState,\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const useTabsWithExpandableText = () => {\n return React.useContext(TabsWithExpandableTextContext);\n};\n","import { ReactFCC } from '@notino/react-styleguide';\n\ninterface ILoadingWrapperProps {\n isLoading: boolean;\n isError: boolean;\n skeleton: JSX.Element;\n error: JSX.Element;\n}\n\nexport const LoadingWrapper: ReactFCC = ({\n isLoading,\n isError,\n error,\n skeleton,\n children,\n}) => {\n if (isLoading) {\n return skeleton;\n }\n if (isError) {\n return error;\n }\n\n return children as JSX.Element;\n};\n","import * as React from 'react';\n\nimport {\n Col,\n ReviewsSummaryWrapper,\n ReviewsWrapper,\n SkeletonElement,\n} from './styled';\n\nexport const ReviewSummarySkeleton: React.FC = () => {\n return (\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import * as React from 'react';\n\nimport { arrayFromNumber } from '@helpers/utils';\n\nimport { SortBox } from '../ReviewItems/styled';\n\nimport { ReviewsWrapper, SkeletonElement, Row } from './styled';\n\nexport const ReviewsSkeleton: React.FC = () => {\n return (\n <>\n \n {arrayFromNumber(5).map((i) => (\n \n \n \n \n \n \n \n \n \n ))}\n \n );\n};\n","import {\n breakpoints,\n SkeletonElement as NotinoSkeletonElement,\n styled,\n} from '@notino/react-styleguide';\n\nexport const SkeletonElement = styled(NotinoSkeletonElement)<{\n marginY?: number;\n marginX?: number;\n}>`\n margin: ${({ marginY = 0 }) => marginY}rem ${({ marginX = 0 }) => marginX}rem;\n`;\n\nexport const Col = styled.div<{\n mobileWidth?: number;\n width: number;\n hideOnMobile?: boolean;\n}>`\n width: ${({ mobileWidth, width }) => mobileWidth ?? width}%;\n\n @media (min-width: ${breakpoints.md}) {\n width: ${({ width }) => width}%;\n }\n`;\nexport const ReviewsWrapper = styled(Col)`\n padding: 0.75rem 0;\n display: ${({ hideOnMobile = false }) => (hideOnMobile ? 'none' : 'flex')};\n flex-direction: column;\n @media (min-width: ${breakpoints.md}) {\n display: flex;\n }\n`;\n\nexport const Row = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const ReviewSkeleton = styled.div`\n width: 80%;\n`;\n\nexport const ReviewsSummaryWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n @media (min-width: ${breakpoints.md}) {\n flex-direction: row;\n }\n`;\n","import { ReviewOrderBy } from '@notino/shared/definitions/types';\n\nimport { IOrderBy } from '@containers/ProductDetailContainer/model';\n\nexport interface IReviewItemsContext {\n actions: IActions;\n state: IReviewItemsState;\n}\n\nexport interface IReviewItemsState {\n orderBy: ReviewOrderBy;\n orderDesc: boolean;\n page: number;\n nextPage: number;\n hideTranslated: boolean;\n allowHideTranslatedCheckbox: boolean;\n}\n\nexport interface IActions {\n changeOrder: (order: IOrderBy) => void;\n incNextPage: () => void;\n toggleHideTranslatedReviews: () => void;\n}\n\nexport enum ActionTypes {\n CHANGE_ORDER = 'CHANGE_ORDER',\n INC_NEXT_PAGE = 'INC_NEXT_PAGE',\n TOGGLE_HIDE_TRANSLATED_REVIEWS = 'TOGGLE_HIDE_TRANSLATED_REVIEWS',\n}\n\nexport type Action =\n | { type: ActionTypes.CHANGE_ORDER; value: IOrderBy }\n | { type: ActionTypes.INC_NEXT_PAGE }\n | { type: ActionTypes.TOGGLE_HIDE_TRANSLATED_REVIEWS };\n","import { ReviewOrderBy } from '@notino/shared/definitions/types';\n\nimport { Action, ActionTypes, IReviewItemsState } from './model';\n\nexport const initialState: IReviewItemsState = {\n orderBy: ReviewOrderBy.DateTime,\n orderDesc: true,\n page: 1,\n nextPage: 2,\n hideTranslated: false,\n allowHideTranslatedCheckbox: false,\n};\n\nexport const reducer = (\n state: IReviewItemsState,\n action: Action\n): IReviewItemsState => {\n switch (action.type) {\n case ActionTypes.CHANGE_ORDER:\n if (\n state.orderBy === action.value.key &&\n state.orderDesc === action.value.desc\n ) {\n return state;\n }\n return {\n ...state,\n orderBy: action.value.key,\n orderDesc: action.value.desc,\n page: 1,\n nextPage: 2,\n };\n case ActionTypes.INC_NEXT_PAGE: {\n return {\n ...state,\n nextPage: state.nextPage + 1,\n };\n }\n case ActionTypes.TOGGLE_HIDE_TRANSLATED_REVIEWS: {\n return {\n ...state,\n hideTranslated: !state.hideTranslated,\n allowHideTranslatedCheckbox:\n state.allowHideTranslatedCheckbox || !state.hideTranslated,\n };\n }\n default:\n return state;\n }\n};\n","import * as React from 'react';\n\nimport { ReactFCC } from '@notino/react-styleguide';\n\nimport { IReviewItemsContext } from './model';\nimport { reducer, initialState } from './reducer';\nimport { useActions } from './useActions';\n\nconst initialContext = {\n state: initialState,\n actions: {},\n};\n\nconst ReviewItemsContext = React.createContext(\n initialContext as IReviewItemsContext\n);\n\nexport const ReviewItemsProvider: ReactFCC = ({ children }) => {\n const [state, dispatch] = React.useReducer(reducer, initialState);\n\n const actions = useActions(dispatch);\n const value = React.useMemo(() => ({ state, actions }), [state, actions]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const useReviewItemsContext = () => React.useContext(ReviewItemsContext);\n","import * as React from 'react';\n\nimport { IOrderBy } from '@containers/ProductDetailContainer/model';\n\nimport { Action, ActionTypes, IActions } from './model';\n\nexport const useActions = (dispatch: React.Dispatch): IActions => {\n return React.useMemo(\n () => ({\n changeOrder: (order: IOrderBy) => {\n dispatch({ type: ActionTypes.CHANGE_ORDER, value: order });\n },\n incNextPage: () => {\n dispatch({ type: ActionTypes.INC_NEXT_PAGE });\n },\n toggleHideTranslatedReviews: () => {\n dispatch({ type: ActionTypes.TOGGLE_HIDE_TRANSLATED_REVIEWS });\n },\n }),\n [dispatch]\n );\n};\n","import styled from 'styled-components';\n\nexport const ReviewsFetch = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 3.125rem 0;\n font-size: 0.875rem;\n svg {\n margin-right: 0.5rem;\n }\n a {\n text-decoration: underline;\n text-transform: lowercase;\n cursor: pointer;\n }\n`;\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { Col, Colors, WarningIcon } from '@notino/react-styleguide';\n\nimport messages from '../../../../../messages';\n\nimport { ReviewsFetch } from './styled';\n\ninterface IFailedBlockProps {\n loadReviews: () => void;\n}\n\nexport const FetchBlockFailed: React.FC = ({\n loadReviews,\n}) => (\n \n \n \n
\n \n \n);\n","import { VoteType, GetReviewsQuery } from '@notino/shared/definitions/types';\n\nexport const canBeVoted = (\n review: GetReviewsQuery['reviews'][number],\n likeDislike: string\n) =>\n (!review.alreadyLiked && !review.alreadyDisliked) ||\n (review.alreadyLiked && likeDislike === VoteType.Like) ||\n (review.alreadyDisliked && likeDislike === VoteType.Dislike);\n","import styled from 'styled-components';\n\nimport { Tag, Link, theme } from '@notino/react-styleguide';\n\nexport const ReviewMotivationTag = styled(Tag)`\n font-size: 0.75rem;\n text-transform: none;\n padding: 0.25rem 0.375rem;\n\n ${(props: { isVerified: boolean }) =>\n props.isVerified && `color: ${theme.palette.success};`}\n`;\n\nexport const TooltipContent = styled.div`\n max-width: max-content;\n width: 15rem;\n padding: 0.5rem;\n`;\n\nexport const MoreInfoLink = styled(Link)`\n margin-left: 0.25rem;\n text-decoration: underline;\n`;\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { TagModel, TooltipModel } from '@notino/react-styleguide';\nimport { AuthorType } from '@notino/shared/definitions/types';\n\nimport { PortalTooltip } from '@components/PortalTooltip';\nimport { registerKeyboardListeners } from '@helpers/accessibility/registerKeyboardListeners';\n\nimport { messages, messages as reviewMessages } from '../../../messages';\n\nimport { ReviewMotivationTag, MoreInfoLink } from './styled';\n\ninterface IReviewMotivationProps {\n authorType: AuthorType;\n}\n\nexport const ReviewMotivation: React.FC = ({\n authorType,\n}) => {\n const [isOpen, setOpen] = React.useState(false);\n const { formatMessage } = useIntl();\n\n const title = formatMessage(\n reviewMessages[`review${String(authorType)}Title`]\n );\n\n if (title === 'null') {\n return null;\n }\n\n const tooltip = formatMessage(\n reviewMessages[`review${String(authorType)}Description`]\n );\n const moreInfoLink = formatMessage(\n reviewMessages[`review${String(authorType)}MoreLink`]\n );\n\n const authorTag = (\n \n setOpen(false)}\n {...registerKeyboardListeners({\n Enter: () => setOpen((prev) => !prev),\n })}\n >\n {title}\n \n \n );\n\n if (tooltip === 'null') {\n return authorTag;\n }\n\n return (\n \n {tooltip}\n\n {moreInfoLink !== 'null' && (\n \n {formatMessage(messages.reviewMoreText)}\n \n )}\n \n }\n // true || undefined => cuz when undefined, tooltip is uncontrolled\n isOpen={isOpen || undefined}\n interactive={true}\n position={TooltipModel.Position.topCenter}\n >\n {authorTag}\n \n );\n};\n","import styled, { css, keyframes } from 'styled-components';\n\nimport {\n breakpoints,\n IBasicStyledProps,\n theme,\n} from '@notino/react-styleguide';\n\nimport { RequestState } from '@containers/App/model';\n\nexport const WasItUsefulWrapper = styled.div`\n display: flex;\n`;\n\nexport const WasItUseful = styled.span<{ newPdDesignEnabled: boolean }>`\n display: inline-flex;\n align-items: center;\n padding-right: ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled ? '0.75rem' : '0.9375rem'};\n`;\n\nexport const Vote = styled.a`\n padding-right: 0.3125rem;\n text-decoration: underline;\n user-select: none;\n`;\n\nexport const Separator = styled.span`\n color: ${(props) => props.theme.palette.neutral};\n margin-right: 0.375rem;\n`;\n\nexport const TooltipWrapper = styled.div`\n position: absolute;\n width: 100%;\n height: 1rem;\n left: 0;\n top: 0;\n transform: translateY(-50%);\n padding-right: 0.625rem;\n z-index: 81;\n`;\n\nexport const TooltipBox = styled.div`\n width: 1rem;\n height: 1rem;\n`;\n\nexport const ErrorMsg = styled.div`\n padding: 0.5rem;\n color: ${theme.palette.danger};\n`;\n\nexport const Votes = styled.div`\n display: flex;\n align-items: center;\n line-height: 0;\n`;\n\nconst voting = keyframes`\n 50% { color: ${theme.palette.neutralDarker}; }\n`;\n\nconst votingSuccess = keyframes`\n 0% { transform: scale(1); }\n 50% { transform: scale(1.2); }\n 100% { transform: scale(1); }\n`;\n\nconst votingFailed = keyframes`\n 10%, 90% { transform: translate3d(-1px, 0, 0); }\n 20%, 80% { transform: translate3d(2px, 0, 0); }\n 30%, 50%, 70% { transform: translate3d(-4px, 0, 0); }\n 40%, 60% { transform: translate3d(4px, 0, 0); }\n`;\n\nconst VotingInProgress = css`\n animation: ${voting} 1s ease infinite;\n`;\n\nconst VotingSuccess = css`\n transition: all 1s ease;\n animation: ${votingSuccess} 0.8s ease;\n`;\n\nconst VotingFailed = css`\n transition: all 1s ease;\n animation: ${votingFailed} 0.8s ease;\n`;\n\nexport interface IVoteWrapperProps extends IBasicStyledProps {\n state: RequestState;\n voted: boolean;\n}\n\nexport const VoteWrapper = styled.button`\n display: flex;\n align-items: center;\n margin-right: 0.375rem;\n position: relative;\n cursor: pointer;\n user-select: none;\n\n background: none;\n border: none;\n font-size: 0.75rem;\n color: ${theme.palette.neutralDarker};\n\n font-weight: ${(props: IVoteWrapperProps) =>\n props.voted && props.state !== RequestState.IN_PROGRESS ? 700 : 300};\n\n @media only screen and (hover: hover) {\n &:hover a {\n text-decoration: none;\n }\n }\n\n a {\n margin-right: 0.125rem;\n transition: all 0.4s ease;\n\n ${(props: IVoteWrapperProps) =>\n props.state === RequestState.DONE ? VotingSuccess : ''};\n ${(props: IVoteWrapperProps) =>\n props.state === RequestState.FAILED ? VotingFailed : ''};\n ${(props: IVoteWrapperProps) =>\n props.state === RequestState.IN_PROGRESS ? VotingInProgress : ''};\n }\n`;\n\nexport const ReviewItem = styled.li<{ newPdDesignEnabled: boolean }>`\n margin-top: 2.5rem;\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n ${theme.typography.bodyRegular}\n @media (min-width: ${breakpoints.lg}) {\n ${theme.typography.bodyLarge}\n }\n `\n : css`\n font-size: 0.875rem;\n `}\n`;\n\nexport const ReviewDetails = styled.div<{ newPdDesignEnabled: boolean }>`\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n color: ${(props) => props.theme.palette.basic};\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n ${theme.typography.labelRegular}\n margin-top: 0.75rem;\n `\n : css`\n font-size: 0.8rem;\n line-height: 1.5rem;\n margin-top: 0.375rem;\n `}\n > *:not(:last-child) {\n margin-right: 0.75rem;\n }\n`;\n\nexport const Name = styled.div`\n font-size: 0.75rem;\n font-weight: bold;\n`;\n\nexport const Date = styled.div<{ newPdDesignEnabled: boolean }>`\n ${({ newPdDesignEnabled }) => !newPdDesignEnabled && 'font-size: 0.75rem;'}\n`;\n\nexport const CheckboxWrapper = styled.div`\n margin: 1rem 0;\n`;\n\nexport const ReviewSource = styled.div`\n color: ${theme.palette.neutralDark};\n border-bottom: 1px ${theme.palette.neutralDark} dashed;\n line-height: 1.5;\n cursor: pointer;\n`;\n","import * as React from 'react';\nimport { MessageDescriptor, FormattedMessage } from 'react-intl';\n\nimport { Tooltip, TooltipModel, ReactFCC } from '@notino/react-styleguide';\n\nimport { RequestState } from '@containers/App/model';\n\nimport messages from '../../../../../messages';\n\nimport {\n Vote as StyledVote,\n VoteWrapper,\n TooltipWrapper,\n TooltipBox,\n ErrorMsg,\n} from './styled';\n\ninterface IVoteProps {\n message: MessageDescriptor;\n onClick: () => void;\n state: RequestState;\n voted?: boolean;\n describedBy?: string;\n}\n\nexport const Vote: ReactFCC = ({\n children,\n message,\n onClick,\n state,\n voted,\n describedBy,\n}) => (\n \n {state === RequestState.FAILED && (\n \n \n \n \n }\n >\n \n \n \n )}\n \n \n \n {children}\n \n);\n","import * as React from 'react';\nimport { FormattedDate, FormattedMessage, useIntl } from 'react-intl';\n\nimport { useMutation } from '@apollo/client';\n\nimport { Colors, Ratings, Tooltip } from '@notino/react-styleguide';\nimport {\n VoteType,\n VoteAction,\n GetReviewsQuery,\n HandleVoteMutation,\n HandleVoteMutationVariables,\n} from '@notino/shared/definitions/types';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { RequestState } from '@containers/App/model';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport messages from '../../../../../messages';\nimport handleVoteMutationQuery from '../../queries/handleVote.graphql';\nimport { canBeVoted } from '../utils';\n\nimport { ReviewMotivation } from './ReviewMotivation';\nimport {\n WasItUsefulWrapper,\n WasItUseful,\n Separator,\n Votes,\n ReviewDetails,\n ReviewItem,\n Date,\n Name,\n ReviewSource,\n} from './styled';\nimport { Vote } from './Vote';\n\ninterface ISingleReviewProps {\n item: GetReviewsQuery['reviews'][number];\n index: number;\n}\n\nexport const SingleReviewData: React.FC = ({\n item,\n index,\n}) => {\n const { formatMessage } = useIntl();\n\n const newPdDesignEnabled = useNewPdDesignEnabled();\n\n const [\n { [VoteType.Like]: likeLoading, [VoteType.Dislike]: dislikeLoading },\n setState,\n ] = React.useState({\n [VoteType.Like]: RequestState.DEFAULT,\n [VoteType.Dislike]: RequestState.DEFAULT,\n });\n\n const [handleVoteMutation] = useMutation<\n HandleVoteMutation,\n HandleVoteMutationVariables\n >(handleVoteMutationQuery);\n\n const handleVote = async (type: VoteType) => {\n const unvote =\n (item.alreadyLiked && type === VoteType.Like) ||\n (item.alreadyDisliked && type === VoteType.Dislike);\n\n const otherType = type === VoteType.Like ? VoteType.Dislike : VoteType.Like;\n\n setState((old) => ({\n ...old,\n [type]: RequestState.IN_PROGRESS,\n [otherType]: RequestState.DEFAULT,\n }));\n\n try {\n await handleVoteMutation({\n variables: {\n id: item.id.toString(),\n type,\n action: unvote ? VoteAction.Remove : VoteAction.Add,\n },\n });\n\n setState((old) => ({\n ...old,\n [type]: RequestState.DONE,\n }));\n } catch (e) {\n setState((old) => ({\n ...old,\n [type]: RequestState.FAILED,\n }));\n }\n };\n\n const like = async () => {\n if (\n canBeVoted(item, VoteType.Like) &&\n likeLoading !== RequestState.IN_PROGRESS\n ) {\n await handleVote(VoteType.Like);\n }\n };\n\n const dislike = async () => {\n if (\n canBeVoted(item, VoteType.Dislike) &&\n dislikeLoading !== RequestState.IN_PROGRESS\n ) {\n await handleVote(VoteType.Dislike);\n }\n };\n\n return (\n \n {item.text}\n \n \n\n \n {item.originalShopId ? (\n \n ) : (\n item.userName\n )}\n \n\n {item.translatedFrom && (\n \n \n \n \n \n )}\n\n \n \n \n\n \n \n \n \n\n \n \n {item.like}\n \n\n |\n\n \n {item.dislike}\n \n \n \n\n \n \n \n \n \n );\n};\n","import * as React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport { ObservableQueryFields } from '@apollo/client';\n\nimport { ButtonModel, Checkbox } from '@notino/react-styleguide';\nimport {\n GetReviewsQuery,\n GetReviewsQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport { useShouldShowReviewPage } from '@containers/ProductDetailContainer/ProductDetail/hooks/useShouldShowReviewPage';\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\nimport { useProductView } from '@context/product-view';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nimport messages from '../../../../../messages';\nimport { PAGE_SIZE } from '../../constants';\nimport { useReviewItemsContext } from '../context';\nimport {\n ShowNextWrapper,\n StyledButton,\n StyledCol,\n ReviewsList,\n ShowAllReviewsLink,\n} from '../styled';\n\nimport { SingleReviewData } from './SingleReviewData';\nimport { CheckboxWrapper } from './styled';\n\ninterface IFetchDoneProps {\n textReviewsCount: number;\n items: GetReviewsQuery['reviews'];\n productCode: string;\n isAllReviewsPage?: boolean;\n loadReviews: ObservableQueryFields<\n GetReviewsQuery,\n GetReviewsQueryVariables\n >['fetchMore'];\n}\n\nexport const FetchDoneBlock: React.FC = ({\n textReviewsCount,\n items,\n productCode,\n loadReviews,\n isAllReviewsPage,\n}) => {\n const { pdHasAllReviewsPage } = useFeatureFlags();\n const newDesign = useNewPdDesignEnabled();\n const { getTimeFromInit } = useTrackingContext();\n const [isLoading, setLoading] = React.useState(false);\n const {\n state: {\n orderBy,\n orderDesc,\n nextPage,\n hideTranslated,\n allowHideTranslatedCheckbox,\n },\n actions: { incNextPage, toggleHideTranslatedReviews },\n } = useReviewItemsContext();\n\n const [loadMoreError, setLoadMoreError] = React.useState(false);\n const { product } = useProductView();\n const { formatMessage } = useIntl();\n\n const handleLoadMore = React.useCallback(async () => {\n try {\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n action: 'show_more_reviews',\n type: isAllReviewsPage ? 'review' : 'product_detail',\n timing: getTimeFromInit(),\n interaction: 'click',\n name: 'reviews',\n promo_labels: undefined,\n mode: undefined,\n },\n _clear: true,\n });\n\n setLoading(true);\n\n await loadReviews({\n variables: {\n code: productCode,\n orderBy,\n orderDesc,\n page: nextPage,\n pageSize: PAGE_SIZE,\n hideTranslated,\n },\n });\n incNextPage();\n } catch (e) {\n setLoadMoreError(true);\n } finally {\n setLoading(false);\n }\n }, [\n isAllReviewsPage,\n getTimeFromInit,\n loadReviews,\n productCode,\n orderBy,\n orderDesc,\n nextPage,\n hideTranslated,\n incNextPage,\n ]);\n\n const displayShowMoreButton = textReviewsCount > items.length;\n const { count: reviewCount, rating: ratingSummary } = product.reviewOverview;\n\n const shouldShowAllReviewsLink =\n useShouldShowReviewPage(reviewCount, ratingSummary) && !isAllReviewsPage;\n\n const allReviewsPageLink = pdHasAllReviewsPage\n ? formatMessage(messages.redirectReviewsPageLink)\n : null;\n\n const handleTrackShowAllReviews = () => {\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n action: 'all',\n type: 'product_detail',\n timing: getTimeFromInit(),\n name: 'all_reviews',\n },\n _clear: true,\n });\n };\n\n return (\n <>\n \n {((items.some((item) => item.translatedFrom) &&\n items.some((item) => !item.translatedFrom)) ||\n allowHideTranslatedCheckbox) && (\n \n \n \n \n \n )}\n\n \n {items?.map((item, index) => (\n \n ))}\n \n \n\n {displayShowMoreButton && (\n \n \n \n \n \n\n {shouldShowAllReviewsLink && (\n \n \n \n )}\n \n \n )}\n \n );\n};\n","import styled from 'styled-components';\n\nimport { keyframes } from '@notino/react-styleguide';\n\nconst rotation8Steps = keyframes`\n 0%, 100% { transform: rotate(0deg); }\n 12.5% { transform: rotate(45deg); }\n 25% { transform: rotate(90deg); }\n 37.5% { transform: rotate(135deg); }\n 50% { transform: rotate(180deg); }\n 62.5% { transform: rotate(225deg); }\n 75% { transform: rotate(270deg); }\n 87.5% { transform: rotate(315deg); }\n`;\n\ninterface IReviewsFetchingProps {\n minHeight?: string;\n}\n\nexport const ReviewsFetching = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n margin: 3.125rem 0;\n min-height: ${({ minHeight = 'auto' }) => minHeight};\n svg {\n animation: ${rotation8Steps} 1s infinite step-start;\n }\n`;\n","import * as React from 'react';\n\nimport { Col, Colors, SpinnerIcon } from '@notino/react-styleguide';\n\nimport { REVIEW_ITEM_HEIGHT } from '../../constants';\n\nimport { ReviewsFetching } from './styled';\n\ninterface IFetchingBlockProps {\n reviewsCount?: number;\n}\n\nexport const FetchingBlock: React.FC = ({\n reviewsCount,\n}) => (\n \n \n \n \n \n);\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { ApolloError, ObservableQueryFields } from '@apollo/client';\n\nimport { Select } from '@notino/react-styleguide';\nimport {\n ReviewOrderBy,\n GetReviewsQuery,\n GetReviewsQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { IOrderBy } from '@containers/ProductDetailContainer/model';\n\nimport messages from '../../../../messages';\nimport { PAGE_SIZE } from '../constants';\n\nimport { useReviewItemsContext } from './context';\nimport { FetchBlockFailed } from './FetchBlockFailed';\nimport { FetchDoneBlock } from './FetchDoneBlock';\nimport { FetchingBlock } from './FetchingBlock';\nimport { SortBox, StyledCol, StyledRow } from './styled';\n\ninterface IReviewsItemsProps {\n textReviewsCount: number;\n isAllReviewsPage?: boolean;\n refetch: () => void;\n fetchMore: ObservableQueryFields<\n GetReviewsQuery,\n GetReviewsQueryVariables\n >['fetchMore'];\n reviews: GetReviewsQuery['reviews'];\n productCode: string;\n reviewsLoading: boolean;\n reviewsError: ApolloError;\n}\n\nconst orderByOptions: IOrderBy[] = [\n { key: ReviewOrderBy.DateTime, desc: true },\n { key: ReviewOrderBy.DateTime, desc: false },\n { key: ReviewOrderBy.Rating, desc: true },\n { key: ReviewOrderBy.Rating, desc: false },\n { key: ReviewOrderBy.Favorite, desc: true },\n { key: ReviewOrderBy.Favorite, desc: false },\n];\n\nconst selectKeyboardConfig = {\n keyNavigation: true,\n};\n\nexport const ReviewsItems: React.FC = ({\n refetch,\n fetchMore,\n reviews,\n reviewsLoading,\n reviewsError,\n productCode,\n textReviewsCount,\n isAllReviewsPage,\n}) => {\n const { formatMessage } = useIntl();\n const {\n state: { orderBy: currentOrderBy, orderDesc: currentOrderDesc },\n actions: { changeOrder },\n } = useReviewItemsContext();\n const lastReview = React.useRef(0);\n\n if (!reviewsLoading && reviews.length > 0) {\n lastReview.current = reviews.length;\n }\n\n const onSortSelect = React.useCallback(\n (option) => {\n const orderBy = orderByOptions[option.id];\n changeOrder(orderBy);\n },\n [changeOrder]\n );\n\n const options = React.useMemo(\n () =>\n orderByOptions.map((orderBy, index) => ({\n id: index,\n label: formatMessage(\n messages[\n `orderReviewsBy${orderBy.key}${orderBy.desc ? 'Desc' : 'Asc'}`\n ]\n ),\n key: orderBy.key,\n desc: orderBy.desc,\n })),\n [formatMessage]\n );\n\n return (\n \n {(reviews.length > 0 || lastReview.current > 0) && (\n <>\n \n \n \n option.key === currentOrderBy &&\n option.desc === currentOrderDesc\n )}\n keyNavigationConfig={selectKeyboardConfig}\n options={options}\n borderless={true}\n handleOptionSelect={onSortSelect}\n />\n \n \n\n {reviews.length > 0 && (\n \n \n \n )}\n \n )}\n\n {reviews.length === 0 && reviewsLoading && (\n \n )}\n\n {reviews.length === 0 && reviewsError && (\n \n )}\n \n );\n};\n","import styled, { css } from 'styled-components';\n\nimport { Row, Col, ActionButton, breakpoints } from '@notino/react-styleguide';\n\nexport const SortBox = styled.div`\n font-size: 0.925rem;\n border-bottom: 1px solid ${(props) => props.theme.palette.neutralLighter};\n margin-top: 1.25rem;\n`;\n\nexport const ShowNextWrapper = styled.div<{\n shouldShowAllReviewsLink: boolean;\n}>`\n display: flex;\n margin-top: 3rem;\n margin-bottom: 1.25rem;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n @media (min-width: ${breakpoints.md}) {\n ${({ shouldShowAllReviewsLink }) =>\n shouldShowAllReviewsLink &&\n css`\n flex-direction: row;\n justify-content: space-between;\n `}\n }\n`;\n\nexport const ShowAllReviewsLink = styled('a')`\n display: block;\n color: #000;\n text-decoration: underline;\n cursor: pointer;\n margin-top: 1.3rem;\n\n @media (min-width: ${breakpoints.md}) {\n margin-top: 0rem;\n }\n`;\n\nexport const StyledButton = styled(ActionButton)<{\n newDesign: boolean;\n}>`\n padding: 0 0.5625rem !important;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n font-weight: 500 !important;\n `\n : css`\n font-weight: normal !important;\n `}\n`;\n\nexport const StyledRow = styled(Row)`\n display: flex !important;\n margin: 0;\n`;\n\nexport const StyledCol = styled(Col)`\n padding: 0;\n`;\n\nexport const ReviewsList = styled.ol`\n list-style: none;\n margin-left: 0 !important; // important to override layout styles\n\n overflow-x: hidden;\n @media (min-width: ${breakpoints.md}) {\n overflow-x: unset;\n }\n`;\n","import loadable from '@loadable/component';\n\nexport const ReviewsForm = loadable(() => import('./'));\n","var e,s,f,l;f=s||(s={}),function(e){e.default=\"default\",e.inverse=\"inverse\",e.success=\"success\"}(l||(l={})),f.Styles=l;var t=((e={})[s.Styles.default]={fill:\"#ffffff\",stroke:\"#000000\"},e[s.Styles.inverse]={fill:\"#B2B2B2\",stroke:\"#000000\"},e[s.Styles.success]={fill:\"#dff5dd\",stroke:\"#328b30\"},e);export{s as CheckCircleIconModel,t as CheckCircleIconStyles};\n//# sourceMappingURL=CheckCircleIconModel.js.map\n","import{a as e,_ as t}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as l from\"react\";import{CheckCircleIconModel as r,CheckCircleIconStyles as n}from\"./CheckCircleIconModel.js\";import{Icon as o}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var a=[\"iconStyle\",\"border\"],i=function(i){var m=i.iconStyle,c=void 0===m?r.Styles.default:m,s=i.border,f=void 0===s||s,p=e(i,a),d=n[c],E=d.stroke,u=d.fill;return l.createElement(o,t({},p,{viewBox:\"0 0 67 67\"}),l.createElement(\"g\",{stroke:\"none\",strokeWidth:\"1\",fill:\"none\",fillRule:\"evenodd\"},l.createElement(\"g\",{transform:\"translate(1.000000, 1.000000)\"},l.createElement(\"circle\",{fill:u,stroke:f?E:\"none\",cx:\"32\",cy:\"32\",r:\"32\"}),l.createElement(\"g\",{transform:\"translate(12.000000, 12.000000)\"},l.createElement(\"mask\",{fill:\"white\"},l.createElement(\"polygon\",{points:\"6.8796875 21.1302083 5 23.0098958 13.4140625 31.4239583 34.6296875 10.2130208 32.75 8.33333333 13.4140625 27.6692708\"})),l.createElement(\"polygon\",{fill:E,fillRule:\"nonzero\",points:\"6.8796875 21.1302083 5 23.0098958 13.4140625 31.4239583 34.6296875 10.2130208 32.75 8.33333333 13.4140625 27.6692708\"}),l.createElement(\"mask\",null,l.createElement(\"g\",null,l.createElement(\"g\",null,l.createElement(\"rect\",{x:\"0\",y:\"0\",width:\"40\",height:\"40\"}))))))))};export{i as CheckCircleIcon};\n//# sourceMappingURL=CheckCircleIcon.js.map\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n reviewSent: {\n id: 'pd.reviews.review.sent',\n defaultMessage: 'Hodnocení odesláno',\n },\n reviewSentThanks: {\n id: 'pd.reviews.review.sent.thanks',\n defaultMessage:\n 'Děkujeme, že pomáháte ostatním zákazníkům s lepším výběrem',\n },\n});\n","import styled from 'styled-components';\n\nimport { theme } from '@notino/react-styleguide';\n\nexport const ReviewsSentSuccesModalWrapper = styled.div`\n margin: 3rem;\n text-align: center;\n`;\n\nexport const ReviewSentText = styled.div`\n font-size: 1.75rem;\n line-height: 1.2;\n font-weight: 300;\n margin-top: 2rem;\n margin-bottom: 1rem;\n`;\n\nexport const ReviewSentThanksText = styled.div`\n font-size: 0.875rem;\n color: ${theme.palette.neutralDarker};\n`;\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { CheckCircleIcon, Colors } from '@notino/react-styleguide';\n\nimport { messages } from './messages';\nimport {\n ReviewSentText,\n ReviewSentThanksText,\n ReviewsSentSuccesModalWrapper,\n} from './styled';\n\nexport const ReviewsSentSuccessModalBody: React.FC = () => {\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n","import styled from 'styled-components';\n\nimport { Row, Col } from '@notino/react-styleguide';\n\ninterface IRatingRow {\n isFirst: boolean;\n}\n\nexport const RatingRow = styled.div`\n display: flex;\n align-items: center;\n font-size: 0.8rem;\n height: 1.875rem;\n margin-top: ${(props: IRatingRow) => (props.isFirst ? '-0.6875rem' : '0')};\n`;\n\nexport const RatingsValue = styled.div`\n min-width: 7.5rem;\n display: flex;\n`;\n\nexport const ShowLink = styled.div`\n text-decoration: underline;\n cursor: pointer;\n font-size: 0.925rem;\n margin: 1.25rem 0;\n`;\n\nexport const StyledRow = styled(Row)`\n display: flex !important;\n margin: 0;\n`;\n\nexport const StyledCol = styled(Col)`\n padding: 0;\n`;\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\ninterface IAttributesReviewsProps {\n visible: boolean;\n}\n\nexport const AttributesReviews = styled.div`\n display: ${(props: IAttributesReviewsProps) =>\n props.visible ? 'block' : 'none'};\n @media (min-width: ${breakpoints.md}) {\n display: block;\n margin-top: 3.125rem;\n }\n`;\n\nexport const ParamProgressWrapper = styled.div`\n width: 50%;\n padding-right: 0.625rem;\n`;\n\nexport const ParamValue = styled.div<{ newPdDesignEnabled: boolean }>`\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n ${theme.typography.labelSmall400};\n `\n : css`\n font-size: 0.75rem;\n line-height: 1.2;\n `}\n width: 50%;\n`;\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport ProgressBar from '@components/ProgressBar';\nimport { IRating } from '@containers/ProductDetailContainer/model';\n\nimport messages from '../../../../../messages';\nimport { useNewPdDesignEnabled } from '../../../../hooks/useNewPdDesignEnabled';\nimport { StyledCol, RatingRow } from '../styled';\n\nimport { AttributesReviews, ParamProgressWrapper, ParamValue } from './styled';\n\ninterface IAttributesSummaryProps {\n ratings: IRating[];\n showAttributesReviews: boolean;\n}\n\nexport const AttributesSummary: React.FC = ({\n ratings,\n showAttributesReviews,\n}) => {\n const newPdDesignEnabled = useNewPdDesignEnabled();\n return (\n \n \n {ratings.map((rating, ratingKey) => (\n \n \n \n \n \n \n \n \n ))}\n \n \n );\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, Ratings, Button } from '@notino/react-styleguide';\n\ninterface IHeaderProps {\n baseline?: boolean;\n}\n\nexport const Header = styled.div`\n height: 3.125rem;\n line-height: 3.125rem;\n display: flex;\n align-items: ${(props: IHeaderProps) =>\n props.baseline ? 'baseline' : 'center'};\n font-size: 0.875rem;\n\n strong {\n font-size: 1.125rem;\n padding-right: 0.3125rem;\n }\n`;\n\nexport const NoReviewText = styled.div`\n padding-bottom: 1.25rem;\n`;\n\nexport const OverallValue = styled.span<{ newDesign: boolean }>`\n display: inline-block;\n box-sizing: content-box;\n padding-right: 0.625rem;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n font-size: 1.5rem;\n font-weight: 500;\n line-height: 2rem;\n `\n : css`\n font-size: 1.875rem;\n font-weight: bold;\n width: 2.8125rem;\n `}\n`;\n\nexport const StyledButton = styled(Button)<{ newDesign: boolean }>`\n margin-bottom: 1.25rem;\n font-weight: normal;\n\n @media (min-width: ${breakpoints.md}) {\n margin: 0;\n }\n\n ${({ newDesign }) =>\n newDesign &&\n css`\n font-weight: 500;\n `}\n`;\n\nexport const StyledRatings = styled(Ratings)`\n display: inline-block !important;\n`;\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { Colors, ButtonModel } from '@notino/react-styleguide';\n\nimport { IReviewSummary } from '@containers/ProductDetailContainer/model';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport messages from '../../../../../messages';\nimport { StyledCol } from '../styled';\n\nimport {\n Header,\n NoReviewText,\n OverallValue,\n StyledButton,\n StyledRatings,\n} from './styled';\n\ninterface IHeaderProps {\n hasReviews: boolean;\n isAllReviewsPage?: boolean;\n reviewSummary: IReviewSummary;\n onWriteMessageClick: () => void;\n}\n\nexport const ReviewHeader = ({\n hasReviews,\n reviewSummary,\n onWriteMessageClick,\n isAllReviewsPage,\n}: IHeaderProps) => {\n const newDesign = useNewPdDesignEnabled();\n const headerColProps = hasReviews ? { md: 3 } : {};\n\n const buttonStyle = isAllReviewsPage\n ? ButtonModel.Styles.secondary\n : ButtonModel.Styles.primary;\n\n return (\n \n
\n {hasReviews && (\n \n {reviewSummary.averageRating.toFixed(1)}\n \n )}\n\n \n
\n\n {!hasReviews && (\n \n \n \n )}\n\n \n \n \n
\n );\n};\n","import * as React from 'react';\n\nimport { ModalModel, ModalContext } from '@notino/react-styleguide';\n\nimport {\n ReviewSourceTypes,\n IRating,\n} from '@containers/ProductDetailContainer/model';\n\nimport { shouldOpenReviewModal } from '../../utils/shouldOpenReviewModal';\n\nimport { ReviewsForm } from './ReviewsFormModalBody/loadable';\nimport { ReviewsSentSuccessModalBody } from './ReviewsSentSuccesModal';\n\ninterface IUseReviewModalParameters {\n ratings: IRating[];\n productCode: string;\n masterId: string;\n isAllReviewsPage?: boolean;\n}\n\nconst MODAL_OPTIONS = {\n size: ModalModel.Sizes.default,\n type: ModalModel.Types.default,\n header: null,\n center: false,\n noBorders: true,\n withFocusTrap: true,\n};\nexport const useReviewModal = ({\n ratings,\n productCode,\n masterId,\n isAllReviewsPage,\n}: IUseReviewModalParameters) => {\n const { toggleModal } = ModalContext.useModalContext();\n const [success, markAsSuccess] = React.useReducer(() => true, false);\n\n React.useEffect(() => {\n const reviewSource = shouldOpenReviewModal();\n if (reviewSource) {\n toggleModal(\n
\n \n
,\n MODAL_OPTIONS\n );\n }\n }, [masterId, productCode, ratings, toggleModal]);\n\n return React.useCallback(() => {\n toggleModal(\n
\n {success ? (\n \n ) : (\n \n )}\n
,\n MODAL_OPTIONS\n );\n }, [masterId, productCode, ratings, toggleModal, success, isAllReviewsPage]);\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nexport const ProgressWrapper = styled.div`\n flex: 1 1;\n padding-right: 0.625rem;\n display: inline-block;\n`;\n\nexport const RatingsValue = styled.div`\n min-width: 7.5rem;\n display: flex;\n`;\n\nexport const StarsBox = styled.div`\n display: inline-block;\n`;\n\nexport const StarsValue = styled.div<{ newPdDesignEnabled: boolean }>`\n display: inline-block;\n width: 2.1875rem;\n padding-right: 0.625rem;\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n ${theme.typography.labelSmall400};\n `\n : css`\n font-size: 0.75rem;\n `}\n`;\n\nexport const StarReviews = styled.div`\n margin-top: 1.5rem;\n\n @media (min-width: ${breakpoints.md}) {\n margin-top: 3.125rem;\n }\n`;\n","import * as React from 'react';\n\nimport { StarIcon } from '@notino/react-styleguide';\n\nimport ProgressBar from '@components/ProgressBar';\nimport { IReviewSummary } from '@containers/ProductDetailContainer/model';\nimport { arrayFromNumber } from '@helpers/utils';\n\nimport { useNewPdDesignEnabled } from '../../../../hooks/useNewPdDesignEnabled';\nimport { RatingRow, StyledCol } from '../styled';\n\nimport {\n ProgressWrapper,\n RatingsValue,\n StarsBox,\n StarsValue,\n StarReviews,\n} from './styled';\n\ninterface IStarSummaryProps {\n reviewSummary: IReviewSummary;\n}\n\nexport const StarsSummary: React.FC = ({\n reviewSummary,\n}) => {\n const newPdDesignEnabled = useNewPdDesignEnabled();\n return (\n \n \n {Object.keys(reviewSummary.votes)\n .sort()\n .reverse()\n .map((stars, index) => (\n \n \n \n \n \n \n {reviewSummary.votes[stars]}\n \n \n {arrayFromNumber(parseInt(stars, 10)).map((i) => (\n \n ))}\n \n \n \n ))}\n \n \n );\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { IReviewSummary } from '@containers/ProductDetailContainer/model';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nimport messages from '../../../../messages';\n\nimport { AttributesSummary } from './AttributesSummary';\nimport { ReviewHeader } from './ReviewHeader';\nimport { useReviewModal } from './ReviewModal/useReviewModal';\nimport { StarsSummary } from './StarsSummary';\nimport { ShowLink, StyledRow, StyledCol } from './styled';\n\ninterface IReviewsSummaryProps {\n reviewSummary: IReviewSummary;\n productCode: string;\n isAllReviewsPage?: boolean;\n masterId: string;\n}\n\nexport const ReviewsSummary: React.FC = React.memo(\n ({ reviewSummary, productCode, masterId, isAllReviewsPage }) => {\n const { getTimeFromInit } = useTrackingContext();\n\n const [showAttributesReviews, toggleAttributesReviews] = React.useReducer(\n (prev) => !prev,\n false\n );\n\n const openReviewModal = useReviewModal({\n ratings: reviewSummary.ratings,\n productCode,\n masterId,\n isAllReviewsPage,\n });\n\n const handleAddNewReview = () => {\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n action: 'wt_add_review',\n interaction: 'click',\n name: 'review',\n type: isAllReviewsPage ? 'review' : 'product_detail',\n mode: 'open',\n promo_labels: undefined,\n timing: getTimeFromInit(),\n },\n _clear: true,\n });\n\n openReviewModal();\n };\n\n if (!reviewSummary) {\n return null;\n }\n\n const hasReviews = reviewSummary.totalVotes > 0;\n\n return (\n \n \n {hasReviews && (\n <>\n \n \n \n {showAttributesReviews ? (\n \n ) : (\n \n )}\n \n \n \n \n )}\n \n );\n }\n);\n","export const PAGE_SIZE = 5;\nexport const MODAL_AUTO_CLOSE_TIMEOUT = 5000;\nexport const REVIEW_ITEM_HEIGHT = 4.75; // rem\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n reviewsSummaryFailed: {\n id: 'pd.reviews.fail.summary',\n defaultMessage: 'Nepodařilo se načíst souhrn recenzí',\n },\n reviewsFailed: {\n id: 'pd.reviews.fail.reviews',\n defaultMessage: 'Nepodařilo se načíst recenze',\n },\n reviewMotivatedTitle: {\n id: 'pd.reviews.motivated.title',\n defaultMessage: 'Dárek',\n },\n reviewUnknownTitle: {\n id: 'pd.reviews.unknown.title',\n defaultMessage: 'Neověřená recenze',\n },\n reviewVerifiedTitle: {\n id: 'pd.reviews.verified.title',\n defaultMessage: 'Ověřená recenze',\n },\n reviewMotivatedDescription: {\n id: 'pd.reviews.motivated.description',\n defaultMessage:\n 'Recenzovaný produkt od nás dostal autor recenze zdarma jako dárek.',\n },\n reviewUnknownDescription: {\n id: 'pd.reviews.unknown.description',\n defaultMessage:\n 'Recenzovaný produkt si u nás autor recenze nekoupil nebo jeho nákup nemůžeme ověřit.',\n },\n reviewVerifiedDescription: {\n id: 'pd.reviews.verified.description',\n defaultMessage:\n 'Recenzovaný produkt si u nás autor recenze opravdu koupil.',\n },\n reviewMotivatedMoreLink: {\n id: 'pd.reviews.motivated.more.link',\n defaultMessage: 'null',\n },\n reviewUnknownMoreLink: {\n id: 'pd.reviews.unknown.more.link',\n defaultMessage: 'null',\n },\n reviewVerifiedMoreLink: {\n id: 'pd.reviews.verified.more.link',\n defaultMessage: 'null',\n },\n reviewMoreText: {\n id: 'pd.reviews.verified.more.text',\n defaultMessage: 'Více informací',\n },\n tryAgain: {\n id: 'reviews.send.review.retry',\n defaultMessage: 'Zkusit znovu',\n },\n collectingReviewsText: {\n id: 'pd.reviews.collect.reviews.text',\n defaultMessage: 'Jak sbíráme recenze',\n },\n collectingReviewsLink: {\n id: 'pd.reviews.collect.reviews.link',\n defaultMessage: '/produktove-recenze',\n },\n});\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints } from '@notino/react-styleguide';\n\nexport const Wrapper = styled.div<{ newPd: boolean }>`\n ${({ newPd }) =>\n newPd &&\n css`\n width: 100%;\n @media (min-width: ${breakpoints.lg}) {\n padding-right: 2rem;\n }\n `}\n`;\n\nexport const CenterWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n padding: 0.75rem 0;\n`;\n\nexport const ErrorMessage = styled.span`\n font-size: 0.875rem;\n`;\n\nexport const CollectReviewsWrapper = styled.div`\n margin-bottom: 1rem;\n\n display: flex;\n gap: 0.06rem;\n align-items: center;\n`;\n\nexport const CollectReviewsLink = styled('a')`\n color: #404040;\n font-size: 0.75rem;\n\n &:hover {\n text-decoration: none;\n color: #000;\n }\n`;\n","import { ReviewSourceTypes } from '@containers/ProductDetailContainer/model';\n\nexport const shouldOpenReviewModal = (): ReviewSourceTypes => {\n if (typeof location !== 'undefined' && location.search) {\n const searchParams = new URLSearchParams(location.search);\n return searchParams.get('mail') === '1'\n ? ReviewSourceTypes.EMAIL\n : searchParams.get('reviewLogin') === 'true'\n ? ReviewSourceTypes.DIRECT\n : null;\n }\n return null;\n};\n","import loadable from '@loadable/component';\n\nexport const RichContentArea = loadable(() => import('../RichContentArea'));\n","import { useEffect } from 'react';\n\nexport const REVIEW_DIGEST_LOCAL_STORAGE_KEY = 'nushop-review-digest';\nexport const REVIEW_DIGEST_TOKEN_QUERY_KEY = 'reviewDigest';\nexport const REVIEW_DIGEST_VALID_TO_QUERY_KEY = 'validTo';\n\ntype ReviewDigest = { token: string; validTo: string };\n\nexport const useHandleReviewDigest = () => {\n useEffect(() => {\n deleteInvalidDigestsFromLS();\n const params = new URLSearchParams(window.location.search);\n\n if (params.has(REVIEW_DIGEST_TOKEN_QUERY_KEY)) {\n addNewDigestToLS(\n params.get(REVIEW_DIGEST_TOKEN_QUERY_KEY),\n params.get(REVIEW_DIGEST_VALID_TO_QUERY_KEY)\n );\n }\n }, []);\n};\n\nexport const getReviewDigestsFromBrowser = () =>\n getValidDigestsOnly().map((x) => x.token);\n\nconst getDigestsFromLS = (): ReviewDigest[] => {\n const data = localStorage.getItem(REVIEW_DIGEST_LOCAL_STORAGE_KEY);\n if (!data) {\n return [];\n }\n try {\n const parsed = JSON.parse(data);\n if (!Array.isArray(parsed)) {\n return [];\n }\n return parsed;\n } catch (err) {\n return [];\n }\n};\n\nconst getValidDigestsOnly = () =>\n getDigestsFromLS().filter(\n (digest) => digest.token && isDigestValid(digest.validTo)\n );\n\nconst saveToLS = (digests: ReviewDigest[]) => {\n localStorage.setItem(\n REVIEW_DIGEST_LOCAL_STORAGE_KEY,\n JSON.stringify(digests)\n );\n};\n\nconst deleteInvalidDigestsFromLS = () => saveToLS(getValidDigestsOnly());\n\nconst isDigestValid = (validTo: string) => new Date(validTo) > new Date();\n\nconst addNewDigestToLS = (token: string, validTo: string) => {\n const existing = getValidDigestsOnly();\n if (existing.some((x) => x.token === token) || !isDigestValid(validTo)) {\n return;\n }\n const digest: ReviewDigest = { token, validTo };\n saveToLS([...existing, digest]);\n};\n","import { Tabs } from '../../model';\n\ninterface IRenderConditions {\n shouldRenderDescriptionTab: boolean;\n shouldRenderLivestreamsTab: boolean;\n}\n\nexport const getDefaultTab = ({\n shouldRenderDescriptionTab,\n shouldRenderLivestreamsTab,\n}: IRenderConditions) => {\n if (shouldRenderLivestreamsTab) {\n return Tabs.Livestreams;\n }\n\n if (shouldRenderDescriptionTab) {\n return Tabs.Description;\n }\n\n return Tabs.AboutBrand;\n};\n","import { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nexport const getProductFullName = (\n product: GetProductViewQuery['productDetailByMasterId'][number]\n): string =>\n [\n product.brandInfo && product.brandInfo.name,\n product.collection,\n product.subName,\n ]\n .filter(Boolean)\n .join(' ');\n","import { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { isEmpty } from '@helpers/utils';\n\ninterface IGetDescriptionIndex {\n description: string;\n composition: GetProductViewQuery['productDetailByMasterId'][number]['composition'];\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number];\n}\nexport const getDescriptionIndex = ({\n description,\n composition,\n variant,\n}: IGetDescriptionIndex) => {\n if (\n !isEmpty(description) ||\n composition.length > 0 ||\n variant.characteristics.length > 0\n ) {\n return 'prodDescriptionTabName';\n }\n return '';\n};\n","import * as React from 'react';\n\nimport { useQuery, QueryHookOptions } from '@apollo/client';\n\nimport {\n GetProductsByIdBatchedQuery,\n GetProductsByIdBatchedQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport getProductsByIdBatchedQuery from '@components/Universals/BatchVPProductQuery/queries/productsByIdBatched.graphql';\n\ntype Options = {\n filterNullProducts?: boolean;\n} & Partial<\n Omit<\n QueryHookOptions<\n GetProductsByIdBatchedQuery,\n GetProductsByIdBatchedQueryVariables\n >,\n 'variables'\n >\n>;\n\nexport const useProductsByIdsBatched = (\n ids: string[],\n {\n filterNullProducts = true,\n skip = false,\n ssr = false,\n errorPolicy = 'all',\n onCompleted,\n ...restOptions\n }: Options = {}\n) => {\n const { data, ...restResponse } = useQuery<\n GetProductsByIdBatchedQuery,\n GetProductsByIdBatchedQueryVariables\n >(getProductsByIdBatchedQuery, {\n // we have to check if ids.length === 0 to avoid call to api with empty ids\n skip: ids.length === 0 || skip,\n errorPolicy,\n ssr,\n variables: {\n ids,\n },\n onCompleted: filterNullProducts\n ? (response) => {\n onCompleted?.({\n ...response,\n vpProductByIds: response.vpProductByIds?.filter(Boolean),\n });\n }\n : onCompleted,\n ...restOptions,\n });\n\n const products = React.useMemo(() => {\n if (!data) {\n return data;\n }\n return {\n ...data,\n vpProductByIds: filterNullProducts\n ? data.vpProductByIds?.filter(Boolean)\n : data.vpProductByIds,\n };\n }, [filterNullProducts, data]);\n\n return {\n data: products,\n ...restResponse,\n };\n};\n","import styled from 'styled-components';\n\nimport { breakpoints, css } from '@notino/react-styleguide';\n\nimport { TitleCSS } from '../styled';\n\nexport const Title = styled.div`\n ${TitleCSS}\n`;\n\ninterface IContainerProps {\n withDivider: boolean;\n newPdDesignEnabled: boolean;\n}\n\nexport const Container = styled.section`\n ${({ newPdDesignEnabled }) =>\n !newPdDesignEnabled &&\n css`\n margin: 0 -0.9375rem;\n `}\n box-sizing: border-box;\n display: flex;\n @media (min-width: ${breakpoints.md}) {\n margin: 0;\n border-top: 0;\n }\n`;\n\nexport const MarginWrapper = styled.div<{ newPdDesignEnabled: boolean }>`\n height: inherit;\n margin: 1rem 0;\n width: 100%;\n\n @media (min-width: ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled ? breakpoints.lg : breakpoints.md}) {\n margin: 0;\n }\n`;\n","import * as React from 'react';\nimport { FormattedMessage, MessageDescriptor } from 'react-intl';\n\nimport { Divider } from '@components/Divider';\n\nimport { useNewPdDesignEnabled } from '../hooks/useNewPdDesignEnabled';\nimport { Clear } from '../styled';\n\nimport { Container, MarginWrapper, Title } from './styled';\n\nexport interface ISectionContainerProps {\n titleMessage?: MessageDescriptor;\n titleId?: string;\n containerId?: string;\n listLabel?: string;\n withDivider?: boolean;\n children: React.ReactNode;\n}\n\nexport const SectionContainer = React.forwardRef<\n HTMLDivElement,\n ISectionContainerProps\n>(({ containerId, withDivider, titleId, titleMessage, children }, ref) => {\n const newPdDesignEnabled = useNewPdDesignEnabled();\n return (\n <>\n \n \n {withDivider && }\n\n {Boolean(titleMessage) && (\n \n <FormattedMessage {...titleMessage} />\n \n )}\n\n {children}\n \n \n\n \n \n );\n});\n","import * as React from 'react';\n\nimport { dispatchNotinoEvent } from '@utils/notino-events';\n\ninterface Options {\n section: string;\n}\n\nconst EMPTY: Options = {\n section: undefined,\n};\n\nexport const dispatchProductsShownEvent = (\n products:\n | Array<{\n id: number | string;\n attributes?: { Pharmacy?: boolean };\n } | null>\n | null\n | undefined,\n options = EMPTY\n) => {\n if (products && Array.isArray(products)) {\n dispatchNotinoEvent({\n name: 'products:shown',\n payload: {\n section: options.section,\n products: products.filter(Boolean).map((product) => ({\n id: String(product.id),\n isPharmacy: Boolean(product.attributes?.Pharmacy),\n })),\n },\n });\n }\n};\n\nexport const useDispatchProductsShowEvent = (\n products: Array<{\n id: number | string;\n attributes?: { Pharmacy: boolean };\n }>,\n options = EMPTY\n) => {\n const { section } = options;\n React.useEffect(() => {\n dispatchProductsShownEvent(products, { section });\n }, [products, section]);\n};\n","import { useIntl } from 'react-intl';\n\nimport { useApolloClient } from '@apollo/client';\n\nimport { GetRequestHeadersQuery } from '@notino/shared/definitions/types';\n\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\n\nimport getRequestHeadersQuery from '../../../../queries/requestHeaders.graphql';\n\ntype Return =\n | {\n isDualPriceForCroatia: true;\n getRightSidePrice: (value: number) => number;\n getRightSideFormattedPrice: (value: number) => string;\n getLeftSidePrice: (value: number) => number;\n getLeftSideFormattedPrice: (value: number) => string;\n rightSideCurrency: string;\n rightSideCurrencyCode: string;\n leftSideCurrency: string;\n }\n | {\n isDualPriceForCroatia: false;\n getRightSidePrice: null;\n getRightSideFormattedPrice: null;\n getLeftSidePrice: null;\n getLeftSideFormattedPrice: null;\n rightSideCurrency: null;\n rightSideCurrencyCode: null;\n leftSideCurrency: null;\n };\n\nconst HRK_EUR_EXCHANGE_SEPTEMBER_2022 = 7.5345;\nconst EUR_HRK_EXCHANGE_SEPTEMBER_2022 = 1 / HRK_EUR_EXCHANGE_SEPTEMBER_2022;\n\nexport const useIsDualPriceForCroatia = (): Return => {\n const { dualCurrencyPrice } = useFeatureFlags();\n const { cache } = useApolloClient();\n const { formatNumber } = useIntl();\n\n if (!dualCurrencyPrice) {\n return {\n isDualPriceForCroatia: false,\n getRightSidePrice: null,\n getRightSideFormattedPrice: null,\n getLeftSidePrice: null,\n getLeftSideFormattedPrice: null,\n rightSideCurrency: null,\n leftSideCurrency: null,\n rightSideCurrencyCode: null,\n };\n }\n\n const {\n RequestHeaders: {\n hrkDefaultCurrency: { code, exchangeRates },\n },\n } = cache.readQuery({\n query: getRequestHeadersQuery,\n });\n\n const isEurBaseCurrency = code === 'EUR';\n const toEurRate = exchangeRates?.EUR || HRK_EUR_EXCHANGE_SEPTEMBER_2022;\n const toHrkRate = exchangeRates?.HRK || EUR_HRK_EXCHANGE_SEPTEMBER_2022;\n const exchangeRate = isEurBaseCurrency ? toHrkRate : toEurRate;\n const convert = (value: number) => value / exchangeRate;\n const format = (value: number) =>\n formatNumber(value, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n });\n\n const getRightSidePrice = (value: number) =>\n isEurBaseCurrency ? convert(value) : value;\n const getLeftSidePrice = (value: number) =>\n isEurBaseCurrency ? value : convert(value);\n\n return {\n isDualPriceForCroatia: true,\n getRightSidePrice,\n getLeftSidePrice,\n getRightSideFormattedPrice: (value) => format(getRightSidePrice(value)),\n getLeftSideFormattedPrice: (value) => format(getLeftSidePrice(value)),\n rightSideCurrency: 'kn',\n leftSideCurrency: '€',\n rightSideCurrencyCode: 'HRK',\n };\n};\n","import { useFeatureFlags } from '@context/launch-darkly/LDProvider';\n\nexport const useNewPdDesignEnabled = () => {\n const { newPdDesign } = useFeatureFlags();\n return newPdDesign;\n};\n","import { useFeatureFlags } from '@context/launch-darkly/LDProvider';\n\nconst REVIEWS_MIN_COUNT = 3;\nconst RATING_MIN_COUNT = 3;\n\nexport const useShouldShowReviewPage = (\n reviewCount: number,\n ratingSummary: number\n) => {\n const { pdHasAllReviewsPage } = useFeatureFlags();\n\n return (\n reviewCount >= REVIEWS_MIN_COUNT &&\n ratingSummary >= RATING_MIN_COUNT &&\n pdHasAllReviewsPage\n );\n};\n","import * as React from 'react';\n\nimport { ProductDetailViewFragmentFragment } from '@notino/shared/definitions/types';\n\nimport { usePriceConfig } from '@components/PriceLabel/usePriceConfig';\n\nexport const useSsrProductUrl = (\n product: ProductDetailViewFragmentFragment\n) => {\n const { data: { currentLocale } = {} } = usePriceConfig();\n\n const xDefault = React.useMemo(() => {\n const findByCulture = (culture: string) =>\n product.alternateSites.find((site) => site.culture === culture);\n return (\n findByCulture('en-GB') ||\n findByCulture('cs-CZ') ||\n product.alternateSites[0]\n );\n }, [product.alternateSites]);\n\n const url = React.useMemo(\n () =>\n (\n product.alternateSites.find(\n (site) => site.culture === currentLocale?.tag\n ) || xDefault\n )?.link,\n [product, currentLocale, xDefault]\n );\n\n return { url, xDefault } as const;\n};\n","export enum Tabs {\n Description = 'description',\n // eslint-disable-next-line no-shadow\n RelatedArticles = 'relatedArticles',\n // eslint-disable-next-line no-shadow\n AboutBrand = 'aboutBrand',\n Livestreams = 'livestreams',\n}\n\nexport enum TabIds {\n Description = 1,\n Composition = 2,\n RelatedArticles = 3,\n AboutBrand = 4,\n RichContent = 5,\n Reviews = 6,\n Other = 7,\n Livestreams = 8,\n}\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme, Grid } from '@notino/react-styleguide';\n\nimport { ViewPort } from '@components';\n\nexport const Main = styled.div``;\n\nexport const Clear = styled.div`\n clear: both;\n`;\n\nexport const ProductTabContentGrid = styled(Grid)<{\n newPdDesignEnabled: boolean;\n}>`\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled &&\n css`\n padding-left: 0;\n padding-right: 0;\n margin-bottom: 2rem;\n @media (min-width: ${breakpoints.lg}) {\n margin-bottom: 4rem;\n }\n `}\n`;\n\nexport const TopSection = styled.div<{\n newPdDesign: boolean;\n isLoading?: boolean;\n}>`\n display: flex;\n flex-direction: column;\n position: relative;\n\n ${({ newPdDesign }) => css`\n @media (min-width: ${newPdDesign ? breakpoints.lg : breakpoints.md}) {\n flex-direction: row;\n }\n `}\n\n ${({ newPdDesign }) =>\n newPdDesign &&\n css`\n @media (min-width: ${breakpoints.lg}) {\n padding-top: 1.625rem;\n }\n `}\n\n ${({ newPdDesign, isLoading }) =>\n !newPdDesign &&\n !isLoading &&\n css`\n margin: 0 -0.9375rem;\n `}\n`;\n\nexport const GalleryWrapper = styled.div<{ newPdDesignEnabled: boolean }>`\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n @media (min-width: ${breakpoints.md}) {\n width: 100%;\n }\n @media (min-width: ${breakpoints.lg}) {\n height: 100%;\n padding-right: 2rem;\n padding-top: 1.25rem;\n width: 65%;\n }\n @media (min-width: ${breakpoints.xl}) {\n width: 70%;\n padding-right: 3rem;\n }\n `\n : css`\n @media (min-width: ${breakpoints.md}) {\n width: 42%;\n margin-top: 1rem;\n padding-right: 2rem;\n }\n `}\n`;\n\nexport const MainInfoWrapper = styled.div<{ newPdDesignEnabled: boolean }>`\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n @media (min-width: ${breakpoints.md}) {\n width: 100%;\n }\n @media (min-width: ${breakpoints.lg}) {\n width: 35%;\n }\n @media (min-width: ${breakpoints.xl}) {\n width: 30%;\n }\n `\n : css`\n @media (min-width: ${breakpoints.md}) {\n width: 58%;\n }\n `}\n`;\n\nexport const PDViewPort = styled(ViewPort)<{ newPdDesignEnabled: boolean }>`\n ${({ newPdDesignEnabled }) =>\n !newPdDesignEnabled &&\n css`\n padding-left: 16px;\n padding-right: 16px;\n `}\n`;\n\nexport const TitleCSS = css<{ newPdDesignEnabled: boolean }>`\n text-align: left !important;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n cursor: pointer;\n flex-basis: 100%;\n\n font-size: 1rem;\n line-height: 1.18;\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n font-weight: 500;\n @media (min-width: ${breakpoints.lg}) {\n ${theme.typography.titleLarge};\n }\n `\n : css`\n font-weight: bold;\n margin: 0.625rem 0 !important;\n `}\n\n @media (min-width: ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled ? breakpoints.lg : breakpoints.md}) {\n ${({ newPdDesignEnabled }) =>\n !newPdDesignEnabled &&\n css`\n font-size: 1.75rem !important;\n margin: 3rem 0 1.75rem !important;\n `}\n\n display: block;\n cursor: text;\n }\n`;\n\nexport const TitleWrapper = styled.div<{ newPdDesignEnabled: boolean }>`\n ${TitleCSS};\n`;\n\nexport const ProductTitleWrapper = styled.div<{ newPdDesignEnabled: boolean }>`\n text-align: left;\n display: inline-flex;\n align-items: flex-start;\n justify-content: space-between;\n cursor: pointer;\n flex-basis: 100%;\n width: 100%;\n margin: 0.625rem 0 !important;\n\n font-size: 1rem;\n line-height: 1.18;\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n display: flex;\n font-weight: 500;\n @media (min-width: ${breakpoints.lg}) {\n padding-left: 0;\n ${theme.typography.titleLarge};\n }\n `\n : css`\n font-weight: bold;\n @media (min-width: ${breakpoints.md}) {\n font-size: 1.75rem;\n }\n `}\n\n @media (min-width: ${breakpoints.md}) {\n cursor: text;\n }\n`;\n\ninterface IDescriptionTitleProps {\n fullWidth: boolean;\n}\n\nexport const DescriptionTitle = styled.div<{\n newPdDesignEnabled: boolean;\n fullWidth: boolean;\n}>`\n ${({ newPdDesignEnabled, fullWidth }) =>\n newPdDesignEnabled\n ? css`\n width: 100%;\n @media (min-width: ${breakpoints.lg}) {\n width: ${fullWidth ? '100%' : '65%'};\n }\n\n @media (min-width: ${breakpoints.xl}) {\n width: ${fullWidth ? '100%' : '70%'};\n }\n `\n : css`\n @media (min-width: ${breakpoints.md}) {\n width: ${(props: IDescriptionTitleProps) =>\n props.fullWidth ? '100%' : '66%'};\n padding-right: ${(props: IDescriptionTitleProps) =>\n props.fullWidth ? '0' : '2rem'};\n }\n `}\n`;\n\nexport const CompositionTitle = styled.div`\n max-width: 66%;\n`;\n\nexport const CharacteristicsTitle = styled.div<{\n newPdDesignEnabled?: boolean;\n}>`\n visibility: hidden;\n\n @media (min-width: ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled ? breakpoints.lg : breakpoints.md}) {\n visibility: visible;\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n width: 100%;\n font-size: 1.5rem;\n margin-bottom: 1rem;\n @media (min-width: ${breakpoints.lg}) {\n width: 35%;\n }\n\n @media (min-width: ${breakpoints.xl}) {\n width: 30%;\n }\n `\n : css`\n width: 34%;\n `}\n }\n`;\n\nexport const TextNormal = styled.span<{ newPdDesignEnabled: boolean }>`\n display: none;\n\n @media (min-width: ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled ? breakpoints.lg : breakpoints.md}) {\n display: inline;\n ${({ newPdDesignEnabled }) =>\n !newPdDesignEnabled &&\n css`\n font-weight: 300;\n `}\n }\n`;\n\nexport const CommonContainer = styled.section`\n display: flex;\n`;\n\nexport const CommonMarginWrapper = styled.div`\n flex-basis: 100%;\n height: inherit;\n\n @media (min-width: ${breakpoints.md}) {\n margin: 0;\n }\n`;\n\nexport const PriceWrapper = styled.span``;\n\nexport const CurrencyWrapper = styled(PriceWrapper)`\n margin-left: 0.3rem;\n margin-right: 0.3rem;\n`;\n\nexport const ShowOnDesktop = styled.div<{ newPdDesign?: boolean }>`\n ${({ newPdDesign }) => css`\n display: none;\n @media (min-width: ${newPdDesign ? breakpoints.lg : breakpoints.md}) {\n display: block;\n }\n `}\n`;\n\nexport const ShowOnMobile = styled.div<{ newPdDesign?: boolean }>`\n ${({ newPdDesign }) => css`\n display: block;\n @media (min-width: ${newPdDesign ? breakpoints.lg : breakpoints.md}) {\n display: none;\n }\n `}\n`;\n\nexport const AbsoluteHeaderWrapper = styled.div<{\n newDesign: boolean;\n isLogoForBrandAvailable: boolean;\n}>`\n position: absolute;\n\n ${({ newDesign, isLogoForBrandAvailable }) =>\n newDesign\n ? css`\n top: ${isLogoForBrandAvailable ? '100px' : '60px'};\n @media (min-width: ${breakpoints.lg}) {\n all: unset;\n }\n `\n : css`\n top: ${isLogoForBrandAvailable ? '70px' : '34px'};\n @media (min-width: ${breakpoints.md}) {\n all: unset;\n }\n `}\n`;\n\nexport const AbsoluteTabsWrapper = styled.div<{\n newDesign: boolean;\n}>`\n ${({ newDesign }) =>\n newDesign &&\n css`\n width: 100%;\n position: absolute;\n top: 1400px; // this will be dynamically adjusted by useMoveTabsToMobilePlaceholder\n @media (min-width: ${breakpoints.lg}) {\n all: unset;\n }\n `}\n`;\n\nexport const ReviewSummaryCount = styled.span`\n margin-left: 0.5rem;\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1.125rem;\n color: ${theme.palette.neutralDark};\n @media (min-width: ${breakpoints.md}) {\n display: none;\n }\n`;\n","import { ApolloError } from '@apollo/client';\n\nimport {\n VariantFragmentFragment,\n GetProductViewQuery,\n} from '@notino/shared/definitions/types';\nimport {\n AdditionalServicesAvailability,\n LoyaltyDiscount,\n} from '@notino/web-tracking';\n\nimport { IEngraving } from './../../ProductListing/model';\nimport { IModifaceEffectVariants } from './ModiFaceModal/model';\n\nexport const getModifaceEffectsForVariant = (\n modifaceMakeUpData: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]['modifaceMakeUpData']\n) => {\n return modifaceMakeUpData.reduce((acc, effect) => {\n // Loop through shades\n const shades = effect.shades.map((shade) => ({\n ...shade,\n category: effect.category,\n }));\n return [...acc, ...shades];\n }, []);\n};\n\nexport const getModifaceVariants = (\n variants: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number][]\n): IModifaceEffectVariants => {\n return variants.reduce((result, { id, modifaceMakeUpData }) => {\n if (!modifaceMakeUpData || modifaceMakeUpData.length === 0) {\n return result;\n }\n\n // If it has modiface effect\n return {\n ...result,\n [id]: getModifaceEffectsForVariant(modifaceMakeUpData),\n };\n }, {});\n};\n\nexport const getModifaceAvailability = (\n hasModiface: boolean\n): AdditionalServicesAvailability =>\n hasModiface\n ? AdditionalServicesAvailability.available\n : AdditionalServicesAvailability.notAvailable;\n\nexport const getTryItFirstAvailability = (\n cartTryItFirstShow: boolean,\n tryItFirstCampaigns: GetProductViewQuery['productDetailByMasterId'][number]['campaigns'],\n selectedVariant: VariantFragmentFragment,\n additionalServicesError: ApolloError\n) => {\n if (additionalServicesError) {\n return AdditionalServicesAvailability.timeout;\n }\n\n if (!cartTryItFirstShow) {\n return AdditionalServicesAvailability.hidden;\n }\n\n if (\n tryItFirstCampaigns.some(\n (tryItFirstCampaign) =>\n tryItFirstCampaign.productId === selectedVariant.id\n )\n ) {\n return AdditionalServicesAvailability.available;\n }\n\n return AdditionalServicesAvailability.notAvailable;\n};\n\nexport const getEngravingAvailability = (\n cartEngravingShow: boolean,\n engraving: IEngraving,\n additionalServicesError: ApolloError\n): AdditionalServicesAvailability => {\n if (additionalServicesError) {\n return AdditionalServicesAvailability.timeout;\n }\n\n if (engraving.allowed) {\n return cartEngravingShow && engraving.config.isAvailable\n ? AdditionalServicesAvailability.available\n : AdditionalServicesAvailability.hidden;\n }\n\n return AdditionalServicesAvailability.notAvailable;\n};\n\nexport const getVariantDescription = (variant, product): string =>\n variant.attributes && variant.attributes.Master\n ? product.annotation\n : variant.variantName;\n\nexport const getLoyaltyDiscountState = (\n customerBenefits: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]['customerBenefits']\n) => {\n if (customerBenefits?.availableDiscount) {\n return LoyaltyDiscount.available;\n }\n\n if (customerBenefits?.customerDiscount) {\n return LoyaltyDiscount.active;\n }\n\n return LoyaltyDiscount.notAvailable;\n};\n\nexport const isGiftAvailable = (\n campaigns: GetProductViewQuery['productDetailByMasterId'][number]['campaigns']\n) => {\n return Boolean(\n campaigns.find(\n (campaign) =>\n campaign.displayOnDetailPage &&\n (campaign.detailPageText || campaign.text)\n )\n );\n};\n\nexport const getModifaceHairEffectsForVariant = (\n hairModifaceEffects: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]['hairModifaceEffects']\n) => {\n return hairModifaceEffects.reduce((acc, effect) => {\n // Loop through shades\n const shades = effect.shades.map((shade) => ({\n ...shade,\n category: effect.category,\n histogram: {\n r: shade.histogram_r,\n g: shade.histogram_g,\n b: shade.histogram_b,\n c: shade.histogram_c,\n totalpixels: shade.totalpixels,\n },\n }));\n return [...acc, ...shades];\n }, []);\n};\n\nexport const getModifaceHairVariants = (\n variants: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number][]\n): IModifaceEffectVariants => {\n return variants.reduce((result, { id, hairModifaceEffects }) => {\n if (!hairModifaceEffects || hairModifaceEffects.length === 0) {\n return result;\n }\n return {\n ...result,\n [id]: getModifaceHairEffectsForVariant(hairModifaceEffects),\n };\n }, {} as IModifaceEffectVariants);\n};\n","import { useQuery } from '@apollo/client';\n\nimport { GetSettingsQuery } from '@notino/shared/definitions/types';\n\nimport getSettingsQuery from './queries/getSettings.graphql';\n\nconst DEFAULT: GetSettingsQuery = {\n Settings: {\n showUnitPrices: null,\n __typename: 'Settings',\n isNewShoppingCartEndpointEnabled: null,\n },\n};\n\n/**\n * Feel free to extend this method to get more values if needed in future\n */\nexport const useSettings = (): GetSettingsQuery | Record => {\n const { data, error, loading } = useQuery(getSettingsQuery);\n\n if (error || loading || !data) {\n return DEFAULT;\n }\n\n return data;\n};\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n forbiddenDescription: {\n id: 'pd.forbidden.product.description',\n defaultMessage:\n 'Mrzí nás, že jste nenašli, co jste hledali. Věříme však, že si díky naší široké nabídce vyberete jiný produkt, který vám udělá radost.',\n },\n});\n","import styled from 'styled-components';\n\nimport { Heading, breakpoints } from '@notino/react-styleguide';\n\nexport const ForbiddenProductScreenWrapper = styled(Heading.H1)`\n margin: auto;\n display: block;\n min-height: 21.875rem;\n`;\n\nexport const TitleWrapper = styled.div`\n font-size: 1rem;\n display: flex;\n justify-content: center;\n padding-bottom: 1rem;\n @media (min-width: ${breakpoints.md}) {\n font-size: 1.5rem;\n }\n`;\n\nexport const Brand = styled.span`\n font-weight: 300;\n`;\n\nexport const Collection = styled.span`\n font-size: 1.125rem;\n font-weight: bold;\n margin-left: 0.5rem;\n\n @media (min-width: ${breakpoints.md}) {\n font-size: 1.5rem;\n }\n`;\n\nexport const ForbiddenInfoWrapper = styled.div`\n max-width: 50rem;\n text-align: left;\n font-size: 0.875rem;\n line-height: 1.5;\n font-weight: normal;\n\n @media (min-width: ${breakpoints.md}) {\n text-align: center;\n display: block;\n margin: auto;\n font-size: 1rem;\n }\n`;\nexport const ViewPort = styled.main`\n margin-top: 3.5rem;\n padding-bottom: 3.125rem;\n`;\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { messages } from './messages';\nimport {\n ForbiddenProductScreenWrapper,\n Collection,\n Brand,\n ForbiddenInfoWrapper,\n TitleWrapper,\n ViewPort,\n} from './styled';\n\ninterface IForbiddenProductScreenProps {\n product: GetProductViewQuery['productDetailByMasterId'][number];\n}\n\nexport const ForbiddenProductScreen: React.FC = ({\n product,\n}) => (\n \n \n \n {product.brand}\n {product.collection}\n \n \n \n \n \n \n);\n","import * as React from 'react';\nimport { useInView } from 'react-intersection-observer';\n\nimport { ReactFCC } from '@notino/react-styleguide';\n\nexport const RenderInView: ReactFCC = ({ children }) => {\n const [ref, inView] = useInView({ triggerOnce: true, rootMargin: '100px' });\n\n return
{inView ? children : null}
;\n};\n","import * as Sentry from '@sentry/browser';\n\ninterface MetaInformation {\n keywords: string;\n description: string;\n title: string;\n}\n\nexport const replaceMetaInformation = ({\n keywords,\n description,\n title,\n}: MetaInformation) => {\n try {\n const metaCollection =\n typeof document !== 'undefined' && document.getElementsByTagName('meta');\n if (metaCollection?.length > 0) {\n // eslint-disable-next-line\n const keywordsElement = metaCollection['keywords'];\n if (keywordsElement) {\n keywordsElement.content = keywords;\n }\n // eslint-disable-next-line\n const descriptionElement = metaCollection['description'];\n if (descriptionElement) {\n descriptionElement.content = description;\n }\n\n document.title = title;\n }\n } catch (e) {\n Sentry.captureMessage('Could not replace Meta Information', e);\n }\n};\n","import * as React from 'react';\nimport { Helmet } from 'react-helmet-async';\nimport { useLocation } from 'react-router';\n\nimport {\n ProductDetailViewFragmentFragment,\n VariantFragmentFragment,\n} from '@notino/shared/definitions/types';\n\nimport { useImageAttributes } from '@components/CdnImage/useImageAttributes';\n\nimport { useSsrProductUrl } from '../hooks/useSsrProductUrl';\n\nimport { replaceMetaInformation } from './utils';\n\ninterface HeaderMetaParams {\n product: ProductDetailViewFragmentFragment;\n variant: VariantFragmentFragment;\n}\n\nexport const HeadMeta = ({ product, variant }: HeaderMetaParams) => {\n const { url, xDefault } = useSsrProductUrl(product);\n const { pathname } = useLocation();\n const { src: imageSrc } = useImageAttributes(\n variant.imagesByCategory.mainImage.src,\n 'metaTag'\n );\n\n React.useEffect(() => {\n replaceMetaInformation({\n keywords: variant.seo.keywords,\n title: variant.seo.title,\n description: variant.seo.description,\n });\n }, [variant.seo.title, variant.seo.description, variant.seo.keywords]);\n\n const variantSite = /(\\/p-\\d+((\\/?)|(\\??.+)))$/;\n\n const showHrefLangs = !variantSite.test(pathname);\n\n return (\n \n \n \n \n \n \n \n \n\n {showHrefLangs\n ? product.alternateSites.map(({ link, culture }) => (\n \n ))\n : null}\n {showHrefLangs ? (\n \n ) : null}\n \n );\n};\n","const shim = (cb) => {\n return setTimeout(function () {\n const start = Date.now();\n cb({\n didTimeout: false,\n timeRemaining: function () {\n return Math.max(0, 50 - (Date.now() - start));\n },\n });\n }, 1);\n};\n\nconst isSupported = typeof requestIdleCallback !== 'undefined';\n\n// very optimistic shim\nconst requestIdleCallbackShim = isSupported ? requestIdleCallback : shim;\nconst cancelIdleCallbackShim = isSupported ? cancelIdleCallback : clearTimeout;\n\nexport {\n requestIdleCallbackShim as requestIdleCallback,\n cancelIdleCallbackShim as cancelIdleCallback,\n};\n","import * as Cookie from 'js-cookie';\n\nconst LAST_VISITED_PRODUCTS_COOKIE_KEY = 'lastProds';\nconst LAST_VISITED_PRODUCTS_COOKIE_DIVIDER = '-';\nconst MAX_COOKIE_ITEMS_COUNT = 15;\nconst YEAR_DAYS_COUNT = 365;\n\nconst getLastVisitedProducts = () => {\n try {\n return Cookie.get(LAST_VISITED_PRODUCTS_COOKIE_KEY);\n } catch (e) {\n return '';\n }\n};\n\nexport const loadProductsFromCookieOldestFirst = (): string[] => {\n const lastVisitedCookie = getLastVisitedProducts();\n const lastVisitedProductIdsCookie = lastVisitedCookie?.split(\n LAST_VISITED_PRODUCTS_COOKIE_DIVIDER\n );\n\n if (lastVisitedProductIdsCookie?.length) {\n return lastVisitedProductIdsCookie;\n }\n\n return [];\n};\n\nexport const appendProductToCookie = (productId: string) => {\n const productsWithoutCurrentProduct =\n loadProductsFromCookieOldestFirst().filter((id) => id !== productId);\n const productIds = [...productsWithoutCurrentProduct, productId].slice(\n -1 * MAX_COOKIE_ITEMS_COUNT\n );\n\n removeOldParfumsCookie();\n\n Cookie.set(\n LAST_VISITED_PRODUCTS_COOKIE_KEY,\n productIds.join(LAST_VISITED_PRODUCTS_COOKIE_DIVIDER),\n { expires: YEAR_DAYS_COUNT }\n );\n};\n\nconst removeOldParfumsCookie = () => {\n // eg. www.notino.cz\n const hostName = window.location.hostname;\n const allSubDomainsHostName = hostName.replace(/^(www\\.)/, '.');\n\n Cookie.remove(LAST_VISITED_PRODUCTS_COOKIE_KEY, {\n domain: allSubDomainsHostName,\n });\n};\n","import { useEffect } from 'react';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { EXCLUDE_FROM_LAST_VISITED } from '@utils/constants';\nimport { requestIdleCallback } from '@utils/requestIdleCallback';\n\nimport { appendProductToCookie } from './utils';\n\ntype IUseAddToLastVisited = Pick<\n GetProductViewQuery['productDetailByMasterId'][number],\n 'variants' | 'id'\n>;\n\nexport const useAddToLastVisited = ({ id, variants }: IUseAddToLastVisited) => {\n useEffect(() => {\n requestIdleCallback(() => {\n const canBuy = variants.some((variant) => variant.canBuy === true);\n\n const canSaveToLastVisited = variants.every(\n (variant) =>\n !variant.navigationValues.includes(EXCLUDE_FROM_LAST_VISITED)\n );\n if (canBuy && canSaveToLastVisited) {\n appendProductToCookie(id);\n }\n });\n }, [id, variants]);\n};\n","export const MIN_PRICE_PROMO_LABEL = 'min_price';\nexport const RRP_PRICE_PROMO_LABEL = 'rrp_price';\n","import {\n GetProductViewQuery,\n ProductDetailViewFragmentFragment,\n} from '@notino/shared/definitions/types';\nimport {\n AdditionalServicesAvailability,\n LoyaltyDiscount,\n} from '@notino/web-tracking';\nimport { VariantSelector } from '@notino/web-tracking/dist/types/package/ga4/events/constants';\n\nimport {\n runTrackingEventViewItem,\n runExponeaFunctions,\n} from '@containers/App/utils';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\nimport { ProductEventWither } from '@helpers/googleTagManager';\n\nimport {\n RRP_PRICE_PROMO_LABEL,\n MIN_PRICE_PROMO_LABEL,\n} from './hooks/usePriceLogic/tracking';\nimport { IModifaceEffectVariants } from './ModiFaceModal/model';\n\ninterface ITrackPageReloadParams {\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number];\n product: GetProductViewQuery['productDetailByMasterId'][number];\n modifaceVariants: IModifaceEffectVariants;\n engravingAvailable: AdditionalServicesAvailability;\n tryItFirstAvailable: AdditionalServicesAvailability;\n giftAvailable: boolean;\n loyaltyDiscount?: LoyaltyDiscount;\n rrpShown: boolean;\n minimalPriceShown: boolean;\n trackingDisplayType?: VariantSelector;\n}\nexport const trackPageReload = ({\n variant,\n product,\n modifaceVariants = {},\n engravingAvailable,\n tryItFirstAvailable,\n giftAvailable,\n loyaltyDiscount,\n rrpShown,\n minimalPriceShown,\n trackingDisplayType,\n}: ITrackPageReloadParams) => {\n // We need to use setTimeout for perf. optim. of hydration\n // This event is often called with 'page_view' event\n // They are often called in separate `useEffect` hooks\n // To make sure this event is logged after 'page_view' event\n // We need to use setTimeout, just to track this event a little later\n\n setTimeout(() => {\n dispatchTrackingEvent({\n event: 'view_item',\n variant_selector: trackingDisplayType,\n products: [\n ProductEventWither()\n .withProduct(product)\n .withVariant(variant)\n .withAdditionalPromoLabels([\n rrpShown && RRP_PRICE_PROMO_LABEL,\n minimalPriceShown && MIN_PRICE_PROMO_LABEL,\n ])\n .withServices({\n engravingAvailable,\n tryItFirstAvailable,\n modifaceVariants,\n loyaltyDiscount,\n giftAvailable,\n shadefinderAvailable: product.isShadeFinderAvailable,\n })\n .build(),\n ],\n _clear: true,\n });\n });\n};\n\nexport const trackItemInExponea = (\n product: ProductDetailViewFragmentFragment,\n variant: ProductDetailViewFragmentFragment['variants'][number]\n) => {\n runTrackingEventViewItem({\n id: variant.id,\n name: variant.name,\n code: variant.productCode,\n masterProductCode: product.code,\n brandName: product.brandInfo.name,\n gender: variant.gender,\n marketType: product.marketType,\n price: variant.price.value,\n kind: product.kind,\n categories: product.category,\n subcategories: product.subCategory,\n types: product.type,\n stockQuantity: variant.stockAvailability.code,\n attributes: variant.attributes,\n });\n runExponeaFunctions();\n};\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n youSave: {\n id: 'pd.youSave',\n defaultMessage: 'Ušetříte',\n },\n betterOffer: {\n id: 'pd.betterOffer',\n defaultMessage: 'Výhodneji o {percentage}%',\n },\n recommendedPrice: {\n id: 'pd.price.recommended',\n defaultMessage: 'Tuto cenu doporučuje dodavatel produktu. {link}',\n },\n recommendedPriceLink: {\n id: 'pd.price.recommended.link',\n defaultMessage: 'null',\n },\n convertedPrice: {\n id: 'pd.price.converted',\n defaultMessage:\n 'Cena doporučená dodavatelem a přepočtená z cizí měny. {link}',\n },\n convertedPriceLink: {\n id: 'pd.price.converted.link',\n defaultMessage: 'null',\n },\n historicalPrice: {\n id: 'pd.price.historical',\n defaultMessage:\n 'Maximální cena, za kterou se produkt nabízel v posledních dvou letech. {link}',\n },\n historicalPriceLink: {\n id: 'pd.price.historical.link',\n defaultMessage: 'null',\n },\n recentPrice: {\n id: 'pd.price.recent',\n defaultMessage:\n 'Nejnižší cena, za kterou se produkt nabízel v posledním měsíci. {link}',\n },\n recentPriceLink: {\n id: 'pd.price.recent.link',\n defaultMessage: 'null',\n },\n priceLinkText: {\n id: 'pd.price.link.text',\n defaultMessage: 'Více informací',\n },\n});\n","import styled from 'styled-components';\n\nimport { theme } from '@notino/react-styleguide';\n\nexport const TooltipContent = styled.div`\n font-size: 0.8rem;\n padding: 0.5rem;\n text-align: center;\n white-space: normal;\n min-width: 16rem;\n\n a {\n font-weight: 400;\n color: ${theme.palette.basic};\n white-space: nowrap;\n\n :hover {\n text-decoration: none;\n }\n }\n`;\n","import * as React from 'react';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport messages from './messages';\nimport { TooltipContent } from './styled';\n\nexport const useGetOriginalPriceTooltip = (): ((\n type: string\n) => JSX.Element) => {\n const { formatMessage } = useIntl();\n const getAnchorTag = useGetPriceLink();\n\n return (type: string) => {\n if (type === 'Recommended') {\n return (\n \n {formatMessage(messages.recommendedPrice, {\n link: getAnchorTag(messages.recommendedPriceLink),\n })}\n \n );\n }\n if (type === 'Converted') {\n return (\n \n {formatMessage(messages.convertedPrice, {\n link: getAnchorTag(messages.convertedPriceLink),\n })}\n \n );\n }\n if (type === 'HistoricalMax') {\n return (\n \n {formatMessage(messages.historicalPrice, {\n link: getAnchorTag(messages.historicalPriceLink),\n })}\n \n );\n }\n\n return null;\n };\n};\n\nexport const useRecentPriceTooltip = () => {\n const { formatMessage } = useIntl();\n const getAnchorTag = useGetPriceLink();\n\n return (\n \n {formatMessage(messages.recentPrice, {\n link: getAnchorTag(messages.recentPriceLink),\n })}\n \n );\n};\n\nconst useGetPriceLink = () => {\n const { formatMessage } = useIntl();\n\n return (href: MessageDescriptor) => {\n const formattedHref = formatMessage(href);\n if (formattedHref === 'null') {\n return null;\n }\n\n return (\n \n {formatMessage(messages.priceLinkText)}\n \n );\n };\n};\n\nexport const getDiscountPercentage = (price: number, prevPrice: number) =>\n Math.floor(100 - (price / prevPrice) * 100);\n\nexport const useGetYouSaveText = () => {\n const { formatMessage } = useIntl();\n\n return (price: number, prevPrice: number) =>\n `${formatMessage(messages.youSave)} ${getDiscountPercentage(\n price,\n prevPrice\n )}%`;\n};\n\nexport const useGetBetterOfferText = () => {\n const { formatMessage } = useIntl();\n\n return (price: number, prevPrice: number) =>\n `${formatMessage(messages.betterOffer, {\n percentage: getDiscountPercentage(price, prevPrice),\n })}`;\n};\n","import { VariantFragmentFragment } from '@notino/shared/definitions/types';\n\nimport { IPrice } from '@containers/ProductListing/model';\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\n\nimport {\n useGetBetterOfferText,\n useGetOriginalPriceTooltip,\n useGetYouSaveText,\n useRecentPriceTooltip,\n} from './utils';\n\n// https://gitlab.notino.com/web/nushopweb/-/blob/master/docs/diagrams/price-logic.md\ninterface IReturnValue {\n discountText?: string;\n topPrice?: {\n value: IPrice;\n isCrossed: boolean;\n tooltip: JSX.Element;\n };\n bottomRecentPrice?: { value: IPrice; tooltip: JSX.Element };\n\n /** Indicates whether converted/recommended/maxHistorical price is shown. */\n rrpShown: boolean;\n minimalPriceShown: boolean;\n}\n\nexport type UsePriceLogicParameters = Pick<\n VariantFragmentFragment,\n 'attributes' | 'price' | 'originalPrice' | 'recentMinPrice'\n>;\n\nexport const usePriceLogic = ({\n attributes,\n price,\n originalPrice,\n recentMinPrice,\n}: UsePriceLogicParameters): IReturnValue => {\n const getYouSaveText = useGetYouSaveText();\n const getBetterOfferText = useGetBetterOfferText();\n const getOriginalPriceTooltip = useGetOriginalPriceTooltip();\n const { strictSalesDisplay } = useFeatureFlags();\n const recentPriceTooltip = useRecentPriceTooltip();\n\n const isActionOrClearance: boolean =\n attributes?.Action || attributes?.Clearance;\n\n const hasVoucher = !!attributes.VoucherDiscount;\n\n if (isActionOrClearance) {\n if (recentMinPrice?.isActionEligible) {\n return {\n minimalPriceShown: true,\n rrpShown: false,\n discountText: getYouSaveText(price.value, recentMinPrice.value),\n topPrice: {\n value: recentMinPrice,\n isCrossed: true,\n tooltip: recentPriceTooltip,\n },\n };\n }\n\n if (recentMinPrice) {\n return originalPrice?.value\n ? {\n rrpShown: false,\n minimalPriceShown: true,\n bottomRecentPrice: {\n value: recentMinPrice,\n tooltip: recentPriceTooltip,\n },\n }\n : {\n minimalPriceShown: true,\n rrpShown: false,\n bottomRecentPrice: {\n value: recentMinPrice,\n tooltip: recentPriceTooltip,\n },\n };\n }\n\n return originalPrice?.value\n ? {\n rrpShown: false,\n minimalPriceShown: false,\n }\n : {\n rrpShown: false,\n minimalPriceShown: false,\n };\n }\n\n if (hasVoucher && strictSalesDisplay) {\n return recentMinPrice\n ? {\n minimalPriceShown: true,\n rrpShown: false,\n bottomRecentPrice: {\n value: recentMinPrice,\n tooltip: recentPriceTooltip,\n },\n }\n : { minimalPriceShown: false, rrpShown: false };\n }\n\n return originalPrice?.value\n ? {\n rrpShown: true,\n minimalPriceShown: false,\n topPrice: {\n value: originalPrice,\n isCrossed: false,\n tooltip: getOriginalPriceTooltip(originalPrice.type),\n },\n discountText: getBetterOfferText(price.value, originalPrice.value),\n }\n : { minimalPriceShown: false, rrpShown: false };\n};\n","import e from\"styled-components\";import{breakpoints as t}from\"./breakpoints.js\";import{P as o}from\"./index-cc00cee0.js\";var d=e(o).attrs({\"data-testid\":\"placeholder-product-title\"}).withConfig({displayName:\"styled__StyledPlaceholderProductTile\",componentId:\"sc-v935q3-0\"})([\"\"]),i=e.div.withConfig({displayName:\"styled__PlaceholdersContainer\",componentId:\"sc-v935q3-1\"})([\"display:flex;margin-top:1.25rem;\",\":nth-of-type (n + 3){display:none;@media (min-width:\",\"){display:block;}}\"],d,t.md);export{i as P,d as S};\n//# sourceMappingURL=styled-4a46840a.js.map\n","import{a as o,_ as t}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as r from\"react\";import{ProductTileModel as i}from\"./ProductTileModel.js\";import{P as e,S as s}from\"./styled-4a46840a.js\";import\"styled-components\";import\"./breakpoints.js\";import\"./theme.js\";import\"./index-cc00cee0.js\";import\"./BuyButton.js\";import\"./ButtonModel.js\";import\"./styled.js\";import\"./ActionButtonWithConfirmation.js\";import\"./CheckIcon.js\";import\"./index.js\";import\"./ThemeContext.js\";import\"./ActionButton.js\";import\"./index-19abfa9e.js\";import\"react-router-dom\";import\"./css.js\";import\"./Colors.js\";import\"./SpinnerIcon.js\";import\"./createSvgIcon-89a7bcb8.js\";import\"./WarningIcon.js\";import\"./ActionButtonModel.js\";import\"./keyframes.js\";import\"./IconButton.js\";import\"./index-ad1298a0.js\";import\"./ImagePlaceholder.js\";import\"./SkeletonElement.js\";import\"./BlackFridayIcon.js\";import\"./PowerOfBeautyIcon.js\";import\"./RecomendedByDermatologistsIcon.js\";import\"./StyledChristmasIcon.js\";import\"./ChristmasIcon.js\";import\"./StyledDermoIcon.js\";import\"./DermoIcon.js\";import\"./SummerBlackFridayIcon.js\";import\"./TagModel.js\";import\"./Tag.js\";import\"./Heading.js\";import\"./Price.js\";import\"./Ratings.js\";import\"./Stars.js\";import\"./withTheme.js\";import\"./InfoCircleIcon.js\";import\"./TooltipModel.js\";import\"./Tooltip-aa4269c8.js\";import\"./debounce.js\";import\"./WishlistButton.js\";import\"./usePrevious.js\";import\"./HeartIcon.js\";import\"./HeartOIcon.js\";import\"./utils-ec9be121.js\";import\"./styled-fd5dd143.js\";import\"./model.js\";var m=[\"placeholderCount\",\"id\",\"rows\",\"hasButton\",\"animate\",\"containerProps\"],p=function(p){var n=p.placeholderCount,a=void 0===n?4:n,c=p.id,j=void 0===c?\"listPlaceholder\":c,l=p.rows,d=void 0===l?6:l,u=p.hasButton,I=void 0!==u&&u,h=p.animate,y=void 0===h||h,B=p.containerProps,f=o(p,m),P={xs:a>2?7:6,sm:a>3?5:4,md:12/a},g={state:i.State.placeholder,rows:d,hasButton:I,animate:y};return r.createElement(e,t({},f,B),Array.from(Array(a).keys()).map((function(o){return r.createElement(s,{key:j+\"-\"+o,columns:P,productProps:g})})))};export{p as ProductSliderPlaceholder};\n//# sourceMappingURL=ProductSliderPlaceholder.js.map\n","import { css } from 'styled-components';\n\nimport { breakpoints, styled } from '@notino/react-styleguide';\n\nexport const Wrapper = styled.div<{ newDesign: boolean }>`\n ${({ newDesign }) =>\n newDesign\n ? css`\n margin-top: 1.5rem;\n @media (min-width: ${breakpoints.lg}) {\n margin-bottom: 4rem;\n }\n `\n : css`\n margin-top: 2rem;\n `};\n`;\n","import * as React from 'react';\n\nimport { findIndex } from 'lodash';\n\nimport { ProductSliderPlaceholder } from '@notino/react-styleguide';\nimport { GetProductsByIdBatchedQuery } from '@notino/shared/definitions/types';\n\nimport { ProductSlider } from '@components/ProductSlider';\nimport { useGetProductItemProps } from '@components/Universals/ProductItem/useGetProductItemProps';\nimport { IProduct } from '@containers/ProductListing/model';\nimport {\n useTrackDynamicList,\n ProductEventWither,\n} from '@helpers/googleTagManager';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\n\nimport { BULK_CALL_TIMEOUT } from './constants';\nimport { Wrapper } from './styled';\n\nexport interface IProductSectionContentProps {\n listLabel?: string;\n trackProductClick?: boolean;\n trackProductImpression?: boolean;\n data: GetProductsByIdBatchedQuery;\n itemsPerSlide: number;\n}\n\nexport const ProductsSectionContent: React.FC =\n React.memo(\n ({\n listLabel = '',\n trackProductClick = false,\n trackProductImpression = false,\n data,\n itemsPerSlide,\n }) => {\n const newDesign = useNewPdDesignEnabled();\n const trackVisibleItems = useTrackDynamicList({\n delay: BULK_CALL_TIMEOUT,\n listName: listLabel,\n });\n\n const onNewItemShow = (id: IProduct['id']) => {\n if (trackProductImpression && listLabel) {\n const index = findIndex(data.vpProductByIds, { id });\n if (index !== -1) {\n const product = data.vpProductByIds[index];\n trackVisibleItems(\n ProductEventWither()\n .withVpProduct(product)\n .withAdditionalData({\n list_position: index + 1,\n id: product.id,\n })\n .build()\n );\n }\n }\n };\n\n const getProductItemProps = useGetProductItemProps({\n noPriceIfUnavailable: true,\n useMasterUrl: true,\n inSectionOfType: 'slider',\n GTMEventLabel: listLabel,\n sendGTM: trackProductClick,\n wishlistActionLocation: 'list',\n });\n\n const products = data.vpProductByIds\n .map((product, index) =>\n getProductItemProps({\n product,\n position: index + 1,\n })\n )\n .filter(Boolean);\n\n return (\n \n {\n onNewItemShow(product.id);\n }}\n products={products}\n fallback={\n \n }\n />\n \n );\n }\n );\n","export const BULK_CALL_TIMEOUT = 500;\n","import styled, { css } from 'styled-components';\n\nimport { ProductSliderPlaceholder } from '@notino/react-styleguide';\n\nexport const StyledListPlaceholder = styled(ProductSliderPlaceholder)<{\n newDesign: boolean;\n}>`\n overflow-x: auto;\n\n ${({ newDesign }) =>\n newDesign &&\n css`\n margin: 1.5rem 0 4rem;\n `}\n`;\n","import * as React from 'react';\n\nimport useMedia from 'use-media';\n\nimport { theme } from '@notino/react-styleguide';\nimport { GetProductsByIdBatchedQuery } from '@notino/shared/definitions/types';\n\nimport { useNewPdDesignEnabled } from '../hooks/useNewPdDesignEnabled';\n\nimport { ProductsSectionContent } from './ProductSectionContent';\nimport { StyledListPlaceholder } from './styled';\n\ninterface IProductListContentParams {\n loading: boolean;\n listLabel: string;\n inView: boolean;\n data: GetProductsByIdBatchedQuery;\n trackProductClick: boolean;\n trackProductImpression: boolean;\n}\n\nexport const ProductListContent = ({\n loading,\n listLabel,\n inView,\n data,\n trackProductClick,\n trackProductImpression,\n}: IProductListContentParams) => {\n const newDesign = useNewPdDesignEnabled();\n const isBigScreen = useMedia(`(min-width: ${theme.breakpoints.xxl}rem)`);\n const itemsPerSlide = isBigScreen ? 5 : 4;\n\n if (inView && !loading) {\n return (\n \n );\n }\n return (\n \n );\n};\n","import * as React from 'react';\nimport { useInView } from 'react-intersection-observer';\n\nimport { IProduct } from '@containers/ProductListing/model';\n\nimport { dispatchProductsShownEvent } from '../hooks/useDispatchProductsShowEvent';\nimport { ISectionContainerProps, SectionContainer } from '../SectionContainer';\n\nimport { ProductListContent } from './ProductItemsContent';\nimport { useProductsByIdsBatched } from './useProductsByIdsBatched';\n\nexport interface IProductsSectionProps\n extends Omit {\n productIds: Array;\n productIdsLoading?: boolean;\n trackProductClick?: boolean;\n trackProductImpression?: boolean;\n}\n\nexport const ProductsSection: React.FC = React.memo(\n ({\n productIds,\n listLabel = '',\n containerId = '',\n titleId = '',\n productIdsLoading = false,\n titleMessage = null,\n withDivider = false,\n trackProductClick = false,\n trackProductImpression = false,\n }) => {\n const [ref, inView] = useInView({ triggerOnce: true });\n\n const { loading, data } = useProductsByIdsBatched(productIds, {\n skip: !inView || productIdsLoading,\n onCompleted: (response) => {\n dispatchProductsShownEvent(response?.vpProductByIds, {\n section: listLabel,\n });\n },\n });\n\n const noRecommendedProducts = !loading && !data?.vpProductByIds?.length;\n if (noRecommendedProducts && inView && !productIdsLoading) {\n return null;\n }\n\n return (\n \n \n \n );\n }\n);\n","import * as React from 'react';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { IProduct } from '@containers/ProductListing/model';\n\nimport messages from '../../messages';\nimport { ProductsSection } from '../ProductsSection';\n\nimport { LIST_LABEL } from './constants';\nimport { useLastVisitedItems } from './useLastVisitedItems';\n\ninterface ILastVisitedProductsProps {\n productId: IProduct['id'];\n variants: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number][];\n}\n\nexport const LastVisitedProducts: React.FC = (\n props\n) => {\n const items = useLastVisitedItems(props.productId);\n\n if (!items || !items.length || items.length < 3) {\n return null;\n }\n\n return (\n \n );\n};\n","import * as React from 'react';\n\nimport { IProduct } from '@containers/ProductListing/model';\n\nimport { loadProductsFromCookieOldestFirst } from '../hooks/useLastVisited/utils';\n\nconst NUMBER_OF_VISIBLE_LAST_VISITED_PRODUCTS = 5;\n\nexport const useLastVisitedItems = (productId: IProduct['id']) => {\n return React.useMemo>(() => {\n return loadProductsFromCookieOldestFirst()\n .filter((lastVisitedProductId) => lastVisitedProductId !== productId)\n .slice(-NUMBER_OF_VISIBLE_LAST_VISITED_PRODUCTS)\n .reverse();\n }, [productId]);\n};\n","export const LIST_LABEL = 'last_visited_products';\n","import { defineMessages } from 'react-intl';\nexport default defineMessages({\n inWishlist: {\n id: 'product.item.in.wishlist',\n defaultMessage: 'Máte v oblíbených',\n },\n addToWishlist: {\n id: 'product.item.add.to.wishlist',\n defaultMessage: 'Přidat do oblíbených',\n },\n});\n","import styled, { css } from 'styled-components';\n\nimport { IBasicStyledProps, keyframes } from '@notino/react-styleguide';\n\nconst adding = keyframes`\n\t0% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.5);\n }\n 100% {\n transform: scale(1);\n }\n`;\n\ninterface IStyledPulsatingHeart extends IBasicStyledProps {\n animate: boolean;\n newPdDesignEnabled: boolean;\n}\n\nconst complexMixin = css`\n animation: ${adding} 350ms ease forwards;\n`;\n\nexport const StyledPulsatingHeart = styled.div`\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n display: flex;\n align-items: center;\n padding-right: 1.13rem;\n padding-left: 0.125rem;\n `\n : css`\n padding-right: 1rem;\n `}\n\n svg {\n ${(props: IStyledPulsatingHeart) => (props.animate ? complexMixin : '')};\n }\n`;\n","import * as React from 'react';\n\nimport { Colors, HeartIcon, HeartOIcon } from '@notino/react-styleguide';\n\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport { StyledPulsatingHeart } from './styled';\n\ninterface IPulsatingHeartProps {\n wishlisted: boolean;\n loading: boolean;\n width?: string;\n height?: string;\n}\n\nexport const PulsatingHeart: React.FC = ({\n wishlisted,\n loading,\n}) => {\n const newPdDesignEnabled = useNewPdDesignEnabled();\n\n return (\n \n {wishlisted || loading ? (\n \n ) : (\n \n )}\n \n );\n};\n","import styled, { css } from 'styled-components';\n\nimport { theme } from '@notino/react-styleguide';\n\nexport const Wrapper = styled.div<{ newPdDesignEnabled: boolean }>`\n padding: 0 0 1rem 0;\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? theme.typography.labelRegular400\n : css`\n font-size: 0.875rem;\n `}\n`;\n\nexport const StyledAddToWishlist = styled.a`\n display: flex;\n user-select: none;\n cursor: pointer;\n text-decoration: none !important;\n align-items: center;\n\n &:hover {\n text-decoration: underline !important;\n svg {\n color: ${(props) => props.theme.palette.primary} !important;\n }\n }\n`;\n","import { VariantFragmentFragment as IVariantFragment } from '@notino/shared/definitions/types';\n\nimport variantFragment from '@containers/ProductDetailContainer/queries/fragVariant.graphql';\n\nimport { ICallbackParameters } from '../model';\n\nexport const updateVariantCache = ({\n wishlisted,\n cache,\n productId,\n}: ICallbackParameters & { productId: string | number }) => {\n cache.updateFragment(\n {\n fragment: variantFragment,\n id: `Variant:${productId}`,\n },\n (prev) => ({\n ...prev,\n wishlisted,\n })\n );\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { useApolloClient } from '@apollo/client';\n\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport { usePriceLogic } from '@containers/ProductDetailContainer/ProductDetail/hooks/usePriceLogic';\nimport {\n MIN_PRICE_PROMO_LABEL,\n RRP_PRICE_PROMO_LABEL,\n} from '@containers/ProductDetailContainer/ProductDetail/hooks/usePriceLogic/tracking';\nimport { useProductDetailContext } from '@containers/ProductDetailContainer/ProductDetail/ProductDetailContext';\n\nimport messages from '../messages';\nimport { PulsatingHeart } from '../PulsatingHeart';\nimport { useWishlistActions } from '../useWishlistActions';\n\nimport { Wrapper, StyledAddToWishlist } from './styled';\nimport { updateVariantCache } from './updateVariantCache';\n\ninterface IWishlistProductDetailIconProps {\n wishlisted: boolean;\n productId: string | number;\n}\n\nexport const WishlistProductDetailIcon: React.FC<\n IWishlistProductDetailIconProps\n> = ({ wishlisted, productId }) => {\n const newPdDesignEnabled = useNewPdDesignEnabled();\n const { currentVariant } = useProductDetailContext();\n const { minimalPriceShown, rrpShown } = usePriceLogic(currentVariant);\n const { cache } = useApolloClient();\n\n const updateCallback = React.useCallback(\n (_, addedToWishlist: boolean) =>\n updateVariantCache({ wishlisted: addedToWishlist, productId, cache }),\n [cache, productId]\n );\n\n const { handleWishlistClick, loading } = useWishlistActions({\n productId: productId.toString(),\n wishlisted: wishlisted,\n onCompleted: updateCallback,\n });\n\n return (\n \n \n handleWishlistClick('product_detail', [\n rrpShown && RRP_PRICE_PROMO_LABEL,\n minimalPriceShown && MIN_PRICE_PROMO_LABEL,\n ])\n }\n >\n \n \n \n \n );\n};\n","import * as React from 'react';\n\ninterface IKlarnaProps {\n price: number;\n priceDecimalPlaces: number;\n locale: string;\n}\n\nexport const Klarna: React.FC = ({\n price,\n locale,\n priceDecimalPlaces,\n}) => {\n // The amount of money in micro units ($120.00 = 12000), used for amount based credit promotions.\n const priceInMicroUnits = price * Math.pow(10, priceDecimalPlaces);\n const priceWithoutDecimal = Math.trunc(Math.round(priceInMicroUnits));\n\n React.useEffect(\n function refreshOnChange() {\n window.KlarnaOnsiteService = window.KlarnaOnsiteService || [];\n window.KlarnaOnsiteService.push({ eventName: 'refresh-placements' });\n },\n [price]\n );\n\n return (\n \n `,\n }}\n />\n );\n};\n","import { TrackingAttributes } from '@context/tracking/types';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nexport const trackModalClose = ({\n timing,\n}: Omit) => {\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n name: 'click_and_collect',\n interaction: 'click',\n action: 'close_click_and_collect',\n timing,\n mode: 'off',\n type: 'product_detail',\n promo_labels: undefined,\n },\n _clear: true,\n });\n};\n\nexport const trackModalOpen = ({\n timing,\n}: Omit) => {\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n name: 'click_and_collect',\n interaction: 'click',\n action: 'open_click_and_collect',\n timing,\n mode: 'on',\n type: 'product_detail',\n promo_labels: undefined,\n },\n _clear: true,\n });\n};\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n pickupNow: {\n id: 'pd.clickandcollect.pickup.now',\n defaultMessage: 'Vyzvednout ihned',\n },\n});\n","import{b as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import{styled as n}from\"./styled.js\";var t,r,o,i=n.span(t||(t=e([\"\\n position: absolute;\\n top: \",\";\\n left: 0;\\n height: 16px;\\n width: 16px;\\n border-radius: 100%;\\n background-color: \",\";\\n border: 1px solid\\n \",\";\\n box-sizing: border-box;\\n\\n &:after {\\n content: '';\\n position: absolute;\\n display: none;\\n top: 2px;\\n left: 2px;\\n width: 10px;\\n height: 10px;\\n border-radius: 100%;\\n background-color: \",\";\\n }\\n\"])),(function(e){var n=e.position;return n>0?n+\"px\":0}),(function(e){return e.disabled?e.theme.palette.neutralLighter:e.theme.palette.basicInverse}),(function(e){return e.disabled?e.theme.palette.neutralLight:e.isHovered?e.theme.palette.basic:e.theme.palette.neutralDark}),(function(e){return e.disabled?e.theme.palette.neutralLight:e.theme.palette.basic})),a=n.label(r||(r=e([\"\\n display: block;\\n position: relative;\\n padding-left: 32px;\\n cursor: \",\";\\n color: \",\";\\n user-select: none;\\n font-size: 14px;\\n font-weight: \",\";\\n\\n &:hover input:not(:disabled):not(:checked) ~ \",\" {\\n border: 1px solid \",\";\\n }\\n\"])),(function(e){return e.disabled?\"inherit\":\"pointer\"}),(function(e){var n=e.disabled,t=e.theme;return n?t.palette.neutral:t.palette.basic}),(function(e){var n=e.bold;return void 0!==n&&n?800:300}),i,(function(e){return e.theme.palette.basic})),l=n.input(o||(o=e([\"\\n position: absolute;\\n opacity: 0;\\n top: 0;\\n left: 0;\\n\\n &:checked {\\n ~ \",\" {\\n border-color: \",\";\\n\\n &:after {\\n display: block;\\n }\\n }\\n }\\n\"])),i,(function(e){return e.disabled?e.theme.palette.neutralLight:e.theme.palette.basic}));export{a as C,l as S,i as a};\n//# sourceMappingURL=styled-78109075.js.map\n","import*as e from\"react\";import{n as o}from\"./utils-ec9be121.js\";import{C as s,S as a,a as r}from\"./styled-78109075.js\";import\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import\"./styled.js\";import\"styled-components\";var t=function(t){var i=t.children,d=t.disabled,l=t.checked,n=t.isHovered,m=t.onChange,c=void 0===m?o:m,p=t.position,b=void 0===p?0:p,v=t.className,f=t.bold,h=t.name;return e.createElement(s,{disabled:d,className:v,bold:f},i,e.createElement(a,{disabled:d,type:\"radio\",checked:l,onChange:c,bold:f,name:h}),e.createElement(r,{disabled:d,position:b,isHovered:n}))};export{t as RadioButton};\n//# sourceMappingURL=RadioButton.js.map\n","import { styled, theme } from '@notino/react-styleguide';\n\nexport const StoreTitle = styled.p`\n ${theme.typography.labelRegular400}\n margin-bottom: 0.25rem;\n`;\n\nexport const StoreDescription = styled.span`\n font-weight: 300;\n ${theme.typography.labelRegular400}\n color:${theme.palette.neutralDark};\n padding-bottom: 0.25rem;\n`;\n\nexport const StoreStockAvailabilityWrapper = styled.div`\n color: ${theme.palette.success};\n ${theme.typography.labelRegular400}\n`;\n","/**\n * @return [tomorrow, date after tomorrow]\n */\nconst getNextTwoDays = (): [Date, Date] => {\n const now = new Date();\n const tomorrowTime = new Date(\n now.getFullYear(),\n now.getMonth(),\n now.getDate() + 1,\n 0,\n 0,\n 0\n );\n const dayAfterTomorrowTime = new Date(\n now.getFullYear(),\n now.getMonth(),\n now.getDate() + 2,\n 0,\n 0,\n 0\n );\n return [tomorrowTime, dayAfterTomorrowTime];\n};\n\nexport const isTomorrow = (date: Date) => {\n const timeToCompare = new Date(date).getTime();\n const [tomorrow, dayAfterTomorrow] = getNextTwoDays();\n\n return (\n timeToCompare >= tomorrow.getTime() &&\n timeToCompare < dayAfterTomorrow.getTime()\n );\n};\n\nexport const isToday = (date: Date) => {\n const timeToCompare = new Date(date).getTime();\n const startOfToday = new Date();\n startOfToday.setHours(0, 0, 0, 0);\n const [tomorrow] = getNextTwoDays();\n\n return (\n timeToCompare >= startOfToday.getTime() &&\n timeToCompare < tomorrow.getTime()\n );\n};\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n chooseStore: {\n id: 'pd.clickandcollect.choose.store',\n defaultMessage: 'Vyberte pobočku',\n },\n pickHere: {\n id: 'pd.clickandcollect.pick.here',\n defaultMessage: 'Vyzvednout zde',\n },\n availableFrom: {\n id: 'pd.clickandcollect.available.from',\n defaultMessage: '{date} od {time}',\n },\n today: {\n id: 'pd.clickandcollect.today',\n defaultMessage: 'dnes',\n },\n tomorrow: {\n id: 'pd.clickandcollect.tomorrow',\n defaultMessage: 'zítra',\n },\n lessThan5: {\n id: 'pd.clickandcollect.lessThan5',\n defaultMessage: '{count} ks',\n },\n moreThan5: {\n id: 'pd.clickandcollect.moreThan5',\n defaultMessage: 'Více než 5 ks',\n },\n moreThan20: {\n id: 'pd.clickandcollect.moreThan20',\n defaultMessage: 'Více než 20 ks',\n },\n});\n","import * as React from 'react';\n\nimport { IStore } from '../../model';\n\nimport { StoreStockAvailabilityWrapper } from './styled';\nimport { usePickUpTime } from './usePickupTime';\nimport { useStockCount } from './useStockCount';\n\nexport const StoreStockAvailability = ({\n stockCount,\n earliestPickup,\n}: IStore): JSX.Element => {\n const stockCountMessage = useStockCount(stockCount);\n const pickupTime = usePickUpTime(earliestPickup);\n return (\n \n {`${stockCountMessage} | ${pickupTime}`}\n \n );\n};\n","import { useIntl } from 'react-intl';\n\nimport { StockAvailability } from '@notino/shared/definitions/types';\n\nimport { messages } from '../../messages';\n\nexport const useStockCount = (stockCount: string): string => {\n const { formatMessage } = useIntl();\n switch (stockCount) {\n case StockAvailability.Last1:\n return formatMessage(messages.lessThan5, { count: 1 });\n case StockAvailability.Last2:\n return formatMessage(messages.lessThan5, { count: 2 });\n case StockAvailability.Last3:\n return formatMessage(messages.lessThan5, { count: 3 });\n case StockAvailability.Last4:\n return formatMessage(messages.lessThan5, { count: 4 });\n case StockAvailability.Last5:\n return formatMessage(messages.lessThan5, { count: 5 });\n case StockAvailability.MoreThan20:\n return formatMessage(messages.moreThan20, {});\n case StockAvailability.MoreThan5:\n return formatMessage(messages.moreThan5, {});\n }\n};\n","import { useIntl } from 'react-intl';\n\nimport { isToday, isTomorrow } from '../../../../utils/dateUtils';\nimport { messages } from '../../messages';\n\nimport { getEarliestPickupDate } from './utils';\n\nexport const usePickUpTime = (earliestPickup: string): string => {\n const { formatTime, formatDate, formatMessage } = useIntl();\n\n const earliestPickupDate = getEarliestPickupDate(new Date(earliestPickup));\n\n const time = formatTime(earliestPickupDate, {\n hour: 'numeric',\n minute: 'numeric',\n });\n\n let dateName: string;\n if (isToday(earliestPickupDate)) {\n dateName = formatMessage(messages.today);\n } else if (isTomorrow(earliestPickupDate)) {\n dateName = formatMessage(messages.tomorrow);\n } else {\n dateName = formatDate(earliestPickupDate, {\n weekday: 'long',\n });\n }\n\n return formatMessage(messages.availableFrom, {\n date: dateName,\n time,\n });\n};\n","/**\n * in case that API returns time in the past, change it to now\n * @param earliestPickup\n */\nexport const getEarliestPickupDate = (earliestPickup: Date) => {\n const now = new Date();\n return earliestPickup > now ? earliestPickup : now;\n};\n","import * as React from 'react';\n\nimport { IStore } from '../../model';\n\nimport { StoreStockAvailability } from './StoreStockAvailability';\nimport { StoreDescription, StoreTitle } from './styled';\n\ninterface IStoreProps {\n data: IStore;\n}\n\nexport const Store: React.FC = ({ data }) => {\n return (\n <>\n {data.name}\n \n \n \n );\n};\n","import styled from 'styled-components';\n\nimport {\n ActionButtonWithConfirmation,\n breakpoints,\n theme,\n} from '@notino/react-styleguide';\n\nexport const StoreWrapper = styled.div`\n padding: 1.25rem 0;\n :not(:last-child) {\n border-bottom: solid 1px ${theme.palette.neutralAlt};\n }\n :first-child {\n padding-top: 0;\n }\n`;\nexport const ModalContentWrapper = styled.div`\n max-height: 50vh;\n overflow-y: auto;\n margin-bottom: 1rem;\n`;\n\nexport const CenterWrapper = styled.div`\n padding-top: 2.8125rem;\n display: flex;\n justify-content: center;\n`;\n\nexport const StyledActionButtonWithConfirmation = styled(\n ActionButtonWithConfirmation\n)`\n @media (min-width: ${breakpoints.sm}) {\n width: auto;\n margin: auto;\n display: block;\n }\n`;\n","export const redirectToClickAndCollectCart = (\n cartId: string,\n isNewEndpoint: boolean\n) => {\n window.location.href = isNewEndpoint\n ? `/reservation/${cartId}`\n : `/reservation-1/${cartId}`;\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { snakeCase } from 'lodash';\n\nimport {\n ButtonModel,\n Colors,\n RadioButton,\n Spinner,\n} from '@notino/react-styleguide';\nimport {\n GetProductViewQuery,\n StockAvailability,\n} from '@notino/shared/definitions/types';\nimport { CartType } from '@notino/web-tracking';\n\nimport { useModifaceVariants } from '@containers/ProductDetailContainer/ProductDetail/hooks/useModifaceVariants';\nimport { usePriceLogic } from '@containers/ProductDetailContainer/ProductDetail/hooks/usePriceLogic';\nimport {\n MIN_PRICE_PROMO_LABEL,\n RRP_PRICE_PROMO_LABEL,\n} from '@containers/ProductDetailContainer/ProductDetail/hooks/usePriceLogic/tracking';\nimport { useProductDetailContext } from '@containers/ProductDetailContainer/ProductDetail/ProductDetailContext';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\nimport { ProductEventWither } from '@helpers/googleTagManager';\n\nimport { Store } from './components/Store';\nimport { useTrackModalShow } from './hooks/useTrackModalShow';\nimport { messages } from './messages';\nimport {\n ModalContentWrapper,\n StoreWrapper,\n CenterWrapper,\n StyledActionButtonWithConfirmation,\n} from './styled';\nimport { useClickAndCollect } from './useClickAndCollect';\n\ninterface IClickAndCollectModalProps {\n product: GetProductViewQuery['productDetailByMasterId'][number];\n selectedVariant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number];\n}\n\nexport const ClickAndCollectModal = ({\n selectedVariant,\n product,\n}: IClickAndCollectModalProps) => {\n const [selectedStore, setSelectedStore] = React.useState('');\n const { rrpShown, minimalPriceShown } = usePriceLogic(selectedVariant);\n\n const {\n tryItFirstAvailable,\n engravingAvailable,\n product: { variants },\n } = useProductDetailContext();\n const modifaceVariants = useModifaceVariants(variants);\n\n const {\n stores,\n storesLoading,\n handleAddToClickAndCollect,\n addToClickAndCollectData: {\n loading: addToCnCLoading,\n error: addToCnCError,\n },\n } = useClickAndCollect(Number(selectedVariant.id));\n\n useTrackModalShow();\n\n if (storesLoading) {\n return (\n \n \n \n );\n }\n\n const onRadioButtonClick = (storeId: string) => () => {\n setSelectedStore(storeId);\n };\n\n const handleSubmit = async () => {\n dispatchTrackingEvent({\n event: 'add_to_cart',\n product: ProductEventWither()\n .withProduct(product)\n .withVariant(selectedVariant)\n .withServices({\n modifaceVariants,\n tryItFirstAvailable,\n engravingAvailable,\n shadefinderAvailable: product.isShadeFinderAvailable,\n })\n .withAdditionalData({\n quantity: 1,\n cart_type: snakeCase(CartType.clickAndCollect),\n })\n .withAdditionalPromoLabels([\n rrpShown && RRP_PRICE_PROMO_LABEL,\n minimalPriceShown && MIN_PRICE_PROMO_LABEL,\n ])\n .build(),\n _clear: true,\n });\n\n await handleAddToClickAndCollect(selectedStore);\n };\n\n return (\n <>\n \n {stores?.collectStoresByProductId?.map((store) => {\n const outOfStock = store.stockCount === StockAvailability.OutOfStock;\n if (outOfStock) {\n return null;\n }\n\n return (\n \n \n \n \n \n );\n })}\n \n\n \n \n \n \n );\n};\n","import * as React from 'react';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { getModifaceVariants, getModifaceHairVariants } from '../utils';\n\nexport const useModifaceVariants = (\n variants: GetProductViewQuery['productDetailByMasterId'][number]['variants']\n) => {\n return React.useMemo(() => getModifaceVariants(variants), [variants]);\n};\n\nexport const useModiface = (\n variants: GetProductViewQuery['productDetailByMasterId'][number]['variants']\n) => {\n return React.useMemo(\n () => ({\n makeup: getModifaceVariants(variants),\n hair: getModifaceHairVariants(variants),\n }),\n [variants]\n );\n};\n","import * as React from 'react';\n\nimport { useMutation, useQuery } from '@apollo/client';\n\nimport {\n AddToClickAndCollectMutation,\n AddToClickAndCollectMutationVariables,\n GetStoresQuery,\n} from '@notino/shared/definitions/types';\n\nimport { useSettings } from '@containers/ProductDetailContainer/hooks/useSettings';\n\nimport addToClickAndCollectMutation from './mutations/addToClickAndCollect.graphql';\nimport getStoresQuery from './queries/stores.graphql';\nimport { redirectToClickAndCollectCart } from './utils';\n\nexport const useClickAndCollect = (variantId: number) => {\n const { Settings: { isNewShoppingCartEndpointEnabled: isNewEndpoint } = {} } =\n useSettings();\n\n const { data: stores, loading: storesLoading } = useQuery(\n getStoresQuery,\n {\n variables: { productId: variantId },\n }\n );\n\n const [addToClickAndCollectCart, addToClickAndCollectData] = useMutation<\n AddToClickAndCollectMutation,\n AddToClickAndCollectMutationVariables\n >(addToClickAndCollectMutation, {\n onCompleted: (response) => {\n redirectToClickAndCollectCart(\n response.addProductToClickAndCollect.cartId,\n isNewEndpoint\n );\n },\n });\n\n const handleAddToClickAndCollect = React.useCallback(\n async (warehouseCode: string) => {\n await addToClickAndCollectCart({\n variables: {\n productId: variantId,\n warehouseCode: warehouseCode,\n },\n });\n },\n [addToClickAndCollectCart, variantId]\n );\n\n return React.useMemo(\n () => ({\n stores,\n storesLoading,\n handleAddToClickAndCollect,\n addToClickAndCollectData,\n }),\n [\n stores,\n storesLoading,\n handleAddToClickAndCollect,\n addToClickAndCollectData,\n ]\n );\n};\n","import * as React from 'react';\n\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nexport const useTrackModalShow = () => {\n const { getTimeFromInit } = useTrackingContext();\n\n React.useEffect(() => {\n dispatchTrackingEvent({\n event: 'subpage_view',\n subpage: {\n name: 'click_and_collect_modal',\n interaction: 'automatic',\n timing: getTimeFromInit(),\n action: 'click_and_collect_opened',\n type: 'click_and_collect',\n },\n _clear: true,\n });\n }, [getTimeFromInit]);\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, Button, theme } from '@notino/react-styleguide';\n\nexport const PickUpButtonWrapper = styled.div`\n margin-top: 0.5rem;\n flex: 0 1 100%;\n @media (min-width: ${breakpoints.sm}) {\n margin-top: 0;\n flex: auto;\n }\n`;\n\nexport const PickUpButton = styled(Button)<{ newDesign: boolean }>`\n width: 100%;\n ${({ newDesign }) =>\n newDesign\n ? css`\n height: 3.25rem;\n ${theme.typography.labelRegular}\n `\n : css`\n @media (min-width: ${breakpoints.sm}) {\n width: auto;\n }\n `}\n`;\n","import * as React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport { ButtonModel, ModalContext, Text } from '@notino/react-styleguide';\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\n\nimport { trackModalClose, trackModalOpen } from './gtm/tracking';\nimport { messages } from './messages';\nimport { ClickAndCollectModal } from './Modal';\nimport { messages as modalMessages } from './Modal/messages';\nimport { PickUpButton, PickUpButtonWrapper } from './styled';\n\ntype IClickAndCollectProps = {\n selectedVariant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number];\n product: GetProductViewQuery['productDetailByMasterId'][number];\n onModalClosing: () => void;\n disabled?: boolean;\n};\n\nexport const ClickAndCollect: React.FC = ({\n selectedVariant,\n product,\n onModalClosing,\n disabled = false,\n}) => {\n const newDesign = useNewPdDesignEnabled();\n const { formatMessage } = useIntl();\n const { getTimeFromInit } = useTrackingContext();\n const { toggleModal, hideModal } = ModalContext.useModalContext();\n\n const toggleClickAndCollectModal = React.useCallback(() => {\n trackModalOpen({ timing: getTimeFromInit() });\n\n const handleModalCloseTracking = () => {\n hideModal();\n trackModalClose({ timing: getTimeFromInit() });\n onModalClosing();\n };\n\n const header = formatMessage(modalMessages.chooseStore);\n\n toggleModal(\n ,\n {\n header: {header},\n center: true,\n positionBottomOnMobile: true,\n withFocusTrap: true,\n onClose: handleModalCloseTracking,\n }\n );\n }, [\n getTimeFromInit,\n toggleModal,\n selectedVariant,\n product,\n formatMessage,\n hideModal,\n onModalClosing,\n ]);\n\n return (\n \n \n \n \n \n );\n};\n","export const REGISTER_URL = '/myaccount.asp#registration';\nexport const MY_NOTINO_BENEFIT_PAGE = '/mynotino/my-benefits/';\n\nexport const STANDARD_MODAL_IMAGE_PATH =\n 'https://cdn.notinoimg.com/images/gallery/loyalty/new-vip-modal.jpg';\nexport const RETINA_MODAL_IMAGE_PATH =\n 'https://cdn.notinoimg.com/images/gallery/loyalty/new-vip-modal-retina.jpg';\nexport const MOBILE_MODAL_IMAGE_PATH =\n 'https://cdn.notinoimg.com/images/gallery/loyalty/mobile-vip-modal.jpg';\n","import { trackPageView } from '@notino/web-tracking';\n\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nimport { FullfilledSteps } from './components/HowToLoyaltyDiscountModal';\n\nexport enum LoyaltyStatus {\n nonRegistered = 'non-registered',\n registered = 'registered',\n subscribed = 'subscribed',\n activated = 'activated',\n unsubscribed = 'unsubscribed',\n}\n\nexport const determineStatus = (fullfilledSteps: FullfilledSteps) => {\n let status = LoyaltyStatus.nonRegistered;\n\n if (fullfilledSteps.registerStep) {\n status = LoyaltyStatus.registered;\n }\n\n if (fullfilledSteps.registerStep && fullfilledSteps.newsletterStep) {\n status = LoyaltyStatus.subscribed;\n }\n\n if (\n fullfilledSteps.registerStep &&\n fullfilledSteps.chooseBrandAndCategoryStep &&\n !fullfilledSteps.newsletterStep\n ) {\n status = LoyaltyStatus.unsubscribed;\n }\n\n return status;\n};\n\nexport const trackLoyaltyModalOpen = (\n status: LoyaltyStatus,\n timing: number\n) => {\n dispatchTrackingEvent({\n event: 'subpage_view',\n _clear: true,\n subpage: {\n name: `/overlay_vip-discount/${status}/`,\n action: 'open_vip_overlay',\n interaction: 'click',\n type: 'service',\n title: 'VIP program',\n timing,\n },\n });\n};\n\nexport const trackLoyaltyModalClose = () =>\n dispatchTrackingEvent({\n event: 'subpage_close',\n subpage: undefined,\n _clear: true,\n });\n\nexport const trackLoyaltyModalDeprecated = (\n status: LoyaltyStatus,\n path?: string\n) => {\n trackPageView({\n type: 'Service',\n path: path ?? `/overlay_vip-discount/${status}/`,\n description: `/overlay_vip-discount/${status}/`,\n title: 'VIP program',\n params: {\n loyaltyStatus: status,\n },\n });\n};\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as l from\"react\";import{Icon as m}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var t=function(t){return l.createElement(m,e({},t,{viewBox:\"0 0 256.62 256\"}),l.createElement(\"path\",{fill:\"#6e6e6e\",d:\"M201.7,52.25H67.58L13.77,111,134.64,256,255.51,111ZM137.18,113.1H172l-20.43,72.12Zm-19.51,72.12L97.24,113.1H132.1ZM97,108.94,102.77,76l27.42,32.91Zm42.12,0L166.51,76l5.8,32.91Zm37.45,0L171,77.37l29.71,31.57Zm-41.9-1.18L104.58,71.69l30.06-15,30.06,15Zm-41.9,1.18H68.6L98.31,77.37Zm.17,4.16,19.15,67.61L67.64,113.1Zm41.73,8.54L149.12,194,134.64,245.1,120.17,194Zm41.73-8.54h25.27l-44.42,67.61Zm28-6.33L170.7,71l11.73-14.07L212.55,72Zm11.13-29.12,12.89,31.29H208.13ZM167.44,68.4l-24-12h34Zm-65.6,0-10-12h34ZM98.58,71,64.92,106.77,56.73,72,86.85,56.93ZM61.15,108.94H40.9L53.79,77.65Zm1,4.16L82.8,187.28l-5.48-6.57-36-67.61Zm7.16,10.19L115.84,194,130,243.88,89.29,195.07ZM153.44,194l46.49-70.75L180,195.07l-40.68,48.81Zm53.65-80.94H228l-36,67.61-5.48,6.57Zm25.65,0H248.3L205.07,165Zm.14-4.16L220.54,79l27.47,30ZM207.61,64.86l-16.9-8.45h9.15ZM69.42,56.41h9.15l-16.9,8.45ZM48.74,79l-12.34,30H21.27ZM36.54,113.1,64.21,165,21,113.1Z\"}),l.createElement(\"polygon\",{fill:\"#dc0069\",points:\"42.52 56.69 48.19 34.01 70.86 28.34 48.19 22.68 42.52 0 36.85 22.68 14.17 28.34 36.85 34.01 42.52 56.69\"}),l.createElement(\"polygon\",{fill:\"#6e6e6e\",points:\"18.9 87.4 22.68 72.28 37.79 68.5 22.68 64.72 18.9 49.6 15.12 64.72 0 68.5 15.12 72.28 18.9 87.4\"}),l.createElement(\"polygon\",{fill:\"#dc0069\",points:\"226.76 56.69 229.6 45.35 240.94 42.52 229.6 39.68 226.76 28.34 223.93 39.68 212.59 42.52 223.93 45.35 226.76 56.69\"}),l.createElement(\"polygon\",{fill:\"#6e6e6e\",points:\"108.66 44.88 111.49 33.54 122.83 30.71 111.49 27.87 108.66 16.54 105.82 27.87 94.48 30.71 105.82 33.54 108.66 44.88\"}))};export{t as DiamondBigIcon};\n//# sourceMappingURL=DiamondBigIcon.js.map\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n imgAlt: {\n id: 'pd.loyalty.modal.img.alt',\n defaultMessage: 'zákaznická sleva',\n },\n});\n","import styled, { css } from 'styled-components';\n\nimport {\n Heading,\n breakpoints,\n ImagePlaceholder,\n theme,\n} from '@notino/react-styleguide';\n\nexport const ModalHeader = styled(Heading.H3)`\n text-align: left;\n margin: 0 auto;\n ${theme.typography.titleLarge}\n`;\n\nexport const DiamondIconWrapper = styled.div`\n display: flex;\n flex-basis: 20%;\n height: 100%;\n`;\n\nexport const ModalContent = styled.div`\n display: flex;\n flex-direction: column;\n text-align: center;\n max-height: 90vh;\n\n @media (min-width: ${breakpoints.md}) {\n flex-direction: row-reverse;\n height: auto;\n }\n\n flex-direction: column-reverse;\n max-height: 80vh;\n overflow-y: auto;\n`;\n\nexport const ContentWrapper = styled.div`\n width: 100%;\n padding: 2rem 0;\n\n @media (min-width: ${breakpoints.md}) {\n width: 50%;\n }\n`;\n\nexport const TextContentWrapper = styled.div`\n display: flex;\n padding: 1rem;\n\n @media (min-width: ${breakpoints.md}) {\n padding: 2rem;\n }\n\n padding: 0 1.25rem 1.5rem;\n flex-direction: column;\n gap: 1rem;\n\n @media (min-width: ${breakpoints.md}) {\n padding: 0 2rem 1.5rem;\n }\n`;\n\nexport const InfoWrapper = styled.div`\n flex-basis: 75%;\n\n @media (min-width: ${breakpoints.md}) {\n flex-basis: 80%;\n }\n`;\n\nexport const ImageWrapper = styled.div<{ hideOnMobile: boolean }>`\n display: flex;\n justify-content: center;\n align-items: flex-start;\n overflow: hidden;\n\n ${({ hideOnMobile }) =>\n hideOnMobile &&\n css`\n display: none;\n `}\n\n @media (min-width: ${breakpoints.md}) {\n display: flex;\n align-items: center;\n }\n`;\n\nexport const StyledImagePlaceholder = styled(ImagePlaceholder)`\n min-width: 100%;\n min-height: 100%;\n`;\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { DiamondBigIcon } from '@notino/react-styleguide';\n\nimport { useIsDesktop } from '@utils/helpers';\n\nimport {\n STANDARD_MODAL_IMAGE_PATH,\n RETINA_MODAL_IMAGE_PATH,\n MOBILE_MODAL_IMAGE_PATH,\n} from '../../constants';\n\nimport { messages } from './messages';\nimport {\n ModalHeader,\n ModalContent,\n TextContentWrapper,\n DiamondIconWrapper,\n InfoWrapper,\n ContentWrapper,\n ImageWrapper,\n StyledImagePlaceholder,\n} from './styled';\n\ninterface IBaseLoyaltyModalProps {\n headerMessage: string;\n children: JSX.Element;\n footerContent: JSX.Element;\n hideImageOnMobile?: boolean;\n}\n\nexport const BaseLoyaltyModal: React.FC = ({\n headerMessage,\n children,\n footerContent,\n hideImageOnMobile,\n}) => {\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return (\n \n \n \n \n \n \n \n {headerMessage}\n {children}\n \n \n {footerContent}\n \n \n \n \n \n );\n};\n","import styled from 'styled-components';\n\nimport { Button } from '@notino/react-styleguide';\n\nexport const StyledButton = styled(Button)`\n padding: 0 3rem;\n`;\n","import { defineMessages, MessageDescriptor } from 'react-intl';\n\nexport const benefitsModalTableMessages: {\n [key: string]: MessageDescriptor;\n} = defineMessages({\n notChosen: {\n id: 'pd.loyalty.benefits.modal.table.not.chosen',\n defaultMessage: 'nevybráno',\n },\n ok: {\n id: 'pd.loyalty.benefits.modal.ok',\n defaultMessage: 'Ok',\n },\n settings: {\n id: 'pd.loyalty.benefits.modal.settings',\n defaultMessage: 'Nastavení',\n },\n});\n","import styled from 'styled-components';\n\nimport { theme } from '@notino/react-styleguide';\n\nexport const BenefitsModalTableWrapper = styled.div``;\n\ninterface IBenefitsModalTableLineProps {\n isOpaque?: boolean;\n}\n\nexport const BenefitsModalTableLine = styled.div`\n display: flex;\n justify-content: space-between;\n padding: 0.5rem 0 0.5rem 0.5rem;\n border-bottom: 1px solid ${theme.palette.neutralLight};\n opacity: ${({ isOpaque }) => (isOpaque ? '0.5' : '1')};\n`;\n\nexport const BrandName = styled.span`\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n width: 75%;\n`;\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { GetCustomerBenefitsQuery } from '@notino/shared/definitions/types';\n\nimport { benefitsModalTableMessages } from './messages';\nimport {\n BenefitsModalTableLine,\n BenefitsModalTableWrapper,\n BrandName,\n} from './styled';\n\ninterface IBenefitsModalTableProps {\n customerBenefits: GetCustomerBenefitsQuery['customerBenefits'];\n}\n\nexport const BenefitsModalTable: React.FC = ({\n customerBenefits,\n}) => {\n const availableDiscounts = new Array(\n customerBenefits.brandDiscountLimit +\n customerBenefits.categoryDiscountLimit -\n (customerBenefits.brandDiscounts.length +\n customerBenefits.categoryDiscounts.length)\n ).fill(0);\n\n return (\n \n {customerBenefits.brandDiscounts.map((brandDiscount) => (\n \n \n {brandDiscount.subjectName}\n \n -{brandDiscount.value}%\n \n ))}\n {customerBenefits.categoryDiscounts.map((brandDiscount) => (\n \n \n {brandDiscount.subjectName}\n \n -{brandDiscount.value}%\n \n ))}\n {availableDiscounts.map((_, i) => (\n // eslint-disable-next-line react/no-array-index-key\n \n \n \n \n 0%\n \n ))}\n \n );\n};\n","import { defineMessages } from 'react-intl';\n\nexport const benefitsModalMessages = defineMessages({\n header: {\n id: 'pd.benefits.modal.header',\n defaultMessage: 'Vaše oblíbené značky a kategorie se slevou',\n },\n});\n","import styled from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nexport const BenefitsModalContentWrapper = styled.div`\n margin-top: 1rem;\n @media (min-width: ${breakpoints.sm}) {\n width: 75%;\n }\n`;\n\nexport const ButtonWrapper = styled.div`\n margin: 1rem 0 0.5rem 0;\n display: flex;\n justify-content: center;\n`;\n\nexport const SettingsWrapper = styled.a`\n margin-top: 0.5rem;\n text-decoration: underline;\n text-align: center;\n cursor: pointer;\n color: ${theme.palette.basic};\n &:hover {\n text-decoration: none;\n }\n`;\n\nexport const FooterContent = styled.div`\n display: flex;\n flex-direction: column;\n padding: 0 1.25rem;\n button {\n width: 100%;\n }\n\n @media (min-width: ${breakpoints.md}) {\n padding: 0 2rem;\n align-items: flex-start;\n }\n`;\n","import * as React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport { useQuery } from '@apollo/client';\n\nimport { ButtonModel, ModalContext } from '@notino/react-styleguide';\nimport { GetCustomerBenefitsQuery } from '@notino/shared/definitions/types';\nimport { trackEvent } from '@notino/web-tracking';\n\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nimport { MY_NOTINO_BENEFIT_PAGE } from '../../constants';\nimport getCustomerBenefitsQuery from '../../queries/getCustomerBenefits.graphql';\nimport {\n LoyaltyStatus,\n trackLoyaltyModalClose,\n trackLoyaltyModalDeprecated,\n trackLoyaltyModalOpen,\n} from '../../trackLoyaltyModal';\nimport { BaseLoyaltyModal } from '../BaseLoyaltyModal';\nimport { StyledButton } from '../styled';\n\nimport { BenefitsModalTable } from './BenefitsModalTable';\nimport { benefitsModalTableMessages } from './BenefitsModalTable/messages';\nimport { benefitsModalMessages } from './messages';\nimport {\n BenefitsModalContentWrapper,\n ButtonWrapper,\n FooterContent,\n SettingsWrapper,\n} from './styled';\n\nexport const BenefitsModal: React.FC<{ timing: number }> = ({ timing }) => {\n const { formatMessage } = useIntl();\n const { loyaltyGa4 } = useFeatureFlags();\n const { hideModal } = ModalContext.useModalContext();\n\n const { data } = useQuery(getCustomerBenefitsQuery);\n\n React.useEffect(() => {\n if (loyaltyGa4) {\n trackLoyaltyModalOpen(LoyaltyStatus.activated, timing);\n }\n }, [timing, loyaltyGa4]);\n\n React.useEffect(() => {\n if (!loyaltyGa4) {\n trackLoyaltyModalDeprecated(\n LoyaltyStatus.activated,\n '/overlay_vip-discount/confirmation/'\n );\n }\n }, [loyaltyGa4]);\n\n const handleSettingsClick = () => {\n if (loyaltyGa4) {\n dispatchTrackingEvent({\n event: 'vip_overlay_cta',\n vip: {\n action: 'click_on_overlay',\n name: 'change_settings',\n },\n });\n } else {\n trackEvent({\n eventCategory: 'Service',\n eventAction: 'LoyaltyOverlaySettings',\n eventLabel: undefined,\n eventValue: undefined,\n eventNonInteraction: undefined,\n });\n }\n };\n\n const handleOkClick = () => {\n if (loyaltyGa4) {\n trackLoyaltyModalClose();\n }\n hideModal();\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n }\n >\n
\n {data?.customerBenefits && (\n \n \n \n )}\n
\n \n );\n};\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n howToGetLoyaltyDiscountHeader: {\n id: 'pd.loyalty.discount.how.to.header',\n defaultMessage: 'Kupujte oblíbené značky a kategorie se slevou',\n },\n registerStep: {\n id: 'pd.loyalty.discount.how.to.register',\n defaultMessage: 'Registrujte se',\n },\n newsletterStep: {\n id: 'pd.loyalty.discount.how.to.newsletter',\n defaultMessage: 'Odebírejte náš newsletter',\n },\n chooseBrandAndCategoryStep: {\n id: 'pd.loyalty.discount.how.to.choose.brand.category',\n defaultMessage: 'Vyberte si 3 značky a kategorii',\n },\n alreadyHaveAccount: {\n id: 'pd.loyalty.discount.how.to.already.have.account',\n defaultMessage: 'Již máte účet?',\n },\n logIn: {\n id: 'pd.loyalty.discount.how.to.log.in',\n defaultMessage: 'Přihlásit se',\n },\n registerNow: {\n id: 'pd.loyalty.discount.how.to.register.now',\n defaultMessage: 'Registrovat se',\n },\n setUpNow: {\n id: 'pd.loyalty.discount.how.to.set.up.now',\n defaultMessage: 'Nastavit',\n },\n});\n","import styled from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nexport const LoginWrapper = styled.div`\n text-align: center;\n margin-top: 1rem;\n color: ${theme.palette.neutralDarker};\n`;\n\nexport const LoginLink = styled.a`\n cursor: pointer;\n text-decoration: underline;\n color: ${theme.palette.neutralDarker};\n margin-left: 0.5rem;\n\n &:hover {\n text-decoration: none;\n }\n\n color: ${theme.palette.basic};\n font-weight: 500;\n`;\n\nexport const StepProgressCircle = styled.div<{\n isFulfilled: boolean;\n}>`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.125rem;\n height: 1.125rem;\n background: ${(props) =>\n props.isFulfilled ? theme.palette.basic : theme.palette.neutralLight};\n border-radius: 50%;\n margin-right: 1.125rem;\n width: 1.25rem;\n height: 1.25rem;\n`;\n\nexport const StepWrapper = styled.span`\n display: flex;\n width: 100%;\n margin: 1rem auto;\n text-align: left;\n\n :first-child {\n margin: 0.75rem 0 0.5rem;\n }\n :last-child {\n margin: 0;\n }\n margin: 0 0 0.5rem;\n`;\n\nexport const FooterContent = styled.div`\n display: flex;\n flex-direction: column;\n padding: 0 1.25rem;\n @media (min-width: ${breakpoints.md}) {\n padding: 0 2rem;\n align-items: flex-start;\n }\n`;\n","import { trackEvent } from '@notino/web-tracking';\n\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nexport const trackLoyaltyCTA = (\n eventName: 'register' | 'log_in' | 'change_settings'\n) => {\n dispatchTrackingEvent({\n event: 'vip_overlay_cta',\n vip: {\n action: 'click_on_overlay',\n name: eventName,\n },\n });\n};\n\nexport const trackLoyaltyCTADeprecated = (eventLabel: string) => {\n trackEvent({\n eventCategory: 'Service',\n eventAction: 'LoyaltyCTA',\n eventLabel,\n eventValue: undefined,\n eventNonInteraction: undefined,\n });\n};\n","import * as React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport { useQuery } from '@apollo/client';\n\nimport {\n ButtonModel,\n CheckIcon,\n CloseIcon,\n Colors,\n} from '@notino/react-styleguide';\nimport {\n Roles,\n GetCustomerBenefitsQuery,\n GetUserLoyaltyProgressQuery,\n} from '@notino/shared/definitions/types';\n\nimport { LOGIN_URL } from '@constants';\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\n\nimport { MY_NOTINO_BENEFIT_PAGE, REGISTER_URL } from '../../constants';\nimport getCustomerBenefitsQuery from '../../queries/getCustomerBenefits.graphql';\nimport {\n determineStatus,\n trackLoyaltyModalDeprecated,\n trackLoyaltyModalOpen,\n} from '../../trackLoyaltyModal';\nimport { BaseLoyaltyModal } from '../BaseLoyaltyModal';\nimport { StyledButton } from '../styled';\n\nimport { messages } from './messages';\nimport getUserLoyaltyProgressQuery from './queries/getUserLoyaltyProgress.graphql';\nimport {\n LoginWrapper,\n LoginLink,\n StepProgressCircle,\n StepWrapper,\n FooterContent,\n} from './styled';\nimport { trackLoyaltyCTA, trackLoyaltyCTADeprecated } from './trackLoyaltyCTA';\n\nenum HowToGetDiscountSteps {\n Register = 'registerStep',\n Newsletter = 'newsletterStep',\n ChooseBrandAndCategory = 'chooseBrandAndCategoryStep',\n}\n\nexport type FullfilledSteps = Record;\n\nexport const HowToLoyaltyModal: React.FC<{ timing: number }> = ({ timing }) => {\n const { formatMessage } = useIntl();\n const { loyaltyGa4 } = useFeatureFlags();\n const { data: getUser, loading: getUserLoading } =\n useQuery(getUserLoyaltyProgressQuery);\n\n const { data: checkCustomerBenefitsResult } =\n useQuery(getCustomerBenefitsQuery);\n\n const brandDiscountsSelected =\n checkCustomerBenefitsResult?.customerBenefits?.brandDiscounts?.length > 0;\n const categoryDiscountsSelected =\n checkCustomerBenefitsResult?.customerBenefits?.categoryDiscounts?.length >\n 0;\n\n const fulfilledSteps = React.useMemo(\n () => ({\n [HowToGetDiscountSteps.Register]:\n getUser && getUser.user ? getUser.user.role !== Roles.Anonymous : false,\n [HowToGetDiscountSteps.Newsletter]: getUser?.isUserSubscribed ?? false,\n [HowToGetDiscountSteps.ChooseBrandAndCategory]: Boolean(\n brandDiscountsSelected || categoryDiscountsSelected\n ),\n }),\n [brandDiscountsSelected, categoryDiscountsSelected, getUser]\n );\n\n const onButtonClick = () => {\n if (!fulfilledSteps.registerStep) {\n if (loyaltyGa4) {\n trackLoyaltyCTA('register');\n } else {\n trackLoyaltyCTADeprecated('Register');\n }\n location.href = REGISTER_URL;\n } else {\n if (loyaltyGa4) {\n trackLoyaltyCTA('change_settings');\n } else {\n trackLoyaltyCTADeprecated('ChangeSettings');\n }\n location.href = MY_NOTINO_BENEFIT_PAGE;\n }\n };\n\n const handleLoginClick = () => {\n if (loyaltyGa4) {\n trackLoyaltyCTA('log_in');\n } else {\n trackLoyaltyCTADeprecated('Log in');\n }\n };\n\n React.useEffect(() => {\n if (loyaltyGa4 && !getUserLoading) {\n trackLoyaltyModalOpen(determineStatus(fulfilledSteps), timing);\n }\n }, [fulfilledSteps, timing, loyaltyGa4, getUserLoading]);\n\n React.useEffect(() => {\n if (!loyaltyGa4 && !getUserLoading) {\n trackLoyaltyModalDeprecated(determineStatus(fulfilledSteps));\n }\n }, [fulfilledSteps, loyaltyGa4, getUserLoading]);\n\n return (\n \n \n {fulfilledSteps.registerStep ? (\n \n ) : (\n \n )}\n \n {!fulfilledSteps.registerStep && (\n \n \n \n \n \n \n )}\n \n )\n }\n >\n
\n {Object.values(HowToGetDiscountSteps).map((step) => (\n \n \n {fulfilledSteps[step] ? (\n \n ) : (\n \n )}\n \n \n \n ))}\n
\n \n );\n};\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n possibleDiscount: {\n id: 'pd.loyalty.discount.possible.discount',\n defaultMessage: 'Chci slevu {value}',\n },\n customerDiscountBold: {\n id: 'pd.loyalty.discount.customer.discount.bold',\n defaultMessage: 'Vaše sleva {value}',\n },\n customerDiscount: {\n id: 'pd.loyalty.discount.customer.discount',\n defaultMessage:\n '{customerDiscountBold} na {subjectType} {discountSubject} se uplatní v košíku. {more}',\n },\n moreDiscountInfo: {\n id: 'pd.loyalty.discount.more.discount.info',\n defaultMessage: 'Více',\n },\n categoryDiscount: {\n id: 'pd.loyalty.discount.category.discount',\n defaultMessage: 'kategorii',\n },\n brandDiscount: {\n id: 'pd.loyalty.discount.brand.discount',\n defaultMessage: 'značku',\n },\n});\n","import styled, { css } from 'styled-components';\n\nimport { DiamondIcon, theme } from '@notino/react-styleguide';\n\ninterface LoyaltyDiscountStyledWrapperProps {\n isCustomerDiscount: boolean;\n newDesign: boolean;\n}\n\nexport const LoyaltyDiscountStyledWrapper = styled.button`\n display: flex;\n align-items: center;\n font-size: 0.9rem;\n text-decoration: ${({ isCustomerDiscount }) =>\n isCustomerDiscount ? 'none' : 'underline'};\n cursor: pointer;\n background: none;\n border: none;\n color: #000 !important;\n &:hover {\n text-decoration: none;\n }\n\n ${({ newDesign }) =>\n newDesign &&\n css`\n color: ${theme.palette.neutralDarker} !important;\n `}\n`;\n\nexport const CustomerDiscountWrapper = styled.span`\n text-decoration: underline;\n &:hover {\n text-decoration: none;\n }\n`;\n\nexport const StyledDiamondIcon = styled(DiamondIcon)`\n margin-right: 1rem;\n`;\n\nexport const CustomerDiscountBoldWrapper = styled.span`\n font-weight: 600;\n`;\n","import{_ as t}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as e from\"react\";import{Icon as r}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var l=function(l){return e.createElement(r,t({},l,{viewBox:\"0 0 68 64\"}),e.createElement(\"path\",{fill:\"#505050\",d:\"M48.27,12.69H18.85L8.31,28.11,33.56,63.9,58.81,28.11ZM32.17,54.4l-17-24.14H35.51Zm7.72-24.14H52L36.93,51.6Zm12.17-4.34H39.4l-4-8.89H46ZM21.14,17h9.49l4,8.89H15.06Z\"}),e.createElement(\"rect\",{fill:\"#505050\",x:\"2.59\",y:\"13.57\",width:\"4.34\",height:\"8.78\",transform:\"translate(-11.31 8.63) rotate(-45)\"}),e.createElement(\"rect\",{fill:\"#dc0069\",x:\"14.34\",y:\"1.57\",width:\"4.34\",height:\"8.79\",transform:\"translate(-0.97 7.57) rotate(-25.1)\"}),e.createElement(\"rect\",{fill:\"#dc0069\",x:\"31.39\",y:\"0.07\",width:\"4.34\",height:\"8.78\"}),e.createElement(\"rect\",{fill:\"#dc0069\",x:\"57.97\",y:\"15.79\",width:\"8.78\",height:\"4.34\",transform:\"translate(5.56 49.36) rotate(-45)\"}),e.createElement(\"rect\",{fill:\"#505050\",x:\"46.22\",y:\"3.79\",width:\"8.78\",height:\"4.34\",transform:\"translate(23.75 49.27) rotate(-64.9)\"}))};export{l as DiamondIcon};\n//# sourceMappingURL=DiamondIcon.js.map\n","import { DiscountType, SubjectType } from '@notino/shared/definitions/types';\n\nimport { messages } from './messages';\n\nexport const getDiscountWithSymbol = (\n discountType: DiscountType,\n value: number\n) =>\n ({\n // In future there is open possibility for other DiscountTypes\n [DiscountType.Percentage]: `${value}%`,\n }[discountType]);\n\nexport const subjectTypeMessages: Record<\n SubjectType,\n { id: string; defaultMessage: string }\n> = {\n [SubjectType.BrandDiscount]: messages.brandDiscount,\n [SubjectType.CategoryDiscount]: messages.categoryDiscount,\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { useQuery } from '@apollo/client';\n\nimport { ModalModel, ModalContext, Colors } from '@notino/react-styleguide';\nimport {\n VariantFragmentFragment,\n GetCustomerBenefitsQuery,\n} from '@notino/shared/definitions/types';\nimport { resetDataLayer } from '@notino/web-tracking';\n\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\nimport {\n TrackingContextProvider,\n useTrackingContext,\n} from '@context/tracking/TrackingContext';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\nimport { trackPageReload } from '../../tracking';\n\nimport { BenefitsModal } from './components/BenefitsModal';\nimport { HowToLoyaltyModal } from './components/HowToLoyaltyDiscountModal';\nimport { messages } from './messages';\nimport getCustomerBenefitsQuery from './queries/getCustomerBenefits.graphql';\nimport {\n CustomerDiscountBoldWrapper,\n CustomerDiscountWrapper,\n LoyaltyDiscountStyledWrapper,\n StyledDiamondIcon,\n} from './styled';\nimport { trackLoyaltyModalClose } from './trackLoyaltyModal';\nimport { getDiscountWithSymbol, subjectTypeMessages } from './utils';\n\ninterface ILoyaltyDiscount {\n customerBenefits: VariantFragmentFragment['customerBenefits'];\n // We need these props to track pageView of PD after modal close\n gtmPageReloadProps: Parameters[0];\n}\n\nexport const LoyaltyDiscount: React.FC = ({\n customerBenefits,\n gtmPageReloadProps,\n}) => {\n const newDesign = useNewPdDesignEnabled();\n const { loyaltyGa4 } = useFeatureFlags();\n const { data, loading } = useQuery(\n getCustomerBenefitsQuery,\n {\n ssr: false,\n }\n );\n\n const { getTimeFromInit } = useTrackingContext();\n const { toggleModal, hideModal } = ModalContext.useModalContext();\n const modalLastClosedMs = React.useRef(0);\n TrackingContextProvider.useSubscribeToInitTimeReset(() => {\n modalLastClosedMs.current = 0;\n });\n\n const handleClick = () => {\n const hasBenefits = data?.customerBenefits?.hasActiveBenefits;\n const timing = getTimeFromInit() - modalLastClosedMs.current;\n toggleModal(\n hasBenefits ? (\n \n ) : (\n \n ),\n {\n noBorders: true,\n size: ModalModel.Sizes.large,\n showOverflow: true,\n positionBottomOnMobile: true,\n closeIconColor: !hasBenefits\n ? { xs: Colors.basicInverse, md: Colors.neutralDark }\n : undefined,\n onClose: () => {\n if (loyaltyGa4) {\n trackLoyaltyModalClose();\n }\n modalLastClosedMs.current = getTimeFromInit();\n resetDataLayer();\n trackPageReload(gtmPageReloadProps);\n hideModal();\n },\n }\n );\n };\n\n const formattedBenefits = React.useMemo(\n () => ({\n availableDiscount: customerBenefits.availableDiscount && {\n value: getDiscountWithSymbol(\n customerBenefits.availableDiscount.discountType,\n customerBenefits.availableDiscount.value\n ),\n },\n customerDiscount: customerBenefits.customerDiscount && {\n value: getDiscountWithSymbol(\n customerBenefits.customerDiscount.discountType,\n customerBenefits.customerDiscount.value\n ),\n },\n }),\n [customerBenefits.availableDiscount, customerBenefits.customerDiscount]\n );\n\n if (\n !formattedBenefits.availableDiscount &&\n !formattedBenefits.customerDiscount\n ) {\n return null;\n }\n\n const isCustomerDiscount = Boolean(formattedBenefits.customerDiscount);\n\n return (\n \n <>\n \n {customerBenefits.availableDiscount && (\n \n )}\n {customerBenefits.customerDiscount && (\n \n \n ),\n customerDiscountBold: (\n \n \n \n ),\n more: (\n \n \n \n ),\n }}\n />\n \n )}\n \n \n );\n};\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n engravingMaxOrderQtyHeader: {\n id: 'engraving.max.order.quantity.header',\n defaultMessage: 'Lze objednat pouze {quantity} {unit}',\n },\n engravingMaxOrderQtyDesc: {\n id: 'engraving.max.order.quantity.description',\n defaultMessage:\n 'Aby se dostalo na co nejvíce zákazníku, z výrobních důvodů zatím neumožňujeme gravírování více kusů na jednu objednávku.',\n },\n addToCartQuantity: {\n id: 'pd.addToCart.quantity',\n defaultMessage: 'Množství',\n },\n});\n","import{a as o,_ as t}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as n from\"react\";import{T as r}from\"./index-f865d2ff.js\";import\"./TextAlign.js\";import\"./index-865c84cb.js\";import\"./utils-ec9be121.js\";import\"./StyledDropdown.js\";import\"./breakpoints.js\";import\"./theme.js\";import\"./styled.js\";import\"styled-components\";import\"./Colors.js\";import\"./CheckIcon.js\";import\"./index.js\";import\"./ThemeContext.js\";import\"./HorizontalChevron.js\";import\"./ChevronDownIcon.js\";import\"./ChevronUpIcon.js\";var e=[\"options\",\"unit\",\"handleOptionSelect\",\"currentOption\"],i=function(i){var p=i.options,s=i.unit,m=i.handleOptionSelect,c=void 0===m?function(){return null}:m,u=i.currentOption,l=void 0===u?0:u,a=o(i,e),d=n.useMemo((function(){var o=s?\" \"+s:\"\";return p.map((function(t){return{id:t,label:\"\"+t+o}}))}),[p,s]),j=n.useCallback((function(o){var t=o.id;c(Number(t))}),[c]),f=n.useMemo((function(){return l&&d.find((function(o){return o.id===l}))||d[0]}),[l,d]);return n.createElement(r,t({},a,{options:d,currentOption:f,handleOptionSelect:j}))};export{i as QuantitySelector};\n//# sourceMappingURL=QuantitySelector.js.map\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, QuantitySelector } from '@notino/react-styleguide';\n\nconst getGridTemplateAreas = (\n isClickAndCollect: boolean,\n isLoyaltyDiscount: boolean\n) => {\n if (isClickAndCollect && isLoyaltyDiscount) {\n return css`\n grid-template-areas:\n 'loyalty'\n 'addToCart'\n 'clickAndCollect';\n @media (min-width: ${breakpoints.sm}) {\n grid-template-columns: 1fr 1fr 1fr;\n grid-template-areas:\n 'loyalty loyalty loyalty'\n 'addToCart clickAndCollect _';\n }\n `;\n }\n if (isLoyaltyDiscount) {\n return css`\n grid-template-areas:\n 'loyalty'\n 'addToCart';\n `;\n }\n if (isClickAndCollect) {\n return css`\n grid-template-areas:\n 'addToCart'\n 'clickAndCollect';\n @media (min-width: ${breakpoints.sm}) {\n grid-template-columns: auto auto 1fr;\n grid-template-areas: 'addToCart clickAndCollect';\n }\n `;\n }\n return css`\n grid-template-areas: 'addToCart';\n `;\n};\n\nconst getNewGridTemplateAreas = (\n isClickAndCollect: boolean,\n isLoyaltyDiscount: boolean\n) => {\n if (isClickAndCollect && isLoyaltyDiscount) {\n return css`\n grid-template-areas:\n 'loyalty'\n 'addToCart'\n 'clickAndCollect';\n `;\n }\n if (isLoyaltyDiscount) {\n return css`\n grid-template-areas:\n 'loyalty'\n 'addToCart';\n `;\n }\n if (isClickAndCollect) {\n return css`\n grid-template-areas:\n 'addToCart'\n 'clickAndCollect';\n `;\n }\n return css`\n grid-template-areas: 'addToCart';\n `;\n};\n\nexport const BuyButtons = styled.div`\n display: grid;\n align-items: center;\n\n ${({ newDesign, isClickAndCollect, isLoyaltyDiscount, canBuy }) =>\n newDesign\n ? css`\n width: 100%;\n grid-gap: 0.5rem;\n padding: 1rem 0 1.5rem;\n ${getNewGridTemplateAreas(isClickAndCollect, isLoyaltyDiscount)}\n `\n : css`\n ${getGridTemplateAreas(isClickAndCollect, isLoyaltyDiscount)}\n grid-gap: 1rem;\n padding: 1rem 0;\n\n @media (min-width: ${breakpoints.sm}) {\n grid-gap: ${canBuy ? '2rem 1rem' : '0rem'};\n }\n `}\n`;\n\nexport const ButtonWrapper = styled.div<{ newDesign: boolean }>`\n & > button,\n form button {\n padding: 0 0.5625rem !important;\n height: 2.75rem;\n min-width: 7.5rem;\n text-transform: none !important;\n font-weight: normal !important;\n }\n flex: 1;\n min-width: 7.5rem;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n & > button,\n form button {\n height: 3.25rem;\n }\n `\n : css`\n @media (min-width: ${breakpoints.sm}) {\n flex: 0 1;\n }\n `}\n`;\n\nexport const Label = styled.label`\n display: none;\n`;\n\nexport const DropdownButtonSeparator = styled.div<{ newDesign: boolean }>`\n ${({ newDesign }) =>\n newDesign ? 'padding-right: 0.5rem' : 'padding-right: 1rem'}\n`;\n\nexport const QuantityWrapper = styled.div`\n width: 5.25rem;\n font-size: 0.875rem;\n & > div > div {\n min-height: 2.75rem;\n }\n`;\n\ninterface IWrapperProps {\n isClickAndCollect?: boolean;\n isLoyaltyDiscount?: boolean;\n canBuy?: boolean;\n newDesign: boolean;\n}\n\nexport const AddToCartWrapper = styled.div`\n grid-area: addToCart;\n\n display: flex;\n align-items: center;\n`;\n\nexport const ClickAndCollectWrapper = styled.div`\n grid-area: clickAndCollect;\n\n ${({ isClickAndCollect, newDesign }) =>\n isClickAndCollect &&\n css`\n margin-top: ${newDesign ? '-0.5rem' : '-1rem'};\n `}\n\n @media (min-width: ${breakpoints.sm}) {\n margin-top: 0;\n }\n`;\n\nexport const LoyaltyDiscountWrapper = styled.div`\n grid-area: loyalty;\n\n ${({ newDesign }) =>\n newDesign &&\n css`\n margin-bottom: 0.75rem;\n width: 100%;\n `}\n`;\n\nexport const StyledQuantitySelector = styled(QuantitySelector)<{\n newDesign: boolean;\n}>`\n ${({ newDesign }) =>\n newDesign &&\n css`\n [role='combobox'] {\n height: 3.25rem;\n }\n `}\n`;\n","import { snakeCase } from 'lodash';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\nimport { CartType } from '@notino/web-tracking';\n\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\nimport { ProductEventWither } from '@helpers/googleTagManager';\n\nexport const ENGRAVING_CODE = 'ENGXXXU_SENG01';\n\nexport const engravingPrefix = (text: string) => {\n return `Engraving - ${text}`;\n};\n\nexport const trackEngravingAddToCart = (\n productInfo: GetProductViewQuery['productDetailByMasterId'][number],\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number],\n quantity,\n additionalPromoLabels: string[]\n) => {\n dispatchTrackingEvent({\n event: 'add_to_cart',\n product: ProductEventWither()\n .withProduct(productInfo)\n .withVariant(variant)\n .withAdditionalData({\n // use engraving product code instead of product code\n // more info in comments: https://notino.tpondemand.com/entity/132907-nushopweb-pd-trackovani-pridavani-gravirovani-do\n product_code: ENGRAVING_CODE,\n price: variant.engraving.config.price,\n brand_name: engravingPrefix(productInfo.brand),\n ...(variant.name && {\n name: engravingPrefix(variant.name),\n }),\n cart_type: snakeCase(CartType.cart),\n quantity,\n })\n .withAdditionalPromoLabels(additionalPromoLabels)\n .build(),\n _clear: true,\n });\n};\n","export const prepareOptions = (maxQuantity: number): number[] => {\n const options = [];\n\n for (let option = 1; option <= maxQuantity; option++) {\n options.push(option);\n }\n\n return options;\n};\n","import * as React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport { snakeCase } from 'lodash';\n\nimport { ModalModel, TextAlign, ModalContext } from '@notino/react-styleguide';\nimport {\n CartServiceType,\n GetProductViewQuery,\n} from '@notino/shared/definitions/types';\nimport { AdditionalServicesAvailability, CartType } from '@notino/web-tracking';\nimport { Ga4Events } from '@notino/web-tracking/dist/types/package/ga4/events';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { useTrackingDisplayType } from '@containers/ProductDetailContainer/utils';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\nimport { ProductEventWither } from '@helpers/googleTagManager';\nimport { AddToCartButton } from '@sharedComponents/AddToCartButton/AddToCartButton';\n\nimport { ICurrency } from '../../../../App/model';\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\nimport { usePriceLogic } from '../../hooks/usePriceLogic';\nimport {\n MIN_PRICE_PROMO_LABEL,\n RRP_PRICE_PROMO_LABEL,\n} from '../../hooks/usePriceLogic/tracking';\nimport { IModifaceEffectVariants } from '../../ModiFaceModal/model';\nimport { trackPageReload } from '../../tracking';\nimport { getLoyaltyDiscountState } from '../../utils';\nimport { ClickAndCollect } from '../ClickAndCollect';\nimport { useEngravingTryItFirstContext } from '../context/EngravingTryItFirst';\nimport { LoyaltyDiscount } from '../LoyaltyDiscount';\n\nimport { messages } from './addToCartMessages';\nimport {\n ButtonWrapper,\n BuyButtons,\n Label,\n DropdownButtonSeparator,\n QuantityWrapper,\n AddToCartWrapper,\n ClickAndCollectWrapper,\n LoyaltyDiscountWrapper,\n StyledQuantitySelector,\n} from './styled';\nimport { trackEngravingAddToCart } from './tracking';\nimport { prepareOptions } from './utils/prepareOptions';\n\ninterface IAddToCartProps {\n product: GetProductViewQuery['productDetailByMasterId'][number];\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number];\n orderUnit: string;\n productCode: string;\n currency: ICurrency;\n onProductAdded: () => void;\n modifaceVariants: IModifaceEffectVariants;\n engravingAvailable: AdditionalServicesAvailability;\n tryItFirstAvailable: AdditionalServicesAvailability;\n giftAvailable: boolean;\n}\n\nconst QUANTITY_SELECTOR_KEYBOARD_CONFIG = {\n keyNavigation: true,\n};\n\nexport const AddToCart: React.FC = React.memo(\n ({\n variant,\n product,\n orderUnit,\n onProductAdded,\n modifaceVariants,\n engravingAvailable,\n tryItFirstAvailable,\n giftAvailable,\n }) => {\n const {\n state: { engravingInitials, withEngraving, withTryItFirst },\n } = useEngravingTryItFirstContext();\n const { hideModal, toggleModal } = ModalContext.useModalContext();\n const { getTimeFromInit } = useTrackingContext();\n const { formatMessage } = useIntl();\n const newDesign = useNewPdDesignEnabled();\n const [quantity, setQuantity] = React.useState(1);\n const { rrpShown, minimalPriceShown } = usePriceLogic(variant);\n\n const trackingDisplayType = useTrackingDisplayType(product);\n\n const onModalClose = React.useCallback(() => {\n setQuantity(1);\n hideModal();\n }, [hideModal]);\n\n const changeAmount = React.useCallback(\n (newQuantity: number): void => {\n if (withEngraving && newQuantity > 1) {\n const modalOptions = {\n header: (\n
\n {formatMessage(messages.engravingMaxOrderQtyHeader, {\n quantity: 1,\n unit: orderUnit,\n })}\n
\n ),\n type: ModalModel.Types.default,\n onClose: onModalClose,\n };\n\n const modalContent = (\n \n );\n\n toggleModal(modalContent, modalOptions);\n }\n setQuantity(newQuantity);\n },\n [formatMessage, onModalClose, orderUnit, toggleModal, withEngraving]\n );\n\n const loyaltyDiscount = getLoyaltyDiscountState(variant.customerBenefits);\n\n const handleGtmPushProductDetail = React.useCallback(() => {\n trackPageReload({\n rrpShown,\n minimalPriceShown,\n variant,\n product,\n modifaceVariants,\n engravingAvailable,\n tryItFirstAvailable,\n giftAvailable,\n loyaltyDiscount,\n trackingDisplayType,\n });\n }, [\n variant,\n product,\n modifaceVariants,\n engravingAvailable,\n tryItFirstAvailable,\n giftAvailable,\n loyaltyDiscount,\n rrpShown,\n minimalPriceShown,\n trackingDisplayType,\n ]);\n\n const handleQuantitySelectorClick = () => {\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n timing: getTimeFromInit(),\n interaction: 'click',\n mode: undefined,\n name: 'quantity_selector',\n type: 'product_detail',\n action: 'click_on_element',\n promo_labels: undefined,\n },\n _clear: true,\n });\n };\n\n const services = React.useMemo(\n () =>\n withEngraving && [\n {\n type: CartServiceType.Engraving,\n value: engravingInitials,\n count: quantity,\n productId: variant.id,\n },\n ],\n [withEngraving, engravingInitials, quantity, variant.id]\n );\n\n const trackingProduct: Extract<\n Ga4Events,\n { event: 'add_to_cart' }\n >['product'] = React.useMemo(\n () =>\n ProductEventWither()\n .withProduct(product)\n .withVariant(variant)\n .withServices({\n modifaceVariants,\n tryItFirstAvailable,\n engravingAvailable,\n shadefinderAvailable: product.isShadeFinderAvailable,\n })\n .withAdditionalData({ quantity, cart_type: snakeCase(CartType.cart) })\n .withAdditionalPromoLabels([\n rrpShown && RRP_PRICE_PROMO_LABEL,\n minimalPriceShown && MIN_PRICE_PROMO_LABEL,\n ])\n .build(),\n [\n engravingAvailable,\n tryItFirstAvailable,\n product,\n minimalPriceShown,\n rrpShown,\n modifaceVariants,\n quantity,\n variant,\n ]\n );\n\n const handleProductAdded = React.useCallback(() => {\n onProductAdded();\n\n const additionalPromoLabels = [\n rrpShown && RRP_PRICE_PROMO_LABEL,\n minimalPriceShown && MIN_PRICE_PROMO_LABEL,\n ];\n dispatchTrackingEvent({\n event: 'add_to_cart',\n product: trackingProduct,\n _clear: true,\n });\n\n if (withEngraving) {\n trackEngravingAddToCart(\n product,\n variant,\n quantity,\n additionalPromoLabels\n );\n }\n }, [\n trackingProduct,\n product,\n variant,\n quantity,\n withEngraving,\n minimalPriceShown,\n rrpShown,\n onProductAdded,\n ]);\n\n const trackAddFailed = React.useCallback(\n (message: string) => {\n dispatchTrackingEvent({\n event: 'add_to_cart_failed',\n add: {\n products: [trackingProduct],\n },\n error: {\n status: message || '',\n },\n _clear: true,\n });\n },\n [trackingProduct]\n );\n\n const isClickAndCollect = variant.availablePickUpStores > 0;\n const isLoyaltyDiscount =\n Boolean(variant.customerBenefits?.availableDiscount) ||\n Boolean(variant.customerBenefits?.customerDiscount);\n\n return (\n \n \n {variant.canBuy && (\n \n \n \n \n \n \n (\n \n )}\n showAddToCartModal={product.config.showAddToCartModal}\n buttonElementId=\"pd-buy-button\"\n onProductAdded={handleProductAdded}\n onProductAddFailed={trackAddFailed}\n onClosingModal={handleGtmPushProductDetail}\n withLegacyAddToCart={true}\n />\n \n )}\n {isClickAndCollect && (\n \n 1}\n />\n \n )}\n {isLoyaltyDiscount && variant.canBuy && (\n \n \n \n )}\n \n \n );\n }\n);\n\nAddToCart.displayName = 'AddToCart';\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n taxIncludedDE: {\n id: 'pd.price.tax.included',\n defaultMessage: ', inkl. MwSt',\n },\n});\n","import styled from 'styled-components';\n\nimport { CurrencyStyled } from '@components/PriceLabel/components/styled';\n\nexport const PriceWrapper = styled.span`\n font-size: inherit;\n`;\n\nexport const CurrencyWrapper = styled(CurrencyStyled)`\n font-size: inherit;\n`;\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { useQuery } from '@apollo/client';\n\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\nimport { GetShowUnitPricesQuery } from '@notino/shared/definitions/types';\n\nimport PriceLabel from '@components/PriceLabel';\nimport { ILocale } from '@containers/App/model';\nimport { IPrice } from '@containers/ProductListing/model';\nimport getShowUnitPricesQuery from '@queries/showUnitPrices.graphql';\nimport { UnitPriceDecimalPlaces } from '@utils/constants';\n\nimport { messages } from './messages';\nimport { CurrencyWrapper, PriceWrapper } from './styled';\n\nexport interface IPriceRatioProps {\n stockAvailability: string;\n unitAmount: number;\n locale: ILocale;\n unit: string;\n unitPrice?: IPrice;\n settingsQuery?: GetShowUnitPricesQuery;\n prepend?: JSX.Element;\n}\n\nexport const showPriceRatio = (\n queryResult: GetShowUnitPricesQuery,\n stockAvailability: string,\n unitPrice: IPrice,\n unitAmount: number\n): boolean =>\n queryResult.Settings &&\n queryResult.Settings.showUnitPrices &&\n stockAvailability !== IStock.outOfStock &&\n unitPrice &&\n !!unitAmount;\n\nexport const PriceRatio: React.FC = ({\n unitAmount,\n unit,\n stockAvailability,\n unitPrice,\n settingsQuery: settingsQueryResultProps,\n prepend,\n}) => {\n const { data: settingsQueryResult } = useQuery(\n getShowUnitPricesQuery,\n {\n ssr: true,\n skip: Boolean(settingsQueryResultProps),\n }\n );\n\n const queryResult = settingsQueryResultProps || settingsQueryResult;\n\n if (!showPriceRatio(queryResult, stockAvailability, unitPrice, unitAmount)) {\n return null;\n }\n\n return (\n <>\n {prepend}\n \n {' '}\n / {`${unitAmount}\\u00A0${unit}`}\n \n \n \n );\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { useQuery } from '@apollo/client';\n\nimport { Colors, Tooltip, TooltipModel } from '@notino/react-styleguide';\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\nimport {\n Roles,\n VariantFragmentFragment,\n GetUserWithCartQuery,\n} from '@notino/shared/definitions/types';\n\nimport { useFormatPrice } from '@components/PriceLabel/useFormattedPrice';\nimport { ILocale } from '@containers/App/model';\nimport {\n IDamage,\n MaximumVolumeInPercent,\n} from '@containers/ProductListing/model';\nimport getUserWithCartQuery from '@queries/userWithCart.graphql';\n\nimport messages from '../../../messages';\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\nimport { usePriceLogic } from '../../hooks/usePriceLogic';\nimport { PriceRatio } from '../VariantsInSelectBox/PriceRatio';\n\nimport {\n Wrapper,\n CodeBlock,\n CodeName,\n Separator,\n Availability,\n AdditionalDescriptionStyled,\n AdditionalText,\n StyledInfoIcon,\n TooltipContent,\n} from './styled';\n\nconst Damage: React.FC<{ damage: IDamage }> = ({ damage }) => {\n const message =\n damage.volumeInPercent === MaximumVolumeInPercent\n ? messages.productDamaged\n : messages.productReturned;\n\n return (\n \n \n \n );\n};\n\ninterface IBelowTheLineProps {\n variant: VariantFragmentFragment;\n locale: ILocale;\n}\n\nexport const BellowTheLine: React.FC = React.memo(\n ({ variant, locale }) => {\n const {\n stockAvailability,\n attributes,\n orderCode,\n productCode,\n id,\n annotation,\n additionalText,\n availablePickUpStores,\n canBuy,\n } = variant;\n\n const { data: { user: { role } = { role: null } } = {} } =\n useQuery(getUserWithCartQuery);\n\n const { bottomRecentPrice } = usePriceLogic(variant);\n const formatPrice = useFormatPrice();\n const newDesign = useNewPdDesignEnabled();\n\n const isImmediateCollection = availablePickUpStores > 0 && !canBuy;\n\n const isMaster = attributes && attributes.Master;\n\n return (\n \n \n {isImmediateCollection ? (\n \n ) : (\n \n )}\n \n\n {variant.unitPrice && (\n | }\n stockAvailability={variant.stockAvailability.code}\n unitAmount={variant.unitPrice.perAmount}\n locale={locale}\n unit={variant.unitPrice.unit}\n unitPrice={variant.unitPrice}\n />\n )}\n\n {bottomRecentPrice && (\n <>\n | \n {' '}\n {formatPrice(bottomRecentPrice.value)?.formattedPriceWithCurrency}\n {bottomRecentPrice.tooltip}\n }\n position={TooltipModel.Position.topLeft}\n >\n \n \n \n )}\n\n | \n\n \n \n {' '}\n \n\n {role === Roles.Admin ? (\n \n {orderCode} {productCode} {id}\n {isMaster && M}\n \n ) : (\n orderCode\n )}\n \n\n {role === Roles.Admin && attributes.EAN && (\n \n EAN: {attributes.EAN}\n \n )}\n\n {attributes.IsForProfessionals && (\n \n \n \n )}\n\n {attributes.Damage && }\n\n {attributes.WithoutCellophane && (\n \n \n \n )}\n\n {attributes.DifferentPackaging && (\n \n \n \n )}\n\n {annotation && annotation.length > 0 && (\n \n {annotation}\n \n )}\n\n {additionalText && (\n \n )}\n \n );\n }\n);\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import{c as t}from\"./createSvgIcon-89a7bcb8.js\";import\"react\";import\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var o=function(o){return t(\"M497.535,14.465c-19.569-19.568-51.395-19.241-70.557,0.726L322.092,124.488L66.131,39.781L12.4,93.513l213.352,131.365L117.796,337.372l-69.231-11.366L0,374.571l101.78,35.649L137.429,512l48.565-48.565l-11.366-69.231l112.494-107.955L418.487,499.6l53.732-53.732l-84.706-255.961L496.808,85.022C516.776,65.86,517.103,34.034,497.535,14.465z\",e({viewBox:\"0 0 512 512\",\"data-testid\":\"plane-icon\"},o))};export{o as PlaneIcon};\n//# sourceMappingURL=PlaneIcon.js.map\n","import{c as e}from\"./createSvgIcon-89a7bcb8.js\";import\"react\";import\"./index.js\";import\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import\"./ThemeContext.js\";import\"styled-components\";var r=function(r){return e(\"M0,21.95,8,4h8.42L10.5,22ZM0,30V25H56v5H52.5V60H23V36H9V60H3.47V30Zm12.25-8L18.37,4H27V22ZM28.07,49H47V36H28.07ZM29,22V4h8.64l6.12,18ZM39.59,4H48l7.66,18H45.5Z\",r)};export{r as ShopIcon};\n//# sourceMappingURL=ShopIcon.js.map\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nexport const Container = styled.div<{ newDesign: boolean }>`\n padding: 1rem 0;\n\n ${({ newDesign }) =>\n newDesign &&\n css`\n padding: 1rem 0 2rem;\n @media (min-width: ${breakpoints.lg}) {\n padding: 1rem 0;\n }\n `}\n`;\n\nexport const SelectWrapper = styled.div``;\n\nexport const Select = styled.div`\n display: flex;\n justify-content: space-between;\n cursor: pointer;\n`;\n\nexport const DeliveryList = styled.div`\n flex: 10;\n padding-right: 0.5rem;\n`;\n\nexport const ChevronIconWrapper = styled.button<{ newDesign: boolean }>`\n cursor: pointer;\n width: 1rem;\n border: none;\n background-color: ${(props) => props.theme.palette.basicInverse};\n display: flex;\n justify-content: center;\n align-items: center;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n max-height: 6.5rem;\n `\n : css`\n max-height: 5.5rem;\n @media (min-width: ${breakpoints.sm}) {\n max-height: 3.1rem;\n }\n @media (min-width: ${breakpoints.md}) {\n max-height: 5.5rem;\n }\n @media (min-width: ${breakpoints.lg}) {\n max-height: 3.1rem;\n }\n `}\n`;\n\nexport const FlexRow = styled.div`\n align-items: flex-start;\n justify-content: space-between;\n color: ${(props) => props.theme.palette.neutralDarker};\n display: flex;\n flex-wrap: wrap;\n`;\n\nexport const FlexRowWithMargin = styled(FlexRow)<{ newDesign: boolean }>`\n &:last-child {\n margin-bottom: 0;\n }\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n margin-bottom: 0.75rem;\n `\n : css`\n margin-bottom: 0.625rem;\n `}\n`;\n\nexport const DeliveryInfo = styled.div`\n display: flex;\n justify-content: space-between;\n flex-basis: 100%;\n align-items: center;\n`;\n\nexport const TopDeliveryInfo = styled(DeliveryInfo)<{ newDesign: boolean }>`\n flex-basis: 100%;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n margin-bottom: 1.25rem;\n `\n : css`\n margin-bottom: 0.625rem;\n `}\n`;\n\nexport const DeliveryInfoWrapper = styled.div<{ newDesign: boolean }>`\n display: flex;\n width: 100%;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n flex-direction: column;\n `\n : css`\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: 0.25rem;\n `}\n`;\n\nexport interface IDeliveryTextColorProps {\n isInactive: boolean;\n newPdDesignEnabled: boolean;\n}\n\nconst deliveryTextColor = css`\n color: ${(props: IDeliveryTextColorProps) =>\n props.isInactive ? theme.palette.neutral : theme.palette.basic};\n`;\n\nexport const Name = styled.div`\n padding-right: 0.3125rem;\n min-width: 12.5rem;\n flex-basis: 100%;\n line-height: 1.2rem;\n ${deliveryTextColor};\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? theme.typography.labelRegular\n : css`\n font-weight: bold;\n font-size: 0.875rem;\n `}\n\n @media (min-width: ${breakpoints.sm}) {\n flex-basis: auto;\n line-height: 1.3rem;\n }\n\n @media (min-width: ${breakpoints.md}) {\n flex-basis: 100%;\n line-height: 1.2rem;\n }\n\n @media (min-width: ${breakpoints.lg}) {\n flex-basis: auto;\n line-height: 1.3rem;\n }\n`;\n\nexport const DeliveryDate = styled.div`\n line-height: 1.2rem;\n ${deliveryTextColor}\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? theme.typography.labelRegular400\n : css`\n font-weight: 300;\n font-size: 1rem;\n `}\n\n @media (min-width: ${breakpoints.sm}) {\n line-height: 1.3rem;\n }\n`;\n\nexport const TimeText = styled.span`\n color: ${(props) => props.theme.palette.successDark};\n`;\n\nexport const StyledHr = styled.hr<{ newDesign: boolean }>`\n height: 0.0625rem;\n border: none;\n background-color: ${(props) => props.theme.palette.neutralLighter};\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n margin: 1.25rem 0 0.75rem 0;\n `\n : css`\n margin-top: 1rem;\n `}\n`;\n\nexport const DeliveryDescription = styled.div<{ newPdDesignEnabled: boolean }>`\n margin: 0.625rem 0 0.75rem 0;\n\n color: ${(props) => props.theme.palette.neutralDarker};\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? theme.typography.bodySmall\n : css`\n font-size: 0.875rem;\n `}\n`;\n","import * as React from 'react';\n\nimport { Colors } from '@notino/react-styleguide';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\nimport { LeftIconWrapper } from '../styled';\n\nimport { DeliveryDate, DeliveryInfoWrapper, Name } from './styled';\n\ninterface IDeliveryLineProps {\n showIcon: boolean;\n icon: JSX.Element;\n name: string;\n description: JSX.Element | string;\n isInactive: boolean;\n}\n\nexport const DeliveryLine: React.FC = ({\n showIcon,\n icon,\n name,\n description,\n isInactive,\n}) => {\n const newPdDesignEnabled = useNewPdDesignEnabled();\n\n return (\n <>\n \n {showIcon &&\n React.cloneElement(icon, {\n color: isInactive ? Colors.neutral : Colors.basic,\n width: '20px',\n height: '20px',\n })}\n \n\n \n \n {name}\n \n\n \n {description}\n \n \n \n );\n};\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n deliveryInfo: {\n id: 'pd.delivery.info',\n defaultMessage: 'Způsoby dopravy',\n },\n});\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\n\nimport styled, { css } from 'styled-components';\n\nimport { theme } from '@notino/react-styleguide';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\n\ninterface IFormattedDateProps {\n date: string;\n}\n\ninterface IFormattedTimeProps {\n from: string;\n to: string;\n}\n\nconst Span = styled.span<{ newDesign: boolean }>`\n ${({ newDesign }) =>\n newDesign &&\n css`\n color: ${theme.palette.neutralDarker};\n ${theme.typography.labelRegular400}\n `}\n`;\n\nexport const FormattedDate: React.FC = ({ date }) => {\n const { formatDate } = useIntl();\n const newDesign = useNewPdDesignEnabled();\n\n const dateObj = new Date(date);\n const dayName = formatDate(dateObj, { weekday: 'long' });\n const dayNumber = formatDate(dateObj, {\n day: 'numeric',\n month: 'numeric',\n year: 'numeric',\n });\n\n return {`${dayName} ${dayNumber}`};\n};\n\nexport const FormattedTime: React.FC = ({ from, to }) => {\n const { formatTime } = useIntl();\n const newDesign = useNewPdDesignEnabled();\n\n const fromObj = new Date(from);\n const fromNumber = formatTime(fromObj, {\n hour: '2-digit',\n minute: '2-digit',\n });\n\n const toObj = new Date(to);\n const toNumber = formatTime(toObj, {\n hour: '2-digit',\n minute: '2-digit',\n });\n\n return {`${fromNumber} - ${toNumber}`};\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport messages from '../../../messages';\nimport { isTomorrow } from '../utils/dateUtils';\n\nimport { FormattedDate, FormattedTime } from './FormattedDate';\nimport { TimeText as StyledTimeText } from './styled';\n\ninterface ITimeTextProps {\n date: string;\n from?: string;\n to?: string;\n}\n\nexport const TimeText: React.FC = ({ date, from, to }) => {\n const dateToCompare = new Date(date);\n const nowDate = new Date().getDate();\n\n const isTomorrowDate = isTomorrow(dateToCompare);\n const isTodayDate = dateToCompare.getDate() === nowDate;\n\n const getFormattedDate = () => {\n if (from && to && (isTodayDate || isTomorrowDate)) {\n return ;\n }\n return ;\n };\n\n if (isTomorrowDate) {\n return (\n <>\n \n \n {' '}\n {getFormattedDate()}\n \n );\n } else if (isTodayDate) {\n return (\n <>\n \n {' '}\n \n {from && to && getFormattedDate()}\n \n );\n }\n\n return getFormattedDate();\n};\n","import * as React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport {\n Colors,\n PlaneIcon,\n ShopIcon,\n TruckIcon,\n} from '@notino/react-styleguide';\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport {\n DeliveryDisallowedReasons,\n IDelivery,\n} from '@containers/ProductListing/model';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\nimport { HorizontalChevron } from '@sharedComponents/Icons/HorizontalChevron';\n\nimport messages from '../../../messages';\n\nimport { DeliveryLine } from './DeliveryLine';\nimport { messages as deliveryMessages } from './messages';\nimport {\n ChevronIconWrapper,\n Container,\n DeliveryDescription,\n DeliveryInfo,\n DeliveryList,\n FlexRow,\n FlexRowWithMargin,\n Select,\n SelectWrapper,\n StyledHr,\n TopDeliveryInfo,\n} from './styled';\nimport { TimeText } from './TimeText';\nimport {\n groupPossibleDeliveries,\n hasOneDeliveryTypeWithTwoOptions,\n} from './utils';\n\nexport enum DeliveriesDisplayMode {\n Static = 'Static',\n Expandable = 'Expandable',\n}\n\nexport interface IDeliveryTimeProps {\n deliveries: GetProductViewQuery['productDetailByMasterId'][number]['deliveries'];\n displayMode?: DeliveriesDisplayMode;\n}\n\nconst disallowedReasonMessageKeyMapping = {\n [DeliveryDisallowedReasons.AirTransportDisallowed]:\n messages.deliveryDisallowed,\n};\n\nconst getIconByDelivery = (delivery: IDelivery): JSX.Element => {\n if (delivery.isPersonal) {\n return ;\n } else if (delivery.isAirTransport) {\n return ;\n }\n\n return ;\n};\n\nexport const DeliveryTime: React.FC = React.memo(\n ({ deliveries, displayMode }) => {\n const { formatMessage } = useIntl();\n const { getTimeFromInit } = useTrackingContext();\n const isStatic = displayMode === DeliveriesDisplayMode.Static;\n const newPdDesignEnabled = useNewPdDesignEnabled();\n\n const [showAllDeliveriesMode, setShowAllDeliveriesMode] =\n React.useState(isStatic);\n\n const handleDeliveryListClick = (e: React.SyntheticEvent) => {\n e.preventDefault();\n\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n name: 'delivery_options',\n type: 'product_detail',\n mode: !showAllDeliveriesMode ? 'on' : 'off',\n timing: getTimeFromInit(),\n interaction: 'click',\n action: 'click_on_delivery',\n promo_labels: undefined,\n },\n _clear: true,\n });\n\n setShowAllDeliveriesMode((old) => !old);\n };\n\n const getDeliveryDescription = (delivery: IDelivery) => {\n if (delivery.disallowedReason) {\n const messageDescriptor =\n disallowedReasonMessageKeyMapping[delivery.disallowedReason];\n\n if (messageDescriptor) {\n return ;\n }\n }\n\n return (\n \n );\n };\n\n const groupedDeliveries = React.useMemo(\n () => groupPossibleDeliveries(deliveries),\n [deliveries]\n );\n\n const showAllDeliveries =\n showAllDeliveriesMode ||\n hasOneDeliveryTypeWithTwoOptions(groupedDeliveries);\n\n return (\n \n \n \n \n \n\n {showAllDeliveriesMode && (\n <>\n \n \n \n \n \n )}\n \n \n );\n }\n);\n","import { IntlFormatters } from 'react-intl';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { IDelivery } from '@containers/ProductListing/model';\n\nimport messages from '../../../../messages';\n\nexport interface IDeliveryGroup {\n deliveries: IDelivery[];\n getTopDeliveryName: (\n delivery: IDelivery,\n intl: IntlFormatters['formatMessage']\n ) => string;\n}\n\ninterface IDeliveryByType {\n personal: IDelivery[];\n transport: IDelivery[];\n airTransport: IDelivery[];\n}\n\nexport const groupPossibleDeliveries = (\n deliveries: GetProductViewQuery['productDetailByMasterId'][number]['deliveries']\n): IDeliveryGroup[] => {\n const deliveriesByType = [...deliveries]\n .sort((a, b) => new Date(a.date).valueOf() - new Date(b.date).valueOf())\n .reduce(\n (acc, delivery) => {\n if (delivery.isPersonal) {\n acc.personal = [...acc.personal, delivery];\n } else if (delivery.isAirTransport) {\n acc.airTransport = [...acc.airTransport, delivery];\n } else {\n acc.transport = [...acc.transport, delivery];\n }\n\n return acc;\n },\n { personal: [], transport: [], airTransport: [] }\n );\n\n return getPossibleDeliveryGroups(deliveriesByType);\n};\n\nconst getPossibleDeliveryGroups = (\n deliveriesByType: IDeliveryByType\n): IDeliveryGroup[] => {\n const possibleDeliveryGroups = [];\n\n if (deliveriesByType.transport.length > 0) {\n possibleDeliveryGroups.push({\n deliveries: deliveriesByType.transport,\n getTopDeliveryName: (delivery) => delivery.name,\n });\n }\n\n if (deliveriesByType.personal.length > 0) {\n possibleDeliveryGroups.push({\n deliveries: deliveriesByType.personal,\n getTopDeliveryName: (_, formatMessage) =>\n formatMessage(messages.deliveryPersonal),\n });\n }\n\n if (deliveriesByType.airTransport.length > 0) {\n possibleDeliveryGroups.push({\n deliveries: deliveriesByType.airTransport,\n getTopDeliveryName: (delivery) => delivery.name,\n });\n }\n\n return possibleDeliveryGroups;\n};\n","import { IDeliveryGroup } from './groupPossibleDeliveries';\n\nexport const hasOneDeliveryTypeWithTwoOptions = (\n groupedDeliveries: IDeliveryGroup[]\n): boolean =>\n groupedDeliveries.length === 1 &&\n groupedDeliveries[0] &&\n groupedDeliveries[0].deliveries.length === 2;\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n engravingYourText: {\n id: 'engraving.enter.your.text',\n defaultMessage: 'Zadejte Váš text',\n },\n engravingMaxCharactersv2: {\n id: 'engraving.enter.max.characters.v2',\n defaultMessage: 'max. znaků: {maxChars}',\n },\n engravingInvalidCharacters: {\n id: 'engraving.invalid.characters',\n defaultMessage: 'Je možné použít pouze znaky [a-ž, A-Ž, 0-9]',\n },\n engravingSave: {\n id: 'engraving.save',\n defaultMessage: 'OK',\n },\n engravingPreview: {\n id: 'engraving.preview',\n defaultMessage: 'Foto produktu s gravírovaným textem je pouze ilustrační.',\n },\n engravingCheckboxLabel: {\n id: 'engraving.checkbox.label',\n defaultMessage: 'Vygravírovat vlastní text za {price}',\n },\n engravingCheckboxLabelDesc: {\n id: 'engraving.checkbox.label.description.with.link',\n defaultMessage:\n 'Nechte si na produkt laserem vyrýt vlastní text a vytvořte tak dárek od srdce. Dali jsme pro vás dohromady tipy na ta nejhezčí věnování.',\n },\n engravingSpecialPageHref: {\n id: 'engraving.special.page.href',\n defaultMessage: 'https://www.notino.cz/gravirovani/',\n },\n engravingEdit: {\n id: 'engraving.edit',\n defaultMessage: 'upravit',\n },\n});\n","import styled, { css } from 'styled-components';\n\nimport {\n Input,\n Button,\n breakpoints,\n Heading,\n IBasicStyledProps,\n theme,\n} from '@notino/react-styleguide';\n\ninterface IDisabledText extends IBasicStyledProps {\n disabled: boolean;\n}\n\nexport const Container = styled.div<{ newPdDesignEnabled: boolean }>`\n padding: 1rem 0;\n\n label {\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? theme.typography.labelRegular\n : css`\n font-weight: 700;\n `}\n }\n`;\n\nexport const Description = styled.div<{ newDesign: boolean }>`\n padding-left: 2.25rem;\n font-size: 0.875rem;\n a {\n text-decoration: underline;\n }\n a:hover {\n text-decoration: none;\n }\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n margin-top: 0.25rem;\n color: ${theme.palette.neutralDarker};\n line-height: 1.5rem;\n a {\n color: ${(props) => props.theme.palette.basic};\n }\n `\n : css`\n line-height: 1.313rem;\n a {\n color: ${(props) => props.theme.palette.basic};\n }\n `}\n`;\n\nexport const Edit = styled.button`\n cursor: pointer;\n text-decoration: underline;\n background: transparent;\n border: 0;\n display: block;\n`;\n\nexport const ModalBody = styled.div`\n text-align: center;\n`;\n\nexport const ImageText = styled.div`\n color: ${(props) => props.theme.palette.neutralDark};\n font-weight: 300;\n margin-top: 0.5625rem;\n text-align: left;\n`;\nexport const ImageMaxText = styled.div`\n color: ${(props) => props.theme.palette.neutralDark};\n font-weight: 300;\n text-align: center;\n margin-bottom: 1.125rem;\n width: 100%;\n`;\n\nexport const ImageWrapper = styled.div`\n position: relative;\n margin-top: 2rem;\n img {\n max-width: 100%;\n }\n`;\n\nexport const StyledButton = styled(Button)`\n margin-left: 0.9375rem;\n padding: 0 1.875rem;\n`;\n\nexport const StyledInput = styled(Input)`\n width: 6.75rem;\n text-align: center;\n text-transform: uppercase;\n`;\n\nexport const H3 = styled(Heading.H3)`\n margin-top: 1.875rem;\n text-align: center !important;\n margin-bottom: 0;\n`;\n\nexport const EngravingImage = styled.div`\n display: flex;\n flex: 1;\n flex-basis: 100%;\n align-items: center;\n justify-content: center;\n margin-top: 1.5625rem;\n max-height: 25rem;\n\n @media (min-width: ${breakpoints.sm}) {\n min-height: 15.625rem;\n flex-basis: 50%;\n order: 1;\n margin-top: 0;\n justify-content: flex-start;\n }\n\n img {\n max-width: 100%;\n max-height: 100%;\n flex-shrink: 0;\n object-fit: scale-down;\n }\n`;\n\nexport const EngravingFlex = styled.div`\n display: flex;\n flex-wrap: wrap;\n`;\n\nexport const EngravingBody = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-basis: 100%;\n padding: 0 0.9375rem;\n\n @media (min-width: ${breakpoints.sm}) {\n flex-basis: 50%;\n order: 2;\n margin-top: 0;\n padding: 0;\n }\n`;\n\nexport const BodyWrapper = styled.div`\n padding: 0 0.9375rem;\n`;\n\nexport const DisabledTextWrapper = styled.div`\n color: ${(props: IDisabledText) =>\n props.disabled ? props.theme.palette.neutral : props.theme.palette.basic};\n`;\n\nexport const InputErrorWrapper = styled.div`\n display: flex;\n justify-content: center;\n min-height: 1.6rem;\n`;\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport {\n ButtonModel,\n ModalContext,\n InputError,\n} from '@notino/react-styleguide';\n\nimport { CdnImage } from '@components/CdnImage';\n\nimport { IActions } from '../context/EngravingTryItFirst/model';\n\nimport { messages } from './engravingMessages';\nimport {\n StyledInput,\n StyledButton,\n ModalBody,\n ImageText,\n EngravingFlex,\n EngravingImage,\n EngravingBody,\n H3,\n BodyWrapper,\n ImageMaxText,\n InputErrorWrapper,\n} from './styled';\nimport { resolveEngravingImageAttribute } from './utils';\n\ninterface IEngravingModalProps {\n imageAlt: string;\n code: string;\n maxChars: number;\n image?: string;\n engravingInitials: string;\n changeEngravingInitials: IActions['changeEngravingInitials'];\n}\n\nconst engravingAllowedCharacters =\n /^[\\w\\sА-ЯҐЄІЇа-яґєіїΑ-Ωα-ωίϊΐόάέύϋΰήώa-zA-Zá-žÁ-Ž?.,!'+|%’–´&#@\\-țșȚȘ]+$/i;\n\nexport const EngravingModal: React.FC = ({\n imageAlt,\n image,\n maxChars,\n code,\n engravingInitials,\n changeEngravingInitials,\n}) => {\n const { hideModal } = ModalContext.useModalContext();\n\n const [initials, setInitials] = React.useState(engravingInitials);\n const [invalid, setInvalid] = React.useState(false);\n\n const handleInitialsChange = React.useCallback(\n ({ target }: React.ChangeEvent) => {\n const value = target.value.trimStart();\n setInitials(value);\n\n if (value && !engravingAllowedCharacters.test(value)) {\n setInvalid(true);\n } else {\n setInvalid((old) => old && !value);\n }\n },\n [setInitials, setInvalid]\n );\n\n const handleSave: React.FormEventHandler = React.useCallback(\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n const trimmedInitials = initials.toUpperCase().trim();\n const newIsValid = trimmedInitials.length > 0;\n\n if (newIsValid && !invalid) {\n changeEngravingInitials(trimmedInitials);\n hideModal();\n } else {\n changeEngravingInitials('');\n setInvalid(true);\n }\n },\n [initials, invalid, changeEngravingInitials, hideModal]\n );\n\n return (\n \n \n \n \n

\n \n

\n \n \n \n
\n \n \n \n \n \n {invalid && (\n \n \n \n )}\n \n \n \n \n \n
\n
\n \n {image ? (\n \n ) : (\n {imageAlt}\n )}\n \n
\n
\n );\n};\n","import { CDN_DOMAIN } from '@utils/constants';\n\nimport { imageErrorHandler } from './imageHandlers';\n\nexport const resolveEngravingImageAttribute = (code: string) => {\n const imagePath = `${CDN_DOMAIN}/images/gallery/engraving/`;\n const imageSrc = `${imagePath}${code}.jpg`;\n const imageRetinaSrc = `${imagePath}${code}@2k.jpg`;\n\n return {\n src: imageRetinaSrc,\n srcSet: `${imageSrc} 1x, ${imageRetinaSrc} 2x`,\n onError: imageErrorHandler(require('../img/engraving.jpg')),\n } as const;\n};\n","export const imageErrorHandler =\n (fallbackSrc) =>\n ({ currentTarget: img }) => {\n /**\n * Iterates over sources from srcset and tries to find a source that is not failing.\n * If all fail, sets fallback image.\n */\n\n const otherSrcs = img.srcset\n .split(', ')\n .filter((src) => !src.match(img.currentSrc));\n\n if (otherSrcs.length) {\n img.srcset = otherSrcs.join(', ');\n } else {\n img.src = fallbackSrc;\n img.srcset = '';\n }\n };\n","import * as React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport { Checkbox, ModalModel, ModalContext } from '@notino/react-styleguide';\nimport { AdditionalServicesAvailability } from '@notino/web-tracking';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport PriceLabel from '@components/PriceLabel';\n\nimport { ICurrency } from '../../../../App/model';\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\nimport { CurrencyWrapper, PriceWrapper } from '../../styled';\nimport { useEngravingTryItFirstContext } from '../context/EngravingTryItFirst';\n\nimport { messages } from './engravingMessages';\nimport { EngravingModal } from './EngravingModal';\nimport { Container, Description, Edit, DisabledTextWrapper } from './styled';\n\ninterface IEngravingProps {\n imageAlt: string;\n code: string;\n currency: ICurrency;\n maxChars: number;\n price: number;\n image?: string;\n engravingAvailable?: AdditionalServicesAvailability;\n}\n\nexport const Engraving: React.FC = React.memo(\n ({\n price,\n currency,\n maxChars,\n image,\n imageAlt,\n code,\n engravingAvailable,\n }) => {\n const { formatMessage } = useIntl();\n const {\n state: { withTryItFirst, withEngraving, engravingInitials },\n actions: { changeEngravingInitials },\n } = useEngravingTryItFirstContext();\n const newDesign = useNewPdDesignEnabled();\n\n const { toggleModal } = ModalContext.useModalContext();\n\n const showModal = () => {\n toggleModal(\n ,\n {\n withFocusTrap: true,\n size: ModalModel.Sizes.large,\n type: ModalModel.Types.default,\n center: true,\n noBorders: true,\n }\n );\n };\n\n const handleUnCheck = () => {\n changeEngravingInitials('');\n };\n\n const handleCheckbox = ({\n target,\n }: React.ChangeEvent) => {\n const checked = target.checked;\n if (!checked) {\n handleUnCheck();\n } else {\n showModal();\n }\n };\n\n const isEngravingDisabled =\n engravingAvailable !== AdditionalServicesAvailability.available ||\n withTryItFirst;\n\n return (\n \n \n \n \n \n ),\n }}\n />\n \n \n (\n \n {chunks}\n \n ),\n }}\n />\n {withEngraving && (\n \n \n \n )}\n \n \n \n \n );\n }\n);\n\nEngraving.displayName = 'Engraving';\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as r from\"react\";import{Icon as t}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var a=function(a){return r.createElement(t,e({},a,{viewBox:\"0 0 56 64\"}),r.createElement(\"path\",{fill:\"currentColor\",d:\"M26,64H6a2.22,2.22,0,0,1-2-2.37V40H26Zm0-44H2a2.22,2.22,0,0,0-2,2.37V33.63A2.22,2.22,0,0,0,2,36H26Zm4,44H49.92a2.22,2.22,0,0,0,2-2.37V40H30ZM54,20H30V36H54a2.22,2.22,0,0,0,2-2.37V22.37A2.22,2.22,0,0,0,54,20Z\"}),r.createElement(\"path\",{fill:\"currentColor\",d:\"M29.1,16.42a24,24,0,0,0,6.14-8.48C41.17-5.27,31.43,2,28,2s-12.94-7.26-7,6a24,24,0,0,0,6.14,8.48s.58.53.88.53C28.55,16.94,28.57,16.88,29.1,16.42Z\"}),r.createElement(\"path\",{fill:\"currentColor\",d:\"M29.39,17.31a47,47,0,0,0,7.34-5.17c4.17-3.55,10-9.92,8.87-2.14C45,13.86,49.77,16.86,41,17.47a72,72,0,0,1-11.62-.16\"}),r.createElement(\"path\",{fill:\"currentColor\",d:\"M26.82,17.31a47,47,0,0,1-7.34-5.17c-4.17-3.55-10-9.92-8.87-2.14.55,3.86-4.18,6.86,4.59,7.47a72,72,0,0,0,11.62-.16\"}))};export{a as GiftIcon};\n//# sourceMappingURL=GiftIcon.js.map\n","export const AB_TEST: Record = {\n HIDE_REVIEWS_AB_TEST_NUMBER: '79',\n FEATURE_ENABLED_VALUE: '1',\n};\n","import { useQuery } from '@apollo/client';\n\nimport { GetAbTestQuery } from '@notino/shared/definitions/types';\n\nimport getAbTestQuery from './queries/getAbTest.graphql';\n\nexport const useAbTest = (): string | null => {\n const { data } = useQuery(getAbTestQuery, {\n fetchPolicy: 'cache-only',\n });\n return data?.RequestHeaders?.abTest || null;\n};\n","import styled, { css } from 'styled-components';\n\nimport { theme, breakpoints } from '@notino/react-styleguide';\n\nimport { CdnImage } from '@components/CdnImage';\n\nexport const Container = styled.div``;\n\nexport const FlexWrapper = styled.div<{\n hideGiftIcon: boolean;\n newDesign: boolean;\n}>`\n @media screen and (min-width: ${breakpoints.sm}) {\n display: flex;\n }\n\n @media screen and (max-width: ${breakpoints.sm}) {\n display: ${({ hideGiftIcon }) => (hideGiftIcon ? 'flex' : 'inline-block')};\n }\n\n align-items: center;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n padding: 1rem 0;\n `\n : css`\n padding: 1rem 1.25rem 1rem 0;\n `}\n`;\n\nexport const IconTextWrapper = styled.div<{ newDesign: boolean }>`\n display: flex;\n\n @media screen and (min-width: ${breakpoints.sm}) {\n padding-right: 0.5rem;\n }\n\n @media screen and (max-width: ${breakpoints.sm}) {\n padding-bottom: 1rem;\n }\n\n ${({ newDesign }) =>\n !newDesign &&\n css`\n flex-basis: 90%;\n `}\n`;\n\nexport const IconWrapper = styled.div`\n padding-left: 0.9375rem;\n padding-right: 0.9375rem;\n text-align: center;\n`;\n\ninterface IImageWrapperProps {\n touch: boolean;\n showImageInRowOnMobile: boolean;\n}\n\nexport const ImageWrapper = styled.div`\n width: 4.375rem;\n height: 4.375rem;\n align-items: center;\n justify-content: center;\n\n display: ${(props: IImageWrapperProps) => (props.touch ? 'flex' : 'none')};\n @media (hover: hover) {\n display: ${(props: IImageWrapperProps) => (props.touch ? 'none' : 'flex')};\n }\n\n @media screen and (max-width: ${breakpoints.sm}) {\n justify-content: flex-start;\n margin-top: 0.3125rem;\n margin-left: 2.25rem;\n ${({ showImageInRowOnMobile }) =>\n !showImageInRowOnMobile && 'width: calc(100% - 2.25rem)'};\n }\n`;\n\nexport const GiftImg = styled(CdnImage)`\n max-width: 4.375rem !important;\n max-height: 4.375rem !important;\n overflow: hidden;\n`;\n\nexport const GiftImgWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 0.75rem;\n\n img {\n overflow: hidden;\n }\n\n @media (hover: hover) {\n width: 18.75rem;\n height: 18.75rem;\n max-width: 100%;\n\n img {\n max-width: 18.75rem;\n max-height: 18.75rem;\n }\n }\n`;\n\nexport const Content = styled.div`\n flex: 10;\n color: ${(props) => props.theme.palette.neutralDarker};\n font-size: 0.875rem;\n line-height: 1.313rem;\n`;\n\nexport interface ITitleProps {\n giftImage: boolean;\n newPdDesignEnabled: boolean;\n}\n\nexport const Title = styled.div`\n text-transform: uppercase;\n color: ${(props: ITitleProps) =>\n props.giftImage ? theme.palette.primary : theme.palette.basic};\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? theme.typography.labelRegular\n : css`\n font-weight: bold;\n `}\n`;\n\nexport const Description = styled.div<{ newDesign: boolean }>`\n a {\n color: ${(props) => props.theme.palette.basic};\n text-decoration: underline;\n }\n a:hover {\n text-decoration: none;\n }\n ${({ newDesign }) =>\n newDesign &&\n css`\n margin-top: 0.25rem;\n ${theme.typography.bodyRegular}\n `}\n`;\n","import * as React from 'react';\n\nimport { CdnImage } from '@components/CdnImage';\n\nimport { GiftImgWrapper } from './styled';\n\ninterface IGiftImageProps {\n imageUrl: string;\n formattedImageMessage: string;\n}\n\nexport const GiftImage: React.FC = ({\n imageUrl,\n formattedImageMessage,\n}) => (\n \n \n \n);\n","import * as React from 'react';\n\nimport { AB_TEST } from '@abTests';\nimport { isAbTestEnabled } from '@helpers/utils';\nimport { noop } from '@utils/noop';\n\nimport { useAbTest } from '../../hooks/useAbTest/useAbTest';\n\nimport { ImageWrapper, GiftImg } from './styled';\n\ninterface IGiftImageThumbProps {\n imageUrl: string;\n formattedImageMessage: string;\n touch: boolean;\n onClick?: () => void;\n}\n\nexport const GiftImageThumb: React.FC = ({\n touch,\n imageUrl,\n formattedImageMessage,\n onClick = noop,\n}) => {\n const abTestValue = useAbTest();\n const showImageInRowOnMobile = isAbTestEnabled(\n abTestValue,\n AB_TEST.FREE_GIFT_POSITION,\n '1'\n );\n\n return (\n \n \n \n );\n};\n","import * as React from 'react';\nimport { FormattedMessage, useIntl, MessageDescriptor } from 'react-intl';\n\nimport {\n GiftIcon,\n Tooltip,\n ModalContext,\n TooltipModel,\n ReactFCC,\n} from '@notino/react-styleguide';\n\nimport { AB_TEST } from '@abTests';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport { isAbTestEnabled } from '@helpers/utils';\n\nimport { useAbTest } from '../../hooks/useAbTest/useAbTest';\nimport { LeftIconWrapper } from '../styled';\n\nimport { GiftImage } from './GiftImage';\nimport { GiftImageThumb } from './GiftImageThumb';\nimport {\n Container,\n FlexWrapper,\n Content,\n Title,\n IconTextWrapper,\n} from './styled';\n\ninterface IGiftBaseProps {\n containerId: string;\n isGiftImage: boolean;\n titleMessage: MessageDescriptor;\n imageUrl: string;\n imageMessage: MessageDescriptor;\n}\n\nexport const GiftBase: ReactFCC = React.memo(\n ({\n imageUrl,\n imageMessage,\n containerId,\n isGiftImage,\n titleMessage,\n children,\n }) => {\n const abTestValue = useAbTest();\n const hideGiftIcon = isAbTestEnabled(\n abTestValue,\n AB_TEST.FREE_GIFT_POSITION,\n '1'\n );\n const { formatMessage } = useIntl();\n const { toggleModal } = ModalContext.useModalContext();\n const newPdDesignEnabled = useNewPdDesignEnabled();\n\n const giftImage = React.useMemo(\n () => (\n \n ),\n [imageUrl, imageMessage, formatMessage]\n );\n\n const openModal = React.useCallback(() => {\n toggleModal(giftImage);\n }, [giftImage, toggleModal]);\n\n return (\n \n \n \n {!hideGiftIcon && (\n \n \n \n )}\n \n \n \n \n {children}\n \n \n {isGiftImage && (\n <>\n \n \n \n \n \n )}\n \n \n );\n }\n);\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport {\n VariantFragmentFragment,\n EGiftPackagingAllowedType,\n} from '@notino/shared/definitions/types';\n\nimport { ICurrency } from '../../../../App/model';\nimport messages from '../../../messages';\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\nimport { GiftBase } from '../ProductGifts/GiftBase';\nimport { Description } from '../ProductGifts/styled';\n\ninterface IFreeGiftPackagingProps {\n campaign: VariantFragmentFragment['campaignConfig'];\n currency: ICurrency;\n brand: string;\n}\n\nexport const FreeGiftPackaging: React.FC = React.memo(\n ({ campaign: { allowed, price, groupName }, currency, brand }) => {\n const newDesign = useNewPdDesignEnabled();\n\n if (\n allowed === EGiftPackagingAllowedType.None ||\n groupName !== 'GiftPackaging'\n ) {\n return null;\n }\n\n return (\n \n \n {allowed === EGiftPackagingAllowedType.Product ? (\n \n ) : (\n \n )}\n \n \n );\n }\n);\n","import * as React from 'react';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { ICampaign } from '@containers/ProductListing/model';\n\nimport messages from '../../../messages';\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\nimport { useProductDetailContext } from '../../ProductDetailContext';\nimport { GiftBase } from '../ProductGifts/GiftBase';\nimport { Description } from '../ProductGifts/styled';\n\ninterface IGiftProps {\n campaigns?: ICampaign[];\n shouldRender: boolean;\n}\n\nexport const Gift: React.FC = React.memo(\n ({ campaigns, shouldRender }) => {\n const newDesign = useNewPdDesignEnabled();\n const { currentVariant } = useProductDetailContext();\n\n if (!shouldRender) {\n return null;\n }\n if (!Array.isArray(campaigns) || campaigns.length === 0) {\n return null;\n }\n\n const renderableCampaign = campaigns.find(\n (campaign) =>\n campaign.displayOnDetailPage &&\n currentVariant.id === campaign.productId &&\n (campaign.detailPageText || campaign.text)\n );\n\n if (!renderableCampaign) {\n return null;\n }\n\n const text = renderableCampaign.detailPageText || renderableCampaign.text;\n\n return (\n \n \n \n \n \n );\n }\n);\n","import * as React from 'react';\nimport {\n MessageDescriptor,\n WrappedComponentProps,\n FormattedMessage,\n} from 'react-intl';\n\nimport { Tooltip, TooltipModel, ReactFCC } from '@notino/react-styleguide';\n\nimport { TooltipContent } from '@components/Tooltip/Content';\nimport { withConditionalWrapper } from '@helpers/withConditionalWrapper';\n\ninterface IFormattedTooltipProps {\n tooltipMessage: MessageDescriptor;\n}\n\nconst FormattedTooltipComponent: ReactFCC<\n IFormattedTooltipProps & WrappedComponentProps\n> = ({ tooltipMessage, children }) => (\n \n \n \n }\n >\n {children}\n \n);\n\nexport const FormattedTooltip = withConditionalWrapper(\n FormattedTooltipComponent\n);\n","import * as React from 'react';\n\ninterface TWrapperEnabled {\n wrapperEnabled?: boolean;\n children?: React.ReactNode;\n}\n\ntype ConditionalWrapper

= React.FC;\n\nexport function withConditionalWrapper>(\n Wrapper: React.FC\n): ConditionalWrapper {\n return ({ wrapperEnabled, children, ...wrapperProps }: TWrapperEnabled) =>\n wrapperEnabled ? (\n {children}\n ) : (\n // eslint-disable-next-line react/jsx-no-useless-fragment\n <>{children}\n );\n}\n","import styled, { css } from 'styled-components';\n\nimport { Tag, breakpoints, theme } from '@notino/react-styleguide';\n\nexport const StyledTag = styled(Tag)<{ newDesign: boolean }>`\n @media (max-width: ${breakpoints.sm}) {\n font-size: 0.75rem !important;\n }\n ${({ newDesign, tagType }) =>\n newDesign &&\n css`\n ${tagType === 'corner'\n ? css`\n top: -2px;\n right: -2px;\n `\n : ''}\n text-transform: none;\n ${theme.typography.labelSmall}\n `}\n`;\n\n// This wraps around all visualized tags so they stay together\nexport const StyledTagWrapper = styled.div<{ nowrapLg: boolean }>`\n @media (min-width: ${breakpoints.lg}) {\n ${(props) => (props.nowrapLg ? 'white-space: nowrap;' : '')}\n }\n`;\n","import * as React from 'react';\n\nimport { TagModel } from '@notino/react-styleguide';\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\n\nimport { useTagAttributes } from '@components/Universals/ProductItem/useTagAttributes';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport { FormattedTooltip } from './FormattedTooltip';\nimport { ITagsProps } from './model';\nimport { StyledTag, StyledTagWrapper } from './styled';\n\nexport const Tags: React.FC = ({\n type = TagModel.Types.default,\n onClick,\n nowrapLg = false,\n ...props\n}) => {\n const newDesign = useNewPdDesignEnabled();\n const tagAttributes = useTagAttributes(props.attributes, {\n multiple: props?.multiple,\n });\n if (props.stockAvailability === IStock.outOfStock || !tagAttributes) {\n return null;\n }\n\n const size = props.small ? TagModel.Sizes.small : TagModel.Sizes.default;\n\n return (\n \n {tagAttributes.map(\n ({ style, icon, tooltipMessage, label, attribute }) => (\n \n onClick?.(attribute)}\n key={label}\n tagStyle={style}\n icon={icon}\n tagType={type}\n tagSize={size}\n className={`pd-variant-tag-${label}`}\n >\n {label}\n \n \n )\n )}\n \n );\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, InfoCircleIcon, theme } from '@notino/react-styleguide';\nexport const TagDiscountFlexRow = styled.div<{ newDesign: boolean }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n gap: 0.4rem;\n\n @media (min-width: ${breakpoints.md}) {\n margin-top: auto;\n }\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n min-height: 2.5rem;\n `\n : css`\n height: 2.5rem;\n margin-bottom: 1rem;\n `}\n`;\n\nexport const DiscountWrapper = styled.div`\n text-align: right;\n line-height: 1.25rem;\n`;\n\nexport const OriginalPriceWrapper = styled.span<{ newDesign: boolean }>`\n display: flex;\n justify-content: flex-end;\n flex-wrap: wrap;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n color: ${theme.palette.neutralDark};\n ${theme.typography.labelRegular400}\n `\n : css`\n color: ${theme.palette.neutralDarker};\n padding-left: 0.625rem;\n font-weight: 300;\n font-size: 0.875rem;\n\n @media (min-width: ${breakpoints.sm}) {\n font-size: 0.8rem;\n }\n `}\n`;\n\nexport const FlexEnd = styled.div`\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n`;\n\nexport const LineThrough = styled.span<{ active: boolean }>`\n ${({ active }) => active && 'text-decoration: line-through'};\n white-space: nowrap;\n`;\n\nexport const Discount = styled.span<{ newDesign: boolean }>`\n color: ${theme.palette.primary};\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n ${theme.typography.labelLarge}\n `\n : css`\n font-size: 0.875rem;\n font-weight: bold;\n text-transform: uppercase;\n\n @media (min-width: ${breakpoints.sm}) {\n font-size: 1.2rem;\n }\n `}\n`;\n\nexport const PriceWrapper = styled.span`\n font-size: 0.8rem;\n`;\n\nexport const CurrencyWrapper = styled(PriceWrapper)`\n ::before {\n content: ' ';\n }\n`;\n\nexport const StyledInfoIcon = styled(InfoCircleIcon)`\n margin-bottom: 4px;\n`;\n\nexport const Slash = styled.span`\n padding: 0 0.25rem;\n`;\n","import * as React from 'react';\n\nimport * as Cookie from 'js-cookie';\n\nimport {\n breakpoints,\n Tooltip,\n TooltipModel,\n Colors,\n} from '@notino/react-styleguide';\nimport { VariantFragmentFragment } from '@notino/shared/definitions/types';\n\nimport PriceLabel from '@components/PriceLabel';\nimport { useIsDualPriceForCroatia } from '@containers/ProductDetailContainer/ProductDetail/hooks/useIsDualPriceForCroatia';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport { usePriceLogic } from '@containers/ProductDetailContainer/ProductDetail/hooks/usePriceLogic';\n\nimport {\n DiscountWrapper,\n OriginalPriceWrapper,\n StyledInfoIcon,\n LineThrough,\n Discount,\n PriceWrapper,\n CurrencyWrapper,\n Slash,\n FlexEnd,\n} from './styled';\n\nconst NO_RESP = 'noresp';\n\ninterface IProps {\n variant: VariantFragmentFragment;\n}\n\nexport const OriginalPrice = ({ variant }: IProps) => {\n // need topLeft position for desktop version on mobile\n const [tooltipProps, setTooltipProps] = React.useState({});\n const {\n isDualPriceForCroatia,\n leftSideCurrency,\n rightSideCurrency,\n getLeftSideFormattedPrice,\n getRightSidePrice,\n } = useIsDualPriceForCroatia();\n const { discountText, topPrice } = usePriceLogic(variant);\n const newDesign = useNewPdDesignEnabled();\n\n React.useEffect(() => {\n if (Number(Cookie.get(NO_RESP))) {\n setTooltipProps({\n position: TooltipModel.Position.topLeft,\n alignDesktop: true,\n });\n }\n }, []);\n\n if (!topPrice && !discountText) {\n return null;\n }\n\n return (\n \n {topPrice && (\n \n {isDualPriceForCroatia && (\n <>\n \n \n {getLeftSideFormattedPrice(topPrice.value.value)}{' '}\n {leftSideCurrency}\n \n \n /\n \n )}\n\n \n \n \n \n\n \n \n \n \n \n )}\n\n {discountText}\n \n );\n};\n","import { snakeCase } from 'lodash';\n\nimport { ProductTileModel } from '@notino/react-styleguide';\n\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nconst NON_TRACKABLE_TAGS = [\n ProductTileModel.TagAttributes.Damaged,\n ProductTileModel.TagAttributes.Returned,\n];\n\nexport const trackTagClick = (\n attr: ProductTileModel.TagAttributes,\n timing: number\n) => {\n if (NON_TRACKABLE_TAGS.includes(attr)) {\n return;\n }\n\n dispatchTrackingEvent({\n event: 'element_click',\n _clear: true,\n element: {\n action: 'click_on_element',\n name: attr,\n type: 'tag_discount_label',\n promo_labels: snakeCase(attr),\n interaction: 'click',\n timing,\n },\n });\n};\n","import * as React from 'react';\n\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\nimport { VariantFragmentFragment } from '@notino/shared/definitions/types';\n\nimport { Tags } from '@components/Tags';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\n\nimport { OriginalPrice } from './OriginalPrice';\nimport { TagDiscountFlexRow } from './styled';\nimport { trackTagClick } from './tracking';\n\ninterface ITagDiscountProps {\n variant: VariantFragmentFragment;\n}\n\nexport const TagDiscount = ({ variant }: ITagDiscountProps) => {\n const { getTimeFromInit } = useTrackingContext();\n const newDesign = useNewPdDesignEnabled();\n\n return (\n \n trackTagClick(attr, getTimeFromInit())}\n multiple={true}\n attributes={variant.attributes}\n stockAvailability={variant.stockAvailability.code}\n nowrapLg={true}\n />\n\n {variant.stockAvailability.code !== IStock.outOfStock && (\n \n )}\n \n );\n};\n","import * as React from 'react';\n\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\nimport {\n VariantDisplayType,\n VariantFragmentFragment,\n} from '@notino/shared/definitions/types';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport PriceLabel from '@components/PriceLabel';\n\nimport { useIsDualPriceForCroatia } from '../../hooks/useIsDualPriceForCroatia';\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\nimport { TagDiscount } from '../VariantsInSelectBox/TagDiscount';\n\nimport {\n Container,\n FlexWrapper,\n Name,\n Line,\n LineWrapper,\n PriceWrapper,\n CurrencyWrapper,\n DualPriceSplitter,\n DualPrice,\n DualPriceWrapper,\n} from './styled';\n\nexport interface ISelectedVariantProps {\n variant: VariantFragmentFragment;\n displayType: VariantDisplayType;\n singleVariant?: boolean;\n renderTagDiscount: boolean;\n variantName: React.ReactNode;\n\n hideLine?: boolean;\n hideVariantName?: boolean;\n}\n\nexport const SelectedVariant: React.FC = React.memo(\n ({\n variant,\n renderTagDiscount,\n variantName,\n hideLine = false,\n hideVariantName = false,\n }) => {\n const newDesign = useNewPdDesignEnabled();\n const {\n isDualPriceForCroatia,\n getLeftSideFormattedPrice,\n getRightSideFormattedPrice,\n leftSideCurrency,\n rightSideCurrency,\n } = useIsDualPriceForCroatia();\n const inStock = variant.stockAvailability.code !== IStock.outOfStock;\n\n return (\n \n \n {renderTagDiscount && }\n \n \n {hideVariantName ? null : variantName}\n \n\n {inStock && !isDualPriceForCroatia && (\n \n )}\n\n {inStock && isDualPriceForCroatia && (\n \n \n {getLeftSideFormattedPrice(variant.price.value)}{' '}\n {leftSideCurrency}\n \n\n /\n\n \n {getRightSideFormattedPrice(variant.price.value)}{' '}\n {rightSideCurrency}\n \n \n )}\n \n \n {hideLine ? null : (\n \n )}\n \n \n \n );\n }\n);\n\nSelectedVariant.displayName = 'SelectedVariant';\n","import { snakeCase } from 'lodash';\n\nimport { VariantDisplayTypes } from '@containers/ProductListing/model';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nexport const trackTryItFirstAddToCart = (productCode: string) => {\n dispatchTrackingEvent({\n event: 'general_event',\n general_parameters: {\n id: undefined,\n type: 'try_it_first',\n action: 'try_it_first_product_added',\n description_data: productCode,\n value_units: 'product_code',\n interaction: 'add',\n },\n _clear: true,\n });\n};\n\nexport const trackVariantClick = (\n timing: number,\n type: VariantDisplayTypes,\n promoLabel?: string\n) => {\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n timing,\n action: 'click_on_variant_tile',\n type,\n name: '',\n interaction: 'click',\n promo_labels: snakeCase(promoLabel),\n },\n _clear: true,\n });\n};\n","import styled, { css } from 'styled-components';\n\nimport { IBasicStyledProps, theme } from '@notino/react-styleguide';\ninterface IDisabledText extends IBasicStyledProps {\n disabled: boolean;\n}\n\nexport const Container = styled.div<{ newPdDesignEnabled: boolean }>`\n padding: 1rem 0;\n display: block;\n\n label {\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? theme.typography.labelRegular\n : css`\n font-weight: 700;\n `}\n }\n\n svg {\n vertical-align: middle;\n padding-left: 0.4rem;\n }\n`;\n\nexport const TooltipWrapper = styled.div`\n text-align: left !important;\n font-size: 0.9rem;\n padding: 0.2rem;\n`;\n\nexport const Description = styled.div<{ newDesign: boolean }>`\n padding-left: 2.25rem;\n a {\n text-decoration: underline;\n }\n a:hover {\n cursor: pointer;\n }\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n margin-top: 0.25rem;\n color: ${theme.palette.neutralDarker};\n ${theme.typography.bodyRegular}\n `\n : css`\n line-height: 1.313rem;\n font-size: 0.875rem;\n\n a {\n color: ${(props) => props.theme.palette.basic};\n }\n `}\n`;\n\nexport const DisabledTextWrapper = styled.div`\n color: ${(props: IDisabledText) =>\n props.disabled ? props.theme.palette.neutral : props.theme.palette.basic};\n`;\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { Checkbox } from '@notino/react-styleguide';\nimport { AdditionalServicesAvailability } from '@notino/web-tracking';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\nimport { useEngravingTryItFirstContext } from '../context/EngravingTryItFirst';\n\nimport { Container, Description, DisabledTextWrapper } from './styled';\nimport { messages } from './tryItFirstMessages';\n\ninterface ITryItFirstProps {\n availability?: AdditionalServicesAvailability;\n}\n\nexport const TryItFirst = ({ availability }: ITryItFirstProps) => {\n const {\n state: { withTryItFirst, withEngraving },\n actions: { toggleTryItFirst },\n } = useEngravingTryItFirstContext();\n const newDesign = useNewPdDesignEnabled();\n\n const isTryItFirstDisabled =\n availability !== AdditionalServicesAvailability.available || withEngraving;\n\n const toggle = () => {\n toggleTryItFirst(!withTryItFirst);\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nTryItFirst.displayName = 'TryItFirst';\n","import { IStock } from '@notino/shared/definitions/custom-definitions';\nimport { VariantFragmentFragment } from '@notino/shared/definitions/types';\n\nimport { getRenderableAttributes } from '@components/Tags/utils';\n\nconst hasTagOrDiscount = (variant: VariantFragmentFragment): boolean => {\n const attributes = getRenderableAttributes(variant.attributes);\n const hasAttributes = Object.keys(attributes).length > 0;\n const hasDiscount =\n variant.stockAvailability.code !== IStock.outOfStock &&\n Boolean(variant.originalPrice) &&\n variant.originalPrice.value > 0;\n return hasAttributes || hasDiscount;\n};\n\nexport const shouldRenderTagDiscount = (\n variants: VariantFragmentFragment[]\n): boolean => variants.some(hasTagOrDiscount);\n","import { Link } from 'react-router-dom';\n\nimport styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nimport { ICurrencyProps } from '@components/PriceLabel/components/Currency';\n\nimport { IVariantNameProps } from '../../model';\n\nexport const VariantListItem = styled.li<{ minWidth?: string }>`\n list-style-type: none;\n display: inline-block;\n flex-shrink: 0;\n padding: 0;\n margin: 0;\n min-width: ${(props) => props.minWidth || '28vw'};\n\n &:before {\n display: none;\n }\n\n @media (min-width: ${breakpoints.sm}) {\n min-width: auto;\n }\n`;\n\nexport const VariantLink = styled(Link)`\n text-decoration: none;\n`;\n\nexport const VariantCommon = styled.div`\n position: relative;\n margin: 0 0.25rem 0.25rem 0;\n font-weight: normal;\n line-height: 1.375rem;\n cursor: pointer;\n`;\n\nexport const Name = styled.div<{ newDesign: boolean } & IVariantNameProps>`\n ${({ newDesign, isOnStock }) =>\n newDesign\n ? css`\n ${theme.typography.labelRegular}\n color: ${isOnStock ? theme.palette.basic : theme.palette.neutralDark}\n `\n : css`\n color: ${isOnStock ? theme.palette.basic : theme.palette.neutral};\n font-size: 0.8rem;\n `}\n`;\n\nexport const PriceLabelCurrency = styled.span`\n padding-left: ${(props: ICurrencyProps) =>\n props.isSpaced && !props.isPrefix ? '0.3rem' : 0};\n padding-right: ${(props: ICurrencyProps) =>\n props.isSpaced && props.isPrefix ? '0.3rem' : 0};\n`;\n\nexport const Container = styled.div<{ newDesign: boolean }>`\n width: 100%;\n overflow-y: hidden;\n\n @media (min-width: ${breakpoints.md}) {\n height: initial;\n }\n\n ${({ newDesign }) =>\n !newDesign &&\n css`\n margin-bottom: 1.25rem;\n `}\n`;\n\nexport const VariantList = styled.ul<{\n newDesign: boolean;\n itemsCount: number;\n}>`\n overflow-x: scroll;\n -webkit-overflow-scrolling: touch;\n ::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 7px;\n }\n\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(0, 0, 0, 0.5);\n box-shadow: 0 0 1px rgba(255, 255, 255, 0.5);\n }\n\n ${({ newDesign, itemsCount }) =>\n newDesign\n ? css`\n display: flex;\n gap: 0.5rem;\n margin: 0rem;\n\n @media (min-width: ${breakpoints.lg}) {\n display: grid;\n grid-gap: 0.5rem;\n grid-template-columns: repeat(${itemsCount >= 3 ? 3 : 2}, 1fr);\n overflow-x: auto;\n margin: 0;\n }\n `\n : css`\n display: flex;\n flex-wrap: nowrap;\n margin: 0;\n\n @media (min-width: ${breakpoints.md}) {\n flex-wrap: wrap;\n height: auto;\n overflow-x: auto;\n padding: 0;\n }\n `}\n`;\n","var t;!function(t){t.TO_RIGHT=\"to right\",t.TO_BOTTOM_RIGHT=\"to bottom right\"}(t||(t={}));export{t as Directions};\n//# sourceMappingURL=ColorRectangleModel.js.map\n","import{b as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import{breakpoints as n}from\"./breakpoints.js\";import{styled as t}from\"./styled.js\";import{theme as r}from\"./theme.js\";import{Directions as i}from\"./ColorRectangleModel.js\";import\"styled-components\";var o,m=/^(#?ffffff.*|#?fff.*|transparent)$/i,a=\"1px solid \"+String(r.palette&&r.palette.neutral),l=function(e){return e.some((function(e){return m.test(e)}))?a:\"none\"},f=function(e){if(0===e.length)return r.palette.neutral;var n=100/e.length;return(50===n?i.TO_BOTTOM_RIGHT:i.TO_RIGHT)+\", \"+e.map((function(e,t){return e.toLowerCase()+\" \"+n*t+\"%, \"+e.toLowerCase()+\" \"+n*(t+1)+\"%\"})).join(\",\")},s=t.div.attrs((function(e){var n=e.colors;return{style:{backgroundColor:\"\"+(0===n.length?r.palette.neutral:n[0]),backgroundImage:\"linear-gradient(\"+f(n)+\")\",border:l(n)}}}))(o||(o=e([\"\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n margin: 0.125rem;\\n width: \",\"rem;\\n height: \",\"rem;\\n min-width: 2.5rem;\\n min-height: 2.5rem;\\n\\n @media (min-width: \",\") {\\n min-width: 2rem;\\n min-height: 2rem;\\n }\\n\"])),(function(e){return e.width}),(function(e){return e.height}),n.md);export{s as ColorRectangle};\n//# sourceMappingURL=ColorRectangle.js.map\n","import styled, { css } from 'styled-components';\n\nimport {\n breakpoints,\n ColorRectangle,\n IBasicStyledProps,\n theme,\n} from '@notino/react-styleguide';\n\nimport { TooltipContent } from '@components/Tooltip/Content';\n\nexport const Container = styled.div<{ newDesign: boolean }>`\n width: 100%;\n\n ${({ newDesign }) =>\n !newDesign &&\n css`\n margin-bottom: 0.625rem;\n `}\n`;\n\nexport const VariantsList = styled.ul`\n display: flex;\n flex-wrap: wrap;\n`;\n\ninterface IVariantProps extends IBasicStyledProps {\n isSelected: boolean;\n isOnStock: boolean;\n touch: boolean;\n newDesign: boolean;\n}\n\nexport const Variant = styled.div`\n position: relative;\n\n ${({ newDesign, isSelected }) => css`\n border: ${newDesign ? '2px' : '1px'} solid\n ${isSelected ? theme.palette.neutralDarker : theme.palette.basicInverse};\n `}\n\n cursor: pointer;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n margin: 0;\n `\n : css`\n margin: 0 0.3125rem 0.3125rem 0;\n `}\n\n display: ${(props: IVariantProps) => (props.touch ? 'flex' : 'none')};\n @media (hover: hover) {\n display: ${(props: IVariantProps) => (props.touch ? 'none' : 'flex')};\n }\n`;\n\nexport const StyledColorRectangle = styled(ColorRectangle)<{\n newDesign: boolean;\n bordered?: boolean;\n}>`\n ${({ bordered }) =>\n bordered &&\n css`\n border: 1px solid ${theme.palette.neutralDarker} !important;\n `}\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n width: 2.5rem;\n height: 2.5rem;\n margin: 0.25em;\n @media (min-width: ${breakpoints.lg}) {\n width: 2rem;\n height: 2rem;\n }\n `\n : css``}\n`;\n\nexport const ColorPickerContent = styled(TooltipContent)`\n width: max-content;\n min-width: 0;\n`;\n","import * as React from 'react';\n\nimport {\n CloseIcon,\n Colors,\n Tooltip,\n TooltipModel,\n} from '@notino/react-styleguide';\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\nimport { VariantFragmentFragment } from '@notino/shared/definitions/types';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport { VariantDisplayTypes } from '@containers/ProductListing/model';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { hexToDec, dataLabelsProp } from '@helpers/utils';\n\nimport { trackVariantClick } from '../../tracking';\nimport { VariantLink, VariantListItem } from '../../variantsStyled';\n\nimport { StyledColorRectangle, Variant, ColorPickerContent } from './styled';\n\nexport interface IVariantItemProps {\n item: VariantFragmentFragment;\n isSelected: boolean;\n}\n\nexport const getContrastingIconColor = (colors: string[]) => {\n if (colors.length === 0) {\n return Colors.basic;\n }\n\n const avgColor =\n colors\n .map(\n (c) =>\n 0.2126 * hexToDec(c, 0) +\n 0.7152 * hexToDec(c, 2) +\n 0.0722 * hexToDec(c, 4)\n )\n .reduce((a, b) => a + b) / colors.length;\n\n return avgColor > 0.179 ? Colors.basicInverse : Colors.basic;\n};\n\nexport const ColorPicker: React.FC = ({\n item,\n isSelected,\n}) => {\n const newDesign = useNewPdDesignEnabled();\n const { getTimeFromInit } = useTrackingContext();\n const isOnStock = item.stockAvailability.code !== IStock.outOfStock;\n\n const withoutColor = !item.colors || item.colors.length === 0;\n const colors = withoutColor ? [Colors.basic] : item.colors;\n\n const handleClick = () =>\n trackVariantClick(getTimeFromInit(), VariantDisplayTypes.ColorPicker);\n\n const ColorTile = (\n \n {!isOnStock && (\n \n )}\n \n );\n\n return (\n \n \n \n \n {item.additionalInfo}\n }\n >\n {ColorTile}\n \n \n \n {ColorTile}\n \n \n \n \n );\n};\n","import * as React from 'react';\n\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport { IVariantsProps } from '../../../../model';\n\nimport { ColorPicker } from './ColorPicker';\nimport { Container, VariantsList } from './styled';\n\nexport const VariantsColorPickers: React.FC = ({\n selectedId,\n variants,\n}) => {\n const newDesign = useNewPdDesignEnabled();\n\n return (\n \n \n {variants.map((item) => (\n \n ))}\n \n \n );\n};\n","export const VARIANT_CHEVRON_SIZE = '1.5rem';\nexport const COLOR_CIRCLE_SIZE = 2.25;\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n pickVariant: {\n id: 'pd.variant.drawer.pickVariant',\n defaultMessage: 'Zvolte si odstín',\n },\n});\n","import{b as o}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import{styled as r}from\"./styled.js\";import{ColorRectangle as e}from\"./ColorRectangle.js\";import\"styled-components\";import\"./breakpoints.js\";import\"./theme.js\";import\"./ColorRectangleModel.js\";var t,s=r(e)(t||(t=o([\"\\n border-radius: 50%;\\n\"])));export{s as ColorCircle};\n//# sourceMappingURL=ColorCircle.js.map\n","import {\n styled,\n ColorCircle,\n theme,\n breakpoints,\n} from '@notino/react-styleguide';\n\nimport { COLOR_CIRCLE_SIZE } from './constants';\n\nexport const Button = styled.button`\n width: 100%;\n padding: 1rem;\n\n cursor: pointer;\n\n background: ${theme.palette.basicInverse};\n border: 0.1rem solid ${theme.palette.neutralLight};\n`;\n\nexport const ShadesVariantsList = styled.ul`\n display: flex;\n flex-wrap: wrap;\n`;\n\nexport const VariantInfo = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const OffsetScrollDiv = styled.div`\n position: relative;\n top: -4rem;\n\n @media (min-width: ${breakpoints.md}) {\n top: -40vh;\n }\n`;\n\nexport const AdditionalInfo = styled.span`\n color: ${theme.palette.basic};\n margin-left: 1rem;\n font-size: 1rem;\n`;\n\nexport const TagOrWatchdogWrapper = styled.div`\n margin-left: auto;\n`;\n\nexport const WatchDogLink = styled.button`\n text-decoration: underline;\n white-space: nowrap;\n\n background: transparent;\n border: 0;\n font-size: 0.875rem;\n`;\n\nexport const ChevronWrapper = styled.div`\n margin-left: auto;\n`;\n\nexport const BorderedColorCircle = styled(ColorCircle)<{\n darkerBorder: boolean;\n}>`\n border: 0.1rem solid\n ${({ darkerBorder }) =>\n darkerBorder\n ? theme.palette.neutralDarker\n : theme.palette.basicInverse} !important;\n min-height: ${COLOR_CIRCLE_SIZE}rem;\n min-width: ${COLOR_CIRCLE_SIZE}rem;\n overflow: hidden;\n`;\n\nexport const ButtonColorCircle = styled(ColorCircle)`\n min-width: 2rem;\n min-height: 2rem;\n`;\n\nexport const Title = styled.h4`\n margin: 0;\n\n font-size: 1rem;\n font-weight: bold;\n`;\n\nexport const VariantListItem = styled.li`\n width: 100%;\n\n // override layout styles for li\n padding: 0;\n margin: 0;\n :before {\n content: none;\n }\n`;\n\nexport const Variant = styled.div<{ isSelected: boolean }>`\n display: flex;\n align-items: center;\n padding: 1rem 1.25rem;\n\n color: ${theme.palette.basic};\n\n background: ${(props) =>\n props.isSelected\n ? props.theme.palette.neutralLight\n : props.theme.palette.basicInverse};\n\n &:hover {\n background: ${(props) =>\n props.isSelected\n ? props.theme.palette.neutralLight\n : props.theme.palette.neutralLighter};\n }\n`;\n\nexport const VariantListItemInfo = styled.div<{ isOutOfStock: boolean }>`\n display: flex;\n align-items: center;\n margin-right: 1rem;\n\n ${({ isOutOfStock }) => (isOutOfStock ? 'opacity: 0.25;' : '')}\n`;\n\nexport const Tag = styled.small`\n color: ${theme.palette.neutralDark};\n`;\n","import {\n VariantFragmentFragment,\n GetProductViewQuery,\n} from '@notino/shared/definitions/types';\n\nimport { TrackingAttributes } from '@context/tracking/types';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\nimport { ProductEventWither } from '@helpers/googleTagManager';\nimport { resolveDrawerCloseType } from '@utils/drawer';\n\nconst trackDrawerEvent = (args: {\n timing: number;\n mode: string;\n interaction: string;\n}) => {\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n mode: 'open',\n name: 'Drawer',\n interaction: 'click',\n action: '',\n promo_labels: undefined,\n type: 'drawer',\n ...args,\n },\n _clear: true,\n });\n};\n\nexport const trackDrawerOpen = ({\n timing,\n}: Pick) => {\n trackDrawerEvent({\n mode: 'open',\n timing,\n interaction: 'click',\n });\n};\n\nexport const trackDrawerClose = ({\n timing,\n closeType,\n}: Omit, 'variant'>) => {\n const eventLabel = resolveDrawerCloseType(closeType);\n\n trackDrawerEvent({\n mode: 'close',\n interaction: eventLabel,\n timing,\n });\n};\n\nexport const trackResizeToTop = ({\n timing,\n}: Pick) => {\n trackDrawerEvent({\n mode: 'open',\n interaction: 'resize+',\n timing,\n });\n};\n\nexport const trackResizeToMiddle = ({\n timing,\n}: Pick) => {\n trackDrawerEvent({\n mode: 'open',\n interaction: 'resize-',\n timing,\n });\n};\n\nexport const trackDrawerVariantClick = ({\n timing,\n}: Pick) => {\n trackDrawerEvent({\n mode: undefined,\n interaction: 'select_variant',\n timing,\n });\n};\n\nexport const trackDrawerWatchdogClick = (\n product: GetProductViewQuery['productDetailByMasterId'][number],\n variant: VariantFragmentFragment\n) => {\n dispatchTrackingEvent({\n event: 'watchdog_click',\n watchdog: {\n action: 'wt_add_watchdog',\n interaction: 'button',\n type: 'Drawer',\n products: [\n ProductEventWither()\n .withProduct(product)\n .withPartialVariant({\n ...variant,\n price: {\n __typename: 'Price',\n ...variant.price,\n },\n stockAvailability: {\n code: variant.stockAvailability.code,\n __typename: 'StockInfo',\n count: undefined,\n },\n })\n .build(),\n ],\n },\n _clear: true,\n });\n};\n","import { ProductTileModel, theme } from '@notino/react-styleguide';\n\nconst availableTagsForShadesDrawer = [\n ProductTileModel.TagAttributes.Damaged,\n ProductTileModel.TagAttributes.Returned,\n];\n\nexport const isAvailableTagForShadesDrawer = (\n tag: ProductTileModel.TagAttributes\n) => {\n return availableTagsForShadesDrawer.includes(tag);\n};\n\n/**\n * Resolves color for item\n * @param item\n * @return color for color circle\n */\nexport const getItemColors = (item: {\n colors: Array;\n color: string;\n}): Array => {\n if (item?.colors?.length > 0) {\n return item.colors;\n }\n return [item?.color || theme.palette.basicInverse];\n};\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as r from\"react\";import{Icon as t}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var o=function(o){return r.createElement(t,e({},o,{viewBox:\"0 0 50 64\"}),r.createElement(\"path\",{d:\"M3 51L51 3\",stroke:\"currentColor\",strokeWidth:\"4\",strokeLinecap:\"square\"}))};export{o as CloseLineIcon};\n//# sourceMappingURL=CloseLineIcon.js.map\n","import * as React from 'react';\n\nimport { OffsetScrollDiv } from '../styled';\n\nexport const OffsetScroll: React.FC = () => {\n const ref = React.useRef();\n\n React.useEffect(() => {\n if (ref.current) {\n ref.current.scrollIntoView(true);\n }\n }, []);\n return ;\n};\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { useTagAttributes } from '@components/Universals/ProductItem/useTagAttributes';\nimport { Watchdog } from '@sharedComponents/Watchdog';\nimport { watchdogMessages } from '@sharedComponents/Watchdog/watchdogMessages';\n\nimport { WatchDogLink, Tag, TagOrWatchdogWrapper } from './styled';\nimport { trackDrawerWatchdogClick } from './tracking';\nimport { isAvailableTagForShadesDrawer } from './utils';\nimport { ColorCirclePickerProps } from './VariantColorListItem';\n\nexport const ItemStatus: React.FC<\n Pick\n> = ({ item, product }) => {\n const { formatMessage } = useIntl();\n const tagAttributes = useTagAttributes(item.attributes, {\n multiple: false,\n customFilter: isAvailableTagForShadesDrawer,\n });\n const tagLabel = tagAttributes?.[0]?.label;\n\n if (!item.showWatchdog && !tagLabel) {\n return null;\n }\n\n const handleWatchdogClick = (e) => {\n e.preventDefault();\n trackDrawerWatchdogClick(product, item);\n };\n\n return (\n \n {item.showWatchdog ? (\n \n \n {formatMessage(watchdogMessages.watchAvailability)}\n \n \n ) : (\n {tagLabel}\n )}\n \n );\n};\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { DrawerContext, CloseLineIcon } from '@notino/react-styleguide';\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport messages from '@containers/ProductDetailContainer/messages';\nimport { useAppendDisplayTypeForAbTest } from '@containers/ProductDetailContainer/utils';\nimport { dataLabelsProp } from '@helpers/utils';\n\nimport { VariantLink } from '../../variantsStyled';\nimport {\n IVariantItemProps,\n getContrastingIconColor,\n} from '../VariantsColorPickers/ColorPicker';\n\nimport { OffsetScroll } from './components/OffsetScroll';\nimport { COLOR_CIRCLE_SIZE } from './constants';\nimport { ItemStatus } from './ItemStatus';\nimport {\n VariantListItem,\n Variant,\n BorderedColorCircle,\n AdditionalInfo,\n VariantListItemInfo,\n} from './styled';\nimport { trackDrawerVariantClick } from './tracking';\nimport { getItemColors } from './utils';\n\nexport interface ColorCirclePickerProps extends IVariantItemProps {\n getTimeFromInit: () => number;\n product: GetProductViewQuery['productDetailByMasterId'][number];\n}\n\nexport const ColorCirclePicker: React.FC = ({\n item,\n isSelected,\n getTimeFromInit,\n product,\n}) => {\n const { closeDrawer } = DrawerContext.useDrawerContext();\n const variantUrl = useAppendDisplayTypeForAbTest(item.url);\n\n const { formatMessage } = useIntl();\n\n const isOutOfStock = item.stockAvailability.code === IStock.outOfStock;\n const withoutColors = !item.colors || item.colors.length === 0;\n const colors = getItemColors(item);\n\n const handleClick = () => {\n trackDrawerVariantClick({ timing: getTimeFromInit() });\n closeDrawer();\n };\n\n return (\n \n {isSelected && }\n \n \n \n \n \n {isOutOfStock && (\n \n )}\n \n {item.additionalInfo}\n \n\n \n \n \n \n \n );\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { DrawerContext, Colors } from '@notino/react-styleguide';\n\nimport { IVariantsProps as ICommonVariantsProps } from '@containers/ProductDetailContainer/model';\nimport { useProductDetailContext } from '@containers/ProductDetailContainer/ProductDetail/ProductDetailContext';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { HorizontalChevron } from '@sharedComponents/Icons/HorizontalChevron';\n\nimport { VARIANT_CHEVRON_SIZE } from './constants';\nimport { messages } from './messages';\nimport {\n Button,\n Title,\n VariantInfo,\n ChevronWrapper,\n AdditionalInfo,\n ShadesVariantsList,\n ButtonColorCircle,\n} from './styled';\nimport {\n trackDrawerOpen,\n trackResizeToTop,\n trackResizeToMiddle,\n trackDrawerClose,\n} from './tracking';\nimport { getItemColors } from './utils';\nimport { ColorCirclePicker } from './VariantColorListItem';\n\nexport const VariantsShadesDrawer: React.FC = ({\n variants,\n selectedId,\n selectedVariant,\n}) => {\n const { openDrawer, closeDrawer } = DrawerContext.useDrawerContext();\n const { getTimeFromInit: getTime } = useTrackingContext();\n const { product } = useProductDetailContext();\n\n const handleOpenDrawer: React.MouseEventHandler = () => {\n trackDrawerOpen({ timing: getTime() });\n openDrawer(\n \n {variants.map((item) => (\n \n ))}\n ,\n {\n title: (\n \n <FormattedMessage {...messages.pickVariant} />\n \n ),\n interceptBrowserBackButtonToCloseDrawer: true,\n onClose: (closeType) => {\n trackDrawerClose({ closeType, timing: getTime() });\n closeDrawer();\n },\n onResizeToTop: () => trackResizeToTop({ timing: getTime() }),\n onResizeToMiddle: () => trackResizeToMiddle({ timing: getTime() }),\n }\n );\n };\n\n return (\n

\n \n
\n );\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nimport { CdnImage } from '@components/CdnImage';\n\nimport { IStyledVariantProps } from '../../../../model';\nimport { VariantCommon } from '../../variantsStyled';\n\nconst variantBorderColor = (props: IStyledVariantProps) => {\n const { isSelected } = props;\n return isSelected ? theme.palette.neutral : theme.palette.neutralLight;\n};\n\ntype VariantProps = {\n newDesign: boolean;\n displayInRow: boolean;\n} & IStyledVariantProps;\nexport const Variant = styled(VariantCommon)`\n ${({ newDesign, isSelected, displayInRow }) =>\n newDesign\n ? css`\n border: 2px solid\n ${isSelected\n ? theme.palette.neutralDarker\n : theme.palette.neutralLight};\n padding: 0.625rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n margin: 0 0 0.25rem;\n width: 6.5rem;\n height: 7.5rem;\n\n @media (min-width: ${breakpoints.lg}) {\n flex-direction: ${displayInRow ? 'row' : 'column'};\n width: auto;\n margin: 0;\n }\n `\n : css`\n border: 1px solid ${variantBorderColor};\n margin-right: 0.625rem;\n margin-bottom: 0.625rem;\n padding: 0.625rem;\n min-height: 7.75rem;\n `}\n`;\n\ninterface IImgWrapperProps {\n isOnStock: boolean;\n isSelected: boolean;\n newDesign: boolean;\n}\n\nexport const ImgWrapper = styled.span`\n display: flex;\n justify-content: center;\n align-items: center;\n\n background-color: ${(props) => props.theme.palette.basicInverse};\n\n img {\n opacity: ${(props) =>\n props.isSelected || props.isOnStock ? 1 : props.newDesign ? 0.5 : 0.6};\n overflow: hidden;\n }\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n img {\n height: 4rem;\n width: 4rem;\n object-fit: contain;\n }\n `\n : css`\n width: 5rem;\n height: 5rem;\n img {\n max-width: 4.375rem !important;\n max-height: 4.375rem !important;\n }\n `}\n`;\n\ninterface IPriceLabelWrapperProps {\n isOnStock: boolean;\n isSelected: boolean;\n newDesign: boolean;\n}\n\nexport const PriceLabelWrapper = styled.div`\n text-align: center;\n\n ${({ newDesign, isOnStock, isSelected }) =>\n newDesign\n ? css`\n ${isSelected\n ? theme.typography.labelRegular\n : theme.typography.labelRegular400}\n color: ${isSelected\n ? theme.palette.basic\n : theme.palette.neutralDarker};\n `\n : css`\n color: ${isOnStock ? theme.palette.basic : theme.palette.neutral};\n font-weight: ${isSelected ? 'bold' : 'normal'};\n font-size: 0.9rem;\n `}\n`;\n\n// has to be used because of isVideo prop warning, as we attempt to pass to dom element isVideo prop\nexport const Img = styled(CdnImage)``;\n\nexport const VariantList = styled.ul<{\n newDesign: boolean;\n itemsCount: number;\n}>`\n overflow-x: scroll;\n -webkit-overflow-scrolling: touch;\n\n ${({ newDesign, itemsCount }) =>\n newDesign\n ? css`\n display: flex;\n gap: 0.5rem;\n margin: 0;\n\n @media (min-width: ${breakpoints.lg}) {\n display: grid;\n grid-gap: 0.5rem;\n grid-template-columns: repeat(${itemsCount >= 3 ? 3 : 2}, 1fr);\n overflow-x: auto;\n margin: 0;\n }\n `\n : css`\n display: flex;\n flex-wrap: nowrap;\n margin: 0;\n\n @media (min-width: ${breakpoints.md}) {\n flex-wrap: wrap;\n height: auto;\n overflow-x: auto;\n padding: 0;\n }\n `}\n`;\n\nexport const VariantListItem = styled.li<{ newDesign: boolean }>`\n list-style-type: none;\n display: inline-block;\n flex-shrink: 0;\n padding: 0;\n margin: 0;\n\n &:before {\n display: none;\n }\n\n ${({ newDesign }) =>\n !newDesign &&\n css`\n min-width: 28vw;\n @media (min-width: ${breakpoints.sm}) {\n min-width: auto;\n }\n `}\n`;\n\nexport const PricePlaceholder = styled.div`\n height: 1rem;\n width: 3rem;\n`;\n","import * as React from 'react';\n\nimport { TagModel } from '@notino/react-styleguide';\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport PriceLabel from '@components/PriceLabel';\nimport { Tags } from '@components/Tags';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport { VariantDisplayTypes } from '@containers/ProductListing/model';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { dataLabelsProp } from '@helpers/utils';\n\nimport { IVariantProps } from '../../../../model';\nimport { trackVariantClick } from '../../tracking';\nimport { VariantLink, PriceLabelCurrency } from '../../variantsStyled';\n\nimport {\n PriceLabelWrapper,\n Variant,\n ImgWrapper,\n Img,\n VariantListItem,\n PricePlaceholder,\n} from './styled';\n\nexport const VariantThumbnail: React.FC = ({\n item,\n isSelected,\n displayPrice,\n variantsCount,\n}) => {\n const isOnStock = item.stockAvailability.code !== IStock.outOfStock;\n const { getTimeFromInit } = useTrackingContext();\n const newDesign = useNewPdDesignEnabled();\n const displayInRow = variantsCount === 2;\n\n const handleClick = () =>\n trackVariantClick(getTimeFromInit(), VariantDisplayTypes.Thumbnail);\n\n return (\n \n \n \n \n {item.attributes && (\n \n )}\n\n \n \n \n\n {displayPrice && isOnStock ? (\n (\n \n )}\n currencyComponent={PriceLabelCurrency}\n />\n ) : displayInRow ? null : (\n \n )}\n \n \n \n \n );\n};\n","import * as React from 'react';\n\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport { IVariantsProps } from '../../../../model';\nimport { Container } from '../../variantsStyled';\n\nimport { isPriceSame } from './isPriceSame';\nimport { VariantList } from './styled';\nimport { VariantThumbnail } from './VariantThumbnail';\n\nexport const VariantsThumbnail: React.FC = ({\n locale,\n unit,\n selectedId,\n variants,\n currency,\n}) => {\n const samePrice = isPriceSame(variants);\n const newDesign = useNewPdDesignEnabled();\n const variantsCount = variants.length;\n\n return (\n \n \n {variants.map((item) => (\n \n ))}\n \n \n );\n};\n","import { VariantFragmentFragment } from '@notino/shared/definitions/types';\n\nexport const isPriceSame = (variants: VariantFragmentFragment[]): boolean =>\n variants.every(\n (variant, _, array) => variant.price.value === array[0].price.value\n );\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n unavailable: {\n id: 'pd.variants.tile.unavailable',\n defaultMessage: 'Nedostupné',\n },\n});\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nimport { IStyledVariantProps } from '../../../../model';\nimport { VariantCommon } from '../../variantsStyled';\n\ntype VariantProps = IStyledVariantProps & {\n newDesign: boolean;\n isDualPriceForCroatia: boolean;\n};\nexport const Variant = styled(VariantCommon)`\n ${({ newDesign, isSelected, isOnStock, isDualPriceForCroatia }) =>\n newDesign\n ? css`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: ${\n isOnStock && isDualPriceForCroatia ? 'center' : 'space-between'\n };\n margin: 0 0 0.25rem;\n border 2px solid ${\n isSelected\n ? theme.palette.basic\n : isOnStock\n ? theme.palette.neutral\n : theme.palette.neutralLight\n };\n background-color: ${theme.palette.basicInverse};\n height: 3.5rem;\n width: 6.5rem;\n padding: 0.625rem 0.5rem;\n @media (min-width: ${breakpoints.lg}) {\n width: auto;\n margin: 0;\n }\n `\n : css`\n min-height: 3.625rem;\n border 1px solid ${(props: IStyledVariantProps) =>\n props.isSelected\n ? props.theme.palette.neutral\n : props.theme.palette.neutralLighter};\n background-color: ${(props) =>\n props.isSelected\n ? props.theme.palette.basicInverse\n : props.theme.palette.neutralLighter};\n\n &:hover {\n background-color: ${(props) =>\n !props.isSelected && props.theme.palette.neutralLight};\n }\n\n padding: 0.375rem 1.875rem 0.375rem 0.625rem;\n @media (min-width: ${breakpoints.sm}) {\n min-width: 6.8rem;\n }\n `}\n`;\n\ninterface IPriceLabelWrapperProps {\n isOnStock: boolean;\n isSelected: boolean;\n newDesign: boolean;\n}\n\nexport const PriceLabelWrapper = styled.div`\n ${({ newDesign, isOnStock, isSelected }) =>\n newDesign\n ? css`\n ${theme.typography.labelSmall400}\n color:${theme.palette.neutralDarker}\n `\n : css`\n color: ${isOnStock ? theme.palette.basic : theme.palette.neutral};\n font-weight: ${isSelected ? 'bold' : 'normal'};\n font-size: 0.9rem;\n `}\n`;\n\nexport const Unavailable = styled.p`\n ${theme.typography.labelSmall400}\n color:${theme.palette.neutralDark}\n`;\n","import { snakeCase } from 'lodash';\n\nimport { ProductTileModel } from '@notino/react-styleguide';\n\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nconst tagAttributeToNameMap: Record = {\n Action: 'V akci/růžový štítek s procenty',\n FreeDelivery: 'Doprava zdarma/náklaďák',\n Clearance: 'Výprodej/černý štítek s procentem',\n New: 'Novinka/hvězdička',\n Damaged: null, // not tracked\n Returned: null, // not tracked\n};\n\nexport const trackTagClick = (\n attr: ProductTileModel.TagAttributes,\n timing: number\n) => {\n const name = tagAttributeToNameMap[attr];\n if (!name) {\n return;\n }\n\n dispatchTrackingEvent({\n event: 'element_click',\n _clear: true,\n element: {\n action: 'click_on_element',\n name,\n type: 'variant_tile_label',\n promo_labels: snakeCase(attr),\n interaction: 'click',\n timing,\n },\n });\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { TagModel } from '@notino/react-styleguide';\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport PriceLabel from '@components/PriceLabel';\nimport { Tags } from '@components/Tags';\nimport { getRenderableAttributes } from '@components/Tags/utils';\nimport { useIsDualPriceForCroatia } from '@containers/ProductDetailContainer/ProductDetail/hooks/useIsDualPriceForCroatia';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport { VariantDisplayTypes } from '@containers/ProductListing/model';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { dataLabelsProp } from '@helpers/utils';\n\nimport { IVariantProps } from '../../../../model';\nimport { trackVariantClick } from '../../tracking';\nimport {\n VariantListItem,\n VariantLink,\n PriceLabelCurrency,\n Name,\n} from '../../variantsStyled';\n\nimport { messages } from './messages';\nimport { Variant, PriceLabelWrapper, Unavailable } from './styled';\nimport { trackTagClick } from './tracking';\n\nexport const VariantTile: React.FC = ({\n item,\n isSelected,\n unit,\n}) => {\n const { getTimeFromInit } = useTrackingContext();\n const { isDualPriceForCroatia } = useIsDualPriceForCroatia();\n const newDesign = useNewPdDesignEnabled();\n const isOnStock = item.stockAvailability.code !== IStock.outOfStock;\n\n const handleClick = () => {\n const attributes = Object.keys(getRenderableAttributes(item.attributes));\n trackVariantClick(\n getTimeFromInit(),\n VariantDisplayTypes.Tiles,\n isOnStock ? attributes?.[0] : undefined\n );\n };\n\n return (\n \n \n \n \n trackTagClick(attr, getTimeFromInit())}\n type={TagModel.Types.corner}\n small={newDesign}\n attributes={item.attributes}\n stockAvailability={item.stockAvailability.code}\n />\n\n \n {`${item.parameters.package}\\u00A0${unit}`}\n \n\n {isOnStock && (\n (\n \n )}\n currencyComponent={PriceLabelCurrency}\n />\n )}\n\n {!isOnStock && newDesign && (\n \n \n \n )}\n \n \n \n \n );\n};\n","import * as React from 'react';\n\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport { IVariantsProps } from '../../../../model';\nimport { Container, VariantList } from '../../variantsStyled';\n\nimport { VariantTile } from './VariantTile';\n\nexport const VariantsTile: React.FC = ({\n locale,\n unit,\n selectedId,\n variants,\n currency,\n}) => {\n const newDesign = useNewPdDesignEnabled();\n\n return (\n \n \n {variants.map((item) => (\n \n ))}\n \n \n );\n};\n","import * as React from 'react';\n\nimport { VariantDisplayType } from '@notino/shared/definitions/types';\n\nimport { IVariantsProps as ICommonVariantsProps } from '../../../model';\n\nimport { VariantsColorPickers } from './VariantsColorPickers';\nimport { VariantsShadesDrawer } from './VariantsShadesDrawer';\nimport { VariantsThumbnail } from './VariantsThumbnail';\nimport { VariantsTile } from './VariantsTile';\n\ninterface IVariantsProps extends ICommonVariantsProps {\n variantsLen: number;\n displayType: VariantDisplayType;\n}\n\nexport const Variants: React.FC = React.memo(\n ({ variantsLen, displayType, ...rest }) => {\n if (variantsLen > 1) {\n switch (displayType) {\n case VariantDisplayType.Thumbnail:\n return ;\n case VariantDisplayType.ColorPicker:\n return ;\n case VariantDisplayType.ShadesDrawer:\n return ;\n case VariantDisplayType.Tiles:\n default:\n return ;\n }\n }\n\n if (variantsLen === 1) {\n if (displayType === VariantDisplayType.ColorPicker) {\n return ;\n }\n return null; // hide variant tile if there is only one variant\n }\n\n return ;\n }\n);\n","import styled, { css } from 'styled-components';\n\nimport { keyframes, breakpoints } from '@notino/react-styleguide';\n\nimport { IOpenedProps } from '../../../../model';\n\nconst openingMD = keyframes`\n from {\n max-height: 0;\n overflow: hidden;\n }\n to {\n max-height: 21.875rem;\n overflow: auto;\n }\n`;\n\nconst opening = keyframes`\n from {\n transform: translateY(100%);\n overflow: hidden;\n }\n to {\n transform: translateY(0);\n overflow: auto;\n }\n`;\n\nconst closingMD = keyframes`\n from {\n max-height: 21.875rem;\n }\n to {\n max-height: 0;\n }\n`;\n\nconst closing = keyframes`\n from {\n transform: translateY(0);\n }\n to {\n transform: translateY(100%);\n }\n`;\n\nexport const OpenedVariants = styled.div<{ newDesign: boolean } & IOpenedProps>`\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n flex-wrap: wrap;\n align-content: flex-start;\n background-color: ${(props) => props.theme.palette.basicInverse};\n z-index: 10002; /* daktela is 10001 */\n overflow: auto;\n animation-duration: 0.6s;\n animation-name: ${(props) => (props.isExpanded ? opening : closing)};\n display: ${(props) => (props.isExpanded ? 'flex' : 'none')};\n -webkit-overflow-scrolling: touch;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n @media (min-width: ${breakpoints.lg}) {\n position: absolute;\n top: auto;\n left: auto;\n height: auto;\n max-height: 21.875rem;\n border: 1px solid ${(props) => props.theme.palette.neutralLight};\n border-top: 0;\n animation-name: ${(props) =>\n props.isExpanded ? openingMD : closingMD};\n }\n `\n : css`\n @media (min-width: ${breakpoints.md}) {\n position: absolute;\n top: auto;\n left: auto;\n height: auto;\n margin-top: -0.5625rem;\n max-height: 21.875rem;\n border: 1px solid ${(props) => props.theme.palette.neutralLight};\n border-top: 0;\n animation-name: ${(props: IOpenedProps) =>\n props.isExpanded ? openingMD : closingMD};\n }\n `}\n`;\n","import * as React from 'react';\n\nimport { ReactFCC } from '@notino/react-styleguide';\n\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport { IOpenedProps } from '../../../../model';\n\nimport { OpenedVariants } from './styled';\n\ninterface IExpandedProps extends IOpenedProps {\n isExpanded: boolean;\n onOuterClick: (e: React.SyntheticEvent) => void;\n}\n\nexport const ExpandedVariants: ReactFCC = ({\n isExpanded,\n onOuterClick,\n children,\n}) => {\n const ref = React.useRef(null);\n const newDesign = useNewPdDesignEnabled();\n\n const handleClickOutside = React.useCallback(\n (e) => {\n if (ref.current && !ref.current.contains(e.target) && isExpanded) {\n onOuterClick(e);\n }\n },\n [onOuterClick, isExpanded]\n );\n\n React.useEffect(() => {\n document.addEventListener('click', handleClickOutside, true);\n document.addEventListener('touchstart', handleClickOutside, true);\n return () => {\n document.removeEventListener('click', handleClickOutside, true);\n document.removeEventListener('touchstart', handleClickOutside, true);\n };\n }, [handleClickOutside]);\n\n return (\n \n {children}\n \n );\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nimport {\n Wrapper as PriceLabelWrapper,\n CurrencyStyled as PriceLabelCurrencyWrapper,\n} from '@components/PriceLabel/components/styled';\nexport const SectionWrapper = styled.section<{ newDesign: boolean }>`\n margin: 1.25rem 0;\n padding: 0 0 0 0;\n\n ${({ newDesign }) =>\n newDesign &&\n css`\n margin-bottom: 0.75rem;\n `}\n`;\n\nexport const Wrapper = styled.div<{ newDesign: boolean }>`\n position: relative;\n width: 100%;\n\n ${({ newDesign }) =>\n newDesign &&\n css`\n margin-top: 1.5rem;\n `}\n`;\n\nexport const Select = styled.div<{ isExpanded: boolean; newDesign: boolean }>`\n display: flex;\n cursor: pointer;\n justify-content: space-between;\n width: 100%;\n overflow: hidden;\n\n ${({ isExpanded, newDesign }) =>\n newDesign\n ? css`\n height: 3.5rem;\n padding: 0 1rem;\n border: 1px solid\n ${isExpanded ? theme.palette.basic : theme.palette.neutral};\n `\n : css`\n border: 1px solid ${theme.palette.neutral};\n margin-bottom: 0.5625rem;\n padding-left: 0.625rem;\n @media (min-width: ${breakpoints.sm}) {\n height: 3.5rem;\n }\n `}\n`;\n\nexport const SelectedVariantName = styled.span`\n display: flex;\n justify-content: flex-start;\n align-items: center;\n flex-shrink: 1;\n flex-grow: 1;\n min-width: 0;\n padding-bottom: 0.5rem;\n order: 2;\n\n @media (min-width: ${breakpoints.sm}) {\n padding-top: 0.5rem;\n width: 100%;\n order: 1;\n }\n\n @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n width: auto;\n }\n`;\n\nexport const Text = styled.span<{ newDesign: boolean }>`\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: 1rem;\n line-height: normal;\n\n @media (min-width: ${breakpoints.sm}) {\n margin-right: 0.625rem;\n }\n\n ${({ newDesign }) =>\n newDesign &&\n css`\n ${theme.typography.labelRegular400}\n `}\n`;\n\nexport const ChevronIconWrapper = styled.button<{ newDesign: boolean }>`\n border: none;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n flex-grow: 0;\n cursor: pointer;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n color: ${theme.palette.neutralDark};\n width: 1rem;\n padding: 0 0.1rem;\n margin-left: 1rem;\n background-color: ${theme.palette.basicInverse};\n `\n : css`\n background-color: ${theme.palette.neutralLighter};\n margin-left: 0.625rem;\n width: 2rem;\n `}\n`;\n\nexport const CloseWrapper = styled.div<{ newDesign: boolean }>`\n width: 100%;\n text-align: right;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n padding: 0.5rem;\n height: 3.25rem;\n @media (min-width: ${breakpoints.lg}) {\n display: none;\n }\n `\n : css`\n padding: 0.3125rem 0.625rem 0.625rem;\n @media (min-width: ${breakpoints.md}) {\n display: none;\n }\n `}\n`;\n\nexport const CloseIcon = styled.span<{ newDesign: boolean }>`\n cursor: pointer;\n height: 2rem;\n display: inline-block;\n\n ${({ newDesign }) =>\n newDesign &&\n css`\n padding: 0.5rem;\n `}\n`;\n\nexport const PriceAndName = styled.div`\n display: flex;\n flex-wrap: wrap;\n flex-grow: 1;\n flex-shrink: 1;\n min-width: 0;\n flex-wrap: wrap;\n\n @media (min-width: ${breakpoints.sm}) {\n flex-wrap: nowrap;\n }\n`;\n\nexport const Prices = styled.div`\n display: flex;\n align-items: baseline;\n flex-grow: 0;\n flex-shrink: 1;\n flex-wrap: wrap;\n width: 100%;\n order: 1;\n padding-top: 0.5rem;\n\n @media (min-width: ${breakpoints.sm}) {\n width: auto;\n flex-flow: column;\n justify-content: center;\n order: 2;\n padding-top: 0;\n }\n`;\n\nexport const PriceRatioWrapper = styled.div`\n margin-top: -0.5rem;\n`;\n\nexport const OldPriceWrapper = styled(PriceLabelWrapper)`\n font-size: 1.5rem;\n`;\n\nexport const OldCurrencyWrapper = styled(PriceLabelCurrencyWrapper)`\n font-size: 1.4rem;\n`;\n\nexport const PriceWrapper = styled(PriceLabelWrapper)`\n ${theme.typography.titleMedium}\n`;\n\nexport const CurrencyWrapper = styled(PriceLabelCurrencyWrapper)`\n ${theme.typography.titleMedium}\n`;\n\nexport const DualPriceWrapper = styled.div`\n display: flex;\n`;\n\nexport const DualPrice = styled.div<{ newDesign: boolean }>`\n font-size: 1.1rem;\n font-weight: 700;\n white-space: nowrap;\n ${({ newDesign }) => newDesign && theme.typography.titleLarge}\n`;\n\nexport const DualPriceSplitter = styled.div<{ newDesign: boolean }>`\n padding: 0 0.2rem;\n font-size: 1.1rem;\n font-weight: 700;\n ${({ newDesign }) => newDesign && theme.typography.titleLarge}\n`;\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nimport { CdnImage } from '@components/CdnImage';\n\nimport { NavLink } from './NavLink';\n\nexport interface IRowProps {\n isSelected: boolean;\n notInStock?: boolean;\n newDesign: boolean;\n}\n\nexport const Name = styled.div<{ newDesign: boolean }>`\n flex-grow: 2;\n padding: 0.3125rem 0.625rem;\n flex-basis: 100%;\n\n @media (min-width: ${breakpoints.sm}) {\n flex-basis: auto;\n }\n @media (min-width: ${breakpoints.md}) {\n flex-basis: 100%;\n }\n @media (min-width: ${breakpoints.lg}) {\n flex-basis: auto;\n }\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n display: flex;\n flex-direction: column-reverse;\n gap: 4px;\n font-size: 0.875rem !important;\n `\n : css`\n font-size: 1rem !important;\n `}\n`;\n\nexport const Img = styled(CdnImage)<{ newDesign: boolean }>`\n overflow: hidden;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n object-fit: contain;\n width: 2.5rem;\n height: 2.5rem;\n `\n : css`\n max-width: 4.375rem !important;\n max-height: 4.375rem !important;\n `}\n`;\n\nexport const Discount = styled.span<{ newDesign: boolean }>`\n color: ${(props) => props.theme.palette.primary};\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n ${theme.typography.labelSmall}\n `\n : css`\n font-weight: bold;\n padding-left: 0.6rem;\n\n @media (min-width: ${breakpoints.sm}) {\n padding-left: 0;\n }\n @media (min-width: ${breakpoints.md}) {\n padding-left: 0.6rem;\n }\n @media (min-width: ${breakpoints.lg}) {\n padding-left: 0;\n }\n `}\n`;\n\nexport const DiscountWrapper = styled.span`\n text-align: right;\n font-size: 0.9rem;\n line-height: 1.5rem;\n white-space: nowrap;\n`;\n\nexport const LineThrough = styled.span<{\n active: boolean;\n newDesign: boolean;\n removeLeftPadding?: boolean;\n}>`\n color: ${(props) => props.theme.palette.neutralDarker};\n ${({ active }) => active && 'text-decoration: line-through'};\n ${({ newDesign, removeLeftPadding }) =>\n newDesign\n ? css`\n ${theme.typography.labelSmall}\n color:${theme.palette.neutralDark};\n padding-left: ${removeLeftPadding ? '0' : '0.25rem'};\n `\n : css`\n padding-left: ${removeLeftPadding ? '0' : '0.6rem'};\n `}\n`;\n\nexport const Row = styled(NavLink)`\n display: flex;\n justify-content: space-between;\n align-items: center;\n text-decoration: none;\n width: 100%;\n color: ${(props) => props.theme.palette.basic};\n font-weight: ${(props) => (props.isSelected ? 'bold' : 'normal')};\n border-bottom: 1px solid ${(props) => props.theme.palette.neutralLighter};\n flex-grow: 1;\n opacity: ${(props) => (props.notInStock ? 0.7 : 1)};\n\n @media (min-width: ${breakpoints.md}) {\n :last-child {\n border-bottom: 0;\n }\n }\n\n &:hover {\n ${Name} {\n text-decoration: underline;\n }\n }\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n padding: 0.75rem 1rem 0.75rem 0.75rem;\n min-height: 4rem;\n `\n : css`\n min-height: 5.0625rem;\n `}\n`;\n\nexport const ImgWrapper = styled.span<{ newDesign: boolean }>`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-grow: 0;\n flex-shrink: 0;\n\n background-color: ${(props) => props.theme.palette.basicInverse};\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n margin-right: 0.5rem;\n `\n : css`\n width: 5rem;\n height: 5rem;\n `}\n`;\n\ninterface IPriceProps {\n isSelected: boolean;\n newDesign: boolean;\n}\n\nexport const Price = styled.b`\n line-height: 1.5rem;\n font-size: 1.2rem;\n white-space: nowrap;\n font-weight: ${({ isSelected }) => (isSelected ? 'auto' : 'normal')};\n\n @media (min-width: ${breakpoints.sm}) {\n width: 100%;\n text-align: right;\n }\n\n @media (min-width: ${breakpoints.md}) {\n width: auto;\n text-align: left;\n }\n\n @media (min-width: ${breakpoints.lg}) {\n width: 100%;\n text-align: right;\n }\n\n ${({ newDesign, isSelected }) =>\n newDesign &&\n css`\n ${theme.typography.labelRegular}\n font-weight: ${isSelected ? 700 : 500};\n > span {\n font-size: 0.875rem !important;\n }\n `}\n`;\n\nexport const PriceBesideBelow = styled.div<{ newDesign: boolean }>`\n display: flex;\n flex-shrink: 1;\n flex-grow: 1;\n align-items: center;\n justify-content: space-between;\n\n ${({ newDesign }) =>\n !newDesign &&\n css`\n flex-wrap: wrap;\n @media (min-width: ${breakpoints.md}) {\n flex-wrap: nowrap;\n }\n `}\n`;\n\nexport const PriceWrapper = styled.span`\n flex-grow: 1;\n flex-shrink: 1;\n padding: 0 0.625rem;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n flex-wrap: wrap;\n align-items: flex-end;\n width: auto;\n`;\n\nexport const PriceSymbol = styled.span`\n margin-left: 0.3rem;\n font-size: 1rem;\n`;\n\nexport const DualPriceWrapper = styled.div`\n display: flex;\n`;\n\nexport const Slash = styled.span<{ newDesign: boolean }>`\n padding: 0 0.25rem;\n ${({ newDesign }) =>\n newDesign\n ? css`\n line-height: 1.25rem;\n `\n : css`\n font-size: 19px;\n line-height: 1.5rem;\n `}\n`;\n\nexport const RrpSlash = styled.span<{ newDesign: boolean }>`\n padding: 0.2rem;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n ${theme.typography.labelSmall}\n color:${theme.palette.neutralDark};\n `\n : css`\n color: ${theme.palette.neutralDarker};\n `}\n`;\n","import * as React from 'react';\nimport { Link, LinkProps } from 'react-router-dom';\n\nimport { IRowProps } from './styled';\n\nexport const NavLink: React.FC = ({\n // these three props can not be propagated to the link\n isSelected: _isSelected,\n notInStock: _notInStock,\n children,\n ...rest\n}) => {children};\n","import * as React from 'react';\nimport { FormattedNumber } from 'react-intl';\n\nimport { VariantFragmentFragment } from '@notino/shared/definitions/types';\n\nimport { ILocale } from '@containers/App/model';\nimport { useIsDualPriceForCroatia } from '@containers/ProductDetailContainer/ProductDetail/hooks/useIsDualPriceForCroatia';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport { usePriceLogic } from '@containers/ProductDetailContainer/ProductDetail/hooks/usePriceLogic';\nimport { getDiscountPercentage } from '@containers/ProductDetailContainer/ProductDetail/hooks/usePriceLogic/utils';\n\nimport { Discount, DiscountWrapper, LineThrough, RrpSlash } from './styled';\n\ninterface IVariantDiscountProps {\n variant: VariantFragmentFragment;\n locale: ILocale;\n}\n\nexport const VariantDiscount: React.FC = ({\n variant,\n locale,\n}) => {\n const { topPrice } = usePriceLogic(variant);\n const newDesign = useNewPdDesignEnabled();\n const {\n isDualPriceForCroatia,\n rightSideCurrencyCode,\n leftSideCurrency,\n getRightSidePrice,\n getLeftSideFormattedPrice,\n } = useIsDualPriceForCroatia();\n\n if (!topPrice) {\n return null;\n }\n\n return (\n \n \n {-getDiscountPercentage(variant.price.value, topPrice.value.value)}%\n \n\n {isDualPriceForCroatia && (\n <>\n \n {getLeftSideFormattedPrice(topPrice.value.value)} {leftSideCurrency}\n \n /\n \n )}\n\n \n \n \n \n );\n};\n","import * as React from 'react';\n\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\nimport { VariantFragmentFragment } from '@notino/shared/definitions/types';\n\nimport PriceLabel from '@components/PriceLabel';\nimport { Tags } from '@components/Tags';\nimport { ILocale } from '@containers/App/model';\nimport { useIsDualPriceForCroatia } from '@containers/ProductDetailContainer/ProductDetail/hooks/useIsDualPriceForCroatia';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport { useAppendDisplayTypeForAbTest } from '@containers/ProductDetailContainer/utils';\nimport { VariantDisplayTypes } from '@containers/ProductListing/model';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { variantInfo, dataLabelsProp } from '@helpers/utils';\n\nimport { trackVariantClick } from '../../tracking';\n\nimport {\n Row,\n ImgWrapper,\n Price,\n PriceBesideBelow,\n PriceWrapper,\n PriceSymbol,\n Name,\n Img,\n DualPriceWrapper,\n Slash,\n} from './styled';\nimport { VariantDiscount } from './VariantDiscount';\n\ninterface IVariantItemProps {\n variant: VariantFragmentFragment;\n locale: ILocale;\n isSelected: boolean;\n}\n\nexport const VariantItem: React.FC = ({\n variant,\n locale,\n isSelected,\n}) => {\n const { getTimeFromInit } = useTrackingContext();\n const {\n isDualPriceForCroatia,\n getRightSidePrice,\n getLeftSideFormattedPrice,\n leftSideCurrency,\n rightSideCurrency,\n } = useIsDualPriceForCroatia();\n const newDesign = useNewPdDesignEnabled();\n\n const handleClick = () =>\n trackVariantClick(getTimeFromInit(), VariantDisplayTypes.Select);\n\n const inStock = variant.stockAvailability.code !== IStock.outOfStock;\n const variantUrl = useAppendDisplayTypeForAbTest(variant.url);\n\n return (\n \n \n \n \n\n \n \n \n {variantInfo(variant)}\n \n\n {inStock && (\n \n \n {isDualPriceForCroatia && (\n <>\n \n {getLeftSideFormattedPrice(variant.price.value)}\n {leftSideCurrency}\n \n /\n \n )}\n\n (\n \n )}\n currencyComponent={PriceSymbol}\n currencySymbolOverride={\n isDualPriceForCroatia ? rightSideCurrency : undefined\n }\n />\n \n\n \n \n )}\n \n \n );\n};\n","import * as React from 'react';\n\nimport { CloseIcon, Colors } from '@notino/react-styleguide';\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport PriceLabel from '@components/PriceLabel';\nimport { IVariantsProps } from '@containers/ProductDetailContainer/model';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { variantInfo, dataLabelsProp } from '@helpers/utils';\nimport { HorizontalChevron } from '@sharedComponents/Icons/HorizontalChevron';\n\nimport { useIsDualPriceForCroatia } from '../../hooks/useIsDualPriceForCroatia';\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\nimport { VARIANT_CHEVRON_SIZE } from '../Variants/VariantsShadesDrawer/constants';\n\nimport { ExpandedVariants } from './ExpandedVariants';\nimport {\n SectionWrapper,\n Wrapper,\n Select,\n SelectedVariantName,\n Text,\n CloseIcon as CloseIconWrapper,\n CloseWrapper,\n ChevronIconWrapper,\n PriceAndName,\n Prices,\n OldPriceWrapper,\n OldCurrencyWrapper,\n PriceWrapper,\n CurrencyWrapper,\n DualPriceWrapper,\n DualPrice,\n DualPriceSplitter,\n} from './styled';\nimport { TagDiscount } from './TagDiscount';\nimport { trackSelectOpen } from './tracking';\nimport { VariantItem } from './VariantItem';\n\nexport interface IVariantsInSelectboxProps extends IVariantsProps {\n renderTagDiscount: boolean;\n}\n\nexport const VariantsInSelectbox = ({\n variants,\n selectedId,\n locale,\n renderTagDiscount,\n}: IVariantsInSelectboxProps) => {\n const [isExpanded, setIsExpanded] = React.useState(false);\n const { getTimeFromInit } = useTrackingContext();\n const newDesign = useNewPdDesignEnabled();\n const {\n isDualPriceForCroatia,\n getLeftSideFormattedPrice,\n getRightSideFormattedPrice,\n leftSideCurrency,\n rightSideCurrency,\n } = useIsDualPriceForCroatia();\n\n const handleExpand = (e: React.SyntheticEvent) => {\n e.stopPropagation();\n if (!isExpanded) {\n trackSelectOpen(getTimeFromInit());\n }\n setIsExpanded(!isExpanded);\n };\n\n React.useEffect(() => {\n setIsExpanded(false);\n }, [variants, selectedId]);\n\n const selectedVariant = variants.find((variant) => variant.id === selectedId);\n const text = variantInfo(selectedVariant);\n const inStock = selectedVariant.stockAvailability.code !== IStock.outOfStock;\n\n return (\n \n \n {renderTagDiscount && }\n \n \n \n {inStock && !isDualPriceForCroatia && (\n \n \n \n )}\n\n {inStock && isDualPriceForCroatia && (\n \n \n \n {getLeftSideFormattedPrice(selectedVariant.price.value)}{' '}\n {leftSideCurrency}\n \n\n \n /\n \n \n {getRightSideFormattedPrice(selectedVariant.price.value)}{' '}\n {rightSideCurrency}\n \n \n \n )}\n\n \n \n {text}\n \n \n \n \n \n \n \n {isExpanded && (\n \n \n \n \n \n \n {variants.map((variant) => (\n \n ))}\n \n )}\n \n \n \n );\n};\n","import { dispatchTrackingEvent } from '@context/tracking/utils';\n\nexport const trackSelectOpen = (timing: number) => {\n dispatchTrackingEvent({\n event: 'element_click',\n element: {\n type: 'Select',\n timing,\n action: 'open',\n name: 'open_variants_select',\n },\n _clear: true,\n });\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { useMutation } from '@apollo/client';\n\nimport { ButtonModel } from '@notino/react-styleguide';\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\nimport {\n VariantDisplayType,\n GetProductViewQuery,\n AddToCartTryFirstMutationVariables,\n AddToCartTryFirstMutation,\n VariantFragmentFragment,\n} from '@notino/shared/definitions/types';\nimport { AdditionalServicesAvailability } from '@notino/web-tracking';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { WishlistProductDetailIcon } from '@components/Universals/WishlistModifier/WishlistProductDetailIcon';\nimport { ICurrency, ILocale } from '@containers/App/model';\nimport { Klarna } from '@containers/ProductDetailContainer/ProductDetail/ProductBaseInfo/Klarna';\nimport { withProviders } from '@context/contextConfig';\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\nimport { Watchdog } from '@sharedComponents/Watchdog';\nimport { trackWatchdogClick } from '@sharedComponents/Watchdog/tracking';\nimport { watchdogMessages } from '@sharedComponents/Watchdog/watchdogMessages';\n\nimport { IVariantsProps } from '../../model';\nimport { useDisplayType } from '../../utils';\nimport { useNewPdDesignEnabled } from '../hooks/useNewPdDesignEnabled';\nimport { IModifaceEffectVariants } from '../ModiFaceModal/model';\n\nimport { AddToCart } from './AddToCart';\nimport { BellowTheLine } from './BellowTheLine';\nimport ConditionalFreeDelivery from './ConditionalFreeDelivery/loadable';\nimport {\n EngravingTryItFirstProvider,\n useEngravingTryItFirstContext,\n} from './context/EngravingTryItFirst';\nimport { DeliveryTime, DeliveriesDisplayMode } from './DeliveryTime';\nimport { Engraving } from './Engraving';\nimport { FreeGiftPackaging } from './FreeGiftPackaging';\nimport { Gift } from './Gift';\nimport { useTryItFirstCampaigns } from './hooks/useTryItFirstCampaigns';\nimport addToCartTryItFirstMutation from './queries/addToCartTryFirst.graphql';\nimport { SelectedVariant } from './SelectedVariant';\nimport Shadefinder from './Shadefinder';\nimport {\n Container,\n ButtonsWrapper,\n StyledWatchdogButton,\n WatchdogWrapper,\n} from './styled';\nimport { trackTryItFirstAddToCart } from './tracking';\nimport { TryItFirst } from './TryItFirst';\nimport { shouldRenderTagDiscount } from './utils';\nimport { Variants } from './Variants';\nimport { VariantsInSelectbox } from './VariantsInSelectBox';\nimport { VoucherDiscountMaster } from './VoucherDiscount';\n\nexport interface IProductBaseInfoProps {\n selectedVariant: VariantFragmentFragment;\n product: GetProductViewQuery['productDetailByMasterId'][number];\n variants: VariantFragmentFragment[];\n currency: ICurrency;\n locale: ILocale;\n brand: string;\n imageDomainPath: string;\n variantName: React.ReactNode;\n deliveriesDisplayMode?: DeliveriesDisplayMode;\n modifaceVariants: IModifaceEffectVariants;\n engravingAvailable: AdditionalServicesAvailability;\n tryItFirstAvailable: AdditionalServicesAvailability;\n giftAvailable: boolean;\n shadefinderAvailable: boolean;\n}\n\nconst displayTypesCommonRender = [\n VariantDisplayType.Tiles,\n VariantDisplayType.Thumbnail,\n VariantDisplayType.ColorPicker,\n VariantDisplayType.ShadesDrawer,\n];\n\n// sorry, don't know how to translate\nconst POCATENCNI_KOJENECKA_MLEKA_TYPE = 68174;\nfunction isNotInfantFormula(selectedVariant: VariantFragmentFragment) {\n return !selectedVariant.navigationValues.includes(\n POCATENCNI_KOJENECKA_MLEKA_TYPE\n );\n}\n\nconst ProductBaseInfoComponent: React.FC = ({\n selectedVariant,\n currency,\n product,\n variants,\n locale,\n brand,\n variantName,\n deliveriesDisplayMode,\n modifaceVariants,\n engravingAvailable,\n tryItFirstAvailable,\n giftAvailable,\n shadefinderAvailable,\n}) => {\n const {\n shadefinderEnabled,\n klarnaNushopId,\n conditionalVoucherDiscount: conditionalVoucherDiscountEnabled,\n } = useFeatureFlags();\n const newDesign = useNewPdDesignEnabled();\n\n const [tryItFirstAddToCart] = useMutation<\n AddToCartTryFirstMutation,\n AddToCartTryFirstMutationVariables\n >(addToCartTryItFirstMutation, {\n refetchQueries: ['getServicesIncluded'],\n onCompleted: () => {\n trackTryItFirstAddToCart(selectedVariant.productCode);\n },\n });\n\n const {\n state: { withTryItFirst },\n actions: { clear },\n } = useEngravingTryItFirstContext();\n\n React.useEffect(() => {\n clear();\n }, [selectedVariant.id, clear]);\n\n const tryItFirstCampaigns = useTryItFirstCampaigns(product.campaigns);\n\n const handleAddTryItFirst = React.useCallback(async () => {\n const tryItFirstCampaignForSelectedProduct = tryItFirstCampaigns.find(\n (campaign) => campaign.productId === selectedVariant.id\n );\n\n if (withTryItFirst && tryItFirstCampaignForSelectedProduct) {\n await tryItFirstAddToCart({\n variables: {\n productCode: selectedVariant.productCode,\n productId: selectedVariant.id,\n tryItFirstId: tryItFirstCampaignForSelectedProduct.campaignId,\n },\n });\n }\n\n clear();\n }, [\n withTryItFirst,\n tryItFirstCampaigns,\n selectedVariant,\n tryItFirstAddToCart,\n clear,\n ]);\n\n const variantsLen = variants.length;\n\n const displayType = useDisplayType(product);\n\n const renderTagDiscount = shouldRenderTagDiscount(variants);\n\n const inStock = selectedVariant.stockAvailability.code !== IStock.outOfStock;\n const { unit, orderUnit, campaigns, deliveries } = product;\n\n const commonVariantsProps: IVariantsProps = {\n selectedId: selectedVariant.id,\n selectedVariant,\n variants,\n unit,\n locale,\n currency,\n };\n\n const shouldRenderTryItFirst = React.useMemo(\n () =>\n tryItFirstCampaigns.find(\n (campaign) => campaign.productId === selectedVariant.id\n ),\n [tryItFirstCampaigns, selectedVariant]\n );\n\n const conditionalVoucherDiscount = conditionalVoucherDiscountEnabled\n ? selectedVariant.attributes.ConditionalVoucherDiscount\n : null;\n const voucherDiscount =\n selectedVariant.attributes.VoucherDiscount || conditionalVoucherDiscount;\n const conditionalFreeDelivery =\n selectedVariant.attributes.ConditionalFreeDelivery;\n\n return (\n \n \n {displayType === VariantDisplayType.Select && variantsLen > 1 && (\n <>\n \n {voucherDiscount && (\n \n )}\n {conditionalFreeDelivery && (\n \n )}\n \n )}\n\n {(displayTypesCommonRender.includes(displayType) ||\n (displayType === VariantDisplayType.Select && variantsLen === 1)) && (\n <>\n \n {voucherDiscount && (\n \n )}\n\n {conditionalFreeDelivery && (\n \n )}\n\n \n {shadefinderEnabled && shadefinderAvailable && (\n \n )}\n \n\n \n \n )}\n\n \n \n \n\n \n \n \n \n trackWatchdogClick(product, selectedVariant)}\n >\n \n \n \n \n \n\n \n\n {klarnaNushopId ? (\n \n ) : null}\n\n {selectedVariant.engraving?.allowed && (\n \n )}\n\n {shouldRenderTryItFirst && (\n \n )}\n\n \n \n \n\n \n \n \n\n {inStock && (\n \n )}\n \n \n );\n};\n\nexport const ProductBaseInfo = withProviders(\n EngravingTryItFirstProvider\n)(ProductBaseInfoComponent);\n","import * as React from 'react';\n\nimport styled, { css } from 'styled-components';\n\nimport { breakpoints } from '@notino/react-styleguide';\n\nconst Placeholder = styled.div<{ newDesign?: boolean }>`\n ${({ newDesign }) => css`\n height: ${newDesign\n ? '80px'\n : '100px'}; // this height will be adjusted by ResizeObserver based on Header height\n @media (min-width: ${newDesign ? breakpoints.lg : breakpoints.md}) {\n display: none;\n }\n `}\n`;\n\ninterface IProps {\n newDesign: boolean;\n headerContainerEl: HTMLDivElement;\n}\n\nconst createObserver = (placeholderEl: HTMLDivElement) =>\n new ResizeObserver((entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n if (entry.borderBoxSize) {\n // Firefox implements `borderBoxSize` as a single content rect, rather than an array\n const borderBoxSize: ResizeObserverSize = Array.isArray(\n entry.borderBoxSize\n )\n ? entry.borderBoxSize[0]\n : entry.borderBoxSize;\n\n placeholderEl.style.height = `${borderBoxSize.blockSize}px`;\n }\n }\n });\n\nconst MobileHeaderPlaceholder = ({ newDesign, headerContainerEl }: IProps) => {\n const placeholderRef = React.useRef();\n\n React.useEffect(() => {\n if (!placeholderRef.current || !headerContainerEl) {\n return;\n }\n const observer = createObserver(placeholderRef.current);\n observer.observe(headerContainerEl);\n return () => observer.disconnect();\n }, [headerContainerEl]);\n\n return ;\n};\n\nexport default MobileHeaderPlaceholder;\n","import styled from 'styled-components';\n\nimport { breakpoints } from '@notino/react-styleguide';\n\nexport const Background = styled.a`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n width: 100%;\n padding: 0.25rem 0;\n\n background: black;\n`;\n\n// prettier ignore is needed cuz otherwise prettier breaks into three lines and styled components can't read other styles\nexport const LogoWrapper = styled.div`\n /* prettier-ignore */\n width: calc(100% + 2rem); // 2rem because when fragment is rendered with layout it has padding 16px for X axis\n left: -1rem;\n position: relative;\n margin-bottom: 0.5rem;\n\n @media (min-width: ${breakpoints.lg}) {\n left: 0;\n width: 100%;\n margin-bottom: 0;\n }\n`;\n\nexport const Spacer = styled.div`\n display: none;\n height: 2rem;\n @media (min-width: ${breakpoints.md}) {\n display: block;\n }\n`;\n","import * as React from 'react';\n\nimport DiorLogo from './Logos/Dior.svg';\n\nconst BRANDS = {\n DIOR: '150',\n};\n\nconst IMAGE_ALT = 'Brand logo';\nexport const getLogoForBrand = (brandId: string) => {\n if (brandId === BRANDS.DIOR) {\n return {IMAGE_ALT};\n }\n return null;\n};\n\nexport const isLogoForBrandAvailable = (brandId: string) => {\n return brandId === BRANDS.DIOR;\n};\n","import * as React from 'react';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\n\nimport { Background, LogoWrapper, Spacer } from './styled';\nimport { getLogoForBrand } from './supported-brands';\n\ninterface IBrandInfoProps {\n brandId: string;\n brandUrl: string;\n}\n\nexport const BrandLogo: React.FC = ({ brandId, brandUrl }) => {\n const newPdDesign = useNewPdDesignEnabled();\n const logo = getLogoForBrand(brandId);\n\n if (!logo) {\n return newPdDesign ? null : ;\n }\n\n return (\n \n {logo}\n \n );\n};\n","import * as React from 'react';\nimport { JsonLd } from 'react-schemaorg';\n\nimport { Product } from 'schema-dts';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\n\nimport { useSsrProductUrl } from '../hooks/useSsrProductUrl';\n\nimport { getImagesSrc, getVariantOffer, getAggregateRating } from './utils';\n\ninterface IProductJsonLdProps {\n product: GetProductViewQuery['productDetailByMasterId'][number];\n selectedVariant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number];\n imageDomainPath: string;\n}\n\nexport const ProductJsonLd = React.memo(\n ({ product, selectedVariant, imageDomainPath }: IProductJsonLdProps) => {\n const { url } = useSsrProductUrl(product);\n const { bazaarvoiceIntegrationPd, hasJsonLdOfferVoucherPrice } =\n useFeatureFlags();\n\n return (\n \n item={{\n '@context': 'https://schema.org',\n '@type': 'Product',\n '@id': url,\n sku: product.code,\n gtin13: selectedVariant.eanCode,\n category: product.annotation,\n name: `${product.brand} ${product.collection}`,\n description: product.description,\n brand: {\n '@type': 'Brand',\n name: product.brand,\n },\n image: getImagesSrc(selectedVariant, imageDomainPath),\n offers: product.variants.map((variantItem) =>\n getVariantOffer(\n variantItem,\n product,\n imageDomainPath,\n hasJsonLdOfferVoucherPrice\n )\n ),\n ...(product.reviewOverview &&\n product.reviewOverview.count > 0 &&\n !bazaarvoiceIntegrationPd && {\n aggregateRating: getAggregateRating(product.reviewOverview),\n }),\n }}\n />\n );\n }\n);\n","import { css } from 'styled-components';\n\nimport {\n styled,\n StyledDermoIcon,\n RecomendedByDermatologistsIcon as SgRecomendedByDermatologistsIcon,\n breakpoints,\n theme,\n PowerOfBeautyIcon,\n SummerBlackFridayIcon,\n} from '@notino/react-styleguide';\n\nconst dermoIconCss = css`\n width: 3.5rem;\n height: 3.5rem;\n\n ${theme.typography.labelSmall400};\n font-weight: 500;\n\n @media (min-width: ${breakpoints.md}) {\n width: 4rem;\n height: 4rem;\n }\n`;\n\nexport const RecomendedByDermatologistsIcon = styled(\n SgRecomendedByDermatologistsIcon\n)`\n ${dermoIconCss}\n`;\n\nexport const DermoIcon = styled(StyledDermoIcon)`\n ${dermoIconCss}\n`;\n\nexport const StyledPowerOfBeautyIcon = styled(PowerOfBeautyIcon)`\n width: 3.8rem;\n height: 2.5rem;\n\n @media (min-width: ${breakpoints.md}) {\n width: 4.5rem;\n height: 3rem;\n }\n`;\nexport const StyledSummerBlackFridayIcon = styled(SummerBlackFridayIcon)`\n width: 3.75rem;\n height: 3.125rem;\n\n line-height: 0.9125rem;\n font-size: 0.725rem;\n\n @media (min-width: ${breakpoints.md}) {\n width: 4.063rem;\n height: 3.75rem;\n }\n`;\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\nimport { useApolloClientHeaders } from '@hooks/useApolloClientHeaders';\n\nimport { messages } from '../ProductBaseInfo/VoucherDiscount/VoucherDiscountInfo/messages';\n\nimport {\n DermoIcon,\n RecomendedByDermatologistsIcon,\n StyledPowerOfBeautyIcon,\n StyledSummerBlackFridayIcon,\n} from './styled';\n\ninterface IProductPictogramProps {\n attributes: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]['attributes'];\n}\n\nexport const ProductPictogram: React.FC = ({\n attributes,\n}) => {\n const { newDermoIcon } = useFeatureFlags();\n const { formatMessage } = useIntl();\n const isFranceShop = useApolloClientHeaders().shopId === 'notino.fr';\n\n const shouldShowSummerBlackFriday =\n attributes.VoucherDiscount?.tags.includes('summerblackfriday');\n\n return (\n <>\n {shouldShowSummerBlackFriday && (\n \n )}\n\n {attributes?.LorealLabel && (\n \n )}\n\n {attributes?.Dermo && newDermoIcon && (\n \n )}\n\n {attributes?.Dermo && !newDermoIcon && (\n \n )}\n \n );\n};\n","import { ApolloError, useQuery } from '@apollo/client';\n\nimport {\n GetLivestreamsQueryVariables,\n GetLivestreamsQuery,\n} from '@notino/shared/definitions/types';\n\nimport getLivestreamsQuery from '../queries/getLivestreams.graphql';\n\nexport const useLivestreams = ({\n enabled,\n productCode,\n}: {\n enabled: boolean;\n productCode: string;\n}): { data: GetLivestreamsQuery; error: ApolloError } => {\n const { data, error } = useQuery<\n GetLivestreamsQuery,\n GetLivestreamsQueryVariables\n >(getLivestreamsQuery, {\n skip: !enabled,\n ssr: false,\n variables: {\n variables: {\n productCode: productCode,\n },\n },\n });\n\n return { data, error };\n};\n","import { MutableRefObject } from 'react';\n\ntype Ref = MutableRefObject | ((instance: T | null | undefined) => void);\n\nexport const assignRefs =\n (...refs: Array>) =>\n (node: T | null | undefined) =>\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n });\n","import * as React from 'react';\nimport { useLocation } from 'react-router';\n\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\n\nexport const useOpenBVModal = (\n containerRef: React.MutableRefObject\n) => {\n const location = useLocation();\n const searchParams = new URLSearchParams(location.search);\n const { bazaarvoiceIntegrationPd } = useFeatureFlags();\n\n React.useEffect(() => {\n const currentRef = containerRef.current;\n\n const onOpenModal = () => {\n const mailQuery = searchParams.get('mail');\n\n if (mailQuery === '1' && bazaarvoiceIntegrationPd) {\n const firstReviewButton = currentRef.querySelector('#first-to-write');\n const moreToWriteButton = currentRef.querySelector('.bv-write-review');\n\n if (firstReviewButton) {\n (firstReviewButton as HTMLButtonElement).click();\n return;\n }\n\n if (moreToWriteButton) {\n (moreToWriteButton as HTMLButtonElement).click();\n return;\n }\n }\n };\n\n if (currentRef) {\n currentRef.addEventListener('DOMNodeInserted', onOpenModal);\n\n return () => {\n currentRef.removeEventListener('DOMNodeInserted', onOpenModal);\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nimport { CommonContainer, CommonMarginWrapper } from '../../styled';\n\nexport const Container = styled(CommonContainer)<{ newDesign: boolean }>`\n ${({ newDesign }) =>\n newDesign &&\n css`\n @media (min-width: ${breakpoints.lg}) {\n padding-right: 2rem;\n }\n `}\n`;\n\nexport const MarginWrapper = styled(CommonMarginWrapper)``;\n\nexport const Description = styled.div<{ newPdDesignEnabled: boolean }>`\n display: block;\n\n p {\n margin: 0 0 1.3em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n width: 100%;\n color: ${theme.palette.neutralDarker};\n ${theme.typography.bodyRegular};\n\n @media (min-width: ${breakpoints.lg}) {\n ${theme.typography.bodyLarge}\n }\n `\n : css`\n font-size: 0.9rem;\n margin-top: 1rem;\n\n p {\n line-height: 1.5;\n }\n\n @media (min-width: ${breakpoints.md}) {\n display: block;\n column-count: 2;\n column-gap: 30px;\n column-rule: 0 solid transparent;\n }\n `}\n`;\n","import * as React from 'react';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\n\nimport { Container, Description, MarginWrapper } from './styled';\n\nexport interface IAboutBrandProps {\n description?: string;\n}\n\nexport const AboutBrand: React.FC = React.memo(\n ({ description }) => {\n const newPdDesignEnabled = useNewPdDesignEnabled();\n\n if (!description) {\n return null;\n }\n return (\n \n \n \n \n \n );\n }\n);\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints } from '@notino/react-styleguide';\n\nimport { IExpandableText } from './model';\n\nexport const ExpandableTextWrapper = styled.div<\n Pick & { newDesign: boolean }\n>`\n height: ${({ shouldShowFullText }) =>\n shouldShowFullText ? 'auto' : '5.5rem'};\n overflow: ${({ shouldShowFullText }) =>\n shouldShowFullText ? 'auto' : 'hidden'};\n\n position: relative;\n\n @media (min-width: ${breakpoints.lg}) {\n height: auto;\n overflow: auto;\n }\n\n ${({ newDesign }) =>\n newDesign &&\n css`\n @media (min-width: ${breakpoints.lg}) {\n padding-right: 2rem;\n }\n `}\n`;\n\nexport const Gradient = styled.div`\n position: absolute;\n bottom: 0;\n width: 100%;\n height: 100%;\n background: rgb(255, 255, 255);\n background: linear-gradient(\n 0deg,\n rgba(255, 255, 255, 1) 0%,\n rgba(0, 0, 0, 0) 100%\n );\n\n @media (min-width: ${breakpoints.lg}) {\n display: none;\n }\n`;\n\nexport const ExpandableTextButton = styled.button<{\n newPdDesignEnabled: boolean;\n}>`\n background: none;\n border: none;\n text-decoration: underline;\n cursor: pointer;\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n margin-bottom: -1rem;\n padding-top: 1.5rem;\n `\n : 'padding: 1.5rem 0rem'};\n @media (min-width: ${breakpoints.lg}) {\n display: none;\n }\n`;\n","import * as React from 'react';\n\nimport { ReactFCC } from '@notino/react-styleguide';\n\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport { IExpandableText } from './model';\nimport {\n Gradient,\n ExpandableTextWrapper,\n ExpandableTextButton,\n} from './styled';\n\nexport const ExpandableText: ReactFCC = ({\n shouldShowFullText = false,\n buttonText,\n onClick,\n newPdDesignEnabled,\n children,\n}) => {\n const newDesign = useNewPdDesignEnabled();\n return (\n <>\n \n {children}\n\n {!shouldShowFullText && (\n \n )}\n \n\n {!shouldShowFullText && (\n \n {buttonText}\n \n )}\n \n );\n};\n","import * as Sentry from '@sentry/browser';\n\nimport { EPictograms } from './model';\n\nexport const getPictogramIcon = (pictogram: EPictograms) => {\n try {\n return require(`./icons/${pictogram}.svg`);\n } catch (error) {\n Sentry.captureMessage(`Wrong pictogram path, pictogram: ${pictogram}`);\n }\n};\n","export enum EPictograms {\n VEGAN = 'IsVegan',\n BIO = 'IsBio',\n NATURAL = 'IsNatural',\n SUSTAINABLE = 'IsSustainable',\n TRAVEL_PACKING = 'IsTravelPacking',\n SPF = 'WithSpf',\n WITHOUT_PERFUME = 'WithoutPerfume',\n WITHOUT_SILICONE = 'WithoutSilicone',\n WITHOUT_ALCOHOL = 'WithoutAlcohol',\n WITHOUT_ALUMINIUM = 'WithoutAluminium',\n WITHOUT_SULFATE = 'WithoutSulfate',\n}\n","import { defineMessages } from 'react-intl';\n\nimport { EPictograms } from './model';\n\nexport const pictogramTitles = defineMessages({\n [EPictograms.BIO]: {\n id: 'pd.about.pictogram.IsBio',\n defaultMessage: 'Bio',\n },\n [EPictograms.NATURAL]: {\n id: 'pd.about.pictogram.IsNatural',\n defaultMessage: 'Přírodní',\n },\n [EPictograms.SPF]: {\n id: 'pd.about.pictogram.WithSpf',\n defaultMessage: 'SPF',\n },\n [EPictograms.SUSTAINABLE]: {\n id: 'pd.about.pictogram.IsSustainable',\n defaultMessage: 'Udržitelné',\n },\n [EPictograms.TRAVEL_PACKING]: {\n id: 'pd.about.pictogram.IsTravelPacking',\n defaultMessage: 'Cestovní balení',\n },\n [EPictograms.VEGAN]: {\n id: 'pd.about.pictogram.IsVegan',\n defaultMessage: 'Vegan',\n },\n [EPictograms.WITHOUT_ALCOHOL]: {\n id: 'pd.about.pictogram.WithoutAlcohol',\n defaultMessage: 'Bez alkoholu',\n },\n [EPictograms.WITHOUT_ALUMINIUM]: {\n id: 'pd.about.pictogram.WithoutAluminium',\n defaultMessage: 'Bez hliníku',\n },\n [EPictograms.WITHOUT_PERFUME]: {\n id: 'pd.about.pictogram.WithoutPerfume',\n defaultMessage: 'Bez parfemace',\n },\n [EPictograms.WITHOUT_SILICONE]: {\n id: 'pd.about.pictogram.WithoutSilicone',\n defaultMessage: 'Bez silikonů',\n },\n [EPictograms.WITHOUT_SULFATE]: {\n id: 'pd.about.pictogram.WithoutSulfate',\n defaultMessage: 'Bez sulfátů',\n },\n});\n\nexport const pictogramTooltip = defineMessages({\n [EPictograms.BIO]: {\n id: 'pd.about.pictogram.IsBio.tooltip',\n defaultMessage: 'Produkt má certifikaci o bio kvalitě.',\n },\n [EPictograms.NATURAL]: {\n id: 'pd.about.pictogram.IsNatural.tooltip',\n defaultMessage: 'Obsahuje alespoň 85 % přírodních složek.',\n },\n [EPictograms.SPF]: {\n id: 'pd.about.pictogram.WithSpf.tooltip',\n defaultMessage: 'Produkt chrání před ultrafialovým zářením.',\n },\n [EPictograms.SUSTAINABLE]: {\n id: 'pd.about.pictogram.IsSustainable.tooltip',\n defaultMessage: 'Produkt je šetrný k životnímu prostředí.',\n },\n [EPictograms.TRAVEL_PACKING]: {\n id: 'pd.about.pictogram.IsTravelPacking.tooltip',\n defaultMessage: 'Praktická velikost vhodná na cesty.',\n },\n [EPictograms.VEGAN]: {\n id: 'pd.about.pictogram.IsVegan.tooltip',\n defaultMessage: 'Neobsahuje žádné ingredience živočišného původu.',\n },\n [EPictograms.WITHOUT_ALCOHOL]: {\n id: 'pd.about.pictogram.WithoutAlcohol.tooltip',\n defaultMessage: 'Ve složení nenajdete alkohol.',\n },\n [EPictograms.WITHOUT_ALUMINIUM]: {\n id: 'pd.about.pictogram.WithoutAluminium.tooltip',\n defaultMessage: 'Neobsahuje žádné deriváty hliníku.',\n },\n [EPictograms.WITHOUT_PERFUME]: {\n id: 'pd.about.pictogram.WithoutPerfume.tooltip',\n defaultMessage: 'Produkt je zcela bez vůně.',\n },\n [EPictograms.WITHOUT_SILICONE]: {\n id: 'pd.about.pictogram.WithoutSilicone.tooltip',\n defaultMessage: 'Neobsahuje vůbec žádné silikony.',\n },\n [EPictograms.WITHOUT_SULFATE]: {\n id: 'pd.about.pictogram.WithoutSulfate.tooltip',\n defaultMessage: 'Neobsahuje sulfáty.',\n },\n});\n\nexport const pictogramMoreInfoLinkText = {\n id: 'pd.about.pictogram.link.text',\n defaultMessage: 'Více informací',\n};\n\nexport const pictogramMoreInfoPathname = {\n id: 'pd.about.pictogram.link.pathname',\n defaultMessage: 'null',\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, Link } from '@notino/react-styleguide';\n\nexport const PictogramsWrapper = styled.div`\n margin-bottom: 2rem;\n margin-top: 0.5rem;\n\n display: grid;\n grid-gap: 2rem;\n grid-template-columns: 1fr 1fr;\n\n @media (min-width: ${breakpoints.lg}) {\n grid-template-columns: 1fr 1fr 1fr 1fr;\n }\n @media (min-width: ${breakpoints.md}) {\n margin-top: -0.25rem;\n margin-bottom: 2.5rem;\n }\n`;\n\nexport const PictogramImage = styled.img`\n width: 3rem;\n`;\n\nexport const PictogramItemWrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n`;\n\nexport const TooltipContent = styled.div<{ isDesktop: boolean }>`\n padding: 0.3rem;\n\n ${({ isDesktop }) =>\n !isDesktop &&\n css`\n min-width: 10rem;\n text-align: center;\n `}\n`;\n\nexport const MoreInfoLink = styled(Link)`\n display: block;\n margin-top: 0.25rem;\n text-decoration: underline;\n cursor: pointer;\n`;\n","import * as React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport { breakpoints, Tooltip, TooltipModel } from '@notino/react-styleguide';\n\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { useIsDesktop } from '@utils/helpers';\n\nimport { getPictogramIcon } from './constants';\nimport {\n pictogramMoreInfoPathname,\n pictogramMoreInfoLinkText,\n pictogramTitles,\n pictogramTooltip,\n} from './messages';\nimport { EPictograms } from './model';\nimport {\n MoreInfoLink,\n PictogramImage,\n PictogramItemWrapper,\n TooltipContent,\n} from './styled';\nimport {\n trackOnClickMoreInfoTooltip,\n trackPictograms,\n} from './trackPictograms';\n\ninterface IPictogramProps {\n pictogram: EPictograms;\n index: number;\n}\n\nexport const Pictogram = ({ pictogram, index }: IPictogramProps) => {\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n const moreInfoPathname = formatMessage(pictogramMoreInfoPathname);\n\n const { getTimeFromInit } = useTrackingContext();\n\n if (!pictogramTooltip[pictogram] || !pictogramTitles[pictogram]) {\n return null;\n }\n\n const onShowTooltip = () => {\n trackPictograms(getTimeFromInit(), pictogram, isDesktop);\n };\n\n const onLinkClick = () => {\n trackOnClickMoreInfoTooltip(getTimeFromInit(), pictogram);\n };\n // TODO: ugly hack to display tooltip on mobile, fix after fixing tooltip behavior\n const position =\n !isDesktop && index % 2 !== 0\n ? TooltipModel.Position.topCenter\n : TooltipModel.Position.topAutomatic;\n\n return (\n \n \n \n {moreInfoPathname !== 'null' && (\n \n {formatMessage(pictogramMoreInfoLinkText)}\n \n )}\n \n }\n position={position}\n recalculateOnResize={true}\n alignDesktop={true}\n wrapText={!isDesktop}\n breakpointToCenter={breakpoints.xl}\n onShow={onShowTooltip}\n >\n \n \n \n \n );\n};\n","import { dispatchTrackingEvent } from '@context/tracking/utils';\n\nimport { EPictograms } from './model';\n\nexport const trackPictograms = (\n timing: number,\n pictogramTitle: EPictograms,\n isDesktop?: boolean\n) => {\n return dispatchTrackingEvent({\n event: 'element_click',\n _clear: true,\n element: {\n timing,\n interaction: isDesktop ? 'hover' : 'click',\n type: 'pictogram',\n name: pictogramTitle,\n action: isDesktop ? 'hover_on_pictogram' : 'click_on_pictogram',\n },\n });\n};\n\nexport const trackOnClickMoreInfoTooltip = (\n timing: number,\n pictogramTitle: EPictograms\n) => {\n return dispatchTrackingEvent({\n event: 'element_click',\n _clear: true,\n element: {\n timing,\n interaction: 'click',\n type: 'tooltip',\n name: `pictogram_${pictogramTitle}`,\n action: 'click_on_element',\n },\n });\n};\n","import React from 'react';\n\nimport { EPictograms } from './model';\nimport { Pictogram } from './Pictogram';\nimport { PictogramsWrapper } from './styled';\n\ninterface IPictogramsProps {\n pictograms: EPictograms[];\n}\n\nexport const Pictograms = ({ pictograms }: IPictogramsProps) => {\n return (\n \n {pictograms.map((pictogram, index) => (\n \n ))}\n \n );\n};\n","export const TRACKING_ATTRIBUTES = {\n description: 'Description PD',\n brand: 'Brand PD',\n reviews: 'Reviews PD',\n richContent: 'Rich Content PD',\n composition: 'Composition PD',\n other: 'Other PD',\n};\n\nexport const TAB_IDENTIFIERS = {\n description: 'description-tab',\n brand: 'brand-tab',\n reviews: 'reviews-tab',\n richContent: 'rich-content-tab',\n composition: 'composition-tab',\n livestreamsTab: 'livestreams-tab',\n other: 'other-tab',\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, Heading, Link, theme } from '@notino/react-styleguide';\n\nimport { TooltipContent } from '@components/Tooltip/Content';\n\nimport { CommonContainer, CommonMarginWrapper } from '../../styled';\n\nexport const Container = styled(CommonContainer)<{\n newPdDesignEnabled: boolean;\n}>`\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n flex-wrap: wrap;\n @media (min-width: ${breakpoints.lg}) {\n flex-flow: row;\n }\n p,\n ul {\n color: ${theme.palette.neutralDarker};\n strong {\n color: ${theme.palette.basic};\n }\n }\n `\n : css`\n flex-wrap: wrap;\n `}\n`;\n\ninterface IFullWidth {\n fullWidth: boolean;\n newPdDesignEnabled?: boolean;\n}\n\nexport const MarginWrapper = styled(CommonMarginWrapper)`\n ${({ newPdDesignEnabled, fullWidth }: IFullWidth) =>\n !newPdDesignEnabled &&\n css`\n @media (min-width: ${breakpoints.md}) {\n flex-basis: ${fullWidth ? '100%' : '66%'};\n width: ${fullWidth ? '100%' : '66%'};\n padding-right: ${fullWidth ? '0' : '2rem'};\n }\n `}\n\n @media screen and (-ms-high-contrast: active),\n (-ms-high-contrast: none) and (min-width: ${breakpoints.md}) {\n flex-basis: ${(props: IFullWidth) =>\n props.fullWidth ? '100%' : 'calc(66% - 2rem)'};\n width: ${(props: IFullWidth) =>\n props.fullWidth ? '100%' : 'calc(66% - 2rem)'};\n }\n`;\n\nexport const CharTitle = styled(Heading.H2)<{ newPdDesignEnabled: boolean }>`\n text-align: left !important;\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n cursor: pointer;\n flex-basis: 100%;\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n margin: 0;\n margin-bottom: 1rem;\n ${theme.typography.titleMedium}\n @media (min-width: ${breakpoints.lg}) {\n display: none;\n }\n `\n : css`\n margin: 0.625rem 0;\n font-size: 1.125rem;\n font-weight: bold;\n @media (min-width: ${breakpoints.md}) {\n display: none;\n }\n `}\n`;\n\nexport const Description = styled.div<{ newDesign: boolean }>`\n margin-bottom: 2.5rem;\n\n ${({ newDesign }) =>\n newDesign &&\n css`\n @media (min-width: ${breakpoints.lg}) {\n margin-bottom: 1rem;\n }\n `}\n`;\n\nexport const SectionTitle = styled.strong<{ newPdDesignEnabled: boolean }>`\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n margin-top: 2.5rem;\n font-size: 1.25rem;\n font-weight: 500;\n `\n : css`\n font-size: 0.9rem;\n line-height: 1.5;\n\n font-weight: 700;\n\n @media (min-width: ${breakpoints.md}) {\n font-size: 1.1rem;\n }\n `}\n`;\n\nexport const CharactericticsWrapper = styled.div`\n display: block;\n font-size: 0.9rem;\n flex-basis: 100%;\n\n margin: 0.5rem 0 1.5rem;\n\n @media (min-width: ${breakpoints.md}) {\n margin: 0;\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n flex-basis: 100%;\n @media (min-width: ${breakpoints.lg}) {\n flex-basis: ${(props: IFullWidth) =>\n props.fullWidth ? '100%' : '35%'};\n }\n\n @media (min-width: ${breakpoints.xl}) {\n flex-basis: ${(props: IFullWidth) =>\n props.fullWidth ? '100%' : '30%'};\n }\n `\n : css`\n flex-basis: ${(props: IFullWidth) =>\n props.fullWidth ? '100%' : '34%'};\n `}\n\n order: 2;\n }\n`;\n\ninterface INameProps {\n isTooltip?: boolean;\n newPdDesignEnabled?: boolean;\n}\n\nconst NameStyles = css`\n font-weight: bold;\n text-decoration: none;\n color: ${(props) => props.theme.palette.basic};\n border-bottom: ${(props: INameProps) =>\n props.isTooltip ? '1px dashed' : 'none'};\n border-bottom-color: ${(props) => props.theme.palette.basic};\n display: inline-block;\n width: fit-content;\n`;\n\nexport const CharacteristicsTable = styled.table<{\n newPdDesignEnabled?: boolean;\n}>`\n width: 100%;\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n border-spacing: 0;\n border: solid 1px ${theme.palette.neutralLight};\n border-radius: 0.25rem;\n font-family: 'Roboto';\n\n tr {\n font-size: 0.9rem;\n\n &:first-of-type {\n ${theme.typography.labelRegular}\n }\n\n &:nth-child(odd) {\n background-color: ${theme.palette.neutralLighter};\n }\n }\n\n td {\n padding: 0.75rem 0.5rem;\n width: 50%;\n text-align: left;\n\n &:first-child {\n color: ${theme.palette.neutralDarker};\n text-align: left;\n padding-left: 1rem;\n }\n\n &:last-child {\n padding-right: 1rem;\n }\n }\n `\n : css`\n display: flex;\n flex-wrap: wrap;\n\n tr:not(:first-child) {\n margin-top: 1.25rem;\n }\n `};\n`;\n\nexport const TooltipContentWrapper = styled(TooltipContent)`\n font-weight: 400 !important;\n`;\n\nexport const CharacteristicName = styled.td`\n ${NameStyles}\n\n div:first-child {\n cursor: ${(props: INameProps) => (props.isTooltip ? 'help' : 'default')};\n }\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled &&\n css`\n border: none;\n display: table-cell;\n ${theme.typography.labelRegular400};\n `}\n padding: 0;\n`;\n\nexport const CharacteristicValue = styled.td<{ newDesign: boolean }>`\n padding: 0;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n ${theme.typography.labelRegular400}\n `\n : css`\n font-size: 0.9rem;\n `}\n`;\n\nexport const CharacteristicRow = styled.tr`\n ${({ newPdDesignEnabled }) =>\n !newPdDesignEnabled &&\n css`\n display: block;\n width: 100%;\n\n @media (min-width: ${breakpoints.md}) {\n width: 100%;\n padding-right: 2.5rem;\n }\n `}\n`;\n\nexport const CharacteristicsTableWrapper = styled.div`\n margin-bottom: 3rem;\n width: 100%;\n`;\n\nexport const HairSensitivityTestLink = styled(Link)`\n display: block;\n margin-top: 1.3rem;\n\n font-size: 0.9rem;\n line-height: 1.5;\n text-decoration: underline;\n`;\n","import * as React from 'react';\n\nimport { Tooltip, TooltipModel, breakpoints } from '@notino/react-styleguide';\n\nimport { ICharacteristic } from '@containers/ProductListing/model';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\n\nimport {\n CharacteristicName,\n CharacteristicRow,\n CharacteristicValue,\n TooltipContentWrapper,\n} from './styled';\n\ninterface IProps {\n item: ICharacteristic;\n fullWidth: boolean;\n}\n\nexport const Characteristic = ({\n item: { name, help, values },\n fullWidth,\n}: IProps) => {\n const newPdDesignEnabled = useNewPdDesignEnabled();\n\n return (\n \n \n {help ? (\n {help}}\n >\n {name}\n \n ) : (\n name\n )}\n \n\n \n {values.join(', ')}\n \n \n );\n};\n","import { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n instructionsForUse: {\n id: 'pd.about.instructionsForUse',\n defaultMessage: 'Návod k použití naleznete ZDE',\n },\n packagingInformation: {\n id: 'pd.about.packagingInformation',\n defaultMessage: 'Příbalovou informaci naleznete ZDE',\n },\n});\n","import styled, { css } from 'styled-components';\n\n// Note: this cannot be

because of bug of unknown reason https://notino.tpondemand.com/entity/272849-uncorrect-displaying-of-dulezita-upozorneni-from\nexport const InstructionsWrapper = styled.div<{ newPdDesignEnabled: boolean }>`\n ${({ newPdDesignEnabled }) =>\n !newPdDesignEnabled &&\n css`\n font-size: 0.9rem;\n `}\n`;\n\nexport const VideoWrapper = styled.div`\n position: relative;\n margin-top: 0.75rem;\n padding-bottom: 56.25%; /* 16:9 */\n height: 0;\n`;\n\nexport const Video = styled.iframe`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n`;\nexport const PdfWrapper = styled.div`\n margin-top: 0.75rem;\n`;\n","import * as React from 'react';\nimport { FormattedMessage, MessageDescriptor } from 'react-intl';\n\nimport {\n InstructionDocumentType,\n GetProductViewQuery,\n} from '@notino/shared/definitions/types';\n\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport { Description } from '../styled';\n\nimport messages from './messages';\nimport { InstructionsWrapper, PdfWrapper } from './styled';\n\ninterface IInstructionsProps {\n pdfLink: string;\n instructions: string;\n instructionDocument: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]['legalInformation']['instructionDocument'];\n}\n\nconst messageMap: Record = {\n InstructionsForUse: messages.instructionsForUse,\n PackagingInformation: messages.packagingInformation,\n};\n\nexport const Instructions: React.FC = ({\n pdfLink,\n instructions,\n instructionDocument,\n}) => {\n const newPdDesignEnabled = useNewPdDesignEnabled();\n const instructionMessage = messageMap[instructionDocument?.type];\n\n return (\n \n {instructions && (\n \n )}\n\n {instructionMessage && (\n \n \n

\n (\n \n {parts}\n \n ),\n }}\n />\n

\n \n \n )}\n\n {!instructionMessage && pdfLink && (\n \n \n \n )}\n \n );\n};\n","import * as React from 'react';\n\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport { InstructionsWrapper, VideoWrapper, Video } from './styled';\n\ninterface IInstructionsProps {\n videoLink: string;\n}\n\nexport const VideoInstructions: React.FC = ({\n videoLink,\n}) => {\n const newPdDesignEnabled = useNewPdDesignEnabled();\n return (\n \n {videoLink && (\n \n \n \n )}\n \n );\n};\n","var l;!function(l){l.titleDisplay=\"titleDisplay\",l.titleLarge=\"titleLarge\",l.titleMedium=\"titleMedium\",l.titleSmall=\"titleSmall\",l.bodyLarge=\"bodyLarge\",l.bodyRegular=\"bodyRegular\",l.bodySmall=\"bodySmall\",l.labelLarge=\"labelLarge\",l.labelLarge400=\"labelLarge400\",l.labelRegular=\"labelRegular\",l.labelRegular400=\"labelRegular400\",l.labelSmall=\"labelSmall\",l.labelSmall400=\"labelSmall400\"}(l||(l={}));export{l as TypographyEnum};\n//# sourceMappingURL=Typography.js.map\n","import t from\"styled-components\";import{theme as e}from\"./theme.js\";var o=t.span.withConfig({displayName:\"styled__StyledDot\",componentId:\"sc-13ygyxb-0\"})([\"display:block;height:100%;&:after{content:'';position:absolute;top:50%;left:0;width:100%;height:0.25rem;margin-top:-0.125rem;background-color:\",\";.slick-active &{background-color:\",\";}}\"],e.palette.neutralLight,e.palette.neutralDark);export{o as S};\n//# sourceMappingURL=styled-16d7458e.js.map\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as r from\"react\";import{S as t}from\"./styled-16d7458e.js\";import\"styled-components\";import\"./theme.js\";var o=function(o){return r.createElement(t,e({},o,{role:\"button\"}))};export{o as Dot};\n//# sourceMappingURL=Dot.js.map\n","import e,{css as i}from\"styled-components\";import{breakpoints as t}from\"./breakpoints.js\";import{CloseIcon as n}from\"./CloseIcon.js\";import{InfoCircleOutlinedIcon as o}from\"./InfoCircleOutlinedIcon.js\";import{theme as r}from\"./theme.js\";import{Text as a}from\"./Text.js\";import{PlayIcon as s}from\"./PlayIcon.js\";import{SkeletonElement as m}from\"./SkeletonElement.js\";var d=e.div.withConfig({displayName:\"styled__DescriptionIconWrapper\",componentId:\"sc-1li7ge0-0\"})([\"position:absolute;cursor:pointer;height:\",\";width:\",\";right:\",\";top:\",\";background:rgba(0,0,0,0.5);border-radius:2.5rem;z-index:2;\",\";@media (min-width:\",\"){height:2.25rem;width:2.25rem;}&:hover{background:rgba(0,0,0,0.8);}\"],(function(e){return e.customThemeConfig.icon.backgroundDimension}),(function(e){return e.customThemeConfig.icon.backgroundDimension}),(function(e){return e.customThemeConfig.icon.backgroundTopRightPosition}),(function(e){return e.customThemeConfig.icon.backgroundTopRightPosition}),(function(e){return e.isLoading&&i([\"display:none;\"])}),t.lg),c=i([\"position:absolute;right:\",\";top:\",\";height:\",\";width:\",\";@media (min-width:\",\"){height:1.25rem;width:1.25rem;top:0.5rem;right:0.5rem;};\"],(function(e){return e.customThemeConfig.icon.topRightPosition}),(function(e){return e.customThemeConfig.icon.topRightPosition}),(function(e){return e.customThemeConfig.icon.dimension}),(function(e){return e.customThemeConfig.icon.dimension}),t.lg),l=e(o).withConfig({displayName:\"styled__LivestreamInfoCircleOutlinedIcon\",componentId:\"sc-1li7ge0-1\"})([\"\",\"\"],c),p=e(n).withConfig({displayName:\"styled__LivestreamCloseIcon\",componentId:\"sc-1li7ge0-2\"})([\"\",\"\"],c),g=e.div.withConfig({displayName:\"styled__LiveIcon\",componentId:\"sc-x05irk-0\"})([\"width:11.5px;height:11.5px;border-radius:50%;animation:pulse 1s infinite cubic-bezier(0.66,0.33,0,1);background-color:red;box-shadow:0 0 0 0 \",\",0 0 0 0 \",\";margin-right:7px;@keyframes pulse{to{box-shadow:0 0 0 2px transparent,0 0 0 4px rgba(227,115,14,0);}}\"],r.palette.primary,r.palette.primary),h=i([\"display:flex;flex-direction:row;align-items:center;padding:0.25rem 0.5rem;gap:0.125rem;height:1.5rem;border-radius:1.5rem;z-index:1;position:absolute;left:1rem;top:1rem;@media (min-width:\",\"){\",\"};\"],t.lg,r.typography.labelSmall),u=e.div.withConfig({displayName:\"styled__LiveIconWrapper\",componentId:\"sc-x05irk-1\"})([\"\",\" background:\",\";padding:0.25rem 0.5rem;justify-content:center;\"],h,r.palette.basicInverse),f=e.div.withConfig({displayName:\"styled__ScheduledStartWrapper\",componentId:\"sc-x05irk-2\"})([\"\",\" justify-content:center;\"],h),y=e(a).withConfig({displayName:\"styled__StyledText\",componentId:\"sc-x05irk-3\"})([\"color:\",\";\"],(function(e){return e.color})),w=e.div.withConfig({displayName:\"styled__BottomContainer\",componentId:\"sc-4atai-0\"})([\"position:absolute;bottom:0;left:0;right:0;top:0;background-size:cover;background-image:\",\";\",\";display:flex;flex-direction:column;justify-content:flex-end;padding:0 0.5rem \",\" 0.5rem;@media (min-width:\",\"){padding:0 1rem 1.5rem 1rem;};\"],(function(e){return e.showDescriptionOverlay&&i([\"linear-gradient(180deg,rgba(0,0,0,0.7) 46.69%,\",\" 87.37%)\"],r.palette.basic)}),(function(e){return e.showDescriptionOverlay&&i([\"border-radius:0.625rem;z-index:1;\"])}),(function(e){return\"\"+e.customThemeConfig.container.mobilePaddingBottom}),t.lg),b=e.div.withConfig({displayName:\"styled__TitleWrapper\",componentId:\"sc-4atai-1\"})([\"display:\",\";flex-direction:column;justify-content:flex-end;@media (min-width:\",\"){display:flex;padding-top:4rem;}\"],(function(e){return e.hideTitle?\"none\":\"flex\"}),t.lg),C=i([\"overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;white-space:pre-wrap;\"]),x=e(a).withConfig({displayName:\"styled__TitleText\",componentId:\"sc-4atai-2\"})([\"\",\" -webkit-line-clamp:3;width:calc(\",\" - \",\"rem);@media (min-width:\",\"){width:calc(\",\" - \",\"rem);\",\"}\"],C,(function(e){return e.customThemeConfig.container.mobileWidth}),2,t.lg,(function(e){return e.customThemeConfig.container.width}),2,r.typography.labelLarge),I=e(a).withConfig({displayName:\"styled__DescriptionText\",componentId:\"sc-4atai-3\"})([\"\",\";left:0;top:0;right:0;bottom:0;color:\",\";line-height:1.25rem;-webkit-line-clamp:\",\";@media (min-width:\",\"){line-height:1.5rem;-webkit-line-clamp:\",\";padding-top:1rem;}\"],C,r.palette.basicInverse,(function(e){return e.customThemeConfig.container.mobileLineClamp}),t.lg,(function(e){return e.customThemeConfig.container.lineClamp})),_=e.div.withConfig({displayName:\"styled__LivestreamInitials\",componentId:\"sc-4atai-4\"})([\"display:flex;justify-content:space-between;align-items:center;padding-top:\",\";@media (min-width:\",\"){padding-top:1rem;}& > *{flex:1;\",\"}& >:last-child:not(:only-child){text-align:right;\",\"}\"],(function(e){return(e.smallPaddingTop?.5:1)+\"rem\"}),t.lg,r.typography.labelRegular400,r.typography.labelRegular400),v=i([\"position:absolute;top:0;left:0;border-radius:0.625rem;\"]),T=e.div.withConfig({displayName:\"styled__LivestreamCardImg\",componentId:\"sc-xnwx3s-0\"})([\"\",\" height:100%;width:100%;background-size:cover;background-image:\",\";\"],v,(function(e){var t=e.showDescriptionOverlay,n=e.imageUrl;return t?i([\"url(\",\")\"],n):i([\"linear-gradient(180deg,rgba(0,0,0,0) 46.69%,\",\" 87.37%),url(\",\")\"],r.palette.basic,n)})),k=e.div.withConfig({displayName:\"styled__Container\",componentId:\"sc-xnwx3s-1\"})([\"position:relative;height:\",\";min-width:\",\";width:\",\";border-radius:0.625rem;cursor:pointer;@media (min-width:\",\"){height:\",\";min-width:\",\";width:\",\";};\"],(function(e){return\"\"+e.customThemeConfig.container.mobileHeight}),(function(e){return\"\"+e.customThemeConfig.container.mobileWidth}),(function(e){return\"\"+e.customThemeConfig.container.mobileWidth}),t.lg,(function(e){return e.customThemeConfig.container.height}),(function(e){return e.customThemeConfig.container.width}),(function(e){return e.customThemeConfig.container.width})),N=e(m).withConfig({displayName:\"styled__StyledSkeletonElement\",componentId:\"sc-xnwx3s-2\"})([\"\",\" z-index:1;\"],v),j=e(s).withConfig({displayName:\"styled__LivestreamPlayIcon\",componentId:\"sc-xnwx3s-3\"})([\"position:absolute;color:\",\";top:50%;left:50%;transform:translateX(-50%) translateY(-50%);height:\",\";width:\",\";z-index:1;@media (min-width:\",\"){top:50%;left:50%;transform:translateX(-50%) translateY(-50%);};\"],r.palette.basicInverse,(function(e){return\"\"+e.customThemeConfig.playIconDimension}),(function(e){return\"\"+e.customThemeConfig.playIconDimension}),t.lg),L=e.div.withConfig({displayName:\"styled__Wrapper\",componentId:\"sc-xnwx3s-4\"})([\"position:relative;width:fit-content;\"]);export{w as B,k as C,d as D,l as L,y as S,b as T,L as W,p as a,u as b,g as c,f as d,x as e,I as f,_ as g,j as h,T as i,N as j};\n//# sourceMappingURL=styled-53d0e342.js.map\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as t from\"react\";import{Icon as C}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var r=function(r){return t.createElement(C,e({},r,{viewBox:r.viewBox?r.viewBox:\"0 0 24 24\",width:r.width?r.width:\"24px\",height:r.height?r.height:\"24px\"}),t.createElement(\"path\",{d:\"M12.065 23C14.8975 22.9725 17.7011 21.8002 19.7178 19.8096C22.1121 17.4454 23.3455 13.9469 22.9155 10.6072C22.1781 4.88365 17.4692 1 11.9944 1C7.83501 1 3.79205 3.59963 2.01922 7.36925C0.661636 10.2555 0.658886 13.7394 2.01922 16.6307C3.77968 20.3738 7.75617 22.9597 11.9238 23C11.971 23 12.0178 23 12.065 23ZM11.9353 21.1665C7.70484 21.1257 3.75813 17.8571 2.97347 13.6666C2.42026 10.7121 3.46434 7.51533 5.64005 5.41713C8.18059 2.96724 12.1727 2.14664 15.4924 3.53506C18.4628 4.77787 20.6858 7.66278 21.0955 10.8412C21.4466 13.5654 20.468 16.421 18.5449 18.3878C16.8582 20.1128 14.4928 21.1431 12.0535 21.1665C12.0141 21.1665 11.9747 21.1665 11.9353 21.1665Z\",fill:\"currentColor\"}),t.createElement(\"path\",{d:\"M12.8982 17.5048H11.1075V9.54015H12.8982V17.5048ZM10.9971 7.47171C10.9971 7.1965 11.0842 6.96845 11.2588 6.78711C11.4329 6.60532 11.6823 6.51465 12.0068 6.51465C12.3308 6.51465 12.5811 6.60532 12.758 6.78711C12.9349 6.96845 13.0234 7.1965 13.0234 7.47171C13.0234 7.74142 12.9349 7.96581 12.758 8.14485C12.5811 8.32436 12.3308 8.41366 12.0068 8.41366C11.6823 8.41366 11.4329 8.32436 11.2588 8.14485C11.0842 7.96581 10.9971 7.74142 10.9971 7.47171Z\",fill:\"currentColor\"}))};export{r as InfoCircleOutlinedIcon};\n//# sourceMappingURL=InfoCircleOutlinedIcon.js.map\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as t from\"react\";import{Icon as r}from\"./index.js\";import{c as o}from\"./createSvgIcon-89a7bcb8.js\";import\"./ThemeContext.js\";import\"styled-components\";var i=function(i){return i.radiusCorners?t.createElement(r,e({},i,{viewBox:i.viewBox?i.viewBox:\"0 0 24 24\",width:i.width?i.width:\"24px\",height:i.height?i.height:\"24px\"}),t.createElement(\"path\",{d:\"M3.13984 1.1043C2.63315 0.807821 2 1.17871 2 1.77199V22.228C2 22.8213 2.63315 23.1922 3.13984 22.8957L20.6198 12.6677C21.1267 12.3711 21.1267 11.6289 20.6198 11.3323L3.13984 1.1043Z\",fill:\"currentColor\"})):o(\"M6.1,64V0l54,32Z\",i)};export{i as PlayIcon};\n//# sourceMappingURL=PlayIcon.js.map\n","import{_ as e}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as t from\"react\";import{Colors as o}from\"./Colors.js\";import{D as i,L as r,a as n,b as a,c as l,S as s,d as c,B as m,T as p,e as h,f as d,g as u,W as g,C as f,h as b,i as y,j as C}from\"./styled-53d0e342.js\";import{theme as v}from\"./theme.js\";import{TypographyEnum as E}from\"./Typography.js\";import{Text as T}from\"./Text.js\";import\"styled-components\";import\"./breakpoints.js\";import\"./CloseIcon.js\";import\"./index.js\";import\"./ThemeContext.js\";import\"./InfoCircleOutlinedIcon.js\";import\"./PlayIcon.js\";import\"./createSvgIcon-89a7bcb8.js\";import\"./SkeletonElement.js\";var w=function(e){var a=e.onShowDescriptionClick,l=e.showDescriptionOverlay,s=e.showDescription,c=e.customThemeConfig,m=e.isLoading;return s?t.createElement(i,{\"data-testid\":\"DescriptionIconWrapper\",isLoading:m,onClick:function(){return a()},customThemeConfig:c},l?t.createElement(n,{color:o.basicInverse,customThemeConfig:c}):t.createElement(r,{color:o.basicInverse,customThemeConfig:c})):null},D=function(e){var o=e.isLive,i=e.scheduledStart,r=e.scheduledStartIndicatorColor,n=e.scheduledStartIndicatorBackgroundColor,m=null!=r?r:v.palette.basicInverse,p=null!=n?n:v.palette.primary;return t.createElement(t.Fragment,null,o&&t.createElement(a,{\"data-testid\":\"is-live\",style:{background:p}},t.createElement(l,null),t.createElement(s,{color:m,typography:\"labelRegular\"},\"Live\")),!o&&i&&t.createElement(c,{\"data-testid\":\"scheduled-start-wrapper\",style:{background:p}},t.createElement(s,{typography:\"labelSmall\",color:m},i)))},I=function(e){var i=e.showDescriptionOverlay,r=e.title,n=e.description,a=e.videoLength,l=e.publishedDate,s=e.customThemeConfig,c=l?i?E.labelSmall:E.labelSmall400:E.labelRegular400;return t.createElement(m,{showDescriptionOverlay:i,customThemeConfig:s},r&&t.createElement(p,{hideTitle:i,customThemeConfig:s},t.createElement(h,{\"data-testid\":\"title\",typography:l?E.labelRegular:E.titleSmall,color:o.basicInverse,customThemeConfig:s},r)),i&&n&&t.createElement(d,{typography:\"bodyRegular\",\"data-testid\":\"description\",customThemeConfig:s},n),l&&t.createElement(u,{smallPaddingTop:l&&i,\"data-testid\":\"livestream-initials\"},t.createElement(T,{typography:c,color:o.basicInverse},l),a&&t.createElement(T,{typography:c,color:o.basicInverse},a)))},j={container:{height:\"32.875rem\",width:\"18.75rem\",mobileHeight:\" 20rem\",mobilePaddingBottom:\"1rem\",mobileWidth:\"11.25rem\",mobileLineClamp:12,lineClamp:14},playIconDimension:\"1.5rem\",icon:{dimension:\"1.125rem\",topRightPosition:\"0.25rem\",backgroundDimension:\"1.625rem\",backgroundTopRightPosition:\"0.5rem\"}},S=function(o){var i=t.useState(!1),r=i[0],n=i[1],a=o.showId,l=o.isLive,s=o.showDescription,c=o.previewImageUrl,m=o.isLoading,p=o.publishedDate,h=o.customThemeConfig,d=void 0===h?{}:h,u=o.onClick,v=e({},j,d,{container:e({},j.container,d.container),icon:e({},j.icon,d.icon)});return t.createElement(g,null,t.createElement(w,e({},o,{showDescriptionOverlay:r,onShowDescriptionClick:function(){return n((function(e){return!e}))},customThemeConfig:v})),t.createElement(f,{id:a,showDescriptionOverlay:r,customThemeConfig:v,onClick:function(){r||u&&u()}},t.createElement(D,o),(p||l)&&t.createElement(b,{customThemeConfig:v}),t.createElement(y,{imageUrl:c,showDescriptionOverlay:r}),s&&t.createElement(I,e({},o,{showDescriptionOverlay:r,customThemeConfig:v})),m&&t.createElement(C,{height:v.container.height,width:v.container.width})))};export{S as LivestreamCard};\n//# sourceMappingURL=LivestreamCard.js.map\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\ninterface ILivestreamBannerWrapperProps {\n isNewPdDesignEnabled: boolean;\n}\n\nexport const LivestreamBannerWrapper = styled.div`\n display: flex;\n height: fit-content;\n width: fit-content;\n text-align: left;\n\n ${({ isNewPdDesignEnabled }) =>\n isNewPdDesignEnabled\n ? css`\n @media (min-width: ${breakpoints.lg}) {\n width: 100%;\n height: 29.25rem;\n\n background: #f1f1f1;\n padding: 1.5rem;\n }\n\n @media (min-width: ${breakpoints.xxl}) {\n width: 85%;\n }\n `\n : css`\n @media (min-width: ${breakpoints.md}) {\n width: 100%;\n\n background: #f1f1f1;\n padding: 1.5rem;\n }\n `};\n`;\n\ninterface IInfoWrapperProps {\n fullwidth?: boolean;\n}\n\nexport const InfoWrapper = styled.div`\n display: none;\n\n @media (min-width: ${breakpoints.md}) {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: auto;\n overflow-wrap: break-word;\n\n ${({ fullwidth }) =>\n fullwidth\n ? css`\n margin: 0 4rem;\n width: calc(100% - 8rem);\n `\n : css`\n margin: 0 2.5rem;\n width: calc(100% - 5rem);\n `};\n }\n`;\n\nexport const Title = styled.h3`\n font-size: 1.5rem;\n font-weight: 500;\n line-height: 2rem;\n margin-bottom: 0.5rem;\n\n ${({ isNewPdDesignEnabled }) =>\n !isNewPdDesignEnabled &&\n css`\n font-size: 1.25rem;\n line-height: 1.5rem;\n\n @media (min-width: ${breakpoints.lg}) {\n font-size: 1.5rem;\n line-height: 2rem;\n }\n `};\n`;\n\nexport const Description = styled.p`\n font-size: 1rem;\n line-height: 1.75rem;\n\n ${({ isNewPdDesignEnabled }) =>\n !isNewPdDesignEnabled &&\n css`\n font-size: 0.75rem;\n line-height: 1.5rem;\n\n @media (min-width: ${breakpoints.lg}) {\n font-size: 1rem;\n line-height: 1.75rem;\n }\n `};\n`;\n\nexport const DescriptionWrapper = styled.div`\n max-height: 14.25rem;\n width: 100%;\n margin-bottom: 1rem;\n display: -webkit-box;\n -webkit-line-clamp: 8;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const StyledButton = styled.div`\n margin-right: auto;\n padding: 1rem 2rem;\n border-radius: 2px;\n cursor: pointer;\n ${theme.typography.labelRegular}\n background: ${theme.palette.basic};\n color: ${theme.palette.basicInverse};\n\n :hover {\n background: #404040;\n }\n\n transition: background-color 300ms ease 0s, border-color 300ms ease 0s;\n`;\n","import { theme } from '@notino/react-styleguide';\n\ninterface IBannerThemeValue {\n fontColor: string;\n backgroundColor: string;\n}\n\nconst isDateToday = (dateString: string): boolean => {\n const date = new Date(dateString);\n const today = new Date();\n\n return (\n date.getUTCFullYear() === today.getUTCFullYear() &&\n date.getUTCMonth() === today.getUTCMonth() &&\n date.getUTCDate() === today.getUTCDate()\n );\n};\n\nexport const getBannerTheme = (\n isLive: boolean,\n scheduledDate: string\n): IBannerThemeValue => {\n if (isLive)\n return {\n fontColor: '#FF0049',\n backgroundColor: theme.palette.basicInverse,\n };\n const isToday = isDateToday(scheduledDate);\n\n if (isToday)\n return {\n fontColor: theme.palette.basicInverse,\n backgroundColor: theme.palette.primary,\n };\n return {\n fontColor: theme.palette.basicInverse,\n backgroundColor: theme.palette.basic,\n };\n};\n","import * as React from 'react';\nimport { FormattedDate, FormattedMessage } from 'react-intl';\n\nimport { LivestreamCard, ReactFCC } from '@notino/react-styleguide';\n\nimport messages from '@containers/ProductDetailContainer/messages';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport { ILivestream } from './model';\nimport {\n Description,\n DescriptionWrapper,\n InfoWrapper,\n LivestreamBannerWrapper,\n StyledButton,\n Title,\n} from './styled';\nimport { getBannerTheme } from './utils/getBannerTheme';\n\ninterface ILivestreamBannerProps extends ILivestream {\n buttonId: string;\n livestreamCardId: string;\n fullwidth?: boolean;\n onCardClick?: () => void;\n onButtonClick?: () => void;\n}\n\nexport const LivestreamBanner: ReactFCC = ({\n fullwidth,\n description,\n isLive,\n previewImageUrl,\n scheduledStart,\n videoLength,\n publishedDate,\n scheduledDate,\n title,\n buttonId,\n livestreamCardId,\n onCardClick,\n onButtonClick,\n}) => {\n const { backgroundColor, fontColor } = getBannerTheme(isLive, scheduledDate);\n const isNewPdDesignEnabled = useNewPdDesignEnabled();\n\n return (\n \n \n }\n customThemeConfig={{\n container: {\n width: '15rem',\n height: '26.25rem',\n lineClamp: 9,\n },\n }}\n />\n \n {title}\n \n \n {description}\n \n \n \n \n \n \n \n );\n};\n","import { useEffect } from 'react';\n\nexport interface IBambuserProps {\n getItems: () => IItem[];\n}\n\nexport interface IItem {\n showId: string;\n deeplink: string;\n node: HTMLElement;\n}\n\nexport const useInitBambuserLiveShopping = ({ getItems }: IBambuserProps) => {\n useEffect(() => {\n if (!window.initBambuserLiveShopping) {\n window.initBambuserLiveShopping = function (item) {\n window.initBambuserLiveShopping.queue.push(item);\n };\n }\n\n if (!document.getElementById('bambuser-embed')) {\n window.initBambuserLiveShopping.queue = [];\n const scriptNode = document.createElement('script');\n scriptNode.id = 'bambuser-embed';\n scriptNode.src = 'https://lcx-embed.bambuser.com/notino/embed.js';\n document.body.appendChild(scriptNode);\n }\n\n if (!document.getElementById('bambuser-metrics')) {\n const scriptNodeTracking = document.createElement('script');\n scriptNodeTracking.id = 'bambuser-metrics';\n scriptNodeTracking.src =\n 'https://cdn.liveshopping.bambuser.com/metrics/bambuser.min.js';\n document.body.appendChild(scriptNodeTracking);\n }\n\n const items = getItems();\n\n items.forEach((item) => {\n window.initBambuserLiveShopping({\n showId: item.showId,\n deeplink: item.deeplink,\n node: item.node,\n type: 'overlay',\n });\n });\n }, [getItems]);\n};\n","export interface ILivestream {\n showId: string;\n title: string;\n description: string;\n previewImageUrl: string;\n videoLength: string;\n isLive: boolean;\n scheduledStart?: string;\n scheduledDate: string;\n publishedDate?: string;\n deeplink: string;\n}\n\nexport enum EShowComponentLayout {\n DESKTOP = 'desktop',\n MOBILE = 'mobile',\n SINGLE = 'single',\n}\n","import { dispatchTrackingEvent } from '@context/tracking/utils';\n\nexport interface ITrackingItem {\n showId: string;\n itemIndex: number;\n interaction: ELivestreamTrackingInteraction;\n}\n\nexport enum ELivestreamTrackingInteraction {\n IMAGE = 'image',\n AUTOMATIC = 'automatic',\n SLIDE = 'slide',\n BUTTON = 'button',\n}\n\nexport const trackLivestreamView = (props: ITrackingItem) => {\n dispatchTrackingEvent({\n event: 'view_promotion',\n promotions: [mapToPromotion(props)],\n _clear: true,\n });\n};\n\nexport const trackOnClick = ({\n showId,\n itemIndex,\n interaction,\n}: ITrackingItem) => {\n dispatchTrackingEvent({\n event: 'select_promotion',\n promotions: [mapToPromotion({ showId, itemIndex, interaction })],\n _clear: true,\n });\n};\n\nexport const mapToPromotion = ({\n showId,\n itemIndex,\n interaction,\n}: ITrackingItem) => {\n return {\n id: showId,\n code: 'livestream',\n name: '',\n location: 'livestream_pdp',\n position: itemIndex + 1,\n creative: '',\n destination_url: '',\n interaction: interaction,\n };\n};\n","import { EShowComponentLayout } from '../model';\n\nexport const getShowElementId = (\n showId: string,\n layout: EShowComponentLayout,\n isButton?: boolean\n): string => {\n return `${isButton ? 'button-' : ''}${layout}-${showId}`;\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\ninterface IArrowWrapperProps {\n isLeft: boolean;\n arrowMarginFromTop?: string;\n isNewPdDesignEnabled: boolean;\n}\n\nconst leftArrowCSS = css`\n left: 0.09375em;\n`;\n\nconst rightArrowCSS = css`\n right: 0;\n\n ${({ isNewPdDesignEnabled }) =>\n isNewPdDesignEnabled &&\n css`\n @media (min-width: ${breakpoints.xxl}) {\n right: 15%;\n }\n `};\n`;\n\nexport const ArrowWrapper = styled.div`\n position: absolute;\n top: ${({ arrowMarginFromTop = '50%' }) => arrowMarginFromTop};\n display: none;\n transform: translate(0, -50%);\n cursor: pointer;\n color: transparent;\n border: none;\n outline: 0;\n z-index: 2;\n box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.15);\n background-color: ${theme.palette.basicInverse};\n width: 3.25em;\n height: 3.25em;\n border-radius: 50%;\n\n ${({ isLeft }) => (isLeft ? leftArrowCSS : rightArrowCSS)}\n\n @media (min-width: ${breakpoints.md}) {\n display: flex;\n }\n\n svg {\n margin: auto;\n }\n\n :hover {\n background-color: #f7f7f7;\n }\n`;\n","import * as React from 'react';\n\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n Colors,\n ReactFCC,\n} from '@notino/react-styleguide';\n\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport { ArrowWrapper } from './styled';\n\ninterface IArrowProps {\n direction: 'left' | 'right';\n arrowMarginFromTop?: string;\n className?: string;\n onClick?: () => void;\n}\n\nexport const Arrow: ReactFCC = ({\n direction,\n onClick,\n className,\n arrowMarginFromTop,\n}) => {\n const isLeft = direction === 'left';\n const isNewPdDesignEnabled = useNewPdDesignEnabled();\n\n return (\n \n {isLeft ? (\n \n ) : (\n \n )}\n \n );\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints } from '@notino/react-styleguide';\n\ninterface IDotsWrapperProps {\n isNewPdDesignEnabled: boolean;\n}\n\nexport const StyledDotsWrapper = styled.ol`\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: center;\n width: 100%;\n height: 1.25em;\n margin: 0;\n list-style: none;\n margin-top: 1em;\n\n ${({ isNewPdDesignEnabled }) =>\n isNewPdDesignEnabled &&\n css`\n @media (min-width: ${breakpoints.xxl}) {\n width: 85%;\n }\n `};\n\n li {\n position: relative;\n display: block;\n user-select: none;\n outline: 0;\n padding: 0;\n flex: 0 1 auto;\n height: 1.25em;\n max-width: 3.125em;\n width: 3.125em;\n margin: 0 0.25em;\n cursor: pointer;\n\n &::before {\n display: none !important;\n }\n\n @media (min-width: ${breakpoints.md}) {\n max-width: 6.25em;\n width: 6.25em;\n margin: 0 0.5em;\n }\n }\n`;\n","import * as React from 'react';\n\nimport { ReactFCC } from '@notino/react-styleguide';\n\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\n\nimport { StyledDotsWrapper } from './styled';\n\nexport const Dots: ReactFCC = ({ children }) => {\n const isNewPdDesignEnabled = useNewPdDesignEnabled();\n\n return (\n \n {children}\n \n );\n};\n","import styled from 'styled-components';\n\nexport const MainWrapper = styled.div<{ isNewPd: boolean }>`\n margin-top: 1rem;\n width: ${({ isNewPd }) => (isNewPd ? '100%' : '62%')};\n`;\n\nexport const BannerCarouselWrapper = styled.div`\n overflow: hidden;\n`;\n\nexport const SliderWrapper = styled.div`\n position: relative;\n\n .slick-disabled {\n display: none;\n }\n\n .slick-track {\n display: flex;\n align-items: start;\n }\n\n .slick-list {\n overflow: hidden;\n }\n`;\n","import React, { useCallback } from 'react';\nimport Slider, { Settings } from 'react-slick';\n\nimport { Dot, ReactFCC } from '@notino/react-styleguide';\n\nimport { LivestreamBanner } from '@components/LivestreamBanner';\nimport {\n IItem,\n useInitBambuserLiveShopping,\n} from '@components/LivestreamBanner/hooks/useInitBambuserLiveShopping';\nimport {\n EShowComponentLayout,\n ILivestream,\n} from '@components/LivestreamBanner/model';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport {\n trackOnClick,\n ELivestreamTrackingInteraction,\n} from '@containers/ProductDetailContainer/ProductDetail/livestreamTracking';\n\nimport { getShowElementId } from '../../../../../../components/LivestreamBanner/utils/getShowElementId';\n\nimport { Arrow } from './Arrow';\nimport { Dots } from './Dots';\nimport { MainWrapper, BannerCarouselWrapper, SliderWrapper } from './styled';\nimport { useLiveStreamTracking } from './useLivestreamTracking';\n\ninterface ILivestreamBannersCarouselProps {\n livestreams: ILivestream[];\n}\n\nconst LivestreamBannersCarousel: ReactFCC = ({\n livestreams,\n}) => {\n const itemsPerSlide = 1;\n const isNewPd = useNewPdDesignEnabled();\n const { trackOnSlide, livestreamCarouselRef } =\n useLiveStreamTracking(livestreams);\n\n const sliderConfig: Settings = {\n slidesToShow: itemsPerSlide,\n slidesToScroll: itemsPerSlide,\n dots: true,\n appendDots: (dots) => {dots},\n customPaging: () => ,\n infinite: false,\n cssEase: 'ease-in-out',\n prevArrow: livestreams.length > itemsPerSlide && (\n \n ),\n nextArrow: livestreams.length > itemsPerSlide && (\n \n ),\n arrows: true,\n speed: 500,\n draggable: false,\n afterChange: trackOnSlide,\n };\n\n useInitBambuserLiveShopping({\n getItems: useCallback(\n () =>\n livestreams\n ? livestreams.flatMap((livestream) => [\n {\n showId: livestream.showId,\n deeplink: livestream.deeplink,\n node: document.getElementById(\n getShowElementId(\n livestream.showId,\n EShowComponentLayout.DESKTOP\n )\n ),\n },\n {\n showId: livestream.showId,\n deeplink: livestream.deeplink,\n node: document.getElementById(\n getShowElementId(\n livestream.showId,\n EShowComponentLayout.SINGLE\n )\n ),\n },\n {\n showId: livestream.showId,\n deeplink: livestream.deeplink,\n node: document.getElementById(\n getShowElementId(\n livestream.showId,\n EShowComponentLayout.DESKTOP,\n true\n )\n ),\n },\n {\n showId: livestream.showId,\n deeplink: livestream.deeplink,\n node: document.getElementById(\n getShowElementId(\n livestream.showId,\n EShowComponentLayout.SINGLE,\n true\n )\n ),\n },\n ])\n : [],\n [livestreams]\n ),\n });\n\n if (!livestreams || livestreams.length <= 0) {\n return null;\n }\n\n return livestreams.length === itemsPerSlide ? (\n \n {livestreams.map(({ showId, ...livestream }, itemIndex) => (\n \n trackOnClick({\n showId,\n itemIndex,\n interaction: ELivestreamTrackingInteraction.IMAGE,\n })\n }\n onButtonClick={() =>\n trackOnClick({\n showId,\n itemIndex,\n interaction: ELivestreamTrackingInteraction.BUTTON,\n })\n }\n livestreamCardId={getShowElementId(\n showId,\n EShowComponentLayout.SINGLE\n )}\n buttonId={getShowElementId(showId, EShowComponentLayout.SINGLE, true)}\n {...livestream}\n fullwidth={true}\n />\n ))}\n \n ) : (\n \n \n \n \n {livestreams.map(({ showId, ...livestream }, itemIndex) => (\n \n trackOnClick({\n showId,\n itemIndex,\n interaction: ELivestreamTrackingInteraction.IMAGE,\n })\n }\n onButtonClick={() =>\n trackOnClick({\n showId,\n itemIndex,\n interaction: ELivestreamTrackingInteraction.BUTTON,\n })\n }\n livestreamCardId={getShowElementId(\n showId,\n EShowComponentLayout.DESKTOP\n )}\n buttonId={getShowElementId(\n showId,\n EShowComponentLayout.DESKTOP,\n true\n )}\n {...livestream}\n />\n ))}\n \n \n \n \n );\n};\n\nexport default LivestreamBannersCarousel;\n","import * as React from 'react';\nimport { useInView } from 'react-intersection-observer';\n\nimport { ILivestream } from '@components/LivestreamBanner/model';\nimport {\n trackLivestreamView,\n ELivestreamTrackingInteraction,\n} from '@containers/ProductDetailContainer/ProductDetail/livestreamTracking';\n\nexport const useLiveStreamTracking = (livestreams: ILivestream[]) => {\n const viewTrackedItemsIndexes = React.useRef([]);\n\n const [livestreamCarouselRef, livestreamCarouselInView] = useInView({\n triggerOnce: true,\n });\n\n const firstShowId = livestreams[0].showId;\n\n React.useEffect(() => {\n if (\n livestreamCarouselInView &&\n !viewTrackedItemsIndexes.current.includes(0)\n ) {\n trackLivestreamView({\n showId: firstShowId,\n itemIndex: 0,\n interaction: ELivestreamTrackingInteraction.AUTOMATIC,\n });\n\n viewTrackedItemsIndexes.current.push(0);\n }\n }, [livestreamCarouselInView, firstShowId]);\n\n const trackOnSlide = React.useCallback(\n (index) => {\n const livestream = livestreams[index];\n\n if (!viewTrackedItemsIndexes.current.includes(index)) {\n trackLivestreamView({\n showId: livestream.showId,\n itemIndex: index,\n interaction: ELivestreamTrackingInteraction.BUTTON,\n });\n\n viewTrackedItemsIndexes.current.push(index);\n }\n },\n [livestreams]\n );\n\n return {\n livestreamCarouselRef,\n trackOnSlide,\n };\n};\n","import * as React from 'react';\nimport { useInView } from 'react-intersection-observer';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { useLivestreams } from '@components/LivestreamBanner/hooks/useLivestreams';\nimport { ICharacteristic } from '@containers/ProductListing/model';\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { isEmpty } from '@helpers/utils';\nimport { ExpandableText } from '@sharedComponents/ExpandableText';\nimport { trackTab } from '@sharedComponents/TabSwitcher/trackingTab';\nimport { useIsDesktop } from '@utils/helpers';\n\nimport messages from '../../../messages';\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\nimport { TabIds } from '../../model';\nimport { useProductDetailContext } from '../../ProductDetailContext';\nimport { Pictograms } from '../Pictograms';\nimport { EPictograms } from '../Pictograms/model';\nimport { useTabsWithExpandableText } from '../ProductTabContentProvider';\nimport { TRACKING_ATTRIBUTES } from '../tracking';\n\nimport { Characteristic } from './Characteristic';\nimport { Instructions } from './Instructions';\nimport { VideoInstructions } from './Instructions/VideoInstructions';\nimport LivestreamBannersCarousel from './LivestreamBannersCarousel';\nimport {\n Container,\n MarginWrapper,\n Description,\n CharTitle,\n CharactericticsWrapper,\n CharacteristicsTable,\n SectionTitle,\n HairSensitivityTestLink,\n CharacteristicsTableWrapper,\n} from './styled';\n\nexport interface IAboutProductProps {\n description: string;\n pictograms?: EPictograms[];\n characteristics: ICharacteristic[];\n composition: ICharacteristic[];\n isPerfume?: boolean;\n pictogramsEnabled?: boolean;\n legalInformation?: Omit<\n GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]['legalInformation'],\n '__typename'\n >;\n}\n\nexport const AboutProduct: React.FC = React.memo(\n ({\n description,\n characteristics,\n composition,\n isPerfume,\n legalInformation,\n pictograms,\n pictogramsEnabled,\n }) => {\n const { formatMessage } = useIntl();\n const { getTimeFromInit } = useTrackingContext();\n\n const { currentVariant } = useProductDetailContext();\n const { livestreamOnPdEnabled } = useFeatureFlags();\n const [livestreamsRef, livestreamsInView] = useInView({\n triggerOnce: true,\n rootMargin: '100px',\n });\n\n const newPdDesignEnabled = useNewPdDesignEnabled();\n\n const isDesktop = useIsDesktop({ isNewPdDesign: newPdDesignEnabled });\n\n const { data, error } = useLivestreams({\n enabled: livestreamOnPdEnabled && isDesktop && livestreamsInView,\n productCode: currentVariant.productCode,\n });\n\n const shouldShowLivestreams = Boolean(\n livestreamOnPdEnabled &&\n isDesktop &&\n !error &&\n data?.getLivestreams?.shows &&\n data?.getLivestreams?.shows.length !== 0\n );\n\n const { tabsWithExpandableTextState, toggleFullText } =\n useTabsWithExpandableText();\n\n const descriptionWithExpandableText =\n tabsWithExpandableTextState?.[TabIds.Description];\n\n const hasPictograms = Boolean(pictograms?.length > 0);\n\n const shouldShowFullText =\n !hasPictograms ||\n descriptionWithExpandableText?.shouldShowFullText ||\n !descriptionWithExpandableText?.isTabOpenForTheFirstTime;\n\n const productCharacteristics = isPerfume\n ? composition.concat(characteristics)\n : characteristics;\n\n const hasDescription = !isEmpty(description);\n const hasCharacteristics = productCharacteristics.length > 0;\n\n const hasDetailedInstructions =\n legalInformation &&\n (legalInformation.instructions ||\n legalInformation.document ||\n legalInformation.instructionDocument);\n\n const hasDescriptionContent = Boolean(\n hasDescription ||\n hasDetailedInstructions ||\n legalInformation?.preparationUsage\n );\n\n if (!hasCharacteristics && !hasDescriptionContent) {\n return null;\n }\n\n const onToggleFullText = () => {\n toggleFullText(TabIds.Description);\n trackTab({\n mode: 'open partial',\n timing: getTimeFromInit(),\n trackingLabel: TRACKING_ATTRIBUTES.description,\n });\n };\n\n const pdCharacteristics = hasCharacteristics && (\n \n {hasDescription && (\n \n \n \n )}\n\n \n \n {productCharacteristics.map((item) => (\n \n ))}\n \n \n \n );\n\n return (\n <>\n \n \n\n
\n {shouldShowLivestreams && (\n <>\n \n \n \n \n \n )}\n
\n \n );\n }\n);\n","export const roundNumber = (number: number, decimals: number) =>\n Math.round((number + 0.00001) * Math.pow(10, decimals)) /\n Math.pow(10, decimals);\n\n// https://stackoverflow.com/a/11832950\nexport const roundToMax2Decimals = (num: number) =>\n Math.round((num + Number.EPSILON) * 100) / 100;\n","import { PropsWithChildren } from 'react';\nimport * as React from 'react';\nimport { useInView } from 'react-intersection-observer';\n\nimport styled, { css } from 'styled-components';\n\nimport { useArrows } from '@hooks/useArrows';\n\nconst Wrapper = styled.div`\n overflow-x: auto;\n width: 100%;\n max-width: 100%;\n padding-bottom: 0.5rem;\n\n //Firefox\n scrollbar-color: #d9d9d9 transparent;\n scrollbar-width: thin;\n\n &::-webkit-scrollbar {\n -webkit-appearance: none;\n height: 0.25rem;\n }\n\n &::-webkit-scrollbar-track {\n height: 0.25rem;\n background-color: transparent;\n }\n\n &::-webkit-scrollbar-thumb {\n height: 0.25rem;\n border-radius: 0.25rem;\n background-color: #d9d9d9;\n }\n`;\n\nconst Fade = styled.div<{ leftFade: boolean; rightFade: boolean }>`\n max-width: 100%;\n width: fit-content;\n position: relative;\n\n ${({ leftFade }) =>\n leftFade &&\n css`\n ::before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: -1px;\n width: 80px;\n background: linear-gradient(\n 270deg,\n rgba(255, 255, 255, 0) 0%,\n #ffffff 100%\n );\n }\n `}\n\n ${({ rightFade }) =>\n rightFade &&\n css`\n ::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n right: -1px;\n width: 80px;\n background: linear-gradient(\n 90deg,\n rgba(255, 255, 255, 0) 0%,\n #ffffff 100%\n );\n }\n `}\n`;\n\nexport const FadeWrapper = ({ children }: PropsWithChildren) => {\n const [inViewRef, isInView] = useInView(); // NOTE: fix for when in mobile view, useArrows is not recalculated on tab open\n const { containerRef, showLeftArrow, showRightArrow } = useArrows([isInView]);\n\n const handleRef = (node: HTMLDivElement) => {\n containerRef.current = node;\n inViewRef(node);\n };\n\n return (\n \n {children}\n \n );\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nexport const Wrapper = styled.div<{ newDesign: boolean }>`\n width: 100%;\n\n ${({ newDesign }) =>\n newDesign\n ? css``\n : css`\n @media (min-width: ${breakpoints.md}) {\n width: 66%;\n }\n @media (min-width: 1680px) {\n width: 60%;\n }\n `}\n`;\n\nexport const SectionTitle = styled.p<{ newDesign: boolean }>`\n padding-top: 1.3rem;\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n ${theme.typography.titleMedium}\n margin: 0 0 0.75rem;\n `\n : css`\n font-size: 0.9rem;\n line-height: 1.5;\n font-weight: 700;\n margin: 0;\n\n @media (min-width: ${breakpoints.md}) {\n font-size: 1.1rem;\n }\n `}\n`;\n\nexport const Text = styled.div<{ newDesign: boolean }>`\n line-height: 1.5rem;\n margin: 0 0 0.3rem;\n font-size: 0.9rem;\n\n strong {\n font-size: 0.8rem;\n }\n\n ${({ newDesign }) =>\n newDesign &&\n css`\n color: ${theme.palette.neutralDarker};\n padding-right: 2rem;\n strong {\n font-size: inherit;\n }\n `}\n`;\n\nexport const OldNutritionTableWrapper = styled.div`\n display: flex;\n table {\n margin: 2rem 0 0;\n border-spacing: 0;\n border: solid 1px ${theme.palette.neutralLight};\n overflow: hidden;\n border-radius: 0.4rem;\n font-family: 'Roboto';\n flex: 1;\n max-width: 450px;\n }\n\n tr {\n display: flex;\n justify-content: flex-end;\n font-size: 0.9rem;\n\n &:first-of-type {\n font-weight: 500;\n }\n\n &:nth-child(odd) {\n background-color: ${theme.palette.neutralLighter};\n }\n }\n\n td {\n padding: 0.6rem 0.7rem;\n\n &:nth-child(1) {\n width: 100%;\n color: ${theme.palette.neutralDarker};\n @media (min-width: ${breakpoints.sm}) {\n min-width: 20rem;\n }\n }\n\n &:nth-child(2) {\n text-align: right;\n padding-right: 0;\n min-width: 5rem;\n overflow: hidden;\n }\n\n &:nth-child(3) {\n padding-left: 0.1rem;\n }\n }\n`;\n\nexport const TableWrapper = styled.div`\n display: flex;\n\n table {\n border-spacing: 0;\n border: solid 1px ${theme.palette.neutralLight};\n overflow: hidden;\n border-radius: 0.25rem;\n font-family: 'Roboto';\n flex: 1;\n max-width: 100%;\n }\n\n tr {\n ${theme.typography.labelRegular400}\n\n &:first-of-type {\n ${theme.typography.labelRegular}\n }\n\n &:nth-child(odd) {\n background-color: ${theme.palette.neutralLighter};\n }\n }\n\n td {\n padding: 0.75rem 0.5rem;\n min-width: 8.125rem;\n text-align: right;\n\n &:first-child {\n color: ${theme.palette.neutralDarker};\n text-align: left;\n padding-left: 1rem;\n }\n\n &:last-child {\n padding-right: 1rem;\n }\n\n @media (min-width: ${breakpoints.md}) {\n min-width: 10rem;\n }\n }\n`;\n\nexport const VitaminsTableWrapper = styled(TableWrapper)``;\n\nexport const TableTitle = styled.div`\n ${theme.typography.titleMedium}\n margin-bottom: 0.75rem;\n`;\n\nexport const TableSubtitle = styled.div`\n ${theme.typography.bodyLarge}\n color: ${theme.palette.neutralDarker};\n margin-bottom: 1.5rem;\n`;\n\nexport const TableAnnotation = styled.span`\n ${theme.typography.bodySmall}\n display:block;\n color: #6b6b6b;\n margin: 0.75rem 0 0.5rem;\n`;\n\nexport const TopMargin = styled.div`\n margin: 2rem 0 0;\n`;\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n referenceValue: {\n id: 'pd.composition.referenceValueAbbriviation',\n defaultMessage: '*RHP',\n },\n onePortion: {\n id: 'pd.composition.onePortion',\n defaultMessage: '1 dávka',\n },\n referenceValueOnePercent: {\n id: 'pd.composition.referenceValueOnePercent',\n defaultMessage: '% RHP v 1 dávce',\n },\n dailyAmount: {\n id: 'pd.composition.dailyAmount',\n defaultMessage: 'Denní dávka',\n },\n referenceValuePercent: {\n id: 'pd.composition.referenceValuePercent',\n defaultMessage: '% RHP',\n },\n referenceValueAnnotation: {\n id: 'pd.composition.referenceValueAnnotation',\n defaultMessage: '* RHP – referenční hodnota příjmu',\n },\n vitaminsAndMinerals: {\n id: 'pd.composition.vitaminsAndMinerals',\n defaultMessage: 'Vitamíny a minerální látky:',\n },\n number: {\n id: 'pd.composition.number',\n defaultMessage: 'Počet',\n },\n inDailyDose: {\n id: 'pd.composition.inDailyDose',\n defaultMessage: 'v denní dávce:',\n },\n});\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { roundToMax2Decimals } from '@utils/number';\n\nimport { FadeWrapper } from './FadeWrapper';\nimport { messages } from './messages';\nimport {\n TableSubtitle,\n TableTitle,\n TableAnnotation,\n VitaminsTableWrapper,\n} from './styled';\n\ntype Props = {\n vitaminsAndMinerals: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]['legalInformation']['compositionTables']['vitaminsAndMinerals'];\n};\n\nexport const VitaminsTable = ({ vitaminsAndMinerals }: Props) => {\n const { formatMessage } = useIntl();\n const [headerRow, ...otherRows] = vitaminsAndMinerals;\n\n return (\n
\n {formatMessage(messages.vitaminsAndMinerals)}\n\n \n {formatMessage(messages.number)} {headerRow.measureUnit}{' '}\n {formatMessage(messages.inDailyDose)} {headerRow.amount}\n \n\n \n \n \n \n \n \n \n \n \n \n\n {otherRows.map((row) => (\n \n \n \n \n \n \n \n \n ))}\n
\n {formatMessage(messages.referenceValue)}{formatMessage(messages.onePortion)}{formatMessage(messages.referenceValueOnePercent)}{formatMessage(messages.dailyAmount)}{formatMessage(messages.referenceValuePercent)}
{row.nutritionValue}\n {roundToMax2Decimals(row.referenceValue)} {row.measureUnit}\n \n {roundToMax2Decimals(row.onePortionAmount)} {row.measureUnit}\n {roundToMax2Decimals(row.referenceValueOnePercent)} %\n {roundToMax2Decimals(row.amount)} {row.measureUnit}\n {roundToMax2Decimals(row.referenceValuePercent)} %
\n
\n
\n\n \n {formatMessage(messages.referenceValueAnnotation)}\n \n
\n );\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport messages from '@containers/ProductDetailContainer/messages';\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\nimport { roundToMax2Decimals } from '@utils/number';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\n\nimport { FadeWrapper } from './FadeWrapper';\nimport {\n Text,\n Wrapper,\n SectionTitle,\n TableWrapper,\n OldNutritionTableWrapper,\n TopMargin,\n} from './styled';\nimport { VitaminsTable } from './VitaminsTable';\n\ninterface CompositionProps {\n html: string;\n nutritionValues?: string;\n tablesData?: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]['legalInformation']['compositionTables'];\n}\n\nexport const Composition = ({\n html,\n nutritionValues,\n tablesData,\n}: CompositionProps) => {\n const newDesign = useNewPdDesignEnabled();\n const { newNutritionAndVitaminsTable } = useFeatureFlags();\n const showNewNutritionTable =\n !!tablesData?.nutritionValues?.length && newNutritionAndVitaminsTable;\n\n return (\n \n \n \n \n\n \n\n {nutritionValues && !showNewNutritionTable ? (\n \n ) : null}\n\n {showNewNutritionTable && (\n \n \n \n \n {tablesData.nutritionValues.map((row) => (\n \n \n \n \n \n ))}\n
{row.nutritionValue}\n {roundToMax2Decimals(row.amount)} {row.measureUnit}\n \n {roundToMax2Decimals(row.variantAmount)} {row.measureUnit}\n
\n
\n
\n
\n )}\n\n {!!tablesData?.vitaminsAndMinerals?.length &&\n newNutritionAndVitaminsTable && (\n \n \n \n )}\n
\n );\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { Row, Col } from '@notino/react-styleguide';\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\n\nimport messages from '../../../messages';\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\nimport { TabIds, Tabs } from '../../model';\nimport { TRACKING_ATTRIBUTES, TAB_IDENTIFIERS } from '../tracking';\nimport { getDescriptionIndex } from '../utils';\n\nimport { ContentTabLink } from './ContentTabLink';\nimport {\n ContentSwitcherContainer,\n ContentSwitcherWrapper,\n TabList,\n Container,\n ReviewSummaryCount,\n} from './styled';\n\ninterface IContentSwitcherProps {\n isRichContentAvailable: boolean;\n product: GetProductViewQuery['productDetailByMasterId'][number];\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number];\n defaultTab: Tabs;\n productReviewCount: number;\n shouldRenderComposition: boolean;\n shouldRenderOthersTab: boolean;\n}\n\nexport const ContentSwitcher: React.FC = ({\n product,\n variant,\n defaultTab,\n isRichContentAvailable,\n productReviewCount,\n shouldRenderComposition,\n shouldRenderOthersTab,\n}) => {\n const { bazaarvoiceIntegrationPd } = useFeatureFlags();\n const newPdDesignEnabled = useNewPdDesignEnabled();\n const descriptionIndex = getDescriptionIndex({\n description: product.description,\n composition: product.composition,\n variant,\n });\n\n const { brandInfo, description } = product;\n\n const shouldRenderAboutBrand = brandInfo && Boolean(brandInfo.description);\n\n return (\n \n \n \n \n \n \n {descriptionIndex && (\n \n \n \n )}\n\n {shouldRenderComposition && (\n \n \n \n )}\n\n {shouldRenderOthersTab && (\n \n \n \n )}\n\n {shouldRenderAboutBrand && (\n \n \n \n )}\n\n {isRichContentAvailable && (\n \n \n \n )}\n\n \n 0 && !bazaarvoiceIntegrationPd ? (\n \n {productReviewCount}\n \n ) : (\n ''\n ),\n }}\n />\n \n \n \n \n \n \n \n );\n};\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n specialStorage: {\n id: 'pd.other.specialStorage',\n defaultMessage: 'Zvláštní podmínky uchovávaní:',\n },\n importantNotice: {\n id: 'pd.other.importantNotice',\n defaultMessage: 'Důležitá upozornění:',\n },\n manufacturerImporter: {\n id: 'pd.other.manufacturerImporter',\n defaultMessage: 'Výrobce/Dovozce:',\n },\n});\n","import { css } from 'styled-components';\n\nimport { breakpoints, styled } from '@notino/react-styleguide';\n\nexport const Container = styled.div<{ newDesign: boolean }>`\n ${({ newDesign }) =>\n newDesign &&\n css`\n @media (min-width: ${breakpoints.lg}) {\n padding-right: 2rem;\n }\n `}\n`;\n\nexport const SectionTitle = styled.strong`\n padding-top: 1.3rem;\n`;\n\nexport const Icon = styled.img`\n width: 3rem;\n height: 3rem;\n`;\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\n\nimport { messages } from './messages';\nimport { Container, Icon, SectionTitle } from './styled';\nimport TrimenSvg from './Trimen.svg';\n\nexport interface IAboutBrandProps {\n legalInformation: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]['legalInformation'];\n isFranceShop: boolean;\n}\n\nexport const Other: React.FC = ({\n legalInformation,\n isFranceShop,\n}) => {\n const { formatMessage } = useIntl();\n\n const { specialStorage, importantNotice, manufacturerImporter } =\n legalInformation;\n const newDesign = useNewPdDesignEnabled();\n\n return (\n \n {isFranceShop && }\n\n {specialStorage && (\n <>\n {formatMessage(messages.specialStorage)}\n
\n \n )}\n {importantNotice && (\n <>\n {formatMessage(messages.importantNotice)}\n
\n \n )}\n {manufacturerImporter && (\n <>\n \n {formatMessage(messages.manufacturerImporter)}\n \n
\n \n )}\n \n );\n};\n","import * as React from 'react';\nimport { FormattedDate } from 'react-intl';\n\nimport { LivestreamCard as ExternalLivestreamCard } from '@notino/react-styleguide';\n\nimport {\n ILivestream,\n EShowComponentLayout,\n} from '@components/LivestreamBanner/model';\nimport { getBannerTheme } from '@components/LivestreamBanner/utils/getBannerTheme';\nimport { getShowElementId } from '@components/LivestreamBanner/utils/getShowElementId';\nimport { ELivestreamTrackingInteraction } from '@containers/ProductDetailContainer/ProductDetail/livestreamTracking';\nimport { useMobileLivestreamTracking } from '@containers/ProductDetailContainer/ProductDetail/ProductTabContent/ProductLivestreams/hooks/useLivestreamTracking';\n\ninterface IInternalLivestreamCardProps extends ILivestream {\n index: number;\n}\n\nexport const LivestreamCard = ({\n showId,\n previewImageUrl,\n description,\n isLive,\n scheduledDate,\n title,\n videoLength,\n publishedDate,\n scheduledStart,\n index,\n}: IInternalLivestreamCardProps) => {\n const { backgroundColor, fontColor } = getBannerTheme(isLive, scheduledDate);\n\n const { livestreamRef, trackOnClick } = useMobileLivestreamTracking({\n showId,\n itemIndex: index,\n viewInteraction:\n index < 2\n ? //First two shows are viewed in stardard way, to others you must slide\n ELivestreamTrackingInteraction.AUTOMATIC\n : ELivestreamTrackingInteraction.SLIDE,\n });\n\n return (\n
\n trackOnClick(ELivestreamTrackingInteraction.IMAGE)}\n showId={getShowElementId(showId, EShowComponentLayout.MOBILE)}\n title={title}\n description={description}\n previewImageUrl={previewImageUrl}\n isLive={isLive}\n showDescription={true}\n scheduledStart={scheduledStart}\n videoLength={videoLength}\n scheduledStartIndicatorBackgroundColor={backgroundColor}\n scheduledStartIndicatorColor={fontColor}\n publishedDate={\n \n }\n customThemeConfig={{\n container: {\n width: '15rem',\n height: '26.25rem',\n lineClamp: 9,\n },\n }}\n />\n
\n );\n};\n","import * as React from 'react';\nimport { useInView } from 'react-intersection-observer';\n\nimport {\n ELivestreamTrackingInteraction,\n trackLivestreamView,\n trackOnClick as externalTrackOnClick,\n} from '@containers/ProductDetailContainer/ProductDetail/livestreamTracking';\n\nexport interface IUseLivestreamTrackingProps {\n showId: string;\n itemIndex: number;\n viewInteraction: ELivestreamTrackingInteraction;\n}\n\nexport const useMobileLivestreamTracking = ({\n showId,\n itemIndex,\n viewInteraction,\n}: IUseLivestreamTrackingProps) => {\n const [livestreamRef, livestreamInView] = useInView({\n triggerOnce: true,\n });\n\n React.useEffect(() => {\n if (livestreamInView) {\n trackLivestreamView({\n showId,\n itemIndex,\n interaction: viewInteraction,\n });\n }\n }, [livestreamInView, itemIndex, showId, viewInteraction]);\n\n const trackOnClick = React.useCallback(\n (interaction: ELivestreamTrackingInteraction) => {\n externalTrackOnClick({ showId, itemIndex, interaction });\n },\n [itemIndex, showId]\n );\n\n return { livestreamRef, trackOnClick };\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints } from '@notino/react-styleguide';\n\nexport const MainWrapper = styled.div`\n width: 100%;\n`;\n\ninterface IBannersWrapperProps {\n isNewPdDesignEnabled: boolean;\n}\n\nexport const CardsWrapper = styled.div`\n display: flex;\n overflow: auto;\n box-sizing: border-box;\n -ms-overflow-style: none;\n scrollbar-width: none;\n gap: 1rem;\n\n ${({ isNewPdDesignEnabled }) =>\n !isNewPdDesignEnabled &&\n css`\n margin-bottom: 1rem;\n `};\n\n ::-webkit-scrollbar {\n display: none;\n }\n\n @media (min-width: ${breakpoints.lg}) {\n display: none;\n margin-bottom: unset;\n }\n`;\n","import React, { useCallback } from 'react';\n\nimport { ReactFCC } from '@notino/react-styleguide';\n\nimport {\n IItem,\n useInitBambuserLiveShopping,\n} from '@components/LivestreamBanner/hooks/useInitBambuserLiveShopping';\nimport {\n EShowComponentLayout,\n ILivestream,\n} from '@components/LivestreamBanner/model';\nimport { getShowElementId } from '@components/LivestreamBanner/utils/getShowElementId';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\n\nimport { LivestreamCard } from './components/LivestreamCard';\nimport { MainWrapper, CardsWrapper } from './styled';\n\ninterface ILivestreamBannersProps {\n livestreams: ILivestream[];\n}\n\nconst LivestreamBanners: ReactFCC = ({\n livestreams,\n}) => {\n const isNewPdDesignEnabled = useNewPdDesignEnabled();\n\n useInitBambuserLiveShopping({\n getItems: useCallback(\n () =>\n livestreams\n ? livestreams.flatMap((livestream) => [\n {\n showId: livestream.showId,\n deeplink: livestream.deeplink,\n node: document.getElementById(\n getShowElementId(\n livestream.showId,\n EShowComponentLayout.MOBILE\n )\n ),\n },\n ])\n : [],\n [livestreams]\n ),\n });\n\n return livestreams && livestreams.length > 0 ? (\n \n \n {livestreams.map((livestream, index) => {\n return (\n \n );\n })}\n \n \n ) : null;\n};\n\nexport default LivestreamBanners;\n","import * as React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport {\n ActionButton,\n ButtonModel,\n Colors,\n InfoCircleIcon,\n} from '@notino/react-styleguide';\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { withProviders } from '@context/contextConfig';\nimport { useReviewsFetch } from '@queries/useReviews/useReviewsFetch';\nimport { useReviewsSummaryFetch } from '@queries/useReviews/useReviewsSummaryFetch';\nimport { useTabSwitcher } from '@sharedComponents/TabSwitcher/context/TabSwitcherContext';\n\nimport { useNewPdDesignEnabled } from '../../hooks/useNewPdDesignEnabled';\n\nimport { PAGE_SIZE } from './constants';\nimport { LoadingWrapper } from './Loading/LoadingWrapper';\nimport { ReviewsSkeleton } from './Loading/ReviewsSkeleton';\nimport { ReviewSummarySkeleton } from './Loading/ReviewSummarySkeleton';\nimport { messages } from './messages';\nimport { ReviewsItems } from './ReviewItems';\nimport { ReviewItemsProvider } from './ReviewItems/context';\nimport { SortBox } from './ReviewItems/styled';\nimport { ReviewsSummary } from './ReviewsSummary';\nimport { CollectReviewsLink, CollectReviewsWrapper } from './styled';\nimport { CenterWrapper, ErrorMessage, Wrapper } from './styled';\nimport { shouldOpenReviewModal } from './utils/shouldOpenReviewModal';\n\ninterface IReviewsProps {\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number];\n productCode: string;\n masterId: string;\n reviewsTabId: number;\n renderReviewsOnServer: boolean;\n wrapperRef?: React.Ref;\n}\n\nconst ReviewsComponent: React.FC = React.memo(\n ({\n productCode,\n masterId,\n reviewsTabId,\n renderReviewsOnServer,\n wrapperRef,\n }) => {\n const { formatMessage } = useIntl();\n\n const reviewModalOpen = shouldOpenReviewModal();\n const newPd = useNewPdDesignEnabled();\n\n const { activeTabId, isReviewTabVisibleOnMobile } = useTabSwitcher();\n const isActive =\n activeTabId === reviewsTabId ||\n isReviewTabVisibleOnMobile ||\n Boolean(reviewModalOpen);\n\n const skip = renderReviewsOnServer ? false : !isActive;\n const ssr = renderReviewsOnServer ? true : isActive;\n\n const {\n data: reviewsSummaryData,\n loading: reviewsSummaryLoading,\n error: reviewsSummaryError,\n refetch: reviewsSummaryRefetch,\n } = useReviewsSummaryFetch(masterId, { skip, ssr });\n\n const { data, error, loading, refetch, fetchMore } = useReviewsFetch(\n PAGE_SIZE,\n productCode,\n { skip, ssr }\n );\n\n if (!isActive && !renderReviewsOnServer) {\n return null;\n }\n\n const reviewOverview =\n reviewsSummaryData?.productDetailByMasterId?.[0]?.reviewOverview;\n const reviewSummary =\n reviewsSummaryData?.productDetailByMasterId?.[0]?.reviewSummary;\n\n const textReviewsCount = reviewOverview?.textReviewsCount ?? 0;\n\n const refetchSummary = async () => {\n await reviewsSummaryRefetch();\n };\n\n const refetchReviews = async () => {\n await refetch();\n };\n\n return (\n \n }\n error={\n \n \n \n \n\n \n \n \n \n }\n >\n \n \n\n \n {formatMessage(messages.collectingReviewsText)}\n \n \n\n \n \n\n }\n error={\n <>\n \n \n \n \n \n \n \n \n \n \n }\n >\n \n \n \n );\n }\n);\n\nexport const Reviews =\n withProviders(ReviewItemsProvider)(ReviewsComponent);\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { useQuery } from '@apollo/client';\n\nimport {\n GetProductViewQuery,\n GetRichContentAvailableQuery,\n GetRichContentAvailableQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport { TabWrapper } from '@components';\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { useLivestreams } from '@components/LivestreamBanner/hooks/useLivestreams';\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\nimport { useApolloClientHeaders } from '@hooks/useApolloClientHeaders';\nimport { TabContent } from '@sharedComponents/TabSwitcher';\nimport { assignRefs } from '@utils/assignRefs';\nimport { useIsDesktop } from '@utils/helpers';\n\nimport messages from '../../messages';\nimport getRichContentAvailableQuery from '../../queries/richContentAvailable.graphql';\nimport { useNewPdDesignEnabled } from '../hooks/useNewPdDesignEnabled';\nimport { useOpenBVModal } from '../hooks/useOpenBVModal';\nimport { TabIds, Tabs } from '../model';\nimport {\n TitleWrapper,\n TextNormal,\n ShowOnMobile,\n ShowOnDesktop,\n DescriptionTitle,\n CharacteristicsTitle,\n ProductTitleWrapper,\n ReviewSummaryCount,\n CompositionTitle,\n} from '../styled';\n\nimport { AboutBrand } from './AboutBrand';\nimport { AboutProduct } from './AboutProduct';\nimport { Composition } from './Composition';\nimport { ContentSwitcher } from './ContentSwitcher';\nimport { Other } from './Other';\nimport LivestreamBanners from './ProductLivestreams';\nimport { Reviews } from './Reviews';\nimport { useTrackReviewListView } from './Reviews/useTrackReviewListView';\nimport { RichContentArea } from './RichContentArea/loadable';\nimport { TRACKING_ATTRIBUTES, TAB_IDENTIFIERS } from './tracking';\nimport { useHandleReviewDigest } from './useHandleReviewDigest';\nimport { useResetOpenTabOnProductChange } from './useResetOpenTabOnProductChange';\nimport { getDefaultTab, getProductFullName } from './utils';\n\ninterface IProductTabContentProps {\n product: GetProductViewQuery['productDetailByMasterId'][number];\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number];\n rcKey: string;\n customRcKey: string;\n customVersionKey: string;\n reviewsOnServerIds: string[];\n}\n\nexport const ProductTabContent = ({\n product,\n variant,\n rcKey,\n customRcKey,\n customVersionKey,\n reviewsOnServerIds,\n}: IProductTabContentProps) => {\n const { data: richContent } = useQuery<\n GetRichContentAvailableQuery,\n GetRichContentAvailableQueryVariables\n >(getRichContentAvailableQuery, {\n variables: {\n rcKey: customRcKey || rcKey,\n versionKey: customVersionKey,\n },\n skip: !customRcKey && !rcKey,\n ssr: false,\n });\n\n const { bazaarvoiceIntegrationPd, livestreamOnPdEnabled, pictogramsEnabled } =\n useFeatureFlags();\n\n const bvReviewsContainer = React.useRef(null);\n const isFranceShop = useApolloClientHeaders().shopId === 'notino.fr';\n const newPdDesignEnabled = useNewPdDesignEnabled();\n\n const isMobile = !useIsDesktop({ isNewPdDesign: newPdDesignEnabled });\n\n const { data, error } = useLivestreams({\n enabled: livestreamOnPdEnabled && isMobile,\n productCode: variant.productCode,\n });\n\n const { reviewWrapperRef } = useTrackReviewListView();\n\n useOpenBVModal(bvReviewsContainer);\n\n useResetOpenTabOnProductChange(product.id);\n\n useHandleReviewDigest();\n\n /**\n * Characteristics title can be rendered by DescriptionTitle if no description is provided.\n * Otherwise, it is rendered by CharacteristicsTitle on the desktop or inside AboutProduct on mobile.\n */\n const shouldCharsTitleBeRendered =\n Boolean(product.description) && variant.characteristics.length > 0;\n\n const shouldRenderAboutBrand =\n product.brandInfo && Boolean(product.brandInfo.description);\n\n const shouldRenderDescriptionTab =\n Boolean(product.description) ||\n Boolean(variant.characteristics && variant.characteristics.length > 0);\n\n const shouldRenderLivestreamsTab = Boolean(\n livestreamOnPdEnabled &&\n isMobile &&\n !error &&\n data?.getLivestreams?.shows &&\n data?.getLivestreams?.shows.length !== 0\n );\n\n const legalInformation = variant.legalInformation;\n const shouldRenderOthersTab = Boolean(\n legalInformation?.specialStorage ||\n legalInformation?.manufacturerImporter ||\n legalInformation?.importantNotice ||\n isFranceShop\n );\n\n const shouldRenderComposition =\n Boolean(legalInformation?.ingredients) ||\n Boolean(legalInformation?.foodComposition);\n\n const defaultTab = getDefaultTab({\n shouldRenderDescriptionTab,\n shouldRenderLivestreamsTab,\n });\n\n const productFullName = getProductFullName(product);\n const productReviewCount = product?.reviewOverview?.textReviewsCount ?? 0;\n const hasPictograms = Boolean(variant.attributes?.Pictograms?.length > 0);\n\n return (\n <>\n \n \n \n\n \n
\n {shouldRenderDescriptionTab && (\n \n \n \n {productFullName}\n \n ),\n }}\n />\n \n\n {shouldCharsTitleBeRendered && !newPdDesignEnabled && (\n \n \n \n )}\n \n }\n >\n \n \n \n \n )}\n {shouldRenderComposition && (\n \n \n {' '}\n \n {productFullName}\n \n \n \n }\n >\n \n \n \n \n )}\n\n {shouldRenderOthersTab && (\n \n \n \n }\n >\n \n \n \n \n )}\n\n {shouldRenderAboutBrand && (\n \n \n {product.brandInfo.name}\n \n ),\n }}\n />\n \n }\n >\n \n \n \n \n )}\n\n {richContent?.RichContentAvailable?.available && (\n \n \n \n \n \n \n \n \n }\n >\n \n \n \n \n )}\n\n \n \n \n {productFullName}\n \n {productReviewCount > 0 &&\n !bazaarvoiceIntegrationPd && (\n \n {productReviewCount}\n \n )}\n \n ),\n }}\n />\n \n }\n >\n \n {bazaarvoiceIntegrationPd ? (\n \n ) : (\n \n )}\n \n \n\n {shouldRenderLivestreamsTab && (\n \n \n \n }\n >\n \n \n \n \n )}\n
\n
\n \n );\n};\n","import { useEffect } from 'react';\nimport { useInView } from 'react-intersection-observer';\n\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nexport const useTrackReviewListView = () => {\n const { ref, inView } = useInView({ triggerOnce: true });\n\n useEffect(() => {\n if (inView) {\n dispatchTrackingEvent({ event: 'review_list_view' });\n }\n }, [inView]);\n\n return { reviewWrapperRef: ref };\n};\n","import * as React from 'react';\n\nimport { useTabSwitcher } from '@sharedComponents/TabSwitcher/context/TabSwitcherContext';\n\nexport const useResetOpenTabOnProductChange = (productId: string | number) => {\n const { setActiveTab, tabs } = useTabSwitcher();\n const firstTab = tabs?.[0];\n\n React.useEffect(() => {\n if (!firstTab) {\n return;\n }\n setActiveTab(firstTab?.id);\n }, [productId, setActiveTab, firstTab]);\n};\n","import * as React from 'react';\n\nimport styled from 'styled-components';\n\nimport { breakpoints } from '@notino/react-styleguide';\n\nimport { assignRefs } from '@utils/assignRefs';\n\nconst Placeholder = styled.div`\n @media (min-width: ${breakpoints.lg}) {\n display: none;\n }\n`;\n\ninterface IProps {\n tabsAbsoluteContainerEl: HTMLDivElement;\n}\n\nconst createObserver = (placeholderEl: HTMLDivElement) =>\n new ResizeObserver((entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n if (entry.borderBoxSize) {\n // Firefox implements `borderBoxSize` as a single content rect, rather than an array\n const borderBoxSize: ResizeObserverSize = Array.isArray(\n entry.borderBoxSize\n )\n ? entry.borderBoxSize[0]\n : entry.borderBoxSize;\n\n placeholderEl.style.height = `${borderBoxSize.blockSize}px`;\n }\n }\n });\n\nconst MobileTabContentPlaceholder = React.forwardRef(\n ({ tabsAbsoluteContainerEl }, ref) => {\n const placeholderRef = React.useRef();\n\n React.useEffect(() => {\n if (!placeholderRef.current || !tabsAbsoluteContainerEl) {\n return;\n }\n\n const observer = createObserver(placeholderRef.current);\n observer.observe(tabsAbsoluteContainerEl);\n return () => observer.disconnect();\n }, [tabsAbsoluteContainerEl]);\n\n return ;\n }\n);\n\nexport const useMoveTabsToMobilePlaceholder = () => {\n const absoluteTabsWrapperRef = React.useRef();\n const tabsPlaceholderRef = React.useRef();\n const topSectionRef = React.useRef();\n\n React.useEffect(() => {\n const absoluteEl = absoluteTabsWrapperRef.current;\n const placeholderEl = tabsPlaceholderRef.current;\n const topSectionEl = topSectionRef.current;\n\n if (!absoluteEl || !placeholderEl || !topSectionEl) {\n return;\n }\n\n const observer = new ResizeObserver(() => {\n absoluteEl.style.top = `${\n placeholderEl.offsetTop - topSectionEl.offsetTop\n }px`;\n });\n observer.observe(topSectionRef.current);\n\n return () => {\n observer.disconnect();\n };\n }, []);\n\n return { absoluteTabsWrapperRef, tabsPlaceholderRef, topSectionRef };\n};\n\nexport default MobileTabContentPlaceholder;\n","export const LIST_LABEL = 'related_products';\n","import * as React from 'react';\nimport { useInView } from 'react-intersection-observer';\n\nimport { useQuery } from '@apollo/client';\n\nimport {\n GetRecommendedProductsQueryVariables,\n GetRecommendedProductsQuery,\n} from '@notino/shared/definitions/types';\n\nimport { IProduct } from '@containers/ProductListing/model';\n\nimport messages from '../../messages';\nimport getRecommendedProductsQuery from '../../queries/databreakersRecommendedProducts.graphql';\nimport { useNewPdDesignEnabled } from '../hooks/useNewPdDesignEnabled';\nimport { ProductsSection } from '../ProductsSection';\n\nimport { LIST_LABEL } from './constants';\n\nexport interface IRelatedProductsProps {\n items: Array;\n currentProductCode: string;\n shouldRenderProductsFromDatabreakers?: boolean;\n}\n\nexport const RelatedProducts: React.FC = React.memo(\n ({\n items,\n currentProductCode,\n shouldRenderProductsFromDatabreakers = false,\n }) => {\n const [ref, inView] = useInView({ triggerOnce: true });\n const newDesign = useNewPdDesignEnabled();\n\n const { data, loading } = useQuery<\n GetRecommendedProductsQuery,\n GetRecommendedProductsQueryVariables\n >(getRecommendedProductsQuery, {\n variables: { productCode: currentProductCode },\n skip: !shouldRenderProductsFromDatabreakers || !inView,\n ssr: false,\n });\n\n const relatedProductsIds = data?.databreakersRecommendedProducts?.length\n ? data.databreakersRecommendedProducts\n : items;\n\n return (\n
\n {inView && !window.recoProducts?.tracking && (\n \n )}\n
\n );\n }\n);\n","import * as React from 'react';\n\nimport { useQuery } from '@apollo/client';\n\nimport { GetSectionsAvailabilityQuery } from '@notino/shared/definitions/types';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { Routine } from '@components/Universals/Routine/loadable';\nimport getSectionsAvailabilityQuery from '@containers/ProductDetailContainer/queries/sectionsAvailability.graphql';\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\n\nimport { RelatedProducts } from '../RelatedProducts';\nimport { Clear } from '../styled';\n\ninterface IRoutineOrRelatedProducts {\n productId: string;\n productCode: string;\n relatedProducts: string[];\n}\n\nexport const RoutineOrRelatedProducts: React.FC =\n React.memo(({ productId, relatedProducts, productCode }) => {\n const {\n data: sectionAvailability,\n loading,\n error,\n } = useQuery(getSectionsAvailabilityQuery, {\n variables: {\n productId,\n },\n ssr: false,\n });\n\n const { recoProductDetail } = useFeatureFlags();\n\n const displayRoutine =\n !error &&\n sectionAvailability?.RoutineByProductId?.available &&\n sectionAvailability?.RoutineByProductId?.routine;\n\n const displayRelatedProducts = relatedProducts?.length > 0;\n\n if (\n loading ||\n (!displayRoutine && !displayRelatedProducts && !recoProductDetail)\n ) {\n return null;\n }\n\n return displayRoutine ? (\n (\n \n )}\n >\n \n \n \n ) : (\n \n );\n });\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n position: relative;\n height: 100%;\n`;\n\nexport const Sticky = styled.div``;\n\nexport const ChildrenTopSensor = styled.div``;\n\nexport const ChildrenBottomSensor = styled.div``;\n\nexport const BottomSensor = styled.div`\n position: absolute;\n bottom: 0px;\n`;\n\nexport const TopSensor = styled.div`\n position: absolute;\n top: 0px;\n`;\n","import { DependencyList, useEffect, useRef } from 'react';\n\ninterface InViewOptions {\n threshold?: number | number[];\n rootMargin?: string;\n initialInView?: boolean;\n deps?: DependencyList;\n}\n\nexport const useInViewRef = (\n options: InViewOptions = {}\n): [\n elementRef: React.RefObject,\n inView: React.MutableRefObject\n] => {\n const { initialInView = false, deps = [] } = options;\n\n const inView = useRef(initialInView);\n const ref = useRef(null);\n\n useEffect(() => {\n const observer = new IntersectionObserver(([entry]) => {\n inView.current = entry.isIntersecting;\n });\n observer.disconnect();\n\n if (ref.current) {\n observer.observe(ref.current);\n }\n\n return () => observer.disconnect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n\n return [ref, inView];\n};\n","import React, {\n PropsWithChildren,\n useCallback,\n useEffect,\n useRef,\n} from 'react';\n\nimport { assignRefs } from '@utils/assignRefs';\nimport { useIsDesktop } from '@utils/helpers';\n\nimport { useNewPdDesignEnabled } from '../hooks/useNewPdDesignEnabled';\n\nimport {\n BottomSensor,\n Sticky,\n TopSensor,\n Container,\n ChildrenTopSensor,\n ChildrenBottomSensor,\n} from './styled';\nimport { useAdjustStickyElementWidth } from './useAdjustStickyElementWidth';\nimport { useInViewRef } from './useInViewRef';\nimport { useScrollDirectionRef } from './useScrollDirectionRef';\nimport { ScrollStage, getScrollStageStylesMap } from './utils';\n\ntype Props = PropsWithChildren<{\n galleryWrapperRef: React.MutableRefObject;\n}>;\n\nconst Component = ({ children, galleryWrapperRef }: Props) => {\n const containerRef = useRef(null);\n const stickyElRef = useRef(null);\n const scrollDir = useScrollDirectionRef();\n const scrollStageRef = useRef('container-top');\n\n const [topRef, topInView] = useInViewRef();\n const [bottomRef, bottomInView] = useInViewRef();\n const [childrenTopRef, childrenTopInView] = useInViewRef();\n const [childrenBottomRef, childrenBottomInView] = useInViewRef();\n const [containerInViewRef, containerInView] = useInViewRef({\n initialInView: true,\n });\n\n useAdjustStickyElementWidth(containerRef, stickyElRef);\n\n const getAssignScrollStageStyles = useCallback(\n () => getScrollStageStylesMap(stickyElRef, containerRef),\n []\n );\n\n useEffect(() => {\n const containerEl = containerRef.current;\n const stickyEl = stickyElRef.current;\n const galleryWrapperEl = galleryWrapperRef.current;\n if (!containerEl || !stickyEl || !galleryWrapperEl) {\n return;\n }\n\n const handleScroll = () => {\n let scrollStage = scrollStageRef.current;\n\n const wholeSidebarFitsInViewport =\n stickyEl.getBoundingClientRect().height <= window.innerHeight;\n const sidebarIsTallerThanContainer =\n stickyEl.getBoundingClientRect().height >=\n galleryWrapperEl.getBoundingClientRect().height;\n\n const isFixedStage =\n scrollStage === 'fixed-scroll-up' ||\n scrollStage === 'fixed-scroll-down';\n\n if (\n wholeSidebarFitsInViewport ||\n sidebarIsTallerThanContainer ||\n !containerInView.current\n ) {\n scrollStage = 'sticky-top';\n } else if (topInView.current) {\n scrollStage = 'container-top';\n } else if (bottomInView.current) {\n scrollStage = 'container-bottom';\n } else if (scrollDir.current === 'down' && childrenBottomInView.current) {\n scrollStage = 'fixed-scroll-down';\n } else if (\n scrollDir.current === 'down' &&\n scrollStage === 'fixed-scroll-down' &&\n !childrenBottomInView.current\n ) {\n scrollStage = 'translated-scroll-up';\n } else if (scrollDir.current === 'up' && childrenTopInView.current) {\n scrollStage = 'fixed-scroll-up';\n } else if (scrollDir.current === 'up' && isFixedStage) {\n scrollStage = 'translated-scroll-up';\n } else if (scrollDir.current === 'down' && isFixedStage) {\n scrollStage = 'translated-scroll-down';\n }\n\n if (scrollStageRef.current !== scrollStage) {\n scrollStageRef.current = scrollStage;\n getAssignScrollStageStyles()[scrollStage]();\n }\n };\n\n const resizeObserver = new ResizeObserver(handleScroll);\n resizeObserver.observe(stickyEl);\n\n handleScroll();\n window.addEventListener('scroll', handleScroll);\n return () => {\n window.removeEventListener('scroll', handleScroll);\n resizeObserver.disconnect();\n };\n }, [\n topInView,\n bottomInView,\n childrenBottomInView,\n childrenTopInView,\n scrollDir,\n galleryWrapperRef,\n containerInView,\n getAssignScrollStageStyles,\n ]);\n\n useEffect(() => {\n const containerEl = containerRef.current;\n const galleryWrapperEl = galleryWrapperRef.current;\n if (!containerEl || !galleryWrapperEl) {\n return;\n }\n\n const handle = () => {\n let scrollStage = scrollStageRef.current;\n\n // NOTE: case when stickyEl is absolutely positioned at bottom:0px and galleryWrapper gets bigger\n // e.g. loading more reviews\n if (scrollStage === 'container-bottom') {\n const isNotScrolledToBottom =\n containerEl.getBoundingClientRect().bottom - window.innerHeight > 0;\n\n if (isNotScrolledToBottom) {\n scrollStage = 'fixed-scroll-up';\n }\n }\n\n if (scrollStageRef.current !== scrollStage) {\n scrollStageRef.current = scrollStage;\n getAssignScrollStageStyles()[scrollStage]();\n }\n };\n\n const resizeObserver = new ResizeObserver(handle);\n resizeObserver.observe(galleryWrapperEl);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [getAssignScrollStageStyles, containerRef, galleryWrapperRef]);\n\n return (\n \n \n\n \n \n\n {children}\n\n \n \n\n \n \n );\n};\n\nexport const StickySidebar = (props: Props) => {\n const newPdDesign = useNewPdDesignEnabled();\n const isDesktop = useIsDesktop({ isNewPdDesign: newPdDesign });\n\n if (isDesktop && newPdDesign)\n return (\n \n {props.children}\n \n );\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <>{props.children};\n};\n","import { useEffect, useRef } from 'react';\n\nexport const useScrollDirectionRef = () => {\n const scrollDir = useRef<'up' | 'down' | null>(null);\n\n useEffect(() => {\n let lastScrollPosition = window.pageYOffset;\n\n const handleScrollDir = () => {\n const currentScrollPosition = window.pageYOffset;\n if (currentScrollPosition > lastScrollPosition) {\n scrollDir.current = 'down';\n } else if (currentScrollPosition < lastScrollPosition) {\n scrollDir.current = 'up';\n } else {\n scrollDir.current = null;\n }\n lastScrollPosition = currentScrollPosition;\n };\n\n document.addEventListener('scroll', handleScrollDir);\n return () => {\n document.removeEventListener('scroll', handleScrollDir);\n };\n }, []);\n\n return scrollDir;\n};\n","import { useEffect } from 'react';\n\nexport function useAdjustStickyElementWidth(\n containerRef: React.MutableRefObject,\n stickyElRef: React.MutableRefObject\n) {\n useEffect(() => {\n const containerEl = containerRef.current;\n const stickyEl = stickyElRef.current;\n if (!containerEl || !stickyEl) {\n return;\n }\n\n // NOTE: I need to set the width explicitly because of position fixed on stickyEl\n const setInnerContainerWidth = () => {\n stickyEl.style.width = `${containerEl.clientWidth}px`;\n };\n setInnerContainerWidth();\n window.addEventListener('resize', setInnerContainerWidth);\n return () => {\n window.removeEventListener('resize', setInnerContainerWidth);\n };\n }, [stickyElRef, containerRef]);\n}\n","import { MutableRefObject } from 'react';\n\nexport type ScrollStage =\n | 'container-top'\n | 'container-bottom'\n | 'translated-scroll-up'\n | 'translated-scroll-down'\n | 'fixed-scroll-down'\n | 'fixed-scroll-up'\n | 'sticky-top';\n\nconst createAssignStyles =\n (stickyEl: HTMLElement) =>\n ({\n position,\n translateY,\n top,\n bottom,\n }: {\n position?: string;\n translateY?: number;\n top?: number;\n bottom?: number;\n }) => {\n stickyEl.style.position = position || 'relative';\n stickyEl.style.transform = translateY\n ? `translate3d(0px, ${translateY}px, 0px)`\n : '';\n stickyEl.style.top = top || top === 0 ? `${top}px` : '';\n stickyEl.style.bottom = bottom || bottom === 0 ? `${bottom}px` : '';\n };\n\nexport const getScrollStageStylesMap = (\n stickyElRef: MutableRefObject,\n containerElRef: MutableRefObject\n): Record void> => {\n const stickyEl = stickyElRef.current;\n const containerEl = containerElRef.current;\n const assign = createAssignStyles(stickyEl);\n const distanceFromPageTop =\n window.pageYOffset + containerEl.getBoundingClientRect().top;\n\n return {\n 'sticky-top': () => assign({ position: 'sticky', top: 0 }),\n 'container-top': () => assign({ top: 0 }),\n 'container-bottom': () => assign({ position: 'absolute', bottom: 0 }),\n 'fixed-scroll-up': () => assign({ position: 'fixed', top: 0 }),\n 'fixed-scroll-down': () => {\n assign({\n position: 'fixed',\n top: stickyEl.getBoundingClientRect().top,\n });\n },\n 'translated-scroll-up': () =>\n assign({\n translateY:\n window.scrollY +\n stickyEl.getBoundingClientRect().top -\n distanceFromPageTop,\n }),\n 'translated-scroll-down': () =>\n assign({ translateY: window.scrollY - distanceFromPageTop }),\n };\n};\n","import * as React from 'react';\n\nimport { useApolloClient } from '@apollo/client';\n\nimport {\n GetAvailabilityAndPriceQueryQuery,\n GetAvailabilityAndPriceQueryQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\n\nimport getAvailabilityAndPrice from './queries/getAvailabilityAndPriceQuery.graphql';\n\nexport const useGetProductById = () => {\n const { query } = useApolloClient();\n const { swogoIgnoreConvertedPrice } = useFeatureFlags();\n\n return React.useCallback(\n async (productId: string | number) =>\n query<\n GetAvailabilityAndPriceQueryQuery,\n GetAvailabilityAndPriceQueryQueryVariables\n >({\n query: getAvailabilityAndPrice,\n variables: {\n id: String(productId),\n },\n fetchPolicy: 'cache-first',\n })\n .then((res) => res.data.vpProductById)\n .then((product) =>\n product\n ? {\n ...product,\n recommendedPrice:\n swogoIgnoreConvertedPrice &&\n product.recommendedPrice?.isConverted\n ? null\n : product.recommendedPrice,\n }\n : null\n ),\n [query, swogoIgnoreConvertedPrice]\n );\n};\n","import * as React from 'react';\n\nimport { useApolloClient } from '@apollo/client';\n\nimport {\n GetAvailabilityAndPriceQueryBatchedQuery,\n GetAvailabilityAndPriceQueryBatchedQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\n\nimport getAvailabilityAndPriceQueryBatched from './queries/getAvailabilityAndPriceQueryBatched.graphql';\n\nexport const useGetProductByIds = () => {\n const { query } = useApolloClient();\n const { swogoIgnoreConvertedPrice } = useFeatureFlags();\n\n return React.useCallback(\n async (productIds: Array) =>\n query<\n GetAvailabilityAndPriceQueryBatchedQuery,\n GetAvailabilityAndPriceQueryBatchedQueryVariables\n >({\n query: getAvailabilityAndPriceQueryBatched,\n variables: {\n ids: productIds.map(String),\n },\n fetchPolicy: 'cache-first',\n })\n .then((res) => res.data.vpProductByIds.filter(Boolean))\n .then((products) =>\n products.map(({ recommendedPrice, ...rest }) => ({\n ...rest,\n recommendedPrice:\n swogoIgnoreConvertedPrice && recommendedPrice?.isConverted\n ? null\n : recommendedPrice,\n }))\n ),\n [query, swogoIgnoreConvertedPrice]\n );\n};\n","import * as React from 'react';\n\nimport { useQuery } from '@apollo/client';\n\nimport { AddToCartSettingsQuery } from '@notino/shared/definitions/types';\n\nimport { AddToCartButtonProvider } from '@sharedComponents/AddToCartButton/context';\nimport { getModalAfterAddToCart } from '@sharedComponents/AddToCartButton/getModalAfterAddToCart';\nimport getAddToCartSettings from '@sharedComponents/AddToCartButton/queries/addToCartSettings.graphql';\n\nimport { useProductDetailContext } from '../ProductDetailContext';\n\nimport { useIntegrateSwogo } from './useIntegrateSwogo';\nimport { useSwogoTracking } from './useSwogoTracking';\n\nconst SwogoScriptBase: React.FC = () => {\n useIntegrateSwogo();\n\n return
;\n};\n\nexport const SwogoScript = () => {\n const { currentVariant, product } = useProductDetailContext();\n const { data } = useQuery(getAddToCartSettings);\n const { trackProductsAdded, trackProductsFailed } = useSwogoTracking();\n\n if (!data) {\n return null;\n }\n\n return (\n \n \n \n );\n};\n","import * as React from 'react';\n\nimport { ProductWithCount } from '@sharedComponents/AddToCartButton/model';\nimport { useHandleAddToCart } from '@sharedComponents/AddToCartButton/sharedComponents/BuyButton/hooks/useHandleAddToCart';\nimport { LocalRequestHeaders } from '@utils/admin-panel';\nimport { isDesktop } from '@utils/helpers';\n\nimport { useProductDetailContext } from '../ProductDetailContext';\n\nimport { useGetProductById } from './useGetProductById';\nimport { useGetProductByIds } from './useGetProductByIds';\n\nexport const useIntegrateSwogo = () => {\n const { currentVariant, product } = useProductDetailContext();\n const { handleAddToCart } = useHandleAddToCart();\n\n const getProductById = useGetProductById();\n const getProductByIds = useGetProductByIds();\n\n React.useEffect(() => {\n window._SwogoIntegration = {\n addToCart: async (products) => {\n const productsInfo: ProductWithCount[] = await Promise.all(\n products.map(async (p) => {\n const { productCode, annotation, name, masterId } =\n await getProductById(p.internalProductID);\n return {\n id: String(p.internalProductID),\n count: p.quantity,\n productCode,\n variantName: annotation,\n name,\n masterId,\n };\n })\n );\n\n await handleAddToCart({\n products: productsInfo,\n });\n },\n getPDPSkus: () =>\n product.variants.map((v) => ({\n internalProductID: Number(v.id),\n sku: v.productCode,\n price: v.price.value,\n active: v.canBuy,\n title: `${product.brandInfo.name} ${product.collection || ''}`.trim(),\n quantity: 1,\n isSelectedVariant: v.id === currentVariant.id,\n })),\n getLanguage: () => LocalRequestHeaders.localHeaders.language,\n getPageSize: () => (isDesktop() ? 'Desktop' : 'Mobile'),\n getPageType: () => 'ProductDetail',\n getAvailabilityAndPrice: ({ internalProductID }) =>\n getProductById(internalProductID),\n getAvailabilityAndPriceBatched: ({ internalProductIDs }) =>\n getProductByIds(internalProductIDs),\n };\n }, [\n handleAddToCart,\n product.brandInfo.name,\n product.collection,\n product.variants,\n getProductById,\n getProductByIds,\n currentVariant.id,\n ]);\n};\n","import { GetAvailabilityAndPriceQueryQuery } from '@notino/shared/definitions/types';\nimport { getVariantPriceWithoutTax } from '@notino/web-tracking';\n\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\nimport { IAddToCartButtonProps } from '@sharedComponents/AddToCartButton/model';\n\nimport { useGetProductById } from './useGetProductById';\n\nexport const useSwogoTracking = () => {\n const getProductById = useGetProductById();\n\n const getTrackingProduct = (\n products: Parameters[0],\n _product: GetAvailabilityAndPriceQueryQuery['vpProductById'],\n index: number\n ) => ({\n collection: _product.name,\n brand_name: _product.brand.name,\n product_code: _product.productCode,\n product_name: `${_product.name} ${_product.annotation}`.trim(),\n primary_category: _product.primaryCategories.category,\n primary_subcategory: _product.primaryCategories.subCategory,\n kind: _product.primaryCategories.kind,\n primary_type: _product.primaryCategories.type,\n cart_type: 'cart',\n list_position: index + 1,\n list_name: 'virtual_bundle_0',\n full_price: _product.price.value,\n price: getVariantPriceWithoutTax(_product.price),\n quantity: products.find((x) => x.id === _product.id)?.count || 0,\n });\n\n const trackProductsAdded: IAddToCartButtonProps['onProductAdded'] = async (\n products\n ) => {\n const productsById = await Promise.all(\n products.map(async ({ id }) => {\n return getProductById(id);\n })\n );\n dispatchTrackingEvent({\n event: 'multi_add_to_cart',\n _clear: true,\n add: {\n products: productsById.map((p, i) =>\n getTrackingProduct(products, p, i)\n ),\n },\n });\n };\n\n const trackProductsFailed: IAddToCartButtonProps['onProductAddFailed'] =\n async (error, products) => {\n const productsById = await Promise.all(\n products.map(async ({ id }) => {\n return getProductById(id);\n })\n );\n dispatchTrackingEvent({\n event: 'add_to_cart_failed',\n _clear: true,\n add: {\n products: productsById.map((p, i) =>\n getTrackingProduct(products, p, i)\n ),\n },\n error: {\n status: error,\n },\n });\n };\n\n return { trackProductsAdded, trackProductsFailed };\n};\n","import * as React from 'react';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\ninterface IVariantNameProps {\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number];\n unit: GetProductViewQuery['productDetailByMasterId'][number]['unit'];\n variantDisplayType: GetProductViewQuery['productDetailByMasterId'][number]['variantDisplayType'];\n}\n\nexport const VariantName: React.FC = ({ variant, unit }) => {\n const { parameters, additionalInfo } = variant;\n\n if (additionalInfo) {\n return {additionalInfo};\n }\n\n if (parameters.package) {\n return (\n \n {parameters.package} {unit}\n \n );\n }\n\n return null;\n};\n","import * as React from 'react';\n\nimport { DrawerContext, Grid, ModalContext } from '@notino/react-styleguide';\nimport { Roles, GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { ContentWrapper } from '@components';\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { RenderInView } from '@components/RenderInView';\nimport { AdminPanel } from '@containers/AdminPanel/loadable';\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\nimport useFeatureSwitches from '@hooks/useFeatureSwitches';\nimport { TabSwitcherProvider } from '@sharedComponents/TabSwitcher/context/TabSwitcherContext';\n\nimport { BlogArticles } from './BlogArticles';\nimport { Breadcrumb } from './Breadcrumb';\nimport { Header } from './Header';\nimport { HeadMeta } from './HeadMeta';\nimport { useDispatchProductsShowEvent } from './hooks/useDispatchProductsShowEvent';\nimport { useInjectBazaarvoice } from './hooks/useDynamicCatalogCollection';\nimport { useAddToLastVisited } from './hooks/useLastVisited/useAddToLastVisited';\nimport { useModifaceFns } from './hooks/useModiface';\nimport { useModiface } from './hooks/useModifaceVariants';\nimport { useNewPdDesignEnabled } from './hooks/useNewPdDesignEnabled';\nimport { useRegisterNotinoApi } from './hooks/useRegisterNotinoApi';\nimport { useTrackItemAndReload } from './hooks/useTrackItemAndReload';\nimport { useTrackPageView } from './hooks/useTrackPageView';\nimport { useTrackProductUrlChange } from './hooks/useTrackProductUrlChange';\nimport { LastVisitedProducts } from './LastVisitedProducts';\nimport { TabIds } from './model';\nimport { ProductBaseInfo } from './ProductBaseInfo';\nimport { DeliveriesDisplayMode } from './ProductBaseInfo/DeliveryTime';\nimport MobileHeaderPlaceholder from './ProductBaseInfo/MobileHeaderPlaceholder';\nimport {\n ProductDetailContextProvider,\n useProductDetailContext,\n} from './ProductDetailContext';\nimport { ProductImageGallery } from './ProductImageGallery';\nimport { BrandLogo } from './ProductImageGallery/BrandLogo';\nimport { isLogoForBrandAvailable } from './ProductImageGallery/BrandLogo/supported-brands';\nimport { ProductJsonLd } from './ProductJsonLd';\nimport { ProductPictogram } from './ProductPictogram';\nimport { ProductTabContent } from './ProductTabContent';\nimport MobileTabContentPlaceholder, {\n useMoveTabsToMobilePlaceholder,\n} from './ProductTabContent/MobileTabContentPlaceholder';\nimport { TabsWithExpandableTextProvider } from './ProductTabContent/ProductTabContentProvider';\nimport { RoutineOrRelatedProducts } from './RoutineOrRelatedProducts';\nimport { StickySidebar } from './StickySidebar';\nimport {\n GalleryWrapper,\n MainInfoWrapper,\n TopSection,\n ProductTabContentGrid,\n PDViewPort,\n ShowOnMobile,\n ShowOnDesktop,\n AbsoluteHeaderWrapper,\n AbsoluteTabsWrapper,\n} from './styled';\nimport { SwogoScript } from './SwogoScript';\nimport { getVariantDescription, isGiftAvailable } from './utils';\nimport { VariantName } from './VariantName';\n\ninterface IPDProps {\n PDView: GetProductViewQuery;\n rcKey: string;\n customRcKey: string;\n customVersionKey: string;\n}\n\nconst tabsWithExpandableText = [TabIds.Description];\n\nconst ProductDetailComponent = ({\n rcKey,\n customRcKey,\n PDView: {\n productDetailByMasterId: [product],\n currentCurrency,\n currentLocale,\n Settings: { imageDomainPath, deliveriesDisplayMode },\n user,\n },\n customVersionKey,\n}: IPDProps) => {\n const { modifaceDesktopEnabled, modifaceMobileEnabled, reviewsOnServerIds } =\n useFeatureSwitches();\n const { swogoIntegrationEnabled } = useFeatureFlags();\n const newPdDesignEnabled = useNewPdDesignEnabled();\n\n const headerRef = React.useRef();\n const galleryWrapperRef = React.useRef();\n\n const { absoluteTabsWrapperRef, tabsPlaceholderRef, topSectionRef } =\n useMoveTabsToMobilePlaceholder();\n\n const {\n engravingAvailable,\n tryItFirstAvailable,\n currentVariant: variant,\n } = useProductDetailContext();\n\n const modiface = useModiface(product.variants);\n\n const {\n detectWebcamAndTrackProductDetailView,\n handleOpenModifaceModal,\n hasWebcam,\n } = useModifaceFns(product, variant, modiface);\n\n const giftAvailable = isGiftAvailable(product.campaigns);\n\n useInjectBazaarvoice(product);\n useDispatchProductsShowEvent(product.variants, {\n section: 'product_detail',\n });\n useAddToLastVisited(product);\n\n useTrackPageView(variant);\n useTrackItemAndReload({\n hasWebcam,\n modiface,\n giftAvailable,\n detectWebcamAndTrackProductDetailView,\n });\n\n useRegisterNotinoApi(variant.productCode);\n\n useTrackProductUrlChange(product, variant);\n\n const hasModiface =\n Boolean(modiface.makeup[variant.id]) || Boolean(modiface.hair[variant.id]);\n\n const tabsComponent = (\n \n \n \n \n \n \n \n );\n\n return (\n <>\n \n \n \n \n \n \n\n {user.role === Roles.Admin && (\n \n \n \n )}\n\n \n \n \n \n \n \n \n \n\n \n\n \n }\n />\n\n {newPdDesignEnabled && tabsComponent}\n \n\n \n \n \n \n \n\n \n \n \n\n \n }\n modifaceVariants={modiface.makeup}\n engravingAvailable={engravingAvailable}\n tryItFirstAvailable={tryItFirstAvailable}\n giftAvailable={giftAvailable}\n />\n \n \n \n \n\n {swogoIntegrationEnabled && !newPdDesignEnabled && (\n \n \n \n )}\n\n {!newPdDesignEnabled && tabsComponent}\n\n {newPdDesignEnabled && (\n \n )}\n\n \n \n \n item.id)}\n />\n \n \n\n \n \n \n \n \n\n \n \n v.productCode)}\n />\n \n \n \n \n \n \n \n );\n};\n\nexport const ProductDetail = (props: IPDProps) => (\n \n \n \n \n \n \n \n \n \n);\n","import * as React from 'react';\n\nimport { ModalModel, ModalContext } from '@notino/react-styleguide';\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\n\nimport { ModifaceModalRef } from '../ModiFaceModal';\nimport ModiFaceModal from '../ModiFaceModal/loadable';\nimport { IModifaceEffectVariants } from '../ModiFaceModal/model';\nimport { trackModifaceOpen, trackModifaceClosed } from '../ModiFaceModal/utils';\nimport { useHasWebcam } from '../useHasWebcam';\n\ninterface UseModifaceFns {\n handleOpenModifaceModal: () => void;\n detectWebcamAndTrackProductDetailView: (\n trackerFunc: (HasWebcam: boolean) => void\n ) => void;\n hasWebcam: boolean | undefined;\n}\n\nexport const useModifaceFns = (\n product: GetProductViewQuery['productDetailByMasterId'][number],\n currentVariant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number],\n modiface: {\n hair: IModifaceEffectVariants;\n makeup: IModifaceEffectVariants;\n }\n): UseModifaceFns => {\n const { toggleModal, hideModal } = ModalContext.useModalContext();\n const { getTimeFromInit } = useTrackingContext();\n const modifaceModalRef = React.useRef(null);\n\n const [hasWebcam, detectWebcamAndTrackProductDetailView] = useHasWebcam();\n\n const handleOpenModifaceModal = React.useCallback(() => {\n trackModifaceOpen({\n timing: getTimeFromInit(),\n product,\n });\n const timeOfOpen = new Date().getTime();\n const isHair = Object.keys(modiface.hair).length > 0;\n\n toggleModal(\n \n \n ,\n {\n noBorders: true,\n center: true,\n size: ModalModel.Sizes.s1200,\n fullscreenOnMobile: true,\n onClose: () => {\n hideModal();\n trackModifaceClosed({\n timing: getTimeFromInit(timeOfOpen),\n product,\n selectedVariant: currentVariant,\n viewedVariants: modifaceModalRef.current?.getViewedVariants(),\n });\n },\n }\n );\n }, [\n getTimeFromInit,\n product,\n toggleModal,\n currentVariant,\n hideModal,\n modiface.hair,\n modiface.makeup,\n ]);\n\n return React.useMemo(\n () => ({\n handleOpenModifaceModal,\n detectWebcamAndTrackProductDetailView,\n hasWebcam,\n }),\n [detectWebcamAndTrackProductDetailView, handleOpenModifaceModal, hasWebcam]\n );\n};\n","import * as React from 'react';\n\nimport { useQuery, useApolloClient } from '@apollo/client';\n\nimport { HasWebcamQuery } from '@notino/shared/definitions/types';\n\nimport { hasDeviceWebcam } from '../ModiFaceModal/utils';\n\nimport hasWebcamQuery from './hasWebcamQuery.graphql';\n\nconst DETECT_WEBCAM_TIMEOUT = 500;\n\nexport const useHasWebcam = () => {\n const client = useApolloClient();\n const {\n data = { ClientCache: { hasWebcam: undefined, __typename: 'ClientCache' } },\n } = useQuery(hasWebcamQuery, {\n fetchPolicy: 'cache-only',\n ssr: false,\n });\n\n const detectWebcamAndTrackProductDetailView = React.useCallback(\n (trackerFunc: (HasWebcam: boolean) => void) => {\n const hasWebcamQueryData = client.cache.readQuery({\n query: hasWebcamQuery,\n });\n\n if (typeof hasWebcamQueryData?.ClientCache?.hasWebcam === 'boolean') {\n trackerFunc(hasWebcamQueryData?.ClientCache?.hasWebcam);\n return;\n }\n\n let tracked = false;\n // save timeout that fires trackerFunction\n setTimeout(() => {\n if (!tracked) {\n tracked = true;\n trackerFunc(false);\n }\n }, DETECT_WEBCAM_TIMEOUT);\n\n hasDeviceWebcam((hasDeviceWebcamera: boolean) => {\n if (!tracked) {\n tracked = true;\n trackerFunc(hasDeviceWebcamera);\n }\n\n client.writeQuery({\n query: hasWebcamQuery,\n data: {\n ClientCache: {\n hasWebcam: hasDeviceWebcamera,\n __typename: 'ClientCache',\n },\n },\n });\n });\n },\n [client]\n );\n\n return [\n data?.ClientCache?.hasWebcam,\n detectWebcamAndTrackProductDetailView,\n ] as const;\n};\n","import * as React from 'react';\n\nexport const useRegisterNotinoApi = (productCode: string) => {\n React.useEffect(() => {\n if (!window.NotinoAPI) {\n window.NotinoAPI = {} as INotinoAPI;\n }\n window.NotinoAPI.getProductCode = () => productCode;\n }, [productCode]);\n};\n","import * as React from 'react';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { useGetImageAttributes } from '@components/CdnImage/useImageAttributes';\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\nimport { useTabSwitcher } from '@sharedComponents/TabSwitcher/context/TabSwitcherContext';\n\nimport { TabIds } from '../../model';\n\nexport const useInjectBazaarvoice = (\n product: GetProductViewQuery['productDetailByMasterId'][number]\n) => {\n const { bazaarvoiceIntegrationPd } = useFeatureFlags();\n\n const { setActiveTab } = useTabSwitcher();\n\n const getImageAttributes = useGetImageAttributes();\n\n React.useEffect(() => {\n if (!bazaarvoiceIntegrationPd) {\n return;\n }\n\n const { kind, category } = product.primaryCategories;\n\n window.bvDCC = {\n catalogData: {\n locale: bazaarvoiceIntegrationPd.locale,\n catalogProducts: product.variants.map((variant) => ({\n productId: variant.productCode,\n productName: variant.name,\n productImageURL: getImageAttributes(\n variant.imagesByCategory.mainImage.src,\n 'original',\n variant.imagesByCategory.mainImage.alt\n ).src,\n productPageURL: `${window.location.origin}${variant.url}`,\n eans: [variant.eanCode],\n categoryPath: [\n kind && { Name: kind },\n category && { Name: category },\n ].filter(Boolean),\n brandId: product.brandInfo.id,\n brandName: product.brandInfo.name,\n family: product.code,\n })),\n },\n };\n\n window.bvCallback = function (BV) {\n for (\n let i = 0, len = window.bvDCC.catalogData.catalogProducts.length;\n i < len;\n i++\n ) {\n BV.pixel.trackEvent('CatalogUpdate', {\n type: 'Product',\n locale: window.bvDCC.catalogData.locale,\n catalogProducts: [window.bvDCC.catalogData.catalogProducts[i]],\n });\n }\n\n BV.reviews.on('show', () => {\n setActiveTab(TabIds.Reviews);\n\n setTimeout(() =>\n document.getElementById('tabAnchor').scrollIntoView({\n block: 'start',\n behavior: 'smooth',\n })\n );\n });\n };\n }, [\n bazaarvoiceIntegrationPd,\n getImageAttributes,\n product.brandInfo.id,\n product.brandInfo.name,\n product.category,\n product.variants,\n product.code,\n product.primaryCategories,\n setActiveTab,\n ]);\n};\n","import * as React from 'react';\n\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nexport const useTrackPageView = (\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]\n) => {\n React.useEffect(() => {\n dispatchTrackingEvent({\n event: 'page_view',\n page: {\n path: window.location.pathname,\n title: variant.seo.title,\n type: 'product',\n unified_name: `product-${variant.productCode}`,\n },\n _clear: true,\n });\n }, [variant.productCode, variant.seo.title]);\n};\n","import * as React from 'react';\nimport { useLocation } from 'react-router';\n\nimport { variantUrlFromUrl } from '@notino/shared/client-utils';\nimport { AdditionalServicesAvailability } from '@notino/web-tracking';\n\nimport { useTrackingDisplayType } from '@containers/ProductDetailContainer/utils';\n\nimport { IModifaceEffectVariants } from '../ModiFaceModal/model';\nimport { useProductDetailContext } from '../ProductDetailContext';\nimport { trackItemInExponea, trackPageReload } from '../tracking';\nimport { getLoyaltyDiscountState } from '../utils';\n\nimport { usePriceLogic } from './usePriceLogic';\n\ninterface UseTrackItemAndReload {\n hasWebcam: boolean;\n modiface: { hair: IModifaceEffectVariants; makeup: IModifaceEffectVariants };\n giftAvailable: boolean;\n detectWebcamAndTrackProductDetailView: (\n trackerFunc: (HasWebcam: boolean) => void\n ) => void;\n}\n\nexport const useTrackItemAndReload = ({\n hasWebcam,\n modiface,\n giftAvailable,\n detectWebcamAndTrackProductDetailView,\n}: UseTrackItemAndReload) => {\n const mounted = React.useRef(false);\n const { pathname } = useLocation();\n const variantUrl = variantUrlFromUrl(pathname);\n\n const {\n additionalServices,\n engravingAvailable,\n tryItFirstAvailable,\n currentVariant: variant,\n product,\n } = useProductDetailContext();\n\n const { rrpShown, minimalPriceShown } = usePriceLogic(variant);\n\n const loyaltyDiscount = getLoyaltyDiscountState(variant.customerBenefits);\n const trackingDisplayType = useTrackingDisplayType(product);\n\n // Did update variantUrl\n React.useEffect(() => {\n const trackPageView =\n !variant.canBuy ||\n additionalServices?.data?.CartServicesIncluded ||\n additionalServices?.error;\n\n const eventPayload = {\n variant,\n product,\n modifaceVariants: modiface.makeup,\n engravingAvailable:\n engravingAvailable ?? AdditionalServicesAvailability.notAvailable,\n tryItFirstAvailable:\n tryItFirstAvailable ?? AdditionalServicesAvailability.notAvailable,\n giftAvailable,\n loyaltyDiscount,\n };\n\n if (mounted.current) {\n trackItemInExponea(product, variant);\n trackPageReload({\n rrpShown,\n minimalPriceShown,\n trackingDisplayType,\n ...eventPayload,\n });\n } else if (!mounted.current && trackPageView) {\n trackItemInExponea(product, variant);\n\n // Detect webcam if there is at least one modiface variant\n // if hasWebcam, no need to detect it again\n if (\n Object.keys(modiface.makeup).length > 0 ||\n Object.keys(modiface.hair).length > 0 ||\n hasWebcam\n ) {\n detectWebcamAndTrackProductDetailView(() =>\n trackPageReload({\n rrpShown,\n minimalPriceShown,\n trackingDisplayType,\n ...eventPayload,\n })\n );\n } else {\n trackPageReload({\n rrpShown,\n minimalPriceShown,\n trackingDisplayType,\n ...eventPayload,\n });\n }\n mounted.current = true;\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [variantUrl, additionalServices.loading]);\n};\n","import { useLocation } from 'react-router';\n\nimport { masterUrl } from '@notino/shared/client-utils';\nimport { ProductDetailViewFragmentFragment } from '@notino/shared/definitions/types';\n\nimport { useUpdateEffect } from '@hooks';\n\nimport { trackItemInExponea } from '../tracking';\n\nexport const useTrackProductUrlChange = (\n product: ProductDetailViewFragmentFragment,\n variant: ProductDetailViewFragmentFragment['variants'][number]\n) => {\n const { pathname } = useLocation();\n const productUrl = masterUrl(pathname);\n\n useUpdateEffect(() => {\n trackItemInExponea(product, variant);\n }, [productUrl]);\n};\n","import * as React from 'react';\nimport { useLocation } from 'react-router';\n\nimport { Redirect } from '@components/HttpContext';\nimport {\n IProductViewProviderProps,\n ProductViewProvider,\n useProductView,\n} from '@context/product-view';\n\nimport { ForbiddenProductScreen } from './ForbiddenProductScreen';\nimport { getRcVersionKeys, IRCVersionKeys } from './getRcVersionKeys';\nimport { ProductDetail } from './ProductDetail';\n\nconst addTrailingSlash = (url: string) => {\n return url.endsWith('/') ? url : `${url}/`;\n};\n\nconst ProductDetailContainer: React.FC = () => {\n const location = useLocation();\n const { product, variant, data } = useProductView();\n\n if (!variant) {\n return ;\n }\n\n const pathName = addTrailingSlash(location.pathname);\n\n if (product.url !== pathName && variant.url !== pathName) {\n return ;\n }\n\n if (product.isForbiddenToDisplay) {\n return ;\n }\n\n const keys: IRCVersionKeys = getRcVersionKeys(location);\n return (\n \n );\n};\n\nconst WrappedProductDetailContainer: React.FC = ({\n productId,\n ssrEnabled,\n}) => {\n return (\n \n \n \n );\n};\n\nexport default WrappedProductDetailContainer;\n","import * as History from 'history';\n\nimport { masterUrl } from '@notino/shared/client-utils';\n\nexport interface IRCVersionKeys {\n rcKey: string;\n customRcKey: string;\n customVersionKey: string;\n}\n\nexport const getRcVersionKeys = (\n location: History.Location\n): IRCVersionKeys => {\n let customRcKey = null;\n let customVersionKey = null;\n if (location.search.length > 0) {\n const query = new URLSearchParams(location.search);\n if (query.has('rcKey')) {\n // prefer to show rc with rcKey param\n customRcKey = query.get('rcKey');\n }\n if (query.has('versionKey')) {\n // prefer to show selected rich content version\n customVersionKey = query.get('versionKey');\n }\n }\n\n const rcKey =\n customRcKey ||\n masterUrl(location.pathname, {\n trimLeadingSlash: true,\n trimTrailingSlash: true,\n });\n\n return {\n rcKey,\n customVersionKey,\n customRcKey,\n };\n};\n","import loadable from '@loadable/component';\n\nexport default loadable(() => import('../ProductDetailContainer'));\n","/*\n * ProductBaseInfo messages\n */\nimport { defineMessages } from 'react-intl';\n\nexport default defineMessages({\n aboutBrand: {\n id: 'brand.about',\n defaultMessage: 'O značce {brandName}',\n },\n prodDescription: {\n id: 'pd.about',\n defaultMessage: 'Popis {name}',\n },\n prodDescriptionTabName: {\n id: 'pd.about.tab.name',\n defaultMessage: 'Popis {name}',\n },\n compositionTab: {\n id: 'pd.composition',\n defaultMessage: 'Složení',\n },\n compositionPerfume: {\n id: 'pd.composition.perfume',\n defaultMessage: 'Složení',\n },\n compositionCosmetics: {\n id: 'pd.composition.cosmetics',\n defaultMessage: 'Vlastnosti',\n },\n relArtHeader: {\n id: 'pd.related.articles',\n defaultMessage: 'Napsali jsme o {name}',\n },\n other: {\n id: 'pd.other',\n defaultMessage: 'Ostatní',\n },\n code: {\n id: 'pd.code',\n defaultMessage: 'Kód:',\n },\n relReadMore: {\n id: 'pd.related.articles.more',\n defaultMessage: 'Číst dále',\n },\n lessThan5: {\n id: 'pd.availability.lessThan5',\n defaultMessage: '{count} ks skladem',\n },\n mainPage: {\n id: 'pd.main.page',\n defaultMessage: 'Hlavní stránka',\n },\n moreThan5: {\n id: 'pd.availability.moreThan5',\n defaultMessage: 'Více než 5 ks skladem',\n },\n moreThan20: {\n id: 'pd.availability.moreThan20',\n defaultMessage: 'Skladem',\n },\n outOfStock: {\n id: 'pd.availability.outOfStock',\n defaultMessage: 'Toto zboží není momentálně k dispozici',\n },\n notAvailable: {\n id: 'pd.not.available',\n defaultMessage: 'není k dispozici',\n },\n deliveryDescription: {\n id: 'pd.delivery.description',\n defaultMessage:\n 'Uvedené doby jsou informativní, vycházejí z předpokládaných dodacích lhůt přepravních firem.',\n },\n addToCart: {\n id: 'pd.add.to.cart',\n defaultMessage: 'Do košíku',\n },\n addAllToCart: {\n id: 'pd.add.all.to.cart',\n defaultMessage: 'Vše do košíku',\n },\n\n addedToCart: {\n id: 'pd.added.to.cart',\n defaultMessage: 'Přidáno do košíku',\n },\n continueWithShopping: {\n id: 'pd.continue.with.shopping',\n defaultMessage: 'Pokračovat v nákupu',\n },\n goToCart: {\n id: 'pd.go.to.cart',\n defaultMessage: 'Přejít do košíku',\n },\n priceMissingForFreeDelivery: {\n id: 'pd.amount.missing.for.free.delivery',\n defaultMessage: '{price} do dopravy zdarma',\n },\n customersAlsoBuy: {\n id: 'pd.customers.also.buy',\n defaultMessage: 'Zákazníci také koupili',\n },\n\n watchAvailability: {\n id: 'pd.watch.availability',\n defaultMessage: 'Hlídat dostupnost',\n },\n deliveryWhereEver: {\n id: 'pd.delivery.whereever',\n defaultMessage: 'Kdekoliv v ČR',\n },\n deliveryPersonal: {\n id: 'pd.delivery.personal',\n defaultMessage: 'Osobní odběr',\n },\n deliveryDisallowed: {\n id: 'pd.delivery.disallowed',\n defaultMessage: 'Not allowed',\n },\n deliverToday: {\n id: 'pd.delivery.today',\n defaultMessage: 'již dnes',\n },\n deliverTomorrow: {\n id: 'pd.delivery.tomorrow',\n defaultMessage: 'již zítra',\n },\n watchdogText: {\n id: 'pd.watchdog.text',\n defaultMessage: `\n Rádi Vás budeme informovat e-mailem, až zboží naskladníme.\n Samozřejmě je jen na Vás, jestli nabídku využijete.\n `,\n },\n watchdogSentHeader: {\n id: 'pd.watchdog.sent.header',\n defaultMessage: 'Váš e-mail byl uložen.',\n },\n watchdogSentText: {\n id: 'pd.watchdog.sent.text',\n defaultMessage:\n 'Budeme Vás informovat o změnách v dostupnosti tohoto produktu.',\n },\n watchdogHeader: {\n id: 'pd.watchdog.header',\n defaultMessage: 'Hlídání dostupnosti zboží',\n },\n watchdogEmailLabel: {\n id: 'pd.watchdog.email.label',\n defaultMessage: 'Vepište svůj e-mail',\n },\n watchdogSendButton: {\n id: 'pd.watchdog.send.button',\n defaultMessage: 'Odeslat',\n },\n watchdogTryAgainButton: {\n id: 'pd.watchdog.tryAgain.button',\n defaultMessage: 'Zkusit znovu',\n },\n watchdogSubmitError: {\n id: 'pd.watchdog.submit.error',\n defaultMessage: 'Chyba při odeslání formuláře.',\n },\n watchdogGDPRinfo: {\n id: 'pd.watchdog.gdpr.info',\n defaultMessage:\n 'Odesláním souhlasíte se zpracováním emailu za účelem hlídání dostupnosti tohoto zboží společností Notino s.r.o., se sídlem v Brně, Londýnské náměstí 881/6, PSČ 639 00, IČO 27609057 do odeslání emailu, maximálně 1 roku. Údaje mohou být předány a zpracovány sesterskými společnostmi. Máte právo svůj souhlas kdykoliv odvolat, požadovat od správce přístup k osobním údajům, jejich opravu, výmaz, přenositelnost, popřípadě omezení zpracování. Více informací v {link}.​',\n },\n giftForYou: {\n id: 'pd.giftForYou',\n defaultMessage: 'Dárek pro vás',\n },\n discount: {\n id: 'pd.discount',\n defaultMessage: 'Sleva',\n },\n rrp: {\n id: 'pd.rrp',\n defaultMessage: 'Doporučená maloobchodní cena',\n },\n productVolume: {\n id: 'pd.productVolume',\n defaultMessage: 'Obsah výrobku',\n },\n productDamaged: {\n id: 'pd.productDamaged',\n defaultMessage:\n 'Nový nerozbalený produkt se 100% obsahem, který má pouze poškozený obal.',\n },\n productReturned: {\n id: 'pd.productReturned',\n defaultMessage:\n 'Vrácený produkt, který může být lehce použitý nebo bez původního obalu.',\n },\n withoutCellophane: {\n id: 'pd.withoutCellophane',\n defaultMessage: 'Tento produkt je již od výrobce balen bez celofánu.',\n },\n perfumeSample: {\n id: 'pd.perfumeSample',\n defaultMessage: 'odstřik',\n },\n differentPackaging: {\n id: 'pd.differentPackaging',\n defaultMessage:\n 'Produkt může mít odlišné balení než to, které je na obrázku.',\n },\n isForProfessionals: {\n id: 'pd.isForProfessionals',\n defaultMessage: 'Pouze k profesionálnímu použití',\n },\n related: {\n id: 'relatedProducts.related',\n defaultMessage: 'Mohlo by vás zajímat',\n },\n getInspired: {\n id: 'pd.getInspired.title',\n defaultMessage: 'Inspirujte se',\n },\n lastVisited: {\n id: 'pd.last.visited',\n defaultMessage: 'Naposledy jste prohlíželi',\n },\n sendReviewRetry: {\n id: 'reviews.send.review.retry',\n defaultMessage: 'Zkusit znovu',\n },\n reviewHeader: {\n id: 'reviews.header',\n defaultMessage: 'Hodnocení {name}',\n },\n writeReview: {\n id: 'reviews.write.review',\n defaultMessage: 'Napsat hodnocení',\n },\n noReview: {\n id: 'reviews.no.review',\n defaultMessage: 'Tento produkt zatím nikdo nehodnotil, buďte první!',\n },\n reviews: {\n id: 'reviews.reviews',\n defaultMessage: 'hodnocení',\n },\n showNext: {\n id: 'reviews.show.next',\n defaultMessage: 'Zobrazit další',\n },\n showParametersReviews: {\n id: 'reviews.show.parameters.reviews',\n defaultMessage: 'Zobrazit hodnocení podle vlastností',\n },\n hideParametersReviews: {\n id: 'reviews.hide.parameters.reviews',\n defaultMessage: 'Skrýt hodnocení podle vlastností',\n },\n fetchFailed: {\n id: 'reviews.fetch.failed',\n defaultMessage: 'nepodařilo se načíst',\n },\n retry: {\n id: 'reviews.retry',\n defaultMessage: 'Zkusit znovu',\n },\n nameLabel: {\n id: 'reviews.name.label',\n defaultMessage: 'Jméno',\n },\n emailLabel: {\n id: 'reviews.email.label',\n defaultMessage: 'Email',\n },\n reviewTextLabel: {\n id: 'reviews.review.text.label',\n defaultMessage: 'Vaše recenze',\n },\n reviewTextDefault: {\n id: 'reviews.review.text.default',\n defaultMessage:\n 'Nepište zde prosím dotazy ani informace, které se produktu netýkají.',\n },\n reviewWasItUsefull: {\n id: 'reviews.was.it.usefull',\n defaultMessage: 'Bylo hodnocení užitečné?',\n },\n reviewUsefullYes: {\n id: 'reviews.usefull.yes',\n defaultMessage: 'Ano',\n },\n reviewUsefullNo: {\n id: 'reviews.usefull.no',\n defaultMessage: 'Ne',\n },\n rating: {\n id: 'rating.input.name',\n defaultMessage: 'Celkové hodnocení',\n },\n ratingErrorRequired: {\n id: 'rating.input.name.error.required',\n defaultMessage: 'Prosím vyberte vaše hodnocení',\n },\n ratingTypeDesignFlakon: {\n id: 'rating.type.designFlakon',\n defaultMessage: 'vzhled flakonu',\n },\n ratingTypePersistenceScent: {\n id: 'rating.type.persistenceScent',\n defaultMessage: 'výdrž vůně',\n },\n ratingTypeIntensity: {\n id: 'rating.type.intensity',\n defaultMessage: 'intenzita',\n },\n ratingTypeOverallImpresion: {\n id: 'rating.type.overallImpresion',\n defaultMessage: 'celkový dojem',\n },\n ratingTypeSimplicityApplication: {\n id: 'rating.type.simplicityApplication',\n defaultMessage: 'jednoduchost aplikace',\n },\n ratingTypeCosmeticQuality: {\n id: 'rating.type.cosmeticQuality',\n defaultMessage: 'kosmetická kvalita',\n },\n ratingTypeTotalHappiness: {\n id: 'rating.type.totalHappiness',\n defaultMessage: 'spokojenost s výsledkem',\n },\n orderReviewsByDateTimeDesc: {\n id: 'order.reviews.by.date.desc',\n defaultMessage: 'Nejnovější',\n },\n orderReviewsByDateTimeAsc: {\n id: 'order.reviews.by.date.asc',\n defaultMessage: 'Nejstarší',\n },\n orderReviewsByRatingDesc: {\n id: 'order.reviews.by.rating.desc',\n defaultMessage: 'Nejlépe hodnocené',\n },\n orderReviewsByRatingAsc: {\n id: 'order.reviews.by.rating.asc',\n defaultMessage: 'Nejhůře hodnocené',\n },\n orderReviewsByFavoriteDesc: {\n id: 'order.reviews.by.favorite.desc',\n defaultMessage: 'Oblíbené',\n },\n orderReviewsByFavoriteAsc: {\n id: 'order.reviews.by.favorite.asc',\n defaultMessage: 'Neoblíbené',\n },\n reviewsCannotVote: {\n id: 'reviews.cannot.vote',\n defaultMessage: 'Pro hlasování se prosím',\n },\n reviewsLogIn: {\n id: 'reviews.log.in',\n defaultMessage: 'přihlaste',\n },\n reviewsVoteError: {\n id: 'reviews.vote.error',\n defaultMessage: 'Hlasování skončilo chybou.',\n },\n reviewsShowAll: {\n id: 'reviews.show.all',\n defaultMessage: 'Všechny recenze',\n },\n showSpecials: {\n id: 'pd.showSpecials',\n defaultMessage: 'Zobrazit produkty se speciální slevou',\n },\n hideSpecials: {\n id: 'pd.hideSpecials',\n defaultMessage: 'Skrýt produkty se speciální slevou',\n },\n vpTitle: {\n id: 'vp.title',\n defaultMessage: 'Hodí se k sobě',\n },\n rcHeader: {\n id: 'pd.rc.header',\n defaultMessage: 'Více o {name}',\n },\n illustrativeImage: {\n id: 'engraving.illustrative.image',\n defaultMessage: 'Obrázek je pouze ilustrační',\n },\n fixedHeaderArticles: {\n id: 'pd.fixedHeader.articles',\n defaultMessage: 'Napsali jsme',\n },\n fixedHeaderRichContent: {\n id: 'pd.fixedHeader.richContent',\n defaultMessage: 'Více',\n },\n fixedHeaderLivestreams: {\n id: 'pd.fixedHeader.livestreams',\n defaultMessage: 'Prohlédněte si ve videu',\n },\n livestreamsPlayButton: {\n id: 'pd.livestreams.play',\n defaultMessage: 'Spustit',\n },\n wishlistLabel: {\n id: 'pd.wishlist.label',\n defaultMessage: 'Přidat do oblíbených',\n },\n freeGiftPackagingTitle: {\n id: 'pd.freeGiftPackaging',\n defaultMessage: 'Dárkové balení zdarma',\n },\n freeGiftPackagingBrandInfo: {\n id: 'pd.freeGiftPackagingBrandInfo',\n defaultMessage:\n 'K nákupu produktů značky {brand} nad {price} {currency} nyní získáte dárkové balení zdarma.\\n' +\n 'Stačí v košíku vybrat požadovanou barvu krabičky. Nabídka platí do vydání denních zásob.',\n },\n freeGiftPackagingProductInfo: {\n id: 'pd.freeGiftPackagingProductInfo',\n defaultMessage:\n 'Zabalte si tento produkt do dárkové balení. Nabídka platí do vydání denních zásob.',\n },\n tryItOnYourself: {\n id: 'modiface.try.it.on.yourself',\n defaultMessage: 'Zkusit na sobě',\n },\n selectAppearance: {\n id: 'modiface.select.appearance',\n defaultMessage: 'Vybrat',\n },\n importantNotices: {\n id: 'pd.legal.importantNotices',\n defaultMessage: 'Důležitá upozornění:',\n },\n preparationUsage: {\n id: 'pd.legal.preparationUsage',\n defaultMessage: 'Způsob přípravy/užití (dávkování):',\n },\n fullComposition: {\n id: 'pd.legal.fullComposition',\n defaultMessage: 'Kompletní složení:',\n },\n foodComposition: {\n id: 'pd.legal.foodComposition',\n defaultMessage: 'Složení:',\n },\n showAllText: {\n id: 'pd.showAllText',\n defaultMessage: 'Celý text',\n },\n instructions: {\n id: 'pd.legal.instructions',\n defaultMessage: 'Podrobný návod:',\n },\n videoInstructions: {\n id: 'pd.legal.videoInstructions',\n defaultMessage: 'Videa:',\n },\n onlyOriginalReviews: {\n id: 'pd.reviews.show.original.reviews',\n defaultMessage: 'Pouze české recenze',\n },\n reviewSource: {\n id: 'pd.reviews.source',\n defaultMessage: 'Přeloženo z {shopId}',\n },\n automaticlyTranslatedReview: {\n id: 'pd.reviews.automaticly.translated.review',\n defaultMessage: 'Recenze byla automaticky přeložena z {shopId}',\n },\n sensitiveHairWarningText: {\n id: 'pd.hair.warning.text',\n defaultMessage:\n 'Zjistěte, jak provést test citlivosti pokožky před použitím tohoto produktu.',\n },\n sensitiveHairWarningUrl: {\n id: 'pd.hair.warning.url',\n defaultMessage:\n 'https://www.notino.cz/barveni-vlasu-testovani-citlivosti-pokozky/',\n },\n minimumRecentPrice: {\n id: 'pd.bellowLine.minimalRecentPrice',\n defaultMessage: 'Minimální cena',\n },\n showMoreText: {\n id: 'pd.description.expandableText.showMoreText',\n defaultMessage: 'Zobrazit více',\n },\n redirectReviewsPageLink: {\n id: 'pd.reviews.all.reviews.page.link',\n defaultMessage: '/reviews',\n },\n sharedComment: {\n id: 'pd.reviews.sharedComment',\n defaultMessage: 'Recenze od {userName} z {originalShopId}',\n },\n immediateCollection: {\n id: 'pd.availability.immediateCollection',\n defaultMessage:\n 'Toto zboží je momentálně pouze dostupné k vyzvednutí ihned na některé z našich prodejen.',\n },\n});\n","import { IBasicStyledProps } from '@notino/react-styleguide';\nimport {\n ReviewOrderBy,\n VariantDisplayType,\n VariantFragmentFragment,\n} from '@notino/shared/definitions/types';\n\nimport { ICurrency, ILocale } from '@containers/App/model';\nimport {\n IPrice,\n AttributeType,\n IStockInfo,\n} from '@containers/ProductListing/model';\n\n/** Interfaces */\nexport interface IOpenedProps {\n isExpanded: boolean;\n}\n\nenum WatchdogErrorTypes {\n ERROR = 'Error',\n VALIDATION_ERROR = 'ValidationError',\n}\n\nexport enum ReviewSourceTypes {\n DIRECT = 'direct',\n EMAIL = 'email',\n}\n\ninterface IWatchdogResponse {\n success: boolean;\n}\n\nexport interface IWatchdogError extends IWatchdogResponse {\n type?: WatchdogErrorTypes.ERROR;\n errors?: string[];\n}\n\ntype WatchdogAttributes = 'email' | 'productId';\n\nexport type IWatchdogValidationErrorValues = {\n [index in WatchdogAttributes]: string[];\n};\n\nexport interface IWatchdogValidationError extends IWatchdogResponse {\n type?: WatchdogErrorTypes.VALIDATION_ERROR;\n errors?: IWatchdogValidationErrorValues;\n}\n\nexport type WatchdogResponseTypes = IWatchdogResponse &\n IWatchdogError &\n IWatchdogValidationError;\n\nexport interface IRating {\n id: number;\n ratingType: string;\n score: number;\n}\n\nexport interface IReviewSummary {\n averageRating: number;\n totalVotes: number;\n votes: Record;\n ratings: IRating[];\n}\n\nexport interface IOrderBy {\n key: ReviewOrderBy;\n desc: boolean;\n}\n\nexport interface IVariantProps {\n item: VariantFragmentFragment;\n isSelected: boolean;\n unit: string;\n locale: ILocale;\n currency: ICurrency;\n displayPrice?: boolean;\n variantsCount?: number;\n}\n\nexport interface IVariantsProps {\n selectedId: string;\n variants: VariantFragmentFragment[];\n selectedVariant: VariantFragmentFragment;\n unit: string;\n locale: ILocale;\n currency: ICurrency;\n}\n\nexport interface IStyledVariantProps extends IBasicStyledProps {\n isSelected: boolean;\n isOnStock: boolean;\n}\n\nexport interface IVariantNameProps extends IBasicStyledProps {\n isOnStock: boolean;\n}\n\nexport interface IColumns {\n xs?: number;\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n}\n\nexport interface IBrand {\n id: string;\n name: string;\n description: string;\n}\n\nexport interface IVirtualPackageItem {\n productId: number;\n url: string;\n price: IPrice;\n imageUrl: string;\n name: string;\n brand: IBrand;\n annotation: string;\n stockAvailability: IStockInfo;\n productCode: string;\n orderUnit?: string;\n attributes?: AttributeType;\n}\n\nexport type VariantDisplayWithoutDefault = Exclude<\n VariantDisplayType,\n VariantDisplayType.Default\n>;\n","import styled from 'styled-components';\n\nexport const CenterWrapper = styled.div`\n padding-top: 2.8125rem;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n","import { useLocation } from 'react-router';\n\nimport {\n variantUrlFromUrl,\n pickBestVariant,\n} from '@notino/shared/client-utils';\nimport {\n VariantDisplayType,\n GetProductViewQuery,\n} from '@notino/shared/definitions/types';\nimport { VariantSelector } from '@notino/web-tracking/dist/types/package/ga4/events/constants';\n\nimport { VariantDisplayWithoutDefault } from './model';\n\nexport const isNotDamaged = (variant: {\n attributes: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]['attributes'];\n}) => (variant.attributes ? !variant.attributes.Damage : true);\n\nexport const selectVariant = (\n variants: GetProductViewQuery['productDetailByMasterId'][number]['variants'],\n currentUrl: string\n):\n | GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]\n | undefined => {\n const productUrlPath = variantUrlFromUrl(currentUrl);\n\n if (productUrlPath) {\n return variants.find((variant) => variant.url.includes(productUrlPath));\n }\n\n return pickBestVariant(variants);\n};\n\nexport const getDisplayType = (\n variantDisplayType: GetProductViewQuery['productDetailByMasterId'][number]['variantDisplayType']\n): VariantDisplayWithoutDefault => {\n if (variantDisplayType && variantDisplayType !== VariantDisplayType.Default) {\n return variantDisplayType;\n }\n return VariantDisplayType.Tiles;\n};\n\nexport const useAppendDisplayTypeForAbTest = (url: string) => {\n const location = useLocation();\n const displayType = new URLSearchParams(location.search).get('displayType');\n\n return `${url}?${new URLSearchParams({ displayType }).toString()}`;\n};\n\nexport const useDisplayType = (\n product: GetProductViewQuery['productDetailByMasterId'][number]\n): VariantDisplayWithoutDefault => {\n const location = useLocation();\n const displayType = new URLSearchParams(location.search).get('displayType');\n const originalDisplayType = getDisplayType(product.variantDisplayType);\n\n switch (displayType) {\n case 'Drawer':\n return VariantDisplayType.ShadesDrawer;\n case 'Select':\n return VariantDisplayType.Select;\n }\n\n return originalDisplayType;\n};\n\nexport const useTrackingDisplayType = (\n product: GetProductViewQuery['productDetailByMasterId'][number]\n): VariantSelector => {\n const displayType = useDisplayType(product);\n\n if (\n product.variants.length <= 1 &&\n displayType !== VariantDisplayType.ColorPicker\n ) {\n return 'None';\n }\n\n return displayType;\n};\n\nexport const youtubeIframe = (videoId: string, autoplay = false) => `\n `;\n","import { IStock } from '@notino/shared/definitions/custom-definitions';\nimport { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nexport interface IProductConfig {\n showAddToCartButton?: boolean;\n showAddToCartModal?: boolean;\n}\n\nexport interface IRating {\n score: number;\n votes: number;\n}\n\nexport interface IParameters {\n amount?: number;\n package?: string;\n}\n\nexport interface IPrice {\n value: number;\n currency?: string;\n decimalPlaces?: number;\n}\n\nexport enum AttributeTypes {\n New = 'New',\n Gift = 'Gift',\n FreeDelivery = 'FreeDelivery',\n Clearance = 'Clearance',\n Action = 'Action',\n Sample = 'Sample',\n Unknown = 'Unknown',\n Master = 'Master',\n WithoutCellophane = 'WithoutCellophane',\n IsForProfessionals = 'IsForProfessionals',\n DifferentPackaging = 'DifferentPackaging',\n Damage = 'Damage',\n EAN = 'EAN',\n Pharmacy = 'Pharmacy',\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AttributeType = { [index in AttributeTypes]?: any };\n\nexport enum VariantDisplayTypes {\n Default = 'Default',\n Tiles = 'Tiles',\n Select = 'Select',\n ColorPicker = 'ColorPicker',\n Thumbnail = 'Thumbnail',\n}\n\nexport enum DeliveryDisallowedReasons {\n AirTransportDisallowed = 'AirTransportDisallowed',\n}\n\n// Images\nexport interface IImage {\n src: string;\n alt: string;\n isVideo?: boolean;\n}\n\nexport type Images = IImage[];\n\nexport type IDelivery =\n GetProductViewQuery['productDetailByMasterId'][number]['deliveries'][number];\n\nexport interface IVariant {\n id: string;\n name: string;\n annotation: string;\n orderCode: string;\n productCode: string;\n type?: string;\n parameters?: IParameters;\n price: IPrice;\n canBuy: boolean;\n nextDeliveryDate?: Date;\n stockAvailability: IStockInfo;\n attributes?: AttributeType;\n url: string;\n images: Images;\n videos?: string[];\n maxOrderQty: number;\n showWatchdog: boolean;\n originalPrice?: IPrice;\n additionalInfo: string;\n additionalText: string;\n variantName: string;\n color?: string;\n colors?: string[];\n unitPrice?: IPrice;\n engraving: IEngraving;\n wishlisted: boolean;\n}\n\nexport interface IStockInfo {\n code: IStock;\n count?: number;\n}\n\nexport interface ICampaign {\n name: string;\n imageUrl: string;\n text: string;\n detailPageText: string;\n displayOnDetailPage: boolean;\n giftImageUrl: string;\n productId: string;\n campaignId: string;\n}\n\nexport interface IArticle {\n title: string;\n url: string;\n description: string;\n image: string;\n date: Date;\n author: string;\n}\n\nexport interface IEngraving {\n allowed: boolean;\n characterCount: number;\n config: IEngravingConfig;\n}\n\nexport interface IEngravingConfig {\n servicesType?: string;\n productId?: string;\n orderedCount?: number;\n isAvailable: boolean;\n limit?: number;\n isActive?: boolean;\n price?: number;\n}\n\nexport interface IProduct {\n id: string;\n brand: string;\n brandId: number;\n collection: string;\n annotation: string;\n code: string;\n config: IProductConfig;\n description: string;\n unit: string;\n orderUnit: string;\n rating: IRating;\n variants: IVariant[];\n campaigns?: ICampaign[];\n related: IProduct[];\n deliveries: IDelivery[];\n hasDifferentColors?: boolean;\n isPerfume: boolean;\n variantDisplayType?: VariantDisplayTypes;\n composition: ICharacteristic[];\n relatedArticles: IArticle[];\n url: string;\n kind: string;\n}\n\n/** Model definitions */\nexport interface IProductDictionary {\n [key: string]: IProduct;\n}\n\nexport interface IListingStore {\n masters: R.Dictionary;\n variants: R.Dictionary;\n}\n\nexport interface IDamage {\n volumeInPercent: number;\n descriptions: string[];\n}\n\nexport const MaximumVolumeInPercent: number = 100;\n\nexport interface ICharacteristic {\n name: string;\n help: string;\n values: string[];\n}\n","import loadable from '@loadable/component';\n\nexport default loadable(() => import('./index'));\n","import loadable from '@loadable/component';\n\nexport default loadable(() => import('../Sampling'));\n","import loadable from '@loadable/component';\n\nexport default loadable(() => import('../SamplingThanks'));\n","import loadable from '@loadable/component';\n\nexport default loadable(() => import('../Tryandbuy'));\n","const validations = {\n picker: {\n required: true,\n },\n name: {\n required: true,\n },\n email: {\n required: true,\n regex: {\n pattern:\n \"^[-!#$%&'*+/0-9=?A-Z^_a-z{|}~](\\\\.?[-!#$%&'*+/0-9=?A-Z^_a-z{|}~])*@[a-z0-9](-?[a-z0-9])*(\\\\.[a-z](-?[a-z0-9])*)+$\",\n modifier: 'i',\n },\n },\n address: {\n required: true,\n },\n city: {\n required: true,\n },\n};\n\nexport default validations;\n","import loadable from '@loadable/component';\n\nexport default loadable(() => import('../TryandbuyError'));\n","import loadable from '@loadable/component';\n\nexport default loadable(() => import('../TryandbuyThanks'));\n","import loadable from '@loadable/component';\n\nexport default loadable(() => import('../WishList'));\n","import * as React from 'react';\n\nimport { ReactFCC } from '@notino/react-styleguide';\n\n/*\n * P = wrapped Component's own Props (pass through)\n * C = Context Props\n *\n *\n * note, withProviders does not expose the true Providers,\n * instead, they come wrapped within their own stateful components\n * meaning they don't accept \"value\" via external props\n */\nexport const withProviders =\n (...providers: React.ComponentType[]) =>\n (Component: React.ComponentType

) =>\n (props: P) => {\n function mountProviders(providersArray: React.ComponentType[]) {\n if (!providersArray.length) {\n return ;\n }\n\n const WrapperProvider = providersArray.shift() as ReactFCC;\n return (\n {mountProviders(providersArray)}\n );\n }\n\n return mountProviders([...providers]);\n };\n\nexport const withConsumers =\n >(...consumers: Array>) =>\n (Component: React.ComponentType

) =>\n (props: P) => {\n function mountConsumers(\n consumersArray: Array>,\n consumerProps = {}\n ) {\n if (!consumersArray.length) {\n return ;\n }\n\n const WrapperConsumer = consumersArray.shift();\n return (\n \n {(consumerValues: C) =>\n mountConsumers(consumersArray, {\n ...consumerProps,\n ...consumerValues,\n })\n }\n \n );\n }\n\n return mountConsumers([...consumers]);\n };\n","import * as React from 'react';\nimport { PropsWithChildren } from 'react';\n\nimport { GetRequestHeadersQuery } from '@notino/shared/definitions/types';\n\nexport type LDFeatureFlags = Omit<\n GetRequestHeadersQuery['RequestHeaders']['ldFlags'],\n '__typename'\n>;\nconst LDContext = React.createContext(null);\n\nexport const LDProvider = ({\n children,\n featureFlags,\n}: PropsWithChildren<{ featureFlags: LDFeatureFlags }>) => (\n {children}\n);\n\nexport const useFeatureFlags = (): LDFeatureFlags => {\n const ctx = React.useContext(LDContext);\n if (!ctx) {\n throw new Error('useFeatureFlags must be used inside LDProvider.');\n }\n return ctx;\n};\n","import { SkeletonElement, styled, breakpoints } from '@notino/react-styleguide';\n\ntype PDSkeletonProps = {\n marginTop?: number;\n marginBottom?: number;\n marginLeft?: number;\n marginRight?: number;\n display?: string;\n};\nexport const PDSkeletonElement = styled(SkeletonElement)`\n margin-top: ${(props: PDSkeletonProps) =>\n props.marginTop ? `${props.marginTop}rem` : 0};\n margin-right: ${(props: PDSkeletonProps) =>\n props.marginRight ? `${props.marginRight}rem` : 0};\n margin-bottom: ${(props: PDSkeletonProps) =>\n props.marginBottom ? `${props.marginBottom}rem` : 0};\n margin-left: ${(props: PDSkeletonProps) =>\n props.marginLeft ? `${props.marginLeft}rem` : 0};\n\n display: ${(props: PDSkeletonProps) => props.display || 'block'};\n`;\n\nexport const EmptySpace = styled.div`\n @media (min-width: ${breakpoints.md}) {\n height: 40vh;\n }\n`;\n\nexport const Row = styled.div`\n display: flex;\n align-items: center;\n`;\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport {\n Grid,\n SkeletonElement,\n Colors,\n Ratings,\n} from '@notino/react-styleguide';\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\nimport { GetLoadingProductQuery } from '@notino/shared/definitions/types';\n\nimport { ContentWrapper, TabWrapper } from '@components';\nimport { TabSwitcherProvider } from '@sharedComponents/TabSwitcher/context/TabSwitcherContext';\nimport { TabDivider } from '@sharedComponents/TabSwitcher/styled';\n\nimport messages from '../messages';\nimport { BreadcrumbWrapper } from '../ProductDetail/Breadcrumb/styled';\nimport { Header } from '../ProductDetail/Header';\nimport { useNewPdDesignEnabled } from '../ProductDetail/hooks/useNewPdDesignEnabled';\nimport {\n CodeBlock,\n CodeName,\n Separator,\n Availability,\n Wrapper,\n} from '../ProductDetail/ProductBaseInfo/BellowTheLine/styled';\nimport { Container } from '../ProductDetail/ProductBaseInfo/styled';\nimport { ProductImageGallery } from '../ProductDetail/ProductImageGallery';\nimport { ContentTabLink } from '../ProductDetail/ProductTabContent/ContentSwitcher/ContentTabLink';\nimport {\n ContentSwitcherWrapper,\n TabList,\n ContentSwitcherContainer,\n Container as SwitcherContainer,\n} from '../ProductDetail/ProductTabContent/ContentSwitcher/styled';\nimport {\n Main,\n TopSection,\n GalleryWrapper,\n ShowOnMobile,\n MainInfoWrapper,\n ShowOnDesktop,\n} from '../ProductDetail/styled';\n\nimport { PDSkeletonElement, EmptySpace, Row } from './styled';\n\ninterface ILoadingSkeletonProps {\n product: GetLoadingProductQuery['vpProductById'];\n imageDomainPath: string;\n}\n\nexport const SpaLoadingSkeleton = ({\n product,\n imageDomainPath,\n}: ILoadingSkeletonProps) => {\n const newPdDesign = useNewPdDesignEnabled();\n\n const headerProps = {\n brandInfo: {\n id: '#',\n name: '',\n __typename: 'Brand' as const,\n description: '',\n url: '#',\n },\n productId: product.id,\n productCode: product.productCode,\n collection: product.name,\n subName: null,\n desc: product.annotation,\n hideReviews: true,\n };\n\n const ratingsProps = {\n rating: product?.reviewOverview?.rating ?? 0,\n size: 16,\n numReviews: 0,\n foreGround: Colors.primary,\n microdata: false,\n };\n\n return (\n <>\n \n

\n \n \n \n \n \n \n \n
\n \n
\n
\n\n \n
\n\n \n \n \n \n \n
\n \n
\n
\n \n \n\n \n \n \n \n \n \n \n \n {' '}\n \n \n \n\n | \n \n \n \n \n \n \n \n\n \n \n
\n
\n\n \n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n \n
\n
\n
\n \n \n \n );\n};\n","import * as React from 'react';\nimport { useLocation } from 'react-router';\n\nimport { useApolloClient } from '@apollo/client';\n\nimport { Spinner, Colors } from '@notino/react-styleguide';\nimport { variantIdFromUrl } from '@notino/shared/client-utils';\nimport { GetLoadingProductQuery } from '@notino/shared/definitions/types';\n\nimport getLoadingProductQuery from '@containers/ProductDetailContainer/queries/loadingProduct.graphql';\n\nimport { CenterWrapper } from '../styled';\n\nimport { SpaLoadingSkeleton } from './SpaLoadingSkeleton';\n\ninterface ISkeletonProps {\n productId: string;\n}\n\nexport const Loading: React.FC = ({ productId }) => {\n const { cache } = useApolloClient();\n const { pathname } = useLocation();\n\n const variantId = variantIdFromUrl(pathname);\n let loadingProduct;\n if (variantId) {\n // if variant is in cache in its basic form, use this basic form to show skeleton loading\n loadingProduct = cache.readQuery({\n query: getLoadingProductQuery,\n variables: {\n id: String(variantId),\n },\n });\n } else {\n // if product is in cache in its basic form, use this basic form to show skeleton loading\n loadingProduct = cache.readQuery({\n query: getLoadingProductQuery,\n variables: {\n id: String(productId),\n },\n });\n }\n\n if (loadingProduct?.vpProductById) {\n return (\n \n );\n }\n\n return (\n \n \n \n );\n};\n","import * as React from 'react';\nimport { useLocation } from 'react-router';\n\nimport { useQuery } from '@apollo/client';\n\nimport { ReactFCC } from '@notino/react-styleguide';\nimport {\n GetProductViewQuery,\n GetProductViewQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport PageNotFound, { PageLoadFailed } from '@components/NotFound';\nimport { Loading } from '@containers/ProductDetailContainer/loading';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport { selectVariant } from '@containers/ProductDetailContainer/utils';\n\nimport getProductView from '../../queries/productView.graphql';\n\nexport interface IProductViewProviderProps {\n productId: number;\n ssrEnabled: boolean;\n}\n\ninterface IProductViewContext {\n product: GetProductViewQuery['productDetailByMasterId'][number];\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number];\n data: GetProductViewQuery;\n newPdDesignEnabled: boolean;\n}\n\nexport const ProductViewContext =\n React.createContext(null);\n\nexport const ProductViewProvider: ReactFCC = ({\n productId,\n ssrEnabled,\n children,\n}) => {\n const newPdDesignEnabled = useNewPdDesignEnabled();\n const location = useLocation();\n\n const { data, loading, error } = useQuery<\n GetProductViewQuery,\n GetProductViewQueryVariables\n >(getProductView, {\n ssr: ssrEnabled,\n variables: {\n masterId: String(productId),\n },\n\n errorPolicy: 'all',\n });\n\n if (!data?.productDetailByMasterId) {\n if (loading) {\n return ;\n }\n if (error) {\n return ;\n }\n\n return null;\n }\n\n const { productDetailByMasterId } = data;\n let product: GetProductViewQuery['productDetailByMasterId'][number];\n try {\n // on ssr errors are not propagated (due to apollo bug) we need to check data\n product = productDetailByMasterId[0];\n } catch (e) {\n return ;\n }\n\n if (!product) {\n return ;\n }\n\n const { variants } = product;\n const variant = selectVariant(variants, location.pathname);\n\n const value = {\n data,\n variant,\n product,\n newPdDesignEnabled,\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const useProductView = () => {\n const ctx = React.useContext(ProductViewContext);\n if (!ctx) {\n throw new Error('useProductView must be used inside ProductViewProvider.');\n }\n\n return ctx;\n};\n","import * as React from 'react';\n\nimport { Ga4Events } from '@notino/web-tracking/dist/types/package/ga4/events';\n\nimport { TrackingAttributes } from '@context/tracking/types';\nimport { isDesktop } from '@utils/helpers';\n\nexport interface TrackingContextValue {\n getTimeFromInit: (initTime?: number) => TrackingAttributes['timing'];\n getVariant: () => TrackingAttributes['variant'];\n}\n\nconst Context = React.createContext(null!);\n\nexport const useTrackingContext = () => {\n const value = React.useContext(Context);\n if (!value)\n throw Error('useTrackingContext must be withing TrackingContextProvider.');\n\n return value;\n};\n\nexport const TrackingContextProvider = ({\n children,\n}: React.PropsWithChildren) => {\n const initTime = React.useRef(new Date().getTime());\n\n useSubscribeToInitTimeReset(() => {\n initTime.current = new Date().getTime();\n });\n\n const value = React.useMemo(\n () => ({\n getTimeFromInit: (time = initTime.current) => new Date().getTime() - time,\n getVariant: () => {\n return isDesktop() ? 'desktop' : 'mobile';\n },\n }),\n []\n );\n\n return {children};\n};\n\nconst useSubscribeToInitTimeReset = (callback: () => void) => {\n const memoizedCallback = React.useRef(callback);\n React.useEffect(() => {\n memoizedCallback.current = callback;\n }, [callback]);\n\n React.useEffect(() => {\n const resetTimeOnPageChange = ({\n detail,\n }: CustomEvent) => {\n if (detail?.event === 'page_view') {\n memoizedCallback.current();\n }\n };\n\n document.addEventListener('ga4-tracking-event', resetTimeOnPageChange);\n return () => {\n document.removeEventListener('ga4-tracking-event', resetTimeOnPageChange);\n };\n }, []);\n};\n\nTrackingContextProvider.useSubscribeToInitTimeReset =\n useSubscribeToInitTimeReset;\n","import { trackingEvent } from '@notino/web-tracking';\n\nexport const dispatchTrackingEvent = (\n ...event: Parameters\n) => {\n document.dispatchEvent(trackingEvent(...event));\n};\n","import React from 'react';\n\nexport const registerKeyboardListeners = (\n keyboardEventListeners: Partial<\n Record void>\n >,\n disableListeners?: boolean\n): { onKeyUp?: React.KeyboardEventHandler } => {\n if (disableListeners) {\n return {};\n }\n\n return {\n onKeyUp: (event) => {\n // space key doesn't have 'key' attribute\n const eventName = event.keyCode === 32 ? 'Space' : event.key;\n keyboardEventListeners[eventName]?.(event);\n },\n };\n};\n","import { validatorFactory } from '../containers/App/validators';\nimport validations from '../containers/Tryandbuy/validations';\n\nexport const normalizeEmail = (email) =>\n email ? email.toLowerCase().replace(/\\s/g, '') : '';\n\nexport const isInvalidEmail = (email) =>\n validatorFactory(validations).email(email, {});\n","import * as React from 'react';\n\nimport { useApolloClient } from '@apollo/client';\nimport { snakeCase } from 'lodash';\n\nimport {\n GetMasterProductInfoQuery,\n GetMasterProductInfoQueryVariables,\n} from '@notino/shared/definitions/types';\nimport { CartType } from '@notino/web-tracking';\n\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\nimport getMasterProductInfoQuery from '@queries/masterProductInfo.graphql';\n\nimport { ProductEventWither } from './prepareProductInfo';\nimport { IVariantAddToCart } from './prepareProductInfo/model';\n\nexport const useGetMasterAddToCart = (listName?: string) => {\n const client = useApolloClient();\n\n return React.useCallback(\n async (product: IVariantAddToCart, masterId: string, position: number) => {\n const { data } = await client.query<\n GetMasterProductInfoQuery,\n GetMasterProductInfoQueryVariables\n >({\n query: getMasterProductInfoQuery,\n variables: { masterId },\n });\n\n if (data) {\n dispatchTrackingEvent({\n event: 'add_to_cart',\n product: ProductEventWither()\n .withPartialProduct(data.productDetailByMasterId[0])\n .withVpProduct(product)\n .withAdditionalData({\n cart_type: snakeCase(CartType.cart),\n quantity: 1,\n list_position: position,\n ...(listName && { list_name: listName }),\n })\n .build(),\n _clear: true,\n });\n }\n },\n [client, listName]\n );\n};\n","import * as React from 'react';\n\nimport { useFunctionInBulk } from '@notino/react-web-utils';\nimport { Product } from '@notino/web-tracking/dist/types/package/ga4/events/products';\n\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\ninterface ITrackDynamicListArgs {\n delay?: number;\n interaction?: string;\n listName: string;\n}\n\nexport type TrackedProduct = Product & { list_position: number; id: string };\n\nexport const useTrackDynamicList = ({\n delay = 500,\n interaction = 'scroll',\n ...rest\n}: ITrackDynamicListArgs) => {\n const trackProductsImpression = React.useCallback(\n (products: TrackedProduct[], params: ITrackDynamicListArgs) => {\n dispatchTrackingEvent({\n event: 'view_item_list',\n product_lists: {\n products,\n interaction,\n sorting_type: 'automatic',\n list_id: undefined,\n list_name: params.listName,\n },\n _clear: true,\n });\n },\n [interaction]\n );\n\n return useFunctionInBulk<\n TrackedProduct,\n // @ts-ignore\n Omit\n >(trackProductsImpression, delay, rest);\n};\n","import { snakeCase } from 'lodash';\nimport type { PartialDeep } from 'type-fest';\n\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\nimport {\n GetProductsByIdBatchedQuery,\n GetProductViewQuery,\n} from '@notino/shared/definitions/types';\nimport {\n AdditionalServicesAvailability,\n getVariantPriceWithoutTax,\n LoyaltyDiscount,\n} from '@notino/web-tracking';\nimport { Product } from '@notino/web-tracking/dist/types/package/ga4/events/products';\n\nimport { transformAttributesToTags } from '@components/Tags/utils';\nimport { getModifaceAvailability } from '@containers/ProductDetailContainer/ProductDetail/utils';\n\nimport { IVariantAddToCart } from './model';\n\nconst getAvailability = (\n variant: Pick\n): Product['availability'] => {\n if (variant.showWatchdog) {\n return 'watchdog';\n }\n return (\n variant.stockAvailability?.code?.toLowerCase() !==\n IStock.outOfStock.toLowerCase()\n );\n};\n\ninterface IProductEventWither<\n ProductEventType extends Record\n> {\n withProduct: (\n product: GetProductViewQuery['productDetailByMasterId'][number]\n ) => IProductEventWither<\n ProductEventType &\n Pick<\n Product,\n | 'collection'\n | 'rating'\n | 'brand_name'\n | 'brand_id'\n | 'manufacturer_name'\n | 'primary_category'\n | 'primary_subcategory'\n | 'primary_type'\n | 'kind'\n | 'group'\n >\n >;\n withPartialProduct: (\n product: Partial\n ) => IProductEventWither<\n ProductEventType &\n Pick<\n Product,\n | 'collection'\n | 'rating'\n | 'brand_name'\n | 'brand_id'\n | 'manufacturer_name'\n | 'primary_category'\n | 'primary_subcategory'\n | 'primary_type'\n | 'kind'\n | 'group'\n >\n >;\n withVpProduct: (\n product: Pick<\n GetProductsByIdBatchedQuery['vpProductByIds'][number],\n | 'brand'\n | 'productCode'\n | 'name'\n | 'wishlisted'\n | 'attributes'\n | 'primaryCategories'\n > &\n IVariantAddToCart\n ) => IProductEventWither<\n ProductEventType &\n Pick<\n Product,\n | 'rating'\n | 'brand_name'\n | 'primary_category'\n | 'primary_subcategory'\n | 'primary_type'\n | 'kind'\n | 'group'\n | 'product_code'\n | 'product_name'\n | 'favorite'\n | 'promo_labels'\n | 'availability'\n | 'price'\n | 'full_price'\n >\n >;\n withVariant: (\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]\n ) => IProductEventWither<\n ProductEventType &\n Pick<\n Product,\n | 'product_code'\n | 'product_name'\n | 'favorite'\n | 'product_gender'\n | 'promo_labels'\n | 'availability'\n | 'price'\n | 'full_price'\n >\n >;\n withPartialVariant: (\n variant: PartialDeep<\n GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]\n >\n ) => IProductEventWither<\n ProductEventType &\n Pick<\n Product,\n | 'product_code'\n | 'product_name'\n | 'favorite'\n | 'product_gender'\n | 'promo_labels'\n | 'availability'\n | 'price'\n | 'full_price'\n >\n >;\n withServices: (services: {\n tryItFirstAvailable?: AdditionalServicesAvailability;\n engravingAvailable?: AdditionalServicesAvailability;\n modifaceVariants: Record;\n loyaltyDiscount?: LoyaltyDiscount;\n giftAvailable?: boolean;\n shadefinderAvailable?: boolean;\n }) => IProductEventWither>;\n withAdditionalData: >(\n additionalData: T\n ) => IProductEventWither;\n withAdditionalPromoLabels: (\n promoLabels: string[]\n ) => IProductEventWither;\n build: () => ProductEventType;\n forceBuild: () => Product;\n}\n\nconst getServices = (\n variant: Pick<\n GetProductViewQuery['productDetailByMasterId'][number]['variants'][number],\n 'availablePickUpStores' | 'id'\n >,\n {\n tryItFirstAvailable,\n engravingAvailable,\n modifaceVariants = {},\n loyaltyDiscount,\n giftAvailable,\n shadefinderAvailable,\n }: Parameters>['withServices']>[0]\n) => {\n const services = [];\n if (engravingAvailable === AdditionalServicesAvailability.available) {\n services.push('engraving');\n }\n if (tryItFirstAvailable === AdditionalServicesAvailability.available) {\n services.push('try_it_first');\n }\n if (modifaceVariants?.[variant.id]) {\n services.push(`modiface_${getModifaceAvailability(true)}`);\n }\n if (variant?.availablePickUpStores > 0) {\n services.push('click_and_collect');\n }\n if (loyaltyDiscount && loyaltyDiscount !== LoyaltyDiscount.notAvailable) {\n services.push(`loyalty_discount_${loyaltyDiscount}`);\n }\n if (giftAvailable) {\n services.push('gift_available');\n }\n if (shadefinderAvailable) {\n services.push('shadefinder_available');\n }\n return services;\n};\n\nexport const ProductEventWither = <\n ProductEventType extends Record\n>(): IProductEventWither => {\n let event: ProductEventType = {} as ProductEventType;\n let variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number] =\n null;\n let product: GetProductViewQuery['productDetailByMasterId'][number] = null;\n\n return {\n withProduct(p) {\n product = p;\n event = {\n ...event,\n collection: product.collection,\n rating: String(product.reviewOverview?.rating),\n brand_name: product.brandInfo?.name,\n brand_id: product.brandInfo?.id,\n manufacturer_name: product.manufacturer,\n primary_category: product.primaryCategories?.category,\n primary_subcategory: product.primaryCategories?.subCategory,\n primary_type: product.primaryCategories?.type,\n kind: product.primaryCategories?.kind,\n group: undefined, // not returned from api yet,\n };\n return this;\n },\n withVariant(v) {\n variant = v;\n event = {\n ...event,\n product_code: variant.productCode,\n product_name: `${variant.name} ${\n variant.variantName || product?.annotation\n } ${variant.additionalInfo}`.trim(),\n favorite: variant.wishlisted,\n product_gender: variant.gender as 'Male' | 'Female' | 'Unisex',\n promo_labels: transformAttributesToTags(variant.attributes).map(\n snakeCase\n ),\n availability: getAvailability(variant),\n price: variant ? getVariantPriceWithoutTax(variant.price) : undefined,\n full_price: variant.price?.value,\n };\n return this;\n },\n withPartialProduct(p) {\n return this.withProduct(\n p as GetProductViewQuery['productDetailByMasterId'][number]\n );\n },\n withVpProduct(p) {\n event = {\n ...event,\n rating: p.reviewOverview?.rating,\n brand_name: p.brand?.name,\n primary_category: p.primaryCategories?.category,\n primary_subcategory: p.primaryCategories?.subCategory,\n primary_type: p.primaryCategories?.type,\n kind: p.primaryCategories?.kind,\n group: undefined, // not returned from api yet,\n product_code: p.productCode,\n product_name: `${p.name} ${p.annotation}`.trim(),\n favorite: p.wishlisted,\n promo_labels: [\n snakeCase(transformAttributesToTags(p.attributes)?.[0]),\n ].filter(Boolean),\n availability: getAvailability(p),\n price: p ? getVariantPriceWithoutTax(p.price) : undefined,\n full_price: p.price?.value,\n };\n return this;\n },\n withPartialVariant(v) {\n return this.withVariant(\n v as GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]\n );\n },\n withServices(services) {\n event = {\n ...event,\n services: getServices(variant, services),\n };\n return this;\n },\n withAdditionalData(additionalData) {\n event = {\n ...event,\n ...additionalData,\n };\n return this;\n },\n withAdditionalPromoLabels(promoLabels) {\n event = {\n ...event,\n promo_labels: [\n ...(event.promo_labels as string[]),\n ...promoLabels.filter(Boolean),\n ],\n };\n return this;\n },\n build() {\n return event;\n },\n forceBuild() {\n return event as unknown as Product;\n },\n };\n};\n","import { ITheme } from '@notino/react-styleguide';\n\nimport { getRenderableAttributes } from '@components/Tags/utils';\nimport { AttributeType } from '@containers/ProductListing/model';\n\nexport const variantInfo = (variant: {\n additionalInfo: string;\n variantName: string;\n name: string;\n}) =>\n variant.additionalInfo.trim() || variant.variantName.trim() || variant.name;\n\n/**\n * TODO move outside this file to model (typings) or settings resp.\n */\n\nexport interface IImageProperties {\n src: string;\n alt: string;\n srcSet?: string;\n width?: string;\n height?: string;\n isVideo?: boolean;\n}\n\n/**\n * Creates an array with size of given number\n */\nexport const arrayFromNumber = (size: number) => {\n const array: number[] = [];\n for (let i = 1; i <= size; i++) {\n array.push(i);\n }\n return array;\n};\n\nexport const hexToDec = (hexStr: string, position: number) =>\n parseInt(hexStr.substr(position, 2), 16);\n\nexport const hexToRgba = (hex: string, opacity: number) => {\n let c: string = hex.substring(1);\n if (c.length === 3) {\n // eg. fff\n c = [c[0], c[0], c[1], c[1], c[2], c[2]].join('');\n }\n return `rgba(${hexToDec(c, 0)}, ${hexToDec(c, 2)}, ${hexToDec(\n c,\n 4\n )}, ${opacity})`;\n};\n\nexport const dataLabelsProp = (attributes: AttributeType) => ({\n 'data-pd-variant-labels': Object.keys(\n getRenderableAttributes(attributes)\n ).join(','),\n});\n\nexport const isEmpty = (text: string) =>\n text.replace(/<[^>]+>/g, '').trim().length === 0;\n\nexport const linearGradientFromColors = (colors: string[], theme: ITheme) => {\n if (colors.length === 0) {\n return theme.palette.neutral;\n }\n\n let direction = 'to right';\n const ratio = 100 / colors.length;\n\n if (ratio === 50) {\n direction = 'to bottom right';\n }\n\n return `${direction}, ${colors\n .map(\n (c, index) =>\n `${c.toLowerCase()} ${ratio * index}%, ${c.toLowerCase()} ${\n ratio * (index + 1)\n }%`\n )\n .join(',')}`;\n};\n\nexport const isAbTestEnabled = (\n abTestHeader: string | null,\n abTestNumber: string | string[],\n abTestEnabledValue: string = '1'\n) => {\n if (abTestHeader) {\n const abTests = parseAbTestHeader(abTestHeader);\n\n const foundAbTest = abTests.find((test) => {\n if (Array.isArray(abTestNumber)) {\n return abTestNumber.includes(test.number);\n }\n return test.number === abTestNumber;\n });\n\n return foundAbTest?.value === abTestEnabledValue;\n }\n\n return false;\n};\n\nconst parseAbTestHeader = (abTestHeader: string) => {\n const abTests = abTestHeader.split(',');\n\n return abTests\n .map((test) => test.split('='))\n .filter((pair) => pair.length === 2)\n .map((pair) => ({\n number: pair[0],\n value: pair[1],\n }));\n};\n","// This file was copied from react-spring examples\n\nimport * as React from 'react';\n\nimport ResizeObserver from 'resize-observer-polyfill';\n\nimport { IBounds } from '../sharedComponents/SpringCollapser/model';\n\nexport function useMeasure(): [{ ref: React.Ref }, IBounds] {\n const ref = React.useRef();\n const [bounds, setBounds] = React.useState({\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n });\n\n React.useEffect(() => {\n const ro = new ResizeObserver(([entry]) => setBounds(entry.contentRect));\n\n if (ref.current) {\n ro.observe(ref.current);\n }\n return () => ro.disconnect();\n }, []);\n\n return [{ ref }, bounds];\n}\n","import { useEffect, useRef } from 'react';\n\nexport const useUpdateEffect: typeof useEffect = (effect, deps) => {\n const isFirstMount = useRef(true);\n\n useEffect(() => {\n if (!isFirstMount.current) {\n effect();\n }\n\n isFirstMount.current = false;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n};\n","import { useApolloClient } from '@apollo/client';\n\nimport { GetRequestHeadersQuery } from '@notino/shared/definitions/types';\n\nimport getRequestHeadersQuery from '../queries/requestHeaders.graphql';\n\nexport const useApolloClientHeaders = () => {\n const { cache } = useApolloClient();\n\n const { RequestHeaders } = cache.readQuery({\n query: getRequestHeadersQuery,\n });\n\n return RequestHeaders;\n};\n","import { DependencyList, useEffect, useRef, useState } from 'react';\n\nimport { Fade, Arrow } from './styled';\n\nconst getShowLeftArrow = (wrapper: HTMLDivElement) => {\n const isScrollable = wrapper.scrollWidth !== wrapper.clientWidth;\n const isScrolledToStart = wrapper.scrollLeft < 1;\n return isScrollable && !isScrolledToStart;\n};\n\nconst getShowRightArrow = (wrapper: HTMLDivElement) => {\n const isScrollable = wrapper.scrollWidth !== wrapper.clientWidth;\n const isScrolledToEnd =\n wrapper.scrollWidth - wrapper.scrollLeft - wrapper.clientWidth < 1;\n return isScrollable && !isScrolledToEnd;\n};\n\nfunction calculateNewLeft(\n direction: 'left' | 'right',\n el: HTMLDivElement,\n scrollAmount: number,\n threshold: number\n) {\n let newScrollLeft: number;\n if (direction === 'left') {\n newScrollLeft = el.scrollLeft - scrollAmount;\n\n const isReallyCloseToLeft = newScrollLeft < threshold;\n if (isReallyCloseToLeft) {\n // if really close to left, scroll to the left edge\n newScrollLeft = 0;\n }\n } else {\n newScrollLeft = el.scrollLeft + scrollAmount;\n\n const isReallyCloseToRight =\n newScrollLeft + el.clientWidth >= el.scrollWidth - threshold;\n if (isReallyCloseToRight) {\n // if really close to right, scroll to the right edge\n newScrollLeft = el.scrollWidth;\n }\n }\n\n return newScrollLeft;\n}\n\nexport const useArrows = (\n deps: DependencyList = [],\n { scrollAmount = 300 } = { scrollAmount: 300 }\n) => {\n const containerRef = useRef();\n const [showLeftArrow, setShowLeftArrow] = useState(false);\n const [showRightArrow, setShowRightArrow] = useState(false);\n\n useEffect(() => {\n const el = containerRef.current;\n if (!el) {\n return;\n }\n\n const calculateArrowsHandler = () => {\n setShowLeftArrow(getShowLeftArrow(el));\n setShowRightArrow(getShowRightArrow(el));\n };\n\n const mutationObserver = new MutationObserver(calculateArrowsHandler);\n\n calculateArrowsHandler();\n\n window.addEventListener('resize', calculateArrowsHandler);\n el.addEventListener('scroll', calculateArrowsHandler);\n mutationObserver.observe(el, { childList: true });\n\n return () => {\n window.removeEventListener('resize', calculateArrowsHandler);\n el.removeEventListener('scroll', calculateArrowsHandler);\n mutationObserver.disconnect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n\n const scrollTo = (direction: 'left' | 'right') => {\n const el = containerRef.current;\n const threshold = scrollAmount / 6;\n\n const newScrollLeft = calculateNewLeft(\n direction,\n el,\n scrollAmount,\n threshold\n );\n\n el.scrollTo({ left: newScrollLeft, behavior: 'smooth' });\n };\n\n return { scrollTo, showLeftArrow, showRightArrow, containerRef };\n};\n\nexport { Fade, Arrow };\n","import styled, { css } from 'styled-components';\n\nimport { theme } from '@notino/react-styleguide';\n\nexport const Arrow = styled.div<{ position: 'left' | 'right' }>`\n cursor: pointer;\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n top: 50%;\n bottom: 0;\n z-index: 2;\n width: 2.75rem;\n height: 2.75rem;\n background: ${theme.palette.basicInverse};\n transform: translateY(-50%);\n border-radius: 3rem;\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);\n transition: 0.2s ease-in-out;\n\n &:hover {\n background: ${theme.palette.neutralLighter};\n }\n\n ${({ position }) =>\n position === 'left' &&\n css`\n left: 0.5rem;\n `}\n\n ${({ position }) =>\n position === 'right' &&\n css`\n right: 0.5rem;\n `}\n`;\nexport const Fade = styled.div<{ position: 'left' | 'right' }>`\n position: absolute;\n z-index: 1;\n top: 0;\n bottom: 0;\n width: 5rem;\n background: ${({\n position,\n }) => `linear-gradient(to ${position}, rgba(255, 255, 255, 0) 0%, #FFFFFF 100%)\n`};\n\n ${({ position }) =>\n position === 'left' &&\n css`\n left: -1px;\n `}\n\n ${({ position }) =>\n position === 'right' &&\n css`\n right: -1px;\n `}\n`;\n","import { useApolloClient } from '@apollo/client';\n\nimport { AppFeatureSwitchesFragment } from '@notino/shared/definitions/types';\n\nimport featureSwitchesFragment from './featureSwitchesFragment.graphql';\n\ninterface IFeatureSwitches {\n modifaceMobileEnabled: boolean;\n modifaceDesktopEnabled: boolean;\n reviewsOnServerIds: string[];\n addToCartResendDelay: number;\n addToCartWarningCount: number;\n}\n\ntype Converters = {\n [Key in keyof IFeatureSwitches]: (value: string) => IFeatureSwitches[Key];\n};\n\nexport const DEFAULT_FEATURE_SWITCHES: IFeatureSwitches = {\n modifaceMobileEnabled: false,\n modifaceDesktopEnabled: false,\n reviewsOnServerIds: [],\n addToCartResendDelay: 0,\n addToCartWarningCount: 0,\n};\n\nconst boolConverter = (value: string) =>\n ['true', '1'].includes(value.toLowerCase());\n\nconst csvToStringArrayConverter = (value: string) =>\n value ? value.split(',') : [];\n\nconst numberConverter = (value: string) => {\n const parsed = +value;\n return Number.isNaN(parsed) ? 0 : parsed;\n};\n\nconst converters: Converters = {\n modifaceMobileEnabled: boolConverter,\n modifaceDesktopEnabled: boolConverter,\n reviewsOnServerIds: csvToStringArrayConverter,\n addToCartResendDelay: numberConverter,\n addToCartWarningCount: numberConverter,\n};\n\nconst useFeatureSwitches = (): IFeatureSwitches => {\n const client = useApolloClient();\n\n const featureSwitches = client.readFragment({\n id: 'FeatureSwitches:0',\n fragment: featureSwitchesFragment,\n });\n\n const mapped = Object.entries(featureSwitches || {}).reduce(\n (acc, [key, value]) => ({\n ...acc,\n [key]: converters[key] ? converters[key](value) : value,\n }),\n {}\n );\n\n return { ...DEFAULT_FEATURE_SWITCHES, ...mapped };\n};\n\nexport default useFeatureSwitches;\n","//NOTE: inspired by https://github.com/streamich/react-use/blob/master/src/useThrottleFn.ts\n\nimport { useEffect, useRef, useState } from 'react';\n\nconst useThrottleEffect = (\n fn: (...args: U) => T,\n ms: number = 200,\n args: U\n) => {\n const [state, setState] = useState(null);\n const timeout = useRef>();\n const nextArgs = useRef();\n\n useEffect(() => {\n if (!timeout.current) {\n setState(fn(...args));\n const timeoutCallback = () => {\n if (nextArgs.current) {\n setState(fn(...nextArgs.current));\n nextArgs.current = undefined;\n timeout.current = setTimeout(timeoutCallback, ms);\n } else {\n timeout.current = undefined;\n }\n };\n timeout.current = setTimeout(timeoutCallback, ms);\n } else {\n nextArgs.current = args;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, args);\n\n useEffect(\n () => () => {\n timeout.current && clearTimeout(timeout.current);\n },\n []\n );\n\n return state;\n};\n\nexport default useThrottleEffect;\n","/*\n * Global messages\n */\nimport { defineMessages } from 'react-intl';\nexport default defineMessages({\n globalGDPRLinkText: {\n id: 'global.gdpr.link.text',\n defaultMessage: 'zásadách zpracování osobních údajů',\n },\n globalGDPRLink: {\n id: 'global.gdpr.link',\n defaultMessage: '/ochrana-osobnich-udaju/',\n },\n globalTACLink: {\n id: 'global.tac.link',\n defaultMessage: '/obchodni-podminky/',\n },\n});\n","import { QueryHookOptions, useQuery } from '@apollo/client';\nimport {\n GetReviewsQuery,\n GetReviewsQueryVariables,\n} from 'packages/shared/definitions/types';\n\nimport { useReviewItemsContext } from '@containers/ProductDetailContainer/ProductDetail/ProductTabContent/Reviews/ReviewItems/context';\n\nimport getReviewsQuery from './queries/reviews.graphql';\n\nexport const useReviewsFetch = (\n pageSize: number,\n productCode: string,\n options: QueryHookOptions\n) => {\n const {\n state: { orderBy, orderDesc, page, hideTranslated },\n } = useReviewItemsContext();\n\n return useQuery(getReviewsQuery, {\n variables: {\n code: productCode,\n orderBy,\n orderDesc,\n page,\n pageSize,\n hideTranslated,\n },\n partialRefetch: true,\n ...options,\n });\n};\n","import { QueryHookOptions, useQuery } from '@apollo/client';\n\nimport {\n GetReviewSummaryQuery,\n GetReviewSummaryQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport getReviewSummaryQuery from './queries/reviewSummary.graphql';\n\nexport const useReviewsSummaryFetch = (\n masterId: string,\n options: QueryHookOptions<\n GetReviewSummaryQuery,\n GetReviewSummaryQueryVariables\n >\n) => {\n return useQuery(\n getReviewSummaryQuery,\n {\n variables: {\n masterId,\n },\n notifyOnNetworkStatusChange: true,\n ...options,\n }\n );\n};\n","import * as React from 'react';\n\nimport { AddToCartButtonProvider } from '@sharedComponents/AddToCartButton/context';\nimport { getModalAfterAddToCart } from '@sharedComponents/AddToCartButton/getModalAfterAddToCart';\nimport { IAddToCartButtonProps } from '@sharedComponents/AddToCartButton/model';\n\nimport { AddToCartCoreComponent } from './AddToCartCoreComponentButton';\n\nexport const AddToCartButton: React.FC = React.memo(\n (props) => {\n return (\n \n \n \n );\n }\n);\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n addToCart: {\n id: 'universals.add.to.cart',\n defaultMessage: 'Do košíku',\n },\n});\n","import styled, { css } from 'styled-components';\n\nimport {\n breakpoints,\n ActionButtonWithConfirmation,\n theme,\n} from '@notino/react-styleguide';\n\nconst BuyButtonWrapableCSS = css`\n white-space: normal;\n line-height: 1.4;\n`;\n\nexport const StyledBuyButton = styled(ActionButtonWithConfirmation)<{\n newDesign: boolean;\n wrapable?: boolean;\n}>`\n text-transform: none !important;\n height: ${({ wrapable }) => (wrapable ? 'fit-content' : '2rem')};\n ${({ wrapable }) => (wrapable ? BuyButtonWrapableCSS : '')};\n\n @media (min-width: ${breakpoints.xs}) {\n width: 100% !important;\n text-align: center;\n }\n\n ${({ newDesign }) =>\n newDesign\n ? css`\n ${theme.typography.labelRegular}\n span {\n font-weight: 500 !important;\n }\n `\n : css`\n font-weight: 400 !important;\n @media (min-width: ${breakpoints.md}) {\n width: auto !important;\n max-width: none;\n }\n `}\n`;\n","import * as React from 'react';\nimport { FormattedMessage, MessageDescriptor } from 'react-intl';\n\nimport { ButtonModel } from '@notino/react-styleguide';\n\nimport { RequestState } from '@containers/App/model';\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport { noop } from '@utils/noop';\n\nimport { messages } from './messages';\nimport { StyledBuyButton } from './styled';\n\ninterface IBuyButtonWithDefaultsProps {\n buttonStyle?: ButtonModel.Styles;\n buttonSize?: ButtonModel.Sizes;\n buttonElementId?: string;\n buttonElementClassName?: string;\n buttonType?: 'button' | 'submit';\n wrapable: boolean;\n buttonText?: MessageDescriptor;\n sendState?: RequestState;\n onMouseOver?: () => void;\n onClick?: (e: React.SyntheticEvent) => void;\n}\n\nconst ERROR_STATE_ARRAY = [RequestState.FAILED, RequestState.RETRYING];\nconst LOADING_STATE_ARRAY = [RequestState.IN_PROGRESS, RequestState.RETRYING];\n\nexport const BuyButtonWithDefaults: React.FC =\n React.memo(\n ({\n buttonElementId,\n buttonElementClassName,\n wrapable,\n sendState = null,\n buttonStyle = ButtonModel.Styles.primary,\n buttonText = messages.addToCart,\n buttonSize = ButtonModel.Sizes.medium,\n buttonType = 'button',\n onMouseOver = noop,\n onClick = noop,\n }) => {\n const newDesign = useNewPdDesignEnabled();\n return (\n \n \n \n );\n }\n );\n","import * as React from 'react';\n\nimport { ReactFCC } from '@notino/react-styleguide';\n\nimport { useAddToCartButtonContext } from '@sharedComponents/AddToCartButton/context';\n\nimport { useRequestHeaders } from '../hooks/useRequestHeaders';\n\ninterface ILegacyAddToCartButtonProps {\n productId: string;\n}\n\nfunction trimEndSlash(str: string) {\n return str.replace(/\\/(\\s+)?$/, '');\n}\n\nexport const LegacyAddToCartButton: ReactFCC = ({\n children,\n productId,\n}) => {\n const { xUserToken, gatewayUrl } = useRequestHeaders();\n const {\n props: { count },\n } = useAddToCartButtonContext();\n\n return (\n \n \n \n \n {children}\n \n );\n};\n","import { useQuery } from '@apollo/client';\n\nimport { GetRequestInfoQuery } from '@notino/shared/definitions/types';\n\nimport getRequestInfoQuery from '../requestInfo.graphql';\n\ninterface IUseRequestHeaders {\n xUserToken?: string | null;\n gatewayUrl?: string;\n}\nexport const useRequestHeaders = (): IUseRequestHeaders => {\n const { data: requestInfoData } =\n useQuery(getRequestInfoQuery);\n return requestInfoData?.RequestHeaders || {};\n};\n","import * as React from 'react';\n\nimport { ButtonModel } from '@notino/react-styleguide';\nimport { AddToCartSettingsQuery } from '@notino/shared/definitions/types';\n\nimport { RequestState } from '@containers/App/model';\n\nimport {\n useAddToCartActions,\n useAddToCartButtonContext,\n useAddToCartSendState,\n} from '../../context';\nimport messages from '../../messages';\n\nimport { BuyButtonWithDefaults } from './BuyButtonWithDefaults';\nimport { useHandleAddToCart } from './hooks/useHandleAddToCart';\nimport { LegacyAddToCartButton } from './LegacyAddToCartButton';\n\nexport interface IBuyButtonProps {\n isSpecialProduct: boolean;\n isOnSpecialModal?: boolean;\n Settings: AddToCartSettingsQuery['Settings'];\n productId: string;\n productCode?: string;\n buttonType: 'button' | 'submit';\n showSpecialModal?: () => void;\n}\n\nexport const BuyButton: React.FC = React.memo(\n ({\n isSpecialProduct,\n isOnSpecialModal,\n buttonType,\n productId,\n showSpecialModal,\n }) => {\n const {\n props: {\n buttonStyle,\n buttonSize,\n buttonElementClassName,\n buttonElementId,\n wrapable,\n buttonText,\n withLegacyAddToCart,\n },\n } = useAddToCartButtonContext();\n\n const sendState = useAddToCartSendState();\n const { setMouseOverBuyButton } = useAddToCartActions();\n\n const { handleAddToCartEvent: handleClick } = useHandleAddToCart({\n isOnSpecialModal,\n });\n\n // Real buy button is the original button in case of non-professional (or returned, damaged) product\n // or the one on professional modal\n const isRealBuyButton = !isSpecialProduct || isOnSpecialModal;\n\n const BuyButtonElement = (\n \n );\n\n if (withLegacyAddToCart) {\n return (\n \n {BuyButtonElement}\n \n );\n }\n\n return BuyButtonElement;\n }\n);\n","import styled from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nexport const DescriptionWrapper = styled.div`\n line-height: 1.5rem;\n text-align: center;\n margin-bottom: 1.5rem;\n ${theme.typography.bodyRegular}\n color:${theme.palette.neutralDarker};\n margin-top: -0.75rem;\n`;\n\nexport const ContentWrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n flex-flow: column;\n`;\n\nexport const ModalButtonWrapper = styled.div`\n & > button,\n form button {\n height: 2.75rem;\n padding: 0 0.5625rem;\n text-transform: none;\n font-weight: normal;\n }\n width: 100%;\n @media (min-width: ${breakpoints.sm}) {\n width: auto;\n }\n`;\n","import * as React from 'react';\n\nimport { AddToCartSettingsQuery } from '@notino/shared/definitions/types';\n\nimport { BuyButton } from '../sharedComponents/BuyButton';\n\nimport {\n DescriptionWrapper,\n ContentWrapper,\n ModalButtonWrapper,\n} from './styled';\n\ninterface IProductForProcessionalModalProps {\n description: JSX.Element | string;\n settings: AddToCartSettingsQuery['Settings'];\n productId: string;\n productCode: string;\n}\n\nexport const SpecialAddToCartModal: React.FC<\n IProductForProcessionalModalProps\n> = ({ description, settings, productId, productCode }) => {\n return (\n \n {description}\n \n \n \n \n );\n};\n","import { useIntl } from 'react-intl';\n\nimport { ClientOnlyAttributeTypes } from '@components/Tags/model';\nimport { resolveDamageAttribute } from '@components/Tags/utils';\nimport messages from '@sharedComponents/AddToCartButton/messages';\nimport { IAddToCartButtonProps } from '@sharedComponents/AddToCartButton/model';\n\ntype UseMessagesForSpecialModal = {\n isSpecial: boolean;\n header: string | null;\n description: string | null;\n};\n\nexport const useMessagesForSpecialModal = (\n product: IAddToCartButtonProps['product']\n): UseMessagesForSpecialModal => {\n const { formatMessage } = useIntl();\n\n const isDamagedOrReturned = product?.attributes?.Damage\n ? resolveDamageAttribute(product.attributes.Damage)\n : null;\n\n const isProfessionalProduct = Boolean(\n product?.attributes?.IsForProfessionals\n );\n const isDamaged = isDamagedOrReturned === ClientOnlyAttributeTypes.Damaged;\n const isReturned = isDamagedOrReturned === ClientOnlyAttributeTypes.Returned;\n\n if (isProfessionalProduct && isDamaged) {\n return {\n isSpecial: true,\n header: formatMessage(messages.damagedProductForProfessionalChoosed),\n description: formatMessage(\n messages.damagedProductForProfessionalAcknowledgement\n ),\n };\n } else if (isProfessionalProduct && isReturned) {\n return {\n isSpecial: true,\n header: formatMessage(messages.returnedProductForProfessionalChoosed),\n description: formatMessage(\n messages.returnedProductForProfessionalAcknowledgement\n ),\n };\n } else if (isProfessionalProduct) {\n return {\n isSpecial: true,\n header: formatMessage(messages.productForProfessionalChoosed),\n description: formatMessage(\n messages.productForProfessionalAcknowledgement\n ),\n };\n } else if (isDamaged) {\n return {\n isSpecial: true,\n header: formatMessage(messages.damagedProductChoosed),\n description: formatMessage(messages.damagedProductAcknowledgement),\n };\n } else if (isReturned) {\n return {\n isSpecial: true,\n header: formatMessage(messages.returnedProductChoosed),\n description: formatMessage(messages.returnedProductAcknowledgement),\n };\n }\n\n return {\n isSpecial: false,\n description: null,\n header: null,\n };\n};\n","import styled from 'styled-components';\n\nexport const ButtonWrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n`;\n","import * as React from 'react';\n\nimport { useQuery } from '@apollo/client';\n\nimport { ModalContext, Text } from '@notino/react-styleguide';\nimport { AddToCartSettingsQuery } from '@notino/shared/definitions/types';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\n\nimport {\n AddToCartButtonProvider,\n useAddToCartButtonContext,\n useIsMouseOverBuyButton,\n} from './context';\nimport { IAddToCartButtonProps } from './model';\nimport getAddToCartSettings from './queries/addToCartSettings.graphql';\nimport { BuyButton } from './sharedComponents/BuyButton';\nimport { SpecialAddToCartModal } from './SpecialAddToCartModal';\nimport { useMessagesForSpecialModal } from './SpecialAddToCartModal/useMessagesForSpecialModal';\nimport { ButtonWrapper } from './styled';\n\nexport const AddToCartCoreComponent: React.FC =\n React.memo((props) => {\n const { data } = useQuery(getAddToCartSettings);\n const { toggleModal } = ModalContext.useModalContext();\n\n const {\n props: {\n product,\n buttonWrapper: WrapperComponent = ButtonWrapper,\n buttonWrapperProps,\n },\n } = useAddToCartButtonContext();\n\n const mouseOverBuyButton = useIsMouseOverBuyButton();\n\n const settings = data?.Settings;\n const { isSpecial, description, header } =\n useMessagesForSpecialModal(product);\n\n const handleShowSpecialModal = () => {\n toggleModal(\n \n \n ,\n {\n header: {header},\n center: true,\n positionBottomOnMobile: true,\n }\n );\n };\n\n return (\n \n \n \n \n \n );\n });\n","import styled from 'styled-components';\n\nimport { breakpoints, Button } from '@notino/react-styleguide';\n\nimport { CurrencyStyled } from '@components/PriceLabel/components/styled';\n\nexport const SubHeaderWrapper = styled.div`\n line-height: 1.25rem;\n`;\n\nexport const SubHeader = styled.div`\n margin-bottom: 1rem;\n`;\n\nexport const Notes = styled.div`\n color: ${(props) => props.theme.palette.neutral};\n font-size: 0.8rem;\n`;\n\nexport const StyledButton = styled(Button)`\n width: 100% !important;\n margin-top: 0.625rem;\n\n @media (min-width: ${breakpoints.sm}) {\n width: auto !important;\n margin-right: 1.875rem;\n margin-top: 0;\n }\n`;\n\nexport const DeliveryFree = styled.div`\n margin-top: 3.125rem;\n\n @media (min-width: ${breakpoints.sm}) {\n max-width: 18.75rem;\n }\n`;\nexport const DeliveryFreeRow = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 0.5625rem;\n\n svg {\n margin-right: 0.5rem;\n }\n`;\n\nexport const InlineBlock = styled.div`\n display: inline-block;\n`;\n\nexport const PriceWrapper = styled.span``;\n\nexport const CurrencyWrapper = styled(CurrencyStyled)`\n font-size: inherit;\n font-weight: inherit;\n`;\n\nexport const StyledHeader = styled.div``;\n\nexport const ButtonsWrapper = styled.div`\n text-align: left;\n`;\n","import { useMutation } from '@apollo/client';\n\nimport {\n AddProductsToCartMutation,\n AddProductsToCartMutationVariables,\n} from '@notino/shared/definitions/types';\n\nimport addToCartMutationGql from '../queries/addToCart.graphql';\n\nexport const useAddToCartMutation = () => {\n const [addToCartMutation] = useMutation<\n AddProductsToCartMutation,\n AddProductsToCartMutationVariables\n >(addToCartMutationGql, {\n refetchQueries: ['getServicesIncluded'],\n });\n\n return {\n addToCartMutation,\n };\n};\n","import * as React from 'react';\n\nimport { useStore } from 'zustand';\n\nimport { ModalContext, ReactFCC } from '@notino/react-styleguide';\n\nimport { noop } from '@utils/noop';\n\nimport { IAddToCartButtonProps } from '../model';\n\nimport { IAddToCartButtonContext } from './model';\nimport { createAddToCartStore } from './store';\nimport { useAddToCartMutation } from './useAddToCartMutation';\n\nconst AddToCartButtonContext = React.createContext(\n {} as IAddToCartButtonContext\n);\n\nexport const AddToCartButtonProvider: ReactFCC = ({\n children,\n ...props\n}) => {\n const storeRef = React.useRef(\n createAddToCartStore({\n getModalAfterAddToCart: props.getModalAfterAddToCart,\n toggleModal: ModalContext.useModalContext().toggleModal,\n })\n );\n\n const propsWithDefaults: IAddToCartButtonContext['props'] = {\n ...props,\n onProductAdded: props.onProductAdded ?? noop,\n onProductAddFailed: props.onProductAddFailed ?? noop,\n onClosingModal: props.onClosingModal ?? noop,\n disableRedirect: Boolean(props.disableRedirect),\n withLegacyAddToCart: Boolean(props.withLegacyAddToCart),\n services: props.services ?? [],\n };\n\n const apollo = useAddToCartMutation();\n\n if (!props.product) {\n return null;\n }\n\n return (\n \n {children}\n \n );\n};\n\nexport const useAddToCartButtonContext = (): IAddToCartButtonContext =>\n React.useContext(AddToCartButtonContext);\n\nexport const useIsMouseOverBuyButton = () =>\n useStore(\n useAddToCartButtonContext().store,\n (store) => store.mouseOverBuyButton\n );\n\nexport const useAddToCartSendState = () =>\n useStore(useAddToCartButtonContext().store, (store) => store.sendState);\n\nexport const useAddToCartSubmitAttempts = () =>\n useStore(useAddToCartButtonContext().store, (store) => store.submitAttempts);\n\nexport const useAddToCartActions = () =>\n useStore(useAddToCartButtonContext().store, (store) => store.actions);\n","import { createStore } from 'zustand';\n\nimport { IModalProps, ModalContext } from '@notino/react-styleguide';\n\nimport { RequestState } from '@containers/App/model';\n\nimport { IAddToCartResult, IModal } from '../context/model';\nimport { ProductWithCount } from '../model';\nimport { runTrackingEventCartUpdate } from '../utils';\n\ntype HandleProductAddedToCartParams = {\n products: ProductWithCount[];\n result: IAddToCartResult;\n modal: IModal;\n};\n\ntype AddToCartStore = {\n sendState: RequestState;\n submitAttempts: number;\n mouseOverBuyButton: boolean;\n actions: {\n setMouseOverBuyButton: () => void;\n handleProductAddedToCart: (params: HandleProductAddedToCartParams) => void;\n handleIncreaseSubmitAttempts: () => void;\n handleFailedAddToCart: () => void;\n };\n};\n\ntype CreateAddToCartStoreParams = {\n toggleModal: ReturnType['toggleModal'];\n getModalAfterAddToCart?: (\n props: IModal & IAddToCartResult & { products: ProductWithCount[] }\n ) => [JSX.Element, IModalProps];\n};\n\nexport const createAddToCartStore = ({\n toggleModal,\n getModalAfterAddToCart,\n}: CreateAddToCartStoreParams) =>\n createStore((set, get) => ({\n sendState: RequestState.DEFAULT,\n submitAttempts: 0,\n mouseOverBuyButton: false,\n actions: {\n setMouseOverBuyButton: () => set({ mouseOverBuyButton: true }),\n handleFailedAddToCart: () => set({ sendState: RequestState.FAILED }),\n\n handleIncreaseSubmitAttempts: () =>\n set((state) => ({\n sendState:\n state.submitAttempts === 0\n ? RequestState.IN_PROGRESS\n : RequestState.RETRYING,\n submitAttempts: state.submitAttempts + 1,\n })),\n\n handleProductAddedToCart: ({ result, modal, products }) => {\n if (!result?.success && !result?.notification) {\n get().actions.handleFailedAddToCart();\n return;\n }\n\n set({ submitAttempts: 0, sendState: RequestState.DONE });\n\n products.forEach(({ id, count }) =>\n runTrackingEventCartUpdate({\n productId: id,\n quantity: count,\n action: 'add',\n })\n );\n\n if (!modal) {\n return;\n }\n\n const modalProps = getModalAfterAddToCart({\n products,\n ...modal,\n ...result,\n });\n\n if (modalProps) {\n toggleModal(...modalProps);\n }\n },\n },\n }));\n","import styled from 'styled-components';\n\nexport const RelatedWrapper = styled.div`\n height: inherit;\n display: block;\n`;\n","export const GTM_LIST_LABEL = 'cross_selling';\nexport const GTM_PAGE_TYPE = 'upselling';\nexport const IMPRESSION_CALL_DELAY = 500;\n","import styled from 'styled-components';\n\nexport const StyledChristmasIcon = styled.img`\n height: 2.5rem;\n width: 2.5rem;\n`;\n","import * as React from 'react';\n\nimport { IBasicStyledProps } from '@notino/react-styleguide';\n\nimport { StyledChristmasIcon } from './styled';\nimport ChristmasIconSVG from './svg/christmas-bulb.svg';\n\nexport const ChristmasIcon: React.FC = (props) => (\n \n);\n","import styled from 'styled-components';\n\nimport { IBasicStyledProps } from '@notino/react-styleguide';\n\nimport { CdnImage } from '@components/CdnImage';\nimport { CurrencyStyled } from '@components/PriceLabel/components/styled';\nimport { SpecialSalesIcon } from '@sharedComponents/Icons/SpecialSalesIcon';\n\nexport const ProductTileWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n flex-basis: 25%;\n padding: 0 1rem;\n min-height: 6.25rem;\n min-width: 11rem;\n max-width: 25%;\n`;\n\nexport const ProductTileAnchor = styled.a`\n text-decoration: none;\n color: inherit;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n`;\n\nexport const ImageWrapper = styled.div`\n position: relative;\n height: 7.75rem;\n display: flex;\n align-items: flex-end;\n justify-content: center;\n padding-bottom: 0.5rem;\n margin-bottom: 0.3rem;\n`;\n\nexport const Image = styled(CdnImage)`\n max-height: 6.25rem;\n width: auto;\n max-width: 100%;\n`;\n\nexport const ProductName = styled.div`\n font-weight: bold;\n font-size: 0.875rem;\n\n ${ProductTileAnchor}:hover & {\n text-decoration: underline;\n }\n`;\n\nexport const BrandTitle = styled.div`\n font-weight: 300;\n font-size: 0.875rem;\n\n ${ProductTileAnchor}:hover & {\n text-decoration: underline;\n }\n`;\n\nexport const Annotation = styled.p`\n font-size: 0.75rem;\n color: ${(props) => props.theme.palette.neutralDark};\n font-weight: 400;\n`;\n\nexport const Price = styled.div`\n position: relative;\n font-size: 1.125rem;\n font-weight: bold;\n padding-top: 0.5rem;\n color: ${(props: IBasicStyledProps) => props.theme.palette.neutralDarker};\n line-height: normal;\n z-index: 10;\n margin-top: auto;\n text-align: center;\n`;\n\nexport const PriceWrapper = styled.span`\n position: relative;\n font-size: 1.125rem;\n z-index: 10;\n`;\n\nexport const DualPriceWrapper = styled(PriceWrapper)`\n font-size: 1rem;\n`;\n\nexport const CurrencyWrapper = styled(CurrencyStyled)`\n position: relative;\n font-weight: inherit;\n font-size: 1.125rem;\n z-index: 10;\n`;\n\nexport const DualCurrencyWrapper = styled(CurrencyWrapper)`\n font-size: 1rem;\n`;\n\nexport const DescriptionSectionWrapper = styled.div`\n text-align: center;\n`;\n\nexport const ButtonWrapper = styled.div`\n margin-top: 1rem;\n text-align: center;\n\n & > button,\n form button {\n text-transform: none !important;\n font-weight: normal !important;\n width: auto !important;\n height: auto !important;\n min-width: 0 !important;\n }\n`;\n\nexport const StyledSpecialSalesIcon = styled(SpecialSalesIcon)`\n position: absolute;\n top: 0;\n left: 0;\n`;\n\nexport const TagsWrapper = styled.div`\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n text-align: center;\n\n > div {\n margin: 0;\n font-size: 0.6125rem;\n }\n`;\n","import * as React from 'react';\n\nimport { IBasicStyledProps } from '@notino/react-styleguide';\nimport { IStock } from '@notino/shared/definitions/custom-definitions';\n\nimport { ChristmasIcon } from './icons/ChristmasIcon';\n\ninterface ISpecialSalesProps extends IBasicStyledProps {\n attributes: { [key: string]: string };\n stockAvailabilityCode?: string;\n}\n\nexport const SpecialSalesIcon: React.FC = ({\n attributes,\n stockAvailabilityCode,\n ...rest\n}) => {\n if (\n !stockAvailabilityCode ||\n stockAvailabilityCode === IStock.outOfStock ||\n !attributes\n ) {\n return null;\n }\n\n if (attributes.IsSpecialSalesOffer) {\n return ;\n }\n\n return null;\n};\n","import { defineMessages } from 'react-intl';\n\nexport const messages = defineMessages({\n maxProductsErrorHeader: {\n id: 'universals.addToCart.maxProductsError.header',\n defaultMessage: 'Košík je plný',\n },\n maxProductsErrorAdvice: {\n id: 'universals.addToCart.maxProductsError.advice',\n defaultMessage:\n 'Dokončete rozdělanou objednávku a pokračujte v nákupu s novým košíkem.',\n },\n ok: {\n id: 'universals.addToCart.maxProductsError.button.text',\n defaultMessage: 'Ok',\n },\n});\n","import styled from 'styled-components';\n\nimport {\n BagWithoutBrandIcon,\n breakpoints,\n Button,\n theme,\n} from '@notino/react-styleguide';\n\nexport const StyledBag = styled(BagWithoutBrandIcon)`\n height: 2.5rem;\n width: 2.5rem;\n margin: 2.25rem 0 1.5rem;\n`;\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nexport const Title = styled.div`\n ${theme.typography.titleLarge}\n margin-bottom: 0.5rem;\n`;\n\nexport const Subtitle = styled.div`\n ${theme.typography.labelRegular400};\n text-align: center;\n color: #474747;\n margin-bottom: 1.5rem;\n max-width: 400px;\n`;\n\nexport const StyledButton = styled(Button)`\n width: 100%;\n height: 2.625rem;\n\n @media (min-width: ${breakpoints.sm}) {\n width: 13.125rem;\n }\n`;\n","import{_ as C}from\"./_rollupPluginBabelHelpers-fc5c8eb1.js\";import*as e from\"react\";import{Icon as t}from\"./index.js\";import\"./ThemeContext.js\";import\"styled-components\";var r=function(r){return e.createElement(t,C({},r,{viewBox:\"0 0 44 42\"}),e.createElement(\"path\",{d:\"M19.3896 12.2648H29.3133V11.6821H29.0729H27.8428H27.2602H26.511H19.3896V12.2648Z\",fill:\"black\",stroke:\"black\",strokeWidth:\"0.5\"}),e.createElement(\"path\",{d:\"M14.4235 11.1734V7.90868C14.4259 6.23167 15.0932 4.62404 16.279 3.43821C17.4649 2.25239 19.0725 1.58511 20.7495 1.58267H20.9345C21.1008 1.57347 21.2675 1.57347 21.4339 1.58267C20.2171 2.12565 19.1836 3.00935 18.4581 4.12701C17.7327 5.24468 17.3465 6.54849 17.346 7.88093V13.948C17.117 14.0178 16.9208 14.1675 16.7929 14.3699C16.665 14.5723 16.6141 14.8139 16.6494 15.0507C16.6847 15.2874 16.8039 15.5037 16.9852 15.66C17.1665 15.8163 17.398 15.9022 17.6374 15.9022C17.8767 15.9022 18.1082 15.8163 18.2895 15.66C18.4708 15.5037 18.59 15.2874 18.6253 15.0507C18.6606 14.8139 18.6097 14.5723 18.4818 14.3699C18.354 14.1675 18.1577 14.0178 17.9287 13.948V7.90868C17.9283 6.5272 18.3801 5.18357 19.2151 4.08302C20.0501 2.98246 21.2224 2.1855 22.553 1.81388C23.8835 2.1855 25.0558 2.98246 25.8909 4.08302C26.7259 5.18357 27.1777 6.5272 27.1772 7.90868V11.2382H27.7599V7.90868C27.7667 6.58536 27.3928 5.28801 26.6827 4.1713C25.9727 3.05458 24.9565 2.16563 23.7553 1.61041C23.9216 1.60121 24.0883 1.60121 24.2547 1.61041H24.4397C26.1167 1.61286 27.7243 2.28013 28.9101 3.46596C30.096 4.65179 30.7632 6.25941 30.7657 7.93642V13.948C30.5392 14.0177 30.3454 14.1664 30.2192 14.367C30.0931 14.5676 30.0432 14.8067 30.0784 15.041C30.1137 15.2753 30.2319 15.4892 30.4114 15.6437C30.591 15.7983 30.8201 15.8833 31.057 15.8833C31.2939 15.8833 31.523 15.7983 31.7026 15.6437C31.8821 15.4892 32.0003 15.2753 32.0356 15.041C32.0708 14.8067 32.0209 14.5676 31.8948 14.367C31.7687 14.1664 31.5748 14.0177 31.3483 13.948V7.90868C31.3459 6.07714 30.6172 4.32131 29.3221 3.02621C28.027 1.73112 26.2712 1.00245 24.4397 1.00001H24.2547C23.693 1.00002 23.1336 1.0715 22.59 1.21272C22.0496 1.07068 21.4932 0.999182 20.9345 1.00001H20.7495C18.9179 1.00245 17.1621 1.73112 15.867 3.02621C14.5719 4.32131 13.8433 6.07714 13.8408 7.90868V11.1734H14.4235Z\",fill:\"#DC0069\",stroke:\"#DC0069\",strokeWidth:\"0.5\"}),e.createElement(\"path\",{d:\"M39.7272 41L38.1457 11.6821H32.8V12.2648H37.6L39.1168 40.4174H10.1133L10.7052 12.2648H15.8936V11.6821H15.0335H14.4231H13.8405H13.2208H7.75491L4 38.7527L7.64393 39.77L7.80116 39.2058L4.6474 38.3272L8.26358 12.2648H10.1225L9.52139 41H39.7272Z\",fill:\"black\",stroke:\"black\",strokeWidth:\"0.5\"}))};export{r as BagWithoutBrandIcon};\n//# sourceMappingURL=BagWithoutBrandIcon.js.map\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { ButtonModel, ModalContext } from '@notino/react-styleguide';\n\nimport { messages } from './messages';\nimport { StyledBag, StyledButton, Subtitle, Title, Wrapper } from './styled';\n\nexport const MaxProductsInCartModal = () => {\n const { hideModal } = ModalContext.useModalContext();\n\n return (\n \n \n\n \n <FormattedMessage {...messages.maxProductsErrorHeader} />\n \n\n \n \n \n\n \n \n \n \n );\n};\n","import * as React from 'react';\n\nimport { ButtonModel } from '@notino/react-styleguide';\n\nimport { AddToCartCoreComponent } from '@sharedComponents/AddToCartButton/AddToCartCoreComponentButton';\nimport { AddToCartButtonProvider } from '@sharedComponents/AddToCartButton/context';\nimport { MaxProductsInCartModal } from '@sharedComponents/AddToCartButton/MaxProductsInCartModal';\nimport { IAddToCartButtonProps } from '@sharedComponents/AddToCartButton/model';\n\nimport { ButtonWrapper } from './styled';\n\ntype CommonProps = Pick<\n IAddToCartButtonProps,\n | 'showAddToCartModal'\n | 'getModalAfterAddToCart'\n | 'buttonSize'\n | 'buttonWrapper'\n | 'buttonStyle'\n | 'count'\n | 'wrapable'\n | 'disableRedirect'\n>;\n\ntype UpsellingAddToCartButtonProps = Omit<\n IAddToCartButtonProps,\n keyof CommonProps\n>;\n\nexport const UpsellingAddToCartButton: React.FC =\n React.memo((props) => {\n const commonProps: CommonProps = {\n showAddToCartModal: false,\n buttonWrapper: ButtonWrapper,\n buttonStyle: ButtonModel.Styles.secondary,\n buttonSize: ButtonModel.Sizes.xSmall,\n count: 1,\n disableRedirect: true,\n wrapable: true,\n getModalAfterAddToCart: (modalProps) =>\n modalProps.type === 'maxProductsInCart'\n ? [\n ,\n {\n withFocusTrap: true,\n },\n ]\n : undefined,\n };\n\n return (\n \n \n \n );\n });\n","import * as React from 'react';\nimport { useInView } from 'react-intersection-observer';\n\nimport { ModalContext, Tag, TagModel } from '@notino/react-styleguide';\nimport { GetUpsellingDataQuery } from '@notino/shared/definitions/types';\n\nimport { useWithSpaRedirect } from '@components/ClientRedirect/useHandleClientRedirect';\nimport PriceLabel from '@components/PriceLabel';\nimport { useTagAttributes } from '@components/Universals/ProductItem/useTagAttributes';\nimport { useIsDualPriceForCroatia } from '@containers/ProductDetailContainer/ProductDetail/hooks/useIsDualPriceForCroatia';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\nimport {\n useGetMasterAddToCart,\n ProductEventWither,\n TrackedProduct,\n} from '@helpers/googleTagManager';\n\nimport { GTM_LIST_LABEL } from '../../constants';\n\nimport {\n Annotation,\n ProductTileWrapper,\n Image,\n ImageWrapper,\n BrandTitle,\n Price,\n PriceWrapper,\n CurrencyWrapper,\n DescriptionSectionWrapper,\n ProductTileAnchor,\n ProductName,\n StyledSpecialSalesIcon,\n DualPriceWrapper,\n DualCurrencyWrapper,\n TagsWrapper,\n} from './styled';\nimport { UpsellingAddToCartButton } from './UpsellingAddToCartButton';\n\nexport interface ProductTitleOwnProps {\n position: number;\n productById: GetUpsellingDataQuery['vpProductByIds'][number];\n trackVisibleItemsGTM: (product: TrackedProduct) => void;\n}\n\nexport const ProductTile: React.FC = React.memo(\n ({ productById, position, trackVisibleItemsGTM }) => {\n const {\n imageUrl,\n brand,\n name,\n url,\n price,\n annotation,\n id,\n productCode,\n attributes,\n masterId,\n canBuy,\n stockAvailability,\n } = productById;\n\n const [ref, inView] = useInView();\n const { hideModal } = ModalContext.useModalContext();\n const withSpaRedirect = useWithSpaRedirect(productById);\n const {\n getLeftSidePrice,\n getRightSidePrice,\n rightSideCurrency,\n leftSideCurrency,\n isDualPriceForCroatia,\n } = useIsDualPriceForCroatia();\n\n const trackSelectItem = () => {\n dispatchTrackingEvent({\n event: 'select_item',\n product: [\n ProductEventWither()\n .withVpProduct({\n ...productById,\n reviewOverview: null,\n })\n .withAdditionalData({\n list_position: position,\n list_name: GTM_LIST_LABEL,\n })\n .build(),\n ],\n _clear: true,\n });\n };\n\n const onClick = withSpaRedirect(() => {\n hideModal();\n trackSelectItem();\n });\n\n const trackAddToCart = useGetMasterAddToCart(GTM_LIST_LABEL);\n\n const onProductAdded = async () => {\n await trackAddToCart(productById, masterId.toString(), position);\n };\n\n React.useEffect(() => {\n if (inView) {\n trackVisibleItemsGTM(\n ProductEventWither()\n .withVpProduct({\n ...productById,\n reviewOverview: null,\n })\n .withAdditionalData({\n list_position: position,\n id: productById.id,\n })\n .build()\n );\n }\n }, [inView, productById, position, trackVisibleItemsGTM]);\n\n const tagsAttrs = useTagAttributes(attributes);\n\n return (\n \n \n \n \n\n \n {tagsAttrs.map((attr) => (\n \n {attr.label}\n \n ))}\n \n\n \n \n\n \n {brand.name}\n {name}\n {annotation}\n \n\n \n {isDualPriceForCroatia ? (\n <>\n \n / \n \n \n ) : (\n \n )}\n \n \n\n {canBuy && (\n \n )}\n \n );\n }\n);\n","import { styled, breakpoints } from '@notino/react-styleguide';\n\n// we add padding-bottom because of top modal padding\nexport const RelatedList = styled.div`\n display: flex;\n flex-wrap: nowrap;\n -webkit-overflow-scrolling: touch;\n padding-bottom: 0.875rem;\n overflow-y: hidden;\n\n @media (min-width: ${breakpoints.md}) {\n flex-wrap: wrap;\n height: auto;\n overflow-x: auto;\n padding-bottom: 2.75rem;\n }\n`;\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { useQuery } from '@apollo/client';\n\nimport { Heading } from '@notino/react-styleguide';\nimport {\n GetUpsellingDataQuery,\n GetUpsellingDataQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport { useTrackDynamicList } from '@helpers/googleTagManager';\n\nimport messages from '../../../messages';\nimport { GTM_LIST_LABEL } from '../constants';\n\nimport { IUpsellingListProps } from './model';\nimport { ProductTile } from './ProductTile';\nimport getUpsellingDataQuery from './queries/upsellingData.graphql';\nimport { RelatedList } from './styled';\n\nconst MAX_PRODUCTS_COUNT = 4;\n\nexport const UpsellingList: React.FC = ({\n databreakersProductIds,\n}) => {\n const { loading, data: productData } = useQuery<\n GetUpsellingDataQuery,\n GetUpsellingDataQueryVariables\n >(getUpsellingDataQuery, {\n variables: {\n ids: databreakersProductIds,\n },\n });\n\n const trackVisibleItemsGTM = useTrackDynamicList({\n listName: GTM_LIST_LABEL,\n interaction: 'automatic',\n });\n\n if (!productData?.vpProductByIds || loading) {\n return null;\n }\n\n // Filter all products, that are not available and select first 4\n const vpProductByIds = productData.vpProductByIds\n .filter((product) => product && product.canBuy)\n .slice(0, MAX_PRODUCTS_COUNT);\n\n return (\n <>\n \n \n \n \n {vpProductByIds.map((productById, i) => (\n \n ))}\n \n \n );\n};\n","//TODO: Remove exponea implementation of upselling recommendation, when it is clear there will be no further usage\n\nimport * as React from 'react';\n\nimport { useQuery } from '@apollo/client';\n\nimport {\n UpsellingProductsQuery,\n UpsellingProductsQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport { useFeatureFlags } from '@context/launch-darkly/LDProvider';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\n\nimport databreakersUpsellingQuery from './queries/databreakersUpsellingQuery.graphql';\nimport { RelatedWrapper } from './styled';\nimport { UpsellingList } from './UpsellingList';\nimport { notifyCypressUpsellingDisabled, trackUpsellingOpen } from './utils';\n\ninterface IUpsellingProductsProps {\n productCodes: string[];\n}\n\nexport const UpsellingProducts: React.FC = ({\n productCodes,\n}) => {\n const { getTimeFromInit } = useTrackingContext();\n const { recoProductDetailAddToCart } = useFeatureFlags();\n\n // Databreakers recommendations\n const { data: databreakersResponse } = useQuery<\n UpsellingProductsQuery,\n UpsellingProductsQueryVariables\n >(databreakersUpsellingQuery, {\n skip: !recoProductDetailAddToCart,\n variables: { productCodes },\n });\n\n React.useEffect(() => {\n trackUpsellingOpen({ timing: getTimeFromInit() });\n }, [getTimeFromInit]);\n\n const isDatabreakersResponseEmpty =\n !databreakersResponse ||\n !databreakersResponse.getUpsellingProductsForMultiple ||\n databreakersResponse.getUpsellingProductsForMultiple.length === 0;\n\n if (isDatabreakersResponseEmpty) {\n notifyCypressUpsellingDisabled(recoProductDetailAddToCart);\n return null;\n }\n\n return (\n \n \n \n );\n};\n","import { TrackingAttributes } from '@context/tracking/types';\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\n\nimport { GTM_PAGE_TYPE } from './constants';\n\nexport const callExponeaRecommendation = ({\n recommendationId,\n callback,\n productCode,\n}) => {\n const options = {\n // Required parameters:\n recommendationId,\n // Specifies upper limit of the recommendations to return. Defaults to 10.\n size: 10,\n callback,\n // If true, fills the recommendations with random items until size is reached. This is utilized when models cannot recommend enough items.\n fillWithRandom: true,\n // Optional parameters:\n // Adds additional constrains to catalog when retrieving recommended items. Example: [{'property': 'gender', 'constraint': { 'type': 'string', 'operator': 'equals', 'operands': [{'type': 'constant', 'value': 'male'}]}}]\n catalogFilter: [],\n // Returns only specified attributes from catalog items. If empty or not set, returns everything.\n catalogAttributesWhitelist: ['product_number'],\n // CAUTION! Property is named product_id in exponea documentation but in real it is web productCode\n // {[product_id]: [weight]}, where the value weight determines the preference strength for the given product (bigger number = higher preference). For example: {\"123\": 1, \"234\": 2, \"345\": 4}\n items: { [productCode]: 1 },\n };\n\n if (\n window.exponea &&\n typeof window.exponea.getRecommendation === 'function'\n ) {\n window.exponea.getRecommendation(options);\n }\n};\n\nexport const trackUpsellingOpen = ({\n timing,\n}: Omit) => {\n dispatchTrackingEvent({\n event: 'subpage_view',\n subpage: {\n timing,\n type: GTM_PAGE_TYPE,\n action: 'open_cross_selling',\n interaction: 'automatic',\n name: 'cross_selling',\n },\n _clear: true,\n });\n};\n\nexport const notifyCypressUpsellingDisabled = (\n shouldRenderDatabreakers: boolean\n) => {\n // we let cypress know that upselling is disabled\n if (window.Cypress && !shouldRenderDatabreakers) {\n window.isUpsellingActive = false;\n }\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport {\n ButtonModel,\n Colors,\n TruckIcon,\n ModalContext,\n} from '@notino/react-styleguide';\n\nimport PriceLabel from '@components/PriceLabel';\nimport ProgressBar from '@components/ProgressBar';\nimport { CART_URL } from '@utils/constants';\n\nimport messages from '../messages';\n\nimport { IAddToCartModalProps } from './model';\nimport {\n StyledButton,\n DeliveryFree,\n DeliveryFreeRow,\n PriceWrapper,\n CurrencyWrapper,\n ButtonsWrapper,\n} from './styled';\nimport { UpsellingProducts } from './UpsellingProducts';\n\nexport const AddToCartModal: React.FC = ({\n productCodes,\n remainingFreeDelivery,\n closingModal,\n}) => {\n const { hideModal } = ModalContext.useModalContext();\n\n const onContinueClick = () => {\n closingModal();\n hideModal();\n };\n\n return (\n \n \n \n \n \n \n \n \n \n {/* This funcionality is not used at the moment, consider removal in the future */}\n {remainingFreeDelivery > 0 && (\n \n \n \n \n \n \n ),\n }}\n />\n \n \n \n )}\n\n {productCodes && productCodes.length > 0 ? (\n \n ) : null}\n \n );\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport messages from './messages';\n\ninterface INotificationModalProps {\n statusMessages: string[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n messagesValues?: any;\n}\n\nexport const NotificationModal: React.FC = ({\n statusMessages,\n messagesValues,\n}) => {\n if (!statusMessages) {\n return null;\n }\n\n return (\n
\n {statusMessages.map((messageKey) => (\n
\n {chunks},\n }}\n />\n
\n ))}\n
\n );\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { ModalModel } from '@notino/react-styleguide';\n\nimport { AddToCartModal } from '@sharedComponents/AddToCartButton/AddToCartModal';\nimport { StyledHeader } from '@sharedComponents/AddToCartButton/AddToCartModal/styled';\nimport messages from '@sharedComponents/AddToCartButton/messages';\nimport { IAddToCartButtonProps } from '@sharedComponents/AddToCartButton/model';\nimport { NotificationModal } from '@sharedComponents/AddToCartButton/NotificationModal';\n\nimport { MaxProductsInCartModal } from './MaxProductsInCartModal';\n\nexport const getModalAfterAddToCart: IAddToCartButtonProps['getModalAfterAddToCart'] =\n (props) => {\n if (props.type === 'common' && props.notification?.modalType === 'common') {\n return [\n ,\n {\n center: false,\n withFocusTrap: true,\n header: (\n \n \n \n ),\n },\n ];\n } else if (props.type === 'upselling') {\n return [\n product.productCode)}\n remainingFreeDelivery={0}\n closingModal={props.onClosingModal}\n />,\n {\n center: false,\n withFocusTrap: true,\n header: (\n \n \n \n ),\n subHeader: props.subHeader,\n onClose: props.onClose,\n size: ModalModel.Sizes.large,\n },\n ];\n } else if (props.type === 'maxProductsInCart') {\n return [\n ,\n {\n withFocusTrap: true,\n },\n ];\n }\n };\n","import { defineMessages } from 'react-intl';\nexport default defineMessages({\n addToCartTryAgain: {\n id: 'universals.add.to.cart.tryAgain',\n defaultMessage: 'Zkusit znovu',\n },\n addedToCart: {\n id: 'universals.added.to.cart',\n defaultMessage: 'Přidáno do košíku',\n },\n continueWithShopping: {\n id: 'universals.continue.with.shopping',\n defaultMessage: 'Pokračovat v nákupu',\n },\n goToCart: {\n id: 'universals.go.to.cart',\n defaultMessage: 'Přejít do košíku',\n },\n priceMissingForFreeDelivery: {\n id: 'universals.amount.missing.for.free.delivery',\n defaultMessage: '{price} do dopravy zdarma',\n },\n customersAlsoBuy: {\n id: 'universals.customers.also.buy',\n defaultMessage: 'Zákazníci také koupili',\n },\n productsAddOutOfPriceLimit: {\n id: 'universals.products.add.OutOfPriceLimit',\n defaultMessage:\n 'Přidáním zboží do košíku jste překročili povolený limit objednávky.',\n },\n productsAddVoucherOnline: {\n id: 'universals.products.add.VoucherOnline',\n defaultMessage: 'V košíku je online poukázka.',\n },\n productsAddSold: {\n id: 'universals.products.add.Sold',\n defaultMessage: 'Zboží je vyprodáno.',\n },\n productsAddUseProductInCart: {\n id: 'universals.products.add.UseProductInCart',\n defaultMessage:\n 'Toto zboží se speciální slevou již nelze vložit do košíku.',\n },\n productsAddNoCreateCart: {\n id: 'universals.products.add.NoCreateCart',\n defaultMessage: 'Zboží se nepodařilo vložit do košíku.',\n },\n productsAddReducedCount: {\n id: 'universals.products.add.ReducedCount',\n defaultMessage: 'Množství zboží vloženého do košíku bylo upraveno.',\n },\n productsAddError: {\n id: 'universals.products.add.Error',\n defaultMessage: 'Při přidání produktu do košíku se vyskytla chyba.',\n },\n servicesEngravingDefault: {\n id: 'universals.services.Engraving.Default',\n defaultMessage: 'Gravírování bylo úspěšně přidáno ke zboží.',\n },\n servicesEngravingSuccess: {\n id: 'universals.services.Engraving.Success',\n defaultMessage: 'Gravírování bylo úspěšně přidáno ke zboží.',\n },\n servicesEngravingNotFound: {\n id: 'universals.services.Engraving.NotFound',\n defaultMessage: 'Při přidání gravírování ke zboží se vyskytla chyba.',\n },\n servicesEngravingError: {\n id: 'universals.services.Engraving.Error',\n defaultMessage: 'Při přidání gravírování ke zboží se vyskytla chyba.',\n },\n productForProfessionalChoosed: {\n id: 'universals.product.for.professional.choosed',\n defaultMessage: 'Vybrali jste profesionální produkt',\n },\n returnedProductChoosed: {\n id: 'universals.product.returned.choosed',\n defaultMessage: 'Vybrali jste rozbalený produkt',\n },\n damagedProductChoosed: {\n id: 'universals.product.damaged.choosed',\n defaultMessage: 'Vybrali jste produkt s poškozeným obalem',\n },\n damagedProductForProfessionalChoosed: {\n id: 'universals.product.damaged.for.professional.choosed',\n defaultMessage: 'Vybrali jste profesionální produkt s poškozeným obalem',\n },\n returnedProductForProfessionalChoosed: {\n id: 'universals.product.returned.for.professional.choosed',\n defaultMessage: 'Vybrali jste profesionální rozbalený produkt',\n },\n productForProfessionalAcknowledgement: {\n id: 'universals.product.for.professional.acknowledgement',\n defaultMessage:\n 'Přidáním do košíku berete na vědomí, že tento produkt je určený výhradně pro profesionální použití.',\n },\n returnedProductAcknowledgement: {\n id: 'universals.product.returned.acknowledgement',\n defaultMessage: 'Může být lehce použitý nebo bez původního obalu.',\n },\n damagedProductAcknowledgement: {\n id: 'universals.product.damaged.acknowledgement',\n defaultMessage: 'Produkt je nový se 100% obsahem, má pouze poškozený obal.',\n },\n damagedProductForProfessionalAcknowledgement: {\n id: 'universals.product.damaged.for.professional.acknowledgement',\n defaultMessage:\n 'Produkt je nový se 100% obsahem, má však poškozený obal. Přidáním do košíku berete také na vědomí, že tento produkt je určen výhradně pro profesionální použití.',\n },\n returnedProductForProfessionalAcknowledgement: {\n id: 'universals.product.returned.for.professional.acknowledgement',\n defaultMessage:\n 'Produkt může být lehce použitý nebo bez původního obalu. Přidáním do košíku berete také na vědomí, že tento produkt je určen výhradně pro profesionální použití. ',\n },\n productForProfessionalConfirm: {\n id: 'universals.product.for.professional.confirm',\n defaultMessage: 'Přidat do košíku',\n },\n cartLimitExceededHeader: {\n id: 'universals.add.to.cart.limit.exceeded.header',\n defaultMessage: 'Vaše objednávka přesáhla maximální hodnotu.',\n },\n cartLimitExceededExplanation: {\n id: 'universals.add.to.cart.limit.exceeded.explanation',\n defaultMessage:\n 'Zboží odesíláme z České republiky a z důvodu celního řízení může být v maximální výši 4250 UAH.',\n },\n cartLimitExceededAdvice: {\n id: 'universals.add.to.cart.limit.exceeded.advice',\n defaultMessage: 'Pro další nákup si prosím vytvořte novou objednávku.',\n },\n cartSoldoutHeader: {\n id: 'universals.add.to.cart.soldout.header',\n defaultMessage: 'Vyprodaný produkt',\n },\n cartSoldoutExplanation: {\n id: 'universals.add.to.cart.soldout.explanation',\n defaultMessage:\n 'Je nám líto, ale bohužel někdo jiný koupil produkt {productName} rychleji než Vy. Prosím vyberte si jiný produkt anebo zkuste naše hlídání dostupnosti mailem.',\n },\n cartOnlyVoucherHeader: {\n id: 'universals.add.to.cart.only.voucher.header',\n defaultMessage: 'Elektronická poukázka',\n },\n cartOnlyVoucherExplanation: {\n id: 'universals.add.to.cart.only.voucher.explanation',\n defaultMessage:\n 'Elektronickou poukázku lze zakoupit pouze samostatně bez dalších produktů.',\n },\n systemOverloaded: {\n id: 'universals.add.to.cart.systemOverloaded',\n defaultMessage: 'Systém je nyní přetížený',\n },\n pleaseTryAgain: {\n id: 'universals.add.to.cart.pleaseTryAgain',\n defaultMessage: 'Zkuste to prosím za několik minut. Děkujeme.',\n },\n});\n","import { ComponentType, PropsWithChildren } from 'react';\nimport { MessageDescriptor } from 'react-intl';\n\nimport { ButtonModel, IModalProps } from '@notino/react-styleguide';\nimport { CartServiceInput } from '@notino/shared/definitions/types';\n\nimport {\n IModal,\n IAddToCartResult,\n} from '@sharedComponents/AddToCartButton/context/model';\n\nexport interface IWrap {\n wrapable?: boolean;\n}\n\nexport interface ProductInfo {\n id: string;\n attributes?: ProductAttributes;\n productCode: string;\n name: string;\n variantName: string;\n masterId: string | number;\n}\n\ninterface ProductAttributes {\n IsForProfessionals?: boolean;\n Damage?: {\n volumeInPercent: number;\n };\n}\n\nexport interface IAddToCartButtonProps extends IWrap {\n product: ProductInfo;\n count: number;\n services?: CartServiceInput[];\n buttonWrapper?: ComponentType;\n buttonWrapperProps?: Record;\n showAddToCartModal: boolean;\n disableRedirect?: boolean;\n onClosingModal?: () => void;\n buttonElementId?: string;\n buttonElementClassName?: string;\n buttonStyle?: ButtonModel.Styles;\n buttonSize?: ButtonModel.Sizes;\n buttonText?: MessageDescriptor;\n onProductAdded?: (products: ProductWithCount[]) => void | Promise;\n withLegacyAddToCart?: boolean;\n onProductAddFailed?: (\n message: string,\n products: ProductWithCount[]\n ) => void | Promise;\n getModalAfterAddToCart?: (\n props: IModal & IAddToCartResult & { products: ProductWithCount[] }\n ) => [JSX.Element, IModalProps];\n}\n\nexport enum PostAddToCartAction {\n REDIRECT,\n SHOW_MODAL,\n ONLY_ADD,\n}\n\nexport enum AddToCartProductErrors {\n SC_ECO_PACKAGING_ADD_ERROR = 'SC_ECO_PACKAGING_ADD_ERROR',\n SC_INSURANCE_ADD_ERROR = 'SC_INSURANCE_ADD_ERROR',\n SC_CART_PRICE_OUT_OF_LIMIT = 'SC_CART_PRICE_OUT_OF_LIMIT',\n SC_SOLD_PRODUCT = 'SC_SOLD_PRODUCT',\n SC_ONLINE_VOUCHER_AND_PRODUCT = 'SC_ONLINE_VOUCHER_AND_PRODUCT',\n SC_MAX_PRODUCTS_IN_CART_ERROR = 'SC_MAX_PRODUCTS_IN_CART_ERROR',\n}\n\nexport type ProductWithCount = IAddToCartButtonProps['product'] & {\n count: number;\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { useQuery } from '@apollo/client';\n\nimport {\n GetProductByIdsQuery,\n GetProductByIdsQueryVariables,\n} from '@notino/shared/definitions/types';\n\nimport PriceLabel from '@components/PriceLabel';\nimport { useIsDualPriceForCroatia } from '@containers/ProductDetailContainer/ProductDetail/hooks/useIsDualPriceForCroatia';\n\nimport messages from '../messages';\n\nimport { IModalSubHeader } from './model';\nimport getProductByIdQuery from './queries/productByIds.graphql';\nimport {\n SubHeaderWrapper,\n SubHeader,\n InlineBlock,\n PriceWrapper,\n CurrencyWrapper,\n Notes,\n} from './styled';\n\nexport const ModalSubHeader: React.FC = ({\n statusMessages,\n products,\n}) => {\n const { loading, error, data } = useQuery<\n GetProductByIdsQuery,\n GetProductByIdsQueryVariables\n >(getProductByIdQuery, {\n variables: {\n ids: products.map((product) => String(product.id)),\n },\n });\n\n const {\n getLeftSidePrice,\n getRightSidePrice,\n leftSideCurrency,\n rightSideCurrency,\n isDualPriceForCroatia,\n } = useIsDualPriceForCroatia();\n\n if (loading || error || !data || !data.vpProductByIds) {\n return null;\n }\n\n const { vpProductByIds } = data;\n\n return (\n \n \n {vpProductByIds.map((product, idx) => {\n const count = products[idx].count;\n const priceSum = {\n ...product.price,\n value: product.price.value * count,\n };\n\n return (\n
\n {product.brand && product.brand.name}{' '}\n {product.name} {product.annotation}{' '}\n \n | {count} {product.orderUnit} |{' '}\n {isDualPriceForCroatia ? (\n <>\n \n / \n \n \n ) : (\n \n )}\n \n
\n );\n })}\n
\n\n {statusMessages && (\n \n {statusMessages.map((messageKey) => (\n
\n \n
\n ))}\n
\n )}\n
\n );\n};\n","import styled from 'styled-components';\n\nexport const ModalContent = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n height: 20rem;\n color: ${({ theme }) => theme.palette.neutralDarker};\n`;\n\nexport const SystemOverloadedMessage = styled.div`\n font-size: 1.5rem;\n margin-top: 1.5rem;\n margin-bottom: 0.25rem;\n`;\n\nexport const PleaseTryAgainMessage = styled.div`\n font-size: 0.75rem;\n`;\n","import { PostAddToCartAction } from '../../../model';\n\nexport const getSettings = (\n showAddToCartModal,\n disableRedirect\n): PostAddToCartAction => {\n const isDocument = typeof document !== 'undefined';\n\n if (\n (isDocument &&\n document.body.className.includes('exponea-addtocart-modal')) ||\n showAddToCartModal\n ) {\n return PostAddToCartAction.SHOW_MODAL;\n }\n\n if (\n (isDocument &&\n document.body.className.includes('exponea-addtocart-redirect')) ||\n !disableRedirect\n ) {\n return PostAddToCartAction.REDIRECT;\n }\n\n return PostAddToCartAction.ONLY_ADD;\n};\n","import { AddProductsToCartMutation } from '@notino/shared/definitions/types';\n\nimport {\n AddToCartProductErrors,\n ProductWithCount,\n} from '@sharedComponents/AddToCartButton/model';\n\nimport { generateNotificationForProduct, parseStatuses } from '../../../utils';\n\nimport { getSettings } from './getSettings';\n\ninterface IAddToCartResult {\n response: AddProductsToCartMutation['AddProductsToCart'];\n showAddToCartModal: boolean;\n disableRedirect?: boolean;\n products: ProductWithCount[];\n}\n\nexport const addToCartResult = ({\n response,\n showAddToCartModal,\n disableRedirect,\n products,\n}: IAddToCartResult) => {\n const cartSettings = getSettings(showAddToCartModal, disableRedirect);\n const fatalErrors = getFatalErrors(response.productAddResponse);\n\n const productById = (id: string) =>\n response.productAddResponse.find((p) => String(p.productId) === id);\n\n if (fatalErrors.length === 0) {\n const statusMessages = products\n .map((product) => {\n const { productIncrease } = productById(product.id);\n\n return parseStatuses(\n response.serviceAddResponse,\n productIncrease,\n product.count\n );\n })\n .flat();\n\n return {\n success: true,\n cartSettings,\n statusMessages,\n };\n }\n\n const notificationMessages = createNotification(products, productById);\n\n return {\n success: false,\n errorCode: fatalErrors[0],\n cartSettings,\n notification: notificationMessages[0],\n };\n};\n\nfunction createNotification(\n products: IAddToCartResult['products'],\n productById: (\n id: string\n ) => AddProductsToCartMutation['AddProductsToCart']['productAddResponse'][number]\n) {\n return products\n .map((product) => {\n const productFatalErrors = productById(product.id).messages.filter(\n onlyFatalErrors\n );\n\n if (productFatalErrors.length === 0) {\n return null;\n }\n\n return generateNotificationForProduct(productFatalErrors, product);\n })\n .filter(Boolean);\n}\n\nconst nonFatalAddToCartProductErrors = [\n AddToCartProductErrors.SC_INSURANCE_ADD_ERROR,\n AddToCartProductErrors.SC_ECO_PACKAGING_ADD_ERROR,\n];\n\nconst onlyFatalErrors = (m: AddToCartProductErrors) =>\n !nonFatalAddToCartProductErrors.includes(m);\n\nconst getFatalErrors = (\n products: AddProductsToCartMutation['AddProductsToCart']['productAddResponse']\n) =>\n products\n .map((product) => product.messages)\n .flat()\n .filter(onlyFatalErrors) as AddToCartProductErrors[];\n","import { PostAddToCartAction } from '@sharedComponents/AddToCartButton/model';\nimport { CART_URL } from '@utils/constants';\n\nconst CART_OVERVIEW_UPDATE_EVENT = 'header:cart:overview:update';\n\nexport const updateHeaderCartOverview = ({ cartId, cartSettings }) => {\n if (window?.fragments?.isNewHeader) {\n document.dispatchEvent(new CustomEvent(CART_OVERVIEW_UPDATE_EVENT));\n if (cartSettings === PostAddToCartAction.REDIRECT) {\n window.location.href = CART_URL;\n }\n } else if (typeof window.getAjaxCartToHeader === 'function') {\n window.getAjaxCartToHeader(cartId, () => {\n if (cartSettings === PostAddToCartAction.REDIRECT) {\n window.location.href = CART_URL;\n }\n });\n }\n};\n","import * as React from 'react';\n\nimport { ModalContext } from '@notino/react-styleguide';\n\nimport useFeatureSwitches from '@hooks/useFeatureSwitches';\nimport { ModalSubHeader } from '@sharedComponents/AddToCartButton/AddToCartModal/ModalSubHeader';\nimport {\n useAddToCartActions,\n useAddToCartButtonContext,\n useAddToCartSubmitAttempts,\n} from '@sharedComponents/AddToCartButton/context';\nimport { IModal } from '@sharedComponents/AddToCartButton/context/model';\nimport { ProductWithCount } from '@sharedComponents/AddToCartButton/model';\nimport { IBuyButtonProps } from '@sharedComponents/AddToCartButton/sharedComponents/BuyButton';\nimport { useSystemOverloadedModal } from '@sharedComponents/AddToCartButton/SystemOverloadedModal';\nimport { wait } from '@utils/wait';\n\nimport { updateHeaderCartOverview } from '../utils';\nimport { addToCart } from '../utils/addToCart';\nimport { addToCartResult } from '../utils/addToCartResult';\n\ntype UseHandleAddToCartPropsType = Pick;\n\ntype IHandleAddToCart = {\n products?: ProductWithCount[];\n};\n\nexport const useHandleAddToCart = ({\n isOnSpecialModal,\n}: UseHandleAddToCartPropsType = {}) => {\n const {\n apollo: { addToCartMutation },\n props: {\n showAddToCartModal,\n disableRedirect,\n product,\n onProductAdded,\n onProductAddFailed,\n count,\n services,\n onClosingModal,\n },\n } = useAddToCartButtonContext();\n const submitAttempts = useAddToCartSubmitAttempts();\n\n const {\n handleProductAddedToCart,\n handleIncreaseSubmitAttempts,\n handleFailedAddToCart,\n } = useAddToCartActions();\n\n const { addToCartWarningCount, addToCartResendDelay } = useFeatureSwitches();\n\n const { hideModal } = ModalContext.useModalContext();\n const showSystemOverloadedModal = useSystemOverloadedModal();\n\n const handleAddToCart = React.useCallback(\n async ({ products: _products }: IHandleAddToCart) => {\n handleIncreaseSubmitAttempts();\n\n if (submitAttempts > 0 && addToCartResendDelay > 0) {\n await wait(addToCartResendDelay);\n }\n const products = _products || [{ ...product, count }];\n const addToCartResponse = await addToCart({\n addToCartMutation,\n products,\n services,\n });\n\n if (isOnSpecialModal) {\n hideModal();\n }\n\n if (addToCartResponse.success) {\n const { response } = addToCartResponse;\n const result = addToCartResult({\n response,\n showAddToCartModal,\n disableRedirect,\n products,\n });\n\n if (result.success) {\n await Promise.resolve(onProductAdded(products));\n } else {\n await Promise.resolve(onProductAddFailed(result.errorCode, products));\n }\n\n updateHeaderCartOverview({\n cartId: response.productAddResponse[0].cart.cartId,\n cartSettings: result.cartSettings,\n });\n\n let modal: IModal = null;\n if (result.notification) {\n modal = {\n type: result.notification.modalType,\n };\n } else if (showAddToCartModal) {\n modal = {\n type: 'upselling',\n onClosingModal,\n subHeader: (\n \n ),\n onClose: () => {\n onClosingModal();\n hideModal();\n },\n };\n }\n\n handleProductAddedToCart({\n result,\n products,\n modal,\n });\n } else {\n handleFailedAddToCart();\n await Promise.resolve(\n onProductAddFailed(addToCartResponse.error, products)\n );\n if (\n submitAttempts >= addToCartWarningCount &&\n addToCartWarningCount > 0\n ) {\n showSystemOverloadedModal();\n }\n }\n },\n [\n addToCartResendDelay,\n addToCartWarningCount,\n addToCartMutation,\n onProductAddFailed,\n onClosingModal,\n count,\n disableRedirect,\n handleFailedAddToCart,\n handleIncreaseSubmitAttempts,\n handleProductAddedToCart,\n hideModal,\n isOnSpecialModal,\n onProductAdded,\n product,\n services,\n showAddToCartModal,\n showSystemOverloadedModal,\n submitAttempts,\n ]\n );\n\n const handleAddToCartEvent = React.useCallback(\n async (e: React.SyntheticEvent) => {\n e.preventDefault();\n await handleAddToCart({ products: undefined });\n },\n [handleAddToCart]\n );\n\n return {\n handleAddToCartEvent,\n handleAddToCart,\n } as const;\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { WarningIcon, Colors, ModalContext } from '@notino/react-styleguide';\n\nimport messages from '../messages';\n\nimport {\n ModalContent,\n SystemOverloadedMessage,\n PleaseTryAgainMessage,\n} from './styled';\n\nexport const useSystemOverloadedModal = () => {\n const { toggleModal } = ModalContext.useModalContext();\n\n return React.useCallback(() => {\n toggleModal(\n \n \n \n \n \n \n \n \n ,\n {\n noBorders: true,\n }\n );\n }, [toggleModal]);\n};\n","export const wait = (msec: number) =>\n new Promise((resolve) => setTimeout(resolve, msec));\n","import { MutationFunctionOptions } from '@apollo/client';\nimport { ExecutionResult } from 'graphql';\n\nimport {\n AddProductsToCartMutationVariables,\n AddProductsToCartMutation,\n} from '@notino/shared/definitions/types';\n\nimport {\n IAddToCartButtonProps,\n ProductWithCount,\n} from '@sharedComponents/AddToCartButton/model';\n\nexport const addToCart = async ({\n addToCartMutation,\n products,\n services,\n}: AddToCartParams): Promise => {\n const variables: AddProductsToCartMutationVariables = {\n products: products.map((product) => ({\n count: product.count,\n productId: Number(product.id),\n })),\n services: services && services.length > 0 ? services : [],\n };\n\n try {\n const response = await addToCartMutation({ variables });\n if (response?.data?.AddProductsToCart) {\n return {\n response: response.data.AddProductsToCart,\n success: true,\n error: undefined,\n };\n }\n return {\n success: false,\n error: response.errors[0]?.message,\n };\n } catch (err) {\n return {\n success: false,\n error: JSON.stringify(err),\n };\n }\n};\n\ntype AddToCartParams = {\n products: ProductWithCount[];\n services: IAddToCartButtonProps['services'];\n addToCartMutation: (\n options?: MutationFunctionOptions<\n AddProductsToCartMutation,\n AddProductsToCartMutationVariables\n >\n ) => Promise>;\n};\n\ntype AddToCartReturn =\n | {\n error: undefined;\n success: true;\n response: AddProductsToCartMutation['AddProductsToCart'];\n }\n | {\n success: false;\n error: string;\n };\n","import {\n CartProductStatus,\n AddProductsToCartMutation,\n} from '@notino/shared/definitions/types';\n\nimport { withTryToInvokeTrackingEvent } from '@utils/exponea-logging';\n\nimport messages from './messages';\nimport { AddToCartProductErrors, ProductInfo } from './model';\n\nexport const servicesPrefix = 'services';\n\nexport const parseStatuses = (\n serviceAddResponse: AddProductsToCartMutation['AddProductsToCart']['serviceAddResponse'],\n productIncrease: number,\n requestedCount: number\n) => {\n const result: (keyof typeof messages)[] = [];\n\n if (requestedCount !== productIncrease) {\n result.push('productsAddReducedCount');\n }\n\n if (serviceAddResponse) {\n serviceAddResponse.forEach((svcResponse) => {\n svcResponse.status.forEach((status) => {\n const statusMessageKey =\n `${servicesPrefix}${svcResponse.service.type}${status}` as keyof typeof messages;\n if (\n status !== CartProductStatus.Default &&\n !result.includes(statusMessageKey)\n ) {\n result.push(statusMessageKey);\n }\n });\n });\n }\n\n return result;\n};\n\nexport type CartNotificationMessage =\n | {\n modalType: 'common';\n header: keyof typeof messages;\n messages: (keyof typeof messages)[];\n values?: Record;\n }\n | {\n modalType: 'maxProductsInCart';\n };\n\nexport const generateNotificationForProduct = (\n fatalErrors: string[],\n product: ProductInfo\n): CartNotificationMessage => {\n if (fatalErrors.includes(AddToCartProductErrors.SC_CART_PRICE_OUT_OF_LIMIT)) {\n return {\n modalType: 'common',\n header: 'cartLimitExceededHeader',\n messages: ['cartLimitExceededExplanation', 'cartLimitExceededAdvice'],\n };\n }\n\n if (fatalErrors.includes(AddToCartProductErrors.SC_SOLD_PRODUCT)) {\n return {\n modalType: 'common',\n header: 'cartSoldoutHeader',\n messages: ['cartSoldoutExplanation'],\n values: { productName: `${product.name} ${product.variantName}` },\n };\n }\n\n if (\n fatalErrors.includes(AddToCartProductErrors.SC_ONLINE_VOUCHER_AND_PRODUCT)\n ) {\n return {\n modalType: 'common',\n header: 'cartOnlyVoucherHeader',\n messages: ['cartOnlyVoucherExplanation'],\n };\n }\n\n if (\n fatalErrors.includes(AddToCartProductErrors.SC_MAX_PRODUCTS_IN_CART_ERROR)\n ) {\n return {\n modalType: 'maxProductsInCart',\n };\n }\n\n if (fatalErrors.length > 0) {\n return {\n modalType: 'common',\n header: 'productsAddError',\n messages: [],\n };\n }\n\n return null;\n};\n\nexport const runTrackingEventCartUpdate = withTryToInvokeTrackingEvent(\n 'CartUpdate',\n (payload: Parameters[0]) => {\n void window.trackingEvents.CartUpdate(payload);\n }\n);\n","import * as React from 'react';\n\nimport {\n ChevronDownIcon,\n ChevronUpIcon,\n Colors,\n} from '@notino/react-styleguide';\n\nconst CHEVRON_SIZE = '12px';\ninterface HorizontalChevronProps {\n isOpened: boolean;\n\n color?: Colors;\n\n width?: string;\n\n height?: string;\n}\n\nexport const HorizontalChevron: React.FC = ({\n isOpened,\n color,\n width,\n height,\n}) =>\n isOpened ? (\n \n ) : (\n \n );\n","import * as React from 'react';\n\nimport { withConsumers } from '../../context/contextConfig';\n\nimport {\n TabSwitcherContext,\n ITabSwitcherProviderState,\n} from './context/TabSwitcherContext';\nimport { ITabLinkProps } from './model';\nimport { LinkWrapper } from './styled';\n\nexport const REVIEW_TAB_ID = 5;\n\nconst TabLinkComponent: React.FC = ({\n setActiveTab,\n tabId,\n activeTabId,\n isDefaultTab,\n children,\n toggleIsReviewTabVisibleOnMobile,\n}) => {\n const setActiveTabHandler = () => {\n setActiveTab(tabId);\n\n if (tabId === REVIEW_TAB_ID) {\n toggleIsReviewTabVisibleOnMobile();\n }\n };\n\n const isActive: boolean =\n (typeof activeTabId === 'undefined' && isDefaultTab) ||\n activeTabId === tabId;\n\n /* eslint-disable react/jsx-no-useless-fragment */\n return typeof children === 'function' ? (\n <>\n {children({\n setActiveTab: setActiveTabHandler,\n isActive,\n })}\n \n ) : (\n {children}\n );\n};\n\nexport const TabLink = withConsumers(\n TabSwitcherContext.Consumer\n)(TabLinkComponent);\n","import * as React from 'react';\n\nimport { TabIds } from '@containers/ProductDetailContainer/ProductDetail/model';\n\nexport const TabSwitcherContext =\n React.createContext(null!);\n\ninterface ITab {\n id: number;\n ref: React.RefObject;\n}\n\nexport interface ITabSwitcherProviderState {\n tabs: ITab[];\n activeTabId?: number;\n isReviewTabVisibleOnMobile: boolean;\n register: (tabId: number, ref: React.RefObject) => void;\n selectNext: () => void;\n selectPrevious: () => void;\n toggleIsReviewTabVisibleOnMobile: () => void;\n setActiveTab: (newActiveTabIndex: TabIds) => void;\n}\n\nexport const TabSwitcherProvider = ({\n children,\n}: React.PropsWithChildren) => {\n const [tabs, setTabs] = React.useState([]);\n const [activeTabId, setActiveTabId] = React.useState();\n const [isReviewTabVisibleOnMobile, toggleIsReviewTabVisibleOnMobile] =\n React.useReducer((prev) => !prev, false);\n\n const selectNext = React.useCallback(() => {\n const currTabIndex = tabs.findIndex((tab) => tab.id === activeTabId);\n\n let newActiveTab;\n if (currTabIndex + 1 < tabs.length) {\n newActiveTab = tabs[currTabIndex + 1];\n } else {\n newActiveTab = tabs[0];\n }\n newActiveTab.ref.current.focus();\n setActiveTabId(newActiveTab.id);\n }, [activeTabId, tabs]);\n\n const selectPrevious = React.useCallback(() => {\n const currTabIndex = tabs.findIndex((tab) => tab.id === activeTabId);\n\n let newActiveTab;\n if (currTabIndex > 0) {\n newActiveTab = tabs[currTabIndex - 1];\n } else {\n newActiveTab = tabs[tabs.length - 1];\n }\n newActiveTab.ref.current.focus();\n setActiveTabId(newActiveTab.id);\n }, [activeTabId, tabs]);\n\n const register = React.useCallback((tabId: ITab['id'], ref: ITab['ref']) => {\n setTabs((prev) => {\n const newTabs = [...prev, { id: tabId, ref }];\n // sometimes tab is registered later than other tabs (api fetch, etc.)\n // to be able to keep right order for keyboard actions, sort array by ids\n newTabs.sort((a, b) => a.id - b.id);\n return newTabs;\n });\n }, []);\n\n const value: ITabSwitcherProviderState = React.useMemo(\n () => ({\n tabs,\n activeTabId,\n isReviewTabVisibleOnMobile,\n toggleIsReviewTabVisibleOnMobile,\n selectNext,\n selectPrevious,\n setActiveTab: setActiveTabId,\n register,\n }),\n [\n tabs,\n activeTabId,\n isReviewTabVisibleOnMobile,\n toggleIsReviewTabVisibleOnMobile,\n selectNext,\n selectPrevious,\n setActiveTabId,\n register,\n ]\n );\n\n return (\n \n {children}\n \n );\n};\n\nexport const useTabSwitcher = () => {\n const value = React.useContext(TabSwitcherContext);\n if (!value || Object.keys(value).length === 0) {\n throw Error('useTabSwitcher must be used inside TabSwitcherProvider');\n }\n\n return value;\n};\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, Heading } from '@notino/react-styleguide';\n\nconst commonCss = css<{ newPdDesignEnabled: boolean }>`\n text-align: left;\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n flex-basis: 100%;\n line-height: 1.18;\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n margin: 0;\n font-weight: 500 !important;\n `\n : css`\n margin: 1.25rem 0 1rem 0;\n font-size: 1.125rem;\n font-weight: bold;\n `}\n\n @media (min-width: ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled ? breakpoints.lg : breakpoints.md}) {\n font-size: 1.75rem;\n display: block;\n cursor: text;\n\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n margin: 3rem 0 1.25rem;\n `\n : css`\n margin: 3rem 0 1.75rem;\n `}\n }\n`;\n\nexport const Title = styled(Heading.H2)`\n ${commonCss}\n`;\n\nexport const TitleButton = styled.button`\n background: transparent;\n width: 100%;\n border: 0;\n color: inherit;\n ${commonCss}\n`;\n\nexport const ChevronIconWrapper = styled.span<{ newPdDesignEnabled: boolean }>`\n cursor: pointer;\n text-align: center;\n width: 1rem;\n line-height: 1;\n\n @media (min-width: ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled ? breakpoints.lg : breakpoints.md}) {\n display: none;\n }\n`;\n","import * as React from 'react';\n\nimport { StyledComponent } from 'styled-components';\n\nimport { Colors } from '@notino/react-styleguide';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { HorizontalChevron } from '@sharedComponents/Icons/HorizontalChevron';\n\nimport { Title, ChevronIconWrapper, TitleButton } from './styled';\n\nexport interface ISubtitleProps\n extends Omit, 'title'> {\n isExpanded?: boolean;\n title?: string | React.ReactNode;\n handleExpand?: (e: React.SyntheticEvent | React.KeyboardEvent) => void;\n newPdDesignEnabled: boolean;\n}\n\nexport const TabTitle: React.FC = ({\n isExpanded,\n title,\n handleExpand,\n role,\n ...rest\n}) => {\n // eslint-disable-next-line\n const TitleComponent: StyledComponent<'button' | 'h2', any> =\n role === 'button' ? TitleButton : Title;\n return (\n \n \n {title}\n \n \n \n \n \n );\n};\n","import * as React from 'react';\nimport { useInView } from 'react-intersection-observer';\n\nimport { ReactFCC } from '@notino/react-styleguide';\n\nimport { useNewPdDesignEnabled } from '@containers/ProductDetailContainer/ProductDetail/hooks/useNewPdDesignEnabled';\nimport { TabIds } from '@containers/ProductDetailContainer/ProductDetail/model';\nimport { useTabsWithExpandableText } from '@containers/ProductDetailContainer/ProductDetail/ProductTabContent/ProductTabContentProvider';\nimport { useTrackingContext } from '@context/tracking/TrackingContext';\nimport { useIsDesktop } from '@utils/helpers';\n\nimport { useTabSwitcher } from './context/TabSwitcherContext';\nimport { ITabContentProps } from './model';\nimport { ChildrenWrapper, TabDivider, TitleWrapper } from './styled';\nimport { TabTitle } from './TabTitle';\nimport { trackTab } from './trackingTab';\n\nexport const TabContent: ReactFCC = ({\n isDefaultTab,\n children,\n tabId,\n title,\n trackingLabel,\n lazyLoad,\n tabDividerMobile = true,\n tabIdentifier,\n isDefaultTabOpen,\n titleHiddenOnDesktop = false,\n}) => {\n const {\n activeTabId,\n isReviewTabVisibleOnMobile,\n toggleIsReviewTabVisibleOnMobile,\n } = useTabSwitcher();\n const { getTimeFromInit } = useTrackingContext();\n const newPdDesignEnabled = useNewPdDesignEnabled();\n const [ref, inView] = useInView({ triggerOnce: true });\n const { toggleTabOpening, tabsWithExpandableTextState } =\n useTabsWithExpandableText();\n\n const [isOpen, toggleOpen] = React.useReducer(\n (prev) => !prev,\n isDefaultTabOpen ? isDefaultTab : false\n );\n\n const isDesktop = useIsDesktop();\n\n const isActive: boolean =\n (typeof activeTabId === 'undefined' && isDefaultTab) ||\n activeTabId === tabId;\n\n const isExpanded =\n tabId === TabIds.Reviews ? isReviewTabVisibleOnMobile : isOpen;\n\n const childrenComponent =\n typeof children === 'function'\n ? children({ tabId, activeTabId })\n : children;\n\n const isTabExpanded = isDesktop ? isActive : isExpanded;\n\n const handleOpen = React.useCallback(\n (e: React.SyntheticEvent | React.KeyboardEvent) => {\n e.stopPropagation();\n\n const tabWithExpandableText = tabsWithExpandableTextState?.[tabId];\n\n const isTabOpenForTheFirstTime =\n tabWithExpandableText?.isTabOpenForTheFirstTime;\n\n const shouldShowFullText = tabWithExpandableText?.shouldShowFullText;\n\n if (isTabOpenForTheFirstTime) {\n toggleTabOpening(tabId);\n }\n\n if (trackingLabel) {\n const openOrClose = isTabExpanded ? 'close' : 'open';\n\n const mode =\n isTabExpanded && isTabOpenForTheFirstTime && !shouldShowFullText\n ? 'close partial'\n : openOrClose;\n\n trackTab({\n timing: getTimeFromInit(),\n trackingLabel,\n mode,\n });\n }\n\n if (tabId === TabIds.Reviews) {\n toggleIsReviewTabVisibleOnMobile();\n }\n\n toggleOpen();\n },\n [\n tabsWithExpandableTextState,\n tabId,\n trackingLabel,\n toggleTabOpening,\n isTabExpanded,\n getTimeFromInit,\n toggleIsReviewTabVisibleOnMobile,\n ]\n );\n\n return (\n <>\n {title && (\n <>\n \n \n \n \n \n )}\n \n \n {lazyLoad ? inView && childrenComponent : childrenComponent}\n \n \n \n \n );\n};\n","import styled from 'styled-components';\n\nimport { IBasicStyledProps, breakpoints, css } from '@notino/react-styleguide';\ninterface IActiveTab extends IBasicStyledProps {\n isActive?: boolean;\n newPdDesignEnabled?: boolean;\n}\n\ninterface IShowDivider extends IBasicStyledProps {\n tabDividerMobile?: boolean;\n tabDividerDesktop?: boolean;\n newPdDesignEnabled?: boolean;\n}\n\ninterface IChildrenExpanded extends IBasicStyledProps {\n isExpanded?: boolean;\n newPdDesignEnabled?: boolean;\n}\n\ninterface HiddenOnDesktop {\n hideOnDesktop?: boolean;\n}\n\nexport const LinkWrapper = styled.div`\n cursor: pointer;\n`;\n\nexport const ChildrenWrapper = styled.div`\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled &&\n css`\n padding-bottom: 2.5rem;\n\n @media (min-width: ${breakpoints.lg}) {\n padding-bottom: 0;\n }\n `}\n\n display: ${(props) => (props.isExpanded ? 'block' : 'none')};\n min-height: auto;\n @media (min-width: ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled ? breakpoints.lg : breakpoints.md}) {\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled &&\n css`\n padding: 0;\n `}\n\n display: block;\n -webkit-transition: ${(props) =>\n props.isActive ? 'opacity 1s ease' : 'none'};\n transition: ${(props) => (props.isActive ? 'opacity 1s ease' : 'none')};\n z-index: ${(props) => (props.isActive ? '2' : '-1')};\n visibility: ${(props) => (props.isActive ? 'auto' : 'hidden')};\n opacity: ${(props) => (props.isActive ? '1' : '0')};\n position: ${(props) => (props.isActive ? 'relative' : 'fixed')};\n }\n`;\n\nexport const TabDivider = styled.div`\n display: ${(props: IShowDivider) =>\n props.tabDividerMobile ? 'block' : 'none'};\n position: relative;\n clear: both;\n height: 0.0625rem;\n background-color: ${(props) => props.theme.palette.neutralLight};\n @media (min-width: ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled ? breakpoints.lg : breakpoints.md}) {\n display: ${(props: IShowDivider) =>\n props.tabDividerDesktop ? 'block' : 'none'};\n margin: ${(props) => (props.hideOnDesktop ? '0' : '0 0 3rem 0')};\n }\n`;\n\nexport const TitleWrapper = styled.div`\n ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled\n ? css`\n height: 4.25rem;\n display: flex;\n align-items: center;\n\n @media (min-width: ${breakpoints.lg}) {\n height: auto;\n }\n `\n : css`\n margin: 1rem 0;\n `}\n\n @media (min-width: ${({ newPdDesignEnabled }) =>\n newPdDesignEnabled ? breakpoints.lg : breakpoints.md}) {\n display: ${(props: IActiveTab) => (props.isActive ? 'block' : 'none')};\n ${(props) => (props.hideOnDesktop ? 'display: none !important;' : '')};\n }\n`;\n","import { dispatchTrackingEvent } from '@context/tracking/utils';\n\ninterface ITrackTab {\n timing: number;\n trackingLabel: string;\n mode: string;\n}\n\nexport const trackTab = ({ timing, trackingLabel, mode }: ITrackTab) => {\n return dispatchTrackingEvent({\n event: 'subpage_view',\n subpage: {\n type: 'tab',\n interaction: 'click',\n action: 'click_on_tab',\n name: trackingLabel,\n timing,\n mode,\n },\n _clear: true,\n });\n};\n","import { IVariant } from '@containers/ProductListing/model';\n\nexport interface IWatchdogFields {\n watchdogEmail: string;\n}\n\nexport interface IWatchdogProps {\n variant: Pick;\n id: string;\n}\n\nexport interface IWatchdogState {\n errors: string[];\n status: WatchdogComm;\n submitAttempts: number;\n}\n\nexport enum WatchdogComm {\n SENDING = 'sending',\n IDLE = 'idle',\n ERROR = 'error',\n}\n","import styled, { css } from 'styled-components';\n\nimport { breakpoints, theme } from '@notino/react-styleguide';\n\nexport const ButtonWrapper = styled.div`\n padding: 1rem 0;\n`;\n\nexport const Paragraph = styled.p<{\n marginBottom?: string;\n}>`\n margin-bottom: 1.5rem;\n text-align: left;\n margin-top: -0.75rem;\n color: ${theme.palette.neutralDarker};\n ${theme.typography.bodyRegular}\n\n ${({ marginBottom }) =>\n marginBottom &&\n css`\n margin-bottom: ${marginBottom};\n `}\n`;\n\nexport const WatchdogWrapper = styled.div`\n text-align: left;\n`;\n\nexport const ErrorText = styled.span`\n margin-left: 1.2rem;\n line-height: 2.8125rem;\n color: ${(props) => props.theme.palette.danger};\n cursor: help;\n`;\n\nexport const Buttons = styled.div`\n margin-top: 1.25rem;\n max-height: 2.8125rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n button {\n width: 100%;\n @media (min-width: ${breakpoints.md}) {\n width: auto;\n }\n }\n`;\n","import * as React from 'react';\n\nimport { InputGroup, IInputGroupProps } from './InputGroup';\n\nconst SimpleInput: React.FC = (props) => {\n return ;\n};\n\nexport default SimpleInput;\n","import styled from 'styled-components';\n\nimport { theme } from '@notino/react-styleguide';\nexport const WatchdogInputWrapper = styled.div`\n position: relative;\n`;\n\nexport const IconWrapper = styled.div`\n position: absolute;\n right: 0;\n top: 0;\n width: 1.25rem;\n height: 1.25rem;\n\n svg {\n transition: color 0.4s ease;\n color: ${theme.palette.neutralDark};\n }\n\n &:hover {\n svg {\n transition: color 0.4s ease;\n color: ${theme.palette.basic};\n }\n }\n`;\n\nexport const TooltipContent = styled.div`\n min-width: 18rem;\n font-size: 0.8rem;\n text-align: left;\n\n a {\n color: ${theme.palette.basic};\n\n :hover {\n text-decoration: none;\n }\n }\n`;\n","import * as React from 'react';\nimport { useIntl } from 'react-intl';\n\nimport {\n Colors,\n InfoCircleIcon,\n Tooltip,\n TooltipModel,\n ReactFCC,\n} from '@notino/react-styleguide';\n\nimport globalMessages from '@messages';\n\nimport { watchdogMessages } from '../../watchdogMessages';\n\nimport { WatchdogInputWrapper, IconWrapper, TooltipContent } from './styled';\n\nexport const WatchdogEmailInputWrapper: ReactFCC = ({ children }) => {\n const { formatMessage } = useIntl();\n return (\n \n {children}\n \n \n {formatMessage(watchdogMessages.watchdogGDPRinfo, {\n link: (\n \n {formatMessage(globalMessages.globalGDPRLinkText)}\n \n ),\n })}\n \n }\n >\n \n \n \n \n );\n};\n","import * as React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport { ButtonModel, ActionButton } from '@notino/react-styleguide';\n\nimport SimpleInput from '@components/GenericInput/SimpleInput';\nimport { isInvalidEmail } from '@helpers/emailUtils';\nimport {\n IWatchdogFields,\n WatchdogComm,\n} from '@sharedComponents/Watchdog/model';\nimport { LocalRequestHeaders } from '@utils/admin-panel';\n\nimport { Paragraph, Buttons, ErrorText, WatchdogWrapper } from '../styled';\nimport { watchdogMessages } from '../watchdogMessages';\n\nimport { WatchdogEmailInputWrapper } from './WatchdogInput';\n\ninterface IWatchdogProps {\n errorMessage: string;\n handleSubmit: (values: IWatchdogFields) => void;\n submitAttempts: number;\n status: WatchdogComm;\n}\n\nexport const WatchdogForm: React.FC = ({\n errorMessage,\n submitAttempts,\n handleSubmit: onSubmit,\n status,\n}) => {\n const { formatMessage } = useIntl();\n const [email, setEmail] = React.useState(\n LocalRequestHeaders.localHeaders.userEmail || ''\n );\n const [touched, setTouched] = React.useState(false);\n const error = React.useMemo(() => isInvalidEmail(email), [email]);\n\n const handleEmailChange: React.ChangeEventHandler = (e) => {\n const { value } = e.currentTarget;\n setEmail(value);\n };\n\n const handleSetTouched = () => {\n setTouched(true);\n };\n\n const handleFormSubmit: React.FormEventHandler = (e) => {\n e.preventDefault();\n onSubmit({\n watchdogEmail: email,\n });\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n {errorMessage && (\n {errorMessage}\n )}\n \n \n \n );\n};\n","import * as React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport { useMutation } from '@apollo/client';\n\nimport { ModalContext, ModalModel, Text } from '@notino/react-styleguide';\nimport {\n SendWatchdogMutation,\n SendWatchdogMutationVariables,\n} from '@notino/shared/definitions/types';\n\nimport { trackWatchdogSent } from '@sharedComponents/Watchdog/tracking';\n\nimport {\n WatchdogComm,\n IWatchdogState,\n IWatchdogFields,\n IWatchdogProps,\n} from './model';\nimport sendWatchdogMutation from './queries/sendWatchdog.graphql';\nimport { Paragraph } from './styled';\nimport { WatchdogForm } from './WatchdogForm';\nimport { watchdogMessages } from './watchdogMessages';\n\nexport const WatchdogModal: React.FC> = ({\n variant,\n}) => {\n const { formatMessage } = useIntl();\n const { hideModal, toggleModal } = ModalContext.useModalContext();\n const [state, setState] = React.useState({\n errors: [],\n status: WatchdogComm.IDLE,\n submitAttempts: 0,\n });\n\n const [saveWatchdog] = useMutation<\n SendWatchdogMutation,\n SendWatchdogMutationVariables\n >(sendWatchdogMutation, {\n onError: () => {\n setState((prevState) => ({\n ...prevState,\n status: WatchdogComm.ERROR,\n }));\n },\n onCompleted: (data) => {\n if (!data) {\n return;\n }\n\n const { errors, success } = data.sendWatchdog;\n if (errors || !success) {\n setState((prevState) => ({\n ...prevState,\n errors: errors || [],\n status: WatchdogComm.ERROR,\n }));\n return;\n }\n\n setState((prevState) => ({\n ...prevState,\n status: WatchdogComm.IDLE,\n }));\n\n toggleModal(\n \n \n ,\n {\n header: (\n \n \n \n ),\n type: ModalModel.Types.default,\n positionBottomOnMobile: true,\n withFocusTrap: true,\n }\n );\n setTimeout(() => {\n hideModal();\n }, 5000);\n },\n });\n\n const handleSubmit = React.useCallback(\n async (values: IWatchdogFields) => {\n setState((prevState) => ({\n ...prevState,\n status: WatchdogComm.SENDING,\n submitAttempts: prevState.submitAttempts + 1,\n }));\n\n try {\n await saveWatchdog({\n variables: {\n email: values.watchdogEmail,\n productId: variant.id.toString(),\n },\n });\n trackWatchdogSent(values.watchdogEmail, variant);\n } catch (_) {\n setState((prevState) => ({\n ...prevState,\n status: WatchdogComm.ERROR,\n }));\n }\n },\n [saveWatchdog, variant]\n );\n\n const errorMessage =\n state.status === WatchdogComm.ERROR\n ? formatMessage(watchdogMessages.watchdogSubmitError)\n : undefined;\n\n return (\n \n );\n};\n","import * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport {\n ModalModel,\n ModalContext,\n Text,\n ReactFCC,\n} from '@notino/react-styleguide';\n\nimport ErrorBoundary from '@components/ErrorBoundary';\nimport { WatchdogModal } from '@sharedComponents/Watchdog/WatchdogModal';\n\nimport { IWatchdogProps } from './model';\nimport { ButtonWrapper } from './styled';\nimport { watchdogMessages } from './watchdogMessages';\n\nexport const Watchdog: ReactFCC = ({\n variant,\n id,\n children,\n}) => {\n const { toggleModal } = ModalContext.useModalContext();\n\n if (!variant.showWatchdog) {\n return null;\n }\n\n const handleShowModal: React.MouseEventHandler = (e) => {\n e.stopPropagation();\n toggleModal(, {\n header: (\n \n \n \n ),\n type: ModalModel.Types.default,\n withFocusTrap: true,\n positionBottomOnMobile: true,\n });\n };\n\n return (\n \n
\n {children}\n
\n
\n );\n};\n","import { GetProductViewQuery } from '@notino/shared/definitions/types';\n\nimport { dispatchTrackingEvent } from '@context/tracking/utils';\nimport { ProductEventWither } from '@helpers/googleTagManager';\nimport { IWatchdogProps } from '@sharedComponents/Watchdog/model';\n\nexport const trackWatchdogSent = (\n email: string,\n product: Pick['variant']\n) => {\n dispatchTrackingEvent({\n event: 'watchdog_submit',\n watchdog: {\n action: 'watchdog_submitted',\n interaction: 'button',\n type: 'modal',\n products: [\n ProductEventWither()\n .withPartialProduct(product)\n .withPartialVariant(product)\n .build(),\n ],\n email,\n emailHashed: undefined,\n },\n _clear: true,\n });\n};\n\nexport const trackWatchdogClick = (\n product: GetProductViewQuery['productDetailByMasterId'][number],\n variant: GetProductViewQuery['productDetailByMasterId'][number]['variants'][number]\n) => {\n dispatchTrackingEvent({\n event: 'watchdog_click',\n watchdog: {\n action: 'wt_add_watchdog',\n interaction: 'button',\n type: 'Drawer',\n products: [\n ProductEventWither().withProduct(product).withVariant(variant).build(),\n ],\n },\n _clear: true,\n });\n};\n","import { defineMessages } from 'react-intl';\n\nexport const watchdogMessages = defineMessages({\n watchdogSubmitError: {\n id: 'product.watchdog.submit.error',\n defaultMessage: 'Chyba při odeslání formuláře.',\n },\n watchdogText: {\n id: 'product.watchdog.text',\n defaultMessage: `\n Rádi Vás budeme informovat e-mailem, až zboží naskladníme.\n Samozřejmě je jen na Vás, jestli nabídku využijete.\n `,\n },\n watchdogSentHeader: {\n id: 'product.watchdog.sent.header',\n defaultMessage: 'Váš e-mail byl uložen.',\n },\n watchdogSentText: {\n id: 'product.watchdog.sent.text',\n defaultMessage:\n 'Budeme Vás informovat o změnách v dostupnosti tohoto produktu.',\n },\n watchdogHeader: {\n id: 'product.watchdog.header',\n defaultMessage: 'Hlídání dostupnosti zboží',\n },\n watchdogEmailLabel: {\n id: 'product.watchdog.email.label',\n defaultMessage: 'Vepište svůj e-mail',\n },\n watchdogSendButton: {\n id: 'product.watchdog.send.button',\n defaultMessage: 'Odeslat',\n },\n watchdogTryAgainButton: {\n id: 'product.watchdog.tryAgain.button',\n defaultMessage: 'Zkusit znovu',\n },\n watchdogGDPRinfo: {\n id: 'product.watchdog.gdpr.info',\n defaultMessage:\n 'Odesláním souhlasíte se zpracováním emailu za účelem hlídání dostupnosti tohoto zboží společností Notino s.r.o., se sídlem v Brně, Londýnské náměstí 881/6, PSČ 639 00, IČO 27609057 do odeslání emailu, maximálně 1 roku. Údaje mohou být předány a zpracovány sesterskými společnostmi. Máte právo svůj souhlas kdykoliv odvolat, požadovat od správce přístup k osobním údajům, jejich opravu, výmaz, přenositelnost, popřípadě omezení zpracování. Více informací v {link}.​',\n },\n watchAvailability: {\n id: 'product.watchdog.availibility',\n defaultMessage: 'Hlídat dostupnost',\n },\n});\n","import { theme } from '@notino/react-styleguide';\nexport default theme;\n","export enum EAvailableHeaders {\n shopId = 'x-shopid',\n groupId = 'x-groupid',\n role = 'x-role',\n userId = 'x-userid',\n cartId = 'x-cartid',\n userEmail = 'X-User-Email',\n acceptLanguage = 'accept-language',\n authorization = 'authorization',\n comparisonids = 'x-comparisonids',\n gatewayUrl = 'x-gatewayurl',\n uuid = 'request-id',\n grd = 'x-grd',\n features = 'x-features',\n xUser = 'x-user',\n xRouter = 'x-router',\n xLangTag = 'x-langtag',\n xAbTest = 'x-abtest',\n xLayout = 'x-layout',\n xOriginRouterUrl = 'x-original-router-url',\n xFragmentType = 'x-fragment-type',\n xSharedLibs = 'x-shared-libs',\n cacheControl = 'Cache-Control',\n xTraceId = 'x-trace-id',\n}\n","import * as uuid from 'uuid';\n\nimport { EShop, Roles } from '@containers/App/model';\nimport { EAvailableHeaders } from '@headersHelper';\n\nexport interface IRequestHeaders {\n __typename?: string;\n shopId?: EShop;\n groupId?: string;\n role?: Roles;\n userId?: string;\n authorization?: string;\n xUserToken?: string;\n userEmail?: string;\n userName?: string;\n xLangTag?: string;\n gatewayUrl?: string;\n assetsPath?: string;\n originUrl?: string;\n features?: string;\n abTest?: string;\n language?: string;\n}\n\nclass LocalRequestHeadersSingleton {\n private _localHeaders: IRequestHeaders;\n private _layoutSetting: Map;\n\n public constructor() {\n this._localHeaders = {};\n this._layoutSetting = new Map();\n }\n\n public get localHeaders(): IRequestHeaders {\n return this._localHeaders;\n }\n\n public set localHeaders(value: IRequestHeaders) {\n this._localHeaders = {\n ...value,\n language: value.shopId.slice('notino.'.length),\n };\n }\n\n public updateLSHeader(lsKey: keyof IRequestHeaders, newValue: string) {\n this.localHeaders = { ...this.localHeaders, [lsKey]: newValue };\n }\n\n public getHeaders(isGatewayProxy: boolean) {\n if (isGatewayProxy) {\n return {\n [EAvailableHeaders.xTraceId]: uuid(),\n };\n }\n return {\n [EAvailableHeaders.userEmail]: this.localHeaders.userEmail,\n [EAvailableHeaders.shopId]: this.localHeaders.shopId,\n [EAvailableHeaders.xLangTag]: this.localHeaders.xLangTag,\n ...(this.localHeaders.xUserToken && {\n [EAvailableHeaders.xUser]: this.localHeaders.xUserToken,\n }),\n ...(this.localHeaders.features && {\n [EAvailableHeaders.features]: this.localHeaders.features,\n }),\n ...(this.localHeaders.abTest && {\n [EAvailableHeaders.xAbTest]: this.localHeaders.abTest,\n }),\n [EAvailableHeaders.xTraceId]: uuid(),\n };\n }\n public getLayoutSetting(key: string) {\n return this._layoutSetting.get(key);\n }\n public setLayoutSetting(key: string, layout: string) {\n this._layoutSetting.set(key, layout);\n }\n}\n\nexport const LocalRequestHeaders = new LocalRequestHeadersSingleton();\n","export const subtractArrays = (arr1: T[], arr2: T[]) =>\n arr1.filter((item) => !arr2.includes(item));\n\n/**\n * Partitions an array by a given key\n * @param arr\n * @param partitionBy\n * @param groups\n *\n * @example\n * const arr = [\n * { id: 1, name: 'a' },\n * { id: 2, name: 'b' },\n * { id: 3, name: 'c' },\n * { id: 4, name: 'a' },\n * ];\n * partition(arr, 'name', ['a', 'b']);\n * // [\n * // [ { id: 1, name: 'a' }, { id: 4, name: 'a' } ],\n * // [ { id: 2, name: 'b' } ],\n * // ]\n */\nexport function partition(\n arr: T[],\n partitionBy: Key,\n groups: Array\n): Array {\n const retArray: Array = [];\n\n for (const group of groups) {\n const groupArray: T[] = [];\n for (const item of arr) {\n if (item[partitionBy] === group) {\n groupArray.push(item);\n }\n }\n retArray.push(groupArray);\n }\n\n return retArray;\n}\n","// Turn off SSR for wishlist, advent-calendar, reviews-forms\nexport const COMPONENTS_SSR = false;\n\nexport const CDN_DOMAIN = 'https://cdn.notinoimg.com';\n\nexport const CART_URL = '/cart/';\n\nexport const EXCLUDE_FROM_LAST_VISITED = 73619;\n\nexport const UnitPriceDecimalPlaces = 2;\n\nexport const getWindowOrigin = (\n fallback: string = 'https://www.notino.cz'\n): string =>\n typeof window !== 'undefined' && window.location\n ? window.location.origin\n : fallback;\n","export function resolveDrawerCloseType(closeType: string) {\n switch (closeType) {\n case 'outside-click':\n return 'Close-Out';\n case 'icon':\n return 'Close-X';\n case 'slide-down':\n return 'Close-Slide';\n case 'slide-down-position-velocity':\n return 'Close-Slide-Position-Velocity';\n case 'slide-down-position':\n return 'Close-Slide-Position';\n case 'slide-down-velocity':\n return 'Close-Slide-Velocity';\n case 'escape':\n return 'Escape';\n case 'browser-back':\n return 'Browser-Back';\n default:\n return 'Close';\n }\n}\n","import { noop } from '@utils/noop';\n\n/**\n * If event is defined, then tracking function is invoked\n * Otherwise logs of unsent exponea events are sent to Sentry\n * @param windowObj name of window object due to migration from old exponea event to bloomreach events\n * @param eventName name of exponea event\n * @param func tracking function\n */\nexport const withTryToInvokeEvent =\n (windowObj: Key) =>\n (\n eventName: keyof Window[Key],\n func: (...args: T) => void\n ) =>\n (...args: T): void => {\n if (\n !window?.[windowObj] ||\n typeof window?.[windowObj]?.[eventName] !== 'function'\n ) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line\n console.warn(`window.${windowObj}.${eventName as string} is not defined.`, args);\n }\n\n return noop();\n }\n return func(...args);\n };\n\nexport const withTryToInvokeTrackingEvent =\n withTryToInvokeEvent('trackingEvents');\n","import useMedia from 'use-media';\n\nimport { theme } from '@notino/react-styleguide';\n\nexport function isDesktop() {\n return window.matchMedia(`(min-width: ${theme.breakpoints.md}rem)`).matches;\n}\n\nexport const useIsDesktop = ({\n isNewPdDesign,\n defaultState,\n}: {\n isNewPdDesign?: boolean;\n defaultState?: boolean;\n} = {}) =>\n useMedia(\n isNewPdDesign\n ? `(min-width: ${theme.breakpoints.lg}rem)`\n : `(min-width: ${theme.breakpoints.md}rem)`,\n defaultState\n );\n","// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport const noop = () => {};\n","import * as Sentry from '@sentry/browser';\nexport function dispatchNotinoEvent(\n args: Parameters[0]\n) {\n if (window?.NotinoAPI?.Events) {\n window.NotinoAPI.Events.publish(args);\n } else {\n Sentry.captureMessage('window.NotinoAPI.Events is not defined');\n }\n}\n","import { IStock } from './definitions/custom-definitions';\nimport { GetProductViewQuery } from './definitions/types';\n\nconst productPattern = new RegExp('^p-\\\\d+$');\n\ninterface IMasterUrlOptions {\n trimLeadingSlash: boolean;\n trimTrailingSlash: boolean;\n}\n\nconst trimUrlSlash = (url: string, options: IMasterUrlOptions) => {\n const { trimLeadingSlash, trimTrailingSlash } = options || {};\n\n if (\n url.startsWith('/') &&\n url.endsWith('/') &&\n trimLeadingSlash &&\n trimTrailingSlash\n ) {\n return url.slice(1, -1);\n } else if (url.startsWith('/') && trimLeadingSlash) {\n return url.slice(1);\n } else if (url.endsWith('/') && trimTrailingSlash) {\n return url.slice(0, -1);\n }\n\n return url;\n};\n\nexport const masterUrl = (url: string, options?: IMasterUrlOptions): string =>\n trimUrlSlash(url, options)\n .split('/')\n .filter((string) => !productPattern.test(string))\n .join('/');\n\nexport const variantIdFromUrl = (url: string): string => {\n return url\n .split('/')\n .filter((string) => productPattern.test(string))\n .join('')\n .replace(/p-/g, '');\n};\n\nexport const variantUrlFromUrl = (url: string): string => {\n return url\n .split('/')\n .filter((string) => productPattern.test(string))\n .join('');\n};\n\ntype Variant = Pick<\n GetProductViewQuery['productDetailByMasterId'][number]['variants'][number],\n 'attributes' | 'stockAvailability'\n>;\n\nconst isAvailable = (variant: Variant) =>\n variant.stockAvailability.code !== IStock.outOfStock;\n\nconst isMaster = (variant: Variant) =>\n variant.attributes && variant.attributes.Master;\n\nconst isNotSample = (variant: Variant) =>\n variant.attributes ? !variant.attributes.Sample : true;\n\nconst isNotDamaged = (variant: { attributes: Variant['attributes'] }) =>\n variant.attributes ? !variant.attributes.Damage : true;\n\nconst isSale = (variant: Variant) =>\n variant.attributes && variant.attributes.Action;\n\nexport const pickBestVariant = (variants: T[]): T => {\n const sale = variants.find(isSale);\n if (sale && isAvailable(sale)) {\n return sale;\n }\n\n const master = variants.find(isMaster);\n if (!master || !isAvailable(master)) {\n const noSamples = variants.filter(isNotSample);\n return (\n noSamples.filter(isNotDamaged).find(isAvailable) ||\n noSamples.find(isAvailable) ||\n master ||\n variants[0]\n );\n }\n return master;\n};\n","export enum IStock {\n moreThan20 = 'moreThan20',\n moreThan5 = 'moreThan5',\n lessThan5 = 'lessThan5',\n last5 = 'last5',\n last4 = 'last4',\n last3 = 'last3',\n last2 = 'last2',\n last1 = 'last1',\n outOfStock = 'outOfStock',\n}\n","export type Maybe = T | null;\nexport type InputMaybe = Maybe;\nexport type Exact = {\n [K in keyof T]: T[K];\n};\nexport type MakeOptional = Omit & {\n [SubKey in K]?: Maybe;\n};\nexport type MakeMaybe = Omit & {\n [SubKey in K]: Maybe;\n};\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: string;\n String: string;\n Boolean: boolean;\n Int: number;\n Float: number;\n Date: any;\n JSON: any;\n};\n\nexport type ActionModel = {\n __typename?: 'ActionModel';\n assignList: Maybe>>;\n bannerType: Maybe;\n bannerURL: Maybe;\n defaultAssign: Maybe;\n enabled: Maybe;\n filterList: Maybe>>;\n from: Maybe;\n giftList: Maybe>>;\n giftType: Maybe;\n hasFilter: Maybe;\n hasLimit: Maybe;\n hasLimitWarning: Maybe;\n id: Maybe;\n idBody: Maybe;\n isCopy: Maybe;\n language: Maybe;\n limit: Maybe;\n limitWarning: Maybe;\n limitWarningEmails: Maybe;\n name: Maybe;\n showAction: Maybe;\n showBannerType: Maybe;\n showOnDetailPage: Maybe;\n text: Maybe;\n to: Maybe;\n url: Maybe;\n};\n\nexport type ActionModelInput = {\n assignList?: InputMaybe>>;\n bannerType?: InputMaybe;\n bannerURL?: InputMaybe;\n defaultAssign?: InputMaybe;\n enabled?: InputMaybe;\n filterList?: InputMaybe>>;\n from?: InputMaybe;\n giftList?: InputMaybe>>;\n giftType?: InputMaybe;\n hasFilter?: InputMaybe;\n hasLimit?: InputMaybe;\n hasLimitWarning?: InputMaybe;\n id?: InputMaybe;\n idBody?: InputMaybe;\n isCopy?: InputMaybe;\n language?: InputMaybe;\n limit?: InputMaybe;\n limitWarning?: InputMaybe;\n limitWarningEmails?: InputMaybe;\n name?: InputMaybe;\n showAction?: InputMaybe;\n showBannerType?: InputMaybe;\n showOnDetailPage?: InputMaybe;\n text?: InputMaybe;\n to?: InputMaybe;\n url?: InputMaybe;\n};\n\nexport type ActionTypesModel = {\n __typename?: 'ActionTypesModel';\n bannerTypeList: Maybe>>;\n giftTypeList: Maybe>>;\n};\n\nexport type ActualProduct = {\n __typename?: 'ActualProduct';\n id: Scalars['String'];\n};\n\nexport type AddGiftToCart = {\n __typename?: 'AddGiftToCart';\n itemId: Scalars['Int'];\n};\n\nexport type AddProductResponse = {\n __typename?: 'AddProductResponse';\n productAddResponse: Maybe;\n serviceAddResponse: Maybe>>;\n};\n\nexport type AddProductsResponse = {\n __typename?: 'AddProductsResponse';\n productAddResponse: Maybe>>;\n serviceAddResponse: Maybe>>;\n};\n\nexport type AddToCartTryItFirstResult = {\n __typename?: 'AddToCartTryItFirstResult';\n status: Maybe>;\n};\n\nexport type AdminPanelInfo = {\n __typename?: 'AdminPanelInfo';\n approvalStatus: Maybe;\n availableShops: Maybe>;\n commodityId: Scalars['String'];\n displayType: Maybe;\n message: Maybe;\n};\n\nexport type AlternateSite = {\n __typename?: 'AlternateSite';\n culture: Maybe;\n link: Maybe;\n};\n\nexport type AppConfig = {\n __typename?: 'AppConfig';\n recaptchaSiteKey: Scalars['String'];\n shops: Maybe>;\n supportedLocales: Maybe>;\n supportedShops: Maybe>;\n};\n\nexport type Article = {\n __typename?: 'Article';\n author: Maybe;\n date: Maybe;\n description: Maybe;\n image: Maybe;\n title: Maybe;\n url: Maybe;\n};\n\nexport type ArticlesQueryResponse = {\n __typename?: 'ArticlesQueryResponse';\n articles: Array;\n totalCount: Scalars['Int'];\n};\n\nexport type ArticlesQueryVariables = {\n brandId?: InputMaybe;\n categories?: InputMaybe>;\n kinds?: InputMaybe>;\n masterProductCode?: InputMaybe;\n productCodes?: InputMaybe>;\n subCategories?: InputMaybe>;\n types?: InputMaybe>;\n useNewEndpoint?: InputMaybe;\n};\n\nexport type AssignGiftModel = {\n __typename?: 'AssignGiftModel';\n availability: Maybe;\n brand: Maybe;\n code: Maybe;\n collection: Maybe;\n count: Maybe;\n idAssign: Maybe;\n image: Maybe;\n language: Maybe;\n productId: Maybe;\n subName: Maybe;\n};\n\nexport type AssignGiftModelInput = {\n code?: InputMaybe;\n count?: InputMaybe;\n idAssign?: InputMaybe;\n productId?: InputMaybe;\n};\n\nexport type AssignModel = {\n __typename?: 'AssignModel';\n assignGiftList: Maybe>>;\n choose: Maybe;\n expandInCart: Maybe;\n giftType: Maybe;\n id: Maybe;\n idActionBody: Maybe;\n minCount: Maybe;\n minSum: Maybe;\n};\n\nexport type AssignModelInput = {\n assignGiftList?: InputMaybe>>;\n choose?: InputMaybe;\n giftType?: InputMaybe;\n id?: InputMaybe;\n idActionBody?: InputMaybe;\n minCount?: InputMaybe;\n minSum?: InputMaybe;\n};\n\nexport enum AuthorType {\n Motivated = 'Motivated',\n Unknown = 'Unknown',\n Verified = 'Verified',\n}\n\nexport type AvailableShop = {\n __typename?: 'AvailableShop';\n languageTag: Scalars['String'];\n productUrl: Scalars['String'];\n shopId: Scalars['String'];\n};\n\nexport type BannerTypeModel = {\n __typename?: 'BannerTypeModel';\n bannerType: Maybe;\n id: Maybe;\n};\n\nexport type BazaarvoiceIntegrationType = {\n __typename?: 'BazaarvoiceIntegrationType';\n environment: Scalars['String'];\n locale: Scalars['String'];\n siteId: Scalars['String'];\n};\n\nexport type Benefit = {\n __typename?: 'Benefit';\n iconId: Maybe;\n text: Maybe;\n title: Maybe;\n url: Maybe;\n};\n\nexport type BenefitsDto = {\n __typename?: 'BenefitsDto';\n fidelity: Maybe;\n loyalties: Array;\n vouchers: Array;\n};\n\nexport type BlogArticle = {\n __typename?: 'BlogArticle';\n hreflangId: Maybe;\n image: Maybe;\n title: Scalars['String'];\n url: Scalars['String'];\n};\n\nexport type BlogArticleImage = {\n __typename?: 'BlogArticleImage';\n alt: Maybe;\n url: Maybe;\n};\n\nexport type Brand = {\n __typename?: 'Brand';\n description: Maybe;\n id: Scalars['String'];\n logoUrl: Maybe;\n name: Scalars['String'];\n url: Maybe;\n};\n\nexport type BrandItem = {\n __typename?: 'BrandItem';\n id: Scalars['String'];\n name: Scalars['String'];\n};\n\nexport type Breadcrumb = {\n __typename?: 'Breadcrumb';\n link: Maybe;\n name: Scalars['String'];\n};\n\nexport type Campaign = {\n __typename?: 'Campaign';\n campaignId: Maybe;\n detailPageText: Maybe;\n displayOnDetailPage: Maybe;\n giftImageUrl: Maybe;\n giftType: Maybe;\n id: Maybe;\n imageUrl: Maybe;\n name: Maybe;\n productId: Maybe;\n text: Maybe;\n};\n\nexport type CampaignConfig = {\n __typename?: 'CampaignConfig';\n allowed: Maybe;\n groupName: Maybe;\n price: Maybe;\n};\n\nexport type CartAddedService = {\n __typename?: 'CartAddedService';\n productId: Maybe;\n type: Maybe;\n value: Maybe;\n};\n\nexport type CartContent = {\n __typename?: 'CartContent';\n benefits: BenefitsDto;\n cartId: Scalars['String'];\n delivery: Maybe;\n discounts: Array;\n payment: Maybe;\n pricesSummary: PricesSummaryDto;\n products: Maybe>>;\n serviceItems: ServiceItemsDto;\n vouchers: Array;\n};\n\nexport type CartContentProduct = {\n __typename?: 'CartContentProduct';\n action: Scalars['Boolean'];\n autoInserted: Scalars['Boolean'];\n brandId: Scalars['Int'];\n categoryId: Scalars['Int'];\n count: Scalars['Int'];\n deleted: Scalars['Boolean'];\n discount: Scalars['Boolean'];\n engraving: Maybe;\n freeProduct: Scalars['Boolean'];\n giftCampaignId: Scalars['Int'];\n isHidden: Scalars['Boolean'];\n isNiche: Scalars['Boolean'];\n isService: Scalars['Boolean'];\n isVirtualService: Scalars['Boolean'];\n itemId: Scalars['Int'];\n priceSumWithVat: Scalars['Int'];\n priceWithVat: Scalars['Int'];\n productCode: Scalars['String'];\n productElisId: Scalars['Int'];\n productId: Scalars['Int'];\n tryItFirstId: Scalars['Int'];\n upselling: Scalars['Boolean'];\n usedProduct: Scalars['Boolean'];\n vat: Scalars['Int'];\n};\n\nexport type CartItemDto = {\n __typename?: 'CartItemDto';\n action: Maybe;\n autoInserted: Maybe;\n count: Maybe;\n customServices: Maybe;\n deleleted: Maybe;\n discount: Maybe;\n freeProduct: Maybe;\n giftCampaignId: Maybe;\n ident: Maybe;\n isService: Maybe;\n itemId: Maybe;\n priceSumWithVat: Maybe;\n priceWithVat: Maybe;\n productCode: Maybe;\n productId: Maybe;\n upselling: Maybe;\n usedProduct: Maybe;\n vat: Maybe;\n};\n\nexport type CartItemDto_CustomServices = {\n __typename?: 'CartItemDto_customServices';\n /** default field */\n success: Maybe;\n};\n\nexport type CartItemProxyResponseModelInput = {\n count?: InputMaybe;\n priceWithVat?: InputMaybe;\n productCode?: InputMaybe;\n productId?: InputMaybe;\n};\n\nexport type CartProduct = {\n __typename?: 'CartProduct';\n comparisonPrice: Maybe;\n count: Maybe;\n id: Maybe;\n isUpselling: Maybe;\n product: Maybe;\n status: Array>;\n};\n\nexport enum CartProductStatus {\n Default = 'Default',\n Error = 'Error',\n NoCreateCart = 'NoCreateCart',\n OutOfPriceLimit = 'OutOfPriceLimit',\n ReducedCount = 'ReducedCount',\n ShowSoldOutWarning = 'ShowSoldOutWarning',\n Sold = 'Sold',\n Success = 'Success',\n UseProductInCart = 'UseProductInCart',\n VoucherOnline = 'VoucherOnline',\n}\n\nexport type CartProducts = {\n __typename?: 'CartProducts';\n cart: CartContent;\n itemId: Scalars['Int'];\n messages: Array;\n productId: Scalars['Int'];\n productIncrease: Scalars['Int'];\n};\n\nexport type CartServiceAddResponse = {\n __typename?: 'CartServiceAddResponse';\n message: Maybe;\n service: Maybe;\n status: Array>;\n};\n\nexport type CartServiceInput = {\n count?: InputMaybe;\n productId: Scalars['String'];\n type: CartServiceType;\n value: Scalars['String'];\n};\n\nexport enum CartServiceType {\n Engraving = 'Engraving',\n}\n\nexport enum CartStatusType {\n Default = 'Default',\n Error = 'Error',\n InternalError = 'InternalError',\n NotFound = 'NotFound',\n Success = 'Success',\n Warning = 'Warning',\n}\n\nexport type Categorization = {\n __typename?: 'Categorization';\n categories: Maybe>;\n kinds: Maybe>;\n subCategories: Maybe>;\n types: Maybe>;\n};\n\nexport type CategorizationItem = {\n __typename?: 'CategorizationItem';\n id: Scalars['Int'];\n name: Maybe;\n};\n\nexport type Characteristic = {\n __typename?: 'Characteristic';\n help: Maybe;\n /** @deprecated Not supported by server. */\n link: Maybe;\n name: Maybe;\n values: Maybe>>;\n};\n\nexport type ClickAndCollectStore = {\n __typename?: 'ClickAndCollectStore';\n code: Scalars['String'];\n description: Scalars['String'];\n earliestPickup: Scalars['String'];\n location: Location;\n name: Scalars['String'];\n stockCount: StockAvailability;\n};\n\nexport type ClientCache = {\n __typename?: 'ClientCache';\n hasWebcam: Maybe;\n};\n\nexport type ClientHeaders = {\n __typename?: 'ClientHeaders';\n abTest: Maybe;\n assetsPath: Scalars['String'];\n authorization: Scalars['String'];\n features: Scalars['String'];\n gatewayUrl: Scalars['String'];\n groupId: Scalars['String'];\n hrkDefaultCurrency: HrkDefaultCurrency;\n lastVisitedProducts: Maybe>;\n ldFlags: LdFeatures;\n modifaceDomain: Maybe;\n mounts: Array;\n originUrl: Maybe;\n role: Scalars['String'];\n sentryDsn: Scalars['String'];\n sentryEnvironment: Scalars['String'];\n sentryTracingRate: Scalars['Float'];\n shadefinderAppId: Maybe;\n shopId: Scalars['String'];\n userEmail: Maybe;\n userId: Scalars['String'];\n userName: Maybe;\n xAbTest: Maybe;\n xLangTag: Maybe;\n xUserToken: Maybe;\n};\n\nexport type ClientProductSsr = {\n __typename?: 'ClientProductSsr';\n id: Maybe;\n pathname: Maybe;\n productId: Maybe;\n type: Maybe;\n};\n\nexport type ClientWatchdog = {\n __typename?: 'ClientWatchdog';\n errors: Maybe>>;\n id: Scalars['String'];\n success: Scalars['String'];\n};\n\nexport type ClientWatchdogs = {\n __typename?: 'ClientWatchdogs';\n list: Array>;\n};\n\nexport type Cloudflare = {\n __typename?: 'Cloudflare';\n baseUrl: Scalars['String'];\n enabled: Scalars['Boolean'];\n quality: Scalars['Int'];\n};\n\nexport type CompositionTables = {\n __typename?: 'CompositionTables';\n nutritionValues: Maybe>;\n vitaminsAndMinerals: Maybe>;\n};\n\nexport type Currency = {\n __typename?: 'Currency';\n code: Maybe;\n id: Maybe;\n symbol: Maybe;\n};\n\nexport type CustomServiceDto = {\n __typename?: 'CustomServiceDto';\n cartItemId: Scalars['Int'];\n cartServiceItem: Scalars['Int'];\n priceWithVat: Scalars['Int'];\n value: Scalars['String'];\n};\n\nexport type CustomerBenefits = {\n __typename?: 'CustomerBenefits';\n brandDiscountLimit: Maybe;\n brandDiscounts: Maybe>>;\n categoryDiscountLimit: Maybe;\n categoryDiscounts: Maybe>>;\n hasActiveBenefits: Maybe;\n};\n\nexport type CustomerBenefitsDiscount = {\n __typename?: 'CustomerBenefitsDiscount';\n subjectName: Maybe;\n type: Maybe;\n value: Maybe;\n};\n\nexport type CustomerInput = {\n address?: InputMaybe;\n city?: InputMaybe;\n email?: InputMaybe;\n name?: InputMaybe;\n phone?: InputMaybe;\n zip?: InputMaybe;\n};\n\nexport type DefaultCurrency = {\n __typename?: 'DefaultCurrency';\n code: Scalars['String'];\n currencyId: Maybe;\n symbol: Maybe;\n};\n\nexport type DeleteAction = {\n __typename?: 'DeleteAction';\n /** default field */\n empty: Maybe;\n};\n\nexport type Delivery = {\n __typename?: 'Delivery';\n date: Maybe;\n dateFrom: Maybe;\n dateTo: Maybe;\n disallowedReason: Maybe;\n isAirTransport: Maybe;\n isPersonal: Maybe;\n name: Maybe;\n};\n\nexport type DesiredShade = {\n __typename?: 'DesiredShade';\n darker: Maybe;\n ideal: Maybe;\n lighter: Maybe;\n};\n\nexport type Discount = {\n __typename?: 'Discount';\n discountSubject: Maybe;\n discountType: Maybe;\n subjectType: Maybe;\n value: Maybe;\n};\n\nexport type DiscountDto = {\n __typename?: 'DiscountDto';\n priority: Scalars['Int'];\n type: EDiscountType;\n value: Scalars['Int'];\n};\n\nexport enum DiscountType {\n Absolute = 'Absolute',\n Percentage = 'Percentage',\n Unknown = 'Unknown',\n}\n\nexport enum EBenefitState {\n Active = 'Active',\n Disabled = 'Disabled',\n NotExistForUser = 'NotExistForUser',\n}\n\nexport enum EDiscountType {\n AbsoluteWithVat = 'AbsoluteWithVat',\n AbsoluteWithoutVat = 'AbsoluteWithoutVat',\n Percentage = 'Percentage',\n}\n\nexport enum EGiftPackagingAllowedType {\n Brand = 'Brand',\n None = 'None',\n Product = 'Product',\n}\n\nexport enum ELoyaltyDiscountType {\n BrandDiscount = 'BrandDiscount',\n CategoryDiscount = 'CategoryDiscount',\n FreeDelivery = 'FreeDelivery',\n}\n\nexport enum EStatus {\n Default = 'Default',\n Error = 'Error',\n Fail = 'Fail',\n NoCreateCart = 'NoCreateCart',\n NotFoundProduct = 'NotFoundProduct',\n OutOfLimit = 'OutOfLimit',\n OutOfPriceLimit = 'OutOfPriceLimit',\n ReducedCount = 'ReducedCount',\n Sold = 'Sold',\n Success = 'Success',\n UseProductInCart = 'UseProductInCart',\n VoucherAndProductNotAllowed = 'VoucherAndProductNotAllowed',\n Warning = 'Warning',\n}\n\nexport type Engraving = {\n __typename?: 'Engraving';\n allowed: Maybe;\n characterCount: Maybe;\n config: Maybe;\n image: Maybe;\n productId: Maybe;\n};\n\nexport type EngravingConfig = {\n __typename?: 'EngravingConfig';\n isActive: Maybe;\n isAvailable: Maybe;\n limit: Maybe;\n orderedCount: Maybe;\n price: Maybe;\n productId: Maybe;\n servicesType: Maybe;\n};\n\nexport type EventCalendarDay = {\n __typename?: 'EventCalendarDay';\n /** @deprecated Use 'brands' instead */\n brand: Maybe;\n brands: Maybe>>;\n buttonText: Maybe;\n date: Maybe;\n description: Maybe;\n filterId: Maybe>>;\n filterType: Maybe;\n giftAvailable: Maybe;\n largeImage: Maybe;\n smallImage: Maybe;\n title: Maybe;\n todayItem: Maybe;\n url: Maybe;\n voucher: Maybe;\n};\n\nexport type FeatureSwitches = {\n __typename?: 'FeatureSwitches';\n addToCartResendDelay: Maybe;\n addToCartWarningCount: Maybe;\n /** @deprecated Temporary FS for reco */\n databreakersIntegration: Maybe;\n hideReviewsABTest: Maybe;\n /** @deprecated Temporary FS for reco */\n isDatabreakersUpsellingActive: Maybe;\n modifaceDesktopEnabled: Maybe;\n modifaceMobileEnabled: Maybe;\n reviewsOnServerIds: Maybe;\n};\n\nexport type FidelityDto = {\n __typename?: 'FidelityDto';\n moneyValue: Scalars['Int'];\n};\n\nexport type File = {\n __typename?: 'File';\n encoding: Scalars['String'];\n filename: Scalars['String'];\n mimetype: Scalars['String'];\n};\n\nexport type Filter = {\n __typename?: 'Filter';\n key: Scalars['String'];\n value: Maybe;\n};\n\nexport type FilterInput = {\n key: Scalars['String'];\n value?: InputMaybe;\n};\n\nexport type FilterModel = {\n __typename?: 'FilterModel';\n filter: Scalars['String'];\n id: Maybe;\n idActionBody: Maybe;\n};\n\nexport type FilterModelInput = {\n filter: Scalars['String'];\n id?: InputMaybe;\n idActionBody?: InputMaybe;\n};\n\nexport type Flag = {\n __typename?: 'Flag';\n countryCode: Maybe;\n language: Maybe;\n name: Maybe;\n url: Maybe;\n};\n\nexport type Footer = {\n __typename?: 'Footer';\n benefits: Maybe>>;\n copyrightText: Maybe;\n flags: Maybe>>;\n footerText: Maybe;\n linksSections: Maybe>>;\n partners: Maybe>>;\n payments: Maybe>>;\n places: Maybe>>;\n quickContact: Maybe;\n socialIcons: Maybe>>;\n};\n\nexport type FooterText = {\n __typename?: 'FooterText';\n homePage: Maybe;\n};\n\nexport type Freetext = {\n __typename?: 'Freetext';\n content: Scalars['String'];\n title: Scalars['String'];\n type: Scalars['String'];\n url: Maybe;\n};\n\nexport type GdprSettings = {\n __typename?: 'GdprSettings';\n securityAndPrivacyUrl: Maybe;\n termsAndConditionsUrl: Maybe;\n};\n\nexport type GetLivestreamResponse = {\n __typename?: 'GetLivestreamResponse';\n shows: Maybe>;\n};\n\nexport type GetLivestreamVariables = {\n productCode: Scalars['String'];\n};\n\nexport type GetShoppingCartContentProxyResponseModelInput = {\n cartId?: InputMaybe;\n items?: InputMaybe>>;\n};\n\nexport type GiftAddDtoInput = {\n campaignId?: InputMaybe;\n count: Scalars['Int'];\n productId: Scalars['Int'];\n};\n\nexport type GiftModel = {\n __typename?: 'GiftModel';\n code: Scalars['String'];\n count: Maybe;\n id: Maybe;\n idAction: Maybe;\n productId: Maybe;\n};\n\nexport type GiftModelInput = {\n code: Scalars['String'];\n count?: InputMaybe;\n id?: InputMaybe;\n idAction?: InputMaybe;\n productId?: InputMaybe;\n};\n\nexport type GiftPackagingConfig = {\n __typename?: 'GiftPackagingConfig';\n allowed: Maybe;\n price: Maybe;\n};\n\nexport enum GiftType {\n Basic = 'BASIC',\n Gwp = 'GWP',\n Sample = 'SAMPLE',\n Special = 'SPECIAL',\n TryItFirst = 'TRY_IT_FIRST',\n}\n\nexport type GiftTypeModel = {\n __typename?: 'GiftTypeModel';\n giftType: Maybe;\n id: Maybe;\n};\n\nexport type HairModifaceEffects = {\n __typename?: 'HairModifaceEffects';\n category: Maybe;\n shades: Maybe>>;\n upc: Maybe;\n};\n\nexport type HomePageFooter = {\n __typename?: 'HomePageFooter';\n leftSideHtml: Maybe;\n rightSideHtml: Maybe;\n};\n\nexport type HrkDefaultCurrency = {\n __typename?: 'HrkDefaultCurrency';\n code: Scalars['String'];\n currencyId: Scalars['Int'];\n exchangeRates: Maybe;\n symbol: Scalars['String'];\n};\n\nexport type HrkExchangeRates = {\n __typename?: 'HrkExchangeRates';\n EUR: Maybe;\n HRK: Maybe;\n};\n\nexport type Image = {\n __typename?: 'Image';\n alt: Maybe;\n src: Maybe;\n};\n\nexport type ImagesByCategory = {\n __typename?: 'ImagesByCategory';\n mainImage: Image;\n others: Maybe>>;\n previewImage: Maybe;\n shadeImage: Maybe;\n};\n\nexport type InstructionDocument = {\n __typename?: 'InstructionDocument';\n type: InstructionDocumentType;\n url: Scalars['String'];\n};\n\nexport enum InstructionDocumentType {\n InstructionsForUse = 'InstructionsForUse',\n PackagingInformation = 'PackagingInformation',\n}\n\nexport type ItemInCart = {\n __typename?: 'ItemInCart';\n cartItemId: Scalars['Int'];\n count: Maybe;\n price: Maybe;\n productId: Maybe;\n warning: Maybe>>;\n};\n\nexport type ItemResponse = {\n __typename?: 'ItemResponse';\n itemId: Maybe;\n};\n\nexport type Language = {\n __typename?: 'Language';\n langId: Maybe;\n priceDecimalPlaces: Maybe;\n priceFormat: Maybe;\n tag: Scalars['String'];\n};\n\nexport type LanguagedMessage = {\n __typename?: 'LanguagedMessage';\n acceptLanguage: Scalars['String'];\n messages: Maybe;\n};\n\nexport type LdFeatures = {\n __typename?: 'LdFeatures';\n bazaarvoiceIntegrationPd: Maybe;\n chatbot: Maybe;\n conditionalVoucherDiscount: Maybe;\n dualCurrencyPrice: Maybe;\n gatewayRouterProxyEnabled: Maybe;\n hasJsonLdOfferVoucherPrice: Maybe;\n klarnaNushopId: Maybe;\n livestreamOnPdEnabled: Maybe;\n loyaltyGa4: Maybe;\n modifaceIntensitySlider: Maybe;\n newBlogEndpoint: Maybe;\n newDermoIcon: Maybe;\n newNutritionAndVitaminsTable: Maybe;\n newPdDesign: Maybe;\n pdHasAllReviewsPage: Maybe;\n pdSetImmediateEnabled: Maybe;\n pictogramsEnabled: Maybe;\n recoProductDetail: Maybe;\n recoProductDetailAddToCart: Maybe;\n shadeFinderTryItFirstProductMasterIds: Maybe>;\n shadefinderEnabled: Maybe;\n spaRedirectWishlistToPd: Maybe;\n strictSalesDisplay: Maybe;\n swogoIgnoreConvertedPrice: Maybe;\n swogoIntegrationEnabled: Maybe;\n wishlistSsrEnabled: Maybe;\n};\n\nexport type LegalInformation = {\n __typename?: 'LegalInformation';\n compositionTables: Maybe;\n document: Maybe;\n foodComposition: Maybe;\n importantNotice: Maybe;\n ingredients: Maybe;\n instructionDocument: Maybe;\n instructions: Maybe;\n isSensitiveHairProduct: Maybe;\n manufacturerImporter: Maybe;\n nutritionValues: Maybe;\n preparationUsage: Maybe;\n specialStorage: Maybe;\n video: Maybe;\n warnings: Maybe;\n};\n\nexport type Link = {\n __typename?: 'Link';\n targetUrl: Maybe;\n title: Maybe;\n};\n\nexport type LinkSection = {\n __typename?: 'LinkSection';\n links: Maybe>>;\n sectionType: Maybe;\n};\n\nexport type Livestream = {\n __typename?: 'Livestream';\n deeplink: Scalars['String'];\n description: Scalars['String'];\n isLive: Scalars['Boolean'];\n previewImageUrl: Scalars['String'];\n publishedDate: Maybe;\n scheduledDate: Scalars['String'];\n scheduledStart: Maybe;\n showId: Scalars['String'];\n title: Scalars['String'];\n videoLength: Scalars['String'];\n};\n\nexport type Locale = {\n __typename?: 'Locale';\n currency: Maybe;\n id: Maybe;\n priceDecimalPlaces: Maybe;\n priceFormat: Maybe;\n tag: Maybe;\n};\n\nexport type Location = {\n __typename?: 'Location';\n latitude: Scalars['String'];\n longitude: Scalars['String'];\n};\n\nexport type LoyaltyDto = {\n __typename?: 'LoyaltyDto';\n benefitId: Scalars['String'];\n code: Scalars['String'];\n loyaltyType: ELoyaltyDiscountType;\n state: EBenefitState;\n value: Scalars['Int'];\n};\n\nexport type MasterProductListItem = {\n __typename?: 'MasterProductListItem';\n annotation: Maybe;\n brandName: Maybe;\n collection: Maybe;\n masterId: Maybe;\n masterProductCode: Maybe;\n reviewOverview: Maybe;\n /** @deprecated Use reviewOverview. */\n reviewSummary: Maybe;\n url: Maybe;\n variants: Array>;\n};\n\nexport type MissAlreadyVoted = {\n __typename?: 'MissAlreadyVoted';\n facebookAppId: Maybe;\n user: Maybe;\n voted: Maybe;\n};\n\nexport type MissVoteCustomerInput = {\n email: Scalars['String'];\n name: Scalars['String'];\n};\n\nexport type MissVoteInput = {\n customer: MissVoteCustomerInput;\n missId: Scalars['Int'];\n};\n\nexport type MissVotePayload = {\n __typename?: 'MissVotePayload';\n data: Maybe;\n status: Maybe;\n};\n\nexport enum MissVoteStatus {\n AlreadyVoted = 'ALREADY_VOTED',\n Error = 'ERROR',\n Ok = 'OK',\n}\n\nexport type ModifaceEffect = {\n __typename?: 'ModifaceEffect';\n category: Maybe;\n shades: Maybe>>;\n upc: Maybe;\n};\n\nexport type ModifaceEffectShade = {\n __typename?: 'ModifaceEffectShade';\n color_a: Maybe;\n color_b: Maybe;\n color_g: Maybe;\n color_r: Maybe;\n contrastBoost: Maybe;\n gamma: Maybe;\n glossDetail: Maybe;\n intensity: Maybe;\n placement: Maybe;\n skinClearing: Maybe;\n skinGlow: Maybe;\n sparkle_a: Maybe;\n sparkle_b: Maybe;\n sparkle_g: Maybe;\n sparkle_r: Maybe;\n wetness: Maybe;\n};\n\nexport type ModifaceHairShade = {\n __typename?: 'ModifaceHairShade';\n blendGradientBottomOffset: Maybe;\n blendGradientTopOffset: Maybe;\n effect: Maybe;\n enableRootRecoloring: Maybe;\n family: Maybe;\n histogram_b: Maybe;\n histogram_c: Maybe;\n histogram_g: Maybe;\n histogram_r: Maybe;\n intensity: Maybe;\n renderingVersion: Maybe;\n shazamColorFamily: Maybe;\n shine: Maybe;\n totalpixels: Maybe;\n};\n\nexport type Mutation = {\n __typename?: 'Mutation';\n AddGiftToCart: Maybe;\n AddProductToCart: AddProductResponse;\n AddProductsToCart: AddProductsResponse;\n DeleteGiftFromCart: Maybe;\n DeleteProductFromCart: Maybe;\n GiftAddAction: Maybe;\n GiftDeleteAction: Maybe;\n GiftUpdateAction: Maybe;\n TryItFirstAddToCart: AddToCartTryItFirstResult;\n WishlistAddProduct: Maybe;\n WishlistAddProductByOwner: Maybe;\n WishlistCopyWishlist: Maybe;\n WishlistMergeWishlists: Maybe;\n WishlistRemoveProduct: Maybe;\n WishlistRemoveProductByOwner: Maybe;\n addProductToClickAndCollect: Maybe;\n addReview: Maybe;\n dummy: Maybe;\n handleVote: Maybe;\n missSaveVote: Maybe;\n samplingCreateOrder: SamplingOrderResponse;\n sendWatchdog: WatchDog;\n setActualProduct: Maybe;\n storeWatchdog: Maybe>>;\n tnbCreateNewToken: Scalars['String'];\n tnbCreateOrder: TnbOrderResponse;\n tnbMakeOrder: Maybe;\n tnbSmsValidation: Maybe;\n};\n\nexport type MutationAddGiftToCartArgs = {\n gift: GiftAddDtoInput;\n};\n\nexport type MutationAddProductToCartArgs = {\n product: ProductToCartInput;\n services?: InputMaybe>>;\n};\n\nexport type MutationAddProductsToCartArgs = {\n products: Array;\n services?: InputMaybe>>;\n};\n\nexport type MutationDeleteGiftFromCartArgs = {\n itemId: Scalars['Int'];\n};\n\nexport type MutationDeleteProductFromCartArgs = {\n itemId: Scalars['Int'];\n};\n\nexport type MutationGiftAddActionArgs = {\n action?: InputMaybe;\n};\n\nexport type MutationGiftDeleteActionArgs = {\n id: Scalars['Int'];\n};\n\nexport type MutationGiftUpdateActionArgs = {\n action?: InputMaybe;\n};\n\nexport type MutationTryItFirstAddToCartArgs = {\n productCode: Scalars['String'];\n productId: Scalars['String'];\n tryItFirstId: Scalars['String'];\n};\n\nexport type MutationWishlistAddProductArgs = {\n product: Scalars['String'];\n};\n\nexport type MutationWishlistAddProductByOwnerArgs = {\n owner: Scalars['String'];\n product: Scalars['String'];\n};\n\nexport type MutationWishlistCopyWishlistArgs = {\n anonymousId?: InputMaybe;\n owner?: InputMaybe;\n};\n\nexport type MutationWishlistMergeWishlistsArgs = {\n newOwner: Scalars['String'];\n owner: Scalars['String'];\n};\n\nexport type MutationWishlistRemoveProductArgs = {\n product: Scalars['String'];\n};\n\nexport type MutationWishlistRemoveProductByOwnerArgs = {\n owner: Scalars['String'];\n product: Scalars['String'];\n};\n\nexport type MutationAddProductToClickAndCollectArgs = {\n productId: Scalars['Int'];\n warehouseCode: Scalars['String'];\n};\n\nexport type MutationAddReviewArgs = {\n digests?: InputMaybe>;\n email?: InputMaybe;\n ipAddress?: InputMaybe;\n masterProductCode: Scalars['String'];\n name: Scalars['String'];\n ratings?: InputMaybe>>;\n score: Scalars['Int'];\n source: Scalars['String'];\n text?: InputMaybe;\n};\n\nexport type MutationHandleVoteArgs = {\n action: VoteAction;\n id: Scalars['String'];\n type: VoteType;\n};\n\nexport type MutationMissSaveVoteArgs = {\n voteInput: MissVoteInput;\n year: Scalars['String'];\n};\n\nexport type MutationSamplingCreateOrderArgs = {\n campaignId: Scalars['Int'];\n customer: CustomerInput;\n};\n\nexport type MutationSendWatchdogArgs = {\n email: Scalars['String'];\n productId: Scalars['String'];\n};\n\nexport type MutationSetActualProductArgs = {\n id: Scalars['String'];\n};\n\nexport type MutationStoreWatchdogArgs = {\n errors?: InputMaybe>>;\n id: Scalars['String'];\n success: Scalars['Boolean'];\n};\n\nexport type MutationTnbCreateNewTokenArgs = {\n productCode: Scalars['String'];\n};\n\nexport type MutationTnbCreateOrderArgs = {\n order?: InputMaybe;\n};\n\nexport type MutationTnbMakeOrderArgs = {\n order: TnbMakeOrderInput;\n};\n\nexport type MutationTnbSmsValidationArgs = {\n validationData: TnbSmsValidationInput;\n};\n\nexport type NutritionValue = {\n __typename?: 'NutritionValue';\n amount: Maybe;\n amountSign: Maybe;\n measureUnit: Maybe;\n nutritionValue: Maybe;\n variantAmount: Maybe;\n};\n\nexport type OriginalPrice = {\n __typename?: 'OriginalPrice';\n currency: Maybe;\n tax: Maybe;\n type: Maybe;\n value: Maybe;\n};\n\nexport type Pager = {\n __typename?: 'Pager';\n page: Scalars['Int'];\n pageSize: Scalars['Int'];\n remaining: Scalars['Int'];\n};\n\nexport type PagerInput = {\n page: Scalars['Int'];\n pageSize: Scalars['Int'];\n};\n\nexport type Parameters = {\n __typename?: 'Parameters';\n amount: Maybe;\n package: Maybe;\n};\n\nexport type Partner = {\n __typename?: 'Partner';\n externalCode: Maybe;\n imagePath: Maybe;\n linkUrl: Maybe;\n onlyOnHomepage: Maybe;\n title: Maybe;\n type: Maybe;\n};\n\nexport enum PartnerType {\n External = 'External',\n Internal = 'Internal',\n}\n\nexport enum PathTemplate {\n Error = 'Error',\n HomePage = 'HomePage',\n NotFound = 'NotFound',\n ProductDetailSimple = 'ProductDetailSimple',\n ReviewsPage = 'ReviewsPage',\n SpecialPageComponent = 'SpecialPageComponent',\n Tryandbuy = 'Tryandbuy',\n Wishlist = 'Wishlist',\n}\n\nexport type PathView = {\n __typename?: 'PathView';\n id: Scalars['ID'];\n path: Scalars['String'];\n productId: Maybe;\n type: PathTemplate;\n};\n\nexport type Payment = {\n __typename?: 'Payment';\n imageUrl: Maybe;\n label: Maybe;\n url: Maybe;\n};\n\nexport type Place = {\n __typename?: 'Place';\n name: Maybe;\n stores: Maybe>>;\n};\n\nexport type Price = {\n __typename?: 'Price';\n currency: Maybe;\n tax: Maybe;\n value: Maybe;\n};\n\nexport type PriceLevel = {\n __typename?: 'PriceLevel';\n levels: Maybe>;\n};\n\nexport type PriceLevelItem = {\n __typename?: 'PriceLevelItem';\n value: Scalars['Int'];\n};\n\nexport type PricesSummaryDto = {\n __typename?: 'PricesSummaryDto';\n discountWithoutDelivery: Scalars['Int'];\n priceDelivery: Scalars['Int'];\n priceItemSummary: Scalars['Int'];\n pricePayment: Scalars['Int'];\n priceProductsSummary: Scalars['Int'];\n vat: Scalars['Int'];\n};\n\nexport type PrimaryCategories = {\n __typename?: 'PrimaryCategories';\n category: Scalars['String'];\n kind: Scalars['String'];\n subCategory: Scalars['String'];\n type: Scalars['String'];\n};\n\nexport type Product = {\n __typename?: 'Product';\n alternateSites: Maybe>>;\n annotation: Maybe;\n /** @deprecated Use brandInfo. */\n brand: Maybe;\n /** @deprecated Use brandInfo. */\n brandId: Maybe;\n brandInfo: Maybe;\n /** @deprecated Use brandInfo. */\n brandRef: Maybe;\n breadcrumb: Maybe>>;\n campaigns: Maybe>>;\n categorization: Categorization;\n category: Maybe>>;\n /** @deprecated Use characteristics of specific variant. */\n characteristics: Maybe>>;\n code: Maybe;\n collection: Maybe;\n composition: Maybe>>;\n config: ProductConfig;\n deliveries: Maybe>>;\n description: Maybe;\n hasDifferentColors: Maybe;\n id: Scalars['ID'];\n isForbiddenToDisplay: Maybe;\n isPerfume: Maybe;\n isShadeFinderAvailable: Maybe;\n kind: Maybe;\n manufacturer: Maybe;\n marketType: Maybe;\n orderUnit: Maybe;\n primaryCategories: PrimaryCategories;\n /** @deprecated Use reviewOverview. This return always null. */\n rating: Maybe;\n related: Maybe>>;\n /** @deprecated Use 'getArticles' instead. */\n relatedArticles: Maybe>>;\n reviewOverview: Maybe;\n /** @deprecated Use reviewOverview instead. ReviewOverview is more effective and faster to resolve. */\n reviewSummary: Maybe;\n seo: Maybe;\n subCategory: Maybe>>;\n subName: Maybe;\n type: Maybe>>;\n unit: Maybe;\n /** @deprecated Use perAmount directly inside unitPrice. */\n unitAmount: Maybe;\n url: Scalars['String'];\n variantDisplayType: Maybe;\n variants: Maybe>>;\n};\n\nexport type ProductConfig = {\n __typename?: 'ProductConfig';\n showAddToCartButton: Maybe;\n showAddToCartModal: Maybe;\n};\n\nexport type ProductListItem = {\n __typename?: 'ProductListItem';\n annotation: Maybe;\n attributes: Maybe;\n canBuy: Scalars['Boolean'];\n id: Maybe;\n images: ImagesByCategory;\n name: Maybe;\n parameters: Maybe;\n price: Maybe;\n productCode: Maybe;\n showWatchdog: Scalars['Boolean'];\n stockAvailability: Maybe;\n wishlisted: Maybe;\n};\n\nexport type ProductPrice = {\n __typename?: 'ProductPrice';\n currencyCode: Maybe;\n originalPrice: Maybe;\n price: Maybe;\n productId: Maybe;\n unitPrice: Maybe;\n};\n\nexport type ProductRating = {\n __typename?: 'ProductRating';\n score: Maybe;\n votes: Maybe;\n};\n\nexport type ProductToCartInput = {\n count: Scalars['Int'];\n isComparisonPrice?: InputMaybe;\n productId: Scalars['Int'];\n};\n\nexport type ProductVariantCoreInfo = {\n id: Maybe;\n name: Maybe;\n productCode: Maybe;\n stockAvailability: Maybe;\n url: Maybe;\n wishlisted: Maybe;\n};\n\nexport type Query = {\n __typename?: 'Query';\n AdminPanelInfo: Maybe;\n AppConfig: AppConfig;\n AvailableGiftsByCartContent: Maybe>>;\n AvailableGiftsByCartId: Maybe>>;\n CartServicesIncluded: Maybe;\n ClientCache: Maybe;\n Footer: Maybe