{"version":3,"file":"app-1bb1232b17e4d9a8dabb.js","mappings":"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G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,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","sources":["webpack://ncfx-website/./node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","webpack://ncfx-website/./node_modules/stylis/src/Utility.js","webpack://ncfx-website/./node_modules/stylis/src/Tokenizer.js","webpack://ncfx-website/./node_modules/stylis/src/Enum.js","webpack://ncfx-website/./node_modules/stylis/src/Serializer.js","webpack://ncfx-website/./node_modules/stylis/src/Parser.js","webpack://ncfx-website/./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","webpack://ncfx-website/./node_modules/stylis/src/Middleware.js","webpack://ncfx-website/./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://ncfx-website/./node_modules/@emotion/react/dist/emotion-element-5486c51c.browser.esm.js","webpack://ncfx-website/./node_modules/@emotion/react/dist/emotion-react.browser.esm.js","webpack://ncfx-website/./node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack://ncfx-website/./node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","webpack://ncfx-website/./node_modules/@emotion/hash/dist/emotion-hash.esm.js","webpack://ncfx-website/./node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","webpack://ncfx-website/./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack://ncfx-website/./node_modules/ufo/dist/index.mjs","webpack://ncfx-website/./node_modules/@imgix/js-core/dist/index.esm.js","webpack://ncfx-website/./node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js","webpack://ncfx-website/./node_modules/@mui/system/esm/GlobalStyles/GlobalStyles.js","webpack://ncfx-website/./node_modules/@mui/material/GlobalStyles/GlobalStyles.js","webpack://ncfx-website/./node_modules/@mui/material/colors/common.js","webpack://ncfx-website/./node_modules/@mui/material/colors/grey.js","webpack://ncfx-website/./node_modules/@mui/material/colors/purple.js","webpack://ncfx-website/./node_modules/@mui/material/colors/red.js","webpack://ncfx-website/./node_modules/@mui/material/colors/orange.js","webpack://ncfx-website/./node_modules/@mui/material/colors/blue.js","webpack://ncfx-website/./node_modules/@mui/material/colors/lightBlue.js","webpack://ncfx-website/./node_modules/@mui/material/colors/green.js","webpack://ncfx-website/./node_modules/@mui/material/styles/createPalette.js","webpack://ncfx-website/./node_modules/@mui/material/styles/createTypography.js","webpack://ncfx-website/./node_modules/@mui/material/styles/shadows.js","webpack://ncfx-website/./node_modules/@mui/material/styles/zIndex.js","webpack://ncfx-website/./node_modules/@mui/material/styles/createTheme.js","webpack://ncfx-website/./node_modules/@mui/material/styles/createMixins.js","webpack://ncfx-website/./node_modules/@mui/material/styles/createTransitions.js","webpack://ncfx-website/./node_modules/@mui/material/styles/defaultTheme.js","webpack://ncfx-website/./node_modules/@mui/material/styles/identifier.js","webpack://ncfx-website/./node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","webpack://ncfx-website/./node_modules/@mui/system/colorManipulator.js","webpack://ncfx-website/./node_modules/@mui/system/esm/DefaultPropsProvider/DefaultPropsProvider.js","webpack://ncfx-website/./node_modules/@mui/system/esm/RtlProvider/index.js","webpack://ncfx-website/./node_modules/@mui/system/esm/breakpoints.js","webpack://ncfx-website/./node_modules/@mui/system/esm/createTheme/applyStyles.js","webpack://ncfx-website/./node_modules/@mui/system/esm/createTheme/createBreakpoints.js","webpack://ncfx-website/./node_modules/@mui/system/esm/createTheme/shape.js","webpack://ncfx-website/./node_modules/@mui/system/esm/createTheme/createTheme.js","webpack://ncfx-website/./node_modules/@mui/system/esm/createTheme/createSpacing.js","webpack://ncfx-website/./node_modules/@mui/system/esm/merge.js","webpack://ncfx-website/./node_modules/@mui/system/esm/spacing.js","webpack://ncfx-website/./node_modules/@mui/system/esm/memoize.js","webpack://ncfx-website/./node_modules/@mui/system/esm/style.js","webpack://ncfx-website/./node_modules/@mui/system/esm/compose.js","webpack://ncfx-website/./node_modules/@mui/system/esm/borders.js","webpack://ncfx-website/./node_modules/@mui/system/esm/cssGrid.js","webpack://ncfx-website/./node_modules/@mui/system/esm/palette.js","webpack://ncfx-website/./node_modules/@mui/system/esm/sizing.js","webpack://ncfx-website/./node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","webpack://ncfx-website/./node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","webpack://ncfx-website/./node_modules/@mui/system/esm/useTheme.js","webpack://ncfx-website/./node_modules/@mui/system/esm/useThemeWithoutDefault.js","webpack://ncfx-website/./node_modules/@mui/utils/esm/capitalize/capitalize.js","webpack://ncfx-website/./node_modules/@mui/utils/esm/clamp/clamp.js","webpack://ncfx-website/./node_modules/@mui/utils/esm/deepmerge/deepmerge.js","webpack://ncfx-website/./node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","webpack://ncfx-website/./node_modules/@mui/utils/esm/resolveProps/resolveProps.js","webpack://ncfx-website/./node_modules/camel-case/dist.es2015/index.js","webpack://ncfx-website/./node_modules/camelcase/index.js","webpack://ncfx-website/./node_modules/charenc/charenc.js","webpack://ncfx-website/./node_modules/crypt/crypt.js","webpack://ncfx-website/./node_modules/debug/src/browser.js","webpack://ncfx-website/./node_modules/debug/src/common.js","webpack://ncfx-website/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://ncfx-website/./node_modules/gatsby-react-router-scroll/index.js","webpack://ncfx-website/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://ncfx-website/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://ncfx-website/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://ncfx-website/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://ncfx-website/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://ncfx-website/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://ncfx-website/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://ncfx-website/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://ncfx-website/./.cache/api-runner-browser-plugins.js","webpack://ncfx-website/./.cache/api-runner-browser.js","webpack://ncfx-website/./.cache/create-content-digest-browser-shim.js","webpack://ncfx-website/./.cache/emitter.js","webpack://ncfx-website/./node_modules/mitt/dist/mitt.es.js","webpack://ncfx-website/./.cache/normalize-page-path.js","webpack://ncfx-website/./.cache/find-path.js","webpack://ncfx-website/./.cache/slice/server-slice-renderer.js","webpack://ncfx-website/./.cache/slice/server-slice.js","webpack://ncfx-website/./.cache/slice/inline-slice.js","webpack://ncfx-website/./.cache/slice.js","webpack://ncfx-website/./.cache/gatsby-browser-entry.js","webpack://ncfx-website/./.cache/prefetch.js","webpack://ncfx-website/./.cache/loader.js","webpack://ncfx-website/./.cache/head/components/fire-callback-in-effect.js","webpack://ncfx-website/./.cache/head/constants.js","webpack://ncfx-website/./.cache/head/utils.js","webpack://ncfx-website/./.cache/head/head-export-handler-for-browser.js","webpack://ncfx-website/./.cache/page-renderer.js","webpack://ncfx-website/./.cache/route-announcer-props.js","webpack://ncfx-website/./.cache/navigation.js","webpack://ncfx-website/./node_modules/shallow-compare/es/index.js","webpack://ncfx-website/./.cache/ensure-resources.js","webpack://ncfx-website/./.cache/production-app.js","webpack://ncfx-website/./.cache/public-page-renderer-prod.js","webpack://ncfx-website/./.cache/public-page-renderer.js","webpack://ncfx-website/./.cache/react-dom-utils.js","webpack://ncfx-website/./.cache/redirect-utils.js","webpack://ncfx-website/./.cache/register-service-worker.js","webpack://ncfx-website/./.cache/slice/context.js","webpack://ncfx-website/./.cache/static-query.js","webpack://ncfx-website/./.cache/context-utils.js","webpack://ncfx-website/./.cache/strip-prefix.js","webpack://ncfx-website/../api/fetchBase64Image.ts","webpack://ncfx-website/../api/fetchImgixMetadata.ts","webpack://ncfx-website/../common/cache.ts","webpack://ncfx-website/../common/createExternalHelper.ts","webpack://ncfx-website/../common/imgix-js-core-wrapper.ts","webpack://ncfx-website/../common/log.ts","webpack://ncfx-website/../common/uri.ts","webpack://ncfx-website/../../../src/modules/gatsby-plugin/buildGatsbyImageDataBaseArgs.ts","webpack://ncfx-website/../../../src/modules/gatsby-plugin/createImgixBase64FieldConfig.ts","webpack://ncfx-website/../../../src/modules/gatsby-plugin/createImgixFixedFieldConfig.ts","webpack://ncfx-website/../../../src/modules/gatsby-plugin/graphqlTypes.ts","webpack://ncfx-website/../../../src/modules/gatsby-plugin/objectBuilders.ts","webpack://ncfx-website/../../../src/modules/gatsby-plugin/resolveDimensions.ts","webpack://ncfx-website/../src/pluginHelpers.browser.ts","webpack://ncfx-website/./node_modules/gatsby-plugin-google-gtag/gatsby-browser.js","webpack://ncfx-website/../src/image-utils.ts","webpack://ncfx-website/../src/components/hooks.ts","webpack://ncfx-website/../src/components/layout-wrapper.tsx","webpack://ncfx-website/../src/components/picture.tsx","webpack://ncfx-website/../src/components/placeholder.tsx","webpack://ncfx-website/../src/components/main-image.tsx","webpack://ncfx-website/../src/components/gatsby-image.server.tsx","webpack://ncfx-website/../src/components/gatsby-image.browser.tsx","webpack://ncfx-website/../src/components/static-image.server.tsx","webpack://ncfx-website/../src/components/static-image.tsx","webpack://ncfx-website/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://ncfx-website/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://ncfx-website/../src/constants.ts","webpack://ncfx-website/../src/on-client-entry.ts","webpack://ncfx-website/../src/index.ts","webpack://ncfx-website/./node_modules/fp-ts/es6/function.js","webpack://ncfx-website/../src/fields.ts","webpack://ncfx-website/../src/customType.ts","webpack://ncfx-website/./node_modules/@prismicio/helpers/dist/lib/escapeHTML.js","webpack://ncfx-website/./node_modules/@prismicio/helpers/dist/lib/serializerHelpers.js","webpack://ncfx-website/./node_modules/@prismicio/helpers/dist/asHTML.js","webpack://ncfx-website/./node_modules/fp-ts/es6/Chain.js","webpack://ncfx-website/./node_modules/fp-ts/es6/FromEither.js","webpack://ncfx-website/./node_modules/fp-ts/es6/Functor.js","webpack://ncfx-website/./node_modules/fp-ts/es6/internal.js","webpack://ncfx-website/./node_modules/fp-ts/es6/Option.js","webpack://ncfx-website/../src/types.ts","webpack://ncfx-website/../src/runtime/createGetProxy.ts","webpack://ncfx-website/../src/runtime/normalizers/alternateLanguages.ts","webpack://ncfx-website/../src/runtime/normalizers/document.ts","webpack://ncfx-website/../src/runtime/normalizers/documentData.ts","webpack://ncfx-website/../src/runtime/normalizers/group.ts","webpack://ncfx-website/../src/lib/sanitizeImageURL.ts","webpack://ncfx-website/../src/runtime/normalizers/image.ts","webpack://ncfx-website/../src/lib/stripURLParameters.ts","webpack://ncfx-website/../src/runtime/normalizers/link.ts","webpack://ncfx-website/../src/runtime/normalizers/structuredText.ts","webpack://ncfx-website/../src/runtime/normalizers/slice.ts","webpack://ncfx-website/../src/runtime/normalizers/slices.ts","webpack://ncfx-website/../src/runtime/normalize.ts","webpack://ncfx-website/../src/runtime/typePaths.ts","webpack://ncfx-website/../src/runtime/serializePath.ts","webpack://ncfx-website/../src/runtime/serializeTypePaths.ts","webpack://ncfx-website/../src/runtime/runtime.ts","webpack://ncfx-website/./node_modules/es-cookie/src/es-cookie.js","webpack://ncfx-website/../cookie.ts","webpack://ncfx-website/../PrismicError.ts","webpack://ncfx-website/../getRepositoryEndpoint.ts","webpack://ncfx-website/../isRepositoryName.ts","webpack://ncfx-website/../index.ts","webpack://ncfx-website/../../../src/lib/castArray.ts","webpack://ncfx-website/../../../src/lib/appendPredicates.ts","webpack://ncfx-website/../../../src/lib/findRef.ts","webpack://ncfx-website/../../../src/lib/findMasterRef.ts","webpack://ncfx-website/../../../src/lib/findRefByID.ts","webpack://ncfx-website/../../../src/lib/findRefByLabel.ts","webpack://ncfx-website/../../../src/lib/getPreviewCookie.ts","webpack://ncfx-website/../ForbiddenError.ts","webpack://ncfx-website/../NotFoundError.ts","webpack://ncfx-website/../ParsingError.ts","webpack://ncfx-website/../buildQueryURL.ts","webpack://ncfx-website/../predicate.ts","webpack://ncfx-website/../client.ts","webpack://ncfx-website/../isRepositoryEndpoint.ts","webpack://ncfx-website/../../../src/lib/minifyGraphQLQuery.ts","webpack://ncfx-website/../../../src/lib/castThunk.ts","webpack://ncfx-website/./node_modules/fp-ts/es6/ChainRec.js","webpack://ncfx-website/./node_modules/fp-ts/es6/Either.js","webpack://ncfx-website/../node_modules/humps/humps.js","webpack://ncfx-website/../node_modules/@babel/runtime/helpers/extends.js","webpack://ncfx-website/../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://ncfx-website/../node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://ncfx-website/../node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://ncfx-website/../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://ncfx-website/../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://ncfx-website/../node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://ncfx-website/../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://ncfx-website/../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://ncfx-website/../src/utils.js","webpack://ncfx-website/../src/core/index.js","webpack://ncfx-website/../src/index.js","webpack://ncfx-website/../node_modules/react-use/esm/useEnsuredForwardedRef.js","webpack://ncfx-website/./node_modules/clsx/dist/clsx.m.js","webpack://ncfx-website/./node_modules/gatsby-plugin-prismic-previews/node_modules/@reach/dialog/node_modules/@reach/utils/can-use-dom/dist/reach-utils-can-use-dom.esm.js","webpack://ncfx-website/./node_modules/gatsby-plugin-prismic-previews/node_modules/@reach/dialog/node_modules/@reach/utils/use-isomorphic-layout-effect/dist/reach-utils-use-isomorphic-layout-effect.esm.js","webpack://ncfx-website/./node_modules/gatsby-plugin-prismic-previews/node_modules/@reach/dialog/node_modules/@reach/portal/dist/reach-portal.esm.js","webpack://ncfx-website/./node_modules/gatsby-plugin-prismic-previews/node_modules/@reach/dialog/node_modules/@reach/utils/use-force-update/dist/reach-utils-use-force-update.esm.js","webpack://ncfx-website/./node_modules/gatsby-plugin-prismic-previews/node_modules/@reach/dialog/node_modules/@reach/utils/owner-document/dist/reach-utils-owner-document.esm.js","webpack://ncfx-website/./node_modules/gatsby-plugin-prismic-previews/node_modules/@reach/dialog/node_modules/@reach/utils/noop/dist/reach-utils-noop.esm.js","webpack://ncfx-website/./node_modules/gatsby-plugin-prismic-previews/node_modules/@reach/dialog/node_modules/@reach/utils/compose-refs/dist/reach-utils-compose-refs.esm.js","webpack://ncfx-website/./node_modules/gatsby-plugin-prismic-previews/node_modules/@reach/dialog/node_modules/@reach/utils/type-check/dist/reach-utils-type-check.esm.js","webpack://ncfx-website/./node_modules/gatsby-plugin-prismic-previews/node_modules/@reach/dialog/node_modules/@reach/utils/compose-event-handlers/dist/reach-utils-compose-event-handlers.esm.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/constants.js","webpack://ncfx-website/./node_modules/use-callback-ref/dist/es2015/assignRef.js","webpack://ncfx-website/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js","webpack://ncfx-website/./node_modules/use-callback-ref/dist/es2015/useRef.js","webpack://ncfx-website/./node_modules/react-focus-lock/dist/es2015/FocusGuard.js","webpack://ncfx-website/./node_modules/use-sidecar/dist/es2015/medium.js","webpack://ncfx-website/./node_modules/react-focus-lock/dist/es2015/medium.js","webpack://ncfx-website/./node_modules/react-focus-lock/dist/es2015/scope.js","webpack://ncfx-website/./node_modules/react-focus-lock/dist/es2015/Lock.js","webpack://ncfx-website/./node_modules/react-clientside-effect/lib/index.es.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/utils/array.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/utils/is.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/utils/tabOrder.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/utils/tabUtils.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/utils/tabbables.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/utils/DOMutils.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/utils/getActiveElement.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/utils/safe.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/utils/all-affected.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/focusInside.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/commands.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/utils/correctFocus.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/utils/firstFocus.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/solver.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/utils/auto-focus.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/utils/parenting.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/focusSolver.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/moveFocusInside.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/return-focus.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/sibling.js","webpack://ncfx-website/./node_modules/react-focus-lock/dist/es2015/util.js","webpack://ncfx-website/./node_modules/react-focus-lock/dist/es2015/Trap.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/focusIsHidden.js","webpack://ncfx-website/./node_modules/focus-lock/dist/es2015/focusables.js","webpack://ncfx-website/./node_modules/react-focus-lock/dist/es2015/Combination.js","webpack://ncfx-website/./node_modules/react-focus-lock/dist/es2015/index.js","webpack://ncfx-website/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js","webpack://ncfx-website/./node_modules/react-remove-scroll/dist/es2015/medium.js","webpack://ncfx-website/./node_modules/react-remove-scroll/dist/es2015/UI.js","webpack://ncfx-website/./node_modules/use-sidecar/dist/es2015/exports.js","webpack://ncfx-website/./node_modules/get-nonce/dist/es2015/index.js","webpack://ncfx-website/./node_modules/react-style-singleton/dist/es2015/singleton.js","webpack://ncfx-website/./node_modules/react-style-singleton/dist/es2015/component.js","webpack://ncfx-website/./node_modules/react-style-singleton/dist/es2015/hook.js","webpack://ncfx-website/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js","webpack://ncfx-website/./node_modules/react-remove-scroll-bar/dist/es2015/component.js","webpack://ncfx-website/./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","webpack://ncfx-website/./node_modules/react-remove-scroll/dist/es2015/handleScroll.js","webpack://ncfx-website/./node_modules/react-remove-scroll/dist/es2015/SideEffect.js","webpack://ncfx-website/./node_modules/react-remove-scroll/dist/es2015/sidecar.js","webpack://ncfx-website/./node_modules/react-remove-scroll/dist/es2015/Combination.js","webpack://ncfx-website/./node_modules/gatsby-plugin-prismic-previews/node_modules/@reach/dialog/dist/reach-dialog.esm.js","webpack://ncfx-website/../src/lib/sprintf.ts","webpack://ncfx-website/../src/context.tsx","webpack://ncfx-website/../src/usePrismicPreviewContext.tsx","webpack://ncfx-website/../src/useMergePrismicPreviewData.ts","webpack://ncfx-website/../src/lib/isPlainObject.ts","webpack://ncfx-website/../src/lib/isProxy.ts","webpack://ncfx-website/../src/usePrismicPreviewAccessToken.ts","webpack://ncfx-website/../src/lib/extractPreviewRefRepositoryName.ts","webpack://ncfx-website/../src/lib/fetchTypePaths.ts","webpack://ncfx-website/../src/lib/buildTypePathsStoreFilename.ts","webpack://ncfx-website/../src/usePrismicPreviewBootstrap.ts","webpack://ncfx-website/../src/usePrismicPreviewResolver.ts","webpack://ncfx-website/../src/lib/getURLSearchParam.ts","webpack://ncfx-website/../src/lib/getComponentDisplayName.ts","webpack://ncfx-website/../src/components/Root.tsx","webpack://ncfx-website/../src/lib/userFriendlyError.ts","webpack://ncfx-website/../src/components/Modal.tsx","webpack://ncfx-website/../src/components/Button.tsx","webpack://ncfx-website/../src/components/Text.tsx","webpack://ncfx-website/../src/components/ModalAccessToken.tsx","webpack://ncfx-website/../src/components/ModalError.tsx","webpack://ncfx-website/../src/components/ModalLoading.tsx","webpack://ncfx-website/../src/components/PrismicPreviewUI.tsx","webpack://ncfx-website/../src/withPrismicPreview.tsx","webpack://ncfx-website/../src/withPrismicPreviewResolver.tsx","webpack://ncfx-website/../src/withPrismicUnpublishedPreview.tsx","webpack://ncfx-website/./node_modules/gatsby-remark-images/constants.js","webpack://ncfx-website/./node_modules/gatsby-remark-images/gatsby-browser.js","webpack://ncfx-website/./node_modules/@mui/material/CssBaseline/CssBaseline.js","webpack://ncfx-website/./node_modules/@mui/private-theming/useTheme/ThemeContext.js","webpack://ncfx-website/./node_modules/@mui/private-theming/useTheme/useTheme.js","webpack://ncfx-website/./node_modules/@mui/private-theming/ThemeProvider/nested.js","webpack://ncfx-website/./node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.js","webpack://ncfx-website/./node_modules/@mui/system/esm/ThemeProvider/ThemeProvider.js","webpack://ncfx-website/./node_modules/@mui/material/styles/ThemeProvider.js","webpack://ncfx-website/./node_modules/@mui/material/styles/cssUtils.js","webpack://ncfx-website/./src/theme.ts","webpack://ncfx-website/./node_modules/@mui/material/styles/responsiveFontSizes.js","webpack://ncfx-website/./src/hooks/useZoho/index.ts","webpack://ncfx-website/./plugins/gatsby-plugin-top-layout/TopLayout.tsx","webpack://ncfx-website/./src/utils/linkResolver.tsx","webpack://ncfx-website/./plugins/gatsby-plugin-top-layout/gatsby-browser.tsx","webpack://ncfx-website/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://ncfx-website/./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","webpack://ncfx-website/./node_modules/hoist-non-react-statics/node_modules/react-is/index.js","webpack://ncfx-website/./node_modules/invariant/browser.js","webpack://ncfx-website/./node_modules/is-buffer/index.js","webpack://ncfx-website/./node_modules/jsuri/Uri.js","webpack://ncfx-website/./node_modules/md5/md5.js","webpack://ncfx-website/./node_modules/ms/index.js","webpack://ncfx-website/./node_modules/node-fetch/browser.js","webpack://ncfx-website/./node_modules/lower-case/dist.es2015/index.js","webpack://ncfx-website/./node_modules/no-case/dist.es2015/index.js","webpack://ncfx-website/./node_modules/pascal-case/dist.es2015/index.js","webpack://ncfx-website/./node_modules/ramda/es/F.js","webpack://ncfx-website/./node_modules/ramda/es/T.js","webpack://ncfx-website/./node_modules/ramda/es/__.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_isPlaceholder.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_curry1.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_curry2.js","webpack://ncfx-website/./node_modules/ramda/es/add.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_concat.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_arity.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_curryN.js","webpack://ncfx-website/./node_modules/ramda/es/curryN.js","webpack://ncfx-website/./node_modules/ramda/es/addIndex.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_curry3.js","webpack://ncfx-website/./node_modules/ramda/es/adjust.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_isArray.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_isTransformer.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_dispatchable.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_reduced.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xfBase.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xall.js","webpack://ncfx-website/./node_modules/ramda/es/all.js","webpack://ncfx-website/./node_modules/ramda/es/max.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_map.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_isString.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_isArrayLike.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xwrap.js","webpack://ncfx-website/./node_modules/ramda/es/bind.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_reduce.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xmap.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_has.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_isArguments.js","webpack://ncfx-website/./node_modules/ramda/es/keys.js","webpack://ncfx-website/./node_modules/ramda/es/map.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_isInteger.js","webpack://ncfx-website/./node_modules/ramda/es/nth.js","webpack://ncfx-website/./node_modules/ramda/es/paths.js","webpack://ncfx-website/./node_modules/ramda/es/path.js","webpack://ncfx-website/./node_modules/ramda/es/prop.js","webpack://ncfx-website/./node_modules/ramda/es/pluck.js","webpack://ncfx-website/./node_modules/ramda/es/reduce.js","webpack://ncfx-website/./node_modules/ramda/es/allPass.js","webpack://ncfx-website/./node_modules/ramda/es/always.js","webpack://ncfx-website/./node_modules/ramda/es/and.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xany.js","webpack://ncfx-website/./node_modules/ramda/es/any.js","webpack://ncfx-website/./node_modules/ramda/es/anyPass.js","webpack://ncfx-website/./node_modules/ramda/es/ap.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_aperture.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xaperture.js","webpack://ncfx-website/./node_modules/ramda/es/aperture.js","webpack://ncfx-website/./node_modules/ramda/es/append.js","webpack://ncfx-website/./node_modules/ramda/es/apply.js","webpack://ncfx-website/./node_modules/ramda/es/values.js","webpack://ncfx-website/./node_modules/ramda/es/applySpec.js","webpack://ncfx-website/./node_modules/ramda/es/applyTo.js","webpack://ncfx-website/./node_modules/ramda/es/ascend.js","webpack://ncfx-website/./node_modules/ramda/es/assoc.js","webpack://ncfx-website/./node_modules/ramda/es/isNil.js","webpack://ncfx-website/./node_modules/ramda/es/assocPath.js","webpack://ncfx-website/./node_modules/ramda/es/nAry.js","webpack://ncfx-website/./node_modules/ramda/es/binary.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_isFunction.js","webpack://ncfx-website/./node_modules/ramda/es/liftN.js","webpack://ncfx-website/./node_modules/ramda/es/lift.js","webpack://ncfx-website/./node_modules/ramda/es/both.js","webpack://ncfx-website/./node_modules/ramda/es/curry.js","webpack://ncfx-website/./node_modules/ramda/es/call.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_makeFlat.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_flatCat.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_forceReduced.js","webpack://ncfx-website/./node_modules/ramda/es/chain.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xchain.js","webpack://ncfx-website/./node_modules/ramda/es/clamp.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_cloneRegExp.js","webpack://ncfx-website/./node_modules/ramda/es/type.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_clone.js","webpack://ncfx-website/./node_modules/ramda/es/clone.js","webpack://ncfx-website/./node_modules/ramda/es/comparator.js","webpack://ncfx-website/./node_modules/ramda/es/not.js","webpack://ncfx-website/./node_modules/ramda/es/complement.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_pipe.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_checkForMethod.js","webpack://ncfx-website/./node_modules/ramda/es/slice.js","webpack://ncfx-website/./node_modules/ramda/es/tail.js","webpack://ncfx-website/./node_modules/ramda/es/pipe.js","webpack://ncfx-website/./node_modules/ramda/es/reverse.js","webpack://ncfx-website/./node_modules/ramda/es/compose.js","webpack://ncfx-website/./node_modules/ramda/es/composeK.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_pipeP.js","webpack://ncfx-website/./node_modules/ramda/es/pipeP.js","webpack://ncfx-website/./node_modules/ramda/es/composeP.js","webpack://ncfx-website/./node_modules/ramda/es/head.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_identity.js","webpack://ncfx-website/./node_modules/ramda/es/identity.js","webpack://ncfx-website/./node_modules/ramda/es/pipeWith.js","webpack://ncfx-website/./node_modules/ramda/es/composeWith.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_arrayFromIterator.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_includesWith.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_objectIs.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_equals.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_functionName.js","webpack://ncfx-website/./node_modules/ramda/es/equals.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_indexOf.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_includes.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_quote.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_toISOString.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_complement.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_filter.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_isObject.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xfilter.js","webpack://ncfx-website/./node_modules/ramda/es/filter.js","webpack://ncfx-website/./node_modules/ramda/es/reject.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_toString.js","webpack://ncfx-website/./node_modules/ramda/es/toString.js","webpack://ncfx-website/./node_modules/ramda/es/concat.js","webpack://ncfx-website/./node_modules/ramda/es/cond.js","webpack://ncfx-website/./node_modules/ramda/es/constructN.js","webpack://ncfx-website/./node_modules/ramda/es/construct.js","webpack://ncfx-website/./node_modules/ramda/es/contains.js","webpack://ncfx-website/./node_modules/ramda/es/converge.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xreduceBy.js","webpack://ncfx-website/./node_modules/ramda/es/reduceBy.js","webpack://ncfx-website/./node_modules/ramda/es/countBy.js","webpack://ncfx-website/./node_modules/ramda/es/dec.js","webpack://ncfx-website/./node_modules/ramda/es/defaultTo.js","webpack://ncfx-website/./node_modules/ramda/es/descend.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_Set.js","webpack://ncfx-website/./node_modules/ramda/es/difference.js","webpack://ncfx-website/./node_modules/ramda/es/differenceWith.js","webpack://ncfx-website/./node_modules/ramda/es/dissoc.js","webpack://ncfx-website/./node_modules/ramda/es/remove.js","webpack://ncfx-website/./node_modules/ramda/es/update.js","webpack://ncfx-website/./node_modules/ramda/es/dissocPath.js","webpack://ncfx-website/./node_modules/ramda/es/divide.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xdrop.js","webpack://ncfx-website/./node_modules/ramda/es/drop.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xtake.js","webpack://ncfx-website/./node_modules/ramda/es/take.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_dropLast.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xdropLast.js","webpack://ncfx-website/./node_modules/ramda/es/dropLast.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_dropLastWhile.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xdropLastWhile.js","webpack://ncfx-website/./node_modules/ramda/es/dropLastWhile.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xdropRepeatsWith.js","webpack://ncfx-website/./node_modules/ramda/es/last.js","webpack://ncfx-website/./node_modules/ramda/es/dropRepeatsWith.js","webpack://ncfx-website/./node_modules/ramda/es/dropRepeats.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xdropWhile.js","webpack://ncfx-website/./node_modules/ramda/es/dropWhile.js","webpack://ncfx-website/./node_modules/ramda/es/or.js","webpack://ncfx-website/./node_modules/ramda/es/either.js","webpack://ncfx-website/./node_modules/ramda/es/empty.js","webpack://ncfx-website/./node_modules/ramda/es/takeLast.js","webpack://ncfx-website/./node_modules/ramda/es/endsWith.js","webpack://ncfx-website/./node_modules/ramda/es/eqBy.js","webpack://ncfx-website/./node_modules/ramda/es/eqProps.js","webpack://ncfx-website/./node_modules/ramda/es/evolve.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xfind.js","webpack://ncfx-website/./node_modules/ramda/es/find.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xfindIndex.js","webpack://ncfx-website/./node_modules/ramda/es/findIndex.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xfindLast.js","webpack://ncfx-website/./node_modules/ramda/es/findLast.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xfindLastIndex.js","webpack://ncfx-website/./node_modules/ramda/es/findLastIndex.js","webpack://ncfx-website/./node_modules/ramda/es/flatten.js","webpack://ncfx-website/./node_modules/ramda/es/flip.js","webpack://ncfx-website/./node_modules/ramda/es/forEach.js","webpack://ncfx-website/./node_modules/ramda/es/forEachObjIndexed.js","webpack://ncfx-website/./node_modules/ramda/es/fromPairs.js","webpack://ncfx-website/./node_modules/ramda/es/groupBy.js","webpack://ncfx-website/./node_modules/ramda/es/groupWith.js","webpack://ncfx-website/./node_modules/ramda/es/gt.js","webpack://ncfx-website/./node_modules/ramda/es/gte.js","webpack://ncfx-website/./node_modules/ramda/es/hasPath.js","webpack://ncfx-website/./node_modules/ramda/es/has.js","webpack://ncfx-website/./node_modules/ramda/es/hasIn.js","webpack://ncfx-website/./node_modules/ramda/es/identical.js","webpack://ncfx-website/./node_modules/ramda/es/ifElse.js","webpack://ncfx-website/./node_modules/ramda/es/inc.js","webpack://ncfx-website/./node_modules/ramda/es/includes.js","webpack://ncfx-website/./node_modules/ramda/es/indexBy.js","webpack://ncfx-website/./node_modules/ramda/es/indexOf.js","webpack://ncfx-website/./node_modules/ramda/es/init.js","webpack://ncfx-website/./node_modules/ramda/es/innerJoin.js","webpack://ncfx-website/./node_modules/ramda/es/insert.js","webpack://ncfx-website/./node_modules/ramda/es/insertAll.js","webpack://ncfx-website/./node_modules/ramda/es/uniqBy.js","webpack://ncfx-website/./node_modules/ramda/es/uniq.js","webpack://ncfx-website/./node_modules/ramda/es/intersection.js","webpack://ncfx-website/./node_modules/ramda/es/intersperse.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_objectAssign.js","webpack://ncfx-website/./node_modules/ramda/es/objOf.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_stepCat.js","webpack://ncfx-website/./node_modules/ramda/es/into.js","webpack://ncfx-website/./node_modules/ramda/es/invert.js","webpack://ncfx-website/./node_modules/ramda/es/invertObj.js","webpack://ncfx-website/./node_modules/ramda/es/invoker.js","webpack://ncfx-website/./node_modules/ramda/es/is.js","webpack://ncfx-website/./node_modules/ramda/es/isEmpty.js","webpack://ncfx-website/./node_modules/ramda/es/join.js","webpack://ncfx-website/./node_modules/ramda/es/juxt.js","webpack://ncfx-website/./node_modules/ramda/es/keysIn.js","webpack://ncfx-website/./node_modules/ramda/es/lastIndexOf.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_isNumber.js","webpack://ncfx-website/./node_modules/ramda/es/length.js","webpack://ncfx-website/./node_modules/ramda/es/lens.js","webpack://ncfx-website/./node_modules/ramda/es/lensIndex.js","webpack://ncfx-website/./node_modules/ramda/es/lensPath.js","webpack://ncfx-website/./node_modules/ramda/es/lensProp.js","webpack://ncfx-website/./node_modules/ramda/es/lt.js","webpack://ncfx-website/./node_modules/ramda/es/lte.js","webpack://ncfx-website/./node_modules/ramda/es/mapAccum.js","webpack://ncfx-website/./node_modules/ramda/es/mapAccumRight.js","webpack://ncfx-website/./node_modules/ramda/es/mapObjIndexed.js","webpack://ncfx-website/./node_modules/ramda/es/match.js","webpack://ncfx-website/./node_modules/ramda/es/mathMod.js","webpack://ncfx-website/./node_modules/ramda/es/maxBy.js","webpack://ncfx-website/./node_modules/ramda/es/sum.js","webpack://ncfx-website/./node_modules/ramda/es/mean.js","webpack://ncfx-website/./node_modules/ramda/es/median.js","webpack://ncfx-website/./node_modules/ramda/es/memoizeWith.js","webpack://ncfx-website/./node_modules/ramda/es/merge.js","webpack://ncfx-website/./node_modules/ramda/es/mergeAll.js","webpack://ncfx-website/./node_modules/ramda/es/mergeWithKey.js","webpack://ncfx-website/./node_modules/ramda/es/mergeDeepWithKey.js","webpack://ncfx-website/./node_modules/ramda/es/mergeDeepLeft.js","webpack://ncfx-website/./node_modules/ramda/es/mergeDeepRight.js","webpack://ncfx-website/./node_modules/ramda/es/mergeDeepWith.js","webpack://ncfx-website/./node_modules/ramda/es/mergeLeft.js","webpack://ncfx-website/./node_modules/ramda/es/mergeRight.js","webpack://ncfx-website/./node_modules/ramda/es/mergeWith.js","webpack://ncfx-website/./node_modules/ramda/es/min.js","webpack://ncfx-website/./node_modules/ramda/es/minBy.js","webpack://ncfx-website/./node_modules/ramda/es/modulo.js","webpack://ncfx-website/./node_modules/ramda/es/move.js","webpack://ncfx-website/./node_modules/ramda/es/multiply.js","webpack://ncfx-website/./node_modules/ramda/es/negate.js","webpack://ncfx-website/./node_modules/ramda/es/none.js","webpack://ncfx-website/./node_modules/ramda/es/nthArg.js","webpack://ncfx-website/./node_modules/ramda/es/o.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_of.js","webpack://ncfx-website/./node_modules/ramda/es/of.js","webpack://ncfx-website/./node_modules/ramda/es/omit.js","webpack://ncfx-website/./node_modules/ramda/es/once.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_assertPromise.js","webpack://ncfx-website/./node_modules/ramda/es/otherwise.js","webpack://ncfx-website/./node_modules/ramda/es/over.js","webpack://ncfx-website/./node_modules/ramda/es/pair.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_createPartialApplicator.js","webpack://ncfx-website/./node_modules/ramda/es/partial.js","webpack://ncfx-website/./node_modules/ramda/es/partialRight.js","webpack://ncfx-website/./node_modules/ramda/es/partition.js","webpack://ncfx-website/./node_modules/ramda/es/pathEq.js","webpack://ncfx-website/./node_modules/ramda/es/pathOr.js","webpack://ncfx-website/./node_modules/ramda/es/pathSatisfies.js","webpack://ncfx-website/./node_modules/ramda/es/pick.js","webpack://ncfx-website/./node_modules/ramda/es/pickAll.js","webpack://ncfx-website/./node_modules/ramda/es/pickBy.js","webpack://ncfx-website/./node_modules/ramda/es/pipeK.js","webpack://ncfx-website/./node_modules/ramda/es/prepend.js","webpack://ncfx-website/./node_modules/ramda/es/product.js","webpack://ncfx-website/./node_modules/ramda/es/useWith.js","webpack://ncfx-website/./node_modules/ramda/es/project.js","webpack://ncfx-website/./node_modules/ramda/es/propEq.js","webpack://ncfx-website/./node_modules/ramda/es/propIs.js","webpack://ncfx-website/./node_modules/ramda/es/propOr.js","webpack://ncfx-website/./node_modules/ramda/es/propSatisfies.js","webpack://ncfx-website/./node_modules/ramda/es/props.js","webpack://ncfx-website/./node_modules/ramda/es/range.js","webpack://ncfx-website/./node_modules/ramda/es/reduceRight.js","webpack://ncfx-website/./node_modules/ramda/es/reduceWhile.js","webpack://ncfx-website/./node_modules/ramda/es/reduced.js","webpack://ncfx-website/./node_modules/ramda/es/times.js","webpack://ncfx-website/./node_modules/ramda/es/repeat.js","webpack://ncfx-website/./node_modules/ramda/es/replace.js","webpack://ncfx-website/./node_modules/ramda/es/scan.js","webpack://ncfx-website/./node_modules/ramda/es/sequence.js","webpack://ncfx-website/./node_modules/ramda/es/set.js","webpack://ncfx-website/./node_modules/ramda/es/sort.js","webpack://ncfx-website/./node_modules/ramda/es/sortBy.js","webpack://ncfx-website/./node_modules/ramda/es/sortWith.js","webpack://ncfx-website/./node_modules/ramda/es/split.js","webpack://ncfx-website/./node_modules/ramda/es/splitAt.js","webpack://ncfx-website/./node_modules/ramda/es/splitEvery.js","webpack://ncfx-website/./node_modules/ramda/es/splitWhen.js","webpack://ncfx-website/./node_modules/ramda/es/startsWith.js","webpack://ncfx-website/./node_modules/ramda/es/subtract.js","webpack://ncfx-website/./node_modules/ramda/es/symmetricDifference.js","webpack://ncfx-website/./node_modules/ramda/es/symmetricDifferenceWith.js","webpack://ncfx-website/./node_modules/ramda/es/takeLastWhile.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xtakeWhile.js","webpack://ncfx-website/./node_modules/ramda/es/takeWhile.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_xtap.js","webpack://ncfx-website/./node_modules/ramda/es/tap.js","webpack://ncfx-website/./node_modules/ramda/es/test.js","webpack://ncfx-website/./node_modules/ramda/es/internal/_isRegExp.js","webpack://ncfx-website/./node_modules/ramda/es/andThen.js","webpack://ncfx-website/./node_modules/ramda/es/toLower.js","webpack://ncfx-website/./node_modules/ramda/es/toPairs.js","webpack://ncfx-website/./node_modules/ramda/es/toPairsIn.js","webpack://ncfx-website/./node_modules/ramda/es/toUpper.js","webpack://ncfx-website/./node_modules/ramda/es/transduce.js","webpack://ncfx-website/./node_modules/ramda/es/transpose.js","webpack://ncfx-website/./node_modules/ramda/es/traverse.js","webpack://ncfx-website/./node_modules/ramda/es/trim.js","webpack://ncfx-website/./node_modules/ramda/es/tryCatch.js","webpack://ncfx-website/./node_modules/ramda/es/unapply.js","webpack://ncfx-website/./node_modules/ramda/es/unary.js","webpack://ncfx-website/./node_modules/ramda/es/uncurryN.js","webpack://ncfx-website/./node_modules/ramda/es/unfold.js","webpack://ncfx-website/./node_modules/ramda/es/union.js","webpack://ncfx-website/./node_modules/ramda/es/uniqWith.js","webpack://ncfx-website/./node_modules/ramda/es/unionWith.js","webpack://ncfx-website/./node_modules/ramda/es/unless.js","webpack://ncfx-website/./node_modules/ramda/es/unnest.js","webpack://ncfx-website/./node_modules/ramda/es/until.js","webpack://ncfx-website/./node_modules/ramda/es/valuesIn.js","webpack://ncfx-website/./node_modules/ramda/es/view.js","webpack://ncfx-website/./node_modules/ramda/es/when.js","webpack://ncfx-website/./node_modules/ramda/es/where.js","webpack://ncfx-website/./node_modules/ramda/es/whereEq.js","webpack://ncfx-website/./node_modules/ramda/es/without.js","webpack://ncfx-website/./node_modules/ramda/es/xor.js","webpack://ncfx-website/./node_modules/ramda/es/xprod.js","webpack://ncfx-website/./node_modules/ramda/es/zip.js","webpack://ncfx-website/./node_modules/ramda/es/zipObj.js","webpack://ncfx-website/./node_modules/ramda/es/zipWith.js","webpack://ncfx-website/./node_modules/ramda/es/thunkify.js","webpack://ncfx-website/./node_modules/react-fast-compare/index.js","webpack://ncfx-website/./node_modules/react-helmet/es/Helmet.js","webpack://ncfx-website/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://ncfx-website/./node_modules/react-server-dom-webpack/index.js","webpack://ncfx-website/./node_modules/react-side-effect/lib/index.js","webpack://ncfx-website/./node_modules/tslib/tslib.es6.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/extends.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://ncfx-website/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://ncfx-website/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://ncfx-website/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://ncfx-website/./node_modules/@prismicio/helpers/dist/documentToLinkField.js","webpack://ncfx-website/./node_modules/@prismicio/helpers/dist/asLink.js","webpack://ncfx-website/./node_modules/@prismicio/richtext/dist/asText.js","webpack://ncfx-website/./node_modules/@prismicio/helpers/dist/asText.js","webpack://ncfx-website/./node_modules/@prismicio/richtext/dist/composeSerializers.js","webpack://ncfx-website/./node_modules/@prismicio/richtext/dist/asTree.js","webpack://ncfx-website/./node_modules/@prismicio/richtext/dist/serialize.js","webpack://ncfx-website/./node_modules/@prismicio/richtext/dist/types.js","webpack://ncfx-website/./node_modules/@prismicio/richtext/dist/wrapMapSerializer.js","webpack://ncfx-website/./node_modules/@prismicio/types/dist/value/link.js","webpack://ncfx-website/./node_modules/@prismicio/types/dist/value/richText.js","webpack://ncfx-website/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://ncfx-website/./node_modules/gatsby-script/dist/index.modern.mjs","webpack://ncfx-website/./node_modules/js-base64/base64.mjs"],"sourcesContent":["var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function\n /*: EmotionCache */\ncreateCache(options\n/*: Options */\n) {\n var key = options.key;\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node\n /*: HTMLStyleElement */\n ) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n /* : Node */\n\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node\n /*: HTMLStyleElement */\n ) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n /*: (\n selector: string,\n serialized: SerializedStyles,\n sheet: StyleSheet,\n shouldCache: boolean\n ) => string | void */\n\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function\n /*: void */\n insert(selector\n /*: string */\n , serialized\n /*: SerializedStyles */\n , sheet\n /*: StyleSheet */\n , shouldCache\n /*: boolean */\n ) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache\n /*: EmotionCache */\n = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\n/* import { type EmotionCache } from '@emotion/utils' */\nvar EmotionCacheContext\n/*: React.Context */\n= /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache()\n/*: EmotionCache | null*/\n{\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache\n/* > */\n(func\n/*: (props: Props, cache: EmotionCache, ref: Ref) => React.Node */\n)\n/*: React.AbstractComponent */\n{\n return /*#__PURE__*/forwardRef(function (props\n /*: Props */\n , ref\n /*: Ref */\n ) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme\n/*: Object */\n, theme\n/*: Object | (Object => Object) */\n) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\n/*\ntype ThemeProviderProps = {\n theme: Object | (Object => Object),\n children: React.Node\n}\n*/\n\nvar ThemeProvider = function ThemeProvider(props\n/*: ThemeProviderProps */\n) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme\n/* */\n(Component\n/*: React.AbstractComponent */\n)\n/*: React.AbstractComponent<$Diff> */\n{\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n };\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n\n var newProps\n /*: any */\n = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(\n/* */\nfunction (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key) && key !== 'css' && key !== typePropName && (!isDevelopment )) {\n newProps[key] = props[key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isDevelopment } from './emotion-element-5486c51c.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-5486c51c.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar jsx\n/*: typeof React.createElement */\n= function jsx\n/*: typeof React.createElement */\n(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n var args = arguments;\n\n if (props == null || !hasOwn.call(props, 'css')) {\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n }\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global\n/*: React.AbstractComponent<\nGlobalProps\n> */\n= /* #__PURE__ */withEmotionCache(function (props\n/*: GlobalProps */\n, cache) {\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false;\n var node\n /*: HTMLStyleElement | null*/\n = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\n/* import type { Interpolation, SerializedStyles } from '@emotion/utils' */\n\nfunction css()\n/*: SerializedStyles */\n{\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\n/*\ntype Keyframes = {|\n name: string,\n styles: string,\n anim: 1,\n toString: () => string\n|} & string\n*/\n\nvar keyframes = function\n /*: Keyframes */\nkeyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name;\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\n/*\ntype ClassNameArg =\n | string\n | boolean\n | { [key: string]: boolean }\n | Array\n | null\n | void\n*/\n\nvar classnames = function\n /*: string */\nclassnames(args\n/*: Array */\n) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered\n/*: Object */\n, css\n/*: (...args: Array) => string */\n, className\n/*: string */\n) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n/*\ntype Props = {\n children: ({\n css: (...args: any) => string,\n cx: (...args: Array) => string,\n theme: Object\n }) => React.Node\n} */\n\n\nvar ClassNames\n/*: React.AbstractComponent*/\n= /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && isDevelopment) {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && isDevelopment) {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = serializedStyles.styles + \";\";\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n }\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","const n = /[^\\0-\\x7E]/;\nconst t = /[\\x2E\\u3002\\uFF0E\\uFF61]/g;\nconst o = { overflow: \"Overflow Error\", \"not-basic\": \"Illegal Input\", \"invalid-input\": \"Invalid Input\" };\nconst e = Math.floor;\nconst r = String.fromCharCode;\nfunction s(n2) {\n throw new RangeError(o[n2]);\n}\nconst c = function(n2, t2) {\n return n2 + 22 + 75 * (n2 < 26) - ((t2 != 0) << 5);\n};\nconst u = function(n2, t2, o2) {\n let r2 = 0;\n for (n2 = o2 ? e(n2 / 700) : n2 >> 1, n2 += e(n2 / t2); n2 > 455; r2 += 36) {\n n2 = e(n2 / 35);\n }\n return e(r2 + 36 * n2 / (n2 + 38));\n};\nfunction toASCII(o2) {\n return function(n2, o3) {\n const e2 = n2.split(\"@\");\n let r2 = \"\";\n e2.length > 1 && (r2 = e2[0] + \"@\", n2 = e2[1]);\n const s2 = function(n3, t2) {\n const o4 = [];\n let e3 = n3.length;\n for (; e3--; ) {\n o4[e3] = t2(n3[e3]);\n }\n return o4;\n }((n2 = n2.replace(t, \".\")).split(\".\"), o3).join(\".\");\n return r2 + s2;\n }(o2, function(t2) {\n return n.test(t2) ? \"xn--\" + function(n2) {\n const t3 = [];\n const o3 = (n2 = function(n3) {\n const t4 = [];\n let o4 = 0;\n const e2 = n3.length;\n for (; o4 < e2; ) {\n const r2 = n3.charCodeAt(o4++);\n if (r2 >= 55296 && r2 <= 56319 && o4 < e2) {\n const e3 = n3.charCodeAt(o4++);\n (64512 & e3) == 56320 ? t4.push(((1023 & r2) << 10) + (1023 & e3) + 65536) : (t4.push(r2), o4--);\n } else {\n t4.push(r2);\n }\n }\n return t4;\n }(n2)).length;\n let f = 128;\n let i = 0;\n let l = 72;\n for (const o4 of n2) {\n o4 < 128 && t3.push(r(o4));\n }\n const h = t3.length;\n let p = h;\n for (h && t3.push(\"-\"); p < o3; ) {\n let o4 = 2147483647;\n for (const t4 of n2) {\n t4 >= f && t4 < o4 && (o4 = t4);\n }\n const a = p + 1;\n o4 - f > e((2147483647 - i) / a) && s(\"overflow\"), i += (o4 - f) * a, f = o4;\n for (const o5 of n2) {\n if (o5 < f && ++i > 2147483647 && s(\"overflow\"), o5 == f) {\n let n3 = i;\n for (let o6 = 36; ; o6 += 36) {\n const s2 = o6 <= l ? 1 : o6 >= l + 26 ? 26 : o6 - l;\n if (n3 < s2) {\n break;\n }\n const u2 = n3 - s2;\n const f2 = 36 - s2;\n t3.push(r(c(s2 + u2 % f2, 0))), n3 = e(u2 / f2);\n }\n t3.push(r(c(n3, 0))), l = u(i, a, p == h), i = 0, ++p;\n }\n }\n ++i, ++f;\n }\n return t3.join(\"\");\n }(t2) : t2;\n });\n}\n\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\nconst ENC_BRACKET_OPEN_RE = /%5B/gi;\nconst ENC_BRACKET_CLOSE_RE = /%5D/gi;\nconst ENC_CARET_RE = /%5E/gi;\nconst ENC_BACKTICK_RE = /%60/gi;\nconst ENC_CURLY_OPEN_RE = /%7B/gi;\nconst ENC_PIPE_RE = /%7C/gi;\nconst ENC_CURLY_CLOSE_RE = /%7D/gi;\nconst ENC_SPACE_RE = /%20/gi;\nconst ENC_SLASH_RE = /%2F/gi;\nconst ENC_ENC_SLASH_RE = /%252F/gi;\nfunction encode(text) {\n return encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\").replace(ENC_BRACKET_OPEN_RE, \"[\").replace(ENC_BRACKET_CLOSE_RE, \"]\");\n}\nfunction encodeHash(text) {\n return encode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\nfunction encodeQueryValue(text) {\n return encode(text).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\nfunction encodeQueryKey(text) {\n return encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\nfunction encodePath(text) {\n return encode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\").replace(ENC_ENC_SLASH_RE, \"%2F\").replace(AMPERSAND_RE, \"%26\").replace(PLUS_RE, \"%2B\");\n}\nfunction encodeParam(text) {\n return encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text = \"\") {\n try {\n return decodeURIComponent(\"\" + text);\n } catch (_err) {\n return \"\" + text;\n }\n}\nfunction decodePath(text) {\n return decode(text.replace(ENC_SLASH_RE, \"%252F\"));\n}\nfunction decodeQueryValue(text) {\n return decode(text.replace(PLUS_RE, \" \"));\n}\nfunction encodeHost(name = \"\") {\n return toASCII(name);\n}\n\nfunction parseQuery(paramsStr = \"\") {\n const obj = {};\n if (paramsStr[0] === \"?\") {\n paramsStr = paramsStr.substr(1);\n }\n for (const param of paramsStr.split(\"&\")) {\n const s = param.match(/([^=]+)=?(.*)/) || [];\n if (s.length < 2) {\n continue;\n }\n const key = decode(s[1]);\n if (key === \"__proto__\" || key === \"constructor\") {\n continue;\n }\n const value = decodeQueryValue(s[2] || \"\");\n if (obj[key]) {\n if (Array.isArray(obj[key])) {\n obj[key].push(value);\n } else {\n obj[key] = [obj[key], value];\n }\n } else {\n obj[key] = value;\n }\n }\n return obj;\n}\nfunction encodeQueryItem(key, val) {\n if (!val) {\n return encodeQueryKey(key);\n }\n if (Array.isArray(val)) {\n return val.map((_val) => `${encodeQueryKey(key)}=${encodeQueryValue(_val)}`).join(\"&\");\n }\n return `${encodeQueryKey(key)}=${encodeQueryValue(val)}`;\n}\nfunction stringifyQuery(query) {\n return Object.keys(query).map((k) => encodeQueryItem(k, query[k])).join(\"&\");\n}\n\nclass $URL {\n constructor(input = \"\") {\n this.query = {};\n if (typeof input !== \"string\") {\n throw new TypeError(`URL input should be string received ${typeof input} (${input})`);\n }\n const parsed = parseURL(input);\n this.protocol = decode(parsed.protocol);\n this.host = decode(parsed.host);\n this.auth = decode(parsed.auth);\n this.pathname = decodePath(parsed.pathname);\n this.query = parseQuery(parsed.search);\n this.hash = decode(parsed.hash);\n }\n get hostname() {\n return parseHost(this.host).hostname;\n }\n get port() {\n return parseHost(this.host).port || \"\";\n }\n get username() {\n return parseAuth(this.auth).username;\n }\n get password() {\n return parseAuth(this.auth).password || \"\";\n }\n get hasProtocol() {\n return this.protocol.length;\n }\n get isAbsolute() {\n return this.hasProtocol || this.pathname[0] === \"/\";\n }\n get search() {\n const q = stringifyQuery(this.query);\n return q.length ? \"?\" + q : \"\";\n }\n get searchParams() {\n const p = new URLSearchParams();\n for (const name in this.query) {\n const value = this.query[name];\n if (Array.isArray(value)) {\n value.forEach((v) => p.append(name, v));\n } else {\n p.append(name, value || \"\");\n }\n }\n return p;\n }\n get origin() {\n return (this.protocol ? this.protocol + \"//\" : \"\") + encodeHost(this.host);\n }\n get fullpath() {\n return encodePath(this.pathname) + this.search + encodeHash(this.hash);\n }\n get encodedAuth() {\n if (!this.auth) {\n return \"\";\n }\n const { username, password } = parseAuth(this.auth);\n return encodeURIComponent(username) + (password ? \":\" + encodeURIComponent(password) : \"\");\n }\n get href() {\n const auth = this.encodedAuth;\n const originWithAuth = (this.protocol ? this.protocol + \"//\" : \"\") + (auth ? auth + \"@\" : \"\") + encodeHost(this.host);\n return this.hasProtocol && this.isAbsolute ? originWithAuth + this.fullpath : this.fullpath;\n }\n append(url) {\n if (url.hasProtocol) {\n throw new Error(\"Cannot append a URL with protocol\");\n }\n Object.assign(this.query, url.query);\n if (url.pathname) {\n this.pathname = withTrailingSlash(this.pathname) + withoutLeadingSlash(url.pathname);\n }\n if (url.hash) {\n this.hash = url.hash;\n }\n }\n toJSON() {\n return this.href;\n }\n toString() {\n return this.href;\n }\n}\n\nfunction isRelative(inputStr) {\n return [\"./\", \"../\"].some((str) => inputStr.startsWith(str));\n}\nfunction hasProtocol(inputStr, acceptProtocolRelative = false) {\n return /^\\w+:\\/\\/.+/.test(inputStr) || acceptProtocolRelative && /^\\/\\/[^/]+/.test(inputStr);\n}\nconst TRAILING_SLASH_RE = /\\/$|\\/\\?/;\nfunction hasTrailingSlash(input = \"\", queryParams = false) {\n if (!queryParams) {\n return input.endsWith(\"/\");\n }\n return TRAILING_SLASH_RE.test(input);\n}\nfunction withoutTrailingSlash(input = \"\", queryParams = false) {\n if (!queryParams) {\n return (hasTrailingSlash(input) ? input.slice(0, -1) : input) || \"/\";\n }\n if (!hasTrailingSlash(input, true)) {\n return input || \"/\";\n }\n const [s0, ...s] = input.split(\"?\");\n return (s0.slice(0, -1) || \"/\") + (s.length ? `?${s.join(\"?\")}` : \"\");\n}\nfunction withTrailingSlash(input = \"\", queryParams = false) {\n if (!queryParams) {\n return input.endsWith(\"/\") ? input : input + \"/\";\n }\n if (hasTrailingSlash(input, true)) {\n return input || \"/\";\n }\n const [s0, ...s] = input.split(\"?\");\n return s0 + \"/\" + (s.length ? `?${s.join(\"?\")}` : \"\");\n}\nfunction hasLeadingSlash(input = \"\") {\n return input.startsWith(\"/\");\n}\nfunction withoutLeadingSlash(input = \"\") {\n return (hasLeadingSlash(input) ? input.substr(1) : input) || \"/\";\n}\nfunction withLeadingSlash(input = \"\") {\n return hasLeadingSlash(input) ? input : \"/\" + input;\n}\nfunction cleanDoubleSlashes(input = \"\") {\n return input.split(\"://\").map((str) => str.replace(/\\/{2,}/g, \"/\")).join(\"://\");\n}\nfunction withBase(input, base) {\n if (isEmptyURL(base)) {\n return input;\n }\n const _base = withoutTrailingSlash(base);\n if (input.startsWith(_base)) {\n return input;\n }\n return joinURL(_base, input);\n}\nfunction withoutBase(input, base) {\n if (isEmptyURL(base)) {\n return input;\n }\n const _base = withoutTrailingSlash(base);\n if (input.startsWith(_base)) {\n return input.substr(_base.length) || \"/\";\n }\n return input;\n}\nfunction withQuery(input, query) {\n const parsed = parseURL(input);\n const mergedQuery = { ...parseQuery(parsed.search), ...query };\n parsed.search = stringifyQuery(mergedQuery);\n return stringifyParsedURL(parsed);\n}\nfunction getQuery(input) {\n return parseQuery(parseURL(input).search);\n}\nfunction isEmptyURL(url) {\n return !url || url === \"/\";\n}\nfunction isNonEmptyURL(url) {\n return url && url !== \"/\";\n}\nfunction joinURL(base, ...input) {\n let url = base || \"\";\n for (const i of input.filter(isNonEmptyURL)) {\n url = url ? withTrailingSlash(url) + withoutLeadingSlash(i) : i;\n }\n return url;\n}\nfunction createURL(input) {\n return new $URL(input);\n}\nfunction normalizeURL(input) {\n return createURL(input).toString();\n}\nfunction resolveURL(base, ...input) {\n const url = createURL(base);\n for (const i of input.filter(isNonEmptyURL)) {\n url.append(createURL(i));\n }\n return url.toString();\n}\nfunction isSamePath(p1, p2) {\n return decode(withoutTrailingSlash(p1)) === decode(withoutTrailingSlash(p2));\n}\n\nfunction parseURL(input = \"\", defaultProto) {\n if (!hasProtocol(input, true)) {\n return defaultProto ? parseURL(defaultProto + input) : parsePath(input);\n }\n const [protocol = \"\", auth, hostAndPath] = (input.replace(/\\\\/g, \"/\").match(/([^:/]+:)?\\/\\/([^/@]+@)?(.*)/) || []).splice(1);\n const [host = \"\", path = \"\"] = (hostAndPath.match(/([^/?#]*)(.*)?/) || []).splice(1);\n const { pathname, search, hash } = parsePath(path);\n return {\n protocol,\n auth: auth ? auth.substr(0, auth.length - 1) : \"\",\n host,\n pathname,\n search,\n hash\n };\n}\nfunction parsePath(input = \"\") {\n const [pathname = \"\", search = \"\", hash = \"\"] = (input.match(/([^#?]*)(\\?[^#]*)?(#.*)?/) || []).splice(1);\n return {\n pathname,\n search,\n hash\n };\n}\nfunction parseAuth(input = \"\") {\n const [username, password] = input.split(\":\");\n return {\n username: decode(username),\n password: decode(password)\n };\n}\nfunction parseHost(input = \"\") {\n const [hostname, port] = (input.match(/([^/]*)(:0-9+)?/) || []).splice(1);\n return {\n hostname: decode(hostname),\n port\n };\n}\nfunction stringifyParsedURL(parsed) {\n const fullpath = parsed.pathname + (parsed.search ? (parsed.search.startsWith(\"?\") ? \"\" : \"?\") + parsed.search : \"\") + parsed.hash;\n if (!parsed.protocol) {\n return fullpath;\n }\n return parsed.protocol + \"//\" + (parsed.auth ? parsed.auth + \"@\" : \"\") + parsed.host + fullpath;\n}\n\nexport { $URL, cleanDoubleSlashes, createURL, decode, decodePath, decodeQueryValue, encode, encodeHash, encodeHost, encodeParam, encodePath, encodeQueryItem, encodeQueryKey, encodeQueryValue, getQuery, hasLeadingSlash, hasProtocol, hasTrailingSlash, isEmptyURL, isNonEmptyURL, isRelative, isSamePath, joinURL, normalizeURL, parseAuth, parseHost, parsePath, parseQuery, parseURL, resolveURL, stringifyParsedURL, stringifyQuery, withBase, withLeadingSlash, withQuery, withTrailingSlash, withoutBase, withoutLeadingSlash, withoutTrailingSlash };\n","import { Base64 } from 'js-base64';\nimport md5 from 'md5';\nimport { hasProtocol, parseURL, getQuery } from 'ufo';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// package version used in the ix-lib parameter\nvar VERSION = '3.6.0'; // regex pattern used to determine if a domain is valid\n\nvar DOMAIN_REGEX = /^(?:[a-z\\d\\-_]{1,62}\\.){0,125}(?:[a-z\\d](?:\\-(?=\\-*[a-z\\d])|[a-z]|\\d){0,62}\\.)[a-z\\d]{1,63}$/i; // minimum generated srcset width\n\nvar MIN_SRCSET_WIDTH = 100; // maximum generated srcset width\n\nvar MAX_SRCSET_WIDTH = 8192; // default tolerable percent difference between srcset pair widths\n\nvar DEFAULT_SRCSET_WIDTH_TOLERANCE = 0.08; // default quality parameter values mapped by each dpr srcset entry\n\nvar DPR_QUALITIES = {\n 1: 75,\n 2: 50,\n 3: 35,\n 4: 23,\n 5: 20\n};\nvar DEFAULT_DPR = [1, 2, 3, 4, 5];\nvar DEFAULT_OPTIONS = {\n domain: null,\n useHTTPS: true,\n includeLibraryParam: true,\n urlPrefix: 'https://',\n secureURLToken: null\n};\n\n/**\n * `extractUrl()` extracts URL components from a source URL string.\n * It does this by matching the URL against regular expressions. The irrelevant\n * (entire URL) matches are removed and the rest stored as their corresponding\n * URL components.\n *\n * `url` can be a partial, full URL, or full proxy URL. `useHttps` boolean\n * defaults to false.\n *\n * @returns {Object} `{ protocol, auth, host, pathname, search, hash }`\n * extracted from the URL.\n */\n\nfunction extractUrl(_ref) {\n var _ref$url = _ref.url,\n url = _ref$url === void 0 ? '' : _ref$url,\n _ref$useHttps = _ref.useHttps,\n useHttps = _ref$useHttps === void 0 ? false : _ref$useHttps;\n var defaultProto = useHttps ? 'https://' : 'http://';\n\n if (!hasProtocol(url, true)) {\n return extractUrl({\n url: defaultProto + url\n });\n }\n /**\n * Regex are hard to parse. Leaving this breakdown here for reference.\n * - `protocol`: ([^:/]+:)? - all not `:` or `/` & preceded by `:`, 0-1 times\n * - `auth`: ([^/@]+@)? - all not `/` or `@` & preceded by `@`, 0-1 times\n * - `domainAndPath`: (.*) /) - all except line breaks\n * - `domain`: `([^/]*)` - all before a `/` token\n */\n\n\n return parseURL(url);\n}\n\nfunction validateAndDestructureOptions(options) {\n var widthTolerance;\n\n if (options.widthTolerance !== undefined) {\n validateWidthTolerance(options.widthTolerance);\n widthTolerance = options.widthTolerance;\n } else {\n widthTolerance = DEFAULT_SRCSET_WIDTH_TOLERANCE;\n }\n\n var minWidth = options.minWidth === undefined ? MIN_SRCSET_WIDTH : options.minWidth;\n var maxWidth = options.maxWidth === undefined ? MAX_SRCSET_WIDTH : options.maxWidth; // Validate the range unless we're using defaults for both\n\n if (minWidth != MIN_SRCSET_WIDTH || maxWidth != MAX_SRCSET_WIDTH) {\n validateRange(minWidth, maxWidth);\n }\n\n return [widthTolerance, minWidth, maxWidth];\n}\nfunction validateRange(min, max) {\n if (!(Number.isInteger(min) && Number.isInteger(max)) || min <= 0 || max <= 0 || min > max) {\n throw new Error(\"The min and max srcset widths can only be passed positive Number values, and min must be less than max. Found min: \".concat(min, \" and max: \").concat(max, \".\"));\n }\n}\nfunction validateWidthTolerance(widthTolerance) {\n if (typeof widthTolerance != 'number' || widthTolerance < 0.01) {\n throw new Error('The srcset widthTolerance must be a number greater than or equal to 0.01');\n }\n}\nfunction validateWidths(customWidths) {\n if (!Array.isArray(customWidths) || !customWidths.length) {\n throw new Error('The widths argument can only be passed a valid non-empty array of integers');\n } else {\n var allPositiveIntegers = customWidths.every(function (width) {\n return Number.isInteger(width) && width > 0;\n });\n\n if (!allPositiveIntegers) {\n throw new Error('A custom widths argument can only contain positive integer values');\n }\n }\n}\nfunction validateVariableQuality(disableVariableQuality) {\n if (typeof disableVariableQuality != 'boolean') {\n throw new Error('The disableVariableQuality argument can only be passed a Boolean value');\n }\n}\nfunction validateDevicePixelRatios(devicePixelRatios) {\n if (!Array.isArray(devicePixelRatios) || !devicePixelRatios.length) {\n throw new Error('The devicePixelRatios argument can only be passed a valid non-empty array of integers');\n } else {\n var allValidDPR = devicePixelRatios.every(function (dpr) {\n return typeof dpr === 'number' && dpr >= 1 && dpr <= 5;\n });\n\n if (!allValidDPR) {\n throw new Error('The devicePixelRatios argument can only contain positive integer values between 1 and 5');\n }\n }\n}\nfunction validateVariableQualities(variableQualities) {\n if (_typeof(variableQualities) !== 'object') {\n throw new Error('The variableQualities argument can only be an object');\n }\n}\n\nvar ImgixClient = /*#__PURE__*/function () {\n function ImgixClient() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, ImgixClient);\n\n this.settings = _objectSpread2(_objectSpread2({}, DEFAULT_OPTIONS), opts); // a cache to store memoized srcset width-pairs\n\n this.targetWidthsCache = {};\n\n if (typeof this.settings.domain != 'string') {\n throw new Error('ImgixClient must be passed a valid string domain');\n }\n\n if (DOMAIN_REGEX.exec(this.settings.domain) == null) {\n throw new Error('Domain must be passed in as fully-qualified ' + 'domain name and should not include a protocol or any path ' + 'element, i.e. \"example.imgix.net\".');\n }\n\n if (this.settings.includeLibraryParam) {\n this.settings.libraryParam = 'js-' + ImgixClient.version();\n }\n\n this.settings.urlPrefix = this.settings.useHTTPS ? 'https://' : 'http://';\n }\n\n _createClass(ImgixClient, [{\n key: \"buildURL\",\n value: function buildURL() {\n var rawPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var path = this._sanitizePath(rawPath, {\n encode: !options.disablePathEncoding\n });\n\n var finalParams = this._buildParams(params);\n\n if (!!this.settings.secureURLToken) {\n finalParams = this._signParams(path, finalParams);\n }\n\n return this.settings.urlPrefix + this.settings.domain + path + finalParams;\n }\n /**\n *`_buildURL` static method allows full URLs to be formatted for use with\n * imgix.\n *\n * - If the source URL has included parameters, they are merged with\n * the `params` passed in as an argument.\n * - URL must match `{host}/{pathname}?{query}` otherwise an error is thrown.\n *\n * @param {String} url - full source URL path string, required\n * @param {Object} params - imgix params object, optional\n * @param {Object} options - imgix client options, optional\n *\n * @returns URL string formatted to imgix specifications.\n *\n * @example\n * const client = ImgixClient\n * const params = { w: 100 }\n * const opts = { useHttps: true }\n * const src = \"sdk-test.imgix.net/amsterdam.jpg?h=100\"\n * const url = client._buildURL(src, params, opts)\n * console.log(url)\n * // => \"https://sdk-test.imgix.net/amsterdam.jpg?h=100&w=100\"\n */\n\n }, {\n key: \"_buildParams\",\n value: function _buildParams() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var queryParams = [].concat(_toConsumableArray(this.settings.libraryParam ? [\"ixlib=\".concat(this.settings.libraryParam)] : []), _toConsumableArray(Object.entries(params).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n if (value == null) {\n return prev;\n }\n\n var encodedKey = encodeURIComponent(key);\n var encodedValue = key.substr(-2) === '64' ? Base64.encodeURI(value) : encodeURIComponent(value);\n prev.push(\"\".concat(encodedKey, \"=\").concat(encodedValue));\n return prev;\n }, [])));\n return \"\".concat(queryParams.length > 0 ? '?' : '').concat(queryParams.join('&'));\n }\n }, {\n key: \"_signParams\",\n value: function _signParams(path, queryParams) {\n var signatureBase = this.settings.secureURLToken + path + queryParams;\n var signature = md5(signatureBase);\n return queryParams.length > 0 ? queryParams + '&s=' + signature : '?s=' + signature;\n }\n /**\n * \"Sanitize\" the path of the image URL.\n * Ensures that the path has a leading slash, and that the path is correctly\n * encoded. If it's a proxy path (begins with http/https), then encode the\n * whole path as a URI component, otherwise only encode specific characters.\n * @param {string} path The URL path of the image\n * @param {Object} options Sanitization options\n * @param {boolean} options.encode Whether to encode the path, default true\n * @returns {string} The sanitized path\n */\n\n }, {\n key: \"_sanitizePath\",\n value: function _sanitizePath(path) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // Strip leading slash first (we'll re-add after encoding)\n var _path = path.replace(/^\\//, '');\n\n if (!(options.encode === false)) {\n if (/^https?:\\/\\//.test(_path)) {\n // Use de/encodeURIComponent to ensure *all* characters are handled,\n // since it's being used as a path\n _path = encodeURIComponent(_path);\n } else {\n // Use de/encodeURI if we think the path is just a path,\n // so it leaves legal characters like '/' and '@' alone\n _path = encodeURI(_path).replace(/[#?:+]/g, encodeURIComponent);\n }\n }\n\n return '/' + _path;\n }\n }, {\n key: \"buildSrcSet\",\n value: function buildSrcSet(path) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var w = params.w,\n h = params.h;\n\n if (w || h) {\n return this._buildDPRSrcSet(path, params, options);\n } else {\n return this._buildSrcSetPairs(path, params, options);\n }\n }\n /**\n * _buildSrcSet static method allows full URLs to be used when generating\n * imgix formatted `srcset` string values.\n *\n * - If the source URL has included parameters, they are merged with\n * the `params` passed in as an argument.\n * - URL must match `{host}/{pathname}?{query}` otherwise an error is thrown.\n *\n * @param {String} url - full source URL path string, required\n * @param {Object} params - imgix params object, optional\n * @param {Object} srcsetModifiers - srcset modifiers, optional\n * @param {Object} clientOptions - imgix client options, optional\n * @returns imgix `srcset` for full URLs.\n */\n\n }, {\n key: \"_buildSrcSetPairs\",\n value: function _buildSrcSetPairs(path) {\n var _this = this;\n\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var _validateAndDestructu = validateAndDestructureOptions(options),\n _validateAndDestructu2 = _slicedToArray(_validateAndDestructu, 3),\n widthTolerance = _validateAndDestructu2[0],\n minWidth = _validateAndDestructu2[1],\n maxWidth = _validateAndDestructu2[2];\n\n var targetWidthValues;\n\n if (options.widths) {\n validateWidths(options.widths);\n targetWidthValues = _toConsumableArray(options.widths);\n } else {\n targetWidthValues = ImgixClient.targetWidths(minWidth, maxWidth, widthTolerance, this.targetWidthsCache);\n }\n\n var srcset = targetWidthValues.map(function (w) {\n return \"\".concat(_this.buildURL(path, _objectSpread2(_objectSpread2({}, params), {}, {\n w: w\n }), {\n disablePathEncoding: options.disablePathEncoding\n }), \" \").concat(w, \"w\");\n });\n return srcset.join(',\\n');\n }\n }, {\n key: \"_buildDPRSrcSet\",\n value: function _buildDPRSrcSet(path) {\n var _this2 = this;\n\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (options.devicePixelRatios) {\n validateDevicePixelRatios(options.devicePixelRatios);\n }\n\n var targetRatios = options.devicePixelRatios || DEFAULT_DPR;\n var disableVariableQuality = options.disableVariableQuality || false;\n\n if (!disableVariableQuality) {\n validateVariableQuality(disableVariableQuality);\n }\n\n if (options.variableQualities) {\n validateVariableQualities(options.variableQualities);\n }\n\n var qualities = _objectSpread2(_objectSpread2({}, DPR_QUALITIES), options.variableQualities);\n\n var withQuality = function withQuality(path, params, dpr) {\n return \"\".concat(_this2.buildURL(path, _objectSpread2(_objectSpread2({}, params), {}, {\n dpr: dpr,\n q: params.q || qualities[dpr] || qualities[Math.floor(dpr)]\n }), {\n disablePathEncoding: options.disablePathEncoding\n }), \" \").concat(dpr, \"x\");\n };\n\n var srcset = disableVariableQuality ? targetRatios.map(function (dpr) {\n return \"\".concat(_this2.buildURL(path, _objectSpread2(_objectSpread2({}, params), {}, {\n dpr: dpr\n }), {\n disablePathEncoding: options.disablePathEncoding\n }), \" \").concat(dpr, \"x\");\n }) : targetRatios.map(function (dpr) {\n return withQuality(path, params, dpr);\n });\n return srcset.join(',\\n');\n }\n }], [{\n key: \"version\",\n value: function version() {\n return VERSION;\n }\n }, {\n key: \"_buildURL\",\n value: function _buildURL(url) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (url == null) {\n return '';\n }\n\n var _extractUrl = extractUrl({\n url: url,\n useHTTPS: options.useHTTPS\n }),\n host = _extractUrl.host,\n pathname = _extractUrl.pathname,\n search = _extractUrl.search; // merge source URL parameters with options parameters\n\n\n var combinedParams = _objectSpread2(_objectSpread2({}, getQuery(search)), params); // throw error if no host or no pathname present\n\n\n if (!host.length || !pathname.length) {\n throw new Error('_buildURL: URL must match {host}/{pathname}?{query}');\n }\n\n var client = new ImgixClient(_objectSpread2({\n domain: host\n }, options));\n return client.buildURL(pathname, combinedParams);\n }\n }, {\n key: \"_buildSrcSet\",\n value: function _buildSrcSet(url) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var srcsetModifiers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var clientOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n if (url == null) {\n return '';\n }\n\n var _extractUrl2 = extractUrl({\n url: url,\n useHTTPS: clientOptions.useHTTPS\n }),\n host = _extractUrl2.host,\n pathname = _extractUrl2.pathname,\n search = _extractUrl2.search; // merge source URL parameters with options parameters\n\n\n var combinedParams = _objectSpread2(_objectSpread2({}, getQuery(search)), params); // throw error if no host or no pathname present\n\n\n if (!host.length || !pathname.length) {\n throw new Error('_buildOneStepURL: URL must match {host}/{pathname}?{query}');\n }\n\n var client = new ImgixClient(_objectSpread2({\n domain: host\n }, clientOptions));\n return client.buildSrcSet(pathname, combinedParams, srcsetModifiers);\n } // returns an array of width values used during srcset generation\n\n }, {\n key: \"targetWidths\",\n value: function targetWidths() {\n var minWidth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 100;\n var maxWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 8192;\n var widthTolerance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.08;\n var cache = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var minW = Math.floor(minWidth);\n var maxW = Math.floor(maxWidth);\n validateRange(minWidth, maxWidth);\n validateWidthTolerance(widthTolerance);\n var cacheKey = widthTolerance + '/' + minW + '/' + maxW; // First, check the cache.\n\n if (cacheKey in cache) {\n return cache[cacheKey];\n }\n\n if (minW === maxW) {\n return [minW];\n }\n\n var resolutions = [];\n var currentWidth = minW;\n\n while (currentWidth < maxW) {\n // While the currentWidth is less than the maxW, push the rounded\n // width onto the list of resolutions.\n resolutions.push(Math.round(currentWidth));\n currentWidth *= 1 + widthTolerance * 2;\n } // At this point, the last width in resolutions is less than the\n // currentWidth that caused the loop to terminate. This terminating\n // currentWidth is greater than or equal to the maxW. We want to\n // to stop at maxW, so we make sure our maxW is larger than the last\n // width in resolutions before pushing it (if it's equal we're done).\n\n\n if (resolutions[resolutions.length - 1] < maxW) {\n resolutions.push(maxW);\n }\n\n cache[cacheKey] = resolutions;\n return resolutions;\n }\n }]);\n\n return ImgixClient;\n}();\n\nexport { ImgixClient as default };\n","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport SystemDefaultPropsProvider, { useDefaultProps as useSystemDefaultProps } from '@mui/system/DefaultPropsProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction DefaultPropsProvider(props) {\n return /*#__PURE__*/_jsx(SystemDefaultPropsProvider, _extends({}, props));\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object.isRequired\n} : void 0;\nexport default DefaultPropsProvider;\nexport function useDefaultProps(params) {\n return useSystemDefaultProps(params);\n}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GlobalStyles as MuiGlobalStyles } from '@mui/styled-engine';\nimport useTheme from '../useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction GlobalStyles({\n styles,\n themeId,\n defaultTheme = {}\n}) {\n const upperTheme = useTheme(defaultTheme);\n const globalStyles = typeof styles === 'function' ? styles(themeId ? upperTheme[themeId] || upperTheme : upperTheme) : styles;\n return /*#__PURE__*/_jsx(MuiGlobalStyles, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n defaultTheme: PropTypes.object,\n /**\n * @ignore\n */\n styles: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.array, PropTypes.func, PropTypes.number, PropTypes.object, PropTypes.string, PropTypes.bool]),\n /**\n * @ignore\n */\n themeId: PropTypes.string\n} : void 0;\nexport default GlobalStyles;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GlobalStyles as SystemGlobalStyles } from '@mui/system';\nimport defaultTheme from '../styles/defaultTheme';\nimport THEME_ID from '../styles/identifier';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction GlobalStyles(props) {\n return /*#__PURE__*/_jsx(SystemGlobalStyles, _extends({}, props, {\n defaultTheme: defaultTheme,\n themeId: THEME_ID\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The styles you want to apply globally.\n */\n styles: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.array, PropTypes.func, PropTypes.number, PropTypes.object, PropTypes.string, PropTypes.bool])\n} : void 0;\nexport default GlobalStyles;","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"mode\", \"contrastThreshold\", \"tonalOffset\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport { darken, getContrastRatio, lighten } from '@mui/system/colorManipulator';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport purple from '../colors/purple';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport lightBlue from '../colors/lightBlue';\nimport green from '../colors/green';\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2\n } = palette,\n other = _objectWithoutPropertiesLoose(palette, _excluded);\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode);\n\n // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n return contrastText;\n }\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = _extends({}, color);\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\nThe color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });` : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n return color;\n };\n const modes = {\n dark,\n light\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n const paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: _extends({}, common),\n // prevent mutable object.\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset\n }, modes[mode]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"];\nimport deepmerge from '@mui/utils/deepmerge';\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n\n/**\n * @see @link{https://m2.material.io/design/typography/the-type-system.html}\n * @see @link{https://m2.material.io/design/typography/understanding-typography.html}\n */\nexport default function createTypography(palette, typography) {\n const _ref = typeof typography === 'function' ? typography(palette) : typography,\n {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n const coef = fontSize / 14;\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}, casing, allVariants);\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps),\n // TODO v6: Remove handling of 'inherit' variant from the theme as it is already handled in Material UI's Typography component. Also, remember to remove the associated types.\n inherit: {\n fontFamily: 'inherit',\n fontWeight: 'inherit',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n letterSpacing: 'inherit'\n }\n };\n return deepmerge(_extends({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n}\n\n// Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"breakpoints\", \"mixins\", \"spacing\", \"palette\", \"transitions\", \"typography\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport styleFunctionSx, { unstable_defaultSxConfig as defaultSxConfig } from '@mui/system/styleFunctionSx';\nimport systemCreateTheme from '@mui/system/createTheme';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport createTransitions from './createTransitions';\nimport zIndex from './zIndex';\nfunction createTheme(options = {}, ...args) {\n const {\n mixins: mixinsInput = {},\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (options.vars) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`vars\\` is a private field used for CSS variables support.\nPlease use another name.` : _formatMuiErrorMessage(18));\n }\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: _extends({}, zIndex)\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n if (process.env.NODE_ENV !== 'production') {\n // TODO v6: Refactor to use globalStateClassesMapping from @mui/utils once `readOnly` state class is used in Rating component.\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n const traverse = (node, component) => {\n let key;\n\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (key in node) {\n const child = node[key];\n if (stateClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n }\n // Remove the style to prevent global conflicts.\n node[key] = {};\n }\n }\n };\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n if (styleOverrides && component.indexOf('Mui') === 0) {\n traverse(styleOverrides, component);\n }\n });\n }\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n return createTheme(...args);\n}\nexport default createTheme;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, mixins) {\n return _extends({\n toolbar: {\n minHeight: 56,\n [breakpoints.up('xs')]: {\n '@media (orientation: landscape)': {\n minHeight: 48\n }\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n }\n }, mixins);\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"duration\", \"easing\", \"delay\"];\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n};\n\n// Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n const constant = height / 36;\n\n // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = _extends({}, easing, inputTransitions.easing);\n const mergedDuration = _extends({}, duration, inputTransitions.duration);\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string';\n // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n const isNumber = value => !isNaN(parseFloat(value));\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n if (typeof options !== 'object') {\n console.error(['MUI: Secong argument of transition.create must be an object.', \"Arguments should be either `create('prop1', options)` or `create(['prop1', 'prop2'], options)`\"].join('\\n'));\n }\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n return _extends({\n getAutoHeightDuration,\n create\n }, inputTransitions, {\n easing: mergedEasing,\n duration: mergedDuration\n });\n}","'use client';\n\nimport createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","export default '$$material';","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\nexport default function GlobalStyles(props) {\n const {\n styles,\n defaultTheme = {}\n } = props;\n const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n return /*#__PURE__*/_jsx(Global, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n defaultTheme: PropTypes.object,\n styles: PropTypes.oneOfType([PropTypes.array, PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.alpha = alpha;\nexports.blend = blend;\nexports.colorChannel = void 0;\nexports.darken = darken;\nexports.decomposeColor = decomposeColor;\nexports.emphasize = emphasize;\nexports.getContrastRatio = getContrastRatio;\nexports.getLuminance = getLuminance;\nexports.hexToRgb = hexToRgb;\nexports.hslToRgb = hslToRgb;\nexports.lighten = lighten;\nexports.private_safeAlpha = private_safeAlpha;\nexports.private_safeColorChannel = void 0;\nexports.private_safeDarken = private_safeDarken;\nexports.private_safeEmphasize = private_safeEmphasize;\nexports.private_safeLighten = private_safeLighten;\nexports.recomposeColor = recomposeColor;\nexports.rgbToHex = rgbToHex;\nvar _formatMuiErrorMessage2 = _interopRequireDefault(require(\"@mui/utils/formatMuiErrorMessage\"));\nvar _clamp = _interopRequireDefault(require(\"@mui/utils/clamp\"));\n/* eslint-disable @typescript-eslint/naming-convention */\n\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clampWrapper(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n return (0, _clamp.default)(value, min, max);\n}\n\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\nfunction hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\nfunction decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : (0, _formatMuiErrorMessage2.default)(9, color));\n }\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : (0, _formatMuiErrorMessage2.default)(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\nconst colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');\n};\nexports.colorChannel = colorChannel;\nconst private_safeColorChannel = (color, warning) => {\n try {\n return colorChannel(color);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n};\n\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\nexports.private_safeColorChannel = private_safeColorChannel;\nfunction recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n if (type.indexOf('color') !== -1) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n return `${type}(${values})`;\n}\n\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\nfunction rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\nfunction hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\nfunction getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n });\n\n // Truncate at 3 digits\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\nfunction getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction alpha(color, value) {\n color = decomposeColor(color);\n value = clampWrapper(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n return recomposeColor(color);\n}\nfunction private_safeAlpha(color, value, warning) {\n try {\n return alpha(color, value);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeDarken(color, coefficient, warning) {\n try {\n return darken(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeLighten(color, coefficient, warning) {\n try {\n return lighten(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nfunction private_safeEmphasize(color, coefficient, warning) {\n try {\n return emphasize(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Blend a transparent overlay color with a background color, resulting in a single\n * RGB color.\n * @param {string} background - CSS color\n * @param {string} overlay - CSS color\n * @param {number} opacity - Opacity multiplier in the range 0 - 1\n * @param {number} [gamma=1.0] - Gamma correction factor. For gamma-correct blending, 2.2 is usual.\n */\nfunction blend(background, overlay, opacity, gamma = 1.0) {\n const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);\n const backgroundColor = decomposeColor(background);\n const overlayColor = decomposeColor(overlay);\n const rgb = [blendChannel(backgroundColor.values[0], overlayColor.values[0]), blendChannel(backgroundColor.values[1], overlayColor.values[1]), blendChannel(backgroundColor.values[2], overlayColor.values[2])];\n return recomposeColor({\n type: 'rgb',\n values: rgb\n });\n}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport resolveProps from '@mui/utils/resolveProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PropsContext = /*#__PURE__*/React.createContext(undefined);\nfunction DefaultPropsProvider({\n value,\n children\n}) {\n return /*#__PURE__*/_jsx(PropsContext.Provider, {\n value: value,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object\n} : void 0;\nfunction getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name]) {\n return props;\n }\n const config = theme.components[name];\n if (config.defaultProps) {\n // compatible with v5 signature\n return resolveProps(config.defaultProps, props);\n }\n if (!config.styleOverrides && !config.variants) {\n // v6 signature, no property 'defaultProps'\n return resolveProps(config, props);\n }\n return props;\n}\nexport function useDefaultProps({\n props,\n name\n}) {\n const ctx = React.useContext(PropsContext);\n return getThemeProps({\n props,\n name,\n theme: {\n components: ctx\n }\n });\n}\nexport default DefaultPropsProvider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst RtlContext = /*#__PURE__*/React.createContext();\nfunction RtlProvider(_ref) {\n let {\n value\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n return /*#__PURE__*/_jsx(RtlContext.Provider, _extends({\n value: value != null ? value : true\n }, props));\n}\nprocess.env.NODE_ENV !== \"production\" ? RtlProvider.propTypes = {\n children: PropTypes.node,\n value: PropTypes.bool\n} : void 0;\nexport const useRtl = () => {\n const value = React.useContext(RtlContext);\n return value != null ? value : false;\n};\nexport default RtlProvider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport deepmerge from '@mui/utils/deepmerge';\nimport merge from './merge';\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","/**\n * A universal utility to style components with multiple color modes. Always use it from the theme object.\n * It works with:\n * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)\n * - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/)\n * - Zero-runtime engine\n *\n * Tips: Use an array over object spread and place `theme.applyStyles()` last.\n *\n * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })]\n *\n * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })}\n *\n * @example\n * 1. using with `styled`:\n * ```jsx\n * const Component = styled('div')(({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]);\n * ```\n *\n * @example\n * 2. using with `sx` prop:\n * ```jsx\n * [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]}\n * />\n * ```\n *\n * @example\n * 3. theming a component:\n * ```jsx\n * extendTheme({\n * components: {\n * MuiButton: {\n * styleOverrides: {\n * root: ({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ],\n * },\n * }\n * }\n * })\n *```\n */\nexport default function applyStyles(key, styles) {\n // @ts-expect-error this is 'any' type\n const theme = this;\n if (theme.vars && typeof theme.getColorSchemeSelector === 'function') {\n // If CssVarsProvider is used as a provider,\n // returns '* :where([data-mui-color-scheme=\"light|dark\"]) &'\n const selector = theme.getColorSchemeSelector(key).replace(/(\\[[^\\]]+\\])/, '*:where($1)');\n return {\n [selector]: styles\n };\n }\n if (theme.palette.mode === key) {\n return styles;\n }\n return {};\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"values\", \"unit\", \"step\"];\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || [];\n // Sort in ascending order\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return _extends({}, acc, {\n [obj.key]: obj.val\n });\n }, {});\n};\n\n// Keep in mind that @media is inclusive by the CSS specification.\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n },\n unit = 'px',\n step = 5\n } = breakpoints,\n other = _objectWithoutPropertiesLoose(breakpoints, _excluded);\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n return up(key);\n }\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n return _extends({\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit\n }, other);\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"palette\", \"spacing\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport styleFunctionSx from '../styleFunctionSx/styleFunctionSx';\nimport defaultSxConfig from '../styleFunctionSx/defaultSxConfig';\nimport applyStyles from './applyStyles';\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: _extends({\n mode: 'light'\n }, paletteInput),\n spacing,\n shape: _extends({}, shape, shapeInput)\n }, other);\n muiTheme.applyStyles = applyStyles;\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nexport default createTheme;","import { createUnarySpacing } from '../spacing';\n\n// The different signatures imply different meaning for their arguments that can't be expressed structurally.\n// We express the difference with variable names.\n\nexport default function createSpacing(spacingInput = 8) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n }\n\n // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n // Smaller components, such as icons, can align to a 4dp grid.\n // https://m2.material.io/design/layout/understanding-layout.html\n const transform = createUnarySpacing({\n spacing: spacingInput\n });\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n spacing.mui = true;\n return spacing;\n}","import deepmerge from '@mui/utils/deepmerge';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\nexport default merge;","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n const themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n return themeSpacing * abs;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n return themeSpacing[abs];\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n if (propValue >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import capitalize from '@mui/utils/capitalize';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","import merge from './merge';\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nexport function borderTransform(value) {\n if (typeof value !== 'number') {\n return value;\n }\n return `${value}px solid`;\n}\nfunction createBorderStyle(prop, transform) {\n return style({\n prop,\n themeKey: 'borders',\n transform\n });\n}\nexport const border = createBorderStyle('border', borderTransform);\nexport const borderTop = createBorderStyle('borderTop', borderTransform);\nexport const borderRight = createBorderStyle('borderRight', borderTransform);\nexport const borderBottom = createBorderStyle('borderBottom', borderTransform);\nexport const borderLeft = createBorderStyle('borderLeft', borderTransform);\nexport const borderColor = createBorderStyle('borderColor');\nexport const borderTopColor = createBorderStyle('borderTopColor');\nexport const borderRightColor = createBorderStyle('borderRightColor');\nexport const borderBottomColor = createBorderStyle('borderBottomColor');\nexport const borderLeftColor = createBorderStyle('borderLeftColor');\nexport const outline = createBorderStyle('outline', borderTransform);\nexport const outlineColor = createBorderStyle('outlineColor');\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius, outline, outlineColor);\nexport default borders;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport function paletteTransform(value, userValue) {\n if (userValue === 'grey') {\n return userValue;\n }\n return value;\n}\nexport const color = style({\n prop: 'color',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\nexport function sizingTransform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\nexport const width = style({\n prop: 'width',\n transform: sizingTransform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme2;\n const breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || breakpointsValues[propValue];\n if (!breakpoint) {\n return {\n maxWidth: sizingTransform(propValue)\n };\n }\n if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') {\n return {\n maxWidth: `${breakpoint}${props.theme.breakpoints.unit}`\n };\n }\n return {\n maxWidth: breakpoint\n };\n };\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform: sizingTransform\n});\nexport const height = style({\n prop: 'height',\n transform: sizingTransform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform: sizingTransform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform: sizingTransform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: sizingTransform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: sizingTransform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import { padding, margin } from '../spacing';\nimport { borderRadius, borderTransform } from '../borders';\nimport { gap, rowGap, columnGap } from '../cssGrid';\nimport { paletteTransform } from '../palette';\nimport { maxWidth, sizingTransform } from '../sizing';\nconst defaultSxConfig = {\n // borders\n border: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderTop: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderRight: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderBottom: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderLeft: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderColor: {\n themeKey: 'palette'\n },\n borderTopColor: {\n themeKey: 'palette'\n },\n borderRightColor: {\n themeKey: 'palette'\n },\n borderBottomColor: {\n themeKey: 'palette'\n },\n borderLeftColor: {\n themeKey: 'palette'\n },\n outline: {\n themeKey: 'borders',\n transform: borderTransform\n },\n outlineColor: {\n themeKey: 'palette'\n },\n borderRadius: {\n themeKey: 'shape.borderRadius',\n style: borderRadius\n },\n // palette\n color: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n bgcolor: {\n themeKey: 'palette',\n cssProperty: 'backgroundColor',\n transform: paletteTransform\n },\n backgroundColor: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n // spacing\n p: {\n style: padding\n },\n pt: {\n style: padding\n },\n pr: {\n style: padding\n },\n pb: {\n style: padding\n },\n pl: {\n style: padding\n },\n px: {\n style: padding\n },\n py: {\n style: padding\n },\n padding: {\n style: padding\n },\n paddingTop: {\n style: padding\n },\n paddingRight: {\n style: padding\n },\n paddingBottom: {\n style: padding\n },\n paddingLeft: {\n style: padding\n },\n paddingX: {\n style: padding\n },\n paddingY: {\n style: padding\n },\n paddingInline: {\n style: padding\n },\n paddingInlineStart: {\n style: padding\n },\n paddingInlineEnd: {\n style: padding\n },\n paddingBlock: {\n style: padding\n },\n paddingBlockStart: {\n style: padding\n },\n paddingBlockEnd: {\n style: padding\n },\n m: {\n style: margin\n },\n mt: {\n style: margin\n },\n mr: {\n style: margin\n },\n mb: {\n style: margin\n },\n ml: {\n style: margin\n },\n mx: {\n style: margin\n },\n my: {\n style: margin\n },\n margin: {\n style: margin\n },\n marginTop: {\n style: margin\n },\n marginRight: {\n style: margin\n },\n marginBottom: {\n style: margin\n },\n marginLeft: {\n style: margin\n },\n marginX: {\n style: margin\n },\n marginY: {\n style: margin\n },\n marginInline: {\n style: margin\n },\n marginInlineStart: {\n style: margin\n },\n marginInlineEnd: {\n style: margin\n },\n marginBlock: {\n style: margin\n },\n marginBlockStart: {\n style: margin\n },\n marginBlockEnd: {\n style: margin\n },\n // display\n displayPrint: {\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n },\n display: {},\n overflow: {},\n textOverflow: {},\n visibility: {},\n whiteSpace: {},\n // flexbox\n flexBasis: {},\n flexDirection: {},\n flexWrap: {},\n justifyContent: {},\n alignItems: {},\n alignContent: {},\n order: {},\n flex: {},\n flexGrow: {},\n flexShrink: {},\n alignSelf: {},\n justifyItems: {},\n justifySelf: {},\n // grid\n gap: {\n style: gap\n },\n rowGap: {\n style: rowGap\n },\n columnGap: {\n style: columnGap\n },\n gridColumn: {},\n gridRow: {},\n gridAutoFlow: {},\n gridAutoColumns: {},\n gridAutoRows: {},\n gridTemplateColumns: {},\n gridTemplateRows: {},\n gridTemplateAreas: {},\n gridArea: {},\n // positions\n position: {},\n zIndex: {\n themeKey: 'zIndex'\n },\n top: {},\n right: {},\n bottom: {},\n left: {},\n // shadows\n boxShadow: {\n themeKey: 'shadows'\n },\n // sizing\n width: {\n transform: sizingTransform\n },\n maxWidth: {\n style: maxWidth\n },\n minWidth: {\n transform: sizingTransform\n },\n height: {\n transform: sizingTransform\n },\n maxHeight: {\n transform: sizingTransform\n },\n minHeight: {\n transform: sizingTransform\n },\n boxSizing: {},\n // typography\n fontFamily: {\n themeKey: 'typography'\n },\n fontSize: {\n themeKey: 'typography'\n },\n fontStyle: {\n themeKey: 'typography'\n },\n fontWeight: {\n themeKey: 'typography'\n },\n letterSpacing: {},\n textTransform: {},\n lineHeight: {},\n textAlign: {},\n typography: {\n cssProperty: false,\n themeKey: 'typography'\n }\n};\nexport default defaultSxConfig;","import capitalize from '@mui/utils/capitalize';\nimport merge from '../merge';\nimport { getPath, getStyleValue as getValue } from '../style';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\nimport defaultSxConfig from './defaultSxConfig';\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createStyleFunctionSx() {\n function getThemeValue(prop, val, theme, config) {\n const props = {\n [prop]: val,\n theme\n };\n const options = config[prop];\n if (!options) {\n return {\n [prop]: val\n };\n }\n const {\n cssProperty = prop,\n themeKey,\n transform,\n style\n } = options;\n if (val == null) {\n return null;\n }\n\n // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123\n if (themeKey === 'typography' && val === 'inherit') {\n return {\n [prop]: val\n };\n }\n const themeMapping = getPath(theme, themeKey) || {};\n if (style) {\n return style(props);\n }\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, val, styleFromPropValue);\n }\n function styleFunctionSx(props) {\n var _theme$unstable_sxCon;\n const {\n sx,\n theme = {}\n } = props || {};\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n const config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : defaultSxConfig;\n\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n function traverse(sxInput) {\n let sxObject = sxInput;\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n if (!sxObject) {\n return null;\n }\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (config[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n }\n }\n });\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","'use client';\n\nimport createTheme from './createTheme';\nimport useThemeWithoutDefault from './useThemeWithoutDefault';\nexport const systemDefaultTheme = createTheme();\nfunction useTheme(defaultTheme = systemDefaultTheme) {\n return useThemeWithoutDefault(defaultTheme);\n}\nexport default useTheme;","'use client';\n\nimport * as React from 'react';\nimport { ThemeContext } from '@mui/styled-engine';\nfunction isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction useTheme(defaultTheme = null) {\n const contextTheme = React.useContext(ThemeContext);\n return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;\n}\nexport default useTheme;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","function clamp(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n return Math.max(min, Math.min(val, max));\n}\nexport default clamp;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\nexport function isPlainObject(item) {\n if (typeof item !== 'object' || item === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(item);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);\n}\nfunction deepClone(source) {\n if (!isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? _extends({}, target) : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if (isPlainObject(source[key]) &&\n // Avoid prototype pollution\n Object.prototype.hasOwnProperty.call(target, key) && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/internal-babel-macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe if we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param {object} defaultProps\n * @param {object} props\n * @returns {object} resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = _extends({}, props);\n Object.keys(defaultProps).forEach(propName => {\n if (propName.toString().match(/^(components|slots)$/)) {\n output[propName] = _extends({}, defaultProps[propName], output[propName]);\n } else if (propName.toString().match(/^(componentsProps|slotProps)$/)) {\n const defaultSlotProps = defaultProps[propName] || {};\n const slotProps = props[propName];\n output[propName] = {};\n if (!slotProps || !Object.keys(slotProps)) {\n // Reduce the iteration if the slot props is empty\n output[propName] = defaultSlotProps;\n } else if (!defaultSlotProps || !Object.keys(defaultSlotProps)) {\n // Reduce the iteration if the default slot props is empty\n output[propName] = slotProps;\n } else {\n output[propName] = _extends({}, slotProps);\n Object.keys(defaultSlotProps).forEach(slotPropName => {\n output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);\n });\n }\n } else if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n });\n return output;\n}","import { __assign } from \"tslib\";\nimport { pascalCase, pascalCaseTransform, pascalCaseTransformMerge, } from \"pascal-case\";\nexport function camelCaseTransform(input, index) {\n if (index === 0)\n return input.toLowerCase();\n return pascalCaseTransform(input, index);\n}\nexport function camelCaseTransformMerge(input, index) {\n if (index === 0)\n return input.toLowerCase();\n return pascalCaseTransformMerge(input);\n}\nexport function camelCase(input, options) {\n if (options === void 0) { options = {}; }\n return pascalCase(input, __assign({ transform: camelCaseTransform }, options));\n}\n//# sourceMappingURL=index.js.map","'use strict';\n\nconst UPPERCASE = /[\\p{Lu}]/u;\nconst LOWERCASE = /[\\p{Ll}]/u;\nconst LEADING_CAPITAL = /^[\\p{Lu}](?![\\p{Lu}])/gu;\nconst IDENTIFIER = /([\\p{Alpha}\\p{N}_]|$)/u;\nconst SEPARATORS = /[_.\\- ]+/;\n\nconst LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source);\nconst SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, 'gu');\nconst NUMBERS_AND_IDENTIFIER = new RegExp('\\\\d+' + IDENTIFIER.source, 'gu');\n\nconst preserveCamelCase = (string, toLowerCase, toUpperCase) => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst character = string[i];\n\n\t\tif (isLastCharLower && UPPERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i) + '-' + string.slice(i);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\ti++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst preserveConsecutiveUppercase = (input, toLowerCase) => {\n\tLEADING_CAPITAL.lastIndex = 0;\n\n\treturn input.replace(LEADING_CAPITAL, m1 => toLowerCase(m1));\n};\n\nconst postProcess = (input, toUpperCase) => {\n\tSEPARATORS_AND_IDENTIFIER.lastIndex = 0;\n\tNUMBERS_AND_IDENTIFIER.lastIndex = 0;\n\n\treturn input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier))\n\t\t.replace(NUMBERS_AND_IDENTIFIER, m => toUpperCase(m));\n};\n\nconst camelCase = (input, options) => {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = {\n\t\tpascalCase: false,\n\t\tpreserveConsecutiveUppercase: false,\n\t\t...options\n\t};\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tconst toLowerCase = options.locale === false ?\n\t\tstring => string.toLowerCase() :\n\t\tstring => string.toLocaleLowerCase(options.locale);\n\tconst toUpperCase = options.locale === false ?\n\t\tstring => string.toUpperCase() :\n\t\tstring => string.toLocaleUpperCase(options.locale);\n\n\tif (input.length === 1) {\n\t\treturn options.pascalCase ? toUpperCase(input) : toLowerCase(input);\n\t}\n\n\tconst hasUpperCase = input !== toLowerCase(input);\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input, toLowerCase, toUpperCase);\n\t}\n\n\tinput = input.replace(LEADING_SEPARATORS, '');\n\n\tif (options.preserveConsecutiveUppercase) {\n\t\tinput = preserveConsecutiveUppercase(input, toLowerCase);\n\t} else {\n\t\tinput = toLowerCase(input);\n\t}\n\n\tif (options.pascalCase) {\n\t\tinput = toUpperCase(input.charAt(0)) + input.slice(1);\n\t}\n\n\treturn postProcess(input, toUpperCase);\n};\n\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\nconst endsWithSuffixes = (suffixes, input) => {\n for (const suffix of suffixes) {\n if (input.endsWith(suffix)) return true;\n }\n return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n if (input === `/`) return input;\n const hasTrailingSlash = input.endsWith(`/`);\n if (endsWithSuffixes(suffixes, input)) {\n return input;\n }\n if (option === `always`) {\n return hasTrailingSlash ? input : `${input}/`;\n }\n if (option === `never`) {\n return hasTrailingSlash ? input.slice(0, -1) : input;\n }\n return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n function ScrollHandler() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n if (!shouldUpdateScroll) {\n return true;\n }\n\n // Hack to allow accessing this._stateStorage.\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n return _this;\n }\n var _proto = ScrollHandler.prototype;\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n this._isTicking = false;\n };\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n * from an external website) then scroll to the hash instead of any previously stored scroll\n * position. */\n if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n } else if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n return ScrollHandler;\n}(React.Component);\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n var _proto = SessionStorage.prototype;\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n return 0;\n }\n };\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","\"use strict\";\n\nmodule.exports = Object.assign;\n//# sourceMappingURL=object-assign.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n // Clear scripts after we've used them to avoid leaky behavior\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\n// Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n if (existingSnippet) {\n existingSnippet.remove();\n }\n if (existingSandbox) {\n existingSandbox.remove();\n }\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.components = {\n \"component---src-components-templates-article-page-tsx\": () => import(\"./../../../src/components/templates/ArticlePage.tsx\" /* webpackChunkName: \"component---src-components-templates-article-page-tsx\" */),\n \"component---src-pages-404-tsx\": () => import(\"./../../../src/pages/404.tsx\" /* webpackChunkName: \"component---src-pages-404-tsx\" */),\n \"component---src-pages-about-tsx\": () => import(\"./../../../src/pages/about.tsx\" /* webpackChunkName: \"component---src-pages-about-tsx\" */),\n \"component---src-pages-analytics-tsx\": () => import(\"./../../../src/pages/analytics.tsx\" /* webpackChunkName: \"component---src-pages-analytics-tsx\" */),\n \"component---src-pages-contact-tsx\": () => import(\"./../../../src/pages/contact.tsx\" /* webpackChunkName: \"component---src-pages-contact-tsx\" */),\n \"component---src-pages-cookies-tsx\": () => import(\"./../../../src/pages/cookies.tsx\" /* webpackChunkName: \"component---src-pages-cookies-tsx\" */),\n \"component---src-pages-data-tsx\": () => import(\"./../../../src/pages/data.tsx\" /* webpackChunkName: \"component---src-pages-data-tsx\" */),\n \"component---src-pages-index-tsx\": () => import(\"./../../../src/pages/index.tsx\" /* webpackChunkName: \"component---src-pages-index-tsx\" */),\n \"component---src-pages-insights-index-tsx\": () => import(\"./../../../src/pages/insights/index.tsx\" /* webpackChunkName: \"component---src-pages-insights-index-tsx\" */),\n \"component---src-pages-insights-market-insights-tsx\": () => import(\"./../../../src/pages/insights/market-insights.tsx\" /* webpackChunkName: \"component---src-pages-insights-market-insights-tsx\" */),\n \"component---src-pages-insights-press-releases-tsx\": () => import(\"./../../../src/pages/insights/press-releases.tsx\" /* webpackChunkName: \"component---src-pages-insights-press-releases-tsx\" */),\n \"component---src-pages-insights-search-tsx\": () => import(\"./../../../src/pages/insights/search.tsx\" /* webpackChunkName: \"component---src-pages-insights-search-tsx\" */),\n \"component---src-pages-insights-videos-tsx\": () => import(\"./../../../src/pages/insights/videos.tsx\" /* webpackChunkName: \"component---src-pages-insights-videos-tsx\" */),\n \"component---src-pages-login-tsx\": () => import(\"./../../../src/pages/login.tsx\" /* webpackChunkName: \"component---src-pages-login-tsx\" */),\n \"component---src-pages-preview-tsx\": () => import(\"./../../../src/pages/preview.tsx\" /* webpackChunkName: \"component---src-pages-preview-tsx\" */),\n \"component---src-pages-privacy-tsx\": () => import(\"./../../../src/pages/privacy.tsx\" /* webpackChunkName: \"component---src-pages-privacy-tsx\" */),\n \"component---src-pages-register-tsx\": () => import(\"./../../../src/pages/register.tsx\" /* webpackChunkName: \"component---src-pages-register-tsx\" */),\n \"component---src-pages-regulation-tsx\": () => import(\"./../../../src/pages/regulation.tsx\" /* webpackChunkName: \"component---src-pages-regulation-tsx\" */),\n \"component---src-pages-reset-password-tsx\": () => import(\"./../../../src/pages/reset-password.tsx\" /* webpackChunkName: \"component---src-pages-reset-password-tsx\" */),\n \"component---src-pages-solutions-tsx\": () => import(\"./../../../src/pages/solutions.tsx\" /* webpackChunkName: \"component---src-pages-solutions-tsx\" */),\n \"component---src-pages-terms-tsx\": () => import(\"./../../../src/pages/terms.tsx\" /* webpackChunkName: \"component---src-pages-terms-tsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-remark-images/gatsby-browser.js'),\n options: {\"plugins\":[],\"maxWidth\":650,\"linkImagesToOriginal\":true,\"showCaptions\":false,\"markdownCaptions\":false,\"backgroundColor\":\"white\",\"quality\":50,\"withWebp\":false,\"withAvif\":false,\"loading\":\"lazy\",\"decoding\":\"async\",\"disableBgImageOnAlpha\":false,\"disableBgImage\":false},\n },{\n plugin: require('../node_modules/gatsby-plugin-prismic-previews/gatsby-browser.js'),\n options: {\"plugins\":[],\"repositoryName\":\"ncfx\",\"accessToken\":\"MC5ZeU15N0JNQUFDUUFCbzBB.eTdpbyrvv73vv71cPu-_vWki77-9G--_ve-_vTbvv70R77-977-9Xe-_ve-_vQlGcu-_vSXvv71m77-9\",\"promptForAccessToken\":true,\"apiEndpoint\":\"https://ncfx.cdn.prismic.io/api/v2\",\"lang\":\"*\",\"pageSize\":100,\"imageImgixParams\":{\"auto\":\"compress,format\",\"fit\":\"max\"},\"imagePlaceholderImgixParams\":{\"w\":100,\"blur\":15},\"toolbar\":\"new\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-gtag/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingIds\":[\"G-V49T888YTQ\"],\"gtagConfig\":{}},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"icon\":\"src/images/icon.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"dbdc2c948bac229f7be2d83d1a718ff1\"},\n },{\n plugin: require('../plugins/gatsby-plugin-top-layout/gatsby-browser.tsx'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","exports.createContentDigest = () => ``\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import React from \"react\"\n\nexport const ServerSliceRenderer = ({ sliceId, children }) => {\n const contents = [\n React.createElement(`slice-start`, {\n id: `${sliceId}-1`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-1`,\n }),\n ]\n\n if (children) {\n // if children exist, we split the slice into a before and after piece\n // see renderSlices in render-html\n contents.push(children)\n contents.push(\n React.createElement(`slice-start`, {\n id: `${sliceId}-2`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-2`,\n })\n )\n }\n\n return contents\n}\n","import React, { useContext } from \"react\"\nimport { createContentDigest } from \"gatsby-core-utils/create-content-digest\"\nimport { SlicesMapContext, SlicesPropsContext } from \"./context\"\nimport { ServerSliceRenderer } from \"./server-slice-renderer\"\n\nconst getSliceId = (sliceName, sliceProps) => {\n if (!Object.keys(sliceProps).length) {\n return sliceName\n }\n\n const propsString = createContentDigest(sliceProps)\n return `${sliceName}-${propsString}`\n}\n\nexport const ServerSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesProps = useContext(SlicesPropsContext)\n const concreteSliceName = slicesMap[sliceName]\n\n if (!concreteSliceName) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n const sliceId = getSliceId(concreteSliceName, sliceProps)\n\n // set props on context object for static-entry to return\n let sliceUsage = slicesProps[sliceId]\n if (!sliceUsage) {\n slicesProps[sliceId] = sliceUsage = {\n props: sliceProps,\n sliceName: concreteSliceName,\n hasChildren: !!children,\n }\n } else {\n if (children) {\n sliceUsage.hasChildren = true\n }\n }\n\n return {children}\n}\n","import React, { useContext } from \"react\"\nimport { SlicesMapContext, SlicesResultsContext } from \"./context\"\n\nexport const InlineSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesResultsMap = useContext(SlicesResultsContext)\n const concreteSliceName = slicesMap[sliceName]\n const slice = slicesResultsMap.get(concreteSliceName)\n\n if (!slice) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n return (\n \n {children}\n \n )\n}\n","\"use client\"\n\nimport React, { useContext } from \"react\"\nimport { ServerSlice } from \"./slice/server-slice\"\nimport { InlineSlice } from \"./slice/inline-slice\"\nimport { SlicesContext } from \"./slice/context\"\n\nexport function Slice(props) {\n if (process.env.GATSBY_SLICES) {\n // we use sliceName internally, so remap alias to sliceName\n const internalProps = {\n ...props,\n sliceName: props.alias,\n }\n delete internalProps.alias\n delete internalProps.__renderedByLocation\n\n const slicesContext = useContext(SlicesContext)\n\n // validate props\n const propErrors = validateSliceProps(props)\n if (Object.keys(propErrors).length) {\n throw new SlicePropsError(\n slicesContext.renderEnvironment === `browser`,\n internalProps.sliceName,\n propErrors,\n props.__renderedByLocation\n )\n }\n\n if (slicesContext.renderEnvironment === `server`) {\n return \n } else if (slicesContext.renderEnvironment === `browser`) {\n // in the browser, we'll just render the component as is\n return \n } else if (\n slicesContext.renderEnvironment === `engines` ||\n slicesContext.renderEnvironment === `dev-ssr`\n ) {\n // if we're in SSR, we'll just render the component as is\n return \n } else if (slicesContext.renderEnvironment === `slices`) {\n // we are not yet supporting nested slices\n\n let additionalContextMessage = ``\n\n // just in case generating additional contextual information fails, we still want the base message to show\n // and not show another cryptic error message\n try {\n additionalContextMessage = `\\n\\nSlice component \"${slicesContext.sliceRoot.name}\" (${slicesContext.sliceRoot.componentPath}) tried to render `\n } catch {\n // don't need to handle it, we will just skip the additional context message if we fail to generate it\n }\n\n throw new Error(\n `Nested slices are not supported.${additionalContextMessage}\\n\\nSee https://gatsbyjs.com/docs/reference/built-in-components/gatsby-slice#nested-slices`\n )\n } else {\n throw new Error(\n `Slice context \"${slicesContext.renderEnvironment}\" is not supported.`\n )\n }\n } else {\n throw new Error(`Slices are disabled.`)\n }\n}\n\nclass SlicePropsError extends Error {\n constructor(inBrowser, sliceName, propErrors, renderedByLocation) {\n const errors = Object.entries(propErrors)\n .map(\n ([key, value]) =>\n `not serializable \"${value}\" type passed to \"${key}\" prop`\n )\n .join(`, `)\n\n const name = `SlicePropsError`\n let stack = ``\n let message = ``\n\n if (inBrowser) {\n // They're just (kinda) kidding, I promise... You can still work here <3\n // https://www.gatsbyjs.com/careers/\n const fullStack =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugCurrentFrame.getCurrentStack()\n\n // remove the first line of the stack trace\n const stackLines = fullStack.trim().split(`\\n`).slice(1)\n stackLines[0] = stackLines[0].trim()\n stack = `\\n` + stackLines.join(`\\n`)\n\n message = `Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n } else {\n // we can't really grab any extra info outside of the browser, so just print what we can\n message = `${name}: Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n const stackLines = new Error().stack.trim().split(`\\n`).slice(2)\n stack = `${message}\\n${stackLines.join(`\\n`)}`\n }\n\n super(message)\n this.name = name\n if (stack) {\n this.stack = stack\n } else {\n Error.captureStackTrace(this, SlicePropsError)\n }\n\n if (renderedByLocation) {\n this.forcedLocation = { ...renderedByLocation, functionName: `Slice` }\n }\n }\n}\n\nconst validateSliceProps = (\n props,\n errors = {},\n seenObjects = [],\n path = null\n) => {\n // recursively validate all props\n for (const [name, value] of Object.entries(props)) {\n if (\n value === undefined ||\n value === null ||\n (!path && name === `children`)\n ) {\n continue\n }\n\n const propPath = path ? `${path}.${name}` : name\n\n if (typeof value === `function`) {\n errors[propPath] = typeof value\n } else if (typeof value === `object` && seenObjects.indexOf(value) <= 0) {\n seenObjects.push(value)\n validateSliceProps(value, errors, seenObjects, propPath)\n }\n }\n\n return errors\n}\n","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\nexport * from \"gatsby-script\"\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n slicesMap: pageData.slicesMap ?? {},\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\n })\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.partialHydrationDb = new Map()\n this.slicesDataDb = new Map()\n this.sliceInflightDb = new Map()\n this.slicesDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadSliceDataJson(sliceName) {\n if (this.slicesDataDb.has(sliceName)) {\n const jsonPayload = this.slicesDataDb.get(sliceName)\n return Promise.resolve({ sliceName, jsonPayload })\n }\n\n const url = `${__PATH_PREFIX__}/slice-data/${sliceName}.json`\n return doFetch(url, `GET`).then(res => {\n const jsonPayload = JSON.parse(res.responseText)\n\n this.slicesDataDb.set(sliceName, jsonPayload)\n return { sliceName, jsonPayload }\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return Promise.resolve({\n error: page.error,\n status: page.status,\n })\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const loadDataPromises = [\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]\n\n if (global.hasPartialHydration) {\n loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n }\n\n const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n if (\n pageDataResponse.status === PageResourceStatus.Error ||\n rscDataResponse?.status === PageResourceStatus.Error\n ) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = pageDataResponse.payload\n\n const {\n componentChunkName,\n staticQueryHashes: pageStaticQueryHashes = [],\n slicesMap = {},\n } = pageData\n\n const finalResult = {}\n\n const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n const loadSlice = slice => {\n if (this.slicesDb.has(slice.name)) {\n return this.slicesDb.get(slice.name)\n } else if (this.sliceInflightDb.has(slice.name)) {\n return this.sliceInflightDb.get(slice.name)\n }\n\n const inFlight = this.loadComponent(slice.componentChunkName).then(\n component => {\n return {\n component: preferDefault(component),\n sliceContext: slice.result.sliceContext,\n data: slice.result.data,\n }\n }\n )\n\n this.sliceInflightDb.set(slice.name, inFlight)\n inFlight.then(results => {\n this.slicesDb.set(slice.name, results)\n this.sliceInflightDb.delete(slice.name)\n })\n\n return inFlight\n }\n\n return Promise.all(\n dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n ).then(slicesData => {\n const slices = []\n const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n slices.push({ name: sliceName, ...jsonPayload })\n for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n dedupedStaticQueryHashes.push(staticQueryHash)\n }\n }\n }\n\n const loadChunkPromises = [\n Promise.all(slices.map(loadSlice)),\n this.loadComponent(componentChunkName, `head`),\n ]\n\n if (!global.hasPartialHydration) {\n loadChunkPromises.push(this.loadComponent(componentChunkName))\n }\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n // get list of components to get\n const componentChunkPromises = Promise.all(loadChunkPromises).then(\n components => {\n const [sliceComponents, headComponent, pageComponent] = components\n\n finalResult.createdAt = new Date()\n\n for (const sliceComponent of sliceComponents) {\n if (!sliceComponent || sliceComponent instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = sliceComponent\n }\n }\n\n if (\n !global.hasPartialHydration &&\n (!pageComponent || pageComponent instanceof Error)\n ) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = pageComponent\n }\n\n let pageResources\n\n if (finalResult.status !== PageResourceStatus.Error) {\n finalResult.status = PageResourceStatus.Success\n if (\n pageDataResponse.notFound === true ||\n rscDataResponse?.notFound === true\n ) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appDataResponse\n ? appDataResponse.webpackCompilationHash\n : ``,\n })\n\n if (typeof rscDataResponse?.payload === `string`) {\n pageResources = toPageResources(pageData, null, headComponent)\n\n pageResources.partialHydration = rscDataResponse.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(rscDataResponse.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n } else {\n pageResources = toPageResources(\n pageData,\n pageComponent,\n headComponent\n )\n }\n }\n\n // undefined if final result is an error\n return pageResources\n }\n )\n\n // get list of static queries to get\n const staticQueryBatchPromise = Promise.all(\n dedupedStaticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromises, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n ),\n prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n )\n }\n\n return (\n asyncRequires[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n\nexport function getSliceResults() {\n if (instance) {\n return instance.slicesDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n `html`,\n `body`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n serverData: input.serverData,\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid function\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in Head which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = createWarningForInvalidTag(tagName)\n warnOnce(warning)\n }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n\nexport function getValidHeadNodesAndAttributes(\n rootNode,\n htmlAndBodyAttributes = {\n html: {},\n body: {},\n }\n) {\n const seenIds = new Map()\n const validHeadNodes = []\n\n // Filter out non-element nodes before looping since we don't care about them\n for (const node of rootNode.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!isElementType(node)) continue\n\n if (isValidNodeName(nodeName)) {\n // and tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n if (nodeName === `html` || nodeName === `body`) {\n for (const attribute of node.attributes) {\n const isStyleAttribute = attribute.name === `style`\n\n // Merge attributes for same nodeName from previous loop iteration\n htmlAndBodyAttributes[nodeName] = {\n ...htmlAndBodyAttributes[nodeName],\n }\n\n if (!isStyleAttribute) {\n htmlAndBodyAttributes[nodeName][attribute.name] = attribute.value\n }\n\n // If there is already a style attribute, we need to merge them as otherwise the last one will \"win\"\n if (isStyleAttribute) {\n htmlAndBodyAttributes[nodeName].style = `${\n htmlAndBodyAttributes[nodeName]?.style\n ? htmlAndBodyAttributes[nodeName].style\n : ``\n }${attribute.value} `\n }\n }\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // // This is hack to make script tags work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n clonedNode = massageScript(clonedNode)\n }\n // Duplicate ids are not allowed in the head, so we need to dedupe them\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[\n indexOfPreviouslyInsertedNode\n ].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n } else {\n warnForInvalidTag(nodeName)\n }\n\n if (node.childNodes.length) {\n validHeadNodes.push(\n ...getValidHeadNodesAndAttributes(node, htmlAndBodyAttributes)\n .validHeadNodes\n )\n }\n }\n\n return { validHeadNodes, htmlAndBodyAttributes }\n}\n\nfunction massageScript(node) {\n const script = document.createElement(`script`)\n for (const attr of node.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = node.innerHTML\n\n return script\n}\n\nexport function isValidNodeName(nodeName) {\n return VALID_NODE_NAMES.includes(nodeName)\n}\n/*\n * For Head, we only care about element nodes(type = 1), so this util is used to skip over non-element nodes\n * For Node type, see https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n */\nexport function isElementType(node) {\n return node.nodeType === 1\n}\n\n/**\n * Removes all the head elements that were added by `Head`\n */\nexport function removePrevHeadElements() {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nexport function applyHtmlAndBodyAttributes(htmlAndBodyAttributes) {\n if (!htmlAndBodyAttributes) return\n\n const { html, body } = htmlAndBodyAttributes\n\n const htmlElement = document.querySelector(`html`)\n if (htmlElement) {\n Object.entries(html).forEach(([attributeName, attributeValue]) => {\n htmlElement.setAttribute(attributeName, attributeValue)\n })\n }\n\n const bodyElement = document.querySelector(`body`)\n if (bodyElement) {\n Object.entries(body).forEach(([attributeName, attributeValue]) => {\n bodyElement.setAttribute(attributeName, attributeValue)\n })\n }\n}\n\nexport function removeHtmlAndBodyAttributes(htmlAndBodyattributeList) {\n if (!htmlAndBodyattributeList) return\n\n const { html, body } = htmlAndBodyattributeList\n\n if (html) {\n const htmlElement = document.querySelector(`html`)\n html.forEach(attributeName => {\n if (htmlElement) {\n htmlElement.removeAttribute(attributeName)\n }\n })\n }\n\n if (body) {\n const bodyElement = document.querySelector(`body`)\n body.forEach(attributeName => {\n if (bodyElement) {\n bodyElement.removeAttribute(attributeName)\n }\n })\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport {\n headExportValidator,\n filterHeadProps,\n diffNodes,\n getValidHeadNodesAndAttributes,\n removePrevHeadElements,\n applyHtmlAndBodyAttributes,\n removeHtmlAndBodyAttributes,\n} from \"./utils\"\nimport { apiRunner } from \"../api-runner-browser\"\n\nconst hiddenRoot = document.createElement(`div`)\nconst keysOfHtmlAndBodyAttributes = {\n html: [],\n body: [],\n}\n\nconst onHeadRendered = () => {\n const { validHeadNodes, htmlAndBodyAttributes } =\n getValidHeadNodesAndAttributes(hiddenRoot)\n\n keysOfHtmlAndBodyAttributes.html = Object.keys(htmlAndBodyAttributes.html)\n keysOfHtmlAndBodyAttributes.body = Object.keys(htmlAndBodyAttributes.body)\n\n applyHtmlAndBodyAttributes(htmlAndBodyAttributes)\n\n /**\n * The rest of the code block below is a diffing mechanism to ensure that\n * the head elements aren't duplicted on every re-render.\n */\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // sigh ... and elements are not valid descedents of
(our hidden element)\n // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n // instead we continue to render to
, and just silence warnings for and elements\n // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n const originalConsoleError = console.error.bind(console)\n console.error = (...args) => {\n if (\n Array.isArray(args) &&\n args.length >= 2 &&\n args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n (args[1] === `` || args[1] === ``)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate after react-refresh\n updates our hidden element.\n */\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const HeadElement = (\n \n )\n\n const WrapHeadElement = apiRunner(\n `wrapRootElement`,\n { element: HeadElement },\n HeadElement,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n \n \n {WrapHeadElement}\n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport {\n navigate as reachNavigate,\n globalHistory,\n} from \"@gatsbyjs/reach-router\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(nextProps) {\n if (compareLocationProps(this.props.location, nextProps.location)) {\n onPreRouteUpdate(nextProps.location, this.props.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./static-query\"\nimport {\n SlicesMapContext,\n SlicesContext,\n SlicesResultsContext,\n} from \"./slice/context\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n getSliceResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n const slicesContext = {\n renderEnvironment: `browser`,\n }\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n \n \n \n \n \n {children}\n \n \n \n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n const reactDomClient = require(`react-dom/client`)\n\n const render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n return { render, hydrate }\n}\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n SlicesResultsContext,\n SlicesContext,\n SlicesMapContext,\n SlicesPropsContext,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n console.warn(\n `The component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n )\n warnedAboutStaticQuery = true\n }\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n /* eslint-disable no-undef */\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\n\nexports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n if (pluginOptions === void 0) {\n pluginOptions = {};\n }\n if (process.env.NODE_ENV !== \"production\" || typeof gtag !== \"function\") {\n return null;\n }\n var pluginConfig = pluginOptions.pluginConfig || {};\n var pathIsExcluded = location && typeof window.excludeGtagPaths !== \"undefined\" && window.excludeGtagPaths.some(function (rx) {\n return rx.test(location.pathname);\n });\n if (pathIsExcluded) return null;\n\n // wrap inside a timeout to make sure react-helmet is done with its changes (https://github.com/gatsbyjs/gatsby/issues/11592)\n var sendPageView = function sendPageView() {\n var pagePath = location ? location.pathname + location.search + location.hash : undefined;\n window.gtag(\"event\", \"page_view\", {\n page_path: pagePath\n });\n };\n var _pluginConfig$delayOn = pluginConfig.delayOnRouteUpdate,\n delayOnRouteUpdate = _pluginConfig$delayOn === void 0 ? 0 : _pluginConfig$delayOn;\n if (\"requestAnimationFrame\" in window) {\n requestAnimationFrame(function () {\n requestAnimationFrame(function () {\n return setTimeout(sendPageView, delayOnRouteUpdate);\n });\n });\n } else {\n // Delay by 32ms to simulate 2 requestOnAnimationFrame calls\n setTimeout(sendPageView, 32 + delayOnRouteUpdate);\n }\n return null;\n};","import camelCase from \"camelcase\"\nimport type { IGatsbyImageData } from \"./index\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n 320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n duotone?: {\n highlight: string\n shadow: string\n opacity?: number\n }\n grayscale?: boolean\n rotate?: number\n trim?: number\n }\n jpgOptions?: Record\n pngOptions?: Record\n webpOptions?: Record\n avifOptions?: Record\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array\n outputPixelDensities?: Array\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array\n breakpoints?: Array\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array\n presentationWidth: number\n presentationHeight: number\n aspectRatio: number\n unscaledWidth: number\n}\n\nexport interface IImage {\n src: string\n width: number\n height: number\n format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n pluginName: string\n generateImageSource: (\n filename: string,\n width: number,\n height: number,\n format: ImageFormat,\n fit?: Fit,\n options?: Record\n ) => IImage\n layout?: Layout\n formats?: Array\n filename: string\n placeholderURL?: string\n width?: number\n height?: number\n sizes?: string\n reporter?: IReporter\n sourceMetadata?: { width: number; height: number; format: ImageFormat }\n fit?: Fit\n options?: Record\n breakpoints?: Array\n backgroundColor?: string\n aspectRatio?: number\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n switch (layout) {\n // If screen is wider than the max size, image width is the max size,\n // otherwise it's the width of the screen\n case `constrained`:\n return `(min-width: ${width}px) ${width}px, 100vw`\n\n // Image is always the same width, whatever the size of the screen\n case `fixed`:\n return `${width}px`\n\n // Image is always the width of the screen\n case `fullWidth`:\n return `100vw`\n\n default:\n return undefined\n }\n}\n\nexport const getSrcSet = (images: Array): string =>\n images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n const dot = filename.lastIndexOf(`.`)\n if (dot !== -1) {\n const ext = filename.slice(dot + 1)\n if (ext === `jpeg`) {\n return `jpg`\n }\n if (ext.length === 3 || ext.length === 4) {\n return ext as ImageFormat\n }\n }\n return undefined\n}\n\nexport function setDefaultDimensions(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageHelperArgs {\n let {\n layout = `constrained`,\n width,\n height,\n sourceMetadata,\n breakpoints,\n aspectRatio,\n formats = [`auto`, `webp`],\n } = args\n formats = formats.map(format => format.toLowerCase() as ImageFormat)\n layout = camelCase(layout) as Layout\n\n if (width && height) {\n return { ...args, formats, layout, aspectRatio: width / height }\n }\n if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) {\n aspectRatio = sourceMetadata.width / sourceMetadata.height\n }\n\n if (layout === `fullWidth`) {\n width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1]\n height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO))\n } else {\n if (!width) {\n if (height && aspectRatio) {\n width = height * aspectRatio\n } else if (sourceMetadata.width) {\n width = sourceMetadata.width\n } else if (height) {\n width = Math.round(height / DEFAULT_ASPECT_RATIO)\n } else {\n width = DEFAULT_FIXED_WIDTH\n }\n }\n\n if (aspectRatio && !height) {\n height = Math.round(width / aspectRatio)\n } else if (!aspectRatio) {\n aspectRatio = width / height\n }\n }\n return { ...args, width, height, aspectRatio, layout, formats }\n}\n\n/**\n * Use this for getting an image for the blurred placeholder. This ensures the\n * aspect ratio and crop match the main image\n */\nexport function getLowResolutionImageURL(\n args: IGatsbyImageHelperArgs,\n width = 20\n): string {\n args = setDefaultDimensions(args)\n const { generateImageSource, filename, aspectRatio } = args\n return generateImageSource(\n filename,\n width,\n Math.round(width / aspectRatio),\n args.sourceMetadata.format || `jpg`,\n args.fit,\n args.options\n )?.src\n}\n\nexport function generateImageData(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n args = setDefaultDimensions(args)\n\n let {\n pluginName,\n sourceMetadata,\n generateImageSource,\n layout,\n fit,\n options,\n width,\n height,\n filename,\n reporter = { warn },\n backgroundColor,\n placeholderURL,\n } = args\n\n if (!pluginName) {\n reporter.warn(\n `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n )\n }\n\n if (typeof generateImageSource !== `function`) {\n throw new Error(`generateImageSource must be a function`)\n }\n\n if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n // No metadata means we let the CDN handle max size etc, aspect ratio etc\n sourceMetadata = {\n width,\n height,\n format: sourceMetadata?.format || formatFromFilename(filename) || `auto`,\n }\n } else if (!sourceMetadata.format) {\n sourceMetadata.format = formatFromFilename(filename)\n }\n\n const formats = new Set(args.formats)\n\n if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n formats.delete(`auto`)\n formats.delete(``)\n formats.add(sourceMetadata.format)\n }\n\n if (formats.has(`jpg`) && formats.has(`png`)) {\n reporter.warn(\n `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n )\n if (sourceMetadata.format === `jpg`) {\n formats.delete(`png`)\n } else {\n formats.delete(`jpg`)\n }\n }\n\n const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n const result: IGatsbyImageData[\"images\"] = {\n sources: [],\n }\n\n let sizes = args.sizes\n if (!sizes) {\n sizes = getSizes(imageSizes.presentationWidth, layout)\n }\n\n formats.forEach(format => {\n const images = imageSizes.sizes\n .map(size => {\n const imageSrc = generateImageSource(\n filename,\n size,\n Math.round(size / imageSizes.aspectRatio),\n format,\n fit,\n options\n )\n if (\n !imageSrc?.width ||\n !imageSrc.height ||\n !imageSrc.src ||\n !imageSrc.format\n ) {\n reporter.warn(\n `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n )\n return undefined\n }\n return imageSrc\n })\n .filter(Boolean)\n\n if (format === `jpg` || format === `png` || format === `auto`) {\n const unscaled =\n images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n if (unscaled) {\n result.fallback = {\n src: unscaled.src,\n srcSet: getSrcSet(images),\n sizes,\n }\n }\n } else {\n result.sources?.push({\n srcSet: getSrcSet(images),\n sizes,\n type: `image/${format}`,\n })\n }\n })\n\n const imageProps: Partial = {\n images: result,\n layout,\n backgroundColor,\n }\n\n if (placeholderURL) {\n imageProps.placeholder = { fallback: placeholderURL }\n }\n\n switch (layout) {\n case `fixed`:\n imageProps.width = imageSizes.presentationWidth\n imageProps.height = imageSizes.presentationHeight\n break\n\n case `fullWidth`:\n imageProps.width = 1\n imageProps.height = 1 / imageSizes.aspectRatio\n break\n\n case `constrained`:\n imageProps.width = args.width || imageSizes.presentationWidth || 1\n imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n }\n\n return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array): Array =>\n Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n const {\n width,\n height,\n filename,\n layout = `constrained`,\n sourceMetadata: imgDimensions,\n reporter = { warn },\n breakpoints = DEFAULT_BREAKPOINTS,\n } = args\n\n // check that all dimensions provided are positive\n const userDimensions = { width, height }\n const erroneousUserDimensions = Object.entries(userDimensions).filter(\n ([_, size]) => typeof size === `number` && size < 1\n )\n if (erroneousUserDimensions.length) {\n throw new Error(\n `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n .map(dim => dim.join(`: `))\n .join(`, `)}`\n )\n }\n\n if (layout === `fixed`) {\n return fixedImageSizes(args)\n } else if (layout === `constrained`) {\n return responsiveImageSizes(args)\n } else if (layout === `fullWidth`) {\n return responsiveImageSizes({ breakpoints, ...args })\n } else {\n reporter.warn(\n `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}`\n )\n return {\n sizes: [imgDimensions.width],\n presentationWidth: imgDimensions.width,\n presentationHeight: imgDimensions.height,\n aspectRatio: imgDimensions.width / imgDimensions.height,\n unscaledWidth: imgDimensions.width,\n }\n }\n}\nexport function fixedImageSizes({\n filename,\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n if (!width) {\n if (!height) {\n width = DEFAULT_FIXED_WIDTH\n } else {\n width = Math.round(height * aspectRatio)\n }\n } else if (!height) {\n height = Math.round(width / aspectRatio)\n }\n\n const originalWidth = width // will use this for presentationWidth, don't want to lose it\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n\n // If the image is smaller than requested, warn the user that it's being processed as such\n // print out this message with the necessary information before we overwrite it for sizing\n if (isTopSizeOverriden) {\n const fixedDimension = imgDimensions.width < width ? `width` : `height`\n reporter.warn(`\nThe requested ${fixedDimension} \"${\n fixedDimension === `width` ? width : height\n }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n imgDimensions[fixedDimension]\n }px. If possible, replace the current image with a larger one.`)\n\n if (fixedDimension === `width`) {\n width = imgDimensions.width\n height = Math.round(width / aspectRatio)\n } else {\n height = imgDimensions.height\n width = height * aspectRatio\n }\n }\n\n const sizes = densities\n .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n .map(density => Math.round(density * (width as number)))\n .filter(size => size <= imgDimensions.width)\n\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function responsiveImageSizes({\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n breakpoints,\n layout,\n}: IImageSizeArgs): IImageSizes {\n let sizes\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n width = width && Math.min(width, imgDimensions.width)\n height = height && Math.min(height, imgDimensions.height)\n\n // Case 2: neither width or height were passed in, use default size\n if (!width && !height) {\n width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n height = width / aspectRatio\n }\n\n // if it still hasn't been found, calculate width from the derived height.\n // TS isn't smart enough to realise the type for height has been narrowed here\n if (!width) {\n width = (height as number) * aspectRatio\n }\n\n const originalWidth = width\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n if (isTopSizeOverriden) {\n width = imgDimensions.width\n height = imgDimensions.height\n }\n\n width = Math.round(width)\n\n if (breakpoints?.length > 0) {\n sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n // If a larger breakpoint has been filtered-out, add the actual image width instead\n if (\n sizes.length < breakpoints.length &&\n !sizes.includes(imgDimensions.width)\n ) {\n sizes.push(imgDimensions.width)\n }\n } else {\n sizes = densities.map(density => Math.round(density * (width as number)))\n sizes = sizes.filter(size => size <= imgDimensions.width)\n }\n\n // ensure that the size passed in is included in the final output\n if (layout === `constrained` && !sizes.includes(width)) {\n sizes.push(width)\n }\n sizes = sizes.sort(sortNumeric)\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function getDimensionsAndAspectRatio(\n dimensions,\n options\n): { width: number; height: number; aspectRatio: number } {\n // Calculate the eventual width/height of the image.\n const imageAspectRatio = dimensions.width / dimensions.height\n\n let width = options.width\n let height = options.height\n\n switch (options.fit) {\n case `fill`: {\n width = options.width ? options.width : dimensions.width\n height = options.height ? options.height : dimensions.height\n break\n }\n case `inside`: {\n const widthOption = options.width\n ? options.width\n : Number.MAX_SAFE_INTEGER\n const heightOption = options.height\n ? options.height\n : Number.MAX_SAFE_INTEGER\n\n width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.min(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n case `outside`: {\n const widthOption = options.width ? options.width : 0\n const heightOption = options.height ? options.height : 0\n\n width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.max(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n\n default: {\n if (options.width && !options.height) {\n width = options.width\n height = Math.round(options.width / imageAspectRatio)\n }\n\n if (options.height && !options.width) {\n width = Math.round(options.height * imageAspectRatio)\n height = options.height\n }\n }\n }\n\n return {\n width,\n height,\n aspectRatio: width / height,\n }\n}\n","/* global GATSBY___IMAGE */\nimport { generateImageData, EVERY_BREAKPOINT } from \"../image-utils\"\nimport type { CSSProperties, HTMLAttributes, ImgHTMLAttributes } from \"react\"\nimport type { Node } from \"gatsby\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport type {\n IGatsbyImageHelperArgs,\n Layout,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n typeof HTMLImageElement !== `undefined` &&\n `loading` in HTMLImageElement.prototype\n\nexport function gatsbyImageIsInstalled(): boolean {\n return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE\n}\n\nexport type IGatsbyImageDataParent = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type IGatsbyImageParent = T & {\n gatsbyImage: IGatsbyImageData\n}\nexport type FileNode = Partial & {\n childImageSharp?: IGatsbyImageDataParent>\n}\n\nconst isGatsbyImageData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageData | any\n): node is IGatsbyImageData =>\n // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object\n Boolean(node?.images?.fallback?.src)\n\nconst isGatsbyImageDataParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageDataParent | any\n): node is IGatsbyImageDataParent => Boolean(node?.gatsbyImageData)\n\nconst isGatsbyImageParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageParent | any\n): node is IGatsbyImageParent => Boolean(node?.gatsbyImage)\n\nexport type ImageDataLike =\n | FileNode\n | IGatsbyImageDataParent\n | IGatsbyImageParent\n | IGatsbyImageData\n\nexport const getImage = (\n node: ImageDataLike | null\n): IGatsbyImageData | undefined => {\n // This checks both for gatsbyImageData and gatsbyImage\n if (isGatsbyImageData(node)) {\n return node\n }\n // gatsbyImageData GraphQL field\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\n }\n // gatsbyImage GraphQL field for Gatsby's Image CDN service\n if (isGatsbyImageParent(node)) {\n return node.gatsbyImage\n }\n return node?.childImageSharp?.gatsbyImageData\n}\n\nexport const getSrc = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.src\n\nexport const getSrcSet = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.srcSet\n\nexport function getWrapperProps(\n width: number,\n height: number,\n layout: Layout\n): Pick, \"className\" | \"style\"> & {\n \"data-gatsby-image-wrapper\": string\n} {\n const wrapperStyle: CSSProperties = {}\n\n let className = `gatsby-image-wrapper`\n\n // If the plugin isn't installed we need to apply the styles inline\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.position = `relative`\n wrapperStyle.overflow = `hidden`\n }\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n } else if (layout === `constrained`) {\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.display = `inline-block`\n wrapperStyle.verticalAlign = `top`\n }\n className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n }\n\n return {\n className,\n \"data-gatsby-image-wrapper\": ``,\n style: wrapperStyle,\n }\n}\n\nexport interface IUrlBuilderArgs {\n width: number\n height: number\n baseUrl: string\n format: ImageFormat\n options: OptionsType\n}\nexport interface IGetImageDataArgs> {\n baseUrl: string\n /**\n * For constrained and fixed images, the size of the image element\n */\n width?: number\n height?: number\n /**\n * If available, pass the source image width and height\n */\n sourceWidth?: number\n sourceHeight?: number\n /**\n * If only one dimension is passed, then this will be used to calculate the other.\n */\n aspectRatio?: number\n layout?: Layout\n /**\n * Returns a URL based on the passed arguments. Should be a pure function\n */\n urlBuilder: (args: IUrlBuilderArgs) => string\n\n /**\n * Should be a data URI\n */\n placeholderURL?: string\n backgroundColor?: string\n /**\n * Used in error messages etc\n */\n pluginName?: string\n\n /**\n * If you do not support auto-format, pass an array of image types here\n */\n formats?: Array\n\n breakpoints?: Array\n\n /**\n * Passed to the urlBuilder function\n */\n options?: OptionsType\n}\n\n/**\n * Use this hook to generate gatsby-plugin-image data in the browser.\n */\nexport function getImageData({\n baseUrl,\n urlBuilder,\n sourceWidth,\n sourceHeight,\n pluginName = `getImageData`,\n formats = [`auto`],\n breakpoints,\n options,\n ...props\n}: IGetImageDataArgs): IGatsbyImageData {\n if (\n !breakpoints?.length &&\n (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`)\n ) {\n breakpoints = EVERY_BREAKPOINT\n }\n const generateImageSource = (\n baseUrl: string,\n width: number,\n height?: number,\n format?: ImageFormat\n ): IImage => {\n return {\n width,\n height,\n format,\n src: urlBuilder({ baseUrl, width, height, options, format }),\n }\n }\n\n const sourceMetadata: IGatsbyImageHelperArgs[\"sourceMetadata\"] = {\n width: sourceWidth,\n height: sourceHeight,\n format: `auto`,\n }\n\n const args: IGatsbyImageHelperArgs = {\n ...props,\n pluginName,\n generateImageSource,\n filename: baseUrl,\n formats,\n breakpoints,\n sourceMetadata,\n }\n return generateImageData(args)\n}\n\nexport function getMainProps(\n isLoading: boolean,\n isLoaded: boolean,\n images: IGatsbyImageData[\"images\"],\n loading?: \"eager\" | \"lazy\",\n style: CSSProperties = {}\n): Partial {\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n transform: `translateZ(0)`,\n transition: `opacity 250ms linear`,\n width: `100%`,\n willChange: `opacity`,\n ...style,\n }\n }\n\n const result = {\n ...images,\n loading,\n shouldLoad: isLoading,\n \"data-main-image\": ``,\n style: {\n ...style,\n opacity: isLoaded ? 1 : 0,\n },\n }\n\n return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes &\n Pick & {\n \"data-placeholder-image\"?: string\n }\n\nexport function getPlaceholderProps(\n placeholder: PlaceholderImageAttrs | undefined,\n isLoaded: boolean,\n layout: Layout,\n width?: number,\n height?: number,\n backgroundColor?: string,\n objectFit?: CSSProperties[\"objectFit\"],\n objectPosition?: CSSProperties[\"objectPosition\"]\n): PlaceholderImageAttrs {\n const wrapperStyle: CSSProperties = {}\n\n if (backgroundColor) {\n wrapperStyle.backgroundColor = backgroundColor\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n wrapperStyle.backgroundColor = backgroundColor\n wrapperStyle.position = `relative`\n } else if (layout === `constrained`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (layout === `fullWidth`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n }\n }\n\n if (objectFit) {\n wrapperStyle.objectFit = objectFit\n }\n\n if (objectPosition) {\n wrapperStyle.objectPosition = objectPosition\n }\n const result: PlaceholderImageAttrs = {\n ...placeholder,\n \"aria-hidden\": true,\n \"data-placeholder-image\": ``,\n style: {\n opacity: isLoaded ? 0 : 1,\n transition: `opacity 500ms linear`,\n ...wrapperStyle,\n },\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n result.style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n width: `100%`,\n }\n }\n\n return result\n}\n\nexport interface IArtDirectedImage {\n media: string\n image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function withArtDirection(\n defaultImage: IGatsbyImageData,\n artDirected: Array\n): IGatsbyImageData {\n const { images, placeholder, ...props } = defaultImage\n const output: IGatsbyImageData = {\n ...props,\n images: {\n ...images,\n sources: [],\n },\n placeholder: placeholder && {\n ...placeholder,\n sources: [],\n },\n }\n\n artDirected.forEach(({ media, image }) => {\n if (!media) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(\n \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n )\n }\n return\n }\n\n if (\n image.layout !== defaultImage.layout &&\n process.env.NODE_ENV === `development`\n ) {\n console.warn(\n `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n )\n }\n\n output.images.sources.push(\n ...image.images.sources.map(source => {\n return { ...source, media }\n }),\n {\n media,\n srcSet: image.images.fallback.srcSet,\n }\n )\n\n if (!output.placeholder) {\n return\n }\n\n output.placeholder.sources.push({\n media,\n srcSet: image.placeholder.fallback,\n })\n })\n output.images.sources.push(...images.sources)\n if (placeholder?.sources) {\n output.placeholder?.sources.push(...placeholder.sources)\n }\n return output\n}\n","import React, { Fragment, FunctionComponent, PropsWithChildren } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n layout: Layout\n width: number\n height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n \n)\n\nexport function getSizer(\n layout: Layout,\n width: number,\n height: number\n): string {\n let sizer = ``\n if (layout === `fullWidth`) {\n sizer = `
`\n }\n\n if (layout === `constrained`) {\n sizer = `
\"\"
`\n }\n\n return sizer\n}\n\nconst Sizer: FunctionComponent = function Sizer({\n layout,\n width,\n height,\n}) {\n if (layout === `fullWidth`) {\n return (\n
\n )\n }\n\n if (layout === `constrained`) {\n return (\n
\n \n
\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent<\n PropsWithChildren\n> = function LayoutWrapper({ children, ...props }) {\n return (\n \n \n {children}\n\n {SERVER ? : null}\n \n )\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\n\nexport interface IResponsiveImageProps {\n sizes?: string\n srcSet: string\n}\n\nexport type SourceProps = IResponsiveImageProps &\n (\n | {\n media: string\n type?: string\n }\n | {\n media?: string\n type: string\n }\n )\n\ntype FallbackProps = { src: string } & Partial\n\ntype ImageProps = ImgHTMLAttributes & {\n src: string\n alt: string\n shouldLoad: boolean\n}\n\nexport type PictureProps = ImgHTMLAttributes & {\n fallback?: FallbackProps\n sources?: Array\n alt: string\n shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent = function Image({\n src,\n srcSet,\n loading,\n alt = ``,\n shouldLoad,\n ...props\n}) {\n return (\n \n )\n}\n\nexport const Picture: React.FC = function Picture({\n fallback,\n sources = [],\n shouldLoad = true,\n ...props\n}) {\n const sizes = props.sizes || fallback?.sizes\n const fallbackImage = (\n \n )\n\n if (!sources.length) {\n return fallbackImage\n }\n\n return (\n \n {sources.map(({ media, srcSet, type }) => (\n \n ))}\n {fallbackImage}\n \n )\n}\n\nImage.propTypes = {\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string,\n shouldLoad: PropTypes.bool,\n}\n\nPicture.displayName = `Picture`\nPicture.propTypes = {\n alt: PropTypes.string.isRequired,\n shouldLoad: PropTypes.bool,\n fallback: PropTypes.exact({\n src: PropTypes.string.isRequired,\n srcSet: PropTypes.string,\n sizes: PropTypes.string,\n }),\n sources: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.exact({\n media: PropTypes.string.isRequired,\n type: PropTypes.string,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n PropTypes.exact({\n media: PropTypes.string,\n type: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n ])\n ),\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\nimport { Picture, SourceProps } from \"./picture\"\n\nexport type PlaceholderProps = ImgHTMLAttributes & {\n fallback?: string\n sources?: Array\n}\n\nexport const Placeholder: FunctionComponent =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n \n )\n } else {\n return
\n }\n }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n fallback: PropTypes.string,\n sources: Picture.propTypes?.sources,\n alt: function (props, propName, componentName): Error | null {\n if (!props[propName]) {\n return null\n }\n\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage: React.FC = function MainImage(props) {\n return (\n <>\n \n \n \n )\n}\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React from \"react\"\nimport { getWrapperProps, getMainProps, getPlaceholderProps } from \"./hooks\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage, MainImageProps } from \"./main-image\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport PropTypes from \"prop-types\"\nimport type { FunctionComponent, WeakValidationMap } from \"react\"\nimport type { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage({\n as = `div`,\n className,\n class: preactClass,\n style,\n image,\n loading = `lazy`,\n imgClassName,\n imgStyle,\n backgroundColor,\n objectFit,\n objectPosition,\n ...props\n }) {\n if (!image) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n return null\n }\n\n if (preactClass) {\n className = preactClass\n }\n\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: placeholderBackgroundColor,\n } = image\n\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n const cleanedImages: IGatsbyImageData[\"images\"] = {\n fallback: undefined,\n sources: [],\n }\n if (images.fallback) {\n cleanedImages.fallback = {\n ...images.fallback,\n srcSet: images.fallback.srcSet\n ? removeNewLines(images.fallback.srcSet)\n : undefined,\n }\n }\n\n if (images.sources) {\n cleanedImages.sources = images.sources.map(source => {\n return {\n ...source,\n srcSet: removeNewLines(source.srcSet),\n }\n })\n }\n\n return React.createElement(\n as,\n {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n },\n \n \n\n )}\n // When eager is set we want to start the isLoading state on true (we want to load the img without react)\n {...getMainProps(\n loading === `eager`,\n false,\n cleanedImages,\n loading,\n imgStyle\n )}\n />\n \n )\n }\n\nexport const altValidator: PropTypes.Validator = (\n props: GatsbyImageProps,\n propName,\n componentName,\n ...rest\n): Error | undefined => {\n if (!props.alt && props.alt !== ``) {\n return new Error(\n `The \"alt\" prop is required in ${componentName}. If the image is purely presentational then pass an empty string: e.g. alt=\"\". Learn more: https://a11y-style-guide.com/style-guide/section-media.html`\n )\n }\n\n return PropTypes.string(props, propName, componentName, ...rest)\n}\n\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap\n","import {\n createElement,\n memo,\n useMemo,\n useEffect,\n useLayoutEffect,\n useRef,\n} from \"react\"\nimport {\n getWrapperProps,\n gatsbyImageIsInstalled,\n hasNativeLazyLoadSupport,\n} from \"./hooks\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport type {\n FC,\n ElementType,\n FunctionComponent,\n ImgHTMLAttributes,\n CSSProperties,\n ReactEventHandler,\n} from \"react\"\nimport type { renderImageToString } from \"./lazy-hydrate\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { Layout } from \"../image-utils\"\n\nconst imageCache = new Set()\nlet renderImageToStringPromise\nlet renderImage: typeof renderImageToString | undefined\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface GatsbyImageProps\n extends Omit<\n ImgHTMLAttributes,\n \"placeholder\" | \"onLoad\" | \"src\" | \"srcSet\" | \"width\" | \"height\"\n > {\n alt: string\n as?: ElementType\n className?: string\n class?: string\n imgClassName?: string\n image: IGatsbyImageData\n imgStyle?: CSSProperties\n backgroundColor?: string\n objectFit?: CSSProperties[\"objectFit\"]\n objectPosition?: CSSProperties[\"objectPosition\"]\n onLoad?: (props: { wasCached: boolean }) => void\n onError?: ReactEventHandler\n onStartLoad?: (props: { wasCached: boolean }) => void\n}\n\nexport interface IGatsbyImageData {\n layout: Layout\n width: number\n height: number\n backgroundColor?: string\n images: Pick\n placeholder?: Pick\n}\n\nconst GatsbyImageHydrator: FC = function GatsbyImageHydrator({\n as = `div`,\n image,\n style,\n backgroundColor,\n className,\n class: preactClass,\n onStartLoad,\n onLoad,\n onError,\n ...props\n}) {\n const { width, height, layout } = image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n const root = useRef()\n const cacheKey = useMemo(() => JSON.stringify(image.images), [image.images])\n\n // Preact uses class instead of className so we need to check for both\n if (preactClass) {\n className = preactClass\n }\n\n const sizer = getSizer(layout, width, height)\n\n useEffect(() => {\n if (!renderImageToStringPromise) {\n renderImageToStringPromise = import(`./lazy-hydrate`).then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n renderImage = renderImageToString\n\n return {\n renderImageToString,\n swapPlaceholderImage,\n }\n }\n )\n }\n\n // The plugin image component is a bit special where if it's server-side rendered, we add extra script tags to support lazy-loading without\n // In this case we stop hydration but fire the correct events.\n const ssrImage = root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n if (ssrImage && hasNativeLazyLoadSupport()) {\n if (ssrImage.complete) {\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n } else {\n onStartLoad?.({\n wasCached: true,\n })\n\n ssrImage.addEventListener(`load`, function onLoadListener() {\n ssrImage.removeEventListener(`load`, onLoadListener)\n\n onLoad?.({\n wasCached: true,\n })\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n })\n }\n\n imageCache.add(cacheKey)\n\n return\n }\n\n if (renderImage && imageCache.has(cacheKey)) {\n return\n }\n\n let animationFrame\n let cleanupCallback\n renderImageToStringPromise.then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n if (!root.current) {\n return\n }\n\n root.current.innerHTML = renderImageToString({\n isLoading: true,\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n if (!imageCache.has(cacheKey)) {\n animationFrame = requestAnimationFrame(() => {\n if (root.current) {\n cleanupCallback = swapPlaceholderImage(\n root.current,\n cacheKey,\n imageCache,\n style,\n onStartLoad,\n onLoad,\n onError\n )\n }\n })\n }\n }\n )\n\n // eslint-disable-next-line consistent-return\n return (): void => {\n if (animationFrame) {\n cancelAnimationFrame(animationFrame)\n }\n if (cleanupCallback) {\n cleanupCallback()\n }\n }\n }, [image])\n\n // useLayoutEffect is ran before React commits to the DOM. This allows us to make sure our HTML is using our cached image version\n useLayoutEffect(() => {\n if (imageCache.has(cacheKey) && renderImage) {\n root.current.innerHTML = renderImage({\n isLoading: imageCache.has(cacheKey),\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n }\n }, [image])\n\n // By keeping all props equal React will keep the component in the DOM\n return createElement(as, {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n ref: root,\n dangerouslySetInnerHTML: {\n __html: sizer,\n },\n suppressHydrationWarning: true,\n })\n}\n\nexport const GatsbyImage: FunctionComponent = memo(\n function GatsbyImage(props) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n\n return null\n }\n\n if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n console.warn(\n `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n )\n }\n\n return createElement(GatsbyImageHydrator, props)\n }\n)\n\nGatsbyImage.propTypes = propTypes\nGatsbyImage.displayName = `GatsbyImage`\n","import React, { FunctionComponent, ReactElement } from \"react\"\nimport {\n altValidator,\n GatsbyImage as GatsbyImageServer,\n} from \"./gatsby-image.server\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport PropTypes from \"prop-types\"\nimport { ISharpGatsbyImageArgs } from \"../image-utils\"\n\nexport interface IStaticImageProps\n extends Omit,\n Omit {\n src: string\n filename?: string\n}\n\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nexport function _getStaticImage(\n GatsbyImage: FunctionComponent\n): React.FC {\n return function StaticImage({\n src,\n __imageData: imageData,\n __error,\n // We extract these because they're not meant to be passed-down to GatsbyImage\n /* eslint-disable @typescript-eslint/no-unused-vars */\n width,\n height,\n aspectRatio,\n tracedSVGOptions,\n placeholder,\n formats,\n quality,\n transformOptions,\n jpgOptions,\n pngOptions,\n webpOptions,\n avifOptions,\n blurredOptions,\n breakpoints,\n outputPixelDensities,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n }): ReactElement {\n if (__error) {\n console.warn(__error)\n }\n\n if (imageData) {\n return \n }\n console.warn(`Image not loaded`, src)\n if (!__error && process.env.NODE_ENV === `development`) {\n console.warn(\n `Please ensure that \"gatsby-plugin-image\" is included in the plugins array in gatsby-config.js, and that your version of gatsby is at least 2.24.78`\n )\n }\n return null\n }\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator = (\n props: IStaticImageProps & IPrivateProps,\n propName: keyof IStaticImageProps & IPrivateProps,\n ...rest\n) => {\n if (\n props.layout === `fullWidth` &&\n (propName === `width` || propName === `height`) &&\n props[propName]\n ) {\n return new Error(\n `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n )\n }\n return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n src: PropTypes.string.isRequired,\n alt: altValidator,\n width: checkDimensionProps,\n height: checkDimensionProps,\n sizes: PropTypes.string,\n layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n if (props.layout === undefined) {\n return undefined\n }\n if (validLayouts.has(props.layout)) {\n return undefined\n }\n\n return new Error(\n `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n )\n },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n GatsbyImage as GatsbyImageBrowser,\n IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n _getStaticImage,\n propTypes,\n IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\";\n\n// when we don't have localisation in our manifest, we tree shake everything away\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _gatsby = require(\"gatsby\");\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n return pathname.startsWith(startUrl);\n });\n if (!localizedManifest) {\n return defaultFilename;\n }\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\nexports.default = _default;","import * as pkg from \"../package.json\";\n\n/**\n * Version of the gatsby-plugin-prismic-preview plugin. This version may be\n * displayed publicly to help debug errors.\n */\nexport const VERSION = pkg.version;\n\n/**\n * Symbol used to identify if a value is a proxy. Attach this to proxies (done\n * automatically via `lib/createGetProxy`).\n */\nexport const IS_PROXY = Symbol(\"IS_PROXY\");\n\n/**\n * Default value for the `toolbar` plugin option which determines which version\n * of the Prismic Toolbar to render.\n */\nexport const DEFAULT_TOOLBAR = \"new\";\n\n/**\n * Default value for the `promptForAccessToken` plugin option which determines\n * if an editor should be prompted for an access token if one has not already\n * been provided.\n */\nexport const DEFAULT_PROMPT_FOR_ACCESS_TOKEN = true;\n\n/**\n * Default page size for Prismic API query requests. This is the maximum allowed\n * page size to minimize the number of requests.\n */\nexport const QUERY_PAGE_SIZE = 100;\n\n/**\n * Template used to generate a hash for a collection of type paths.\n */\nexport const TYPE_PATHS_BASENAME_TEMPLATE = \"type-paths___%s\";\n\n/**\n * Identifier used to store plugin options on `window` to pass to other parts of\n * the preview system.\n */\nexport const WINDOW_PLUGIN_OPTIONS_KEY =\n\t\"__GATSBY_PLUGIN_PRISMIC_PREVIEWS_PLUGIN_OPTIONS__\";\n\n/**\n * Identifier used to store plugin options on `window` to pass to other parts of\n * the preview system.\n */\nexport const WINDOW_PROVIDER_PRESENCE_KEY =\n\t\"__GATSBY_PLUGIN_PRISMIC_PREVIEWS_PROVIDER_PRESENCE__\";\n\n/**\n * Name of the locally stored Prismic repository access token.\n */\nexport const COOKIE_ACCESS_TOKEN_NAME =\n\t\"gatsby-plugin-prismic-previews.%s.accessToken\";\n\n/**\n * Template used when reporting which includes a namespace.\n */\nexport const REPORTER_TEMPLATE = \"gatsby-plugin-prismic-previews(%s) - %s\";\n\n/**\n * Template used to report the location of the serialized type paths store.\n */\nexport const WROTE_TYPE_PATHS_TO_FS_MSG = \"Wrote type paths store to %s\";\n\n/**\n * Message used when type paths cannot be found for a repository.\n */\nexport const TYPE_PATHS_MISSING_NODE_MSG = `Type paths for this repository could not be found. Check that you have gatsby-source-prismic configured with the same repository name and type prefix (if used) in gatsby-config.js.`;\n\n/**\n * Message used when serialized type paths cannot be found for a repository.\n */\nexport const TYPE_PATHS_MISSING_BROWSER_MSG =\n\t\"The type paths store for this repository could not be found.\";\n\n/**\n * Message used when a field does not match its expected type.\n */\nexport const FIELD_VALUE_TYPE_PATH_MISMATCH_MSG =\n\t'Field value at \"%s\" does not match the type declared in its type path: %s';\n\n/**\n * Message used when a repository configuration is not provided.\n */\nexport const MISSING_REPOSITORY_CONFIG_MSG =\n\t'A configuration object could not be found for repository \"%s\". Check that the repository is configured in your app\\'s %s.';\n\n/**\n * Message used when repository plugin options are not provided.\n */\nexport const MISSING_PLUGIN_OPTIONS_MSG =\n\t'Plugin options could not be found for repository \"%s\". Check that the repository is configured in your app\\'s gatsby-config.js';\n\n/**\n * Message used when the required context provider is not added.\n */\nexport const MISSING_PROVIDER_MSG = `A was not found in your app. Add to your app's gatsby-browser.js and gatsby-ssr.js wrapRootElement exports.\n\nSee: https://www.gatsbyjs.com/docs/reference/config-files/gatsby-browser/#wrapRootElement\nSee: https://www.gatsbyjs.com/docs/reference/config-files/gatsby-ssr/#wrapRootElement`;\n","import * as gatsby from \"gatsby\";\n\nimport { PluginOptions } from \"./types\";\nimport { WINDOW_PLUGIN_OPTIONS_KEY } from \"./constants\";\n\n/**\n * Called when the Gatsby browser runtime first starts.\n *\n * @see https://www.gatsbyjs.com/docs/reference/config-files/gatsby-browser/#onClientEntry\n */\nexport const onClientEntry: NonNullable<\n\tgatsby.GatsbyBrowser[\"onClientEntry\"]\n> = (_gatsbyContext, pluginOptions: PluginOptions) => {\n\tif (typeof window !== \"undefined\") {\n\t\twindow[WINDOW_PLUGIN_OPTIONS_KEY] = {\n\t\t\t...window[WINDOW_PLUGIN_OPTIONS_KEY],\n\t\t\t[pluginOptions.repositoryName]: pluginOptions,\n\t\t};\n\n\t\tif (pluginOptions.toolbar === \"legacy\") {\n\t\t\twindow.prismic = {\n\t\t\t\t...window.prismic,\n\t\t\t\tendpoint: pluginOptions.apiEndpoint,\n\t\t\t};\n\t\t}\n\t}\n};\n","import * as gatsby from 'gatsby'\nimport * as pc from 'pascal-case'\nimport * as cc from 'camel-case'\n\n/**\n * Converts a collection of strings to a single Pascal cased string.\n *\n * @param parts Strings to convert into a single Pascal cased string.\n *\n * @return Pascal cased string version of `parts`.\n */\nconst pascalCase = (...parts: (string | null | undefined)[]): string =>\n pc.pascalCase(parts.filter((p) => p != null).join(' '), {\n transform: pc.pascalCaseTransformMerge,\n })\n\n/**\n * Converts a collection of strings to a single camel cased string.\n *\n * @param parts Strings to convert into a single camel cased string.\n *\n * @return Camel cased string version of `parts`.\n */\nconst camelCase = (...parts: (string | null | undefined)[]): string =>\n cc.camelCase(parts.filter((p) => p != null).join(' '), {\n transform: cc.camelCaseTransformMerge,\n })\n\n/**\n * Casts a value to an array. If the input is an array, the input is returned as\n * is. Otherwise, the input is returned as a single element array with the input\n * as its only value.\n *\n * @param input Input that will be casted to an array.\n *\n * @return `input` that is guaranteed to be an array.\n */\nconst castArray = (input: T | T[]): T[] =>\n Array.isArray(input) ? input : [input]\n\n/**\n * Reserved fields for Gatsby nodes.\n */\nconst RESERVED_GATSBY_NODE_FIELDS = [\n 'id',\n 'internal',\n 'fields',\n 'parent',\n 'children',\n] as const\n\ninterface CreateNodeHelpersParams {\n /** Prefix for all nodes. Used as a namespace for node type names. */\n typePrefix: string\n /**\n * Prefix for field names. Used as a namespace for fields that conflict with\n * Gatsby's reserved field names.\n * */\n fieldPrefix?: string\n /** Gatsby's `createNodeId` helper. */\n createNodeId: gatsby.SourceNodesArgs['createNodeId']\n /** Gatsby's `createContentDigest` helper. */\n createContentDigest: gatsby.SourceNodesArgs['createContentDigest']\n}\n\n/**\n * A value that can be converted to a string using `toString()`.\n */\nexport interface Stringable {\n toString(): string\n}\n\n/**\n * A record that can be globally identified using its `id` field.\n */\nexport interface IdentifiableRecord {\n id: Stringable\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any\n}\n\n/**\n * Gatsby node helper functions to aid node creation.\n */\nexport interface NodeHelpers {\n /**\n * Creates a namespaced type name in Pascal case. Nodes created using a\n * `createNodeFactory` function will automatically be namespaced using this\n * function.\n *\n * @param parts Parts of the type name. If more than one string is provided,\n * they will be concatenated in Pascal case.\n *\n * @return Namespaced type name.\n */\n createTypeName: (parts: string | string[]) => string\n\n /**\n * Creates a namespaced field name in camel case. Nodes created using a\n * `createNodeFactory` function will automatically have namespaced fields\n * using this function ONLY if the name conflicts with Gatsby's reserved\n * fields.\n *\n * @param parts Parts of the field name. If more than one string is provided,\n * they will be concatenated in camel case.\n *\n * @return Namespaced field name.\n */\n createFieldName: (parts: string | string[]) => string\n\n /**\n * Creates a deterministic node ID based on the `typePrefix` option provided\n * to `createNodeHelpers` and the provided `parts` argument. Providing the\n * same `parts` will always return the same result.\n *\n * @param parts Strings to globally identify a node within the domain of the\n * node helpers.\n *\n * @return Node ID based on the provided `parts`.\n */\n createNodeId: (parts: string | string[]) => string\n\n /**\n * Creates a function that will convert an identifiable record (one that has\n * an `id` field) to a valid input for Gatsby's `createNode` action.\n *\n * @param nameParts Parts of the type name for the resulting factory. All\n * records called with the resulting function will have a type name based on\n * this parameter.\n *\n * @param options Options to control the resulting function's output.\n *\n * @return A function that converts an identifiable record to a valid input\n * for Gatsby's `createNode` action.\n */\n createNodeFactory: (\n nameParts: string | string[],\n options?: CreateNodeFactoryOptions,\n ) => (node: IdentifiableRecord) => gatsby.NodeInput\n}\n\n/**\n * Options for a node factory.\n */\ntype CreateNodeFactoryOptions = {\n /**\n * Determines if the node's `id` field is unique within all nodes created with\n * this collection of node helpers.\n *\n * If `false`, the ID will be namespaced with the node's type and the\n * `typePrefix` value.\n *\n * If `true`, the ID will not be namespaced with the node's type, but will still\n * be namespaced with the `typePrefix` value.\n *\n * @defaultValue `false`\n */\n idIsGloballyUnique?: boolean\n}\n\n/**\n * Creates Gatsby node helper functions to aid node creation.\n */\nexport const createNodeHelpers = ({\n typePrefix,\n fieldPrefix = typePrefix,\n createNodeId: gatsbyCreateNodeId,\n createContentDigest: gatsbyCreateContentDigest,\n}: CreateNodeHelpersParams): NodeHelpers => {\n const createTypeName = (nameParts: string | string[]): string =>\n pascalCase(typePrefix, ...castArray(nameParts))\n\n const createFieldName = (nameParts: string | string[]): string =>\n camelCase(fieldPrefix, ...castArray(nameParts))\n\n const createNodeId = (nameParts: string | string[]): string =>\n gatsbyCreateNodeId(\n [typePrefix, ...castArray(nameParts)].filter((p) => p != null).join(' '),\n )\n\n const createNodeFactory = (\n nameParts: string | string[],\n { idIsGloballyUnique = false }: CreateNodeFactoryOptions = {},\n ) => (node: IdentifiableRecord): gatsby.NodeInput => {\n const id = idIsGloballyUnique\n ? createNodeId(node.id.toString())\n : createNodeId([...castArray(nameParts), node.id.toString()])\n\n const res = {\n ...node,\n id,\n internal: {\n type: createTypeName(nameParts),\n contentDigest: gatsbyCreateContentDigest(node),\n },\n } as gatsby.NodeInput\n\n for (const reservedField of RESERVED_GATSBY_NODE_FIELDS) {\n if (reservedField in node) {\n res[createFieldName(reservedField)] = node[reservedField]\n }\n }\n\n return res\n }\n\n return {\n createTypeName,\n createFieldName,\n createNodeId,\n createNodeFactory,\n }\n}\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var getBooleanAlgebra = function (B) {\n return function () { return ({\n meet: function (x, y) { return function (a) { return B.meet(x(a), y(a)); }; },\n join: function (x, y) { return function (a) { return B.join(x(a), y(a)); }; },\n zero: function () { return B.zero; },\n one: function () { return B.one; },\n implies: function (x, y) { return function (a) { return B.implies(x(a), y(a)); }; },\n not: function (x) { return function (a) { return B.not(x(a)); }; }\n }); };\n};\n/**\n * Unary functions form a semigroup as long as you can provide a semigroup for the codomain.\n *\n * @example\n * import { Predicate, getSemigroup } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate = (n) => n <= 2\n * const g: Predicate = (n) => n >= 0\n *\n * const S1 = getSemigroup(B.SemigroupAll)()\n *\n * assert.deepStrictEqual(S1.concat(f, g)(1), true)\n * assert.deepStrictEqual(S1.concat(f, g)(3), false)\n *\n * const S2 = getSemigroup(B.SemigroupAny)()\n *\n * assert.deepStrictEqual(S2.concat(f, g)(1), true)\n * assert.deepStrictEqual(S2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\nexport var getSemigroup = function (S) {\n return function () { return ({\n concat: function (f, g) { return function (a) { return S.concat(f(a), g(a)); }; }\n }); };\n};\n/**\n * Unary functions form a monoid as long as you can provide a monoid for the codomain.\n *\n * @example\n * import { Predicate } from 'fp-ts/Predicate'\n * import { getMonoid } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate = (n) => n <= 2\n * const g: Predicate = (n) => n >= 0\n *\n * const M1 = getMonoid(B.MonoidAll)()\n *\n * assert.deepStrictEqual(M1.concat(f, g)(1), true)\n * assert.deepStrictEqual(M1.concat(f, g)(3), false)\n *\n * const M2 = getMonoid(B.MonoidAny)()\n *\n * assert.deepStrictEqual(M2.concat(f, g)(1), true)\n * assert.deepStrictEqual(M2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\nexport var getMonoid = function (M) {\n var getSemigroupM = getSemigroup(M);\n return function () { return ({\n concat: getSemigroupM().concat,\n empty: function () { return M.empty; }\n }); };\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var getSemiring = function (S) { return ({\n add: function (f, g) { return function (x) { return S.add(f(x), g(x)); }; },\n zero: function () { return S.zero; },\n mul: function (f, g) { return function (x) { return S.mul(f(x), g(x)); }; },\n one: function () { return S.one; }\n}); };\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var getRing = function (R) {\n var S = getSemiring(R);\n return {\n add: S.add,\n mul: S.mul,\n one: S.one,\n zero: S.zero,\n sub: function (f, g) { return function (x) { return R.sub(f(x), g(x)); }; }\n };\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nexport var apply = function (a) {\n return function (f) {\n return f(a);\n };\n};\n/**\n * @since 2.0.0\n */\nexport function identity(a) {\n return a;\n}\n/**\n * @since 2.0.0\n */\nexport var unsafeCoerce = identity;\n/**\n * @since 2.0.0\n */\nexport function constant(a) {\n return function () { return a; };\n}\n/**\n * A thunk that returns always `true`.\n *\n * @since 2.0.0\n */\nexport var constTrue = /*#__PURE__*/ constant(true);\n/**\n * A thunk that returns always `false`.\n *\n * @since 2.0.0\n */\nexport var constFalse = /*#__PURE__*/ constant(false);\n/**\n * A thunk that returns always `null`.\n *\n * @since 2.0.0\n */\nexport var constNull = /*#__PURE__*/ constant(null);\n/**\n * A thunk that returns always `undefined`.\n *\n * @since 2.0.0\n */\nexport var constUndefined = /*#__PURE__*/ constant(undefined);\n/**\n * A thunk that returns always `void`.\n *\n * @since 2.0.0\n */\nexport var constVoid = constUndefined;\nexport function flip(f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length > 1) {\n return f(args[1], args[0]);\n }\n return function (a) { return f(a)(args[0]); };\n };\n}\nexport function flow(ab, bc, cd, de, ef, fg, gh, hi, ij) {\n switch (arguments.length) {\n case 1:\n return ab;\n case 2:\n return function () {\n return bc(ab.apply(this, arguments));\n };\n case 3:\n return function () {\n return cd(bc(ab.apply(this, arguments)));\n };\n case 4:\n return function () {\n return de(cd(bc(ab.apply(this, arguments))));\n };\n case 5:\n return function () {\n return ef(de(cd(bc(ab.apply(this, arguments)))));\n };\n case 6:\n return function () {\n return fg(ef(de(cd(bc(ab.apply(this, arguments))))));\n };\n case 7:\n return function () {\n return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));\n };\n case 8:\n return function () {\n return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));\n };\n case 9:\n return function () {\n return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));\n };\n }\n return;\n}\n/**\n * @since 2.0.0\n */\nexport function tuple() {\n var t = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n t[_i] = arguments[_i];\n }\n return t;\n}\n/**\n * @since 2.0.0\n */\nexport function increment(n) {\n return n + 1;\n}\n/**\n * @since 2.0.0\n */\nexport function decrement(n) {\n return n - 1;\n}\n/**\n * @since 2.0.0\n */\nexport function absurd(_) {\n throw new Error('Called `absurd` function which should be uncallable');\n}\n/**\n * Creates a tupled version of this function: instead of `n` arguments, it accepts a single tuple argument.\n *\n * @example\n * import { tupled } from 'fp-ts/function'\n *\n * const add = tupled((x: number, y: number): number => x + y)\n *\n * assert.strictEqual(add([1, 2]), 3)\n *\n * @since 2.4.0\n */\nexport function tupled(f) {\n return function (a) { return f.apply(void 0, a); };\n}\n/**\n * Inverse function of `tupled`\n *\n * @since 2.4.0\n */\nexport function untupled(f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return f(a);\n };\n}\nexport function pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {\n switch (arguments.length) {\n case 1:\n return a;\n case 2:\n return ab(a);\n case 3:\n return bc(ab(a));\n case 4:\n return cd(bc(ab(a)));\n case 5:\n return de(cd(bc(ab(a))));\n case 6:\n return ef(de(cd(bc(ab(a)))));\n case 7:\n return fg(ef(de(cd(bc(ab(a))))));\n case 8:\n return gh(fg(ef(de(cd(bc(ab(a)))))));\n case 9:\n return hi(gh(fg(ef(de(cd(bc(ab(a))))))));\n default: {\n var ret = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n ret = arguments[i](ret);\n }\n return ret;\n }\n }\n}\n/**\n * Type hole simulation\n *\n * @since 2.7.0\n */\nexport var hole = absurd;\n/**\n * @since 2.11.0\n */\nexport var SK = function (_, b) { return b; };\n/**\n * Use `Predicate` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport function not(predicate) {\n return function (a) { return !predicate(a); };\n}\n/**\n * Use `Endomorphism` module instead.\n *\n * @category zone of death\n * @since 2.10.0\n * @deprecated\n */\nexport var getEndomorphismMonoid = function () { return ({\n concat: function (first, second) { return flow(first, second); },\n empty: identity\n}); };\n/** @internal */\nexport var dual = function (arity, body) {\n var isDataFirst = typeof arity === 'number' ? function (args) { return args.length >= arity; } : arity;\n return function () {\n var args = Array.from(arguments);\n if (isDataFirst(arguments)) {\n return body.apply(this, args);\n }\n return function (self) { return body.apply(void 0, __spreadArray([self], args, false)); };\n };\n};\n","type EmptyObjectField = Record;\n\n/**\n * Valid states for fields. Not all fields use this type (e.g. BooleanField).\n */\nexport type FieldState = \"empty\" | \"filled\";\n\n/**\n * Types for RichTextNodes\n *\n * @see More details: {@link https://prismic.io/docs/core-concepts/rich-text-title}\n */\nexport const RichTextNodeType = {\n\theading1: \"heading1\",\n\theading2: \"heading2\",\n\theading3: \"heading3\",\n\theading4: \"heading4\",\n\theading5: \"heading5\",\n\theading6: \"heading6\",\n\tparagraph: \"paragraph\",\n\tpreformatted: \"preformatted\",\n\tstrong: \"strong\",\n\tem: \"em\",\n\tlistItem: \"list-item\",\n\toListItem: \"o-list-item\",\n\tlist: \"group-list-item\",\n\toList: \"group-o-list-item\",\n\timage: \"image\",\n\tembed: \"embed\",\n\thyperlink: \"hyperlink\",\n\tlabel: \"label\",\n\tspan: \"span\",\n} as const;\n\n// Text nodes\n\n/**\n * Base to be extended by other RT Nodes.\n */\nexport interface RTTextNodeBase {\n\ttext: string;\n\tspans: RTInlineNode[];\n}\n\n/**\n * Rich Text `heading1` node\n */\nexport interface RTHeading1Node extends RTTextNodeBase {\n\ttype: typeof RichTextNodeType.heading1;\n}\n\n/**\n * Rich Text `heading2` node\n */\nexport interface RTHeading2Node extends RTTextNodeBase {\n\ttype: typeof RichTextNodeType.heading2;\n}\n\n/**\n * Rich Text `heading3` node\n */\nexport interface RTHeading3Node extends RTTextNodeBase {\n\ttype: typeof RichTextNodeType.heading3;\n}\n\n/**\n * Rich Text `heading4` node\n */\nexport interface RTHeading4Node extends RTTextNodeBase {\n\ttype: typeof RichTextNodeType.heading4;\n}\n\n/**\n * Rich Text `heading5` node\n */\nexport interface RTHeading5Node extends RTTextNodeBase {\n\ttype: typeof RichTextNodeType.heading5;\n}\n\n/**\n * Rich Text `heading6` node\n */\nexport interface RTHeading6Node extends RTTextNodeBase {\n\ttype: typeof RichTextNodeType.heading6;\n}\n\n/**\n * Rich Text `paragraph` node\n */\nexport interface RTParagraphNode extends RTTextNodeBase {\n\ttype: typeof RichTextNodeType.paragraph;\n}\n\n/**\n * Rich Text `preformatted` node\n */\nexport interface RTPreformattedNode extends RTTextNodeBase {\n\ttype: typeof RichTextNodeType.preformatted;\n}\n\n/**\n * Rich Text `list-item` node\n */\nexport interface RTListItemNode extends RTTextNodeBase {\n\ttype: typeof RichTextNodeType.listItem;\n}\n\n/**\n * Rich Text `o-list-item` node for ordered lists\n */\nexport interface RTOListItemNode extends RTTextNodeBase {\n\ttype: typeof RichTextNodeType.oListItem;\n}\n\n// Span nodes\n\n/**\n * @internal Span Node base to be extended for other Span nodes\n */\nexport interface RTSpanNodeBase {\n\tstart: number;\n\tend: number;\n}\n/**\n * Rich Text `strong` node\n */\nexport interface RTStrongNode extends RTSpanNodeBase {\n\ttype: typeof RichTextNodeType.strong;\n}\n\n/**\n * Rich Text `embed` node\n */\nexport interface RTEmNode extends RTSpanNodeBase {\n\ttype: typeof RichTextNodeType.em;\n}\n\n/**\n * Rich Text `label` node\n */\nexport interface RTLabelNode extends RTSpanNodeBase {\n\ttype: typeof RichTextNodeType.label;\n\tdata: {\n\t\tlabel: string;\n\t};\n}\n\n// Media nodes\n\n/**\n * Rich Text `image` nodes. They could link to other documents, external web\n * links and media fields\n */\nexport type RTImageNode = {\n\ttype: typeof RichTextNodeType.image;\n\turl: string;\n\talt: string | null;\n\tcopyright: string | null;\n\tdimensions: {\n\t\twidth: number;\n\t\theight: number;\n\t};\n\tlinkTo?:\n\t\t| FilledLinkToDocumentField\n\t\t| FilledLinkToWebField\n\t\t| FilledLinkToMediaField;\n};\n\n/**\n * Rich Text `embed` node\n */\nexport type RTEmbedNode = {\n\ttype: typeof RichTextNodeType.embed;\n\toembed: EmbedField;\n};\n\n// Link nodes\n\n/**\n * Rich Text `a` node\n *\n * @see More details: {@link https://prismic.io/docs/core-concepts/edit-rich-text#add-links}\n */\nexport interface RTLinkNode extends RTSpanNodeBase {\n\ttype: typeof RichTextNodeType.hyperlink;\n\tdata:\n\t\t| FilledLinkToDocumentField\n\t\t| FilledLinkToWebField\n\t\t| FilledLinkToMediaField;\n}\n\n// Serialization related nodes\n\n/**\n * Rich Text `list` node\n */\nexport interface RTListNode {\n\ttype: typeof RichTextNodeType.list;\n\titems: RTListItemNode[];\n}\n\n/**\n * Rich Text o-lost node\n */\nexport interface RTOListNode {\n\ttype: typeof RichTextNodeType.oList;\n\titems: RTOListItemNode[];\n}\n\n// This one is confusing but it's actually the inner content of a block\n/**\n * Rich Text `span` node\n */\nexport interface RTSpanNode extends RTTextNodeBase {\n\ttype: typeof RichTextNodeType.span;\n}\n\n// Helpers\n\n/**\n * Nodes from a Rich Text Field\n */\nexport type RTNode =\n\t| RTHeading1Node\n\t| RTHeading2Node\n\t| RTHeading3Node\n\t| RTHeading4Node\n\t| RTHeading5Node\n\t| RTHeading6Node\n\t| RTParagraphNode\n\t| RTPreformattedNode\n\t| RTListItemNode\n\t| RTOListItemNode\n\t| RTImageNode\n\t| RTEmbedNode;\n\n/**\n * Rich text nodes with text\n */\nexport type RTTextNode =\n\t| RTHeading1Node\n\t| RTHeading2Node\n\t| RTHeading3Node\n\t| RTHeading4Node\n\t| RTHeading5Node\n\t| RTHeading6Node\n\t| RTParagraphNode\n\t| RTPreformattedNode\n\t| RTListItemNode\n\t| RTOListItemNode;\n\n/**\n * Rich Text block nodes\n */\nexport type RTBlockNode =\n\t| RTHeading1Node\n\t| RTHeading2Node\n\t| RTHeading3Node\n\t| RTHeading4Node\n\t| RTHeading5Node\n\t| RTHeading6Node\n\t| RTParagraphNode\n\t| RTPreformattedNode\n\t| RTListItemNode\n\t| RTOListItemNode\n\t| RTListNode\n\t| RTOListNode\n\t| RTImageNode\n\t| RTEmbedNode;\n\n/**\n * Inline Rich Text Nodes\n */\nexport type RTInlineNode = RTStrongNode | RTEmNode | RTLabelNode | RTLinkNode;\n\n/**\n * All Rich Text nodes\n */\nexport type RTAnyNode = RTBlockNode | RTInlineNode | RTSpanNode;\n\n/**\n * All Rich Text Title Nodes\n *\n * @see Title field documentation: {@link https://prismic.io/docs/core-concepts/rich-text-title}\n */\nexport type TitleField =\n\tState extends \"empty\"\n\t\t? []\n\t\t: [\n\t\t\t\tOmit<\n\t\t\t\t\t| RTHeading1Node\n\t\t\t\t\t| RTHeading2Node\n\t\t\t\t\t| RTHeading3Node\n\t\t\t\t\t| RTHeading4Node\n\t\t\t\t\t| RTHeading5Node\n\t\t\t\t\t| RTHeading6Node,\n\t\t\t\t\t\"spans\"\n\t\t\t\t> & {\n\t\t\t\t\tspans: [];\n\t\t\t\t},\n\t\t ];\n\nexport type RichTextField =\n\tState extends \"empty\" ? [] : [RTNode, ...RTNode[]];\n\n// Image\n\n/**\n * An individual image within an Image field. The base image and each thumbnail\n * uses this type.\n *\n * @typeParam State - State of the field which determines its shape.\n * @see {@link ImageField} for a full Image field type.\n */\nexport type ImageFieldImage =\n\tState extends \"empty\" ? EmptyImageFieldImage : FilledImageFieldImage;\n\nexport interface FilledImageFieldImage {\n\turl: string;\n\tdimensions: {\n\t\twidth: number;\n\t\theight: number;\n\t};\n\talt: string | null;\n\tcopyright: string | null;\n}\n\nexport interface EmptyImageFieldImage {\n\turl?: null;\n\tdimensions?: null;\n\talt?: null;\n\tcopyright?: null;\n}\n\n/**\n * Useful to flatten the type output to improve type hints shown in editors. And\n * also to transform an interface into a type to aide with assignability.\n *\n * Taken from the `type-fest` package.\n *\n * @typeParam T - The type to simplify.\n * @see https://github.com/sindresorhus/type-fest/blob/cbd7ec510bd136ac045bbc74e391ee686b8a9a2f/source/simplify.d.ts\n */\ntype Simplify = { [P in keyof T]: T[P] };\n\n/**\n * Image Field\n *\n * @typeParam ThumbnailNames - Names of thumbnails. If the field does not\n * contain thumbnails, `null` can be used to \"disable\" thumbnail fields.\n * @typeParam State - State of the field which determines its shape.\n * @see Image field documentation: {@link https://prismic.io/docs/core-concepts/image}\n */\nexport type ImageField<\n\tThumbnailNames extends string | null = never,\n\tState extends FieldState = FieldState,\n> = Simplify<\n\tImageFieldImage &\n\t\tRecord<\n\t\t\tThumbnailNames extends string\n\t\t\t\t? Exclude\n\t\t\t\t: never,\n\t\t\tImageFieldImage\n\t\t>\n>;\n\n// Links\n\n/**\n * Link Types\n */\nexport const LinkType = {\n\tAny: \"Any\",\n\tDocument: \"Document\",\n\tMedia: \"Media\",\n\tWeb: \"Web\",\n} as const;\n\n/**\n * For link fields that haven't been filled\n *\n * @typeParam Type - The type of link.\n */\nexport type EmptyLinkField<\n\tType extends typeof LinkType[keyof typeof LinkType] = typeof LinkType.Any,\n> = {\n\tlink_type: Type | string;\n};\n\n/**\n * Links that refer to Documents\n */\nexport interface FilledLinkToDocumentField<\n\tTypeEnum = string,\n\tLangEnum = string,\n\tDataInterface extends Record<\n\t\tstring,\n\t\tAnyRegularField | GroupField | SliceZone\n\t> = never,\n> {\n\tlink_type: typeof LinkType.Document;\n\tid: string;\n\tuid?: string;\n\ttype: TypeEnum;\n\ttags: string[];\n\tlang: LangEnum;\n\turl?: string;\n\tslug?: string;\n\tisBroken?: boolean;\n\tdata?: DataInterface;\n}\n\n/**\n * Link that points to external website\n */\nexport interface FilledLinkToWebField {\n\tlink_type: typeof LinkType.Web;\n\turl: string;\n\ttarget?: string;\n}\n\n/**\n * Link that points to media\n */\nexport interface FilledLinkToMediaField {\n\tlink_type: typeof LinkType.Media;\n\tname: string;\n\tkind: string;\n\turl: string;\n\tsize: string;\n\theight?: string | null;\n\twidth?: string | null;\n}\n\n/**\n * Field for related documents\n *\n * @typeParam TypeEnum - Type API ID of the document.\n * @typeParam LangEnum - Language API ID of the document.\n * @typeParam DataInterface - Data fields for the document (filled in via\n * GraphQuery of `fetchLinks`).\n * @typeParam State - State of the field which determines its shape.\n */\nexport type RelationField<\n\tTypeEnum = string,\n\tLangEnum = string,\n\tDataInterface extends Record<\n\t\tstring,\n\t\tAnyRegularField | GroupField | SliceZone\n\t> = never,\n\tState extends FieldState = FieldState,\n> = State extends \"empty\"\n\t? EmptyLinkField\n\t: FilledLinkToDocumentField;\n\n/**\n * Link Field\n *\n * @typeParam TypeEnum - Type API ID of the document.\n * @typeParam LangEnum - Language API ID of the document.\n * @typeParam DataInterface - Data fields for the document (filled in via\n * GraphQuery of `fetchLinks`).\n * @typeParam State - State of the field which determines its shape.\n */\nexport type LinkField<\n\tTypeEnum = string,\n\tLangEnum = string,\n\tDataInterface extends Record<\n\t\tstring,\n\t\tAnyRegularField | GroupField | SliceZone\n\t> = never,\n\tState extends FieldState = FieldState,\n> = State extends \"empty\"\n\t? EmptyLinkField\n\t:\n\t\t\t| RelationField\n\t\t\t| FilledLinkToWebField\n\t\t\t| LinkToMediaField;\n\n/**\n * Link field that points to media\n *\n * @typeParam State - State of the field which determines its shape.\n */\nexport type LinkToMediaField =\n\tState extends \"empty\"\n\t\t? EmptyLinkField\n\t\t: FilledLinkToMediaField;\n\n// Embed\n\n/**\n * oEmbed 1.0 possible types.\n *\n * @see oEmbed specification: {@link https://oembed.com}\n */\nexport const OEmbedType = {\n\tPhoto: \"photo\",\n\tVideo: \"video\",\n\tLink: \"link\",\n\tRich: \"rich\",\n} as const;\n\n/**\n * oEmbed response base fields. Those are every mandatory fields an oEmbed\n * response must feature.\n *\n * @see oEmbed specification: {@link https://oembed.com}\n */\ntype OEmbedBase = {\n\t/**\n\t * oEmbed resource type.\n\t */\n\ttype: TType;\n\n\t/**\n\t * oEmbed version number, this must be \"1.0\".\n\t */\n\tversion: string;\n};\n\n/**\n * oEmbed response extra fields. Those are every non-mandatory and unknown\n * fields an oEmbed response can feature.\n *\n * @see oEmbed specification: {@link https://oembed.com}\n */\nexport type OEmbedExtra = {\n\t/**\n\t * oEmbed text title, describing the resource.\n\t */\n\ttitle?: string | null;\n\n\t/**\n\t * oEmbed resource author/owner name.\n\t */\n\tauthor_name?: string | null;\n\n\t/**\n\t * oEmbed resource author/owner URL.\n\t */\n\tauthor_url?: string | null;\n\n\t/**\n\t * oEmbed resource provider name.\n\t */\n\tprovider_name?: string | null;\n\n\t/**\n\t * oEmbed resource provider URL.\n\t */\n\tprovider_url?: string | null;\n\n\t/**\n\t * oEmbed suggested cache lifetime for the resource, in seconds.\n\t */\n\tcache_age?: number | null;\n\n\t/**\n\t * oEmbed resource thumbnail URL.\n\t */\n\tthumbnail_url?: string | null;\n\n\t/**\n\t * oEmbed resource thumbnail width.\n\t */\n\tthumbnail_width?: number | null;\n\n\t/**\n\t * oEmbed resource thumbnail height.\n\t */\n\tthumbnail_height?: number | null;\n\n\t/**\n\t * Providers may optionally include any parameters not specified in this\n\t * document (so long as they use the same key-value format) and consumers may\n\t * choose to ignore these. Consumers must ignore parameters they do not understand.\n\t *\n\t * @see oEmbed specification: {@link https://oembed.com}\n\t */\n\t[key: string]: unknown | null;\n};\n\n/**\n * oEmbed photo type. Those are every mandatory fields an oEmbed photo response\n * must feature.\n *\n * @see oEmbed specification: {@link https://oembed.com}\n */\nexport type PhotoOEmbed = OEmbedBase & {\n\t/**\n\t * oEmbed source URL of the image.\n\t */\n\turl: string;\n\n\t/**\n\t * oEmbed width in pixels of the image.\n\t */\n\twidth: number;\n\n\t/**\n\t * oEmbed height in pixels of the image.\n\t */\n\theight: number;\n};\n\n/**\n * oEmbed video type. Those are every mandatory fields an oEmbed video response\n * must feature.\n *\n * @see oEmbed specification: {@link https://oembed.com}\n */\nexport type VideoOEmbed = OEmbedBase & {\n\t/**\n\t * oEmbed HTML required to embed a video player.\n\t */\n\thtml: string;\n\n\t/**\n\t * oEmbed width in pixels required to display the HTML.\n\t */\n\twidth: number;\n\n\t/**\n\t * oEmbed height in pixels required to display the HTML.\n\t */\n\theight: number;\n};\n\n/**\n * oEmbed link type. Those are every mandatory fields an oEmbed link response\n * must feature.\n *\n * @see oEmbed specification: {@link https://oembed.com}\n */\nexport type LinkOEmbed = OEmbedBase;\n\n/**\n * oEmbed rich type. Those are every mandatory fields an oEmbed rich response\n * must feature.\n *\n * @see oEmbed specification: {@link https://oembed.com}\n */\nexport type RichOEmbed = OEmbedBase & {\n\t/**\n\t * oEmbed HTML required to display the resource.\n\t */\n\thtml: string;\n\n\t/**\n\t * oEmbed width in pixels required to display the HTML.\n\t */\n\twidth: number;\n\n\t/**\n\t * oEmbed height in pixels required to display the HTML.\n\t */\n\theight: number;\n};\n\n/**\n * Any of the possible types of oEmbed response. Those contains only mandatory\n * fields their respective oEmbed response type must feature.\n *\n * @see oEmbed specification: {@link https://oembed.com}\n */\nexport type AnyOEmbed = PhotoOEmbed | VideoOEmbed | LinkOEmbed | RichOEmbed;\n\n/**\n * An Embed field.\n *\n * @typeParam Data - Data provided by the URL's oEmbed provider.\n * @typeParam State - State of the field which determines its shape.\n * @see More details: {@link https://prismic.io/docs/core-concepts/embed}\n */\nexport type EmbedField<\n\tData extends AnyOEmbed = AnyOEmbed & OEmbedExtra,\n\tState extends FieldState = FieldState,\n> = State extends \"empty\"\n\t? EmptyObjectField\n\t: Data & {\n\t\t\tembed_url: string;\n\t\t\thtml: string | null;\n\t };\n\n// Simple Fields\n\n/**\n * A Date field.\n *\n * @typeParam State - State of the field which determines its shape.\n * @see More details: {@link https://prismic.io/docs/core-concepts/date}\n */\nexport type DateField =\n\tState extends \"empty\" ? null : `${number}-${number}-${number}`;\n\n/**\n * Simple Timestamp Field\n *\n * @typeParam State - State of the field which determines its shape.\n */\nexport type TimestampField =\n\tState extends \"empty\"\n\t\t? null\n\t\t: `${DateField<\"filled\">}T${number}:${number}:${number}+${number}`;\n\n/**\n * A Color field.\n *\n * @typeParam State - State of the field which determines its shape.\n * @see More details: {@link https://prismic.io/docs/core-concepts/color}\n */\nexport type ColorField =\n\tState extends \"empty\" ? null : `#${string}`;\n\n/**\n * A Number field\n *\n * @typeParam State - State of the field which determines its shape.\n * @see More details: {@link https://prismic.io/docs/core-concepts/number}\n */\nexport type NumberField =\n\tState extends \"empty\" ? null : number;\n\n/**\n * A Key text field\n *\n * @typeParam State - State of the field which determines its shape.\n * @see More details: {@link https://prismic.io/docs/core-concepts/key-text}\n */\nexport type KeyTextField =\n\tState extends \"empty\" ? null | \"\" : string;\n\n/**\n * A Select field\n *\n * @typeParam Enum - Selectable options for the field.\n * @typeParam State - State of the field which determines its shape.\n * @see More details: {@link https://prismic.io/docs/core-concepts/select}\n */\nexport type SelectField<\n\tEnum extends string = string,\n\tState extends FieldState = FieldState,\n> = State extends \"empty\" ? null : Enum;\n\n/**\n * A Boolean field.\n *\n * @see More details: {@link https://prismic.io/docs/core-concepts/boolean}\n */\nexport type BooleanField = boolean;\n\n/**\n * A Geopoint field.\n *\n * @typeParam State - State of the field which determines its shape.\n * @see More details: {@link https://prismic.io/docs/core-concepts/geopoint}\n */\nexport type GeoPointField =\n\tState extends \"empty\"\n\t\t? EmptyObjectField\n\t\t: {\n\t\t\t\tlatitude: number;\n\t\t\t\tlongitude: number;\n\t\t };\n\n// Complex\n/**\n * A Group field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/group}\n */\nexport type GroupField<\n\tFields extends Record = Record<\n\t\tstring,\n\t\tAnyRegularField\n\t>,\n\tState extends FieldState = FieldState,\n> = State extends \"empty\" ? [] : [Fields, ...Fields[]];\n\n/**\n * Integration Fields for Custom APIs\n *\n * @typeParam Data - Data from the integrated API.\n * @typeParam State - State of the field which determines its shape.\n * @see More details: {@link https://prismic.io/docs/core-concepts/integration-fields-setup}\n */\nexport type IntegrationFields<\n\tData extends Record = Record,\n\tState extends FieldState = FieldState,\n> = State extends \"empty\" ? null : Data;\n\n/**\n * Slice - Sections of your website\n *\n * @see More details: {@link https://prismic.io/docs/core-concepts/slices}\n */\nexport interface Slice<\n\tSliceType = string,\n\tPrimaryFields extends Record = Record<\n\t\tstring,\n\t\tAnyRegularField\n\t>,\n\tItemsFields extends Record = Record<\n\t\tstring,\n\t\tAnyRegularField\n\t>,\n> {\n\tslice_type: SliceType;\n\tslice_label: string | null;\n\tprimary: PrimaryFields;\n\titems: ItemsFields[];\n}\n\n/**\n * Shared Slice\n *\n * @see More details: {@link https://prismic.io/docs/core-concepts/reusing-slices#shared-slices}\n */\nexport type SharedSlice<\n\tSliceType = string,\n\tVariations extends SharedSliceVariation = SharedSliceVariation,\n> = {\n\tslice_type: SliceType;\n\tslice_label: null;\n} & Variations;\n\nexport interface SharedSliceVariation<\n\tVariation = string,\n\tPrimaryFields extends Record = Record<\n\t\tstring,\n\t\tAnyRegularField\n\t>,\n\tItemsFields extends Record = Record<\n\t\tstring,\n\t\tAnyRegularField\n\t>,\n> {\n\tvariation: Variation;\n\tversion: string;\n\tprimary: PrimaryFields;\n\titems: ItemsFields[];\n}\n/**\n * Prismic Slices are sections of your website. Prismic documents contain a\n * dynamic \"Slice Zone\" that allows content creators to add, edit, and rearrange\n * Slices to compose dynamic layouts for any page design, such as blog posts,\n * landing pages, case studies, and tutorials.\n *\n * @see More details: {@link https://prismic.io/docs/technologies/adding-the-slicezone-component-nextjs}\n */\nexport type SliceZone<\n\tSlices extends Slice | SharedSlice = Slice | SharedSlice,\n\tState extends FieldState = FieldState,\n> = State extends \"empty\" ? [] : [Slices, ...Slices[]];\n\n// Misc\n\nexport type AnyRegularField =\n\t| TitleField\n\t| RichTextField\n\t| ImageField\n\t| RelationField\n\t| LinkField\n\t| LinkToMediaField\n\t| DateField\n\t| TimestampField\n\t| ColorField\n\t| NumberField\n\t| KeyTextField\n\t| SelectField\n\t| BooleanField\n\t| EmbedField\n\t| GeoPointField\n\t| IntegrationFields;\n","/**\n * A Prismic Custom Type model.\n *\n * @typeParam ID - API ID of the Custom Type.\n * @typeParam Definition - The Custom Type's tabs and their fields.\n */\nexport interface CustomTypeModel<\n\tID extends string = string,\n\tDefinition extends CustomTypeModelDefinition = CustomTypeModelDefinition,\n> {\n\t/**\n\t * The ID of the Custom Type model.\n\t */\n\tid: ID;\n\n\t/**\n\t * The human readable name of the Custom Type Model.\n\t */\n\tlabel: string;\n\n\t/**\n\t * Determines if more than one document for the Custom Type can be created.\n\t */\n\trepeatable: boolean;\n\n\t/**\n\t * The Custom Type model definition.\n\t */\n\tjson: Definition;\n\n\t/**\n\t * Determines if new documents for the Custom Type can be created.\n\t */\n\tstatus: boolean;\n}\n\n/**\n * A Prismic Custom Type's tabs and their fields.\n *\n * @typeParam TabName - Names of Custom Type tabs.\n */\nexport type CustomTypeModelDefinition = Record<\n\tTabName,\n\tCustomTypeModelTab\n>;\n\n/**\n * A Custom Type's tab. Each tab can contain any number of fields but is limited\n * to one Slice Zone.\n *\n * @typeParam FieldName - API IDs of the fields.\n */\nexport type CustomTypeModelTab<\n\tFields extends Record = Record<\n\t\tstring,\n\t\tCustomTypeModelField\n\t>,\n> = Fields;\n\n/**\n * A Custom Type field.\n */\nexport type CustomTypeModelField =\n\t| CustomTypeModelUIDField\n\t| CustomTypeModelGroupField\n\t| CustomTypeModelSliceZoneField\n\t| CustomTypeModelFieldForGroup;\n\n/**\n * Any Custom Type field that is valid for a Group field.\n */\nexport type CustomTypeModelFieldForGroup =\n\t| CustomTypeModelBooleanField\n\t| CustomTypeModelColorField\n\t| CustomTypeModelDateField\n\t| CustomTypeModelEmbedField\n\t| CustomTypeModelGeoPointField\n\t| CustomTypeModelImageField\n\t| CustomTypeModelIntegrationFieldsField\n\t| CustomTypeModelContentRelationshipField\n\t| CustomTypeModelLinkField\n\t| CustomTypeModelLinkToMediaField\n\t| CustomTypeModelNumberField\n\t| CustomTypeModelSelectField\n\t| CustomTypeModelRichTextField\n\t| CustomTypeModelTitleField\n\t| CustomTypeModelKeyTextField\n\t| CustomTypeModelTimestampField;\n\n/**\n * Type identifier for a Custom Type field.\n */\nexport const CustomTypeModelFieldType = {\n\tBoolean: \"Boolean\",\n\tColor: \"Color\",\n\tDate: \"Date\",\n\tEmbed: \"Embed\",\n\tGeoPoint: \"GeoPoint\",\n\tGroup: \"Group\",\n\tImage: \"Image\",\n\tIntegrationFields: \"IntegrationFields\",\n\tLink: \"Link\",\n\tNumber: \"Number\",\n\tSelect: \"Select\",\n\tSlices: \"Slices\",\n\tStructuredText: \"StructuredText\",\n\tText: \"Text\",\n\tTimestamp: \"Timestamp\",\n\tUID: \"UID\",\n} as const;\n\n/**\n * A Boolean Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/boolean}\n */\nexport interface CustomTypeModelBooleanField {\n\ttype: typeof CustomTypeModelFieldType.Boolean;\n\tconfig: {\n\t\tlabel: string;\n\t};\n}\n\n/**\n * A Color Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/color}\n */\nexport interface CustomTypeModelColorField {\n\ttype: typeof CustomTypeModelFieldType.Color;\n\tconfig: {\n\t\tlabel: string;\n\t\tplaceholder?: string;\n\t};\n}\n\n/**\n * A Date Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/date}\n */\nexport interface CustomTypeModelDateField {\n\ttype: typeof CustomTypeModelFieldType.Date;\n\tconfig: {\n\t\tlabel: string;\n\t\tplaceholder?: string;\n\t};\n}\n\n/**\n * An Embed Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/embed}\n */\nexport interface CustomTypeModelEmbedField {\n\ttype: typeof CustomTypeModelFieldType.Embed;\n\tconfig: {\n\t\tlabel: string;\n\t\tplaceholder?: string;\n\t};\n}\n\n/**\n * A GeoPoint Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/geopoint}\n */\nexport interface CustomTypeModelGeoPointField {\n\ttype: typeof CustomTypeModelFieldType.GeoPoint;\n\tconfig: {\n\t\tlabel: string;\n\t};\n}\n\n/**\n * A Group Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/group}\n *\n * @typeParam Fields - A record of fields that can be repeated.\n */\nexport interface CustomTypeModelGroupField<\n\tFields extends Record = Record<\n\t\tstring,\n\t\tCustomTypeModelFieldForGroup\n\t>,\n> {\n\ttype: typeof CustomTypeModelFieldType.Group;\n\tconfig: {\n\t\tlabel: string;\n\t\tfields: Fields;\n\t};\n}\n\n/**\n * An Image Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/image}\n */\nexport interface CustomTypeModelImageField<\n\tThumbnailNames extends string = string,\n> {\n\ttype: typeof CustomTypeModelFieldType.Image;\n\tconfig: {\n\t\tlabel: string;\n\t\tconstraint: CustomTypeModelImageConstraint | Record;\n\t\tthumbnails: readonly CustomTypeModelImageThumbnail[];\n\t};\n}\n\n/**\n * Dimension constraints for an Image Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/image}\n */\nexport interface CustomTypeModelImageConstraint {\n\twidth: number | null;\n\theight: number | null;\n}\n\n/**\n * A thumbnail for an Image Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/image}\n */\nexport interface CustomTypeModelImageThumbnail\n\textends CustomTypeModelImageConstraint {\n\tname: Name;\n}\n\n/**\n * An Integration Fields Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/integration-fields}\n */\nexport interface CustomTypeModelIntegrationFieldsField {\n\ttype: typeof CustomTypeModelFieldType.IntegrationFields;\n\tconfig: {\n\t\tlabel: string;\n\t\tplaceholder?: string;\n\t\tcatalog: string;\n\t};\n}\n\n/**\n * Type of a Link Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/link-content-relationship}\n */\nexport const CustomTypeModelLinkSelectType = {\n\tDocument: \"document\",\n\tMedia: \"media\",\n} as const;\n\n/**\n * A Content Relationship Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/link-content-relationship}\n */\nexport interface CustomTypeModelContentRelationshipField<\n\tCustomTypeIDs extends string = string,\n\tTags extends string = string,\n> {\n\ttype: typeof CustomTypeModelFieldType.Link;\n\tconfig: {\n\t\tlabel: string;\n\t\tplaceholder?: string;\n\t\tselect: typeof CustomTypeModelLinkSelectType.Document;\n\t\tcustomtypes?: readonly CustomTypeIDs[];\n\t\ttags?: readonly Tags[];\n\t};\n}\n\n/**\n * A Link Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/link-content-relationship}\n */\nexport interface CustomTypeModelLinkField {\n\ttype: typeof CustomTypeModelFieldType.Link;\n\tconfig: {\n\t\tlabel: string;\n\t\tplaceholder?: string;\n\t\tselect?: null;\n\t\tallowTargetBlank?: true;\n\t};\n}\n\n/**\n * A Link to Media Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/link-content-relationship}\n */\nexport interface CustomTypeModelLinkToMediaField {\n\ttype: typeof CustomTypeModelFieldType.Link;\n\tconfig: {\n\t\tlabel: string;\n\t\tplaceholder?: string;\n\t\tselect: typeof CustomTypeModelLinkSelectType.Media;\n\t};\n}\n\n/**\n * A Number Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/number}\n */\nexport interface CustomTypeModelNumberField {\n\ttype: typeof CustomTypeModelFieldType.Number;\n\tconfig: {\n\t\tlabel: string;\n\t\tplaceholder?: string;\n\t};\n}\n\n/**\n * A Select Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/select}\n *\n * @typeParam Options - Options for the field.\n * @typeParam DefaultValue - Default value for the field.\n */\nexport interface CustomTypeModelSelectField<\n\tOption extends string = string,\n\tDefaultValue extends Option = Option,\n> {\n\ttype: typeof CustomTypeModelFieldType.Select;\n\tconfig: {\n\t\tlabel: string;\n\t\tplaceholder?: string;\n\t\toptions: Option[];\n\t\tdefault_value?: DefaultValue;\n\t};\n}\n\n/**\n * A Rich Text Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/rich-text-title}\n */\nexport type CustomTypeModelRichTextField =\n\t| CustomTypeModelRichTextMultiField\n\t| CustomTypeModelRichTextSingleField;\n\n/**\n * A Rich Text Custom Type field which supports multiple blocks of content.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/rich-text-title}\n */\nexport interface CustomTypeModelRichTextMultiField {\n\ttype: typeof CustomTypeModelFieldType.StructuredText;\n\tconfig: {\n\t\tlabel: string;\n\t\tplaceholder?: string;\n\t\tallowTargetBlank?: true;\n\t\tmulti: string;\n\t};\n}\n\n/**\n * A Rich Text Custom Type field which supports one block of content.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/rich-text-title}\n */\nexport interface CustomTypeModelRichTextSingleField {\n\ttype: typeof CustomTypeModelFieldType.StructuredText;\n\tconfig: {\n\t\tlabel: string;\n\t\tplaceholder?: string;\n\t\tallowTargetBlank?: true;\n\t\tsingle: string;\n\t};\n}\n\n/**\n * A Title Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/rich-text-title}\n */\nexport type CustomTypeModelTitleField = CustomTypeModelRichTextSingleField;\n\n/**\n * A Key Text Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/key-text}\n */\nexport interface CustomTypeModelKeyTextField {\n\ttype: typeof CustomTypeModelFieldType.Text;\n\tconfig: {\n\t\tlabel: string;\n\t\tplaceholder?: string;\n\t};\n}\n\n/**\n * A Timestamp Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/timestamp}\n */\nexport interface CustomTypeModelTimestampField {\n\ttype: typeof CustomTypeModelFieldType.Timestamp;\n\tconfig: {\n\t\tlabel: string;\n\t\tplaceholder?: string;\n\t};\n}\n\n/**\n * A UID Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/uid}\n */\nexport interface CustomTypeModelUIDField {\n\ttype: typeof CustomTypeModelFieldType.UID;\n\tconfig: {\n\t\tlabel: string;\n\t\tplaceholder?: string;\n\t};\n}\n\n/**\n * A Slice Zone Custom Type field.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/slices}\n */\nexport interface CustomTypeModelSliceZoneField<\n\tSlices extends Record<\n\t\tstring,\n\t\tCustomTypeModelSlice | CustomTypeModelSharedSlice\n\t> = Record,\n> {\n\ttype: typeof CustomTypeModelFieldType.Slices;\n\tfieldset: \"Slice zone\";\n\tconfig: {\n\t\tlabels: Record;\n\t\tchoices: Slices;\n\t};\n}\n\n/**\n * Label for a Slice.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/slices}\n */\nexport interface CustomTypeModelSliceLabel {\n\tname: string;\n\tdisplay: string;\n}\n\n/**\n * Display type for a Slice.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/slices}\n */\nexport const CustomTypeModelSliceDisplay = {\n\tList: \"list\",\n\tGrid: \"grid\",\n} as const;\n\n/**\n * Type identifier for a Slice.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/slices}\n */\nexport const CustomTypeModelSliceType = {\n\tSlice: \"Slice\",\n\tSharedSlice: \"SharedSlice\",\n} as const;\n\n/**\n * A Slice for a Custom Type.\n *\n * More details: {@link https://prismic.io/docs/core-concepts/slices}\n *\n * @typeParam NonRepeatFields - A record of fields that cannnot be repeated.\n * @typeParam RepeatFields - A record of fields that can be repeated.\n */\nexport interface CustomTypeModelSlice<\n\tNonRepeatFields extends Record = Record<\n\t\tstring,\n\t\tCustomTypeModelFieldForGroup\n\t>,\n\tRepeatFields extends Record = Record<\n\t\tstring,\n\t\tCustomTypeModelFieldForGroup\n\t>,\n> {\n\ttype: typeof CustomTypeModelSliceType.Slice;\n\tfieldset: string;\n\tdescription: string;\n\ticon: string;\n\tdisplay: typeof CustomTypeModelSliceDisplay[keyof typeof CustomTypeModelSliceDisplay];\n\t\"non-repeat\": NonRepeatFields;\n\trepeat: RepeatFields;\n}\n\n/**\n * A Shared Slice for a Custom Type.\n *\n * More details:\n *\n * - {@link https://prismic.io/docs/core-concepts/slices}\n * - {@link https://prismic.io/docs/core-concepts/reusing-slices}\n */\nexport interface CustomTypeModelSharedSlice {\n\ttype: typeof CustomTypeModelSliceType.SharedSlice;\n}\n\n/**\n * A Prismic Shared Slice model.\n *\n * More details:\n *\n * - {@link https://prismic.io/docs/core-concepts/slices}\n * - {@link https://prismic.io/docs/core-concepts/reusing-slices}\n *\n * @typeParam Variation - A variation for the Shared Slice.\n */\nexport interface SharedSliceModel<\n\tID extends string = string,\n\tVariation extends SharedSliceModelVariation = SharedSliceModelVariation,\n> {\n\ttype: typeof CustomTypeModelSliceType.SharedSlice;\n\tid: ID;\n\tname: string;\n\tdescription: string;\n\tvariations: readonly Variation[];\n}\n\n/**\n * A Shared Slice variation.\n *\n * More details:\n *\n * - {@link https://prismic.io/docs/core-concepts/slices}\n * - {@link https://prismic.io/docs/core-concepts/reusing-slices}\n *\n * @typeParam PrimaryFields - A record of fields that cannnot be repeated.\n * @typeParam ItemFields - A record of fields that can be repeated.\n */\nexport interface SharedSliceModelVariation<\n\tID extends string = string,\n\tPrimaryFields extends Record = Record<\n\t\tstring,\n\t\tCustomTypeModelFieldForGroup\n\t>,\n\tItemFields extends Record = Record<\n\t\tstring,\n\t\tCustomTypeModelFieldForGroup\n\t>,\n> {\n\tid: ID;\n\tname: string;\n\tdocURL: string;\n\tversion: string;\n\tdescription: string;\n\tprimary: PrimaryFields;\n\titems: ItemFields;\n}\n","const matchHtmlRegExp = /[\"'&<>]/;\nconst escapeHTML = (string) => {\n const str = \"\" + string;\n const match = matchHtmlRegExp.exec(str);\n if (!match) {\n return str;\n }\n let escape;\n let html = \"\";\n let index = 0;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escape = \""\";\n break;\n case 38:\n escape = \"&\";\n break;\n case 39:\n escape = \"'\";\n break;\n case 60:\n escape = \"<\";\n break;\n case 62:\n escape = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escape;\n }\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n};\nexport {\n escapeHTML\n};\n//# sourceMappingURL=escapeHTML.js.map\n","import { escapeHTML } from \"./escapeHTML.js\";\nimport { RichTextNodeType, LinkType } from \"@prismicio/types\";\nimport { asLink } from \"../asLink.js\";\nconst getLabel = (node) => {\n return \"data\" in node && \"label\" in node.data ? ` class=\"${node.data.label}\"` : \"\";\n};\nconst serializeStandardTag = (tag, node, children) => {\n return `<${tag}${getLabel(node)}>${children.join(\"\")}`;\n};\nconst serializePreFormatted = (node) => {\n return `${escapeHTML(node.text)}`;\n};\nconst serializeImage = (linkResolver, node) => {\n let imageTag = `\"${escapeHTML(node.alt)}\"${node.copyright`;\n if (node.linkTo) {\n imageTag = serializeHyperlink(linkResolver, {\n type: RichTextNodeType.hyperlink,\n data: node.linkTo,\n start: 0,\n end: 0\n }, [imageTag]);\n }\n return `

${imageTag}

`;\n};\nconst serializeEmbed = (node) => {\n return `
${node.oembed.html}
`;\n};\nconst serializeHyperlink = (linkResolver, node, children) => {\n switch (node.data.link_type) {\n case LinkType.Web: {\n return `${children.join(\"\")}`;\n }\n case LinkType.Document: {\n return `${children.join(\"\")}`;\n }\n case LinkType.Media: {\n return `${children.join(\"\")}`;\n }\n }\n};\nconst serializeSpan = (content) => {\n return content ? escapeHTML(content).replace(/\\n/g, \"
\") : \"\";\n};\nexport {\n getLabel,\n serializeEmbed,\n serializeHyperlink,\n serializeImage,\n serializePreFormatted,\n serializeSpan,\n serializeStandardTag\n};\n//# sourceMappingURL=serializerHelpers.js.map\n","import { composeSerializers, serialize, Element, wrapMapSerializer } from \"@prismicio/richtext\";\nimport { serializeSpan, serializeStandardTag, serializeHyperlink, serializeEmbed, serializeImage, serializePreFormatted } from \"./lib/serializerHelpers.js\";\nconst createDefaultHTMLSerializer = (linkResolver) => {\n return (_type, node, text, children, _key) => {\n switch (node.type) {\n case Element.heading1:\n return serializeStandardTag(\"h1\", node, children);\n case Element.heading2:\n return serializeStandardTag(\"h2\", node, children);\n case Element.heading3:\n return serializeStandardTag(\"h3\", node, children);\n case Element.heading4:\n return serializeStandardTag(\"h4\", node, children);\n case Element.heading5:\n return serializeStandardTag(\"h5\", node, children);\n case Element.heading6:\n return serializeStandardTag(\"h6\", node, children);\n case Element.paragraph:\n return serializeStandardTag(\"p\", node, children);\n case Element.preformatted:\n return serializePreFormatted(node);\n case Element.strong:\n return serializeStandardTag(\"strong\", node, children);\n case Element.em:\n return serializeStandardTag(\"em\", node, children);\n case Element.listItem:\n return serializeStandardTag(\"li\", node, children);\n case Element.oListItem:\n return serializeStandardTag(\"li\", node, children);\n case Element.list:\n return serializeStandardTag(\"ul\", node, children);\n case Element.oList:\n return serializeStandardTag(\"ol\", node, children);\n case Element.image:\n return serializeImage(linkResolver, node);\n case Element.embed:\n return serializeEmbed(node);\n case Element.hyperlink:\n return serializeHyperlink(linkResolver, node, children);\n case Element.label:\n return serializeStandardTag(\"span\", node, children);\n case Element.span:\n default:\n return serializeSpan(text);\n }\n };\n};\nconst wrapMapSerializerWithStringChildren = (mapSerializer) => {\n const modifiedMapSerializer = {};\n for (const tag in mapSerializer) {\n const tagSerializer = mapSerializer[tag];\n if (tagSerializer) {\n modifiedMapSerializer[tag] = (payload) => {\n return tagSerializer({\n ...payload,\n // @ts-expect-error - merging blockSerializer types causes TS to bail to a never type\n children: payload.children.join(\"\")\n });\n };\n }\n }\n return wrapMapSerializer(modifiedMapSerializer);\n};\nconst asHTML = (richTextField, linkResolver, htmlSerializer) => {\n if (richTextField) {\n let serializer;\n if (htmlSerializer) {\n serializer = composeSerializers(typeof htmlSerializer === \"object\" ? wrapMapSerializerWithStringChildren(htmlSerializer) : (type, node, text, children, key) => htmlSerializer(type, node, text, children.join(\"\"), key), createDefaultHTMLSerializer(linkResolver));\n } else {\n serializer = createDefaultHTMLSerializer(linkResolver);\n }\n return serialize(richTextField, serializer).join(\"\");\n } else {\n return null;\n }\n};\nexport {\n asHTML\n};\n//# sourceMappingURL=asHTML.js.map\n","export function chainFirst(M) {\n var tapM = tap(M);\n return function (f) { return function (first) { return tapM(first, f); }; };\n}\n/** @internal */\nexport function tap(M) {\n return function (first, f) { return M.chain(first, function (a) { return M.map(f(a), function () { return a; }); }); };\n}\nexport function bind(M) {\n return function (name, f) { return function (ma) { return M.chain(ma, function (a) { return M.map(f(a), function (b) {\n var _a;\n return Object.assign({}, a, (_a = {}, _a[name] = b, _a));\n }); }); }; };\n}\n","/**\n * The `FromEither` type class represents those data types which support errors.\n *\n * @since 2.10.0\n */\nimport { tap } from './Chain';\nimport { flow } from './function';\nimport * as _ from './internal';\nexport function fromOption(F) {\n return function (onNone) { return function (ma) { return F.fromEither(_.isNone(ma) ? _.left(onNone()) : _.right(ma.value)); }; };\n}\nexport function fromPredicate(F) {\n return function (predicate, onFalse) {\n return function (a) {\n return F.fromEither(predicate(a) ? _.right(a) : _.left(onFalse(a)));\n };\n };\n}\nexport function fromOptionK(F) {\n var fromOptionF = fromOption(F);\n return function (onNone) {\n var from = fromOptionF(onNone);\n return function (f) { return flow(f, from); };\n };\n}\nexport function chainOptionK(F, M) {\n var fromOptionKF = fromOptionK(F);\n return function (onNone) {\n var from = fromOptionKF(onNone);\n return function (f) { return function (ma) { return M.chain(ma, from(f)); }; };\n };\n}\nexport function fromEitherK(F) {\n return function (f) { return flow(f, F.fromEither); };\n}\nexport function chainEitherK(F, M) {\n var fromEitherKF = fromEitherK(F);\n return function (f) { return function (ma) { return M.chain(ma, fromEitherKF(f)); }; };\n}\nexport function chainFirstEitherK(F, M) {\n var tapEitherM = tapEither(F, M);\n return function (f) { return function (ma) { return tapEitherM(ma, f); }; };\n}\nexport function filterOrElse(F, M) {\n return function (predicate, onFalse) {\n return function (ma) {\n return M.chain(ma, function (a) { return F.fromEither(predicate(a) ? _.right(a) : _.left(onFalse(a))); });\n };\n };\n}\n/** @internal */\nexport function tapEither(F, M) {\n var fromEither = fromEitherK(F);\n var tapM = tap(M);\n return function (self, f) { return tapM(self, fromEither(f)); };\n}\n","/**\n * A `Functor` is a type constructor which supports a mapping operation `map`.\n *\n * `map` can be used to turn functions `a -> b` into functions `f a -> f b` whose argument and return types use the type\n * constructor `f` to represent some computational context.\n *\n * Instances must satisfy the following laws:\n *\n * 1. Identity: `F.map(fa, a => a) <-> fa`\n * 2. Composition: `F.map(fa, a => bc(ab(a))) <-> F.map(F.map(fa, ab), bc)`\n *\n * @since 2.0.0\n */\nimport { pipe } from './function';\nexport function map(F, G) {\n return function (f) { return function (fa) { return F.map(fa, function (ga) { return G.map(ga, f); }); }; };\n}\nexport function flap(F) {\n return function (a) { return function (fab) { return F.map(fab, function (f) { return f(a); }); }; };\n}\nexport function bindTo(F) {\n return function (name) { return function (fa) { return F.map(fa, function (a) {\n var _a;\n return (_a = {}, _a[name] = a, _a);\n }); }; };\n}\nfunction let_(F) {\n return function (name, f) { return function (fa) { return F.map(fa, function (a) {\n var _a;\n return Object.assign({}, a, (_a = {}, _a[name] = f(a), _a));\n }); }; };\n}\nexport { \n/**\n * @since 2.13.0\n */\nlet_ as let };\n/** @deprecated */\nexport function getFunctorComposition(F, G) {\n var _map = map(F, G);\n return {\n map: function (fga, f) { return pipe(fga, _map(f)); }\n };\n}\n/** @internal */\nexport function as(F) {\n return function (self, b) { return F.map(self, function () { return b; }); };\n}\n/** @internal */\nexport function asUnit(F) {\n var asM = as(F);\n return function (self) { return asM(self, undefined); };\n}\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { dual } from './function';\n// -------------------------------------------------------------------------------------\n// Option\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport var isNone = function (fa) { return fa._tag === 'None'; };\n/** @internal */\nexport var isSome = function (fa) { return fa._tag === 'Some'; };\n/** @internal */\nexport var none = { _tag: 'None' };\n/** @internal */\nexport var some = function (a) { return ({ _tag: 'Some', value: a }); };\n// -------------------------------------------------------------------------------------\n// Either\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport var isLeft = function (ma) { return ma._tag === 'Left'; };\n/** @internal */\nexport var isRight = function (ma) { return ma._tag === 'Right'; };\n/** @internal */\nexport var left = function (e) { return ({ _tag: 'Left', left: e }); };\n/** @internal */\nexport var right = function (a) { return ({ _tag: 'Right', right: a }); };\n// -------------------------------------------------------------------------------------\n// ReadonlyNonEmptyArray\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport var singleton = function (a) { return [a]; };\n/** @internal */\nexport var isNonEmpty = function (as) { return as.length > 0; };\n/** @internal */\nexport var head = function (as) { return as[0]; };\n/** @internal */\nexport var tail = function (as) { return as.slice(1); };\n// -------------------------------------------------------------------------------------\n// empty\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport var emptyReadonlyArray = [];\n/** @internal */\nexport var emptyRecord = {};\n// -------------------------------------------------------------------------------------\n// Record\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport var has = Object.prototype.hasOwnProperty;\n// -------------------------------------------------------------------------------------\n// NonEmptyArray\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport var fromReadonlyNonEmptyArray = function (as) { return __spreadArray([as[0]], as.slice(1), true); };\n/** @internal */\nexport var liftNullable = function (F) {\n return function (f, onNullable) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n var o = f.apply(void 0, a);\n return F.fromEither(o == null ? left(onNullable.apply(void 0, a)) : right(o));\n };\n };\n};\n/** @internal */\nexport var liftOption = function (F) {\n return function (f, onNone) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n var o = f.apply(void 0, a);\n return F.fromEither(isNone(o) ? left(onNone.apply(void 0, a)) : right(o.value));\n };\n };\n};\n/** @internal */\nexport var flatMapNullable = function (F, M) {\n return /*#__PURE__*/ dual(3, function (self, f, onNullable) {\n return M.flatMap(self, liftNullable(F)(f, onNullable));\n });\n};\n/** @internal */\nexport var flatMapOption = function (F, M) {\n return /*#__PURE__*/ dual(3, function (self, f, onNone) { return M.flatMap(self, liftOption(F)(f, onNone)); });\n};\n/** @internal */\nexport var flatMapEither = function (F, M) {\n return /*#__PURE__*/ dual(2, function (self, f) {\n return M.flatMap(self, function (a) { return F.fromEither(f(a)); });\n });\n};\n/** @internal */\nexport var flatMapIO = function (F, M) {\n return /*#__PURE__*/ dual(2, function (self, f) {\n return M.flatMap(self, function (a) { return F.fromIO(f(a)); });\n });\n};\n/** @internal */\nexport var flatMapTask = function (F, M) {\n return /*#__PURE__*/ dual(2, function (self, f) {\n return M.flatMap(self, function (a) { return F.fromTask(f(a)); });\n });\n};\n/** @internal */\nexport var flatMapReader = function (F, M) {\n return /*#__PURE__*/ dual(2, function (self, f) {\n return M.flatMap(self, function (a) { return F.fromReader(f(a)); });\n });\n};\n","import { getApplicativeMonoid } from './Applicative';\nimport { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply';\nimport * as chainable from './Chain';\nimport { chainEitherK as chainEitherK_, fromEitherK as fromEitherK_, tapEither as tapEither_ } from './FromEither';\nimport { constNull, constUndefined, dual, flow, identity, pipe } from './function';\nimport { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor';\nimport * as _ from './internal';\nimport { not } from './Predicate';\nimport { first, last } from './Semigroup';\nimport { separated } from './Separated';\nimport { wiltDefault, witherDefault } from './Witherable';\nimport { guard as guard_ } from './Zero';\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * `None` doesn't have a constructor, instead you can use it directly as a value. Represents a missing value.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var none = _.none;\n/**\n * Constructs a `Some`. Represents an optional value that exists.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var some = _.some;\nexport function fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? some(a) : none); };\n}\n/**\n * Returns the `Left` value of an `Either` if possible.\n *\n * @example\n * import { getLeft, none, some } from 'fp-ts/Option'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(getLeft(right(1)), none)\n * assert.deepStrictEqual(getLeft(left('a')), some('a'))\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var getLeft = function (ma) { return (ma._tag === 'Right' ? none : some(ma.left)); };\n/**\n * Returns the `Right` value of an `Either` if possible.\n *\n * @example\n * import { getRight, none, some } from 'fp-ts/Option'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(getRight(right(1)), some(1))\n * assert.deepStrictEqual(getRight(left('a')), none)\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var getRight = function (ma) { return (ma._tag === 'Left' ? none : some(ma.right)); };\nvar _map = function (fa, f) { return pipe(fa, map(f)); };\nvar _ap = function (fab, fa) { return pipe(fab, ap(fa)); };\nvar _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); };\nvar _foldMap = function (M) {\n var foldMapM = foldMap(M);\n return function (fa, f) { return pipe(fa, foldMapM(f)); };\n};\nvar _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); };\nvar _traverse = function (F) {\n var traverseF = traverse(F);\n return function (ta, f) { return pipe(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return pipe(fa, alt(that)); };\nvar _filter = function (fa, predicate) { return pipe(fa, filter(predicate)); };\n/* istanbul ignore next */\nvar _filterMap = function (fa, f) { return pipe(fa, filterMap(f)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return pipe(wa, extend(f)); };\n/* istanbul ignore next */\nvar _partition = function (fa, predicate) {\n return pipe(fa, partition(predicate));\n};\n/* istanbul ignore next */\nvar _partitionMap = function (fa, f) { return pipe(fa, partitionMap(f)); };\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexport var URI = 'Option';\n/**\n * @category instances\n * @since 2.0.0\n */\nexport var getShow = function (S) { return ({\n show: function (ma) { return (isNone(ma) ? 'none' : \"some(\".concat(S.show(ma.value), \")\")); }\n}); };\n/**\n * @example\n * import { none, some, getEq } from 'fp-ts/Option'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals(none, none), true)\n * assert.strictEqual(E.equals(none, some(1)), false)\n * assert.strictEqual(E.equals(some(1), none), false)\n * assert.strictEqual(E.equals(some(1), some(2)), false)\n * assert.strictEqual(E.equals(some(1), some(1)), true)\n *\n * @category instances\n * @since 2.0.0\n */\nexport var getEq = function (E) { return ({\n equals: function (x, y) { return x === y || (isNone(x) ? isNone(y) : isNone(y) ? false : E.equals(x.value, y.value)); }\n}); };\n/**\n * The `Ord` instance allows `Option` values to be compared with\n * `compare`, whenever there is an `Ord` instance for\n * the type the `Option` contains.\n *\n * `None` is considered to be less than any `Some` value.\n *\n *\n * @example\n * import { none, some, getOrd } from 'fp-ts/Option'\n * import * as N from 'fp-ts/number'\n *\n * const O = getOrd(N.Ord)\n * assert.strictEqual(O.compare(none, none), 0)\n * assert.strictEqual(O.compare(none, some(1)), -1)\n * assert.strictEqual(O.compare(some(1), none), 1)\n * assert.strictEqual(O.compare(some(1), some(2)), -1)\n * assert.strictEqual(O.compare(some(1), some(1)), 0)\n *\n * @category instances\n * @since 2.0.0\n */\nexport var getOrd = function (O) { return ({\n equals: getEq(O).equals,\n compare: function (x, y) { return (x === y ? 0 : isSome(x) ? (isSome(y) ? O.compare(x.value, y.value) : 1) : -1); }\n}); };\n/**\n * Monoid returning the left-most non-`None` value. If both operands are `Some`s then the inner values are\n * concatenated using the provided `Semigroup`\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(concat(a, b)) |\n *\n * @example\n * import { getMonoid, some, none } from 'fp-ts/Option'\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * const M = getMonoid(SemigroupSum)\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(1)), some(1))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(3))\n *\n * @category instances\n * @since 2.0.0\n */\nexport var getMonoid = function (S) { return ({\n concat: function (x, y) { return (isNone(x) ? y : isNone(y) ? x : some(S.concat(x.value, y.value))); },\n empty: none\n}); };\n/**\n * @category mapping\n * @since 2.0.0\n */\nexport var map = function (f) { return function (fa) {\n return isNone(fa) ? none : some(f(fa.value));\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Maps the `Some` value of this `Option` to the specified constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexport var as = dual(2, as_(Functor));\n/**\n * Maps the `Some` value of this `Option` to the void constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexport var asUnit = asUnit_(Functor);\n/**\n * @category constructors\n * @since 2.7.0\n */\nexport var of = some;\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * @since 2.0.0\n */\nexport var ap = function (fa) { return function (fab) {\n return isNone(fab) ? none : isNone(fa) ? none : some(fab.value(fa.value));\n}; };\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Apply = {\n URI: URI,\n map: _map,\n ap: _ap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Applicative = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of\n};\n/**\n * @category sequencing\n * @since 2.14.0\n */\nexport var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { return (isNone(ma) ? none : f(ma.value)); });\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: flatMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: flatMap\n};\n/**\n * @category folding\n * @since 2.0.0\n */\nexport var reduce = function (b, f) { return function (fa) {\n return isNone(fa) ? b : f(b, fa.value);\n}; };\n/**\n * @category folding\n * @since 2.0.0\n */\nexport var foldMap = function (M) { return function (f) { return function (fa) {\n return isNone(fa) ? M.empty : f(fa.value);\n}; }; };\n/**\n * @category folding\n * @since 2.0.0\n */\nexport var reduceRight = function (b, f) { return function (fa) {\n return isNone(fa) ? b : f(fa.value, b);\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Foldable = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * Returns the provided `Option` `that` if `self` is `None`, otherwise returns `self`.\n *\n * @param self - The first `Option` to be checked.\n * @param that - The `Option` to return if `self` is `None`.\n *\n * @example\n * import * as O from \"fp-ts/Option\"\n *\n * assert.deepStrictEqual(O.orElse(O.none, () => O.none), O.none)\n * assert.deepStrictEqual(O.orElse(O.some(1), () => O.none), O.some(1))\n * assert.deepStrictEqual(O.orElse(O.none, () => O.some('b')), O.some('b'))\n * assert.deepStrictEqual(O.orElse(O.some(1), () => O.some('b')), O.some(1))\n *\n * @category error handling\n * @since 2.16.0\n */\nexport var orElse = dual(2, function (self, that) { return (isNone(self) ? that() : self); });\n/**\n * Alias of `orElse`.\n *\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @category legacy\n * @since 2.9.0\n */\nexport var altW = orElse;\n/**\n * Alias of `orElse`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var alt = orElse;\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Alt = {\n URI: URI,\n map: _map,\n alt: _alt\n};\n/**\n * @since 2.7.0\n */\nexport var zero = function () { return none; };\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var Zero = {\n URI: URI,\n zero: zero\n};\n/**\n * @category do notation\n * @since 2.11.0\n */\nexport var guard = /*#__PURE__*/ guard_(Zero, Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Alternative = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n alt: _alt,\n zero: zero\n};\n/**\n * @since 2.0.0\n */\nexport var extend = function (f) { return function (wa) {\n return isNone(wa) ? none : some(f(wa));\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Extend = {\n URI: URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var compact = /*#__PURE__*/ flatMap(identity);\nvar defaultSeparated = /*#__PURE__*/ separated(none, none);\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var separate = function (ma) {\n return isNone(ma) ? defaultSeparated : separated(getLeft(ma.value), getRight(ma.value));\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Compactable = {\n URI: URI,\n compact: compact,\n separate: separate\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var filter = function (predicate) {\n return function (fa) {\n return isNone(fa) ? none : predicate(fa.value) ? fa : none;\n };\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var filterMap = function (f) { return function (fa) {\n return isNone(fa) ? none : f(fa.value);\n}; };\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var partition = function (predicate) {\n return function (fa) {\n return separated(_filter(fa, not(predicate)), _filter(fa, predicate));\n };\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var partitionMap = function (f) { return flow(map(f), separate); };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Filterable = {\n URI: URI,\n map: _map,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category traversing\n * @since 2.6.3\n */\nexport var traverse = function (F) {\n return function (f) {\n return function (ta) {\n return isNone(ta) ? F.of(none) : F.map(f(ta.value), some);\n };\n };\n};\n/**\n * @category traversing\n * @since 2.6.3\n */\nexport var sequence = function (F) {\n return function (ta) {\n return isNone(ta) ? F.of(none) : F.map(ta.value, some);\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Traversable = {\n URI: URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence\n};\nvar _wither = /*#__PURE__*/ witherDefault(Traversable, Compactable);\nvar _wilt = /*#__PURE__*/ wiltDefault(Traversable, Compactable);\n/**\n * @category filtering\n * @since 2.6.5\n */\nexport var wither = function (F) {\n var _witherF = _wither(F);\n return function (f) { return function (fa) { return _witherF(fa, f); }; };\n};\n/**\n * @category filtering\n * @since 2.6.5\n */\nexport var wilt = function (F) {\n var _wiltF = _wilt(F);\n return function (f) { return function (fa) { return _wiltF(fa, f); }; };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Witherable = {\n URI: URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * @since 2.7.0\n */\nexport var throwError = function () { return none; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var MonadThrow = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: flatMap,\n throwError: throwError\n};\n/**\n * Transforms an `Either` to an `Option` discarding the error.\n *\n * Alias of [getRight](#getright)\n *\n * @category conversions\n * @since 2.0.0\n */\nexport var fromEither = getRight;\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var FromEither = {\n URI: URI,\n fromEither: fromEither\n};\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Returns `true` if the option is an instance of `Some`, `false` otherwise.\n *\n * @example\n * import { some, none, isSome } from 'fp-ts/Option'\n *\n * assert.strictEqual(isSome(some(1)), true)\n * assert.strictEqual(isSome(none), false)\n *\n * @category refinements\n * @since 2.0.0\n */\nexport var isSome = _.isSome;\n/**\n * Returns `true` if the option is `None`, `false` otherwise.\n *\n * @example\n * import { some, none, isNone } from 'fp-ts/Option'\n *\n * assert.strictEqual(isNone(some(1)), false)\n * assert.strictEqual(isNone(none), true)\n *\n * @category refinements\n * @since 2.0.0\n */\nexport var isNone = function (fa) { return fa._tag === 'None'; };\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var matchW = function (onNone, onSome) {\n return function (ma) {\n return isNone(ma) ? onNone() : onSome(ma.value);\n };\n};\n/**\n * Alias of [`matchW`](#matchw).\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var foldW = matchW;\n/**\n * Takes a (lazy) default value, a function, and an `Option` value, if the `Option` value is `None` the default value is\n * returned, otherwise the function is applied to the value inside the `Some` and the result is returned.\n *\n * @example\n * import { some, none, match } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * match(() => 'a none', a => `a some containing ${a}`)\n * ),\n * 'a some containing 1'\n * )\n *\n * assert.strictEqual(\n * pipe(\n * none,\n * match(() => 'a none', a => `a some containing ${a}`)\n * ),\n * 'a none'\n * )\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var match = matchW;\n/**\n * Alias of [`match`](#match).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexport var fold = match;\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * The `W` suffix (short for **W**idening) means that the handler return type will be merged.\n *\n * @category error handling\n * @since 2.6.0\n */\nexport var getOrElseW = function (onNone) {\n return function (ma) {\n return isNone(ma) ? onNone() : ma.value;\n };\n};\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns the given default value\n *\n * @example\n * import { some, none, getOrElse } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * getOrElse(() => 0)\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * getOrElse(() => 0)\n * ),\n * 0\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexport var getOrElse = getOrElseW;\n/**\n * @category mapping\n * @since 2.10.0\n */\nexport var flap = /*#__PURE__*/ flap_(Functor);\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.0.0\n */\nexport var apFirst = /*#__PURE__*/ apFirst_(Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.0.0\n */\nexport var apSecond = /*#__PURE__*/ apSecond_(Apply);\n/**\n * @category sequencing\n * @since 2.0.0\n */\nexport var flatten = compact;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category combinators\n * @since 2.15.0\n */\nexport var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain));\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as O from 'fp-ts/Option'\n * import * as E from 'fp-ts/Either'\n *\n * const compute = (value: number) => pipe(\n * O.of(value),\n * O.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')),\n * )\n *\n * assert.deepStrictEqual(compute(1), O.of(1))\n * assert.deepStrictEqual(compute(-42), O.none)\n *\n * @category combinators\n * @since 2.16.0\n */\nexport var tapEither = /*#__PURE__*/ dual(2, tapEither_(FromEither, Chain));\n/**\n * @since 2.0.0\n */\nexport var duplicate = /*#__PURE__*/ extend(identity);\n/**\n * @category lifting\n * @since 2.11.0\n */\nexport var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither);\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexport var chainEitherK = \n/*#__PURE__*/ chainEitherK_(FromEither, Chain);\n/**\n * Alias of `tapEither`.\n *\n * @category legacy\n * @since 2.12.0\n */\nexport var chainFirstEitherK = tapEither;\n/**\n * Constructs a new `Option` from a nullable type. If the value is `null` or `undefined`, returns `None`, otherwise\n * returns the value wrapped in a `Some`.\n *\n * @example\n * import { none, some, fromNullable } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(fromNullable(undefined), none)\n * assert.deepStrictEqual(fromNullable(null), none)\n * assert.deepStrictEqual(fromNullable(1), some(1))\n *\n * @category conversions\n * @since 2.0.0\n */\nexport var fromNullable = function (a) { return (a == null ? none : some(a)); };\n/**\n * Transforms an exception into an `Option`. If `f` throws, returns `None`, otherwise returns the output wrapped in a\n * `Some`.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import { none, some, tryCatch } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * tryCatch(() => {\n * throw new Error()\n * }),\n * none\n * )\n * assert.deepStrictEqual(tryCatch(() => 1), some(1))\n *\n * @category interop\n * @since 2.0.0\n */\nexport var tryCatch = function (f) {\n try {\n return some(f());\n }\n catch (e) {\n return none;\n }\n};\n/**\n * Converts a function that may throw to one returning a `Option`.\n *\n * @category interop\n * @since 2.10.0\n */\nexport var tryCatchK = function (f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return tryCatch(function () { return f.apply(void 0, a); });\n };\n};\n/**\n * Returns a *smart constructor* from a function that returns a nullable value.\n *\n * @example\n * import { fromNullableK, none, some } from 'fp-ts/Option'\n *\n * const f = (s: string): number | undefined => {\n * const n = parseFloat(s)\n * return isNaN(n) ? undefined : n\n * }\n *\n * const g = fromNullableK(f)\n *\n * assert.deepStrictEqual(g('1'), some(1))\n * assert.deepStrictEqual(g('a'), none)\n *\n * @category lifting\n * @since 2.9.0\n */\nexport var fromNullableK = function (f) { return flow(f, fromNullable); };\n/**\n * This is `chain` + `fromNullable`, useful when working with optional values.\n *\n * @example\n * import { some, none, fromNullable, chainNullableK } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Employee {\n * readonly company?: {\n * readonly address?: {\n * readonly street?: {\n * readonly name?: string\n * }\n * }\n * }\n * }\n *\n * const employee1: Employee = { company: { address: { street: { name: 'high street' } } } }\n *\n * assert.deepStrictEqual(\n * pipe(\n * fromNullable(employee1.company),\n * chainNullableK(company => company.address),\n * chainNullableK(address => address.street),\n * chainNullableK(street => street.name)\n * ),\n * some('high street')\n * )\n *\n * const employee2: Employee = { company: { address: { street: {} } } }\n *\n * assert.deepStrictEqual(\n * pipe(\n * fromNullable(employee2.company),\n * chainNullableK(company => company.address),\n * chainNullableK(address => address.street),\n * chainNullableK(street => street.name)\n * ),\n * none\n * )\n *\n * @category sequencing\n * @since 2.9.0\n */\nexport var chainNullableK = function (f) {\n return function (ma) {\n return isNone(ma) ? none : fromNullable(f(ma.value));\n };\n};\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns `null`.\n *\n * @example\n * import { some, none, toNullable } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * toNullable\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * toNullable\n * ),\n * null\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexport var toNullable = /*#__PURE__*/ match(constNull, identity);\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns `undefined`.\n *\n * @example\n * import { some, none, toUndefined } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * toUndefined\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * toUndefined\n * ),\n * undefined\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexport var toUndefined = /*#__PURE__*/ match(constUndefined, identity);\nexport function elem(E) {\n return function (a, ma) {\n if (ma === undefined) {\n var elemE_1 = elem(E);\n return function (ma) { return elemE_1(a, ma); };\n }\n return isNone(ma) ? false : E.equals(a, ma.value);\n };\n}\n/**\n * Returns `true` if the predicate is satisfied by the wrapped value\n *\n * @example\n * import { some, none, exists } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * exists(n => n > 0)\n * ),\n * true\n * )\n * assert.strictEqual(\n * pipe(\n * some(1),\n * exists(n => n > 1)\n * ),\n * false\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * exists(n => n > 0)\n * ),\n * false\n * )\n *\n * @since 2.0.0\n */\nexport var exists = function (predicate) {\n return function (ma) {\n return isNone(ma) ? false : predicate(ma.value);\n };\n};\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexport var Do = /*#__PURE__*/ of(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bindTo = /*#__PURE__*/ bindTo_(Functor);\nvar let_ = /*#__PURE__*/ let__(Functor);\nexport { \n/**\n * @category do notation\n * @since 2.13.0\n */\nlet_ as let };\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bind = /*#__PURE__*/ chainable.bind(Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var apS = /*#__PURE__*/ apS_(Apply);\n/**\n * @since 2.11.0\n */\nexport var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray);\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyNonEmptyArrayWithIndex = function (f) {\n return function (as) {\n var o = f(0, _.head(as));\n if (isNone(o)) {\n return none;\n }\n var out = [o.value];\n for (var i = 1; i < as.length; i++) {\n var o_1 = f(i, as[i]);\n if (isNone(o_1)) {\n return none;\n }\n out.push(o_1.value);\n }\n return some(out);\n };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyArrayWithIndex = function (f) {\n var g = traverseReadonlyNonEmptyArrayWithIndex(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseArray = function (f) {\n return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); });\n};\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var sequenceArray = \n/*#__PURE__*/ traverseArray(identity);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var chain = flatMap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var chainFirst = tap;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `Refinement` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport function getRefinement(getOption) {\n return function (a) { return isSome(getOption(a)); };\n}\n/**\n * Use [`chainNullableK`](#chainnullablek) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var mapNullable = chainNullableK;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `O.Functor` instead of `O.option`\n * (where `O` is from `import O from 'fp-ts/Option'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var option = {\n URI: URI,\n map: _map,\n of: of,\n ap: _ap,\n chain: flatMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n zero: zero,\n alt: _alt,\n extend: _extend,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt,\n throwError: throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getApplySemigroup = /*#__PURE__*/ getApplySemigroup_(Apply);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getApplyMonoid = /*#__PURE__*/ getApplicativeMonoid(Applicative);\n/**\n * Use\n *\n * ```ts\n * import { first } from 'fp-ts/Semigroup'\n * import { getMonoid } from 'fp-ts/Option'\n *\n * getMonoid(first())\n * ```\n *\n * instead.\n *\n * Monoid returning the left-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(a) |\n *\n * @example\n * import { getFirstMonoid, some, none } from 'fp-ts/Option'\n *\n * const M = getFirstMonoid()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(2)), some(2))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(1))\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getFirstMonoid = function () { return getMonoid(first()); };\n/**\n * Use\n *\n * ```ts\n * import { last } from 'fp-ts/Semigroup'\n * import { getMonoid } from 'fp-ts/Option'\n *\n * getMonoid(last())\n * ```\n *\n * instead.\n *\n * Monoid returning the right-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(b) |\n *\n * @example\n * import { getLastMonoid, some, none } from 'fp-ts/Option'\n *\n * const M = getLastMonoid()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(2)), some(2))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(2))\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getLastMonoid = function () { return getMonoid(last()); };\n","import * as gatsby from \"gatsby\";\nimport * as gatsbyFs from \"gatsby-source-filesystem\";\nimport * as imgixGatsby from \"@imgix/gatsby\";\nimport * as prismic from \"@prismicio/client\";\nimport * as prismicH from \"@prismicio/helpers\";\nimport * as prismicT from \"@prismicio/types\";\nimport * as prismicCustomTypes from \"@prismicio/custom-types-client\";\nimport * as gqlc from \"graphql-compose\";\nimport * as RTE from \"fp-ts/ReaderTaskEither\";\nimport { NodeHelpers } from \"gatsby-node-helpers\";\n\nimport { Runtime } from \"./runtime\";\n\nexport type Mutable = {\n\t-readonly [P in keyof T]: T[P];\n};\n\nexport type UnknownRecord = Record<\n\tK,\n\tunknown\n>;\n\nexport type IterableElement = TargetIterable extends Iterable<\n\tinfer ElementType\n>\n\t? ElementType\n\t: never;\n\nexport type JoiValidationError = InstanceType<\n\tgatsby.PluginOptionsSchemaArgs[\"Joi\"][\"ValidationError\"]\n>;\n\nexport type PrismicDocumentNodeInput<\n\tTDocument extends prismicT.PrismicDocument = prismicT.PrismicDocument,\n> = TDocument & gatsby.NodeInput & { prismicId: string };\n\nexport enum TypePathKind {\n\tCustomType = \"CustomType\",\n\tSharedSliceVariation = \"SharedSliceVariation\",\n\tField = \"Field\",\n}\n\nexport interface TypePath {\n\tkind: TypePathKind;\n\tpath: string[];\n\ttype: PrismicTypePathType;\n}\n\nexport interface SerializedTypePath extends Omit {\n\tpath: string;\n}\n\nexport type TypePathNode = TypePath & gatsby.Node;\n\nexport type TransformFieldNameFn = (fieldName: string) => string;\n\nexport interface Dependencies {\n\tprismicClient: prismic.Client;\n\tcreateTypes: gatsby.Actions[\"createTypes\"];\n\tcreateNode: gatsby.Actions[\"createNode\"];\n\tbuildObjectType: gatsby.NodePluginSchema[\"buildObjectType\"];\n\tbuildUnionType: gatsby.NodePluginSchema[\"buildUnionType\"];\n\tbuildEnumType: gatsby.NodePluginSchema[\"buildEnumType\"];\n\tbuildScalarType: gatsby.NodePluginSchema[\"buildScalarType\"];\n\tbuildInterfaceType: gatsby.NodePluginSchema[\"buildInterfaceType\"];\n\tgetNode: gatsby.SourceNodesArgs[\"getNode\"];\n\tgetNodes: gatsby.SourceNodesArgs[\"getNodes\"];\n\ttouchNode: gatsby.Actions[\"touchNode\"];\n\tdeleteNode: gatsby.Actions[\"deleteNode\"];\n\tcreateNodeId: gatsby.NodePluginArgs[\"createNodeId\"];\n\tcreateContentDigest: gatsby.NodePluginArgs[\"createContentDigest\"];\n\tschema: gatsby.NodePluginSchema;\n\tcache: gatsby.GatsbyCache;\n\tstore: gatsby.Store;\n\treporter: gatsby.Reporter;\n\treportInfo: gatsby.Reporter[\"info\"];\n\treportWarning: gatsby.Reporter[\"warn\"];\n\treportVerbose: gatsby.Reporter[\"verbose\"];\n\tglobalNodeHelpers: NodeHelpers;\n\tnodeHelpers: NodeHelpers;\n\tpluginOptions: PluginOptions;\n\twebhookBody?: unknown;\n\tcreateRemoteFileNode: typeof gatsbyFs.createRemoteFileNode;\n\ttransformFieldName: TransformFieldNameFn;\n\truntime: Runtime;\n}\n\ntype ShouldDownloadFilesPredicate = (\n\tfield: prismicT.ImageFieldImage | prismicT.LinkToMediaField,\n) => boolean;\n\nexport type UnpreparedPluginOptions = gatsby.PluginOptions & {\n\trepositoryName: string;\n\taccessToken?: string;\n\tapiEndpoint?: string;\n\tcustomTypesApiEndpoint?: string;\n\treleaseID?: string;\n\tgraphQuery?: string;\n\tfetchLinks?: string[];\n\tlang?: string;\n\tpageSize?: number;\n\tlinkResolver?: prismicH.LinkResolverFunction;\n\troutes?: prismic.Route[];\n\thtmlSerializer?: prismicH.HTMLFunctionSerializer | prismicH.HTMLMapSerializer;\n\timageImgixParams?: imgixGatsby.ImgixUrlParams;\n\timagePlaceholderImgixParams?: imgixGatsby.ImgixUrlParams;\n\ttypePrefix?: string;\n\twebhookSecret?: string;\n\tshouldDownloadFiles?:\n\t\t| boolean\n\t\t| ShouldDownloadFilesPredicate\n\t\t| Record;\n\tcreateRemoteFileNode?: typeof gatsbyFs.createRemoteFileNode;\n\ttransformFieldName?: TransformFieldNameFn;\n\tfetch?: prismic.FetchLike & prismicCustomTypes.FetchLike;\n\n\tcustomTypesApiToken?: string;\n\t/**\n\t * A record of all Custom Type API IDs mapped to their models.\n\t *\n\t * @deprecated Use the `customTypeModels` plugin option.\n\t */\n\tschemas?: Record;\n\t/**\n\t * A list of all Custom Types models using the Custom Types API object shape.\n\t */\n\tcustomTypeModels?: prismicT.CustomTypeModel[];\n\t/**\n\t * A list of all Shared Slice models.\n\t */\n\tsharedSliceModels?: prismicT.SharedSliceModel[];\n};\n\nexport type PluginOptions = UnpreparedPluginOptions &\n\tRequired<\n\t\tPick<\n\t\t\tUnpreparedPluginOptions,\n\t\t\t| \"apiEndpoint\"\n\t\t\t| \"customTypeModels\"\n\t\t\t| \"sharedSliceModels\"\n\t\t\t| \"imageImgixParams\"\n\t\t\t| \"imagePlaceholderImgixParams\"\n\t\t\t| \"shouldDownloadFiles\"\n\t\t\t| \"createRemoteFileNode\"\n\t\t\t| \"transformFieldName\"\n\t\t\t| \"fetch\"\n\t\t>\n\t>;\n\nexport type FieldConfigCreator<\n\tTSchema extends prismicT.CustomTypeModelField = prismicT.CustomTypeModelField,\n> = (\n\tpath: string[],\n\tschema: TSchema,\n) => RTE.ReaderTaskEither<\n\tDependencies,\n\tError,\n\tgqlc.ObjectTypeComposerFieldConfigDefinition\n>;\n\nexport type PrismicTypePathType =\n\t| PrismicSpecialType\n\t| typeof prismicT.CustomTypeModelFieldType[keyof typeof prismicT.CustomTypeModelFieldType]\n\t| typeof prismicT.CustomTypeModelSliceType[keyof typeof prismicT.CustomTypeModelSliceType];\n\nexport enum PrismicSpecialType {\n\tDocument = \"Document\",\n\tDocumentData = \"DocumentData\",\n\tSharedSliceVariation = \"SharedSliceVariation\",\n\tUnknown = \"Unknown\",\n}\n\nexport interface PrismicAPIDocumentNode\n\textends prismicT.PrismicDocument,\n\t\tgatsby.Node {\n\tprismicId: string;\n}\n\nexport type PrismicWebhookBody =\n\t| PrismicWebhookBodyApiUpdate\n\t| PrismicWebhookBodyTestTrigger;\n\nexport enum PrismicWebhookType {\n\tAPIUpdate = \"api-update\",\n\tTestTrigger = \"test-trigger\",\n}\n\ninterface PrismicWebhookBodyBase {\n\ttype: PrismicWebhookType;\n\tdomain: string;\n\tapiUrl: string;\n\tsecret: string | null;\n}\n\nexport interface PrismicWebhookBodyApiUpdate extends PrismicWebhookBodyBase {\n\ttype: PrismicWebhookType.APIUpdate;\n\tmasterRef?: string;\n\treleases: PrismicWebhookOperations;\n\tmasks: PrismicWebhookOperations;\n\ttags: PrismicWebhookOperations;\n\tdocuments: string[];\n\texperiments?: PrismicWebhookOperations;\n}\n\nexport interface PrismicWebhookBodyTestTrigger extends PrismicWebhookBodyBase {\n\ttype: PrismicWebhookType.TestTrigger;\n}\n\ninterface PrismicWebhookOperations {\n\tupdate?: T[];\n\taddition?: T[];\n\tdeletion?: T[];\n}\n\ninterface PrismicWebhookMask {\n\tid: string;\n\tlabel: string;\n}\n\ninterface PrismicWebhookTag {\n\tid: string;\n}\n\nexport interface PrismicWebhookRelease {\n\tid: string;\n\tref: string;\n\tlabel: string;\n\tdocuments: string[];\n}\n\n/**\n * @deprecated Experiments are no longer supported by Prismic.\n */\ninterface PrismicWebhookExperiment {\n\tid: string;\n\tname: string;\n\tvariations: PrismicWebhookExperimentVariation[];\n}\n\n/**\n * @deprecated Experiments are no longer supported by Prismic.\n */\ninterface PrismicWebhookExperimentVariation {\n\tid: string;\n\tref: string;\n\tlabel: string;\n}\n\nexport type PrismicCustomTypeApiResponse = PrismicCustomTypeApiCustomType[];\n\nexport interface PrismicCustomTypeApiCustomType<\n\tModel extends prismicT.CustomTypeModel = prismicT.CustomTypeModel,\n> {\n\tid: string;\n\tlabel: string;\n\trepeatable: boolean;\n\tjson: Model;\n}\n","/**\n * Symbol used to identify if a value is a proxy. Attach this to proxies (done\n * automatically via `lib/createGetProxy`).\n */\nexport const IS_PROXY = Symbol(\"IS_PROXY\");\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const createGetProxy = (\n\ttarget: T,\n\tget: ProxyHandler[\"get\"],\n): T => {\n\t// @ts-expect-error - We are forcibly adding this \"is proxy\" property\n\ttarget[IS_PROXY] = true;\n\n\treturn new Proxy(target, { get });\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createGetProxy } from \"../createGetProxy\";\nimport { NormalizeConfig, NormalizerDependencies } from \"../types\";\n\nimport { NormalizedDocumentValue } from \"./document\";\n\nexport type NormalizeAlternateLanguagesConfig = NormalizeConfig<\n\tprismicT.PrismicDocument[\"alternate_languages\"]\n> &\n\tPick;\n\nexport type NormalizedAlternateLanguagesValue = (prismicT.AlternateLanguage & {\n\tdocument?: NormalizedDocumentValue | null;\n\traw: prismicT.AlternateLanguage;\n})[];\n\nexport const alternateLanguages = (\n\tconfig: NormalizeAlternateLanguagesConfig,\n): NormalizedAlternateLanguagesValue => {\n\treturn config.value.map((alternateLanguage) => {\n\t\tconst value = {\n\t\t\t...alternateLanguage,\n\t\t\traw: alternateLanguage,\n\t\t};\n\n\t\treturn createGetProxy(value, (target, prop, receiver) => {\n\t\t\tif (prop === \"document\") {\n\t\t\t\treturn config.getNode(value.id) || null;\n\t\t\t}\n\n\t\t\treturn Reflect.get(target, prop, receiver);\n\t\t});\n\t});\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as prismicH from \"@prismicio/helpers\";\nimport * as gatsby from \"gatsby\";\n\nimport {\n\tNormalizeConfig,\n\tNormalizedValueMap,\n\tNormalizerDependencies,\n} from \"../types\";\nimport { normalize } from \"../normalize\";\nimport {\n\talternateLanguages,\n\tNormalizedAlternateLanguagesValue,\n} from \"./alternateLanguages\";\nimport { NormalizedDocumentDataValue } from \"./documentData\";\n\nexport const isDocument = (\n\tvalue: unknown,\n): value is prismicT.PrismicDocument => {\n\treturn typeof value === \"object\" && value !== null && \"type\" in value;\n};\n\ntype NormalizeDocumentConfig =\n\tNormalizeConfig & NormalizerDependencies;\n\nexport type NormalizedDocumentValue<\n\tValue extends prismicT.PrismicDocument = prismicT.PrismicDocument,\n> = Omit & {\n\t__typename: string;\n\t_previewable: string;\n\tprismicId: string;\n\talternate_languages: NormalizedAlternateLanguagesValue;\n\tdata: NormalizedValueMap;\n\tdataRaw: Value[\"data\"];\n} & gatsby.NodeInput;\n\nexport const document = (\n\tconfig: NormalizeDocumentConfig,\n): NormalizedDocumentValue => {\n\tconst fields = {\n\t\t...config.value,\n\t\t__typename: config.nodeHelpers.createTypeName(config.path),\n\t\t_previewable: config.value.id,\n\t\talternate_languages: alternateLanguages({\n\t\t\t...config,\n\t\t\tvalue: config.value[\"alternate_languages\"],\n\t\t}),\n\t\turl: prismicH.asLink(config.value, config.linkResolver),\n\t\tdata: {},\n\t\tdataRaw: config.value.data,\n\t};\n\n\tif (Object.keys(config.value.data).length > 0) {\n\t\tfields.data = normalize({\n\t\t\t...config,\n\t\t\tvalue: config.value.data,\n\t\t\tpath: [...config.path, \"data\"],\n\t\t}) as NormalizedDocumentDataValue;\n\t}\n\n\treturn config.nodeHelpers.createNodeFactory(config.value.type)(\n\t\tfields,\n\t) as NormalizedDocumentValue;\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport {\n\tNormalizeConfig,\n\tNormalizedValueMap,\n\tNormalizerDependencies,\n} from \"../types\";\nimport { normalize } from \"../normalize\";\n\nexport const isDocumentDataField = (\n\tvalue: unknown,\n): value is prismicT.PrismicDocument[\"data\"] => {\n\treturn typeof value === \"object\" && value !== null;\n};\n\ntype NormalizeDocumentDataConfig<\n\tValue extends prismicT.PrismicDocument[\"data\"],\n> = NormalizeConfig & NormalizerDependencies;\n\nexport type NormalizedDocumentDataValue<\n\tValue extends prismicT.PrismicDocument[\"data\"] = prismicT.PrismicDocument[\"data\"],\n> = NormalizedValueMap;\n\nexport const documentData = (\n\tconfig: NormalizeDocumentDataConfig,\n): NormalizedDocumentDataValue => {\n\tconst result = {} as NormalizedDocumentDataValue;\n\n\tfor (const key in config.value) {\n\t\tconst transformedKey = config.transformFieldName(\n\t\t\tkey,\n\t\t) as keyof NormalizedDocumentDataValue;\n\n\t\tresult[transformedKey] = normalize({\n\t\t\t...config,\n\t\t\tvalue: config.value[key],\n\t\t\tpath: [...config.path, transformedKey as string],\n\t\t});\n\t}\n\n\treturn result;\n};\n","import * as prismicT from \"@prismicio/types\";\nimport { IterableElement } from \"type-fest\";\n\nimport {\n\tNormalizeConfig,\n\tNormalizedValueMap,\n\tNormalizerDependencies,\n} from \"../types\";\nimport { normalize } from \"../normalize\";\n\nexport const isGroupField = (value: unknown): value is prismicT.GroupField => {\n\treturn (\n\t\tArray.isArray(value) &&\n\t\tvalue.every((element) => typeof element === \"object\" && element !== null)\n\t);\n};\n\ntype NormalizeGroupConfig =\n\tNormalizeConfig & NormalizerDependencies;\n\nexport type NormalizedGroupValue<\n\tValue extends prismicT.GroupField = prismicT.GroupField,\n> = NormalizedValueMap>[];\n\nexport const group = (\n\tconfig: NormalizeGroupConfig,\n): NormalizedGroupValue => {\n\treturn config.value.map((element) => {\n\t\tconst result: NormalizedValueMap = {};\n\n\t\tfor (const key in element) {\n\t\t\tconst transformedKey = config.transformFieldName(key);\n\n\t\t\tresult[transformedKey] = normalize({\n\t\t\t\t...config,\n\t\t\t\tvalue: element[key],\n\t\t\t\tpath: [...config.path, transformedKey],\n\t\t\t});\n\t\t}\n\n\t\treturn result;\n\t}) as NormalizedGroupValue;\n};\n","/**\n * Sanitizes an image URL. The following steps are taken:\n *\n * - Replace `+` in filename with a space\n * - Decode the URL\n *\n * @param url - Image URL to sanitize.\n *\n * @returns Sanitized image URL.\n */\n// TODO: Remove once the Prismic API properly handles spaces in filenames\nexport const sanitizeImageURL = (url: string): string =>\n\tdecodeURIComponent(url.replace(/\\+/g, \" \"));\n","import * as prismicT from \"@prismicio/types\";\nimport * as gatsbyImage from \"gatsby-image\";\nimport * as gatsbyPluginImage from \"gatsby-plugin-image\";\nimport * as imgixGatsby from \"@imgix/gatsby\";\nimport * as imgixGatsbyHelpers from \"@imgix/gatsby/dist/pluginHelpers.browser\";\n\nimport { sanitizeImageURL } from \"../../lib/sanitizeImageURL\";\nimport { stripURLQueryParameters } from \"../../lib/stripURLParameters\";\n\nimport { NormalizeConfig, NormalizerDependencies } from \"../types\";\nimport { PRISMIC_API_IMAGE_FIELDS } from \"../../constants\";\n\nconst getURLSearchParams = (url: string): Record => {\n\tconst urlInstance = new URL(url);\n\tconst result: Record = {};\n\n\tfor (const [key, value] of urlInstance.searchParams.entries()) {\n\t\tresult[key] = value;\n\t}\n\n\treturn result;\n};\n\nexport const isImageField = (value: unknown): value is prismicT.ImageField => {\n\t// Unfortunately, we can't check for specific properties here since it's\n\t// possible for the object to be empty if an image was never set.\n\treturn typeof value === \"object\" && value !== null;\n};\n\nexport type NormalizeImageConfig<\n\tValue extends prismicT.ImageField = prismicT.ImageField,\n> = NormalizeConfig &\n\tPick<\n\t\tNormalizerDependencies,\n\t\t\"imageImgixParams\" | \"imagePlaceholderImgixParams\"\n\t>;\n\ntype NormalizedImageBase =\n\tValue extends prismicT.FilledImageFieldImage\n\t\t? Value & {\n\t\t\t\tfixed: gatsbyImage.FixedObject;\n\t\t\t\tfluid: gatsbyImage.FluidObject;\n\t\t\t\tgatsbyImageData: gatsbyPluginImage.IGatsbyImageData;\n\t\t\t\tlocalFile: {\n\t\t\t\t\tpublicURL: Value[\"url\"];\n\t\t\t\t\tchildImageSharp: {\n\t\t\t\t\t\tfixed: gatsbyImage.FixedObject;\n\t\t\t\t\t\tfluid: gatsbyImage.FluidObject;\n\t\t\t\t\t\tgatsbyImageData: gatsbyPluginImage.IGatsbyImageData;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t }\n\t\t: Value extends prismicT.EmptyImageFieldImage\n\t\t? Value & {\n\t\t\t\tfixed: null;\n\t\t\t\tfluid: null;\n\t\t\t\tgatsbyImageData: null;\n\t\t\t\tlocalFile: null;\n\t\t }\n\t\t: never;\n\nexport type NormalizedImageValue =\n\tNormalizedImageBase & {\n\t\tthumbnails: Record>;\n\t};\n\ntype BuildImageFieldConfig = {\n\tvalue: Value;\n\timageImgixParams: imgixGatsby.ImgixUrlParams;\n\timagePlaceholderImgixParams: imgixGatsby.ImgixUrlParams;\n};\n\nconst buildImageField = (\n\tconfig: BuildImageFieldConfig,\n): NormalizedImageBase => {\n\tif (config.value.url) {\n\t\tconst imgixParams = {\n\t\t\t...getURLSearchParams(config.value.url),\n\t\t\t...config.imageImgixParams,\n\t\t};\n\t\tconst placeholderImgixParams = config.imagePlaceholderImgixParams;\n\n\t\tconst url = new URL(config.value.url);\n\n\t\tconst normalizedURL = sanitizeImageURL(\n\t\t\tstripURLQueryParameters(url.toString()),\n\t\t);\n\n\t\tconst populatedUrl = new URL(url.toString());\n\t\tfor (const paramKey in imgixParams) {\n\t\t\tpopulatedUrl.searchParams.set(\n\t\t\t\tparamKey,\n\t\t\t\tString(imgixParams[paramKey as keyof typeof imgixParams]),\n\t\t\t);\n\t\t}\n\n\t\tconst fixed = imgixGatsbyHelpers.buildFixedObject({\n\t\t\turl: normalizedURL,\n\t\t\targs: {\n\t\t\t\twidth: 400,\n\t\t\t\timgixParams,\n\t\t\t\tplaceholderImgixParams,\n\t\t\t},\n\t\t\tsourceWidth: config.value.dimensions.width,\n\t\t\tsourceHeight: config.value.dimensions.height,\n\t\t});\n\n\t\tconst fluid = imgixGatsbyHelpers.buildFluidObject({\n\t\t\turl: normalizedURL,\n\t\t\targs: {\n\t\t\t\tmaxWidth: 800,\n\t\t\t\timgixParams,\n\t\t\t\tplaceholderImgixParams,\n\t\t\t},\n\t\t\tsourceWidth: config.value.dimensions.width,\n\t\t\tsourceHeight: config.value.dimensions.height,\n\t\t});\n\n\t\tconst gatsbyImageData = imgixGatsbyHelpers.buildGatsbyImageDataObject({\n\t\t\turl: normalizedURL,\n\t\t\tdimensions: config.value.dimensions,\n\t\t\tdefaultParams: imgixParams,\n\t\t\tresolverArgs: {},\n\t\t});\n\n\t\treturn {\n\t\t\turl: sanitizeImageURL(populatedUrl.toString()),\n\t\t\talt: config.value.alt,\n\t\t\tcopyright: config.value.copyright,\n\t\t\tdimensions: config.value.dimensions,\n\t\t\tfixed,\n\t\t\tfluid,\n\t\t\tgatsbyImageData,\n\t\t\tlocalFile: {\n\t\t\t\tpublicURL: config.value.url,\n\t\t\t\tchildImageSharp: {\n\t\t\t\t\tfixed,\n\t\t\t\t\tfluid,\n\t\t\t\t\tgatsbyImageData,\n\t\t\t\t},\n\t\t\t},\n\t\t} as NormalizedImageBase;\n\t} else {\n\t\treturn {\n\t\t\turl: null,\n\t\t\talt: null,\n\t\t\tcopyright: null,\n\t\t\tdimensions: null,\n\t\t\tfixed: null,\n\t\t\tgatsbyImageData: null,\n\t\t\tfluid: null,\n\t\t\tlocalFile: null,\n\t\t} as NormalizedImageBase;\n\t}\n};\n\nexport const image = >(\n\tconfig: NormalizeImageConfig,\n): NormalizedImageValue => {\n\tconst result = {\n\t\t...buildImageField({\n\t\t\tvalue: config.value,\n\t\t\timageImgixParams: config.imageImgixParams,\n\t\t\timagePlaceholderImgixParams: config.imagePlaceholderImgixParams,\n\t\t}),\n\t\tthumbnails: {},\n\t} as NormalizedImageValue;\n\n\tconst thumbnailNames = Object.keys(config.value).filter(\n\t\t(key) => !PRISMIC_API_IMAGE_FIELDS.includes(key),\n\t);\n\n\tfor (const thumbnailName of thumbnailNames) {\n\t\tresult.thumbnails[thumbnailName as keyof typeof result.thumbnails] =\n\t\t\tbuildImageField({\n\t\t\t\tvalue: config.value[thumbnailName as keyof typeof config.value],\n\t\t\t\timageImgixParams: config.imageImgixParams,\n\t\t\t\timagePlaceholderImgixParams: config.imagePlaceholderImgixParams,\n\t\t\t});\n\t}\n\n\treturn result;\n};\n","import * as O from \"fp-ts/Option\";\nimport { pipe } from \"fp-ts/function\";\n\n/**\n * Removes query parameters from a URL. If the URL is invalid, the input is\n * returned as is.\n *\n * @param url - URL from which to remove query parameters.\n *\n * @returns `url` without query parameters.\n */\nexport const stripURLQueryParameters = (url: string): string =>\n\tpipe(\n\t\tO.tryCatch(() => new URL(url)),\n\t\tO.map((instance) => `${instance.origin}${instance.pathname}`),\n\t\tO.getOrElse(() => url),\n\t);\n","import * as prismicT from \"@prismicio/types\";\nimport * as prismicH from \"@prismicio/helpers\";\n\nimport { PrismicDocumentNodeInput } from \"../../types\";\n\nimport { createGetProxy } from \"../createGetProxy\";\nimport { NormalizeConfig, NormalizerDependencies } from \"../types\";\n\nexport const isLinkField = (value: unknown): value is prismicT.LinkField => {\n\treturn typeof value === \"object\" && (value === null || \"link_type\" in value);\n};\n\nexport type NormalizeLinkConfig<\n\tValue extends prismicT.LinkField = prismicT.LinkField,\n> = NormalizeConfig &\n\tPick;\n\nexport type NormalizedLinkValue = Value & {\n\turl?: string | null;\n\traw: Value;\n\tdocument?: PrismicDocumentNodeInput | null;\n\tlocalFile?: {\n\t\tpublicURL: string;\n\t};\n};\n\nexport const link = (\n\tconfig: NormalizeLinkConfig,\n): NormalizedLinkValue => {\n\tconst value: NormalizedLinkValue = {\n\t\t...config.value,\n\t\turl: prismicH.asLink(config.value, config.linkResolver),\n\t\tlocalFile: undefined,\n\t\traw: config.value,\n\t};\n\n\tif (\n\t\tconfig.value.link_type === prismicT.LinkType.Media &&\n\t\t\"url\" in config.value\n\t) {\n\t\tvalue.localFile = {\n\t\t\tpublicURL: config.value.url,\n\t\t};\n\t}\n\n\treturn createGetProxy(value, (target, prop, receiver) => {\n\t\tif (\n\t\t\tprop === \"document\" &&\n\t\t\tconfig.value.link_type === prismicT.LinkType.Document &&\n\t\t\t\"id\" in config.value &&\n\t\t\t!config.value.isBroken\n\t\t) {\n\t\t\treturn config.getNode(config.value.id) || null;\n\t\t}\n\n\t\treturn Reflect.get(target, prop, receiver);\n\t});\n};\n","import * as prismicH from \"@prismicio/helpers\";\n\nimport {\n\tNormalizeConfig,\n\tNormalizerDependencies,\n\tStructuredTextField,\n} from \"../types\";\n\nexport const isStructuredTextField = (\n\tvalue: unknown,\n): value is StructuredTextField => {\n\t// We must be very loose here. An image element, for example, does not\n\t// contain a `text` property.\n\treturn Array.isArray(value) && value.every((element) => \"type\" in element);\n};\n\nexport type NormalizeStructuredTextConfig<\n\tValue extends StructuredTextField = StructuredTextField,\n> = NormalizeConfig &\n\tPick;\n\nexport type NormalizedStructuredTextValue = {\n\thtml: string;\n\ttext: string;\n\trichText: Value;\n\traw: Value;\n};\n\nexport const structuredText = (\n\tconfig: NormalizeStructuredTextConfig,\n): NormalizedStructuredTextValue => {\n\treturn {\n\t\thtml: prismicH.asHTML(\n\t\t\tconfig.value,\n\t\t\tconfig.linkResolver,\n\t\t\tconfig.htmlSerializer,\n\t\t),\n\t\ttext: prismicH.asText(config.value),\n\t\trichText: config.value,\n\t\traw: config.value,\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport { IterableElement } from \"type-fest\";\n\nimport {\n\tNormalizeConfig,\n\tNormalizedValueMap,\n\tNormalizerDependencies,\n} from \"../types\";\nimport { normalize } from \"../normalize\";\n\nexport const isSlice = (\n\tvalue: unknown,\n): value is prismicT.Slice | prismicT.SharedSlice => {\n\treturn typeof value === \"object\" && value !== null && \"slice_type\" in value;\n};\n\nexport const isSharedSlice = (\n\tvalue: prismicT.Slice,\n): value is prismicT.SharedSlice => \"variation\" in value;\n\nexport type NormalizeSliceConfig =\n\tNormalizeConfig & NormalizerDependencies;\n\nexport type NormalizedSliceValue<\n\tValue extends prismicT.Slice | prismicT.SharedSlice =\n\t\t| prismicT.Slice\n\t\t| prismicT.SharedSlice,\n> = Value extends prismicT.SharedSlice\n\t? {\n\t\t\t__typename: string;\n\t\t\tid: string;\n\t\t\tslice_type: Value[\"slice_type\"];\n\t\t\tslice_label: Value[\"slice_label\"];\n\t\t\tvariation: string;\n\t\t\tversion: string;\n\t\t\tprimary: NormalizedValueMap;\n\t\t\titems: NormalizedValueMap>[];\n\t }\n\t: {\n\t\t\t__typename: string;\n\t\t\tid: string;\n\t\t\tslice_type: Value[\"slice_type\"];\n\t\t\tslice_label: Value[\"slice_label\"];\n\t\t\tprimary: NormalizedValueMap;\n\t\t\titems: NormalizedValueMap>[];\n\t };\n\nexport const slice = (\n\tconfig: NormalizeSliceConfig,\n): NormalizedSliceValue => {\n\tconst { primary, items, ...value } = config.value;\n\n\tconst result = {\n\t\t...value,\n\t\t__typename: config.nodeHelpers.createTypeName(config.path),\n\t\tid: config.nodeHelpers.createNodeId([\n\t\t\t...config.path,\n\t\t\tJSON.stringify(config.value),\n\t\t]),\n\t\tslice_type: config.value.slice_type,\n\t\tslice_label: config.value.slice_label,\n\t} as unknown as NormalizedSliceValue;\n\t// Yes, using `as unknown as X` is bad practice.\n\t// Yes, you can fix this if you know how to do it.\n\t// Yes, that means you!\n\n\tresult.primary = {} as NormalizedSliceValue[\"primary\"];\n\n\tfor (const key in primary) {\n\t\tconst transformedKey = config.transformFieldName(\n\t\t\tkey,\n\t\t) as keyof NormalizedSliceValue[\"primary\"];\n\n\t\tresult.primary[transformedKey] = normalize({\n\t\t\t...config,\n\t\t\tvalue: config.value.primary[key],\n\t\t\tpath: [...config.path, \"primary\", transformedKey],\n\t\t});\n\t}\n\n\tresult.items = items.map((item) => {\n\t\tconst result = {} as IterableElement;\n\n\t\tfor (const key in item) {\n\t\t\tconst transformedKey = config.transformFieldName(\n\t\t\t\tkey,\n\t\t\t) as keyof IterableElement;\n\n\t\t\tresult[transformedKey] = normalize({\n\t\t\t\t...config,\n\t\t\t\tvalue: item[key],\n\t\t\t\tpath: [...config.path, \"items\", transformedKey],\n\t\t\t});\n\t\t}\n\n\t\treturn result;\n\t});\n\n\treturn result;\n};\n","import * as prismicT from \"@prismicio/types\";\nimport { IterableElement, Simplify } from \"type-fest\";\n\nimport {\n\tNormalizeConfig,\n\tNormalizedValue,\n\tNormalizerDependencies,\n} from \"../types\";\nimport { normalize } from \"../normalize\";\nimport { isSharedSlice, isSlice } from \"./slice\";\n\nexport const isSlices = (value: unknown): value is prismicT.SliceZone => {\n\treturn Array.isArray(value) && value.every((element) => isSlice(element));\n};\n\ntype NormalizeSlicesConfig =\n\tNormalizeConfig & NormalizerDependencies;\n\nexport type NormalizedSlicesValue<\n\tValue extends prismicT.SliceZone = prismicT.SliceZone,\n> = NormalizedValue>>[];\n\nexport const slices = (\n\tconfig: NormalizeSlicesConfig,\n): NormalizedSlicesValue => {\n\treturn config.value.map((element) => {\n\t\treturn normalize({\n\t\t\t...config,\n\t\t\tvalue: element,\n\t\t\tpath: isSharedSlice(element)\n\t\t\t\t? [element.slice_type, element.variation]\n\t\t\t\t: [...config.path, element.slice_type],\n\t\t});\n\t}) as NormalizedSlicesValue;\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { PrismicSpecialType } from \"../types\";\n\nimport * as normalizers from \"./normalizers\";\nimport {\n\tNormalizedValue,\n\tStructuredTextField,\n\tNormalizeConfig as BaseNormalizeConfig,\n\tNormalizerDependencies,\n} from \"./types\";\n\nfunction assertType(\n\ttype:\n\t\t| prismicT.CustomTypeModelFieldType\n\t\t| prismicT.CustomTypeModelSliceType\n\t\t| PrismicSpecialType,\n\tguard: (value: unknown) => boolean,\n\tvalue: unknown,\n): asserts value is T {\n\tif (!guard(value)) {\n\t\tthrow new Error(`Value is not expected type ${type}`);\n\t}\n}\n\ntype NormalizeConfig = BaseNormalizeConfig &\n\tNormalizerDependencies;\n\nexport const normalize = (\n\tconfig: NormalizeConfig,\n): NormalizedValue => {\n\tconst type = config.getTypePath(config.path);\n\tif (!type) {\n\t\tthrow new Error(\n\t\t\t`No type for path: ${config.path.join(\n\t\t\t\t\".\",\n\t\t\t)}. Did you register the Custom Type model?`,\n\t\t);\n\t}\n\n\tswitch (type.type) {\n\t\tcase PrismicSpecialType.Document: {\n\t\t\tassertType(\n\t\t\t\tPrismicSpecialType.Document,\n\t\t\t\tnormalizers.isDocument,\n\t\t\t\tconfig.value,\n\t\t\t);\n\n\t\t\treturn normalizers.document({\n\t\t\t\t...config,\n\t\t\t\tvalue: config.value,\n\t\t\t}) as NormalizedValue;\n\t\t}\n\n\t\tcase PrismicSpecialType.DocumentData: {\n\t\t\tassertType(\n\t\t\t\tPrismicSpecialType.DocumentData,\n\t\t\t\tnormalizers.isDocumentDataField,\n\t\t\t\tconfig.value,\n\t\t\t);\n\n\t\t\treturn normalizers.documentData({\n\t\t\t\t...config,\n\t\t\t\tvalue: config.value,\n\t\t\t}) as NormalizedValue;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Group: {\n\t\t\tassertType(\n\t\t\t\tprismicT.CustomTypeModelFieldType.Group,\n\t\t\t\tnormalizers.isGroupField,\n\t\t\t\tconfig.value,\n\t\t\t);\n\n\t\t\treturn normalizers.group({\n\t\t\t\t...config,\n\t\t\t\tvalue: config.value,\n\t\t\t}) as NormalizedValue;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Slices: {\n\t\t\tassertType(\n\t\t\t\tprismicT.CustomTypeModelFieldType.Slices,\n\t\t\t\tnormalizers.isSlices,\n\t\t\t\tconfig.value,\n\t\t\t);\n\n\t\t\treturn normalizers.slices({\n\t\t\t\t...config,\n\t\t\t\tvalue: config.value,\n\t\t\t}) as NormalizedValue;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelSliceType.Slice:\n\t\tcase PrismicSpecialType.SharedSliceVariation: {\n\t\t\tassertType(\n\t\t\t\tprismicT.CustomTypeModelSliceType.Slice,\n\t\t\t\tnormalizers.isSlice,\n\t\t\t\tconfig.value,\n\t\t\t);\n\n\t\t\treturn normalizers.slice({\n\t\t\t\t...config,\n\t\t\t\tvalue: config.value,\n\t\t\t}) as NormalizedValue;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Link: {\n\t\t\tassertType(\n\t\t\t\tprismicT.CustomTypeModelFieldType.Link,\n\t\t\t\tnormalizers.isLinkField,\n\t\t\t\tconfig.value,\n\t\t\t);\n\n\t\t\treturn normalizers.link({\n\t\t\t\tvalue: config.value,\n\t\t\t\tpath: config.path,\n\t\t\t\tgetNode: config.getNode,\n\t\t\t\tlinkResolver: config.linkResolver,\n\t\t\t}) as NormalizedValue;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Image: {\n\t\t\tassertType(\n\t\t\t\tprismicT.CustomTypeModelFieldType.Image,\n\t\t\t\tnormalizers.isImageField,\n\t\t\t\tconfig.value,\n\t\t\t);\n\n\t\t\treturn normalizers.image({\n\t\t\t\tvalue: config.value,\n\t\t\t\tpath: config.path,\n\t\t\t\timageImgixParams: config.imageImgixParams,\n\t\t\t\timagePlaceholderImgixParams: config.imagePlaceholderImgixParams,\n\t\t\t}) as NormalizedValue;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.StructuredText: {\n\t\t\tassertType(\n\t\t\t\tprismicT.CustomTypeModelFieldType.StructuredText,\n\t\t\t\tnormalizers.isStructuredTextField,\n\t\t\t\tconfig.value,\n\t\t\t);\n\n\t\t\treturn normalizers.structuredText({\n\t\t\t\tvalue: config.value,\n\t\t\t\tpath: config.path,\n\t\t\t\tlinkResolver: config.linkResolver,\n\t\t\t\thtmlSerializer: config.htmlSerializer,\n\t\t\t}) as NormalizedValue;\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn config.value as NormalizedValue;\n\t\t}\n\t}\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport {\n\tPrismicSpecialType,\n\tTransformFieldNameFn,\n\tTypePath,\n\tTypePathKind,\n} from \"../types\";\n\nconst fieldToTypePaths = <\n\tModel extends prismicT.CustomTypeModelField | prismicT.CustomTypeModelSlice,\n>(\n\tpath: string[],\n\tmodel: Model,\n\ttransformFieldName: TransformFieldNameFn,\n): TypePath[] => {\n\tswitch (model.type) {\n\t\tcase prismicT.CustomTypeModelFieldType.UID: {\n\t\t\treturn [];\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Group: {\n\t\t\tconst fields = Object.entries(model.config.fields).flatMap(\n\t\t\t\t([fieldId, fieldModel]) =>\n\t\t\t\t\tfieldToTypePaths(\n\t\t\t\t\t\t[...path, transformFieldName(fieldId)],\n\t\t\t\t\t\tfieldModel,\n\t\t\t\t\t\ttransformFieldName,\n\t\t\t\t\t),\n\t\t\t);\n\n\t\t\treturn [{ kind: TypePathKind.Field, type: model.type, path }, ...fields];\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Slices: {\n\t\t\tconst choices = (\n\t\t\t\t(model.config.choices && Object.entries(model.config.choices)) ||\n\t\t\t\t[]\n\t\t\t)\n\t\t\t\t.filter(\n\t\t\t\t\t(entry): entry is [string, prismicT.CustomTypeModelSlice] =>\n\t\t\t\t\t\tentry[1].type === prismicT.CustomTypeModelSliceType.Slice,\n\t\t\t\t)\n\t\t\t\t.flatMap(([choiceId, choiceModel]) =>\n\t\t\t\t\tfieldToTypePaths(\n\t\t\t\t\t\t[...path, choiceId],\n\t\t\t\t\t\tchoiceModel,\n\t\t\t\t\t\ttransformFieldName,\n\t\t\t\t\t),\n\t\t\t\t);\n\n\t\t\treturn [{ kind: TypePathKind.Field, type: model.type, path }, ...choices];\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelSliceType.Slice: {\n\t\t\tconst primary = Object.entries(model[\"non-repeat\"] || {}).flatMap(\n\t\t\t\t([fieldId, fieldModel]) =>\n\t\t\t\t\tfieldToTypePaths(\n\t\t\t\t\t\t[...path, \"primary\", transformFieldName(fieldId)],\n\t\t\t\t\t\tfieldModel,\n\t\t\t\t\t\ttransformFieldName,\n\t\t\t\t\t),\n\t\t\t);\n\n\t\t\tconst items = Object.entries(model.repeat || {}).flatMap(\n\t\t\t\t([fieldId, fieldModel]) =>\n\t\t\t\t\tfieldToTypePaths(\n\t\t\t\t\t\t[...path, \"items\", transformFieldName(fieldId)],\n\t\t\t\t\t\tfieldModel,\n\t\t\t\t\t\ttransformFieldName,\n\t\t\t\t\t),\n\t\t\t);\n\n\t\t\treturn [\n\t\t\t\t{ kind: TypePathKind.Field, type: model.type, path },\n\t\t\t\t...primary,\n\t\t\t\t...items,\n\t\t\t];\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tkind: TypePathKind.Field,\n\t\t\t\t\tpath,\n\t\t\t\t\ttype: model.type,\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t}\n};\n\nexport const customTypeModelToTypePaths = <\n\tModel extends prismicT.CustomTypeModel,\n>(\n\tcustomTypeModel: Model,\n\ttransformFieldName: TransformFieldNameFn,\n): TypePath[] => {\n\tconst definition = customTypeModel.json;\n\tconst fieldModels = Object.assign({}, ...Object.values(definition)) as Record<\n\t\tstring,\n\t\tprismicT.CustomTypeModelField\n\t>;\n\n\tconst hasDataFields =\n\t\tObject.values(fieldModels).filter(\n\t\t\t(fieldModel) => fieldModel.type !== prismicT.CustomTypeModelFieldType.UID,\n\t\t).length > 0;\n\n\tconst documentTypePath = {\n\t\tkind: TypePathKind.CustomType,\n\t\ttype: PrismicSpecialType.Document,\n\t\tpath: [customTypeModel.id],\n\t};\n\n\tif (hasDataFields) {\n\t\tconst data = Object.entries(fieldModels).flatMap(([fieldId, fieldModel]) =>\n\t\t\tfieldToTypePaths(\n\t\t\t\t[customTypeModel.id, \"data\", transformFieldName(fieldId)],\n\t\t\t\tfieldModel,\n\t\t\t\ttransformFieldName,\n\t\t\t),\n\t\t);\n\n\t\treturn [\n\t\t\tdocumentTypePath,\n\t\t\t{\n\t\t\t\tkind: TypePathKind.Field,\n\t\t\t\ttype: PrismicSpecialType.DocumentData,\n\t\t\t\tpath: [customTypeModel.id, \"data\"],\n\t\t\t},\n\t\t\t...data,\n\t\t];\n\t} else {\n\t\treturn [documentTypePath];\n\t}\n};\n\nexport const sharedSliceModelToTypePaths = <\n\tModel extends prismicT.SharedSliceModel,\n>(\n\tsharedSliceModel: Model,\n\ttransformFieldName: TransformFieldNameFn,\n): TypePath[] => {\n\treturn sharedSliceModel.variations.flatMap((variation) => {\n\t\tconst primary = Object.entries(variation.primary || {}).flatMap(\n\t\t\t([fieldId, fieldModel]) =>\n\t\t\t\tfieldToTypePaths(\n\t\t\t\t\t[\n\t\t\t\t\t\tsharedSliceModel.id,\n\t\t\t\t\t\tvariation.id,\n\t\t\t\t\t\t\"primary\",\n\t\t\t\t\t\ttransformFieldName(fieldId),\n\t\t\t\t\t],\n\t\t\t\t\tfieldModel,\n\t\t\t\t\ttransformFieldName,\n\t\t\t\t),\n\t\t);\n\n\t\tconst items = Object.entries(variation.items || {}).flatMap(\n\t\t\t([fieldId, fieldModel]) =>\n\t\t\t\tfieldToTypePaths(\n\t\t\t\t\t[\n\t\t\t\t\t\tsharedSliceModel.id,\n\t\t\t\t\t\tvariation.id,\n\t\t\t\t\t\t\"items\",\n\t\t\t\t\t\ttransformFieldName(fieldId),\n\t\t\t\t\t],\n\t\t\t\t\tfieldModel,\n\t\t\t\t\ttransformFieldName,\n\t\t\t\t),\n\t\t);\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tkind: TypePathKind.SharedSliceVariation,\n\t\t\t\ttype: PrismicSpecialType.SharedSliceVariation,\n\t\t\t\tpath: [sharedSliceModel.id, variation.id],\n\t\t\t},\n\t\t\t...primary,\n\t\t\t...items,\n\t\t];\n\t});\n};\n","export const serializePath = (path: string[]): string => path.join(\".\");\n","import { SerializedTypePath, TypePath } from \"../types\";\nimport { serializePath } from \"./serializePath\";\n\nexport const serializeTypePaths = (\n\ttypePaths: TypePath[],\n): SerializedTypePath[] => {\n\treturn typePaths.map((typePath) => {\n\t\treturn {\n\t\t\t...typePath,\n\t\t\tpath: serializePath(typePath.path),\n\t\t};\n\t});\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as prismicH from \"@prismicio/helpers\";\nimport * as imgixGatsby from \"@imgix/gatsby\";\nimport * as nodeHelpers from \"gatsby-node-helpers\";\nimport { pipe } from \"fp-ts/function\";\n\nimport { SerializedTypePath, TransformFieldNameFn, TypePath } from \"../types\";\nimport { normalize } from \"./normalize\";\nimport {\n\tDEFAULT_IMGIX_PARAMS,\n\tDEFAULT_PLACEHOLDER_IMGIX_PARAMS,\n\tGLOBAL_TYPE_PREFIX,\n} from \"../constants\";\nimport { NormalizedValue } from \"./types\";\nimport { SetRequired } from \"type-fest\";\nimport {\n\tcustomTypeModelToTypePaths,\n\tsharedSliceModelToTypePaths,\n} from \"./typePaths\";\nimport { NormalizedDocumentValue } from \"./normalizers\";\nimport { serializeTypePaths } from \"./serializeTypePaths\";\nimport { serializePath } from \"./serializePath\";\n\n// `createNodeId` would normally create a hash from its input, but we can treat\n// it as an identity function since we are using it within the context of\n// Prismic documents with unique IDs.\nconst createNodeId = (input: string): string => input;\n\n// `createContentDigest` would normally create a hash from its input, but we\n// can treat it as a stubbed function since a Gatsby node's\n// `internal.contentDigest` property is an internal field. In a runtime\n// preview, we don't need the digest.\nconst createContentDigest = (_input: T): string =>\n\t\"contentDigest is not supported during previews\";\n\nexport type RuntimeConfig = {\n\ttypePrefix?: string;\n\tlinkResolver?: prismicH.LinkResolverFunction;\n\timageImgixParams?: imgixGatsby.ImgixUrlParams;\n\timagePlaceholderImgixParams?: imgixGatsby.ImgixUrlParams;\n\thtmlSerializer?: prismicH.HTMLMapSerializer | prismicH.HTMLFunctionSerializer;\n\ttransformFieldName?: TransformFieldNameFn;\n};\n\ntype SubscriberFn = () => void;\n\nexport const createRuntime = (config: RuntimeConfig = {}): Runtime => {\n\treturn new Runtime(config);\n};\n\nexport class Runtime {\n\tnodes: NormalizedDocumentValue[];\n\ttypePaths: SerializedTypePath[];\n\tsubscribers: SubscriberFn[];\n\n\tconfig: SetRequired<\n\t\tRuntimeConfig,\n\t\t\"imageImgixParams\" | \"imagePlaceholderImgixParams\" | \"transformFieldName\"\n\t>;\n\n\tnodeHelpers: nodeHelpers.NodeHelpers;\n\n\tconstructor(config: RuntimeConfig = {}) {\n\t\tthis.nodes = [];\n\t\tthis.typePaths = [];\n\t\tthis.subscribers = [];\n\n\t\tthis.config = {\n\t\t\t...config,\n\t\t\timageImgixParams: config.imageImgixParams ?? DEFAULT_IMGIX_PARAMS,\n\t\t\timagePlaceholderImgixParams:\n\t\t\t\tconfig.imagePlaceholderImgixParams ?? DEFAULT_PLACEHOLDER_IMGIX_PARAMS,\n\t\t\ttransformFieldName:\n\t\t\t\tconfig.transformFieldName ??\n\t\t\t\t((fieldName: string) => fieldName.replace(/-/g, \"_\")),\n\t\t};\n\n\t\tthis.nodeHelpers = nodeHelpers.createNodeHelpers({\n\t\t\ttypePrefix: [GLOBAL_TYPE_PREFIX, config.typePrefix]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(\" \"),\n\t\t\tfieldPrefix: GLOBAL_TYPE_PREFIX,\n\t\t\tcreateNodeId,\n\t\t\tcreateContentDigest,\n\t\t});\n\t}\n\n\tsubscribe(callback: SubscriberFn): void {\n\t\tthis.subscribers = [...this.subscribers, callback];\n\t}\n\n\tunsubscribe(callback: SubscriberFn): void {\n\t\tthis.subscribers = this.subscribers.filter(\n\t\t\t(registeredCallback) => registeredCallback !== callback,\n\t\t);\n\t}\n\n\tregisterCustomTypeModel(\n\t\tmodel: prismicT.CustomTypeModel,\n\t): SerializedTypePath[] {\n\t\tconst typePaths = pipe(\n\t\t\tcustomTypeModelToTypePaths(model, this.config.transformFieldName),\n\t\t\tserializeTypePaths,\n\t\t);\n\n\t\tthis.typePaths = [...this.typePaths, ...typePaths];\n\n\t\tthis.#notifySubscribers();\n\n\t\treturn typePaths;\n\t}\n\n\tregisterCustomTypeModels(\n\t\tmodels: prismicT.CustomTypeModel[],\n\t): SerializedTypePath[] {\n\t\tconst typePaths = pipe(\n\t\t\tmodels.flatMap((model) =>\n\t\t\t\tcustomTypeModelToTypePaths(model, this.config.transformFieldName),\n\t\t\t),\n\t\t\tserializeTypePaths,\n\t\t);\n\n\t\tthis.typePaths = [...this.typePaths, ...typePaths];\n\n\t\tthis.#notifySubscribers();\n\n\t\treturn typePaths;\n\t}\n\n\tregisterSharedSliceModel(\n\t\tmodel: prismicT.SharedSliceModel,\n\t): SerializedTypePath[] {\n\t\tconst typePaths = pipe(\n\t\t\tsharedSliceModelToTypePaths(model, this.config.transformFieldName),\n\t\t\tserializeTypePaths,\n\t\t);\n\n\t\tthis.typePaths = [...this.typePaths, ...typePaths];\n\n\t\tthis.#notifySubscribers();\n\n\t\treturn typePaths;\n\t}\n\n\tregisterSharedSliceModels(\n\t\tmodels: prismicT.SharedSliceModel[],\n\t): SerializedTypePath[] {\n\t\tconst typePaths = pipe(\n\t\t\tmodels.flatMap((model) =>\n\t\t\t\tsharedSliceModelToTypePaths(model, this.config.transformFieldName),\n\t\t\t),\n\t\t\tserializeTypePaths,\n\t\t);\n\n\t\tthis.typePaths = [...this.typePaths, ...typePaths];\n\n\t\tthis.#notifySubscribers();\n\n\t\treturn typePaths;\n\t}\n\n\tregisterDocument(\n\t\tdocument: PrismicDocument,\n\t): NormalizedDocumentValue {\n\t\tconst normalizedDocument = this.normalizeDocument(document);\n\n\t\tthis.nodes = [...this.nodes, normalizedDocument];\n\n\t\tthis.#notifySubscribers();\n\n\t\treturn normalizedDocument;\n\t}\n\n\tregisterDocuments(\n\t\tdocuments: PrismicDocument[],\n\t): NormalizedDocumentValue[] {\n\t\tconst nodes = documents.map((document) => {\n\t\t\treturn this.normalizeDocument(document);\n\t\t});\n\n\t\tthis.nodes = [...this.nodes, ...nodes];\n\n\t\tthis.#notifySubscribers();\n\n\t\treturn nodes;\n\t}\n\n\tnormalizeDocument(\n\t\tdocument: PrismicDocument,\n\t): NormalizedDocumentValue {\n\t\treturn this.normalize(document, [\n\t\t\tdocument.type,\n\t\t]) as NormalizedDocumentValue;\n\t}\n\n\tnormalize(value: Value, path: string[]): NormalizedValue {\n\t\treturn normalize({\n\t\t\tvalue,\n\t\t\tpath,\n\t\t\tgetNode: this.getNode.bind(this),\n\t\t\tgetTypePath: this.getTypePath.bind(this),\n\t\t\tnodeHelpers: this.nodeHelpers,\n\t\t\tlinkResolver: this.config.linkResolver,\n\t\t\thtmlSerializer: this.config.htmlSerializer,\n\t\t\timageImgixParams: this.config.imageImgixParams,\n\t\t\timagePlaceholderImgixParams: this.config.imagePlaceholderImgixParams,\n\t\t\ttransformFieldName: this.config.transformFieldName,\n\t\t});\n\t}\n\n\tgetNode(\n\t\tid: string,\n\t): NormalizedDocumentValue | undefined {\n\t\treturn this.nodes.find(\n\t\t\t(node): node is NormalizedDocumentValue =>\n\t\t\t\tnode.prismicId === id,\n\t\t);\n\t}\n\n\thasNode(id: string): boolean {\n\t\treturn this.nodes.some((node) => node.prismicId === id);\n\t}\n\n\tgetTypePath(path: string[]): SerializedTypePath | undefined {\n\t\treturn this.typePaths.find(\n\t\t\t(typePath) => typePath.path === serializePath(path),\n\t\t);\n\t}\n\n\texportTypePaths(): string {\n\t\treturn JSON.stringify(this.typePaths);\n\t}\n\n\timportTypePaths(typePathsExport: string): TypePath[] {\n\t\tconst importedTypePaths = JSON.parse(typePathsExport);\n\n\t\tthis.typePaths = [...this.typePaths, ...importedTypePaths];\n\n\t\tthis.#notifySubscribers();\n\n\t\treturn importedTypePaths;\n\t}\n\n\t#notifySubscribers(): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tsubscriber();\n\t\t}\n\t}\n}\n","function stringifyAttribute(name, value) {\n if (!value) {\n return '';\n }\n let stringified = '; ' + name;\n if (value === true) {\n return stringified; // boolean attributes shouldn't have a value\n }\n return stringified + '=' + value;\n}\nfunction stringifyAttributes(attributes) {\n if (typeof attributes.expires === 'number') {\n const milliseconds = Math.min(Date.now() + attributes.expires * 864e+5, 864e+13);\n attributes.expires = new Date(milliseconds);\n }\n return stringifyAttribute('Expires', attributes.expires ? attributes.expires.toUTCString() : '')\n + stringifyAttribute('Domain', attributes.domain)\n + stringifyAttribute('Path', attributes.path)\n + stringifyAttribute('Secure', attributes.secure)\n + stringifyAttribute('Partitioned', attributes.partitioned)\n + stringifyAttribute('SameSite', attributes.sameSite);\n}\nexport function encode(name, value, attributes) {\n return encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent) // allowed special characters\n .replace(/\\(/g, '%28').replace(/\\)/g, '%29') // replace opening and closing parens\n + '=' + encodeURIComponent(value)\n // allowed special characters\n .replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent)\n + stringifyAttributes(attributes);\n}\nexport function parse(cookieString) {\n let result = {};\n const cookies = cookieString ? cookieString.split('; ') : [];\n for (let cookie of cookies) {\n const parts = cookie.split('=');\n let value = parts.slice(1).join('=');\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n try {\n const name = decodeURIComponent(parts[0]);\n result[name] = value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent);\n }\n catch (e) {\n // ignore cookies with invalid name/value encoding\n }\n }\n return result;\n}\nexport function getAll() {\n return parse(document.cookie);\n}\nexport function get(name) {\n return getAll()[name];\n}\nexport function set(name, value, attributes) {\n document.cookie = encode(name, value, { path: '/', ...attributes });\n}\nexport function remove(name, attributes) {\n set(name, '', { ...attributes, expires: -1 });\n}\n","/**\n * The well-known name of the cookie used to store a Prismic preview session's\n * ref.\n */\nexport const preview = \"io.prismic.preview\";\n","export class PrismicError extends Error {\n\turl?: string;\n\tresponse: Response;\n\n\tconstructor(\n\t\tmessage = \"An invalid API response was returned\",\n\t\turl: string | undefined,\n\t\tresponse: Response,\n\t) {\n\t\tsuper(message);\n\n\t\tthis.url = url;\n\t\tthis.response = response;\n\t}\n}\n","import { isRepositoryName } from \"./isRepositoryName\";\nimport { PrismicError } from \"./PrismicError\";\n\n/**\n * Get a repository's Prismic Rest API V2 endpoint.\n *\n * @typeParam RepositoryName - Name of the Prismic repository.\n * @param repositoryName - Name of the repository.\n *\n * @returns The repository's Prismic Rest API V2 endpoint\n * @throws {@link Error} Thrown if an invalid repository name is provided.\n */\nexport const getRepositoryEndpoint = (\n\trepositoryName: RepositoryName,\n): `https://${RepositoryName}.cdn.prismic.io/api/v2` => {\n\tif (isRepositoryName(repositoryName)) {\n\t\treturn `https://${repositoryName}.cdn.prismic.io/api/v2` as const;\n\t} else {\n\t\tthrow new PrismicError(\n\t\t\t`An invalid Prismic repository name was given: ${repositoryName}`,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t);\n\t}\n};\n","/**\n * Determines if an input is a valid Prismic repository name.\n *\n * @param input - Input to test.\n *\n * @returns `true` if `input` is a valid Prismic repository name, `false`\n * otherwise.\n */\nexport const isRepositoryName = (input: string): boolean => {\n\treturn /^[a-zA-Z0-9][-a-zA-Z0-9]{2,}[a-zA-Z0-9]$/.test(input);\n};\n","// Primary library API.\nimport { getRepositoryEndpoint } from \"./getRepositoryEndpoint\";\nexport { getRepositoryEndpoint };\n/**\n * @deprecated Renamed to `getRepositoryEndpoint`.\n */\n// TODO: Remove in v3.\nexport const getEndpoint = getRepositoryEndpoint;\nexport { getRepositoryName } from \"./getRepositoryName\";\nexport { getGraphQLEndpoint } from \"./getGraphQLEndpoint\";\nexport { isRepositoryName } from \"./isRepositoryName\";\nexport { isRepositoryEndpoint } from \"./isRepositoryEndpoint\";\nexport { buildQueryURL } from \"./buildQueryURL\";\nexport { createClient, Client } from \"./client\";\n\n// Predicates API.\nimport { predicate } from \"./predicate\";\nexport { predicate };\n/**\n * @deprecated Renamed to `predicate` (without an \"s\").\n */\n// TODO: Remove in v3.\nexport const predicates = predicate;\n/**\n * @deprecated Renamed to `predicate` (lowercase and without an \"s\").\n */\n// TODO: Remove in v3.\nexport const Predicates = predicate;\n\n// Custom errors used by Client.\nexport { PrismicError } from \"./PrismicError\";\nexport { ForbiddenError } from \"./ForbiddenError\";\nexport { ParsingError } from \"./ParsingError\";\nexport { NotFoundError } from \"./NotFoundError\";\n\n// A collection of well-known cookie names shared between Prismic libraries and systems.\nexport * as cookie from \"./cookie\";\n\n// General types used throughout the project. These are made public to allow users to better type their projects.\nexport type { CreateClient, ClientConfig } from \"./client\";\nexport type { QueryParams, BuildQueryURLArgs } from \"./buildQueryURL\";\nexport type {\n\tAbortSignalLike,\n\tFetchLike,\n\tHttpRequestLike,\n\tOrdering,\n\tRequestInitLike,\n\tResponseLike,\n\tRoute,\n} from \"./types\";\n","/**\n * Ensures that a value is an array. If it is already an array, it is returned\n * as is. If it is not an array, it is converted to an array with itself as its\n * only element.\n *\n * @typeParam A - Element of the array.\n * @param a - Value to ensure is an array.\n *\n * @returns `a` as an array.\n */\nexport const castArray = (a: A | A[]): A[] => (Array.isArray(a) ? a : [a]);\n","import { castArray } from \"./castArray\";\n\ninterface WithPredicates {\n\tpredicates?: string | string[];\n}\n\n/**\n * Adds one or more predicates to an object with a `predicates` property.\n * Appended predicates are added to the end of the existing list.\n *\n * @typeParam T - Object to which predicates will be append.\n * @param objWithPredicates - Object to append predicates on the `predicates`\n * property.\n * @param predicates - One or more predicates to append.\n *\n * @returns The object with the appended predicates.\n */\nexport const appendPredicates = (\n\tobjWithPredicates: T = {} as T,\n\tpredicates: string | string[],\n) => {\n\treturn {\n\t\t...objWithPredicates,\n\t\tpredicates: [\n\t\t\t...(objWithPredicates.predicates || []),\n\t\t\t...castArray(predicates),\n\t\t],\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { PrismicError } from \"../PrismicError\";\n\n/**\n * Returns the first ref from a list that passes a predicate (a function that\n * returns true).\n *\n * @param refs - A list of refs to search.\n * @param predicate - A function that determines if a ref from the list matches\n * the criteria.\n *\n * @returns The first matching ref.\n * @throws If a matching ref cannot be found.\n */\nexport const findRef = (\n\trefs: prismicT.Ref[],\n\tpredicate: (ref: prismicT.Ref) => boolean,\n): prismicT.Ref => {\n\tconst ref = refs.find((ref) => predicate(ref));\n\n\tif (!ref) {\n\t\tthrow new PrismicError(\"Ref could not be found.\", undefined, undefined);\n\t}\n\n\treturn ref;\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { findRef } from \"./findRef\";\n\n/**\n * Returns the master ref from a list of given refs.\n *\n * @param refs - A list of refs to search.\n *\n * @returns The master ref from the list.\n * @throws If a matching ref cannot be found.\n */\nexport const findMasterRef = (refs: prismicT.Ref[]): prismicT.Ref => {\n\treturn findRef(refs, (ref) => ref.isMasterRef);\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { findRef } from \"./findRef\";\n\n/**\n * Returns the ref from a list of given refs with a matching ID.\n *\n * @param refs - A list of refs to search.\n * @param id - The ID of the ref to find.\n *\n * @returns The ref with a matching ID from the list.\n * @throws If a matching ref cannot be found.\n */\nexport const findRefByID = (refs: prismicT.Ref[], id: string): prismicT.Ref => {\n\treturn findRef(refs, (ref) => ref.id === id);\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { findRef } from \"./findRef\";\n\n/**\n * Returns the ref from a list of given refs with a matching label.\n *\n * @param refs - A list of refs to search.\n * @param id - The label of the ref to find.\n *\n * @returns The ref with a matching label from the list.\n * @throws If a matching ref cannot be found.\n */\nexport const findRefByLabel = (\n\trefs: prismicT.Ref[],\n\tlabel: string,\n): prismicT.Ref => {\n\treturn findRef(refs, (ref) => ref.label === label);\n};\n","import { preview as previewCookieName } from \"../cookie\";\n\nconst readValue = (value: string): string => {\n\treturn value.replace(/%3B/g, \";\");\n};\n\n/**\n * Returns the value of a cookie from a given cookie store.\n *\n * @param cookieJar - The stringified cookie store from which to read the\n * cookie.\n *\n * @returns The value of the cookie, if it exists.\n */\nexport const getPreviewCookie = (cookieJar: string): string | undefined => {\n\tconst cookies = cookieJar.split(\"; \");\n\n\tlet value: string | undefined;\n\n\tfor (const cookie of cookies) {\n\t\tconst parts = cookie.split(\"=\");\n\t\tconst name = readValue(parts[0]).replace(/%3D/g, \"=\");\n\n\t\tif (name === previewCookieName) {\n\t\t\tvalue = readValue(parts.slice(1).join(\"=\"));\n\t\t\tcontinue;\n\t\t}\n\t}\n\n\treturn value;\n};\n","import { PrismicError } from \"./PrismicError\";\n\ntype ForbiddenErrorRepositoryAPIResponse = {\n\ttype: string;\n\tmessage: string;\n};\n\ntype ForbiddenErrorQueryAPIResponse = {\n\terror: string;\n};\n\nexport class ForbiddenError extends PrismicError<\n\tForbiddenErrorRepositoryAPIResponse | ForbiddenErrorQueryAPIResponse\n> {}\n","import { PrismicError } from \"./PrismicError\";\n\nexport class NotFoundError extends PrismicError {}\n","import { PrismicError } from \"./PrismicError\";\n\ntype ParsingErrorAPIResponse = {\n\ttype: \"parsing-error\";\n\tmessage: string;\n\tline: number;\n\tcolumn: number;\n\tid: number;\n\tlocation: string;\n};\n\nexport class ParsingError extends PrismicError {}\n","import { castArray } from \"./lib/castArray\";\n\nimport { ValueOf, Ordering, Route } from \"./types\";\n\n/**\n * Parameters for the Prismic REST API V2.\n *\n * {@link https://prismic.io/docs/technologies/introduction-to-the-content-query-api}\n */\nexport interface QueryParams {\n\t/**\n\t * The secure token for accessing the API (only needed if your repository is\n\t * set to private).\n\t *\n\t * {@link https://user-guides.prismic.io/en/articles/1036153-generating-an-access-token}\n\t */\n\taccessToken?: string;\n\n\t/**\n\t * The `pageSize` parameter defines the maximum number of documents that the\n\t * API will return for your query.\n\t *\n\t * {@link https://prismic.io/docs/technologies/search-parameters-reference-rest-api#pagesize}\n\t */\n\tpageSize?: number;\n\n\t/**\n\t * The `page` parameter defines the pagination for the result of your query.\n\t *\n\t * {@link https://prismic.io/docs/technologies/search-parameters-reference-rest-api#page}\n\t */\n\tpage?: number;\n\n\t/**\n\t * The `after` parameter can be used along with the orderings option. It will\n\t * remove all the documents except for those after the specified document in\n\t * the list.\n\t *\n\t * {@link https://prismic.io/docs/technologies/search-parameters-reference-rest-api#after}\n\t */\n\tafter?: string;\n\n\t/**\n\t * The `fetch` parameter is used to make queries faster by only retrieving the\n\t * specified field(s).\n\t *\n\t * {@link https://prismic.io/docs/technologies/search-parameters-reference-rest-api#fetch}\n\t */\n\tfetch?: string | string[];\n\n\t/**\n\t * The `fetchLinks` parameter allows you to retrieve a specific content field\n\t * from a linked document and add it to the document response object.\n\t *\n\t * {@link https://prismic.io/docs/technologies/search-parameters-reference-rest-api#fetchlinks}\n\t */\n\tfetchLinks?: string | string[];\n\n\t/**\n\t * The `graphQuery` parameter allows you to specify which fields to retrieve\n\t * and what content to retrieve from Linked Documents / Content\n\t * Relationships.\n\t *\n\t * {@link https://prismic.io/docs/technologies/graphquery-rest-api}\n\t */\n\tgraphQuery?: string;\n\n\t/**\n\t * The `lang` option defines the language code for the results of your query.\n\t *\n\t * {@link https://prismic.io/docs/technologies/search-parameters-reference-rest-api#lang}\n\t */\n\tlang?: string;\n\n\t/**\n\t * The `orderings` parameter orders the results by the specified field(s). You\n\t * can specify as many fields as you want.\n\t *\n\t * {@link https://prismic.io/docs/technologies/search-parameters-reference-rest-api#orderings}\n\t */\n\torderings?: Ordering | string | (Ordering | string)[];\n\n\t/**\n\t * The `routes` option allows you to define how a document's `url` field is\n\t * resolved.\n\t *\n\t * {@link https://prismic.io/docs/core-concepts/link-resolver-route-resolver#route-resolver}\n\t */\n\troutes?: Route | string | (Route | string)[];\n\n\t/**\n\t * The `brokenRoute` option allows you to define the route populated in the\n\t * `url` property for broken Link or Content Relationship fields. A broken\n\t * link is a Link or Content Relationship field whose linked document has been\n\t * unpublished or deleted.\n\t *\n\t * {@link https://prismic.io/docs/core-concepts/link-resolver-route-resolver#route-resolver}\n\t */\n\tbrokenRoute?: string;\n}\n\n/**\n * Arguments for `buildQueryURL` to construct a Query URL.\n */\ntype BuildQueryURLParams = {\n\t/**\n\t * Ref used to query documents.\n\t *\n\t * {@link https://prismic.io/docs/technologies/introduction-to-the-content-query-api#prismic-api-ref}\n\t */\n\tref: string;\n\n\t/**\n\t * Ref used to populate Integration Fields with the latest content.\n\t *\n\t * {@link https://prismic.io/docs/core-concepts/integration-fields}\n\t */\n\tintegrationFieldsRef?: string;\n\n\t/**\n\t * One or more predicates to filter documents for the query.\n\t *\n\t * {@link https://prismic.io/docs/technologies/query-predicates-reference-rest-api}\n\t */\n\tpredicates?: string | string[];\n};\n\n/**\n * Parameters in this map have been renamed from the official Prismic REST API\n * V2 specification for better developer ergonomics.\n *\n * These parameters are renamed to their mapped value.\n */\nconst RENAMED_PARAMS = {\n\taccessToken: \"access_token\",\n} as const;\n\n/**\n * A valid parameter name for the Prismic REST API V2.\n */\ntype ValidParamName =\n\t| Exclude<\n\t\t\tkeyof QueryParams,\n\t\t\tkeyof typeof RENAMED_PARAMS | keyof BuildQueryURLParams\n\t >\n\t| ValueOf;\n\n/**\n * Converts an Ordering to a string that is compatible with Prismic's REST API.\n * If the value provided is already a string, no conversion is performed.\n *\n * @param ordering - Ordering to convert.\n *\n * @returns String representation of the Ordering.\n */\nconst castOrderingToString = (ordering: Ordering | string): string =>\n\ttypeof ordering === \"string\"\n\t\t? ordering\n\t\t: [\n\t\t\t\tordering.field,\n\t\t\t\tordering.direction === \"desc\" ? ordering.direction : undefined,\n\t\t ]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(\" \");\n\nexport type BuildQueryURLArgs = QueryParams & BuildQueryURLParams;\n\n/**\n * Build a Prismic REST API V2 URL to request documents from a repository. The\n * paginated response for this URL includes documents matching the parameters.\n *\n * A ref is required to make a request. Request the `endpoint` URL to retrieve a\n * list of available refs.\n *\n * Type the JSON response with `Query`.\n *\n * {@link https://prismic.io/docs/technologies/introduction-to-the-content-query-api#prismic-api-ref}\n * {@link https://prismic.io/docs/technologies/query-predicates-reference-rest-api}\n *\n * @param endpoint - URL to the repository's REST API V2.\n * @param args - Arguments to filter and scope the query.\n *\n * @returns URL that can be used to request documents from the repository.\n */\nexport const buildQueryURL = (\n\tendpoint: string,\n\targs: BuildQueryURLArgs,\n): string => {\n\tconst { predicates, ...params } = args;\n\n\tconst url = new URL(`documents/search`, `${endpoint}/`);\n\n\tif (predicates) {\n\t\tfor (const predicate of castArray(predicates)) {\n\t\t\turl.searchParams.append(\"q\", `[${predicate}]`);\n\t\t}\n\t}\n\n\t// Iterate over each parameter and add it to the URL. In some cases, the\n\t// parameter value needs to be transformed to fit the REST API.\n\tfor (const k in params) {\n\t\tconst name = (RENAMED_PARAMS[k as keyof typeof RENAMED_PARAMS] ??\n\t\t\tk) as ValidParamName;\n\n\t\tlet value = params[k as keyof typeof params];\n\n\t\tif (name === \"orderings\") {\n\t\t\tconst scopedValue = params[name];\n\n\t\t\tif (scopedValue != null) {\n\t\t\t\tconst v = castArray(scopedValue)\n\t\t\t\t\t.map((ordering) => castOrderingToString(ordering))\n\t\t\t\t\t.join(\",\");\n\n\t\t\t\tvalue = `[${v}]`;\n\t\t\t}\n\t\t} else if (name === \"routes\") {\n\t\t\tif (typeof params[name] === \"object\") {\n\t\t\t\tvalue = JSON.stringify(castArray(params[name]));\n\t\t\t}\n\t\t}\n\n\t\tif (value != null) {\n\t\t\turl.searchParams.set(name, castArray(value).join(\",\"));\n\t\t}\n\t}\n\n\treturn url.toString();\n};\n","/**\n * Formats the value of a predicate element to a stringified version accepted by\n * the Prismic REST API.\n *\n * @param value - Value to format.\n *\n * @returns `value` formatted for the Prismic REST API.\n */\nconst formatValue = (\n\tvalue:\n\t\t| string\n\t\t| number\n\t\t| Date\n\t\t| unknown\n\t\t| (string | number | Date | unknown)[],\n): string => {\n\tif (Array.isArray(value)) {\n\t\treturn `[${value.map(formatValue).join(\", \")}]`;\n\t}\n\n\tif (typeof value === \"string\") {\n\t\treturn `\"${value}\"`;\n\t}\n\n\tif (value instanceof Date) {\n\t\treturn `${value.getTime()}`;\n\t}\n\n\treturn `${value}`;\n};\n\n/**\n * Creates a predicate builder function for predicates with a path and\n * arguments.\n *\n * @typeParam Args - Arguments for the predicate.\n * @param name - Name of the predicate used in the resulting string.\n *\n * @returns Predicate builder function for the given name.\n */\nconst pathWithArgsPredicate = (name: string) => {\n\t/**\n\t * @param path - Path to the value to be compared.\n\t */\n\tconst fn = (path: string, ...args: Args): string => {\n\t\tconst formattedArgs = args.map(formatValue).join(\", \");\n\t\tconst joiner = path && args.length ? \", \" : \"\";\n\n\t\treturn `[${name}(${path}${joiner}${formattedArgs})]`;\n\t};\n\n\treturn fn;\n};\n\n/**\n * Creates a predicate builder function for predicates with only a path.\n *\n * @param name - Name of the predicate used in the resulting string.\n *\n * @returns Predicate builder function for the given name.\n */\nconst pathPredicate = (name: string) => {\n\tconst predicateFn = pathWithArgsPredicate(name);\n\n\t/**\n\t * @param path - Path for the predicate.\n\t */\n\tconst fn = (path: string): string => {\n\t\treturn predicateFn(path);\n\t};\n\n\treturn fn;\n};\n\n/**\n * Creates a predicate builder function for predicates with only arguments and\n * no path.\n *\n * @param name - Name of the predicate used in the resulting string.\n *\n * @returns Predicate builder function for the given name.\n */\nconst argsPredicate = (name: string) => {\n\tconst predicateFn = pathWithArgsPredicate(name);\n\n\t/**\n\t * @param args - Arguments for the predicate.\n\t */\n\tconst fn = (...args: Args): string => {\n\t\treturn predicateFn(\"\", ...args);\n\t};\n\n\treturn fn;\n};\n\nexport const predicate = {\n\t/**\n\t * The `at` predicate checks that the path matches the described value\n\t * exactly. It takes a single value for a field or an array (only for tags).\n\t *\n\t * {@link https://prismic.io/docs/technologies/query-predicates-reference-rest-api#at}\n\t */\n\tat: pathWithArgsPredicate<\n\t\t[value: string | number | boolean | Date | string[]]\n\t>(\"at\"),\n\n\t/**\n\t * The `not` predicate checks that the path doesn't match the provided value\n\t * exactly. It takes a single value for a field or an array (only for tags).\n\t *\n\t * {@link https://prismic.io/docs/technologies/query-predicates-reference-rest-api#not}\n\t */\n\tnot: pathWithArgsPredicate<\n\t\t[value: string | number | boolean | Date | string[]]\n\t>(\"not\"),\n\n\t/**\n\t * The `any` predicate takes an array of values. It works exactly the same way\n\t * as the `at` operator, but checks whether the fragment matches any of the\n\t * values in the array.\n\t *\n\t * {@link https://prismic.io/docs/technologies/query-predicates-reference-rest-api#any}\n\t */\n\tany: pathWithArgsPredicate<[values: (string | number | boolean | Date)[]]>(\n\t\t\"any\",\n\t),\n\n\t/**\n\t * The `in` predicate is used specifically to retrieve an array of documents\n\t * by their IDs or UIDs. This predicate is much more efficient at this than\n\t * the any predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/query-predicates-reference-rest-api#in}\n\t */\n\tin: pathWithArgsPredicate<[values: string[]]>(\"in\"),\n\n\t/**\n\t * The `fulltext` predicate provides two capabilities:\n\t *\n\t * 1. Checking if a certain string is anywhere inside a document (this is what\n\t * you should use to make your project's search engine feature)\n\t * 2. Checking if the string is contained inside a specific custom type’s Rich\n\t * Text or Key Text fragment.\n\t *\n\t * {@link https://prismic.io/docs/technologies/query-predicates-reference-rest-api#fulltext}\n\t */\n\tfulltext: pathWithArgsPredicate<[searchTerms: string]>(\"fulltext\"),\n\n\t/**\n\t * The `has` predicate checks whether a fragment has a value. It will return\n\t * all the documents of the specified type that contain a value for the\n\t * specified field.\n\t *\n\t * {@link https://prismic.io/docs/technologies/query-predicates-reference-rest-api#has}\n\t */\n\thas: pathPredicate(\"has\"),\n\n\t/**\n\t * The `missing` predicate checks if a fragment doesn't have a value. It will\n\t * return all the documents of the specified type that do not contain a value\n\t * for the specified field.\n\t *\n\t * {@link https://prismic.io/docs/technologies/query-predicates-reference-rest-api#missing}\n\t */\n\tmissing: pathPredicate(\"missing\"),\n\n\t/**\n\t * The `similar` predicate takes the ID of a document, and returns a list of\n\t * documents with similar content. This allows you to build an automated\n\t * content discovery feature (for example, a \"Related posts\" section).\n\t *\n\t * {@link https://prismic.io/docs/technologies/query-predicates-reference-rest-api#similar}\n\t */\n\tsimilar: argsPredicate<[id: string, value: number]>(\"similar\"),\n\n\t/**\n\t * The `geopoint.near` predicate checks that the value in the path is within\n\t * the radius of the given coordinates.\n\t *\n\t * This predicate will only work for a GeoPoint field.\n\t *\n\t * {@link https://prismic.io/docs/technologies/query-predicates-reference-rest-api#near}\n\t */\n\tgeopointNear:\n\t\tpathWithArgsPredicate<\n\t\t\t[latitude: number, longitude: number, radius: number]\n\t\t>(\"geopoint.near\"),\n\n\t/**\n\t * The `number.lt` predicate checks that the value in the number field is less\n\t * than the value passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/query-predicates-reference-rest-api#lt-less-than}\n\t */\n\tnumberLessThan: pathWithArgsPredicate<[value: number]>(\"number.lt\"),\n\n\t/**\n\t * The `number.gt` predicate checks that the value in the number field is\n\t * greater than the value passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/query-predicates-reference-rest-api#gt-greater-than}\n\t */\n\tnumberGreaterThan: pathWithArgsPredicate<[value: number]>(\"number.gt\"),\n\n\t/**\n\t * The `number.inRange` predicate checks that the value in the path is within\n\t * the two values passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/query-predicates-reference-rest-api#inrange}\n\t */\n\tnumberInRange:\n\t\tpathWithArgsPredicate<[lowerLimit: number, upperLimit: number]>(\n\t\t\t\"number.inRange\",\n\t\t),\n\n\t/**\n\t * The `date.after` predicate checks that the value in the path is after the\n\t * date value passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/date-and-time-based-predicate-reference-rest-api#after}\n\t */\n\tdateAfter:\n\t\tpathWithArgsPredicate<[date: string | number | Date]>(\"date.after\"),\n\n\t/**\n\t * The `date.before` predicate checks that the value in the path is before the\n\t * date value passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/date-and-time-based-predicate-reference-rest-api#before}\n\t */\n\tdateBefore:\n\t\tpathWithArgsPredicate<[date: string | number | Date]>(\"date.before\"),\n\n\t/**\n\t * The `date.between` predicate checks that the value in the path is within\n\t * the date values passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/date-and-time-based-predicate-reference-rest-api#between}\n\t */\n\tdateBetween:\n\t\tpathWithArgsPredicate<\n\t\t\t[startDate: string | number | Date, endDate: string | number | Date]\n\t\t>(\"date.between\"),\n\n\t/**\n\t * The `date.day-of-month` predicate checks that the value in the path is\n\t * equal to the day of the month passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/date-and-time-based-predicate-reference-rest-api#dayofmonth}\n\t */\n\tdateDayOfMonth: pathWithArgsPredicate<[day: number]>(\"date.day-of-month\"),\n\n\t/**\n\t * The `date.day-of-month-after` predicate checks that the value in the path\n\t * is after the day of the month passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/date-and-time-based-predicate-reference-rest-api#dayofmonthafter}\n\t */\n\tdateDayOfMonthAfter: pathWithArgsPredicate<[day: number]>(\n\t\t\"date.day-of-month-after\",\n\t),\n\n\t/**\n\t * The `date.day-of-month-before` predicate checks that the value in the path\n\t * is before the day of the month passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/date-and-time-based-predicate-reference-rest-api#dayofmonthbefore}\n\t */\n\tdateDayOfMonthBefore: pathWithArgsPredicate<[day: number]>(\n\t\t\"date.day-of-month-before\",\n\t),\n\n\t/**\n\t * The `date.day-of-week` predicate checks that the value in the path is equal\n\t * to the day of the week passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/date-and-time-based-predicate-reference-rest-api#dayofweek}\n\t */\n\tdateDayOfWeek:\n\t\tpathWithArgsPredicate<[day: string | number]>(\"date.day-of-week\"),\n\n\t/**\n\t * The `date.day-of-week-after` predicate checks that the value in the path is\n\t * after the day of the week passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/date-and-time-based-predicate-reference-rest-api#dayofweekafter}\n\t */\n\tdateDayOfWeekAfter: pathWithArgsPredicate<[day: string | number]>(\n\t\t\"date.day-of-week-after\",\n\t),\n\n\t/**\n\t * The date.day-of-week-before predicate checks that the value in the path is\n\t * before the day of the week passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/date-and-time-based-predicate-reference-rest-api#dayofweekbefore}\n\t */\n\tdateDayOfWeekBefore: pathWithArgsPredicate<[day: string | number]>(\n\t\t\"date.day-of-week-before\",\n\t),\n\n\t/**\n\t * The `date.month` predicate checks that the value in the path occurs in the\n\t * month value passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/date-and-time-based-predicate-reference-rest-api#month}\n\t */\n\tdateMonth: pathWithArgsPredicate<[month: string | number]>(\"date.month\"),\n\n\t/**\n\t * The `date.month-after` predicate checks that the value in the path occurs\n\t * in any month after the value passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/date-and-time-based-predicate-reference-rest-api#monthafter}\n\t */\n\tdateMonthAfter:\n\t\tpathWithArgsPredicate<[month: string | number]>(\"date.month-after\"),\n\n\t/**\n\t * The `date.month-before` predicate checks that the value in the path occurs\n\t * in any month before the value passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/date-and-time-based-predicate-reference-rest-api#monthbefore}\n\t */\n\tdateMonthBefore:\n\t\tpathWithArgsPredicate<[month: string | number]>(\"date.month-before\"),\n\n\t/**\n\t * The `date.year` predicate checks that the value in the path occurs in the\n\t * year value passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/date-and-time-based-predicate-reference-rest-api#year}\n\t */\n\tdateYear: pathWithArgsPredicate<[year: number]>(\"date.year\"),\n\n\t/**\n\t * The `date.hour` predicate checks that the value in the path occurs within\n\t * the hour value passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/date-and-time-based-predicate-reference-rest-api#hour}\n\t */\n\tdateHour: pathWithArgsPredicate<[hour: number]>(\"date.hour\"),\n\n\t/**\n\t * The `date.hour-after` predicate checks that the value in the path occurs\n\t * after the hour value passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/date-and-time-based-predicate-reference-rest-api#hourafter}\n\t */\n\tdateHourAfter: pathWithArgsPredicate<[hour: number]>(\"date.hour-after\"),\n\n\t/**\n\t * The `date.hour-before` predicate checks that the value in the path occurs\n\t * before the hour value passed into the predicate.\n\t *\n\t * {@link https://prismic.io/docs/technologies/date-and-time-based-predicate-reference-rest-api#hourbefore}\n\t */\n\tdateHourBefore: pathWithArgsPredicate<[hour: number]>(\"date.hour-before\"),\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as prismicH from \"@prismicio/helpers\";\n\nimport { appendPredicates } from \"./lib/appendPredicates\";\nimport { castArray } from \"./lib/castArray\";\nimport { castThunk } from \"./lib/castThunk\";\nimport { findMasterRef } from \"./lib/findMasterRef\";\nimport { findRefByID } from \"./lib/findRefByID\";\nimport { findRefByLabel } from \"./lib/findRefByLabel\";\nimport { getPreviewCookie } from \"./lib/getPreviewCookie\";\nimport { minifyGraphQLQuery } from \"./lib/minifyGraphQLQuery\";\n\nimport {\n\tAbortSignalLike,\n\tFetchLike,\n\tHttpRequestLike,\n\tExtractDocumentType,\n\tRequestInitLike,\n} from \"./types\";\nimport { ForbiddenError } from \"./ForbiddenError\";\nimport { NotFoundError } from \"./NotFoundError\";\nimport { ParsingError } from \"./ParsingError\";\nimport { PrismicError } from \"./PrismicError\";\nimport { buildQueryURL, BuildQueryURLArgs } from \"./buildQueryURL\";\nimport { getRepositoryEndpoint } from \"./getRepositoryEndpoint\";\nimport { isRepositoryEndpoint } from \"./isRepositoryEndpoint\";\nimport { predicate } from \"./predicate\";\n\n/**\n * The largest page size allowed by the Prismic REST API V2. This value is used\n * to minimize the number of requests required to query content.\n */\nconst MAX_PAGE_SIZE = 100;\n\n/**\n * The number of milliseconds in which repository metadata is considered valid.\n * A ref can be invalidated quickly depending on how frequently content is\n * updated in the Prismic repository. As such, repository's metadata can only be\n * considered valid for a short amount of time.\n */\nexport const REPOSITORY_CACHE_TTL = 5000;\n\n/**\n * The number of milliseconds in which a multi-page `getAll` (e.g. `getAll`,\n * `getAllByType`, `getAllByTag`) will wait between individual page requests.\n *\n * This is done to ensure API performance is sustainable and reduces the chance\n * of a failed API request due to overloading.\n */\nexport const GET_ALL_QUERY_DELAY = 500;\n\n/**\n * The default number of milliseconds to wait before retrying a rate-limited\n * `fetch()` request (429 response code). The default value is only used if the\n * response does not include a `retry-after` header.\n *\n * The API allows up to 200 requests per second.\n */\nconst DEFUALT_RETRY_AFTER_MS = 1000;\n\n/**\n * Modes for client ref management.\n */\nenum RefStateMode {\n\t/**\n\t * Use the repository's master ref.\n\t */\n\tMaster = \"Master\",\n\n\t/**\n\t * Use a given Release identified by its ID.\n\t */\n\tReleaseID = \"ReleaseID\",\n\n\t/**\n\t * Use a given Release identified by its label.\n\t */\n\tReleaseLabel = \"ReleaseLabel\",\n\n\t/**\n\t * Use a given ref.\n\t */\n\tManual = \"Manual\",\n}\n\n/**\n * An object containing stateful information about a client's ref strategy.\n */\ntype RefState = {\n\t/**\n\t * Determines if automatic preview support is enabled.\n\t */\n\tautoPreviewsEnabled: boolean;\n\n\t/**\n\t * An optional HTTP server request object used during previews if automatic\n\t * previews are enabled.\n\t */\n\thttpRequest?: HttpRequestLike;\n} & (\n\t| {\n\t\t\tmode: RefStateMode.Master;\n\t }\n\t| {\n\t\t\tmode: RefStateMode.ReleaseID;\n\t\t\treleaseID: string;\n\t }\n\t| {\n\t\t\tmode: RefStateMode.ReleaseLabel;\n\t\t\treleaseLabel: string;\n\t }\n\t| {\n\t\t\tmode: RefStateMode.Manual;\n\t\t\tref: RefStringOrThunk;\n\t }\n);\n\n/**\n * A ref or a function that returns a ref. If a static ref is known, one can be\n * given. If the ref must be fetched on-demand, a function can be provided. This\n * function can optionally be asynchronous.\n */\ntype RefStringOrThunk =\n\t| string\n\t| (() => string | undefined | Promise);\n\n/**\n * Configuration for clients that determine how content is queried.\n */\nexport type ClientConfig = {\n\t/**\n\t * The secure token for accessing the Prismic repository. This is only\n\t * required if the repository is set to private.\n\t */\n\taccessToken?: string;\n\n\t/**\n\t * A string representing a version of the Prismic repository's content. This\n\t * may point to the latest version (called the \"master ref\"), or a preview\n\t * with draft content.\n\t */\n\tref?: RefStringOrThunk;\n\n\t/**\n\t * A list of Route Resolver objects that define how a document's `url` field\n\t * is resolved.\n\t *\n\t * {@link https://prismic.io/docs/core-concepts/link-resolver-route-resolver#route-resolver}\n\t */\n\troutes?: NonNullable;\n\n\t/**\n\t * The `brokenRoute` option allows you to define the route populated in the\n\t * `url` property for broken Link or Content Relationship fields. A broken\n\t * link is a Link or Content Relationship field whose linked document has been\n\t * unpublished or deleted.\n\t *\n\t * {@link https://prismic.io/docs/core-concepts/link-resolver-route-resolver#route-resolver}\n\t */\n\tbrokenRoute?: NonNullable;\n\n\t/**\n\t * Default parameters that will be sent with each query. These parameters can\n\t * be overridden on each query if needed.\n\t */\n\tdefaultParams?: Omit<\n\t\tBuildQueryURLArgs,\n\t\t\"ref\" | \"integrationFieldsRef\" | \"accessToken\" | \"routes\" | \"brokenRoute\"\n\t>;\n\n\t/**\n\t * The function used to make network requests to the Prismic REST API. In\n\t * environments where a global `fetch` function does not exist, such as\n\t * Node.js, this function must be provided.\n\t */\n\tfetch?: FetchLike;\n\n\t/**\n\t * Options provided to the client's `fetch()` on all network requests. These\n\t * options will be merged with internally required options. They can also be\n\t * overriden on a per-query basis using the query's `fetchOptions` parameter.\n\t */\n\tfetchOptions?: RequestInitLike;\n};\n\n/**\n * Parameters for any client method that use `fetch()`.\n */\ntype FetchParams = {\n\t/**\n\t * Options provided to the client's `fetch()` on all network requests. These\n\t * options will be merged with internally required options. They can also be\n\t * overriden on a per-query basis using the query's `fetchOptions` parameter.\n\t */\n\tfetchOptions?: RequestInitLike;\n\n\t/**\n\t * An `AbortSignal` provided by an `AbortController`. This allows the network\n\t * request to be cancelled if necessary.\n\t *\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal}\n\t *\n\t * @deprecated Move the `signal` parameter into `fetchOptions.signal`.\n\t */\n\tsignal?: AbortSignalLike;\n};\n\n/**\n * Parameters specific to client methods that fetch all documents. These methods\n * start with `getAll` (for example, `getAllByType`).\n */\ntype GetAllParams = {\n\t/**\n\t * Limit the number of documents queried. If a number is not provided, there\n\t * will be no limit and all matching documents will be returned.\n\t */\n\tlimit?: number;\n};\n\n/**\n * Arguments to determine how the URL for a preview session is resolved.\n */\ntype ResolvePreviewArgs = {\n\t/**\n\t * A function that maps a Prismic document to a URL within your app.\n\t */\n\tlinkResolver?: prismicH.LinkResolverFunction;\n\n\t/**\n\t * A fallback URL if the Link Resolver does not return a value.\n\t */\n\tdefaultURL: string;\n\n\t/**\n\t * The preview token (also known as a ref) that will be used to query preview\n\t * content from the Prismic repository.\n\t */\n\tpreviewToken?: string;\n\n\t/**\n\t * The previewed document that will be used to determine the destination URL.\n\t */\n\tdocumentID?: string;\n};\n\n/**\n * Creates a predicate to filter content by document type.\n *\n * @param documentType - The document type to filter queried content.\n *\n * @returns A predicate that can be used in a Prismic REST API V2 request.\n */\nconst typePredicate = (documentType: string): string =>\n\tpredicate.at(\"document.type\", documentType);\n\n/**\n * Creates a predicate to filter content by document tags. All tags are required\n * on the document.\n *\n * @param tags - Document tags to filter queried content.\n *\n * @returns A predicate that can be used in a Prismic REST API V2 request.\n */\nconst everyTagPredicate = (tags: string | string[]): string =>\n\tpredicate.at(\"document.tags\", castArray(tags));\n\n/**\n * Creates a predicate to filter content by document tags. At least one matching\n * tag is required on the document.\n *\n * @param tags - Document tags to filter queried content.\n *\n * @returns A predicate that can be used in a Prismic REST API V2 request.\n */\nconst someTagsPredicate = (tags: string | string[]): string =>\n\tpredicate.any(\"document.tags\", castArray(tags));\n\n/**\n * Type definitions for the `createClient()` function. May be augmented by\n * third-party libraries.\n */\nexport interface CreateClient {\n\t(\n\t\t...args: ConstructorParameters\n\t): Client;\n}\n\n/**\n * Creates a Prismic client that can be used to query a repository.\n *\n * @example\n *\n * ```ts\n * // With a repository name.\n * createClient(\"qwerty\");\n *\n * // Or with a full Prismic Rest API V2 endpoint.\n * createClient(\"https://qwerty.cdn.prismic.io/api/v2\");\n * ```\n *\n * @typeParam TDocuments - A map of Prismic document type IDs mapped to their\n * TypeScript type.\n * @param repositoryNameOrEndpoint - The Prismic repository name or full Rest\n * API V2 endpoint for the repository.\n * @param options - Configuration that determines how content will be queried\n * from the Prismic repository.\n *\n * @returns A client that can query content from the repository.\n */\nexport const createClient: CreateClient = <\n\tTDocuments extends prismicT.PrismicDocument,\n>(\n\trepositoryNameOrEndpoint: string,\n\toptions?: ClientConfig,\n) => new Client(repositoryNameOrEndpoint, options);\n\n/**\n * A client that allows querying content from a Prismic repository.\n *\n * If used in an environment where a global `fetch` function is unavailable,\n * such as Node.js, the `fetch` option must be provided as part of the `options`\n * parameter.\n *\n * @typeParam TDocuments - Document types that are registered for the Prismic\n * repository. Query methods will automatically be typed based on this type.\n */\nexport class Client<\n\tTDocuments extends prismicT.PrismicDocument = prismicT.PrismicDocument,\n> {\n\t/**\n\t * The Prismic REST API V2 endpoint for the repository (use\n\t * `prismic.getRepositoryEndpoint` for the default endpoint).\n\t */\n\tendpoint: string;\n\n\t/**\n\t * The secure token for accessing the API (only needed if your repository is\n\t * set to private).\n\t *\n\t * {@link https://user-guides.prismic.io/en/articles/1036153-generating-an-access-token}\n\t */\n\taccessToken?: string;\n\n\t/**\n\t * A list of Route Resolver objects that define how a document's `url` field\n\t * is resolved.\n\t *\n\t * {@link https://prismic.io/docs/core-concepts/link-resolver-route-resolver#route-resolver}\n\t */\n\troutes?: NonNullable;\n\n\t/**\n\t * The `brokenRoute` option allows you to define the route populated in the\n\t * `url` property for broken Link or Content Relationship fields. A broken\n\t * link is a Link or Content Relationship field whose linked document has been\n\t * unpublished or deleted.\n\t *\n\t * {@link https://prismic.io/docs/core-concepts/link-resolver-route-resolver#route-resolver}\n\t */\n\tbrokenRoute?: NonNullable;\n\n\t/**\n\t * The function used to make network requests to the Prismic REST API. In\n\t * environments where a global `fetch` function does not exist, such as\n\t * Node.js, this function must be provided.\n\t */\n\tfetchFn: FetchLike;\n\n\tfetchOptions?: RequestInitLike;\n\n\t/**\n\t * Default parameters that will be sent with each query. These parameters can\n\t * be overridden on each query if needed.\n\t */\n\tdefaultParams?: Omit<\n\t\tBuildQueryURLArgs,\n\t\t\"ref\" | \"integrationFieldsRef\" | \"accessToken\" | \"routes\"\n\t>;\n\n\t/**\n\t * The client's ref mode state. This determines which ref is used during\n\t * queries.\n\t */\n\tprivate refState: RefState = {\n\t\tmode: RefStateMode.Master,\n\t\tautoPreviewsEnabled: true,\n\t};\n\n\t/**\n\t * Cached repository value.\n\t */\n\tprivate cachedRepository: prismicT.Repository | undefined;\n\n\t/**\n\t * Timestamp at which the cached repository data is considered stale.\n\t */\n\tprivate cachedRepositoryExpiration = 0;\n\n\t/**\n\t * Creates a Prismic client that can be used to query a repository.\n\t *\n\t * If used in an environment where a global `fetch` function is unavailable,\n\t * such as Node.js, the `fetch` option must be provided as part of the\n\t * `options` parameter.\n\t *\n\t * @param repositoryNameOrEndpoint - The Prismic repository name or full Rest\n\t * API V2 endpoint for the repository.\n\t * @param options - Configuration that determines how content will be queried\n\t * from the Prismic repository.\n\t *\n\t * @returns A client that can query content from the repository.\n\t */\n\tconstructor(repositoryNameOrEndpoint: string, options: ClientConfig = {}) {\n\t\tif (isRepositoryEndpoint(repositoryNameOrEndpoint)) {\n\t\t\tif (\n\t\t\t\tprocess.env.NODE_ENV === \"development\" &&\n\t\t\t\t/\\.prismic\\.io\\/(?!api\\/v2\\/?)/.test(repositoryNameOrEndpoint)\n\t\t\t) {\n\t\t\t\tthrow new PrismicError(\n\t\t\t\t\t\"@prismicio/client only supports Prismic Rest API V2. Please provide only the repository name to the first createClient() parameter or use the getRepositoryEndpoint() helper to generate a valid Rest API V2 endpoint URL.\",\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.endpoint = repositoryNameOrEndpoint;\n\t\t} else {\n\t\t\tthis.endpoint = getRepositoryEndpoint(repositoryNameOrEndpoint);\n\t\t}\n\n\t\tthis.accessToken = options.accessToken;\n\t\tthis.routes = options.routes;\n\t\tthis.brokenRoute = options.brokenRoute;\n\t\tthis.fetchOptions = options.fetchOptions;\n\t\tthis.defaultParams = options.defaultParams;\n\n\t\tif (options.ref) {\n\t\t\tthis.queryContentFromRef(options.ref);\n\t\t}\n\n\t\tif (typeof options.fetch === \"function\") {\n\t\t\tthis.fetchFn = options.fetch;\n\t\t} else if (typeof globalThis.fetch === \"function\") {\n\t\t\tthis.fetchFn = globalThis.fetch as FetchLike;\n\t\t} else {\n\t\t\tthrow new PrismicError(\n\t\t\t\t\"A valid fetch implementation was not provided. In environments where fetch is not available (including Node.js), a fetch implementation must be provided via a polyfill or the `fetch` option.\",\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t);\n\t\t}\n\n\t\t// If the global fetch function is used, we must bind it to the global scope.\n\t\tif (this.fetchFn === globalThis.fetch) {\n\t\t\tthis.fetchFn = this.fetchFn.bind(globalThis);\n\t\t}\n\n\t\tthis.graphQLFetch = this.graphQLFetch.bind(this);\n\t}\n\n\t/**\n\t * Enables the client to automatically query content from a preview session if\n\t * one is active in browser environments. This is enabled by default in the\n\t * browser.\n\t *\n\t * For server environments, use `enableAutoPreviewsFromReq`.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * client.enableAutoPreviews();\n\t * ```\n\t *\n\t * @see enableAutoPreviewsFromReq\n\t */\n\tenableAutoPreviews(): void {\n\t\tthis.refState.autoPreviewsEnabled = true;\n\t}\n\n\t/**\n\t * Enables the client to automatically query content from a preview session if\n\t * one is active in server environments. This is disabled by default on the\n\t * server.\n\t *\n\t * For browser environments, use `enableAutoPreviews`.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // In an express app\n\t * app.get(\"/\", function (req, res) {\n\t * \tclient.enableAutoPreviewsFromReq(req);\n\t * });\n\t * ```\n\t *\n\t * @param req - An HTTP server request object containing the request's\n\t * cookies.\n\t */\n\tenableAutoPreviewsFromReq(req: R): void {\n\t\tthis.refState.httpRequest = req;\n\t\tthis.refState.autoPreviewsEnabled = true;\n\t}\n\n\t/**\n\t * Disables the client from automatically querying content from a preview\n\t * session if one is active.\n\t *\n\t * Automatic preview content querying is enabled by default unless this method\n\t * is called.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * client.disableAutoPreviews();\n\t * ```\n\t */\n\tdisableAutoPreviews(): void {\n\t\tthis.refState.autoPreviewsEnabled = false;\n\t}\n\n\t/**\n\t * Queries content from the Prismic repository.\n\t *\n\t * @deprecated Use `get` instead.\n\t * @example\n\t *\n\t * ```ts\n\t * const response = await client.query(\n\t * \tprismic.predicate.at(\"document.type\", \"page\"),\n\t * );\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of Prismic documents returned.\n\t * @param params - Parameters to filter, sort, and paginate results.\n\t *\n\t * @returns A paginated response containing the result of the query.\n\t */\n\tasync query(\n\t\tpredicates: NonNullable,\n\t\tparams?: Partial> & FetchParams,\n\t): Promise> {\n\t\tconst url = await this.buildQueryURL({ ...params, predicates });\n\n\t\treturn await this.fetch>(url, params);\n\t}\n\n\t/**\n\t * Queries content from the Prismic repository.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * const response = await client.get();\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of Prismic documents returned.\n\t * @param params - Parameters to filter, sort, and paginate results.\n\t *\n\t * @returns A paginated response containing the result of the query.\n\t */\n\tasync get(\n\t\tparams?: Partial & FetchParams,\n\t): Promise> {\n\t\tconst url = await this.buildQueryURL(params);\n\n\t\treturn await this.fetch>(url, params);\n\t}\n\n\t/**\n\t * Queries content from the Prismic repository and returns only the first\n\t * result, if any.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * const document = await client.getFirst();\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of the Prismic document returned.\n\t * @param params - Parameters to filter, sort, and paginate results. @returns\n\t * The first result of the query, if any.\n\t */\n\tasync getFirst(\n\t\tparams?: Partial & FetchParams,\n\t): Promise {\n\t\tconst actualParams = { ...params };\n\t\tif (!(params && params.page) && !params?.pageSize) {\n\t\t\tactualParams.pageSize = this.defaultParams?.pageSize ?? 1;\n\t\t}\n\t\tconst url = await this.buildQueryURL(actualParams);\n\t\tconst result = await this.fetch>(url, params);\n\n\t\tconst firstResult = result.results[0];\n\n\t\tif (firstResult) {\n\t\t\treturn firstResult;\n\t\t}\n\n\t\tthrow new PrismicError(\"No documents were returned\", url, undefined);\n\t}\n\n\t/**\n\t * **IMPORTANT**: Avoid using `dangerouslyGetAll` as it may be slower and\n\t * require more resources than other methods. Prefer using other methods that\n\t * filter by predicates such as `getAllByType`.\n\t *\n\t * Queries content from the Prismic repository and returns all matching\n\t * content. If no predicates are provided, all documents will be fetched.\n\t *\n\t * This method may make multiple network requests to query all matching\n\t * content.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * const response = await client.dangerouslyGetAll();\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of Prismic documents returned.\n\t * @param params - Parameters to filter, sort, and paginate results.\n\t *\n\t * @returns A list of documents matching the query.\n\t */\n\tasync dangerouslyGetAll(\n\t\tparams: Partial> &\n\t\t\tGetAllParams &\n\t\t\tFetchParams = {},\n\t): Promise {\n\t\tconst { limit = Infinity, ...actualParams } = params;\n\t\tconst resolvedParams = {\n\t\t\t...actualParams,\n\t\t\tpageSize: Math.min(\n\t\t\t\tlimit,\n\t\t\t\tactualParams.pageSize || this.defaultParams?.pageSize || MAX_PAGE_SIZE,\n\t\t\t),\n\t\t};\n\n\t\tconst documents: TDocument[] = [];\n\t\tlet latestResult: prismicT.Query | undefined;\n\n\t\twhile (\n\t\t\t(!latestResult || latestResult.next_page) &&\n\t\t\tdocuments.length < limit\n\t\t) {\n\t\t\tconst page = latestResult ? latestResult.page + 1 : undefined;\n\n\t\t\tlatestResult = await this.get({ ...resolvedParams, page });\n\t\t\tdocuments.push(...latestResult.results);\n\n\t\t\tif (latestResult.next_page) {\n\t\t\t\tawait new Promise((res) => setTimeout(res, GET_ALL_QUERY_DELAY));\n\t\t\t}\n\t\t}\n\n\t\treturn documents.slice(0, limit);\n\t}\n\n\t/**\n\t * Queries a document from the Prismic repository with a specific ID.\n\t *\n\t * @remarks\n\t * A document's UID is different from its ID. An ID is automatically generated\n\t * for all documents and is made available on its `id` property. A UID is\n\t * provided in the Prismic editor and is unique among all documents of its\n\t * Custom Type.\n\t * @example\n\t *\n\t * ```ts\n\t * const document = await client.getByID(\"WW4bKScAAMAqmluX\");\n\t * ```\n\t *\n\t * @typeParam TDocument- Type of the Prismic document returned.\n\t * @param id - ID of the document.\n\t * @param params - Parameters to filter, sort, and paginate the results.\n\t *\n\t * @returns The document with an ID matching the `id` parameter, if a matching\n\t * document exists.\n\t */\n\tasync getByID(\n\t\tid: string,\n\t\tparams?: Partial & FetchParams,\n\t): Promise {\n\t\treturn await this.getFirst(\n\t\t\tappendPredicates(params, predicate.at(\"document.id\", id)),\n\t\t);\n\t}\n\n\t/**\n\t * Queries documents from the Prismic repository with specific IDs.\n\t *\n\t * @remarks\n\t * A document's UID is different from its ID. An ID is automatically generated\n\t * for all documents and is made available on its `id` property. A UID is\n\t * provided in the Prismic editor and is unique among all documents of its\n\t * Custom Type.\n\t * @example\n\t *\n\t * ```ts\n\t * const response = await client.getByIDs([\n\t * \t\"WW4bKScAAMAqmluX\",\n\t * \t\"U1kTRgEAAC8A5ldS\",\n\t * ]);\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of Prismic documents returned.\n\t * @param ids - A list of document IDs.\n\t * @param params - Parameters to filter, sort, and paginate the results.\n\t *\n\t * @returns A paginated response containing documents with IDs matching the\n\t * `ids` parameter.\n\t */\n\tasync getByIDs(\n\t\tids: string[],\n\t\tparams?: Partial & FetchParams,\n\t): Promise> {\n\t\treturn await this.get(\n\t\t\tappendPredicates(params, predicate.in(\"document.id\", ids)),\n\t\t);\n\t}\n\n\t/**\n\t * Queries all documents from the Prismic repository with specific IDs.\n\t *\n\t * This method may make multiple network requests to query all matching\n\t * content.\n\t *\n\t * @remarks\n\t * A document's UID is different from its ID. An ID is automatically generated\n\t * for all documents and is made available on its `id` property. A UID is\n\t * provided in the Prismic editor and is unique among all documents of its\n\t * Custom Type.\n\t * @example\n\t *\n\t * ```ts\n\t * const response = await client.getAllByIDs([\n\t * \t\"WW4bKScAAMAqmluX\",\n\t * \t\"U1kTRgEAAC8A5ldS\",\n\t * ]);\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of Prismic documents returned.\n\t * @param ids - A list of document IDs.\n\t * @param params - Parameters to filter, sort, and paginate the results.\n\t *\n\t * @returns A list of documents with IDs matching the `ids` parameter.\n\t */\n\tasync getAllByIDs(\n\t\tids: string[],\n\t\tparams?: Partial & GetAllParams & FetchParams,\n\t): Promise {\n\t\treturn await this.dangerouslyGetAll(\n\t\t\tappendPredicates(params, predicate.in(\"document.id\", ids)),\n\t\t);\n\t}\n\n\t/**\n\t * Queries a document from the Prismic repository with a specific UID and\n\t * Custom Type.\n\t *\n\t * @remarks\n\t * A document's UID is different from its ID. An ID is automatically generated\n\t * for all documents and is made available on its `id` property. A UID is\n\t * provided in the Prismic editor and is unique among all documents of its\n\t * Custom Type.\n\t * @example\n\t *\n\t * ```ts\n\t * const document = await client.getByUID(\"blog_post\", \"my-first-post\");\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of the Prismic document returned.\n\t * @param documentType - The API ID of the document's Custom Type.\n\t * @param uid - UID of the document.\n\t * @param params - Parameters to filter, sort, and paginate the results.\n\t *\n\t * @returns The document with a UID matching the `uid` parameter, if a\n\t * matching document exists.\n\t */\n\tasync getByUID<\n\t\tTDocument extends TDocuments,\n\t\tTDocumentType extends TDocument[\"type\"] = TDocument[\"type\"],\n\t>(\n\t\tdocumentType: TDocumentType,\n\t\tuid: string,\n\t\tparams?: Partial & FetchParams,\n\t): Promise> {\n\t\treturn await this.getFirst>(\n\t\t\tappendPredicates(params, [\n\t\t\t\ttypePredicate(documentType),\n\t\t\t\tpredicate.at(`my.${documentType}.uid`, uid),\n\t\t\t]),\n\t\t);\n\t}\n\n\t/**\n\t * Queries document from the Prismic repository with specific UIDs and Custom\n\t * Type.\n\t *\n\t * @remarks\n\t * A document's UID is different from its ID. An ID is automatically generated\n\t * for all documents and is made available on its `id` property. A UID is\n\t * provided in the Prismic editor and is unique among all documents of its\n\t * Custom Type.\n\t * @example\n\t *\n\t * ```ts\n\t * const document = await client.getByUIDs(\"blog_post\", [\n\t * \t\"my-first-post\",\n\t * \t\"my-second-post\",\n\t * ]);\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of the Prismic document returned.\n\t * @param documentType - The API ID of the document's Custom Type.\n\t * @param uids - A list of document UIDs.\n\t * @param params - Parameters to filter, sort, and paginate the results.\n\t *\n\t * @returns A paginated response containing documents with UIDs matching the\n\t * `uids` parameter.\n\t */\n\tasync getByUIDs<\n\t\tTDocument extends TDocuments,\n\t\tTDocumentType extends TDocument[\"type\"] = TDocument[\"type\"],\n\t>(\n\t\tdocumentType: TDocumentType,\n\t\tuids: string[],\n\t\tparams?: Partial & FetchParams,\n\t): Promise>> {\n\t\treturn await this.get>(\n\t\t\tappendPredicates(params, [\n\t\t\t\ttypePredicate(documentType),\n\t\t\t\tpredicate.in(`my.${documentType}.uid`, uids),\n\t\t\t]),\n\t\t);\n\t}\n\n\t/**\n\t * Queries all documents from the Prismic repository with specific UIDs and\n\t * Custom Type.\n\t *\n\t * This method may make multiple network requests to query all matching\n\t * content.\n\t *\n\t * @remarks\n\t * A document's UID is different from its ID. An ID is automatically generated\n\t * for all documents and is made available on its `id` property. A UID is\n\t * provided in the Prismic editor and is unique among all documents of its\n\t * Custom Type.\n\t * @example\n\t *\n\t * ```ts\n\t * const response = await client.getAllByUIDs([\n\t * \t\"my-first-post\",\n\t * \t\"my-second-post\",\n\t * ]);\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of Prismic documents returned.\n\t * @param documentType - The API ID of the document's Custom Type.\n\t * @param uids - A list of document UIDs.\n\t * @param params - Parameters to filter, sort, and paginate the results.\n\t *\n\t * @returns A list of documents with UIDs matching the `uids` parameter.\n\t */\n\tasync getAllByUIDs<\n\t\tTDocument extends TDocuments,\n\t\tTDocumentType extends TDocument[\"type\"] = TDocument[\"type\"],\n\t>(\n\t\tdocumentType: TDocumentType,\n\t\tuids: string[],\n\t\tparams?: Partial & GetAllParams & FetchParams,\n\t): Promise[]> {\n\t\treturn await this.dangerouslyGetAll<\n\t\t\tExtractDocumentType\n\t\t>(\n\t\t\tappendPredicates(params, [\n\t\t\t\ttypePredicate(documentType),\n\t\t\t\tpredicate.in(`my.${documentType}.uid`, uids),\n\t\t\t]),\n\t\t);\n\t}\n\n\t/**\n\t * Queries a singleton document from the Prismic repository for a specific\n\t * Custom Type.\n\t *\n\t * @remarks\n\t * A singleton document is one that is configured in Prismic to only allow one\n\t * instance. For example, a repository may be configured to contain just one\n\t * Settings document. This is in contrast to a repeatable Custom Type which\n\t * allows multiple instances of itself.\n\t * @example\n\t *\n\t * ```ts\n\t * const document = await client.getSingle(\"settings\");\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of the Prismic document returned.\n\t * @param documentType - The API ID of the singleton Custom Type.\n\t * @param params - Parameters to filter, sort, and paginate the results.\n\t *\n\t * @returns The singleton document for the Custom Type, if a matching document\n\t * exists.\n\t */\n\tasync getSingle<\n\t\tTDocument extends TDocuments,\n\t\tTDocumentType extends TDocument[\"type\"] = TDocument[\"type\"],\n\t>(\n\t\tdocumentType: TDocumentType,\n\t\tparams?: Partial & FetchParams,\n\t): Promise> {\n\t\treturn await this.getFirst>(\n\t\t\tappendPredicates(params, typePredicate(documentType)),\n\t\t);\n\t}\n\n\t/**\n\t * Queries documents from the Prismic repository for a specific Custom Type.\n\t *\n\t * Use `getAllByType` instead if you need to query all documents for a\n\t * specific Custom Type.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * const response = await client.getByType(\"blog_post\");\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of Prismic documents returned.\n\t * @param documentType - The API ID of the Custom Type.\n\t * @param params - Parameters to filter, sort, and paginate the results.\n\t *\n\t * @returns A paginated response containing documents of the Custom Type.\n\t */\n\tasync getByType<\n\t\tTDocument extends TDocuments,\n\t\tTDocumentType extends TDocument[\"type\"] = TDocument[\"type\"],\n\t>(\n\t\tdocumentType: TDocumentType,\n\t\tparams?: Partial & FetchParams,\n\t): Promise>> {\n\t\treturn await this.get>(\n\t\t\tappendPredicates(params, typePredicate(documentType)),\n\t\t);\n\t}\n\n\t/**\n\t * Queries all documents from the Prismic repository for a specific Custom\n\t * Type.\n\t *\n\t * This method may make multiple network requests to query all matching\n\t * content.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * const response = await client.getByType(\"blog_post\");\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of Prismic documents returned.\n\t * @param documentType - The API ID of the Custom Type.\n\t * @param params - Parameters to filter, sort, and paginate the results.\n\t *\n\t * @returns A list of all documents of the Custom Type.\n\t */\n\tasync getAllByType<\n\t\tTDocument extends TDocuments,\n\t\tTDocumentType extends TDocument[\"type\"] = TDocument[\"type\"],\n\t>(\n\t\tdocumentType: TDocumentType,\n\t\tparams?: Partial> &\n\t\t\tGetAllParams &\n\t\t\tFetchParams,\n\t): Promise[]> {\n\t\treturn await this.dangerouslyGetAll<\n\t\t\tExtractDocumentType\n\t\t>(appendPredicates(params, typePredicate(documentType)));\n\t}\n\n\t/**\n\t * Queries documents from the Prismic repository with a specific tag.\n\t *\n\t * Use `getAllByTag` instead if you need to query all documents with a\n\t * specific tag.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * const response = await client.getByTag(\"food\");\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of Prismic documents returned.\n\t * @param tag - The tag that must be included on a document.\n\t * @param params - Parameters to filter, sort, and paginate the results.\n\t *\n\t * @returns A paginated response containing documents with the tag.\n\t */\n\tasync getByTag(\n\t\ttag: string,\n\t\tparams?: Partial & FetchParams,\n\t): Promise> {\n\t\treturn await this.get(\n\t\t\tappendPredicates(params, someTagsPredicate(tag)),\n\t\t);\n\t}\n\n\t/**\n\t * Queries all documents from the Prismic repository with a specific tag.\n\t *\n\t * This method may make multiple network requests to query all matching\n\t * content.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * const response = await client.getAllByTag(\"food\");\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of Prismic documents returned.\n\t * @param tag - The tag that must be included on a document.\n\t * @param params - Parameters to filter, sort, and paginate the results.\n\t *\n\t * @returns A list of all documents with the tag.\n\t */\n\tasync getAllByTag(\n\t\ttag: string,\n\t\tparams?: Partial> &\n\t\t\tGetAllParams &\n\t\t\tFetchParams,\n\t): Promise {\n\t\treturn await this.dangerouslyGetAll(\n\t\t\tappendPredicates(params, someTagsPredicate(tag)),\n\t\t);\n\t}\n\n\t/**\n\t * Queries documents from the Prismic repository with specific tags. A\n\t * document must be tagged with all of the queried tags to be included.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * const response = await client.getByEveryTag([\"food\", \"fruit\"]);\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of Prismic documents returned.\n\t * @param tags - A list of tags that must be included on a document.\n\t * @param params - Parameters to filter, sort, and paginate the results.\n\t *\n\t * @returns A paginated response containing documents with the tags.\n\t */\n\tasync getByEveryTag(\n\t\ttags: string[],\n\t\tparams?: Partial & FetchParams,\n\t): Promise> {\n\t\treturn await this.get(\n\t\t\tappendPredicates(params, everyTagPredicate(tags)),\n\t\t);\n\t}\n\n\t/**\n\t * Queries documents from the Prismic repository with specific tags. A\n\t * document must be tagged with all of the queried tags to be included.\n\t *\n\t * This method may make multiple network requests to query all matching\n\t * content.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * const response = await client.getAllByEveryTag([\"food\", \"fruit\"]);\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of Prismic documents returned.\n\t * @param tags - A list of tags that must be included on a document.\n\t * @param params - Parameters to filter, sort, and paginate the results.\n\t *\n\t * @returns A list of all documents with the tags.\n\t */\n\tasync getAllByEveryTag(\n\t\ttags: string[],\n\t\tparams?: Partial> &\n\t\t\tGetAllParams &\n\t\t\tFetchParams,\n\t): Promise {\n\t\treturn await this.dangerouslyGetAll(\n\t\t\tappendPredicates(params, everyTagPredicate(tags)),\n\t\t);\n\t}\n\n\t/**\n\t * Queries documents from the Prismic repository with specific tags. A\n\t * document must be tagged with at least one of the queried tags to be\n\t * included.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * const response = await client.getByEveryTag([\"food\", \"fruit\"]);\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of Prismic documents returned.\n\t * @param tags - A list of tags that must be included on a document.\n\t * @param params - Parameters to filter, sort, and paginate the results.\n\t *\n\t * @returns A paginated response containing documents with at least one of the\n\t * tags.\n\t */\n\tasync getBySomeTags(\n\t\ttags: string[],\n\t\tparams?: Partial & FetchParams,\n\t): Promise> {\n\t\treturn await this.get(\n\t\t\tappendPredicates(params, someTagsPredicate(tags)),\n\t\t);\n\t}\n\n\t/**\n\t * Queries documents from the Prismic repository with specific tags. A\n\t * document must be tagged with at least one of the queried tags to be\n\t * included.\n\t *\n\t * This method may make multiple network requests to query all matching\n\t * content.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * const response = await client.getAllBySomeTags([\"food\", \"fruit\"]);\n\t * ```\n\t *\n\t * @typeParam TDocument - Type of Prismic documents returned.\n\t * @param tags - A list of tags that must be included on a document.\n\t * @param params - Parameters to filter, sort, and paginate the results.\n\t *\n\t * @returns A list of all documents with at least one of the tags.\n\t */\n\tasync getAllBySomeTags(\n\t\ttags: string[],\n\t\tparams?: Partial> &\n\t\t\tGetAllParams &\n\t\t\tFetchParams,\n\t): Promise {\n\t\treturn await this.dangerouslyGetAll(\n\t\t\tappendPredicates(params, someTagsPredicate(tags)),\n\t\t);\n\t}\n\n\t/**\n\t * Returns metadata about the Prismic repository, such as its refs, releases,\n\t * and custom types.\n\t *\n\t * @returns Repository metadata.\n\t */\n\tasync getRepository(params?: FetchParams): Promise {\n\t\t// TODO: Restore when Authorization header support works in browsers with CORS.\n\t\t// return await this.fetch(this.endpoint);\n\n\t\tconst url = new URL(this.endpoint);\n\n\t\tif (this.accessToken) {\n\t\t\turl.searchParams.set(\"access_token\", this.accessToken);\n\t\t}\n\n\t\treturn await this.fetch(url.toString(), params);\n\t}\n\n\t/**\n\t * Returns a list of all refs for the Prismic repository.\n\t *\n\t * Refs are used to identify which version of the repository's content should\n\t * be queried. All repositories will have at least one ref pointing to the\n\t * latest published content called the \"master ref\".\n\t *\n\t * @returns A list of all refs for the Prismic repository.\n\t */\n\tasync getRefs(params?: FetchParams): Promise {\n\t\tconst repository = await this.getRepository(params);\n\n\t\treturn repository.refs;\n\t}\n\n\t/**\n\t * Returns a ref for the Prismic repository with a matching ID.\n\t *\n\t * @param id - ID of the ref.\n\t *\n\t * @returns The ref with a matching ID, if it exists.\n\t */\n\tasync getRefByID(id: string, params?: FetchParams): Promise {\n\t\tconst refs = await this.getRefs(params);\n\n\t\treturn findRefByID(refs, id);\n\t}\n\n\t/**\n\t * Returns a ref for the Prismic repository with a matching label.\n\t *\n\t * @param label - Label of the ref.\n\t *\n\t * @returns The ref with a matching label, if it exists.\n\t */\n\tasync getRefByLabel(\n\t\tlabel: string,\n\t\tparams?: FetchParams,\n\t): Promise {\n\t\tconst refs = await this.getRefs(params);\n\n\t\treturn findRefByLabel(refs, label);\n\t}\n\n\t/**\n\t * Returns the master ref for the Prismic repository. The master ref points to\n\t * the repository's latest published content.\n\t *\n\t * @returns The repository's master ref.\n\t */\n\tasync getMasterRef(params?: FetchParams): Promise {\n\t\tconst refs = await this.getRefs(params);\n\n\t\treturn findMasterRef(refs);\n\t}\n\n\t/**\n\t * Returns a list of all Releases for the Prismic repository. Releases are\n\t * used to group content changes before publishing.\n\t *\n\t * @returns A list of all Releases for the Prismic repository.\n\t */\n\tasync getReleases(params?: FetchParams): Promise {\n\t\tconst refs = await this.getRefs(params);\n\n\t\treturn refs.filter((ref) => !ref.isMasterRef);\n\t}\n\n\t/**\n\t * Returns a Release for the Prismic repository with a matching ID.\n\t *\n\t * @param id - ID of the Release.\n\t *\n\t * @returns The Release with a matching ID, if it exists.\n\t */\n\tasync getReleaseByID(\n\t\tid: string,\n\t\tparams?: FetchParams,\n\t): Promise {\n\t\tconst releases = await this.getReleases(params);\n\n\t\treturn findRefByID(releases, id);\n\t}\n\n\t/**\n\t * Returns a Release for the Prismic repository with a matching label.\n\t *\n\t * @param label - Label of the ref.\n\t *\n\t * @returns The ref with a matching label, if it exists.\n\t */\n\tasync getReleaseByLabel(\n\t\tlabel: string,\n\t\tparams?: FetchParams,\n\t): Promise {\n\t\tconst releases = await this.getReleases(params);\n\n\t\treturn findRefByLabel(releases, label);\n\t}\n\n\t/**\n\t * Returns a list of all tags used in the Prismic repository.\n\t *\n\t * @returns A list of all tags used in the repository.\n\t */\n\tasync getTags(params?: FetchParams): Promise {\n\t\ttry {\n\t\t\tconst tagsForm = await this.getCachedRepositoryForm(\"tags\", params);\n\n\t\t\tconst url = new URL(tagsForm.action);\n\n\t\t\tif (this.accessToken) {\n\t\t\t\turl.searchParams.set(\"access_token\", this.accessToken);\n\t\t\t}\n\n\t\t\treturn await this.fetch(url.toString(), params);\n\t\t} catch {\n\t\t\tconst repository = await this.getRepository(params);\n\n\t\t\treturn repository.tags;\n\t\t}\n\t}\n\n\t/**\n\t * Builds a URL used to query content from the Prismic repository.\n\t *\n\t * @param params - Parameters to filter, sort, and paginate the results.\n\t *\n\t * @returns A URL string that can be requested to query content.\n\t */\n\tasync buildQueryURL({\n\t\tsignal,\n\t\tfetchOptions,\n\t\t...params\n\t}: Partial & FetchParams = {}): Promise {\n\t\tconst ref =\n\t\t\tparams.ref || (await this.getResolvedRefString({ signal, fetchOptions }));\n\t\tconst integrationFieldsRef =\n\t\t\tparams.integrationFieldsRef ||\n\t\t\t(await this.getCachedRepository({ signal, fetchOptions }))\n\t\t\t\t.integrationFieldsRef ||\n\t\t\tundefined;\n\n\t\treturn buildQueryURL(this.endpoint, {\n\t\t\t...this.defaultParams,\n\t\t\t...params,\n\t\t\tref,\n\t\t\tintegrationFieldsRef,\n\t\t\troutes: params.routes || this.routes,\n\t\t\tbrokenRoute: params.brokenRoute || this.brokenRoute,\n\t\t\taccessToken: params.accessToken || this.accessToken,\n\t\t});\n\t}\n\n\t/**\n\t * Determines the URL for a previewed document during an active preview\n\t * session. The result of this method should be used to redirect the user to\n\t * the document's URL.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * \tconst url = client.resolvePreviewURL({\n\t * \tlinkResolver: (document) => `/${document.uid}`\n\t * \tdefaultURL: '/'\n\t * \t})\n\t * ```\n\t *\n\t * @param args - Arguments to configure the URL resolving.\n\t *\n\t * @returns The URL for the previewed document during an active preview\n\t * session. The user should be redirected to this URL.\n\t */\n\tasync resolvePreviewURL(\n\t\targs: ResolvePreviewArgs & FetchParams,\n\t): Promise {\n\t\tlet documentID: string | undefined | null = args.documentID;\n\t\tlet previewToken: string | undefined | null = args.previewToken;\n\n\t\tif (typeof globalThis.location !== \"undefined\") {\n\t\t\tconst searchParams = new URLSearchParams(globalThis.location.search);\n\n\t\t\tdocumentID = documentID || searchParams.get(\"documentId\");\n\t\t\tpreviewToken = previewToken || searchParams.get(\"token\");\n\t\t} else if (this.refState.httpRequest) {\n\t\t\tif (\"query\" in this.refState.httpRequest) {\n\t\t\t\tdocumentID =\n\t\t\t\t\tdocumentID || (this.refState.httpRequest.query?.documentId as string);\n\t\t\t\tpreviewToken =\n\t\t\t\t\tpreviewToken || (this.refState.httpRequest.query?.token as string);\n\t\t\t} else if (\n\t\t\t\t\"url\" in this.refState.httpRequest &&\n\t\t\t\tthis.refState.httpRequest.url\n\t\t\t) {\n\t\t\t\tconst searchParams = new URL(this.refState.httpRequest.url)\n\t\t\t\t\t.searchParams;\n\n\t\t\t\tdocumentID = documentID || searchParams.get(\"documentId\");\n\t\t\t\tpreviewToken = previewToken || searchParams.get(\"token\");\n\t\t\t}\n\t\t}\n\n\t\tif (documentID != null && previewToken != null) {\n\t\t\tconst document = await this.getByID(documentID, {\n\t\t\t\tref: previewToken,\n\t\t\t\tlang: \"*\",\n\t\t\t\tsignal: args.signal,\n\t\t\t\tfetchOptions: args.fetchOptions,\n\t\t\t});\n\n\t\t\tconst url = prismicH.asLink(document, args.linkResolver);\n\n\t\t\tif (typeof url === \"string\") {\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\n\t\treturn args.defaultURL;\n\t}\n\n\t/**\n\t * Configures the client to query the latest published content for all future\n\t * queries.\n\t *\n\t * If the `ref` parameter is provided during a query, it takes priority for\n\t * that query.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * await client.queryLatestContent();\n\t * const document = await client.getByID(\"WW4bKScAAMAqmluX\");\n\t * ```\n\t */\n\tqueryLatestContent(): void {\n\t\tthis.refState.mode = RefStateMode.Master;\n\t}\n\n\t/**\n\t * Configures the client to query content from a specific Release identified\n\t * by its ID for all future queries.\n\t *\n\t * If the `ref` parameter is provided during a query, it takes priority for\n\t * that query.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * await client.queryContentFromReleaseByID(\"YLB7OBAAACMA7Cpa\");\n\t * const document = await client.getByID(\"WW4bKScAAMAqmluX\");\n\t * ```\n\t *\n\t * @param releaseID - The ID of the Release.\n\t */\n\tqueryContentFromReleaseByID(releaseID: string): void {\n\t\tthis.refState = {\n\t\t\t...this.refState,\n\t\t\tmode: RefStateMode.ReleaseID,\n\t\t\treleaseID,\n\t\t};\n\t}\n\n\t/**\n\t * Configures the client to query content from a specific Release identified\n\t * by its label for all future queries.\n\t *\n\t * If the `ref` parameter is provided during a query, it takes priority for\n\t * that query.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * await client.queryContentFromReleaseByLabel(\"My Release\");\n\t * const document = await client.getByID(\"WW4bKScAAMAqmluX\");\n\t * ```\n\t *\n\t * @param releaseLabel - The label of the Release.\n\t */\n\tqueryContentFromReleaseByLabel(releaseLabel: string): void {\n\t\tthis.refState = {\n\t\t\t...this.refState,\n\t\t\tmode: RefStateMode.ReleaseLabel,\n\t\t\treleaseLabel,\n\t\t};\n\t}\n\n\t/**\n\t * Configures the client to query content from a specific ref. The ref can be\n\t * provided as a string or a function.\n\t *\n\t * If a function is provided, the ref is fetched lazily before each query. The\n\t * function may also be asynchronous.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * await client.queryContentFromRef(\"my-ref\");\n\t * const document = await client.getByID(\"WW4bKScAAMAqmluX\");\n\t * ```\n\t *\n\t * @param ref - The ref or a function that returns the ref from which to query\n\t * content.\n\t */\n\tqueryContentFromRef(ref: RefStringOrThunk): void {\n\t\tthis.refState = {\n\t\t\t...this.refState,\n\t\t\tmode: RefStateMode.Manual,\n\t\t\tref,\n\t\t};\n\t}\n\n\t/**\n\t * @deprecated Renamed to `graphQLFetch()` (note the capitalization of \"QL\").\n\t */\n\t// TODO: Remove in v7\n\tgraphqlFetch = this.graphQLFetch.bind(this);\n\n\t/**\n\t * A `fetch()` function to be used with GraphQL clients configured for\n\t * Prismic's GraphQL API. It automatically applies the necessary `prismic-ref`\n\t * and Authorization headers. Queries will automatically be minified by\n\t * removing whitespace where possible.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * const graphqlClient = new ApolloClient({\n\t * \tlink: new HttpLink({\n\t * \t\turi: prismic.getGraphQLEndpoint(repositoryName),\n\t * \t\t// Provide `client.graphqlFetch` as the fetch implementation.\n\t * \t\tfetch: client.graphqlFetch,\n\t * \t\t// Using GET is required.\n\t * \t\tuseGETForQueries: true,\n\t * \t}),\n\t * \tcache: new InMemoryCache(),\n\t * });\n\t * ```\n\t *\n\t * @param input - The `fetch()` `input` parameter. Only strings are supported.\n\t * @param init - The `fetch()` `init` parameter. Only plain objects are\n\t * supported.\n\t *\n\t * @returns The `fetch()` Response for the request.\n\t * @experimental\n\t */\n\tasync graphQLFetch(\n\t\tinput: RequestInfo,\n\t\tinit?: Omit & { signal?: AbortSignalLike },\n\t): Promise {\n\t\tconst cachedRepository = await this.getCachedRepository();\n\t\tconst ref = await this.getResolvedRefString();\n\n\t\tconst unsanitizedHeaders: Record = {\n\t\t\t\"Prismic-ref\": ref,\n\t\t\tAuthorization: this.accessToken ? `Token ${this.accessToken}` : \"\",\n\t\t\t// Asserting `init.headers` is a Record since popular GraphQL\n\t\t\t// libraries pass this as a Record. Header objects as input\n\t\t\t// are unsupported.\n\t\t\t...(init ? (init.headers as Record) : {}),\n\t\t};\n\n\t\tif (cachedRepository.integrationFieldsRef) {\n\t\t\tunsanitizedHeaders[\"Prismic-integration-field-ref\"] =\n\t\t\t\tcachedRepository.integrationFieldsRef;\n\t\t}\n\n\t\t// Normalize header keys to lowercase. This prevents header\n\t\t// conflicts between the Prismic client and the GraphQL\n\t\t// client.\n\t\tconst headers: Record = {};\n\t\tfor (const key in unsanitizedHeaders) {\n\t\t\tif (unsanitizedHeaders[key]) {\n\t\t\t\theaders[key.toLowerCase()] =\n\t\t\t\t\tunsanitizedHeaders[key as keyof typeof unsanitizedHeaders];\n\t\t\t}\n\t\t}\n\n\t\tconst url = new URL(\n\t\t\t// Asserting `input` is a string since popular GraphQL\n\t\t\t// libraries pass this as a string. Request objects as\n\t\t\t// input are unsupported.\n\t\t\tinput as string,\n\t\t);\n\n\t\t// This prevents the request from being cached unnecessarily.\n\t\t// Without adding this `ref` param, re-running a query\n\t\t// could return a locally cached response, even if the\n\t\t// `ref` changed. This happens because the URL is\n\t\t// identical when the `ref` is not included. Caches may ignore\n\t\t// headers.\n\t\t//\n\t\t// The Prismic GraphQL API ignores the `ref` param.\n\t\turl.searchParams.set(\"ref\", ref);\n\n\t\tconst query = url.searchParams.get(\"query\");\n\t\tif (query) {\n\t\t\turl.searchParams.set(\n\t\t\t\t\"query\",\n\t\t\t\t// Compress the GraphQL query (if it exists) by\n\t\t\t\t// removing whitespace. This is done to\n\t\t\t\t// optimize the query size and avoid\n\t\t\t\t// hitting the upper limit of GET requests\n\t\t\t\t// (2048 characters).\n\t\t\t\tminifyGraphQLQuery(query),\n\t\t\t);\n\t\t}\n\n\t\treturn (await this.fetchFn(url.toString(), {\n\t\t\t...init,\n\t\t\theaders,\n\t\t})) as Response;\n\t}\n\n\t/**\n\t * Returns a cached version of `getRepository` with a TTL.\n\t *\n\t * @returns Cached repository metadata.\n\t */\n\tprivate async getCachedRepository(\n\t\tparams?: FetchParams,\n\t): Promise {\n\t\tif (\n\t\t\t!this.cachedRepository ||\n\t\t\tDate.now() >= this.cachedRepositoryExpiration\n\t\t) {\n\t\t\tthis.cachedRepositoryExpiration = Date.now() + REPOSITORY_CACHE_TTL;\n\t\t\tthis.cachedRepository = await this.getRepository(params);\n\t\t}\n\n\t\treturn this.cachedRepository;\n\t}\n\n\t/**\n\t * Returns a cached Prismic repository form. Forms are used to determine API\n\t * endpoints for types of repository data.\n\t *\n\t * @param name - Name of the form.\n\t *\n\t * @returns The repository form.\n\t * @throws If a matching form cannot be found.\n\t */\n\tprivate async getCachedRepositoryForm(\n\t\tname: string,\n\t\tparams?: FetchParams,\n\t): Promise {\n\t\tconst cachedRepository = await this.getCachedRepository(params);\n\t\tconst form = cachedRepository.forms[name];\n\n\t\tif (!form) {\n\t\t\tthrow new PrismicError(\n\t\t\t\t`Form with name \"${name}\" could not be found`,\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t);\n\t\t}\n\n\t\treturn form;\n\t}\n\n\t/**\n\t * Returns the ref needed to query based on the client's current state. This\n\t * method may make a network request to fetch a ref or resolve the user's ref\n\t * thunk.\n\t *\n\t * If auto previews are enabled, the preview ref takes priority if available.\n\t *\n\t * The following strategies are used depending on the client's state:\n\t *\n\t * - If the user called `queryLatestContent`: Use the repository's master ref.\n\t * The ref is cached for 5 seconds. After 5 seconds, a new master ref is\n\t * fetched.\n\t * - If the user called `queryContentFromReleaseByID`: Use the release's ref.\n\t * The ref is cached for 5 seconds. After 5 seconds, a new ref for the\n\t * release is fetched.\n\t * - If the user called `queryContentFromReleaseByLabel`: Use the release's ref.\n\t * The ref is cached for 5 seconds. After 5 seconds, a new ref for the\n\t * release is fetched.\n\t * - If the user called `queryContentFromRef`: Use the provided ref. Fall back\n\t * to the master ref if the ref is not a string.\n\t *\n\t * @returns The ref to use during a query.\n\t */\n\tprivate async getResolvedRefString(params?: FetchParams): Promise {\n\t\tif (this.refState.autoPreviewsEnabled) {\n\t\t\tlet previewRef: string | undefined;\n\n\t\t\tlet cookieJar: string | null | undefined;\n\n\t\t\tif (this.refState.httpRequest?.headers) {\n\t\t\t\tif (\n\t\t\t\t\t\"get\" in this.refState.httpRequest.headers &&\n\t\t\t\t\ttypeof this.refState.httpRequest.headers.get === \"function\"\n\t\t\t\t) {\n\t\t\t\t\t// Web API Headers\n\t\t\t\t\tcookieJar = this.refState.httpRequest.headers.get(\"cookie\");\n\t\t\t\t} else if (\"cookie\" in this.refState.httpRequest.headers) {\n\t\t\t\t\t// Express-style headers\n\t\t\t\t\tcookieJar = this.refState.httpRequest.headers.cookie;\n\t\t\t\t}\n\t\t\t} else if (globalThis.document?.cookie) {\n\t\t\t\tcookieJar = globalThis.document.cookie;\n\t\t\t}\n\n\t\t\tif (cookieJar) {\n\t\t\t\tpreviewRef = getPreviewCookie(cookieJar);\n\t\t\t}\n\n\t\t\tif (previewRef) {\n\t\t\t\treturn previewRef;\n\t\t\t}\n\t\t}\n\n\t\tconst cachedRepository = await this.getCachedRepository(params);\n\n\t\tconst refModeType = this.refState.mode;\n\t\tif (refModeType === RefStateMode.ReleaseID) {\n\t\t\treturn findRefByID(cachedRepository.refs, this.refState.releaseID).ref;\n\t\t} else if (refModeType === RefStateMode.ReleaseLabel) {\n\t\t\treturn findRefByLabel(cachedRepository.refs, this.refState.releaseLabel)\n\t\t\t\t.ref;\n\t\t} else if (refModeType === RefStateMode.Manual) {\n\t\t\tconst res = await castThunk(this.refState.ref)();\n\n\t\t\tif (typeof res === \"string\") {\n\t\t\t\treturn res;\n\t\t\t}\n\t\t}\n\n\t\treturn findMasterRef(cachedRepository.refs).ref;\n\t}\n\n\t/**\n\t * Performs a network request using the configured `fetch` function. It\n\t * assumes all successful responses will have a JSON content type. It also\n\t * normalizes unsuccessful network requests.\n\t *\n\t * @typeParam T - The JSON response.\n\t * @param url - URL to the resource to fetch.\n\t * @param params - Prismic REST API parameters for the network request.\n\t *\n\t * @returns The JSON response from the network request.\n\t */\n\tprivate async fetch(\n\t\turl: string,\n\t\t// TODO: Change to `params` when Authorization header support works in browsers with CORS.\n\t\t// _params?: Partial,\n\t\tparams: FetchParams = {},\n\t): Promise {\n\t\t// TODO: Restore when Authorization header support works in browsers with CORS.\n\t\t// const accessToken = (params && params.accessToken) || this.accessToken;\n\t\t// const options = accessToken\n\t\t// \t? { headers: { Authorization: `Token ${accessToken}` } }\n\t\t// \t: {};\n\n\t\tconst res = await this.fetchFn(url, {\n\t\t\t...this.fetchOptions,\n\t\t\t...params.fetchOptions,\n\t\t\theaders: {\n\t\t\t\t...this.fetchOptions?.headers,\n\t\t\t\t...params.fetchOptions?.headers,\n\t\t\t},\n\t\t\tsignal:\n\t\t\t\tparams.fetchOptions?.signal ||\n\t\t\t\tparams.signal ||\n\t\t\t\tthis.fetchOptions?.signal,\n\t\t});\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tlet json: any;\n\t\ttry {\n\t\t\t// We can assume Prismic REST API responses will have a `application/json`\n\t\t\t// Content Type. If not, this will throw, signaling an invalid response.\n\t\t\tjson = await res.json();\n\t\t} catch {\n\t\t\t// Not Found (this response has an empty body and throws on `.json()`)\n\t\t\t// - Incorrect repository name\n\t\t\tif (res.status === 404) {\n\t\t\t\tthrow new NotFoundError(\n\t\t\t\t\t`Prismic repository not found. Check that \"${this.endpoint}\" is pointing to the correct repository.`,\n\t\t\t\t\turl,\n\t\t\t\t\tundefined,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthrow new PrismicError(undefined, url, undefined);\n\t\t\t}\n\t\t}\n\n\t\tswitch (res.status) {\n\t\t\t// Successful\n\t\t\tcase 200: {\n\t\t\t\treturn json;\n\t\t\t}\n\n\t\t\t// Bad Request\n\t\t\t// - Invalid predicate syntax\n\t\t\t// - Ref not provided (ignored)\n\t\t\tcase 400: {\n\t\t\t\tthrow new ParsingError(json.message, url, json);\n\t\t\t}\n\n\t\t\t// Unauthorized\n\t\t\t// - Missing access token for repository endpoint\n\t\t\t// - Incorrect access token for repository endpoint\n\t\t\tcase 401:\n\t\t\t// Forbidden\n\t\t\t// - Missing access token for query endpoint\n\t\t\t// - Incorrect access token for query endpoint\n\t\t\tcase 403: {\n\t\t\t\tthrow new ForbiddenError(\n\t\t\t\t\t\"error\" in json ? json.error : json.message,\n\t\t\t\t\turl,\n\t\t\t\t\tjson,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Too Many Requests\n\t\t\t// - Exceeded the maximum number of requests per second\n\t\t\tcase 429: {\n\t\t\t\tconst parsedRetryAfter = Number(res.headers.get(\"retry-after\"));\n\t\t\t\tconst delay = Number.isNaN(parsedRetryAfter)\n\t\t\t\t\t? DEFUALT_RETRY_AFTER_MS\n\t\t\t\t\t: parsedRetryAfter;\n\n\t\t\t\treturn await new Promise((resolve, reject) => {\n\t\t\t\t\tsetTimeout(async () => {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresolve(await this.fetch(url, params));\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, delay);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tthrow new PrismicError(undefined, url, json);\n\t}\n}\n","/**\n * Determines if a string if a Prismic Rest API V2 endpoint. Note that any valid\n * URL is a valid endpoint to support network proxies.\n *\n * @param input - Input to test.\n *\n * @returns `true` if `input` is a valid Prismic Rest API V2 endpoint, `false`\n * otherwise.\n */\nexport const isRepositoryEndpoint = (input: string): boolean => {\n\ttry {\n\t\tnew URL(input);\n\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n};\n","/**\n * Minifies a GraphQL query by removing whitespace where possible.\n *\n * @param query - GraphQL query to minify.\n *\n * @returns A minified version of `query`.\n */\nexport const minifyGraphQLQuery = (query: string): string => {\n\treturn query.replace(\n\t\t/(\\n| )*( |{|})(\\n| )*/gm,\n\t\t(_chars, _spaces, brackets) => brackets,\n\t);\n};\n","/**\n * Ensures that a value is a thunk. If it is already a thunk, it is returned as\n * is. If it is not a thunk, it is converted to a thunk.\n *\n * @typeParam A - Value returned by the thunk.\n * @param a - Value to ensure is a thunk.\n *\n * @returns `a` as a a thunk.\n */\nexport const castThunk = (a: A | (() => A)): (() => A) =>\n\ttypeof a === \"function\" ? (a as () => A) : () => a;\n","/**\n * @since 2.0.0\n */\nexport var tailRec = function (startWith, f) {\n var ab = f(startWith);\n while (ab._tag === 'Left') {\n ab = f(ab.left);\n }\n return ab.right;\n};\n","import { getApplicativeMonoid } from './Applicative';\nimport { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply';\nimport * as chainable from './Chain';\nimport { tailRec } from './ChainRec';\nimport { chainOptionK as chainOptionK_, filterOrElse as filterOrElse_, fromOption as fromOption_, fromOptionK as fromOptionK_, fromPredicate as fromPredicate_ } from './FromEither';\nimport { dual, flow, identity, pipe } from './function';\nimport { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor';\nimport * as _ from './internal';\nimport { separated } from './Separated';\nimport { wiltDefault, witherDefault } from './Witherable';\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Constructs a new `Either` holding a `Left` value. This usually represents a failure, due to the right-bias of this\n * structure.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var left = _.left;\n/**\n * Constructs a new `Either` holding a `Right` value. This usually represents a successful value due to the right bias\n * of this structure.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var right = _.right;\n/**\n * @category sequencing\n * @since 2.14.0\n */\nexport var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { return (isLeft(ma) ? ma : f(ma.right)); });\nvar _map = function (fa, f) { return pipe(fa, map(f)); };\nvar _ap = function (fab, fa) { return pipe(fab, ap(fa)); };\n/* istanbul ignore next */\nvar _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); };\n/* istanbul ignore next */\nvar _foldMap = function (M) { return function (fa, f) {\n var foldMapM = foldMap(M);\n return pipe(fa, foldMapM(f));\n}; };\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); };\nvar _traverse = function (F) {\n var traverseF = traverse(F);\n return function (ta, f) { return pipe(ta, traverseF(f)); };\n};\nvar _bimap = function (fa, f, g) { return pipe(fa, bimap(f, g)); };\nvar _mapLeft = function (fa, f) { return pipe(fa, mapLeft(f)); };\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return pipe(fa, alt(that)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return pipe(wa, extend(f)); };\nvar _chainRec = function (a, f) {\n return tailRec(f(a), function (e) {\n return isLeft(e) ? right(left(e.left)) : isLeft(e.right) ? left(f(e.right.left)) : right(right(e.right.right));\n });\n};\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexport var URI = 'Either';\n/**\n * @category instances\n * @since 2.0.0\n */\nexport var getShow = function (SE, SA) { return ({\n show: function (ma) { return (isLeft(ma) ? \"left(\".concat(SE.show(ma.left), \")\") : \"right(\".concat(SA.show(ma.right), \")\")); }\n}); };\n/**\n * @category instances\n * @since 2.0.0\n */\nexport var getEq = function (EL, EA) { return ({\n equals: function (x, y) {\n return x === y || (isLeft(x) ? isLeft(y) && EL.equals(x.left, y.left) : isRight(y) && EA.equals(x.right, y.right));\n }\n}); };\n/**\n * Semigroup returning the left-most non-`Left` value. If both operands are `Right`s then the inner values are\n * concatenated using the provided `Semigroup`\n *\n * @example\n * import { getSemigroup, left, right } from 'fp-ts/Either'\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * const S = getSemigroup(SemigroupSum)\n * assert.deepStrictEqual(S.concat(left('a'), left('b')), left('a'))\n * assert.deepStrictEqual(S.concat(left('a'), right(2)), right(2))\n * assert.deepStrictEqual(S.concat(right(1), left('b')), right(1))\n * assert.deepStrictEqual(S.concat(right(1), right(2)), right(3))\n *\n * @category instances\n * @since 2.0.0\n */\nexport var getSemigroup = function (S) { return ({\n concat: function (x, y) { return (isLeft(y) ? x : isLeft(x) ? y : right(S.concat(x.right, y.right))); }\n}); };\n/**\n * Builds a `Compactable` instance for `Either` given `Monoid` for the left side.\n *\n * @category filtering\n * @since 2.10.0\n */\nexport var getCompactable = function (M) {\n var empty = left(M.empty);\n return {\n URI: URI,\n _E: undefined,\n compact: function (ma) { return (isLeft(ma) ? ma : ma.right._tag === 'None' ? empty : right(ma.right.value)); },\n separate: function (ma) {\n return isLeft(ma)\n ? separated(ma, ma)\n : isLeft(ma.right)\n ? separated(right(ma.right.left), empty)\n : separated(empty, right(ma.right.right));\n }\n };\n};\n/**\n * Builds a `Filterable` instance for `Either` given `Monoid` for the left side\n *\n * @category filtering\n * @since 2.10.0\n */\nexport var getFilterable = function (M) {\n var empty = left(M.empty);\n var _a = getCompactable(M), compact = _a.compact, separate = _a.separate;\n var filter = function (ma, predicate) {\n return isLeft(ma) ? ma : predicate(ma.right) ? ma : empty;\n };\n var partition = function (ma, p) {\n return isLeft(ma)\n ? separated(ma, ma)\n : p(ma.right)\n ? separated(empty, right(ma.right))\n : separated(right(ma.right), empty);\n };\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n compact: compact,\n separate: separate,\n filter: filter,\n filterMap: function (ma, f) {\n if (isLeft(ma)) {\n return ma;\n }\n var ob = f(ma.right);\n return ob._tag === 'None' ? empty : right(ob.value);\n },\n partition: partition,\n partitionMap: function (ma, f) {\n if (isLeft(ma)) {\n return separated(ma, ma);\n }\n var e = f(ma.right);\n return isLeft(e) ? separated(right(e.left), empty) : separated(empty, right(e.right));\n }\n };\n};\n/**\n * Builds `Witherable` instance for `Either` given `Monoid` for the left side\n *\n * @category filtering\n * @since 2.0.0\n */\nexport var getWitherable = function (M) {\n var F_ = getFilterable(M);\n var C = getCompactable(M);\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n compact: F_.compact,\n separate: F_.separate,\n filter: F_.filter,\n filterMap: F_.filterMap,\n partition: F_.partition,\n partitionMap: F_.partitionMap,\n traverse: _traverse,\n sequence: sequence,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n wither: witherDefault(Traversable, C),\n wilt: wiltDefault(Traversable, C)\n };\n};\n/**\n * The default [`Applicative`](#applicative) instance returns the first error, if you want to\n * get all errors you need to provide a way to concatenate them via a `Semigroup`.\n *\n * @example\n * import * as A from 'fp-ts/Apply'\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as S from 'fp-ts/Semigroup'\n * import * as string from 'fp-ts/string'\n *\n * const parseString = (u: unknown): E.Either =>\n * typeof u === 'string' ? E.right(u) : E.left('not a string')\n *\n * const parseNumber = (u: unknown): E.Either =>\n * typeof u === 'number' ? E.right(u) : E.left('not a number')\n *\n * interface Person {\n * readonly name: string\n * readonly age: number\n * }\n *\n * const parsePerson = (\n * input: Record\n * ): E.Either =>\n * pipe(\n * E.Do,\n * E.apS('name', parseString(input.name)),\n * E.apS('age', parseNumber(input.age))\n * )\n *\n * assert.deepStrictEqual(parsePerson({}), E.left('not a string')) // <= first error\n *\n * const Applicative = E.getApplicativeValidation(\n * pipe(string.Semigroup, S.intercalate(', '))\n * )\n *\n * const apS = A.apS(Applicative)\n *\n * const parsePersonAll = (\n * input: Record\n * ): E.Either =>\n * pipe(\n * E.Do,\n * apS('name', parseString(input.name)),\n * apS('age', parseNumber(input.age))\n * )\n *\n * assert.deepStrictEqual(parsePersonAll({}), E.left('not a string, not a number')) // <= all errors\n *\n * @category error handling\n * @since 2.7.0\n */\nexport var getApplicativeValidation = function (SE) { return ({\n URI: URI,\n _E: undefined,\n map: _map,\n ap: function (fab, fa) {\n return isLeft(fab)\n ? isLeft(fa)\n ? left(SE.concat(fab.left, fa.left))\n : fab\n : isLeft(fa)\n ? fa\n : right(fab.right(fa.right));\n },\n of: of\n}); };\n/**\n * The default [`Alt`](#alt) instance returns the last error, if you want to\n * get all errors you need to provide a way to concatenate them via a `Semigroup`.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as S from 'fp-ts/Semigroup'\n * import * as string from 'fp-ts/string'\n *\n * const parseString = (u: unknown): E.Either =>\n * typeof u === 'string' ? E.right(u) : E.left('not a string')\n *\n * const parseNumber = (u: unknown): E.Either =>\n * typeof u === 'number' ? E.right(u) : E.left('not a number')\n *\n * const parse = (u: unknown): E.Either =>\n * pipe(\n * parseString(u),\n * E.alt(() => parseNumber(u))\n * )\n *\n * assert.deepStrictEqual(parse(true), E.left('not a number')) // <= last error\n *\n * const Alt = E.getAltValidation(pipe(string.Semigroup, S.intercalate(', ')))\n *\n * const parseAll = (u: unknown): E.Either =>\n * Alt.alt(parseString(u), () => parseNumber(u))\n *\n * assert.deepStrictEqual(parseAll(true), E.left('not a string, not a number')) // <= all errors\n *\n * @category error handling\n * @since 2.7.0\n */\nexport var getAltValidation = function (SE) { return ({\n URI: URI,\n _E: undefined,\n map: _map,\n alt: function (me, that) {\n if (isRight(me)) {\n return me;\n }\n var ea = that();\n return isLeft(ea) ? left(SE.concat(me.left, ea.left)) : ea;\n }\n}); };\n/**\n * @category mapping\n * @since 2.0.0\n */\nexport var map = function (f) { return function (fa) {\n return isLeft(fa) ? fa : right(f(fa.right));\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Maps the `Right` value of this `Either` to the specified constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexport var as = dual(2, as_(Functor));\n/**\n * Maps the `Right` value of this `Either` to the void constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexport var asUnit = asUnit_(Functor);\n/**\n * @category constructors\n * @since 2.7.0\n */\nexport var of = right;\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * Less strict version of [`ap`](#ap).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.8.0\n */\nexport var apW = function (fa) { return function (fab) {\n return isLeft(fab) ? fab : isLeft(fa) ? fa : right(fab.right(fa.right));\n}; };\n/**\n * @since 2.0.0\n */\nexport var ap = apW;\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Apply = {\n URI: URI,\n map: _map,\n ap: _ap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Applicative = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: flatMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: flatMap\n};\n/**\n * Left-associative fold of a structure.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n *\n * const startWith = 'prefix'\n * const concat = (a: string, b: string) => `${a}:${b}`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.reduce(startWith, concat)),\n * 'prefix:a'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.reduce(startWith, concat)),\n * 'prefix'\n * )\n *\n * @category folding\n * @since 2.0.0\n */\nexport var reduce = function (b, f) { return function (fa) {\n return isLeft(fa) ? b : f(b, fa.right);\n}; };\n/**\n * Map each element of the structure to a monoid, and combine the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n * import * as S from 'fp-ts/string'\n *\n * const yell = (a: string) => `${a}!`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.foldMap(S.Monoid)(yell)),\n * 'a!'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.foldMap(S.Monoid)(yell)),\n * S.Monoid.empty\n * )\n *\n * @category folding\n * @since 2.0.0\n */\nexport var foldMap = function (M) { return function (f) { return function (fa) {\n return isLeft(fa) ? M.empty : f(fa.right);\n}; }; };\n/**\n * Right-associative fold of a structure.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n *\n * const startWith = 'postfix'\n * const concat = (a: string, b: string) => `${a}:${b}`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.reduceRight(startWith, concat)),\n * 'a:postfix'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.reduceRight(startWith, concat)),\n * 'postfix'\n * )\n *\n * @category folding\n * @since 2.0.0\n */\nexport var reduceRight = function (b, f) { return function (fa) {\n return isLeft(fa) ? b : f(fa.right, b);\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Foldable = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * Map each element of a structure to an action, evaluate these actions from left to right, and collect the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as E from 'fp-ts/Either'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(E.right(['a']), E.traverse(O.Applicative)(RA.head)),\n * O.some(E.right('a'))\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.right([]), E.traverse(O.Applicative)(RA.head)),\n * O.none\n * )\n *\n * @category traversing\n * @since 2.6.3\n */\nexport var traverse = function (F) {\n return function (f) {\n return function (ta) {\n return isLeft(ta) ? F.of(left(ta.left)) : F.map(f(ta.right), right);\n };\n };\n};\n/**\n * Evaluate each monadic action in the structure from left to right, and collect the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(E.right(O.some('a')), E.sequence(O.Applicative)),\n * O.some(E.right('a'))\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.right(O.none), E.sequence(O.Applicative)),\n * O.none\n * )\n *\n * @category traversing\n * @since 2.6.3\n */\nexport var sequence = function (F) {\n return function (ma) {\n return isLeft(ma) ? F.of(left(ma.left)) : F.map(ma.right, right);\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Traversable = {\n URI: URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence\n};\n/**\n * Map a pair of functions over the two type arguments of the bifunctor.\n *\n * @category mapping\n * @since 2.0.0\n */\nexport var bimap = function (f, g) { return function (fa) {\n return isLeft(fa) ? left(f(fa.left)) : right(g(fa.right));\n}; };\n/**\n * Map a function over the first type argument of a bifunctor.\n *\n * @category error handling\n * @since 2.0.0\n */\nexport var mapLeft = function (f) { return function (fa) {\n return isLeft(fa) ? left(f(fa.left)) : fa;\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Bifunctor = {\n URI: URI,\n bimap: _bimap,\n mapLeft: _mapLeft\n};\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the error and the return types will be merged.\n *\n * @category error handling\n * @since 2.9.0\n */\nexport var altW = function (that) { return function (fa) {\n return isLeft(fa) ? that() : fa;\n}; };\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `Either` returns the left-most non-`Left` value (or the right-most `Left` value if both values are `Left`).\n *\n * | x | y | pipe(x, alt(() => y) |\n * | -------- | -------- | -------------------- |\n * | left(a) | left(b) | left(b) |\n * | left(a) | right(2) | right(2) |\n * | right(1) | left(b) | right(1) |\n * | right(1) | right(2) | right(1) |\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * E.left('a'),\n * E.alt(() => E.left('b'))\n * ),\n * E.left('b')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.left('a'),\n * E.alt(() => E.right(2))\n * ),\n * E.right(2)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.right(1),\n * E.alt(() => E.left('b'))\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.right(1),\n * E.alt(() => E.right(2))\n * ),\n * E.right(1)\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexport var alt = altW;\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Alt = {\n URI: URI,\n map: _map,\n alt: _alt\n};\n/**\n * @since 2.0.0\n */\nexport var extend = function (f) { return function (wa) {\n return isLeft(wa) ? wa : right(f(wa));\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Extend = {\n URI: URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var ChainRec = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: flatMap,\n chainRec: _chainRec\n};\n/**\n * @since 2.6.3\n */\nexport var throwError = left;\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var MonadThrow = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: flatMap,\n throwError: throwError\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var FromEither = {\n URI: URI,\n fromEither: identity\n};\n/**\n * @example\n * import { fromPredicate, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * 1,\n * fromPredicate(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * -1,\n * fromPredicate(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * left('error')\n * )\n *\n * @category lifting\n * @since 2.0.0\n */\nexport var fromPredicate = /*#__PURE__*/ fromPredicate_(FromEither);\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(\n * O.some(1),\n * E.fromOption(() => 'error')\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * O.none,\n * E.fromOption(() => 'error')\n * ),\n * E.left('error')\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexport var fromOption = \n/*#__PURE__*/ fromOption_(FromEither);\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Returns `true` if the either is an instance of `Left`, `false` otherwise.\n *\n * @category refinements\n * @since 2.0.0\n */\nexport var isLeft = _.isLeft;\n/**\n * Returns `true` if the either is an instance of `Right`, `false` otherwise.\n *\n * @category refinements\n * @since 2.0.0\n */\nexport var isRight = _.isRight;\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var matchW = function (onLeft, onRight) {\n return function (ma) {\n return isLeft(ma) ? onLeft(ma.left) : onRight(ma.right);\n };\n};\n/**\n * Alias of [`matchW`](#matchw).\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var foldW = matchW;\n/**\n * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the first function,\n * if the value is a `Right` the inner value is applied to the second function.\n *\n * @example\n * import { match, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * function onLeft(errors: Array): string {\n * return `Errors: ${errors.join(', ')}`\n * }\n *\n * function onRight(value: number): string {\n * return `Ok: ${value}`\n * }\n *\n * assert.strictEqual(\n * pipe(\n * right(1),\n * match(onLeft, onRight)\n * ),\n * 'Ok: 1'\n * )\n * assert.strictEqual(\n * pipe(\n * left(['error 1', 'error 2']),\n * match(onLeft, onRight)\n * ),\n * 'Errors: error 1, error 2'\n * )\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var match = matchW;\n/**\n * Alias of [`match`](#match).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexport var fold = match;\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * The `W` suffix (short for **W**idening) means that the handler return type will be merged.\n *\n * @category error handling\n * @since 2.6.0\n */\nexport var getOrElseW = function (onLeft) {\n return function (ma) {\n return isLeft(ma) ? onLeft(ma.left) : ma.right;\n };\n};\n/**\n * Returns the wrapped value if it's a `Right` or a default value if is a `Left`.\n *\n * @example\n * import { getOrElse, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * right(1),\n * getOrElse(() => 0)\n * ),\n * 1\n * )\n * assert.deepStrictEqual(\n * pipe(\n * left('error'),\n * getOrElse(() => 0)\n * ),\n * 0\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexport var getOrElse = getOrElseW;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @category mapping\n * @since 2.10.0\n */\nexport var flap = /*#__PURE__*/ flap_(Functor);\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.0.0\n */\nexport var apFirst = /*#__PURE__*/ apFirst_(Apply);\n/**\n * Less strict version of [`apFirst`](#apfirst)\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.12.0\n */\nexport var apFirstW = apFirst;\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.0.0\n */\nexport var apSecond = /*#__PURE__*/ apSecond_(Apply);\n/**\n * Less strict version of [`apSecond`](#apsecond)\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.12.0\n */\nexport var apSecondW = apSecond;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category combinators\n * @since 2.15.0\n */\nexport var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain));\n/**\n * Less strict version of [`flatten`](#flatten).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category sequencing\n * @since 2.11.0\n */\nexport var flattenW = \n/*#__PURE__*/ flatMap(identity);\n/**\n * The `flatten` function is the conventional monad join operator. It is used to remove one level of monadic structure, projecting its bound argument into the outer level.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(E.flatten(E.right(E.right('a'))), E.right('a'))\n * assert.deepStrictEqual(E.flatten(E.right(E.left('e'))), E.left('e'))\n * assert.deepStrictEqual(E.flatten(E.left('e')), E.left('e'))\n *\n * @category sequencing\n * @since 2.0.0\n */\nexport var flatten = flattenW;\n/**\n * @since 2.0.0\n */\nexport var duplicate = /*#__PURE__*/ extend(identity);\n/**\n * Use `liftOption`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexport var fromOptionK = \n/*#__PURE__*/ fromOptionK_(FromEither);\n/**\n * Use `flatMapOption`.\n *\n * @category legacy\n * @since 2.11.0\n */\nexport var chainOptionK = /*#__PURE__*/ chainOptionK_(FromEither, Chain);\n/**\n * Use `flatMapOption`.\n *\n * @category legacy\n * @since 2.13.2\n */\nexport var chainOptionKW = chainOptionK;\n/** @internal */\nvar _FromEither = {\n fromEither: FromEither.fromEither\n};\n/**\n * @category lifting\n * @since 2.15.0\n */\nexport var liftNullable = /*#__PURE__*/ _.liftNullable(_FromEither);\n/**\n * @category lifting\n * @since 2.15.0\n */\nexport var liftOption = /*#__PURE__*/ _.liftOption(_FromEither);\n/** @internal */\nvar _FlatMap = {\n flatMap: flatMap\n};\n/**\n * @category sequencing\n * @since 2.15.0\n */\nexport var flatMapNullable = /*#__PURE__*/ _.flatMapNullable(_FromEither, _FlatMap);\n/**\n * @category sequencing\n * @since 2.15.0\n */\nexport var flatMapOption = /*#__PURE__*/ _.flatMapOption(_FromEither, _FlatMap);\n/**\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * E.right(1),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.right(-1),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.left('error')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.left('a'),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.left('a')\n * )\n *\n * @category filtering\n * @since 2.0.0\n */\nexport var filterOrElse = /*#__PURE__*/ filterOrElse_(FromEither, Chain);\n/**\n * Less strict version of [`filterOrElse`](#filterorelse).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category filtering\n * @since 2.9.0\n */\nexport var filterOrElseW = filterOrElse;\n/**\n * Returns a `Right` if is a `Left` (and vice versa).\n *\n * @since 2.0.0\n */\nexport var swap = function (ma) { return (isLeft(ma) ? right(ma.left) : left(ma.right)); };\n/**\n * Less strict version of [`orElse`](#orelse).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @category error handling\n * @since 2.10.0\n */\nexport var orElseW = function (onLeft) {\n return function (ma) {\n return isLeft(ma) ? onLeft(ma.left) : ma;\n };\n};\n/**\n * Useful for recovering from errors.\n *\n * @category error handling\n * @since 2.0.0\n */\nexport var orElse = orElseW;\n/**\n * Takes a default and a nullable value, if the value is not nully, turn it into a `Right`, if the value is nully use\n * the provided default as a `Left`.\n *\n * @example\n * import { fromNullable, left, right } from 'fp-ts/Either'\n *\n * const parse = fromNullable('nully')\n *\n * assert.deepStrictEqual(parse(1), right(1))\n * assert.deepStrictEqual(parse(null), left('nully'))\n *\n * @category conversions\n * @since 2.0.0\n */\nexport var fromNullable = function (e) {\n return function (a) {\n return a == null ? left(e) : right(a);\n };\n};\n/**\n * Constructs a new `Either` from a function that might throw.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import * as E from 'fp-ts/Either'\n *\n * const unsafeHead = (as: ReadonlyArray): A => {\n * if (as.length > 0) {\n * return as[0]\n * } else {\n * throw new Error('empty array')\n * }\n * }\n *\n * const head = (as: ReadonlyArray): E.Either =>\n * E.tryCatch(() => unsafeHead(as), e => (e instanceof Error ? e : new Error('unknown error')))\n *\n * assert.deepStrictEqual(head([]), E.left(new Error('empty array')))\n * assert.deepStrictEqual(head([1, 2, 3]), E.right(1))\n *\n * @category interop\n * @since 2.0.0\n */\nexport var tryCatch = function (f, onThrow) {\n try {\n return right(f());\n }\n catch (e) {\n return left(onThrow(e));\n }\n};\n/**\n * Converts a function that may throw to one returning a `Either`.\n *\n * @category interop\n * @since 2.10.0\n */\nexport var tryCatchK = function (f, onThrow) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return tryCatch(function () { return f.apply(void 0, a); }, onThrow);\n };\n};\n/**\n * Use `liftNullable`.\n *\n * @category legacy\n * @since 2.9.0\n */\nexport var fromNullableK = function (e) {\n var from = fromNullable(e);\n return function (f) { return flow(f, from); };\n};\n/**\n * Use `flatMapNullable`.\n *\n * @category legacy\n * @since 2.9.0\n */\nexport var chainNullableK = function (e) {\n var from = fromNullableK(e);\n return function (f) { return flatMap(from(f)); };\n};\n/**\n * @category conversions\n * @since 2.10.0\n */\nexport var toUnion = /*#__PURE__*/ foldW(identity, identity);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Default value for the `onError` argument of `tryCatch`\n *\n * @since 2.0.0\n */\nexport function toError(e) {\n try {\n return e instanceof Error ? e : new Error(String(e));\n }\n catch (error) {\n return new Error();\n }\n}\nexport function elem(E) {\n return function (a, ma) {\n if (ma === undefined) {\n var elemE_1 = elem(E);\n return function (ma) { return elemE_1(a, ma); };\n }\n return isLeft(ma) ? false : E.equals(a, ma.right);\n };\n}\n/**\n * Returns `false` if `Left` or returns the result of the application of the given predicate to the `Right` value.\n *\n * @example\n * import { exists, left, right } from 'fp-ts/Either'\n *\n * const gt2 = exists((n: number) => n > 2)\n *\n * assert.strictEqual(gt2(left('a')), false)\n * assert.strictEqual(gt2(right(1)), false)\n * assert.strictEqual(gt2(right(3)), true)\n *\n * @since 2.0.0\n */\nexport var exists = function (predicate) {\n return function (ma) {\n return isLeft(ma) ? false : predicate(ma.right);\n };\n};\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexport var Do = /*#__PURE__*/ of(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bindTo = /*#__PURE__*/ bindTo_(Functor);\nvar let_ = /*#__PURE__*/ let__(Functor);\nexport { \n/**\n * @category do notation\n * @since 2.13.0\n */\nlet_ as let };\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bind = /*#__PURE__*/ chainable.bind(Chain);\n/**\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category do notation\n * @since 2.8.0\n */\nexport var bindW = bind;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var apS = /*#__PURE__*/ apS_(Apply);\n/**\n * Less strict version of [`apS`](#aps).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category do notation\n * @since 2.8.0\n */\nexport var apSW = apS;\n/**\n * @since 2.11.0\n */\nexport var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray);\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyNonEmptyArrayWithIndex = function (f) {\n return function (as) {\n var e = f(0, _.head(as));\n if (isLeft(e)) {\n return e;\n }\n var out = [e.right];\n for (var i = 1; i < as.length; i++) {\n var e_1 = f(i, as[i]);\n if (isLeft(e_1)) {\n return e_1;\n }\n out.push(e_1.right);\n }\n return right(out);\n };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyArrayWithIndex = function (f) {\n var g = traverseReadonlyNonEmptyArrayWithIndex(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseArray = function (f) { return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); };\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var sequenceArray = \n/*#__PURE__*/ traverseArray(identity);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.6.0\n */\nexport var chainW = flatMap;\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var chain = flatMap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var chainFirst = tap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.8.0\n */\nexport var chainFirstW = tap;\n/**\n * Use [`parse`](./Json.ts.html#parse) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport function parseJSON(s, onError) {\n return tryCatch(function () { return JSON.parse(s); }, onError);\n}\n/**\n * Use [`stringify`](./Json.ts.html#stringify) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var stringifyJSON = function (u, onError) {\n return tryCatch(function () {\n var s = JSON.stringify(u);\n if (typeof s !== 'string') {\n throw new Error('Converting unsupported structure to JSON');\n }\n return s;\n }, onError);\n};\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `E.Functor` instead of `E.either`\n * (where `E` is from `import E from 'fp-ts/Either'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var either = {\n URI: URI,\n map: _map,\n of: of,\n ap: _ap,\n chain: flatMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n bimap: _bimap,\n mapLeft: _mapLeft,\n alt: _alt,\n extend: _extend,\n chainRec: _chainRec,\n throwError: throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * Semigroup returning the left-most `Left` value. If both operands are `Right`s then the inner values\n * are concatenated using the provided `Semigroup`\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getApplySemigroup = \n/*#__PURE__*/ getApplySemigroup_(Apply);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getApplyMonoid = \n/*#__PURE__*/ getApplicativeMonoid(Applicative);\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getValidationSemigroup = function (SE, SA) {\n return getApplySemigroup_(getApplicativeValidation(SE))(SA);\n};\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getValidationMonoid = function (SE, MA) {\n return getApplicativeMonoid(getApplicativeValidation(SE))(MA);\n};\n/**\n * Use [`getApplicativeValidation`](#getapplicativevalidation) and [`getAltValidation`](#getaltvalidation) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport function getValidation(SE) {\n var ap = getApplicativeValidation(SE).ap;\n var alt = getAltValidation(SE).alt;\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n of: of,\n chain: flatMap,\n bimap: _bimap,\n mapLeft: _mapLeft,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n extend: _extend,\n traverse: _traverse,\n sequence: sequence,\n chainRec: _chainRec,\n throwError: throwError,\n ap: ap,\n alt: alt\n };\n}\n","// =========\n// = humps =\n// =========\n// Underscore-to-camelCase converter (and vice versa)\n// for strings and object keys\n\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n\n\n;(function(global) {\n\n var _processKeys = function(convert, obj, options) {\n if(!_isObject(obj) || _isDate(obj) || _isRegExp(obj) || _isBoolean(obj) || _isFunction(obj)) {\n return obj;\n }\n\n var output,\n i = 0,\n l = 0;\n\n if(_isArray(obj)) {\n output = [];\n for(l=obj.length; i arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\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\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","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}\n\nmodule.exports = _objectWithoutPropertiesLoose;","import { createContext } from 'react';\n\nexport const Context = createContext(null);\n\nexport function handleError({ error, styleSheets, root }) {\n switch (error.name) {\n case 'NotSupportedError':\n styleSheets.length > 0 && (root.adoptedStyleSheets = styleSheets);\n break;\n default:\n throw error;\n }\n}\n","import React, { useState, useLayoutEffect, forwardRef } from 'react';\nimport { useEnsuredForwardedRef } from 'react-use';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport * as utils from '../utils';\n\nfunction ShadowContent({ root, children }) {\n return createPortal(children, root);\n}\n\nShadowContent.propTypes = {\n root: PropTypes.object.isRequired,\n children: PropTypes.node,\n};\n\nShadowContent.defaultProps = { children: null };\n\nexport default function create(options) {\n const ShadowRoot = forwardRef(\n (\n { mode, delegatesFocus, styleSheets, ssr, children, ...props },\n ref,\n ) => {\n const node = useEnsuredForwardedRef(ref);\n const [root, setRoot] = useState(null);\n const key = `node_${mode}${delegatesFocus}`;\n\n useLayoutEffect(() => {\n if (node.current) {\n try {\n typeof ref === 'function' && ref(node.current);\n\n if (ssr) {\n const root = node.current.shadowRoot;\n setRoot(root);\n return;\n }\n\n const root = node.current.attachShadow({\n mode,\n delegatesFocus,\n });\n styleSheets.length > 0 &&\n (root.adoptedStyleSheets = styleSheets);\n setRoot(root);\n } catch (error) {\n utils.handleError({ error, styleSheets, root });\n }\n }\n }, [ref, node, styleSheets]);\n\n return (\n <>\n \n {(root || ssr) && (\n \n {ssr ? (\n \n ) : (\n \n {options.render({\n root,\n ssr,\n children,\n })}\n \n )}\n \n )}\n \n \n );\n },\n );\n\n ShadowRoot.propTypes = {\n mode: PropTypes.oneOf(['open', 'closed']),\n delegatesFocus: PropTypes.bool,\n styleSheets: PropTypes.arrayOf(\n PropTypes.instanceOf(globalThis.CSSStyleSheet),\n ),\n ssr: PropTypes.bool,\n children: PropTypes.node,\n };\n\n ShadowRoot.defaultProps = {\n mode: 'open',\n delegatesFocus: false,\n styleSheets: [],\n ssr: false,\n children: null,\n };\n\n return ShadowRoot;\n}\n","import { useContext } from 'react';\nimport { decamelize } from 'humps';\nimport create from './core';\nimport * as utils from './utils';\n\nconst tags = new Map();\n\nexport function useShadowRoot() {\n return useContext(utils.Context);\n}\n\nexport function createProxy(\n target = {},\n id = 'core',\n render = ({ children }) => children,\n) {\n return new Proxy(target, {\n get: function get(_, name) {\n const tag = decamelize(name, { separator: '-' });\n const key = `${id}-${tag}`;\n\n if (!tags.has(key)) tags.set(key, create({ tag, render }));\n return tags.get(key);\n },\n });\n}\n\nexport default createProxy();\n","import { forwardRef, useRef, useEffect, } from 'react';\nexport default function useEnsuredForwardedRef(forwardedRef) {\n var ensuredRef = useRef(forwardedRef && forwardedRef.current);\n useEffect(function () {\n if (!forwardedRef) {\n return;\n }\n forwardedRef.current = ensuredRef.current;\n }, [forwardedRef]);\n return ensuredRef;\n}\nexport function ensuredForwardRef(Component) {\n return forwardRef(function (props, ref) {\n var ensuredRef = useEnsuredForwardedRef(ref);\n return Component(props, ensuredRef);\n });\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\n/**\n * Passes or assigns an arbitrary value to a ref function or object.\n *\n * @param ref\n * @param value\n */\nfunction assignRef(ref, value) {\n if (ref == null) return;\n\n if (isFunction(ref)) {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error(\"Cannot assign value \\\"\" + value + \"\\\" to ref \\\"\" + ref + \"\\\"\");\n }\n }\n}\n/**\n * Passes or assigns a value to multiple refs (typically a DOM node). Useful for\n * dealing with components that need an explicit ref for DOM calculations but\n * also forwards refs assigned by an app.\n *\n * @param refs Refs to fork\n */\n\nfunction useComposedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return useCallback(function (node) {\n for (var _iterator = _createForOfIteratorHelperLoose(refs), _step; !(_step = _iterator()).done;) {\n var ref = _step.value;\n assignRef(ref, node);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, refs);\n}\n\nexport { assignRef, useComposedRefs };\n","/**\n * Checks whether or not a value is a boolean.\n *\n * @param value\n */\nfunction isBoolean(value) {\n return typeof value === \"boolean\";\n}\n/**\n * Checks whether or not a value is a function.\n *\n * @param value\n */\n\nfunction isFunction(value) {\n // eslint-disable-next-line eqeqeq\n return !!(value && {}.toString.call(value) == \"[object Function]\");\n}\n/**\n * Checks whether or not a value is a number.\n *\n * @param value\n */\n\nfunction isNumber(value) {\n return typeof value === \"number\" && !isNaN(value);\n}\n/**\n * Checks whether or not a value is a string.\n *\n * @param value\n */\n\nfunction isString(value) {\n return typeof value === \"string\";\n}\n\nexport { isBoolean, isFunction, isNumber, isString };\n","/**\n * Wraps a lib-defined event handler and a user-defined event handler, returning\n * a single handler that allows a user to prevent lib-defined handlers from\n * firing.\n *\n * @param theirHandler User-supplied event handler\n * @param ourHandler Library-supplied event handler\n */\nfunction composeEventHandlers(theirHandler, ourHandler) {\n return function (event) {\n theirHandler && theirHandler(event);\n\n if (!event.defaultPrevented) {\n return ourHandler(event);\n }\n };\n}\n\nexport { composeEventHandlers };\n","/**\n * defines a focus group\n */\nexport var FOCUS_GROUP = 'data-focus-lock';\n/**\n * disables element discovery inside a group marked by key\n */\nexport var FOCUS_DISABLED = 'data-focus-lock-disabled';\n/**\n * allows uncontrolled focus within the marked area, effectively disabling focus lock for it's content\n */\nexport var FOCUS_ALLOW = 'data-no-focus-lock';\n/**\n * instructs autofocus engine to pick default autofocus inside a given node\n * can be set on the element or container\n */\nexport var FOCUS_AUTO = 'data-autofocus-inside';\n/**\n * instructs autofocus to ignore elements within a given node\n * can be set on the element or container\n */\nexport var FOCUS_NO_AUTOFOCUS = 'data-no-autofocus';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return
...
\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nexport var hiddenGuard = {\n width: '1px',\n height: '0px',\n padding: 0,\n overflow: 'hidden',\n position: 'fixed',\n top: '1px',\n left: '1px'\n};\nvar InFocusGuard = function InFocusGuard(_ref) {\n var _ref$children = _ref.children,\n children = _ref$children === void 0 ? null : _ref$children;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }), children, children && /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-last\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }));\n};\nInFocusGuard.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node\n} : {};\nexport default InFocusGuard;","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { createMedium, createSidecarMedium } from 'use-sidecar';\nexport var mediumFocus = createMedium({}, function (_ref) {\n var target = _ref.target,\n currentTarget = _ref.currentTarget;\n return {\n target: target,\n currentTarget: currentTarget\n };\n});\nexport var mediumBlur = createMedium();\nexport var mediumEffect = createMedium();\nexport var mediumSidecar = createSidecarMedium({\n async: true,\n ssr: typeof document !== 'undefined'\n});","import { createContext } from 'react';\nexport var focusScope = /*#__PURE__*/createContext(undefined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { node, bool, string, any, arrayOf, oneOfType, object, func } from 'prop-types';\nimport * as constants from 'focus-lock/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { hiddenGuard } from './FocusGuard';\nimport { mediumFocus, mediumBlur, mediumSidecar } from './medium';\nimport { focusScope } from './scope';\nvar emptyArray = [];\nvar FocusLock = /*#__PURE__*/React.forwardRef(function FocusLockUI(props, parentRef) {\n var _extends2;\n var _React$useState = React.useState(),\n realObserved = _React$useState[0],\n setObserved = _React$useState[1];\n var observed = React.useRef();\n var isActive = React.useRef(false);\n var originalFocusedElement = React.useRef(null);\n var _React$useState2 = React.useState({}),\n update = _React$useState2[1];\n var children = props.children,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$noFocusGuards = props.noFocusGuards,\n noFocusGuards = _props$noFocusGuards === void 0 ? false : _props$noFocusGuards,\n _props$persistentFocu = props.persistentFocus,\n persistentFocus = _props$persistentFocu === void 0 ? false : _props$persistentFocu,\n _props$crossFrame = props.crossFrame,\n crossFrame = _props$crossFrame === void 0 ? true : _props$crossFrame,\n _props$autoFocus = props.autoFocus,\n autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,\n allowTextSelection = props.allowTextSelection,\n group = props.group,\n className = props.className,\n whiteList = props.whiteList,\n hasPositiveIndices = props.hasPositiveIndices,\n _props$shards = props.shards,\n shards = _props$shards === void 0 ? emptyArray : _props$shards,\n _props$as = props.as,\n Container = _props$as === void 0 ? 'div' : _props$as,\n _props$lockProps = props.lockProps,\n containerProps = _props$lockProps === void 0 ? {} : _props$lockProps,\n SideCar = props.sideCar,\n _props$returnFocus = props.returnFocus,\n shouldReturnFocus = _props$returnFocus === void 0 ? false : _props$returnFocus,\n focusOptions = props.focusOptions,\n onActivationCallback = props.onActivation,\n onDeactivationCallback = props.onDeactivation;\n var _React$useState3 = React.useState({}),\n id = _React$useState3[0];\n var onActivation = React.useCallback(function (_ref) {\n var captureFocusRestore = _ref.captureFocusRestore;\n if (!originalFocusedElement.current) {\n var _document;\n var activeElement = (_document = document) == null ? void 0 : _document.activeElement;\n originalFocusedElement.current = activeElement;\n if (activeElement !== document.body) {\n originalFocusedElement.current = captureFocusRestore(activeElement);\n }\n }\n if (observed.current && onActivationCallback) {\n onActivationCallback(observed.current);\n }\n isActive.current = true;\n update();\n }, [onActivationCallback]);\n var onDeactivation = React.useCallback(function () {\n isActive.current = false;\n if (onDeactivationCallback) {\n onDeactivationCallback(observed.current);\n }\n update();\n }, [onDeactivationCallback]);\n var returnFocus = React.useCallback(function (allowDefer) {\n var focusRestore = originalFocusedElement.current;\n if (focusRestore) {\n var returnFocusTo = (typeof focusRestore === 'function' ? focusRestore() : focusRestore) || document.body;\n var howToReturnFocus = typeof shouldReturnFocus === 'function' ? shouldReturnFocus(returnFocusTo) : shouldReturnFocus;\n if (howToReturnFocus) {\n var returnFocusOptions = typeof howToReturnFocus === 'object' ? howToReturnFocus : undefined;\n originalFocusedElement.current = null;\n if (allowDefer) {\n Promise.resolve().then(function () {\n return returnFocusTo.focus(returnFocusOptions);\n });\n } else {\n returnFocusTo.focus(returnFocusOptions);\n }\n }\n }\n }, [shouldReturnFocus]);\n var onFocus = React.useCallback(function (event) {\n if (isActive.current) {\n mediumFocus.useMedium(event);\n }\n }, []);\n var onBlur = mediumBlur.useMedium;\n var setObserveNode = React.useCallback(function (newObserved) {\n if (observed.current !== newObserved) {\n observed.current = newObserved;\n setObserved(newObserved);\n }\n }, []);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof allowTextSelection !== 'undefined') {\n console.warn('React-Focus-Lock: allowTextSelection is deprecated and enabled by default');\n }\n React.useEffect(function () {\n if (!observed.current && typeof Container !== 'string') {\n console.error('FocusLock: could not obtain ref to internal node');\n }\n }, []);\n }\n var lockProps = _extends((_extends2 = {}, _extends2[constants.FOCUS_DISABLED] = disabled && 'disabled', _extends2[constants.FOCUS_GROUP] = group, _extends2), containerProps);\n var hasLeadingGuards = noFocusGuards !== true;\n var hasTailingGuards = hasLeadingGuards && noFocusGuards !== 'tail';\n var mergedRef = useMergeRefs([parentRef, setObserveNode]);\n var focusScopeValue = React.useMemo(function () {\n return {\n observed: observed,\n shards: shards,\n enabled: !disabled,\n active: isActive.current\n };\n }, [disabled, isActive.current, shards, realObserved]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, hasLeadingGuards && [\n /*#__PURE__*/\n React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }), hasPositiveIndices ? /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-nearest\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 1,\n style: hiddenGuard\n }) : null], !disabled && /*#__PURE__*/React.createElement(SideCar, {\n id: id,\n sideCar: mediumSidecar,\n observed: realObserved,\n disabled: disabled,\n persistentFocus: persistentFocus,\n crossFrame: crossFrame,\n autoFocus: autoFocus,\n whiteList: whiteList,\n shards: shards,\n onActivation: onActivation,\n onDeactivation: onDeactivation,\n returnFocus: returnFocus,\n focusOptions: focusOptions,\n noFocusGuards: noFocusGuards\n }), /*#__PURE__*/React.createElement(Container, _extends({\n ref: mergedRef\n }, lockProps, {\n className: className,\n onBlur: onBlur,\n onFocus: onFocus\n }), /*#__PURE__*/React.createElement(focusScope.Provider, {\n value: focusScopeValue\n }, children)), hasTailingGuards && /*#__PURE__*/React.createElement(\"div\", {\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }));\n});\nFocusLock.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: node,\n disabled: bool,\n returnFocus: oneOfType([bool, object, func]),\n focusOptions: object,\n noFocusGuards: bool,\n hasPositiveIndices: bool,\n allowTextSelection: bool,\n autoFocus: bool,\n persistentFocus: bool,\n crossFrame: bool,\n group: string,\n className: string,\n whiteList: func,\n shards: arrayOf(any),\n as: oneOfType([string, func, object]),\n lockProps: object,\n onActivation: func,\n onDeactivation: func,\n sideCar: any.isRequired\n} : {};\nexport default FocusLock;","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { PureComponent } from 'react';\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n handleStateChangeOnClient(state);\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n SideEffect.peek = function peek() {\n return state;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n return SideEffect;\n };\n}\n\nexport default withSideEffect;\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","/*\nIE11 support\n */\nexport var toArray = function (a) {\n var ret = Array(a.length);\n for (var i = 0; i < a.length; ++i) {\n ret[i] = a[i];\n }\n return ret;\n};\nexport var asArray = function (a) { return (Array.isArray(a) ? a : [a]); };\nexport var getFirst = function (a) { return (Array.isArray(a) ? a[0] : a); };\n","import { FOCUS_NO_AUTOFOCUS } from '../constants';\nvar isElementHidden = function (node) {\n // we can measure only \"elements\"\n // consider others as \"visible\"\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n var computedStyle = window.getComputedStyle(node, null);\n if (!computedStyle || !computedStyle.getPropertyValue) {\n return false;\n }\n return (computedStyle.getPropertyValue('display') === 'none' || computedStyle.getPropertyValue('visibility') === 'hidden');\n};\nvar getParentNode = function (node) {\n // DOCUMENT_FRAGMENT_NODE can also point on ShadowRoot. In this case .host will point on the next node\n return node.parentNode && node.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node.parentNode.host\n : node.parentNode;\n};\nvar isTopNode = function (node) {\n // @ts-ignore\n return node === document || (node && node.nodeType === Node.DOCUMENT_NODE);\n};\nvar isInert = function (node) { return node.hasAttribute('inert'); };\n/**\n * @see https://github.com/testing-library/jest-dom/blob/main/src/to-be-visible.js\n */\nvar isVisibleUncached = function (node, checkParent) {\n return !node || isTopNode(node) || (!isElementHidden(node) && !isInert(node) && checkParent(getParentNode(node)));\n};\nexport var isVisibleCached = function (visibilityCache, node) {\n var cached = visibilityCache.get(node);\n if (cached !== undefined) {\n return cached;\n }\n var result = isVisibleUncached(node, isVisibleCached.bind(undefined, visibilityCache));\n visibilityCache.set(node, result);\n return result;\n};\nvar isAutoFocusAllowedUncached = function (node, checkParent) {\n return node && !isTopNode(node) ? (isAutoFocusAllowed(node) ? checkParent(getParentNode(node)) : false) : true;\n};\nexport var isAutoFocusAllowedCached = function (cache, node) {\n var cached = cache.get(node);\n if (cached !== undefined) {\n return cached;\n }\n var result = isAutoFocusAllowedUncached(node, isAutoFocusAllowedCached.bind(undefined, cache));\n cache.set(node, result);\n return result;\n};\nexport var getDataset = function (node) {\n // @ts-ignore\n return node.dataset;\n};\nexport var isHTMLButtonElement = function (node) { return node.tagName === 'BUTTON'; };\nexport var isHTMLInputElement = function (node) { return node.tagName === 'INPUT'; };\nexport var isRadioElement = function (node) {\n return isHTMLInputElement(node) && node.type === 'radio';\n};\nexport var notHiddenInput = function (node) {\n return !((isHTMLInputElement(node) || isHTMLButtonElement(node)) && (node.type === 'hidden' || node.disabled));\n};\nexport var isAutoFocusAllowed = function (node) {\n var attribute = node.getAttribute(FOCUS_NO_AUTOFOCUS);\n return ![true, 'true', ''].includes(attribute);\n};\nexport var isGuard = function (node) { var _a; return Boolean(node && ((_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.focusGuard)); };\nexport var isNotAGuard = function (node) { return !isGuard(node); };\nexport var isDefined = function (x) { return Boolean(x); };\n","import { toArray } from './array';\nexport var tabSort = function (a, b) {\n var aTab = Math.max(0, a.tabIndex);\n var bTab = Math.max(0, b.tabIndex);\n var tabDiff = aTab - bTab;\n var indexDiff = a.index - b.index;\n if (tabDiff) {\n if (!aTab) {\n return 1;\n }\n if (!bTab) {\n return -1;\n }\n }\n return tabDiff || indexDiff;\n};\nvar getTabIndex = function (node) {\n if (node.tabIndex < 0) {\n // all \"focusable\" elements are already preselected\n // but some might have implicit negative tabIndex\n // return 0 for
\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import * as React from \"react\";\nimport clsx from \"clsx\";\n\ntype ButtonProps = {\n\tvariant: \"purple\" | \"white\" | \"whiteOutline\";\n} & React.ButtonHTMLAttributes;\n\nexport const Button = ({\n\tclassName,\n\tvariant,\n\t...props\n}: ButtonProps): JSX.Element => (\n\t\n);\n","import * as React from \"react\";\nimport { PolymorphicPropsWithoutRef } from \"react-polymorphic-types\";\nimport clsx from \"clsx\";\n\nconst defaultElement = \"div\";\n\nconst variants = {\n\t\"sans-12\": {\n\t\tfontFamilyClassName: \"font-sans\",\n\t\tfontSizeClassName: \"text-12\",\n\t\tleadingClassName: \"leading-1_5\",\n\t\ttrackingClassName: undefined,\n\t},\n\t\"sans-12-14\": {\n\t\tfontFamilyClassName: \"font-sans\",\n\t\tfontSizeClassName: \"text-12 sm:text-14\",\n\t\tleadingClassName: \"leading-1_5\",\n\t\ttrackingClassName: undefined,\n\t},\n\t\"sans-14\": {\n\t\tfontFamilyClassName: \"font-sans\",\n\t\tfontSizeClassName: \"text-14\",\n\t\tleadingClassName: \"leading-1_1\",\n\t\ttrackingClassName: undefined,\n\t},\n\t\"sans-16\": {\n\t\tfontFamilyClassName: \"font-sans\",\n\t\tfontSizeClassName: \"text-16\",\n\t\tleadingClassName: \"leading-1_1\",\n\t\ttrackingClassName: undefined,\n\t},\n\t\"sans-24\": {\n\t\tfontFamilyClassName: \"font-sans\",\n\t\tfontSizeClassName: \"text-24\",\n\t\tleadingClassName: \"leading-1_1\",\n\t\ttrackingClassName: \"tracking-tight\",\n\t},\n\t\"mono-20\": {\n\t\tfontFamilyClassName: \"font-mono\",\n\t\tfontSizeClassName: \"text-20\",\n\t\tleadingClassName: \"leading-1_4\",\n\t\ttrackingClassName: undefined,\n\t},\n} as const;\n\ntype TextOwnProps = {\n\tvariant: keyof typeof variants;\n\tfontFamilyClassName?: string;\n\tfontSizeClassName?: string;\n\tleadingClassName?: string;\n\ttrackingClassName?: string;\n\tchildren?: React.ReactNode;\n};\n\nexport type TextProps =\n\tPolymorphicPropsWithoutRef;\n\nexport const Text = ({\n\tas,\n\tvariant: variantName,\n\tfontFamilyClassName,\n\tfontSizeClassName,\n\tleadingClassName,\n\ttrackingClassName,\n\tclassName,\n\t...restProps\n}: TextProps): JSX.Element => {\n\tconst Element: React.ElementType = as ?? defaultElement;\n\tconst variant = variants[variantName];\n\n\treturn (\n\t\t\n\t);\n};\n","import * as React from \"react\";\nimport clsx from \"clsx\";\n\nimport { SetAccessTokenFn } from \"../usePrismicPreviewAccessToken\";\n\nimport { Modal, ModalProps } from \"./Modal\";\nimport { Button } from \"./Button\";\nimport { Text } from \"./Text\";\n\nconst PRISMIC_DOCS_GENERATING_AN_ACCESS_TOKEN =\n\t\"https://user-guides.prismic.io/en/articles/1036153-generating-an-access-token\";\n\ntype ModalAccessTokenProps = {\n\tstate?: \"IDLE\" | \"INCORRECT\";\n\tinitialAccessToken?: string;\n\tsetAccessToken: SetAccessTokenFn;\n\tafterSubmit?: () => void;\n} & Pick;\n\nexport const ModalAccessToken = ({\n\trepositoryName,\n\tstate = \"IDLE\",\n\tinitialAccessToken = \"\",\n\tafterSubmit,\n\tsetAccessToken,\n\tisOpen,\n\tonDismiss,\n}: ModalAccessTokenProps): JSX.Element => {\n\tconst [ephemeralAccessToken, setEphemeralAccessToken] =\n\t\tReact.useState(initialAccessToken);\n\n\tReact.useEffect(() => {\n\t\tsetEphemeralAccessToken(initialAccessToken);\n\t}, [initialAccessToken]);\n\n\tconst onAccessTokenChange = (\n\t\tevent: React.FormEvent,\n\t): void => setEphemeralAccessToken(event.currentTarget.value);\n\n\tconst onSubmit = (event: React.FormEvent) => {\n\t\tevent.preventDefault();\n\t\tsetAccessToken(ephemeralAccessToken);\n\n\t\tif (afterSubmit) {\n\t\t\tafterSubmit();\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tEnter your Prismic
\n\t\t\t\t\t\taccess token\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tAn access token is required to view this preview.\n\t\t\t\t\t\t
\n\t\t\t\t\t\tRepository Name:{\" \"}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{repositoryName}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\tNot sure what your access token is?
\n\t\t\t\t\t\n\t\t\t\t\t\tLearn about generating one here.\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n","import * as React from \"react\";\n\nimport { VERSION } from \"../constants\";\n\nimport { Modal, ModalProps } from \"./Modal\";\nimport { Button } from \"./Button\";\nimport { Text } from \"./Text\";\n\ntype ModalErrorProps = {\n\terrorMessage?: string;\n} & Pick;\n\nexport const ModalError = ({\n\trepositoryName,\n\terrorMessage,\n\tisOpen,\n\tonDismiss,\n}: ModalErrorProps): JSX.Element => {\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tError\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tThe preview could not be loaded.\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t{errorMessage && (\n\t\t\t\t\t\n\t\t\t\t\t\t{errorMessage}\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tRepository\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{repositoryName}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tPlugin Version\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{VERSION}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n","import * as React from \"react\";\n\nimport { Modal, ModalProps } from \"./Modal\";\nimport { Button } from \"./Button\";\nimport { Text } from \"./Text\";\n\ntype ModalLoadingProps = Pick<\n\tModalProps,\n\t\"repositoryName\" | \"isOpen\" | \"onDismiss\"\n>;\n\nexport const ModalLoading = ({\n\trepositoryName,\n\tisOpen,\n\tonDismiss,\n}: ModalLoadingProps): JSX.Element => {\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tFetching preview\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tPlease wait while your updates are loading…\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n","import * as React from \"react\";\n\nimport { userFriendlyError } from \"../lib/userFriendlyError\";\n\nimport { PrismicContextActionType, PrismicPreviewState } from \"../context\";\nimport { usePrismicPreviewContext } from \"../usePrismicPreviewContext\";\nimport { usePrismicPreviewAccessToken } from \"../usePrismicPreviewAccessToken\";\n\nimport { Root } from \"./Root\";\nimport { ModalAccessToken } from \"./ModalAccessToken\";\nimport { ModalError } from \"./ModalError\";\nimport { ModalLoading } from \"./ModalLoading\";\n\ntype PrismicPreviewUIProps = {\n\tafterAccessTokenSet(): void;\n};\n\nexport const PrismicPreviewUI = ({\n\tafterAccessTokenSet,\n}: PrismicPreviewUIProps): JSX.Element => {\n\tconst [state, dispatch] = usePrismicPreviewContext();\n\tconst [accessToken, accessTokenActions] = usePrismicPreviewAccessToken(\n\t\tstate.activeRepositoryName,\n\t);\n\n\tconst goToIdle = () => dispatch({ type: PrismicContextActionType.GoToIdle });\n\n\t// TODO: Handle modal visibility state locally, not by transitioning globally to IDLE.\n\n\treturn (\n\t\t<>\n\t\t\t{state.activeRepositoryName && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n","import * as React from \"react\";\nimport * as gatsby from \"gatsby\";\n\nimport { getComponentDisplayName } from \"./lib/getComponentDisplayName\";\n\nimport { FetchLike, PrismicRepositoryConfigs, UnknownRecord } from \"./types\";\nimport { usePrismicPreviewBootstrap } from \"./usePrismicPreviewBootstrap\";\nimport { useMergePrismicPreviewData } from \"./useMergePrismicPreviewData\";\nimport { usePrismicPreviewContext } from \"./usePrismicPreviewContext\";\nimport { PrismicContextActionType } from \"./context\";\n\nimport { PrismicPreviewUI } from \"./components/PrismicPreviewUI\";\n\nexport interface WithPrismicPreviewProps<\n\tTStaticData extends UnknownRecord = UnknownRecord,\n> {\n\tisPrismicPreview: boolean | null;\n\tprismicPreviewOriginalData: TStaticData;\n}\n\nexport type WithPrismicPreviewConfig = {\n\tmergePreviewData?: boolean;\n\tfetch?: FetchLike;\n};\n\n/**\n * A React higher order component (HOC) that wraps a Gatsby page to\n * automatically merge previewed content during a Prismic preview session.\n *\n * @param WrappedComponent - The Gatsby page component.\n * @param usePrismicPreviewBootstrapConfig - Configuration determining how the\n * preview session is managed.\n * @param config - Configuration determining how the HOC handes previewed content.\n *\n * @returns `WrappedComponent` with automatic Prismic preview data.\n */\nexport const withPrismicPreview = <\n\tTStaticData extends UnknownRecord,\n\tTProps extends gatsby.PageProps,\n>(\n\tWrappedComponent: React.ComponentType<\n\t\tTProps & WithPrismicPreviewProps\n\t>,\n\trepositoryConfigs: PrismicRepositoryConfigs = [],\n\tconfig: WithPrismicPreviewConfig = {},\n): React.ComponentType => {\n\tconst WithPrismicPreview = (props: TProps): React.ReactElement => {\n\t\tconst [, contextDispatch] = usePrismicPreviewContext();\n\t\tconst bootstrapPreview = usePrismicPreviewBootstrap(repositoryConfigs, {\n\t\t\tfetch: config.fetch,\n\t\t});\n\t\tconst mergedData = useMergePrismicPreviewData(props.data, {\n\t\t\tskip: config.mergePreviewData,\n\t\t});\n\n\t\tconst afterAccessTokenSet = React.useCallback(() => {\n\t\t\tcontextDispatch({ type: PrismicContextActionType.GoToIdle });\n\t\t\tbootstrapPreview();\n\t\t}, [bootstrapPreview, contextDispatch]);\n\n\t\tReact.useEffect(() => {\n\t\t\tbootstrapPreview();\n\t\t}, [bootstrapPreview]);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n\tconst wrappedComponentName = getComponentDisplayName(WrappedComponent);\n\tWithPrismicPreview.displayName = `withPrismicPreview(${wrappedComponentName})`;\n\n\treturn WithPrismicPreview;\n};\n","import * as React from \"react\";\nimport * as gatsby from \"gatsby\";\n\nimport { getComponentDisplayName } from \"./lib/getComponentDisplayName\";\n\nimport { FetchLike, PrismicRepositoryConfigs } from \"./types\";\nimport { usePrismicPreviewResolver } from \"./usePrismicPreviewResolver\";\nimport { usePrismicPreviewContext } from \"./usePrismicPreviewContext\";\n\nimport {\n\tPrismicContextActionType,\n\tPrismicContextState,\n\tPrismicPreviewState,\n} from \"./context\";\nimport { PrismicPreviewUI } from \"./components/PrismicPreviewUI\";\n\nexport interface WithPrismicPreviewResolverProps {\n\tisPrismicPreview: boolean | null;\n\tprismicPreviewPath: PrismicContextState[\"resolvedPath\"];\n}\n\nexport type WithPrismicPreviewResolverConfig = {\n\tautoRedirect?: boolean;\n\tnavigate?: typeof gatsby.navigate;\n\tfetch?: FetchLike;\n};\n\n/**\n * A React higher order component (HOC) that wraps a Gatsby page to\n * automatically setup a Prismic preview resolver page. It can automatically\n * redirect an editor to the previewed document's page.\n *\n * @param WrappedComponent - The Gatsby page component.\n * @param usePrismicPreviewResolverConfig - Configuration determining how the\n * preview session is resolved.\n * @param config - Configuration determining how the HOC handes the resolved preview.\n *\n * @returns `WrappedComponent` with automatic Prismic preview resolving.\n */\nexport const withPrismicPreviewResolver = (\n\tWrappedComponent: React.ComponentType<\n\t\tTProps & WithPrismicPreviewResolverProps\n\t>,\n\trepositoryConfigs: PrismicRepositoryConfigs = [],\n\tconfig: WithPrismicPreviewResolverConfig = {},\n): React.ComponentType => {\n\tconst WithPrismicPreviewResolver = (props: TProps): React.ReactElement => {\n\t\tconst [contextState, contextDispatch] = usePrismicPreviewContext();\n\t\tconst resolvePreview = usePrismicPreviewResolver(repositoryConfigs, {\n\t\t\tfetch: config.fetch,\n\t\t});\n\n\t\tconst isPreview =\n\t\t\tcontextState.previewState === PrismicPreviewState.IDLE\n\t\t\t\t? null\n\t\t\t\t: contextState.previewState !== PrismicPreviewState.NOT_PREVIEW;\n\n\t\tconst afterAccessTokenSet = React.useCallback(() => {\n\t\t\tcontextDispatch({ type: PrismicContextActionType.GoToIdle });\n\t\t\tresolvePreview();\n\t\t}, [resolvePreview, contextDispatch]);\n\n\t\tReact.useEffect(() => {\n\t\t\tresolvePreview();\n\t\t}, [resolvePreview]);\n\n\t\tReact.useEffect(() => {\n\t\t\tif (contextState.resolvedPath && (config.autoRedirect ?? true)) {\n\t\t\t\tconst navigate = config.navigate || gatsby.navigate;\n\n\t\t\t\tnavigate(contextState.resolvedPath);\n\t\t\t}\n\t\t}, [contextState.resolvedPath]);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n\tconst wrappedComponentName = getComponentDisplayName(WrappedComponent);\n\tWithPrismicPreviewResolver.displayName = `withPrismicPreviewResolver(${wrappedComponentName})`;\n\n\treturn WithPrismicPreviewResolver;\n};\n","import * as React from \"react\";\nimport * as gatsby from \"gatsby\";\nimport * as gatsbyPrismic from \"gatsby-source-prismic\";\n\nimport { camelCase } from \"./lib/camelCase\";\nimport { getComponentDisplayName } from \"./lib/getComponentDisplayName\";\n\nimport {\n\tFetchLike,\n\tPrismicUnpublishedRepositoryConfig,\n\tPrismicUnpublishedRepositoryConfigs,\n\tUnknownRecord,\n} from \"./types\";\nimport { usePrismicPreviewBootstrap } from \"./usePrismicPreviewBootstrap\";\nimport { usePrismicPreviewContext } from \"./usePrismicPreviewContext\";\nimport { PrismicContextActionType, PrismicPreviewState } from \"./context\";\nimport { PrismicPreviewUI } from \"./components/PrismicPreviewUI\";\n\n/**\n * A convenience function to create a `componentResolver` function from a record\n * mapping a Prismic document type to a React component.\n *\n * In most cases, this convenience function is sufficient to provide a working\n * unpublished preview experience.\n *\n * @param componentMap - A record mapping a Prismic document type to a React component.\n *\n * @returns A `componentResolver` function that can be passed to\n * `withPrismicUnpublishedPreview`'s configuration.\n */\nexport const componentResolverFromMap =\n\t(\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tcomponentMap: Record>,\n\t): PrismicUnpublishedRepositoryConfig[\"componentResolver\"] =>\n\t(nodes) => {\n\t\tif (nodes.length > 0) {\n\t\t\treturn componentMap[nodes[0].type] || null;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t};\n\n/**\n * A `dataResolver` function that assumes the first matching node for the page's\n * URL is the primary document. The document is added to the page's `data` prop\n * using the Prismic document's type formatted using Gatsby's camel-cased query\n * convention.\n */\nexport const defaultDataResolver: PrismicUnpublishedRepositoryConfig[\"dataResolver\"] =\n\t(nodes, data) => {\n\t\tif (nodes.length > 0) {\n\t\t\tconst key = camelCase(nodes[0].internal.type);\n\n\t\t\treturn {\n\t\t\t\t...data,\n\t\t\t\t[key]: nodes[0],\n\t\t\t};\n\t\t} else {\n\t\t\treturn data;\n\t\t}\n\t};\n\nconst useNodesForPath = (\n\tpath: string,\n): gatsbyPrismic.NormalizedDocumentValue[] => {\n\tconst [state, setState] = React.useState(0);\n\tconst rerender = () => setState((i) => i + 1);\n\n\tconst activeRuntime = useActiveRuntime();\n\n\tReact.useEffect(() => {\n\t\tif (activeRuntime) {\n\t\t\tactiveRuntime.subscribe(rerender);\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (activeRuntime) {\n\t\t\t\tactiveRuntime.unsubscribe(rerender);\n\t\t\t}\n\t\t};\n\t}, [activeRuntime]);\n\n\treturn React.useMemo(() => {\n\t\t// To appease the exhaustive-deps linter rule\n\t\tstate;\n\n\t\treturn activeRuntime\n\t\t\t? activeRuntime.nodes.filter((node) => node.url === path)\n\t\t\t: [];\n\t}, [state, path, activeRuntime]);\n};\n\nconst useActiveRuntime = (): gatsbyPrismic.Runtime | undefined => {\n\tconst [contextState] = usePrismicPreviewContext();\n\n\treturn React.useMemo(\n\t\t() =>\n\t\t\tcontextState.activeRepositoryName\n\t\t\t\t? contextState.runtimeStore[contextState.activeRepositoryName]\n\t\t\t\t: undefined,\n\t\t[contextState.activeRepositoryName, contextState.runtimeStore],\n\t);\n};\n\nconst useActiveRepositoryConfig = (\n\trepositoryConfigs: PrismicUnpublishedRepositoryConfigs = [],\n) => {\n\tconst [contextState] = usePrismicPreviewContext();\n\n\treturn React.useMemo(\n\t\t() =>\n\t\t\t[...repositoryConfigs, ...contextState.repositoryConfigs].find(\n\t\t\t\t(config) => config.repositoryName === contextState.activeRepositoryName,\n\t\t\t),\n\t\t[\n\t\t\tcontextState.activeRepositoryName,\n\t\t\tcontextState.repositoryConfigs,\n\t\t\trepositoryConfigs,\n\t\t],\n\t);\n};\n\nexport type WithPrismicUnpublishedPreviewConfig = {\n\tfetch?: FetchLike;\n};\n\n/**\n * A React higher order component (HOC) that wraps a Gatsby page to\n * automatically display a template for an unpublished Prismic document. This\n * HOC should be used on your app's 404 page (usually `src/pages/404.js`).\n *\n * @param WrappedComponent - The Gatsby page component.\n * @param usePrismicPreviewBootstrapConfig - Configuration determining how the\n * preview session is managed.\n * @param config - Configuration determining how the HOC handes previewed content.\n *\n * @returns `WrappedComponent` with automatic unpublished Prismic preview data.\n */\nexport const withPrismicUnpublishedPreview = <\n\tTStaticData extends UnknownRecord,\n\tTProps extends gatsby.PageProps,\n>(\n\tWrappedComponent: React.ComponentType,\n\trepositoryConfigs?: PrismicUnpublishedRepositoryConfigs,\n\tconfig: WithPrismicUnpublishedPreviewConfig = {},\n): React.ComponentType => {\n\tconst WithPrismicUnpublishedPreview = (props: TProps): React.ReactElement => {\n\t\tconst [contextState, contextDispatch] = usePrismicPreviewContext();\n\t\tconst bootstrapPreview = usePrismicPreviewBootstrap(repositoryConfigs, {\n\t\t\tfetch: config.fetch,\n\t\t});\n\t\tconst nodesForPath = useNodesForPath(props.location.pathname);\n\t\tconst repositoryConfig = useActiveRepositoryConfig(repositoryConfigs);\n\n\t\tconst ResolvedComponent = React.useMemo(\n\t\t\t() =>\n\t\t\t\trepositoryConfig?.componentResolver(nodesForPath) ?? WrappedComponent,\n\t\t\t[repositoryConfig, nodesForPath],\n\t\t);\n\n\t\tconst resolvedData = React.useMemo(() => {\n\t\t\tconst dataResolver =\n\t\t\t\trepositoryConfig?.dataResolver || defaultDataResolver;\n\n\t\t\treturn dataResolver(nodesForPath, props.data);\n\t\t}, [repositoryConfig?.dataResolver, nodesForPath, props.data]);\n\n\t\tconst afterAccessTokenSet = React.useCallback(() => {\n\t\t\tcontextDispatch({ type: PrismicContextActionType.GoToIdle });\n\t\t\tbootstrapPreview();\n\t\t}, [bootstrapPreview, contextDispatch]);\n\n\t\tReact.useEffect(() => {\n\t\t\tbootstrapPreview();\n\t\t}, [bootstrapPreview]);\n\n\t\treturn contextState.previewState === PrismicPreviewState.ACTIVE ? (\n\t\t\t\n\t\t) : (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n\tconst wrappedComponentName = getComponentDisplayName(WrappedComponent);\n\tWithPrismicUnpublishedPreview.displayName = `withPrismicUnpublishedPreview(${wrappedComponentName})`;\n\n\treturn WithPrismicUnpublishedPreview;\n};\n","\"use strict\";\n\nexports.DEFAULT_OPTIONS = {\n maxWidth: 650,\n wrapperStyle: \"\",\n backgroundColor: \"white\",\n linkImagesToOriginal: true,\n showCaptions: false,\n markdownCaptions: false,\n withWebp: false,\n withAvif: false,\n tracedSVG: false,\n loading: \"lazy\",\n decoding: \"async\",\n disableBgImageOnAlpha: false,\n disableBgImage: false\n};\nexports.EMPTY_ALT = \"GATSBY_EMPTY_ALT\";\nexports.imageClass = \"gatsby-resp-image-image\";\nexports.imageWrapperClass = \"gatsby-resp-image-wrapper\";\nexports.imageBackgroundClass = \"gatsby-resp-image-background-image\";","\"use strict\";\n\nvar _require = require(\"./constants\"),\n DEFAULT_OPTIONS = _require.DEFAULT_OPTIONS,\n imageClass = _require.imageClass,\n imageBackgroundClass = _require.imageBackgroundClass,\n imageWrapperClass = _require.imageWrapperClass;\nexports.onRouteUpdate = function (apiCallbackContext, pluginOptions) {\n var options = Object.assign({}, DEFAULT_OPTIONS, pluginOptions);\n var imageWrappers = document.querySelectorAll(\".\" + imageWrapperClass);\n\n // https://css-tricks.com/snippets/javascript/loop-queryselectorall-matches/\n // for cross-browser looping through NodeList without polyfills\n var _loop = function _loop() {\n var imageWrapper = imageWrappers[i];\n var backgroundElement = imageWrapper.querySelector(\".\" + imageBackgroundClass);\n var imageElement = imageWrapper.querySelector(\".\" + imageClass);\n var onImageLoad = function onImageLoad() {\n backgroundElement.style.transition = \"opacity 0.5s 0.5s\";\n imageElement.style.transition = \"opacity 0.5s\";\n onImageComplete();\n };\n var onImageComplete = function onImageComplete() {\n backgroundElement.style.opacity = 0;\n imageElement.style.opacity = 1;\n imageElement.style.color = \"inherit\";\n imageElement.style.boxShadow = \"inset 0px 0px 0px 400px \" + options.backgroundColor;\n imageElement.removeEventListener(\"load\", onImageLoad);\n imageElement.removeEventListener(\"error\", onImageComplete);\n };\n imageElement.style.opacity = 0;\n imageElement.addEventListener(\"load\", onImageLoad);\n imageElement.addEventListener(\"error\", onImageComplete);\n if (imageElement.complete) {\n onImageComplete();\n }\n };\n for (var i = 0; i < imageWrappers.length; i++) {\n _loop();\n }\n};","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport GlobalStyles from '../GlobalStyles';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const html = (theme, enableColorScheme) => _extends({\n WebkitFontSmoothing: 'antialiased',\n // Antialiasing.\n MozOsxFontSmoothing: 'grayscale',\n // Antialiasing.\n // Change from `box-sizing: content-box` so that `width`\n // is not affected by `padding` or `border`.\n boxSizing: 'border-box',\n // Fix font resize problem in iOS\n WebkitTextSizeAdjust: '100%'\n}, enableColorScheme && !theme.vars && {\n colorScheme: theme.palette.mode\n});\nexport const body = theme => _extends({\n color: (theme.vars || theme).palette.text.primary\n}, theme.typography.body1, {\n backgroundColor: (theme.vars || theme).palette.background.default,\n '@media print': {\n // Save printer ink.\n backgroundColor: (theme.vars || theme).palette.common.white\n }\n});\nexport const styles = (theme, enableColorScheme = false) => {\n var _theme$components;\n const colorSchemeStyles = {};\n if (enableColorScheme && theme.colorSchemes) {\n Object.entries(theme.colorSchemes).forEach(([key, scheme]) => {\n var _scheme$palette;\n colorSchemeStyles[theme.getColorSchemeSelector(key).replace(/\\s*&/, '')] = {\n colorScheme: (_scheme$palette = scheme.palette) == null ? void 0 : _scheme$palette.mode\n };\n });\n }\n let defaultStyles = _extends({\n html: html(theme, enableColorScheme),\n '*, *::before, *::after': {\n boxSizing: 'inherit'\n },\n 'strong, b': {\n fontWeight: theme.typography.fontWeightBold\n },\n body: _extends({\n margin: 0\n }, body(theme), {\n // Add support for document.body.requestFullScreen().\n // Other elements, if background transparent, are not supported.\n '&::backdrop': {\n backgroundColor: (theme.vars || theme).palette.background.default\n }\n })\n }, colorSchemeStyles);\n const themeOverrides = (_theme$components = theme.components) == null || (_theme$components = _theme$components.MuiCssBaseline) == null ? void 0 : _theme$components.styleOverrides;\n if (themeOverrides) {\n defaultStyles = [defaultStyles, themeOverrides];\n }\n return defaultStyles;\n};\n\n/**\n * Kickstart an elegant, consistent, and simple baseline to build upon.\n */\nfunction CssBaseline(inProps) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCssBaseline'\n });\n const {\n children,\n enableColorScheme = false\n } = props;\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(GlobalStyles, {\n styles: theme => styles(theme, enableColorScheme)\n }), children]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? CssBaseline.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * You can wrap a node.\n */\n children: PropTypes.node,\n /**\n * Enable `color-scheme` CSS property to use `theme.palette.mode`.\n * For more details, check out https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme\n * For browser support, check out https://caniuse.com/?search=color-scheme\n * @default false\n */\n enableColorScheme: PropTypes.bool\n} : void 0;\nexport default CssBaseline;","import * as React from 'react';\nconst ThemeContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\nexport default ThemeContext;","import * as React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n const theme = React.useContext(ThemeContext);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n return theme;\n}","const hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@mui/utils';\nimport ThemeContext from '../useTheme/ThemeContext';\nimport useTheme from '../useTheme';\nimport nested from './nested';\n\n// To support composition of theme.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction mergeOuterLocalTheme(outerTheme, localTheme) {\n if (typeof localTheme === 'function') {\n const mergedTheme = localTheme(outerTheme);\n if (process.env.NODE_ENV !== 'production') {\n if (!mergedTheme) {\n console.error(['MUI: You should return an object from your theme function, i.e.', ' ({})} />'].join('\\n'));\n }\n }\n return mergedTheme;\n }\n return _extends({}, outerTheme, localTheme);\n}\n\n/**\n * This component takes a `theme` prop.\n * It makes the `theme` available down the React tree thanks to React context.\n * This component should preferably be used at **the root of your component tree**.\n */\nfunction ThemeProvider(props) {\n const {\n children,\n theme: localTheme\n } = props;\n const outerTheme = useTheme();\n if (process.env.NODE_ENV !== 'production') {\n if (outerTheme === null && typeof localTheme === 'function') {\n console.error(['MUI: You are providing a theme function prop to the ThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n const theme = React.useMemo(() => {\n const output = outerTheme === null ? localTheme : mergeOuterLocalTheme(outerTheme, localTheme);\n if (output != null) {\n output[nested] = outerTheme !== null;\n }\n return output;\n }, [localTheme, outerTheme]);\n return /*#__PURE__*/_jsx(ThemeContext.Provider, {\n value: theme,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\nexport default ThemeProvider;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { ThemeProvider as MuiThemeProvider, useTheme as usePrivateTheme } from '@mui/private-theming';\nimport exactProp from '@mui/utils/exactProp';\nimport { ThemeContext as StyledEngineThemeContext } from '@mui/styled-engine';\nimport useThemeWithoutDefault from '../useThemeWithoutDefault';\nimport RtlProvider from '../RtlProvider';\nimport DefaultPropsProvider from '../DefaultPropsProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst EMPTY_THEME = {};\nfunction useThemeScoping(themeId, upperTheme, localTheme, isPrivate = false) {\n return React.useMemo(() => {\n const resolvedTheme = themeId ? upperTheme[themeId] || upperTheme : upperTheme;\n if (typeof localTheme === 'function') {\n const mergedTheme = localTheme(resolvedTheme);\n const result = themeId ? _extends({}, upperTheme, {\n [themeId]: mergedTheme\n }) : mergedTheme;\n // must return a function for the private theme to NOT merge with the upper theme.\n // see the test case \"use provided theme from a callback\" in ThemeProvider.test.js\n if (isPrivate) {\n return () => result;\n }\n return result;\n }\n return themeId ? _extends({}, upperTheme, {\n [themeId]: localTheme\n }) : _extends({}, upperTheme, localTheme);\n }, [themeId, upperTheme, localTheme, isPrivate]);\n}\n\n/**\n * This component makes the `theme` available down the React tree.\n * It should preferably be used at **the root of your component tree**.\n *\n * // existing use case\n * // theme scoping\n */\nfunction ThemeProvider(props) {\n const {\n children,\n theme: localTheme,\n themeId\n } = props;\n const upperTheme = useThemeWithoutDefault(EMPTY_THEME);\n const upperPrivateTheme = usePrivateTheme() || EMPTY_THEME;\n if (process.env.NODE_ENV !== 'production') {\n if (upperTheme === null && typeof localTheme === 'function' || themeId && upperTheme && !upperTheme[themeId] && typeof localTheme === 'function') {\n console.error(['MUI: You are providing a theme function prop to the ThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n const engineTheme = useThemeScoping(themeId, upperTheme, localTheme);\n const privateTheme = useThemeScoping(themeId, upperPrivateTheme, localTheme, true);\n const rtlValue = engineTheme.direction === 'rtl';\n return /*#__PURE__*/_jsx(MuiThemeProvider, {\n theme: privateTheme,\n children: /*#__PURE__*/_jsx(StyledEngineThemeContext.Provider, {\n value: engineTheme,\n children: /*#__PURE__*/_jsx(RtlProvider, {\n value: rtlValue,\n children: /*#__PURE__*/_jsx(DefaultPropsProvider, {\n value: engineTheme == null ? void 0 : engineTheme.components,\n children: children\n })\n })\n })\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,\n /**\n * The design system's unique id for getting the corresponded theme when there are multiple design systems.\n */\n themeId: PropTypes.string\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\nexport default ThemeProvider;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"theme\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { ThemeProvider as SystemThemeProvider } from '@mui/system';\nimport THEME_ID from './identifier';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function ThemeProvider(_ref) {\n let {\n theme: themeInput\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const scopedTheme = themeInput[THEME_ID];\n return /*#__PURE__*/_jsx(SystemThemeProvider, _extends({}, props, {\n themeId: scopedTheme ? THEME_ID : undefined,\n theme: scopedTheme || themeInput\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired\n} : void 0;","export function isUnitless(value) {\n return String(parseFloat(value)).length === String(value).length;\n}\n\n// Ported from Compass\n// https://github.com/Compass/compass/blob/master/core/stylesheets/compass/typography/_units.scss\n// Emulate the sass function \"unit\"\nexport function getUnit(input) {\n return String(input).match(/[\\d.\\-+]*\\s*(.*)/)[1] || '';\n}\n\n// Emulate the sass function \"unitless\"\nexport function toUnitless(length) {\n return parseFloat(length);\n}\n\n// Convert any CSS or value to any another.\n// From https://github.com/KyleAMathews/convert-css-length\nexport function convertLength(baseFontSize) {\n return (length, toUnit) => {\n const fromUnit = getUnit(length);\n\n // Optimize for cases where `from` and `to` units are accidentally the same.\n if (fromUnit === toUnit) {\n return length;\n }\n\n // Convert input length to pixels.\n let pxLength = toUnitless(length);\n if (fromUnit !== 'px') {\n if (fromUnit === 'em') {\n pxLength = toUnitless(length) * toUnitless(baseFontSize);\n } else if (fromUnit === 'rem') {\n pxLength = toUnitless(length) * toUnitless(baseFontSize);\n }\n }\n\n // Convert length in pixels to the output unit\n let outputLength = pxLength;\n if (toUnit !== 'px') {\n if (toUnit === 'em') {\n outputLength = pxLength / toUnitless(baseFontSize);\n } else if (toUnit === 'rem') {\n outputLength = pxLength / toUnitless(baseFontSize);\n } else {\n return length;\n }\n }\n return parseFloat(outputLength.toFixed(5)) + toUnit;\n };\n}\nexport function alignProperty({\n size,\n grid\n}) {\n const sizeBelow = size - size % grid;\n const sizeAbove = sizeBelow + grid;\n return size - sizeBelow < sizeAbove - size ? sizeBelow : sizeAbove;\n}\n\n// fontGrid finds a minimal grid (in rem) for the fontSize values so that the\n// lineHeight falls under a x pixels grid, 4px in the case of Material Design,\n// without changing the relative line height\nexport function fontGrid({\n lineHeight,\n pixels,\n htmlFontSize\n}) {\n return pixels / (lineHeight * htmlFontSize);\n}\n\n/**\n * generate a responsive version of a given CSS property\n * @example\n * responsiveProperty({\n * cssProperty: 'fontSize',\n * min: 15,\n * max: 20,\n * unit: 'px',\n * breakpoints: [300, 600],\n * })\n *\n * // this returns\n *\n * {\n * fontSize: '15px',\n * '@media (min-width:300px)': {\n * fontSize: '17.5px',\n * },\n * '@media (min-width:600px)': {\n * fontSize: '20px',\n * },\n * }\n * @param {Object} params\n * @param {string} params.cssProperty - The CSS property to be made responsive\n * @param {number} params.min - The smallest value of the CSS property\n * @param {number} params.max - The largest value of the CSS property\n * @param {string} [params.unit] - The unit to be used for the CSS property\n * @param {Array.number} [params.breakpoints] - An array of breakpoints\n * @param {number} [params.alignStep] - Round scaled value to fall under this grid\n * @returns {Object} responsive styles for {params.cssProperty}\n */\nexport function responsiveProperty({\n cssProperty,\n min,\n max,\n unit = 'rem',\n breakpoints = [600, 900, 1200],\n transform = null\n}) {\n const output = {\n [cssProperty]: `${min}${unit}`\n };\n const factor = (max - min) / breakpoints[breakpoints.length - 1];\n breakpoints.forEach(breakpoint => {\n let value = min + factor * breakpoint;\n if (transform !== null) {\n value = transform(value);\n }\n output[`@media (min-width:${breakpoint}px)`] = {\n [cssProperty]: `${Math.round(value * 10000) / 10000}${unit}`\n };\n });\n return output;\n}","import {createTheme, responsiveFontSizes} from '@mui/material/styles'\n\nconst theme = createTheme({\n typography: {\n fontFamily: [\n 'Montserrat',\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n 'Roboto',\n '\"Helvetica Neue\"',\n 'Arial',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n ].join(','),\n h1: {\n fontWeight: 'bold',\n color: '#504478',\n },\n h2: {\n fontWeight: 'bold',\n color: '#504478',\n },\n h3: {\n fontWeight: 'bold',\n color: '#504478',\n },\n h4: {\n fontWeight: 'bold',\n color: '#504478',\n },\n h5: {\n fontWeight: 'bold',\n color: '#504478',\n },\n h6: {\n fontWeight: 'bold',\n color: '#504478',\n },\n button: {\n fontWeight: 'bold',\n },\n body1: {\n fontFamily: 'Roboto',\n fontWeight: 'normal',\n },\n subtitle1: {\n fontWeight: 'bold',\n fontSize: '1.2rem',\n color: '#504478',\n lineHeight: '1.5',\n },\n subtitle2: {\n fontWeight: 'bold',\n color: '#F95986',\n },\n },\n palette: {\n primary: {\n main: '#F95986',\n light: '#FEC2B4',\n contrastText: '#FFFFFF',\n },\n secondary: {\n light: '#ECF2F6',\n main: '#504478',\n contrastText: '#FFFFFF',\n },\n text: {\n primary: '#7B819A',\n secondary: '#1B1B1B',\n },\n },\n components: {\n MuiCard: {\n styleOverrides: {\n root: {\n borderRadius: 15,\n },\n },\n },\n MuiCardContent: {\n styleOverrides: {\n root: {\n padding: '2.3rem',\n },\n },\n },\n MuiButton: {\n variants: [\n {\n props: {size: 'small'},\n style: {\n padding: '0.4rem 2rem',\n },\n },\n {\n props: {size: 'medium'},\n style: {\n padding: '0.7rem 3rem',\n },\n },\n ],\n styleOverrides: {\n root: {\n borderRadius: 6,\n boxShadow: 'none',\n '&:hover': {\n boxShadow: 'none',\n },\n },\n outlined: {\n boxShadow: 'none',\n '&:hover': {\n boxShadow: 'none',\n },\n },\n },\n },\n MuiTypography: {\n styleOverrides: {\n root: {\n '& em': {\n fontStyle: 'normal',\n fontWeight: 'bold',\n color: '#F95986',\n },\n },\n gutterBottom: {\n marginBottom: 16,\n },\n },\n },\n MuiInputBase: {\n styleOverrides: {\n root: {\n borderRadius: '30px!important',\n paddingLeft: 5,\n color: '#7B819A',\n background: '#fff',\n },\n },\n },\n MuiInputLabel: {\n styleOverrides: {\n root: {\n marginLeft: 2,\n fontSize: '0.9rem',\n lineHeight: 1.7,\n color: '#7B819A',\n },\n },\n },\n MuiAutocomplete: {\n styleOverrides: {\n root: {\n padding: '0!important',\n },\n },\n },\n MuiOutlinedInput: {\n styleOverrides: {\n root: {\n paddingRight: '9px!important',\n },\n },\n },\n MuiCheckbox: {\n styleOverrides: {\n root: {\n color: '#7B819A',\n },\n },\n },\n MuiSnackbarContent: {\n styleOverrides: {\n root: {\n background: '#F95986',\n },\n },\n },\n MuiMenu: {\n styleOverrides: {\n paper: {\n borderRadius: '15px!important',\n width: 150,\n padding: 3,\n },\n },\n },\n MuiList: {\n styleOverrides: {\n root: {\n padding: 0,\n },\n },\n },\n MuiMenuItem: {\n styleOverrides: {\n root: {\n color: '#7B819A',\n borderRadius: '13px!important',\n padding: '0.5rem 1rem',\n '&:hover': {\n backgroundColor: '#E9E5F5',\n '& p': {\n fontWeight: 'bold',\n },\n },\n },\n },\n },\n MuiFormHelperText: {\n styleOverrides: {\n root: {\n position: 'absolute',\n bottom: '-1.2rem',\n right: 0,\n },\n },\n },\n },\n})\nexport default responsiveFontSizes(theme)\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nimport { isUnitless, convertLength, responsiveProperty, alignProperty, fontGrid } from './cssUtils';\nexport default function responsiveFontSizes(themeInput, options = {}) {\n const {\n breakpoints = ['sm', 'md', 'lg'],\n disableAlign = false,\n factor = 2,\n variants = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'caption', 'button', 'overline']\n } = options;\n const theme = _extends({}, themeInput);\n theme.typography = _extends({}, theme.typography);\n const typography = theme.typography;\n\n // Convert between CSS lengths e.g. em->px or px->rem\n // Set the baseFontSize for your project. Defaults to 16px (also the browser default).\n const convert = convertLength(typography.htmlFontSize);\n const breakpointValues = breakpoints.map(x => theme.breakpoints.values[x]);\n variants.forEach(variant => {\n const style = typography[variant];\n if (!style) {\n return;\n }\n const remFontSize = parseFloat(convert(style.fontSize, 'rem'));\n if (remFontSize <= 1) {\n return;\n }\n const maxFontSize = remFontSize;\n const minFontSize = 1 + (maxFontSize - 1) / factor;\n let {\n lineHeight\n } = style;\n if (!isUnitless(lineHeight) && !disableAlign) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported non-unitless line height with grid alignment.\nUse unitless line heights instead.` : _formatMuiErrorMessage(6));\n }\n if (!isUnitless(lineHeight)) {\n // make it unitless\n lineHeight = parseFloat(convert(lineHeight, 'rem')) / parseFloat(remFontSize);\n }\n let transform = null;\n if (!disableAlign) {\n transform = value => alignProperty({\n size: value,\n grid: fontGrid({\n pixels: 4,\n lineHeight,\n htmlFontSize: typography.htmlFontSize\n })\n });\n }\n typography[variant] = _extends({}, style, responsiveProperty({\n cssProperty: 'fontSize',\n min: minFontSize,\n max: maxFontSize,\n unit: 'rem',\n breakpoints: breakpointValues,\n transform\n }));\n });\n return theme;\n}","import {useEffect} from 'react'\n\n//Zoho Sales Iq Script:\nconst useZoho = () => {\n useEffect(() => {\n const script = document.createElement('script')\n script.setAttribute('type', 'text/javascript')\n\n const code = `var $zoho=$zoho || {};$zoho.salesiq = $zoho.salesiq || {widgetcode: \"35b6d06c20be071f17b13bcd85bde9923ae86eb193aee6e76ffbc8dd9fb75ae01a2010ab7b6727677d37b27582c0e9c4\", values:{},ready:function(){}};var d=document;s=d.createElement(\"script\");s.type=\"text/javascript\";s.id=\"zsiqscript\";s.defer=true;s.src=\"https://salesiq.zoho.com/widget\";t=d.getElementsByTagName(\"script\")[0];t.parentNode.insertBefore(s,t);d.innerHTML = \"
\";`\n\n script.appendChild(document.createTextNode(code))\n document.body.appendChild(script)\n\n return () => {\n document.body.removeChild(script)\n }\n }, [])\n}\n\nexport default useZoho\n","import * as React from 'react'\nimport {Helmet} from 'react-helmet'\nimport CssBaseline from '@mui/material/CssBaseline'\nimport {ThemeProvider} from '@mui/material/styles'\nimport theme from '../../src/theme'\nimport useZoho from '../../src/hooks/useZoho'\n\nexport default function TopLayout({children}: {children: React.ReactNode}) {\n useZoho()\n return (\n <>\n \n \n \n \n \n \n \n {children}\n \n \n )\n}\n","import * as prismicH from '@prismicio/helpers'\n\nexport const linkResolver: prismicH.LinkResolverFunction = doc => {\n if (doc.type === 'home') return `/`\n if (doc.type === 'article') return `/insights/${doc.tags[0]}/${doc.uid}`\n if (doc.type === 'about') return `/about`\n if (doc.type === 'data') return `/data`\n if (doc.type === 'analytics') return `/analytics`\n if (doc.type === 'solutions') return `/solutions`\n if (doc.type === 'contacts') return `/contact`\n if (doc.type === 'regulation') return `/regulation`\n if (doc.type === 'insights') return `/insights`\n if (doc.type === 'terms') return `/terms`\n if (doc.type === 'privacy') return `/privacy`\n if (doc.type === 'cookies') return `/cookies`\n return '/'\n}\n","import * as React from 'react'\nimport TopLayout from './TopLayout'\nimport {\n PrismicPreviewProvider,\n componentResolverFromMap,\n} from 'gatsby-plugin-prismic-previews'\nimport {linkResolver} from '../../src/utils/linkResolver'\n\nexport const wrapRootElement = ({element}) => {\n return (\n \n {element}\n \n )\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","/*!\n * jsUri\n * https://github.com/derek-watson/jsUri\n *\n * Copyright 2013, Derek Watson\n * Released under the MIT license.\n *\n * Includes parseUri regular expressions\n * http://blog.stevenlevithan.com/archives/parseuri\n * Copyright 2007, Steven Levithan\n * Released under the MIT license.\n */\n\n /*globals define, module */\n\n(function(global) {\n\n var re = {\n starts_with_slashes: /^\\/+/,\n ends_with_slashes: /\\/+$/,\n pluses: /\\+/g,\n query_separator: /[&;]/,\n uri_parser: /^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@\\/]*)(?::([^:@]*))?)?@)?(\\[[0-9a-fA-F:.]+\\]|[^:\\/?#]*)(?::(\\d+|(?=:)))?(:)?)((((?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/\n };\n\n /**\n * Define forEach for older js environments\n * @see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEach#Compatibility\n */\n if (!Array.prototype.forEach) {\n Array.prototype.forEach = function(callback, thisArg) {\n var T, k;\n\n if (this == null) {\n throw new TypeError(' this is null or not defined');\n }\n\n var O = Object(this);\n var len = O.length >>> 0;\n\n if (typeof callback !== \"function\") {\n throw new TypeError(callback + ' is not a function');\n }\n\n if (arguments.length > 1) {\n T = thisArg;\n }\n\n k = 0;\n\n while (k < len) {\n var kValue;\n if (k in O) {\n kValue = O[k];\n callback.call(T, kValue, k, O);\n }\n k++;\n }\n };\n }\n\n /**\n * unescape a query param value\n * @param {string} s encoded value\n * @return {string} decoded value\n */\n function decode(s) {\n if (s) {\n s = s.toString().replace(re.pluses, '%20');\n s = decodeURIComponent(s);\n }\n return s;\n }\n\n /**\n * Breaks a uri string down into its individual parts\n * @param {string} str uri\n * @return {object} parts\n */\n function parseUri(str) {\n var parser = re.uri_parser;\n var parserKeys = [\"source\", \"protocol\", \"authority\", \"userInfo\", \"user\", \"password\", \"host\", \"port\", \"isColonUri\", \"relative\", \"path\", \"directory\", \"file\", \"query\", \"anchor\"];\n var m = parser.exec(str || '');\n var parts = {};\n\n parserKeys.forEach(function(key, i) {\n parts[key] = m[i] || '';\n });\n\n return parts;\n }\n\n /**\n * Breaks a query string down into an array of key/value pairs\n * @param {string} str query\n * @return {array} array of arrays (key/value pairs)\n */\n function parseQuery(str) {\n var i, ps, p, n, k, v, l;\n var pairs = [];\n\n if (typeof(str) === 'undefined' || str === null || str === '') {\n return pairs;\n }\n\n if (str.indexOf('?') === 0) {\n str = str.substring(1);\n }\n\n ps = str.toString().split(re.query_separator);\n\n for (i = 0, l = ps.length; i < l; i++) {\n p = ps[i];\n n = p.indexOf('=');\n\n if (n !== 0) {\n k = decode(p.substring(0, n));\n v = decode(p.substring(n + 1));\n pairs.push(n === -1 ? [p, null] : [k, v]);\n }\n\n }\n return pairs;\n }\n\n /**\n * Creates a new Uri object\n * @constructor\n * @param {string} str\n */\n function Uri(str) {\n this.uriParts = parseUri(str);\n this.queryPairs = parseQuery(this.uriParts.query);\n this.hasAuthorityPrefixUserPref = null;\n }\n\n /**\n * Define getter/setter methods\n */\n ['protocol', 'userInfo', 'host', 'port', 'path', 'anchor'].forEach(function(key) {\n Uri.prototype[key] = function(val) {\n if (typeof val !== 'undefined') {\n this.uriParts[key] = val;\n }\n return this.uriParts[key];\n };\n });\n\n /**\n * if there is no protocol, the leading // can be enabled or disabled\n * @param {Boolean} val\n * @return {Boolean}\n */\n Uri.prototype.hasAuthorityPrefix = function(val) {\n if (typeof val !== 'undefined') {\n this.hasAuthorityPrefixUserPref = val;\n }\n\n if (this.hasAuthorityPrefixUserPref === null) {\n return (this.uriParts.source.indexOf('//') !== -1);\n } else {\n return this.hasAuthorityPrefixUserPref;\n }\n };\n\n Uri.prototype.isColonUri = function (val) {\n if (typeof val !== 'undefined') {\n this.uriParts.isColonUri = !!val;\n } else {\n return !!this.uriParts.isColonUri;\n }\n };\n\n /**\n * Serializes the internal state of the query pairs\n * @param {string} [val] set a new query string\n * @return {string} query string\n */\n Uri.prototype.query = function(val) {\n var s = '', i, param, l;\n\n if (typeof val !== 'undefined') {\n this.queryPairs = parseQuery(val);\n }\n\n for (i = 0, l = this.queryPairs.length; i < l; i++) {\n param = this.queryPairs[i];\n if (s.length > 0) {\n s += '&';\n }\n if (param[1] === null) {\n s += param[0];\n } else {\n s += param[0];\n s += '=';\n if (typeof param[1] !== 'undefined') {\n s += encodeURIComponent(param[1]);\n }\n }\n }\n return s.length > 0 ? '?' + s : s;\n };\n\n /**\n * returns the first query param value found for the key\n * @param {string} key query key\n * @return {string} first value found for key\n */\n Uri.prototype.getQueryParamValue = function (key) {\n var param, i, l;\n for (i = 0, l = this.queryPairs.length; i < l; i++) {\n param = this.queryPairs[i];\n if (key === param[0]) {\n return param[1];\n }\n }\n };\n\n /**\n * returns an array of query param values for the key\n * @param {string} key query key\n * @return {array} array of values\n */\n Uri.prototype.getQueryParamValues = function (key) {\n var arr = [], i, param, l;\n for (i = 0, l = this.queryPairs.length; i < l; i++) {\n param = this.queryPairs[i];\n if (key === param[0]) {\n arr.push(param[1]);\n }\n }\n return arr;\n };\n\n /**\n * removes query parameters\n * @param {string} key remove values for key\n * @param {val} [val] remove a specific value, otherwise removes all\n * @return {Uri} returns self for fluent chaining\n */\n Uri.prototype.deleteQueryParam = function (key, val) {\n var arr = [], i, param, keyMatchesFilter, valMatchesFilter, l;\n\n for (i = 0, l = this.queryPairs.length; i < l; i++) {\n\n param = this.queryPairs[i];\n keyMatchesFilter = decode(param[0]) === decode(key);\n valMatchesFilter = param[1] === val;\n\n if ((arguments.length === 1 && !keyMatchesFilter) || (arguments.length === 2 && (!keyMatchesFilter || !valMatchesFilter))) {\n arr.push(param);\n }\n }\n\n this.queryPairs = arr;\n\n return this;\n };\n\n /**\n * adds a query parameter\n * @param {string} key add values for key\n * @param {string} val value to add\n * @param {integer} [index] specific index to add the value at\n * @return {Uri} returns self for fluent chaining\n */\n Uri.prototype.addQueryParam = function (key, val, index) {\n if (arguments.length === 3 && index !== -1) {\n index = Math.min(index, this.queryPairs.length);\n this.queryPairs.splice(index, 0, [key, val]);\n } else if (arguments.length > 0) {\n this.queryPairs.push([key, val]);\n }\n return this;\n };\n\n /**\n * test for the existence of a query parameter\n * @param {string} key add values for key\n * @param {string} val value to add\n * @param {integer} [index] specific index to add the value at\n * @return {Uri} returns self for fluent chaining\n */\n Uri.prototype.hasQueryParam = function (key) {\n var i, len = this.queryPairs.length;\n for (i = 0; i < len; i++) {\n if (this.queryPairs[i][0] == key)\n return true;\n }\n return false;\n };\n\n /**\n * replaces query param values\n * @param {string} key key to replace value for\n * @param {string} newVal new value\n * @param {string} [oldVal] replace only one specific value (otherwise replaces all)\n * @return {Uri} returns self for fluent chaining\n */\n Uri.prototype.replaceQueryParam = function (key, newVal, oldVal) {\n var index = -1, len = this.queryPairs.length, i, param;\n\n if (arguments.length === 3) {\n for (i = 0; i < len; i++) {\n param = this.queryPairs[i];\n if (decode(param[0]) === decode(key) && decodeURIComponent(param[1]) === decode(oldVal)) {\n index = i;\n break;\n }\n }\n if (index >= 0) {\n this.deleteQueryParam(key, decode(oldVal)).addQueryParam(key, newVal, index);\n }\n } else {\n for (i = 0; i < len; i++) {\n param = this.queryPairs[i];\n if (decode(param[0]) === decode(key)) {\n index = i;\n break;\n }\n }\n this.deleteQueryParam(key);\n this.addQueryParam(key, newVal, index);\n }\n return this;\n };\n\n /**\n * Define fluent setter methods (setProtocol, setHasAuthorityPrefix, etc)\n */\n ['protocol', 'hasAuthorityPrefix', 'isColonUri', 'userInfo', 'host', 'port', 'path', 'query', 'anchor'].forEach(function(key) {\n var method = 'set' + key.charAt(0).toUpperCase() + key.slice(1);\n Uri.prototype[method] = function(val) {\n this[key](val);\n return this;\n };\n });\n\n /**\n * Scheme name, colon and doubleslash, as required\n * @return {string} http:// or possibly just //\n */\n Uri.prototype.scheme = function() {\n var s = '';\n\n if (this.protocol()) {\n s += this.protocol();\n if (this.protocol().indexOf(':') !== this.protocol().length - 1) {\n s += ':';\n }\n s += '//';\n } else {\n if (this.hasAuthorityPrefix() && this.host()) {\n s += '//';\n }\n }\n\n return s;\n };\n\n /**\n * Same as Mozilla nsIURI.prePath\n * @return {string} scheme://user:password@host:port\n * @see https://developer.mozilla.org/en/nsIURI\n */\n Uri.prototype.origin = function() {\n var s = this.scheme();\n\n if (this.userInfo() && this.host()) {\n s += this.userInfo();\n if (this.userInfo().indexOf('@') !== this.userInfo().length - 1) {\n s += '@';\n }\n }\n\n if (this.host()) {\n s += this.host();\n if (this.port() || (this.path() && this.path().substr(0, 1).match(/[0-9]/))) {\n s += ':' + this.port();\n }\n }\n\n return s;\n };\n\n /**\n * Adds a trailing slash to the path\n */\n Uri.prototype.addTrailingSlash = function() {\n var path = this.path() || '';\n\n if (path.substr(-1) !== '/') {\n this.path(path + '/');\n }\n\n return this;\n };\n\n /**\n * Serializes the internal state of the Uri object\n * @return {string}\n */\n Uri.prototype.toString = function() {\n var path, s = this.origin();\n\n if (this.isColonUri()) {\n if (this.path()) {\n s += ':'+this.path();\n }\n } else if (this.path()) {\n path = this.path();\n if (!(re.ends_with_slashes.test(s) || re.starts_with_slashes.test(path))) {\n s += '/';\n } else {\n if (s) {\n s.replace(re.ends_with_slashes, '/');\n }\n path = path.replace(re.starts_with_slashes, '/');\n }\n s += path;\n } else {\n if (this.host() && (this.query().toString() || this.anchor())) {\n s += '/';\n }\n }\n if (this.query().toString()) {\n s += this.query().toString();\n }\n\n if (this.anchor()) {\n if (this.anchor().indexOf('#') !== 0) {\n s += '#';\n }\n s += this.anchor();\n }\n\n return s;\n };\n\n /**\n * Clone a Uri object\n * @return {Uri} duplicate copy of the Uri\n */\n Uri.prototype.clone = function() {\n return new Uri(this.toString());\n };\n\n /**\n * export via AMD or CommonJS, otherwise leak a global\n */\n if (typeof define === 'function' && define.amd) {\n define(function() {\n return Uri;\n });\n } else if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = Uri;\n } else {\n global.Uri = Uri;\n }\n}(this));\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\"use strict\";\n\n// ref: https://github.com/tc39/proposal-global\nvar getGlobal = function () {\n\t// the only reliable means to get the global object is\n\t// `Function('return this')()`\n\t// However, this causes CSP violations in Chrome apps.\n\tif (typeof self !== 'undefined') { return self; }\n\tif (typeof window !== 'undefined') { return window; }\n\tif (typeof global !== 'undefined') { return global; }\n\tthrow new Error('unable to locate global object');\n}\n\nvar globalObject = getGlobal();\n\nmodule.exports = exports = globalObject.fetch;\n\n// Needed for TypeScript and Webpack.\nif (globalObject.fetch) {\n\texports.default = globalObject.fetch.bind(globalObject);\n}\n\nexports.Headers = globalObject.Headers;\nexports.Request = globalObject.Request;\nexports.Response = globalObject.Response;\n","/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nvar SUPPORTED_LOCALE = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str, locale) {\n var lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang)\n return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));\n return lowerCase(str);\n}\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str) {\n return str.toLowerCase();\n}\n//# sourceMappingURL=index.js.map","import { lowerCase } from \"lower-case\";\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nvar DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n// Remove all non-word characters.\nvar DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input, options) {\n if (options === void 0) { options = {}; }\n var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? \" \" : _d;\n var result = replace(replace(input, splitRegexp, \"$1\\0$2\"), stripRegexp, \"\\0\");\n var start = 0;\n var end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input, re, value) {\n if (re instanceof RegExp)\n return input.replace(re, value);\n return re.reduce(function (input, re) { return input.replace(re, value); }, input);\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { noCase } from \"no-case\";\nexport function pascalCaseTransform(input, index) {\n var firstChar = input.charAt(0);\n var lowerChars = input.substr(1).toLowerCase();\n if (index > 0 && firstChar >= \"0\" && firstChar <= \"9\") {\n return \"_\" + firstChar + lowerChars;\n }\n return \"\" + firstChar.toUpperCase() + lowerChars;\n}\nexport function pascalCaseTransformMerge(input) {\n return input.charAt(0).toUpperCase() + input.slice(1).toLowerCase();\n}\nexport function pascalCase(input, options) {\n if (options === void 0) { options = {}; }\n return noCase(input, __assign({ delimiter: \"\", transform: pascalCaseTransform }, options));\n}\n//# sourceMappingURL=index.js.map","/**\n * A function that always returns `false`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.T\n * @example\n *\n * R.F(); //=> false\n */\nvar F = function () {\n return false;\n};\n\nexport default F;","/**\n * A function that always returns `true`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.F\n * @example\n *\n * R.T(); //=> true\n */\nvar T = function () {\n return true;\n};\n\nexport default T;","/**\n * A special placeholder value used to specify \"gaps\" within curried functions,\n * allowing partial application of any combination of arguments, regardless of\n * their positions.\n *\n * If `g` is a curried ternary function and `_` is `R.__`, the following are\n * equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2, _)(1, 3)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @name __\n * @constant\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @example\n *\n * const greet = R.replace('{name}', R.__, 'Hello, {name}!');\n * greet('Alice'); //=> 'Hello, Alice!'\n */\nexport default {\n '@@functional/placeholder': true\n};","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Adds two values.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a\n * @param {Number} b\n * @return {Number}\n * @see R.subtract\n * @example\n *\n * R.add(2, 3); //=> 5\n * R.add(7)(10); //=> 17\n */\n\nvar add =\n/*#__PURE__*/\n_curry2(function add(a, b) {\n return Number(a) + Number(b);\n});\n\nexport default add;","/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nexport default function _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n idx = 0;\n\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n\n idx = 0;\n\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n\n return result;\n}","export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}","import _arity from \"./_arity.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n\n combined[combinedIdx] = result;\n\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n\n combinedIdx += 1;\n }\n\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _curryN from \"./internal/_curryN.js\";\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curryN =\n/*#__PURE__*/\n_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n\n return _arity(length, _curryN(length, [], fn));\n});\n\nexport default curryN;","import _concat from \"./internal/_concat.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Creates a new list iteration function from an existing one by adding two new\n * parameters to its callback function: the current index, and the entire list.\n *\n * This would turn, for instance, [`R.map`](#map) function into one that\n * more closely resembles `Array.prototype.map`. Note that this will only work\n * for functions in which the iteration callback function is the first\n * parameter, and where the list is the last parameter. (This latter might be\n * unimportant if the list parameter is not used.)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Function\n * @category List\n * @sig ((a ... -> b) ... -> [a] -> *) -> ((a ..., Int, [a] -> b) ... -> [a] -> *)\n * @param {Function} fn A list iteration function that does not pass index or list to its callback\n * @return {Function} An altered list iteration function that passes (item, index, list) to its callback\n * @example\n *\n * const mapIndexed = R.addIndex(R.map);\n * mapIndexed((val, idx) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']);\n * //=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r']\n */\n\nvar addIndex =\n/*#__PURE__*/\n_curry1(function addIndex(fn) {\n return curryN(fn.length, function () {\n var idx = 0;\n var origFn = arguments[0];\n var list = arguments[arguments.length - 1];\n var args = Array.prototype.slice.call(arguments, 0);\n\n args[0] = function () {\n var result = origFn.apply(this, _concat(arguments, [idx, list]));\n idx += 1;\n return result;\n };\n\n return fn.apply(this, args);\n });\n});\n\nexport default addIndex;","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","import _concat from \"./internal/_concat.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Applies a function to the value at the given index of an array, returning a\n * new copy of the array with the element at the given index replaced with the\n * result of the function application.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> (a -> a) -> [a] -> [a]\n * @param {Number} idx The index.\n * @param {Function} fn The function to apply.\n * @param {Array|Arguments} list An array-like object whose value\n * at the supplied index will be replaced.\n * @return {Array} A copy of the supplied array-like object with\n * the element at index `idx` replaced with the value\n * returned by applying `fn` to the existing element.\n * @see R.update\n * @example\n *\n * R.adjust(1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'B', 'c', 'd']\n * R.adjust(-1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c', 'D']\n * @symb R.adjust(-1, f, [a, b]) = [a, f(b)]\n * @symb R.adjust(0, f, [a, b]) = [f(a), b]\n */\n\nvar adjust =\n/*#__PURE__*/\n_curry3(function adjust(idx, fn, list) {\n if (idx >= list.length || idx < -list.length) {\n return list;\n }\n\n var start = idx < 0 ? list.length : 0;\n\n var _idx = start + idx;\n\n var _list = _concat(list);\n\n _list[_idx] = fn(list[_idx]);\n return _list;\n});\n\nexport default adjust;","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}","import _isArray from \"./_isArray.js\";\nimport _isTransformer from \"./_isTransformer.js\";\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\nexport default function _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n\n if (!_isArray(obj)) {\n var idx = 0;\n\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n\n idx += 1;\n }\n\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n\n return fn.apply(this, arguments);\n };\n}","export default function _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","export default {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XAll =\n/*#__PURE__*/\nfunction () {\n function XAll(f, xf) {\n this.xf = xf;\n this.f = f;\n this.all = true;\n }\n\n XAll.prototype['@@transducer/init'] = _xfBase.init;\n\n XAll.prototype['@@transducer/result'] = function (result) {\n if (this.all) {\n result = this.xf['@@transducer/step'](result, true);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAll.prototype['@@transducer/step'] = function (result, input) {\n if (!this.f(input)) {\n this.all = false;\n result = _reduced(this.xf['@@transducer/step'](result, false));\n }\n\n return result;\n };\n\n return XAll;\n}();\n\nvar _xall =\n/*#__PURE__*/\n_curry2(function _xall(f, xf) {\n return new XAll(f, xf);\n});\n\nexport default _xall;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xall from \"./internal/_xall.js\";\n/**\n * Returns `true` if all elements of the list match the predicate, `false` if\n * there are any that don't.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by every element, `false`\n * otherwise.\n * @see R.any, R.none, R.transduce\n * @example\n *\n * const equals3 = R.equals(3);\n * R.all(equals3)([3, 3, 3, 3]); //=> true\n * R.all(equals3)([3, 3, 1, 3]); //=> false\n */\n\nvar all =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['all'], _xall, function all(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (!fn(list[idx])) {\n return false;\n }\n\n idx += 1;\n }\n\n return true;\n}));\n\nexport default all;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\n\nvar max =\n/*#__PURE__*/\n_curry2(function max(a, b) {\n return b > a ? b : a;\n});\n\nexport default max;","export default function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n\n return result;\n}","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import _curry1 from \"./_curry1.js\";\nimport _isArray from \"./_isArray.js\";\nimport _isString from \"./_isString.js\";\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\nvar _isArrayLike =\n/*#__PURE__*/\n_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n\n if (!x) {\n return false;\n }\n\n if (typeof x !== 'object') {\n return false;\n }\n\n if (_isString(x)) {\n return false;\n }\n\n if (x.nodeType === 1) {\n return !!x.length;\n }\n\n if (x.length === 0) {\n return true;\n }\n\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n\n return false;\n});\n\nexport default _isArrayLike;","var XWrap =\n/*#__PURE__*/\nfunction () {\n function XWrap(fn) {\n this.f = fn;\n }\n\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\nvar bind =\n/*#__PURE__*/\n_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\n\nexport default bind;","import _isArrayLike from \"./_isArrayLike.js\";\nimport _xwrap from \"./_xwrap.js\";\nimport bind from \"../bind.js\";\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n idx += 1;\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n step = iter.next();\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XMap =\n/*#__PURE__*/\nfunction () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap =\n/*#__PURE__*/\n_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\n\nexport default _xmap;","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\"; // cover IE < 9 keys issues\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\n_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\n_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\nexport default keys;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _map from \"./internal/_map.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xmap from \"./internal/_xmap.js\";\nimport curryN from \"./curryN.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\nvar map =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n\n default:\n return _map(fn, functor);\n }\n}));\n\nexport default map;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","import _curry2 from \"./internal/_curry2.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\n\nvar nth =\n/*#__PURE__*/\n_curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\n\nexport default nth;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport nth from \"./nth.js\";\n/**\n * Retrieves the values at given paths of an object.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Object\n * @typedefn Idx = [String | Int]\n * @sig [Idx] -> {a} -> [a | Undefined]\n * @param {Array} pathsArray The array of paths to be fetched.\n * @param {Object} obj The object to retrieve the nested properties from.\n * @return {Array} A list consisting of values at paths specified by \"pathsArray\".\n * @see R.path\n * @example\n *\n * R.paths([['a', 'b'], ['p', 0, 'q']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, 3]\n * R.paths([['a', 'b'], ['p', 'r']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, undefined]\n */\n\nvar paths =\n/*#__PURE__*/\n_curry2(function paths(pathsArray, obj) {\n return pathsArray.map(function (paths) {\n var val = obj;\n var idx = 0;\n var p;\n\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n\n p = paths[idx];\n val = _isInteger(p) ? nth(p, val) : val[p];\n idx += 1;\n }\n\n return val;\n });\n});\n\nexport default paths;","import _curry2 from \"./internal/_curry2.js\";\nimport paths from \"./paths.js\";\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop, R.nth\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n * R.path(['a', 'b', 0], {a: {b: [1, 2, 3]}}); //=> 1\n * R.path(['a', 'b', -2], {a: {b: [1, 2, 3]}}); //=> 2\n */\n\nvar path =\n/*#__PURE__*/\n_curry2(function path(pathAr, obj) {\n return paths([pathAr], obj)[0];\n});\n\nexport default path;","import _curry2 from \"./internal/_curry2.js\";\nimport path from \"./path.js\";\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig Idx -> {s: a} -> a | Undefined\n * @param {String|Number} p The property name or array index\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path, R.nth\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.prop(0, [100]); //=> 100\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop =\n/*#__PURE__*/\n_curry2(function prop(p, obj) {\n return path([p], obj);\n});\n\nexport default prop;","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\nimport prop from \"./prop.js\";\n/**\n * Returns a new list by plucking the same named property off all objects in\n * the list supplied.\n *\n * `pluck` will work on\n * any [functor](https://github.com/fantasyland/fantasy-land#functor) in\n * addition to arrays, as it is equivalent to `R.map(R.prop(k), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => k -> f {k: v} -> f v\n * @param {Number|String} key The key name to pluck off of each object.\n * @param {Array} f The array or functor to consider.\n * @return {Array} The list of values for the given key.\n * @see R.props\n * @example\n *\n * var getAges = R.pluck('age');\n * getAges([{name: 'fred', age: 29}, {name: 'wilma', age: 27}]); //=> [29, 27]\n *\n * R.pluck(0, [[1, 2], [3, 4]]); //=> [1, 3]\n * R.pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5}\n * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]\n * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]\n */\n\nvar pluck =\n/*#__PURE__*/\n_curry2(function pluck(p, list) {\n return map(prop(p), list);\n});\n\nexport default pluck;","import _curry3 from \"./internal/_curry3.js\";\nimport _reduce from \"./internal/_reduce.js\";\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\nvar reduce =\n/*#__PURE__*/\n_curry3(_reduce);\n\nexport default reduce;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if every one of the provided predicates is satisfied\n * by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.anyPass\n * @example\n *\n * const isQueen = R.propEq('rank', 'Q');\n * const isSpade = R.propEq('suit', '♠︎');\n * const isQueenOfSpades = R.allPass([isQueen, isSpade]);\n *\n * isQueenOfSpades({rank: 'Q', suit: '♣︎'}); //=> false\n * isQueenOfSpades({rank: 'Q', suit: '♠︎'}); //=> true\n */\n\nvar allPass =\n/*#__PURE__*/\n_curry1(function allPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n\n while (idx < len) {\n if (!preds[idx].apply(this, arguments)) {\n return false;\n }\n\n idx += 1;\n }\n\n return true;\n });\n});\n\nexport default allPass;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Returns a function that always returns the given value. Note that for\n * non-primitives the value returned is a reference to the original value.\n *\n * This function is known as `const`, `constant`, or `K` (for K combinator) in\n * other languages and libraries.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> (* -> a)\n * @param {*} val The value to wrap in a function\n * @return {Function} A Function :: * -> val.\n * @example\n *\n * const t = R.always('Tee');\n * t(); //=> 'Tee'\n */\n\nvar always =\n/*#__PURE__*/\n_curry1(function always(val) {\n return function () {\n return val;\n };\n});\n\nexport default always;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if both arguments are `true`; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if it is falsy, otherwise the second argument.\n * @see R.both, R.xor\n * @example\n *\n * R.and(true, true); //=> true\n * R.and(true, false); //=> false\n * R.and(false, true); //=> false\n * R.and(false, false); //=> false\n */\n\nvar and =\n/*#__PURE__*/\n_curry2(function and(a, b) {\n return a && b;\n});\n\nexport default and;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XAny =\n/*#__PURE__*/\nfunction () {\n function XAny(f, xf) {\n this.xf = xf;\n this.f = f;\n this.any = false;\n }\n\n XAny.prototype['@@transducer/init'] = _xfBase.init;\n\n XAny.prototype['@@transducer/result'] = function (result) {\n if (!this.any) {\n result = this.xf['@@transducer/step'](result, false);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAny.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.any = true;\n result = _reduced(this.xf['@@transducer/step'](result, true));\n }\n\n return result;\n };\n\n return XAny;\n}();\n\nvar _xany =\n/*#__PURE__*/\n_curry2(function _xany(f, xf) {\n return new XAny(f, xf);\n});\n\nexport default _xany;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xany from \"./internal/_xany.js\";\n/**\n * Returns `true` if at least one of the elements of the list match the predicate,\n * `false` otherwise.\n *\n * Dispatches to the `any` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by at least one element, `false`\n * otherwise.\n * @see R.all, R.none, R.transduce\n * @example\n *\n * const lessThan0 = R.flip(R.lt)(0);\n * const lessThan2 = R.flip(R.lt)(2);\n * R.any(lessThan0)([1, 2]); //=> false\n * R.any(lessThan2)([1, 2]); //=> true\n */\n\nvar any =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['any'], _xany, function any(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (fn(list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}));\n\nexport default any;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if at least one of the provided predicates is\n * satisfied by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.allPass\n * @example\n *\n * const isClub = R.propEq('suit', '♣');\n * const isSpade = R.propEq('suit', '♠');\n * const isBlackCard = R.anyPass([isClub, isSpade]);\n *\n * isBlackCard({rank: '10', suit: '♣'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♠'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♦'}); //=> false\n */\n\nvar anyPass =\n/*#__PURE__*/\n_curry1(function anyPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n\n while (idx < len) {\n if (preds[idx].apply(this, arguments)) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n });\n});\n\nexport default anyPass;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport map from \"./map.js\";\n/**\n * ap applies a list of functions to a list of values.\n *\n * Dispatches to the `ap` method of the second argument, if present. Also\n * treats curried functions as applicatives.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig [a -> b] -> [a] -> [b]\n * @sig Apply f => f (a -> b) -> f a -> f b\n * @sig (r -> a -> b) -> (r -> a) -> (r -> b)\n * @param {*} applyF\n * @param {*} applyX\n * @return {*}\n * @example\n *\n * R.ap([R.multiply(2), R.add(3)], [1,2,3]); //=> [2, 4, 6, 4, 5, 6]\n * R.ap([R.concat('tasty '), R.toUpper], ['pizza', 'salad']); //=> [\"tasty pizza\", \"tasty salad\", \"PIZZA\", \"SALAD\"]\n *\n * // R.ap can also be used as S combinator\n * // when only two functions are passed\n * R.ap(R.concat, R.toUpper)('Ramda') //=> 'RamdaRAMDA'\n * @symb R.ap([f, g], [a, b]) = [f(a), f(b), g(a), g(b)]\n */\n\nvar ap =\n/*#__PURE__*/\n_curry2(function ap(applyF, applyX) {\n return typeof applyX['fantasy-land/ap'] === 'function' ? applyX['fantasy-land/ap'](applyF) : typeof applyF.ap === 'function' ? applyF.ap(applyX) : typeof applyF === 'function' ? function (x) {\n return applyF(x)(applyX(x));\n } : _reduce(function (acc, f) {\n return _concat(acc, map(f, applyX));\n }, [], applyF);\n});\n\nexport default ap;","export default function _aperture(n, list) {\n var idx = 0;\n var limit = list.length - (n - 1);\n var acc = new Array(limit >= 0 ? limit : 0);\n\n while (idx < limit) {\n acc[idx] = Array.prototype.slice.call(list, idx, idx + n);\n idx += 1;\n }\n\n return acc;\n}","import _concat from \"./_concat.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XAperture =\n/*#__PURE__*/\nfunction () {\n function XAperture(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n\n XAperture.prototype['@@transducer/init'] = _xfBase.init;\n\n XAperture.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XAperture.prototype['@@transducer/step'] = function (result, input) {\n this.store(input);\n return this.full ? this.xf['@@transducer/step'](result, this.getCopy()) : result;\n };\n\n XAperture.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n XAperture.prototype.getCopy = function () {\n return _concat(Array.prototype.slice.call(this.acc, this.pos), Array.prototype.slice.call(this.acc, 0, this.pos));\n };\n\n return XAperture;\n}();\n\nvar _xaperture =\n/*#__PURE__*/\n_curry2(function _xaperture(n, xf) {\n return new XAperture(n, xf);\n});\n\nexport default _xaperture;","import _aperture from \"./internal/_aperture.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xaperture from \"./internal/_xaperture.js\";\n/**\n * Returns a new list, composed of n-tuples of consecutive elements. If `n` is\n * greater than the length of the list, an empty list is returned.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @param {Number} n The size of the tuples to create\n * @param {Array} list The list to split into `n`-length tuples\n * @return {Array} The resulting list of `n`-length tuples\n * @see R.transduce\n * @example\n *\n * R.aperture(2, [1, 2, 3, 4, 5]); //=> [[1, 2], [2, 3], [3, 4], [4, 5]]\n * R.aperture(3, [1, 2, 3, 4, 5]); //=> [[1, 2, 3], [2, 3, 4], [3, 4, 5]]\n * R.aperture(7, [1, 2, 3, 4, 5]); //=> []\n */\n\nvar aperture =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xaperture, _aperture));\n\nexport default aperture;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list containing the contents of the given list, followed by\n * the given element.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The element to add to the end of the new list.\n * @param {Array} list The list of elements to add a new item to.\n * list.\n * @return {Array} A new list containing the elements of the old list followed by `el`.\n * @see R.prepend\n * @example\n *\n * R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']\n * R.append('tests', []); //=> ['tests']\n * R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]\n */\n\nvar append =\n/*#__PURE__*/\n_curry2(function append(el, list) {\n return _concat(list, [el]);\n});\n\nexport default append;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Applies function `fn` to the argument list `args`. This is useful for\n * creating a fixed-arity function from a variadic function. `fn` should be a\n * bound function if context is significant.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> a) -> [*] -> a\n * @param {Function} fn The function which will be called with `args`\n * @param {Array} args The arguments to call `fn` with\n * @return {*} result The result, equivalent to `fn(...args)`\n * @see R.call, R.unapply\n * @example\n *\n * const nums = [1, 2, 3, -99, 42, 6, 7];\n * R.apply(Math.max, nums); //=> 42\n * @symb R.apply(f, [a, b, c]) = f(a, b, c)\n */\n\nvar apply =\n/*#__PURE__*/\n_curry2(function apply(fn, args) {\n return fn.apply(this, args);\n});\n\nexport default apply;","import _curry1 from \"./internal/_curry1.js\";\nimport keys from \"./keys.js\";\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\n\nvar values =\n/*#__PURE__*/\n_curry1(function values(obj) {\n var props = keys(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n\n return vals;\n});\n\nexport default values;","import _curry1 from \"./internal/_curry1.js\";\nimport apply from \"./apply.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\nimport keys from \"./keys.js\";\nimport values from \"./values.js\"; // Use custom mapValues function to avoid issues with specs that include a \"map\" key and R.map\n// delegating calls to .map\n\nfunction mapValues(fn, obj) {\n return keys(obj).reduce(function (acc, key) {\n acc[key] = fn(obj[key]);\n return acc;\n }, {});\n}\n/**\n * Given a spec object recursively mapping properties to functions, creates a\n * function producing an object of the same structure, by mapping each property\n * to the result of calling its associated function with the supplied arguments.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig {k: ((a, b, ..., m) -> v)} -> ((a, b, ..., m) -> {k: v})\n * @param {Object} spec an object recursively mapping properties to functions for\n * producing the values for these properties.\n * @return {Function} A function that returns an object of the same structure\n * as `spec', with each property set to the value returned by calling its\n * associated function with the supplied arguments.\n * @see R.converge, R.juxt\n * @example\n *\n * const getMetrics = R.applySpec({\n * sum: R.add,\n * nested: { mul: R.multiply }\n * });\n * getMetrics(2, 4); // => { sum: 6, nested: { mul: 8 } }\n * @symb R.applySpec({ x: f, y: { z: g } })(a, b) = { x: f(a, b), y: { z: g(a, b) } }\n */\n\n\nvar applySpec =\n/*#__PURE__*/\n_curry1(function applySpec(spec) {\n spec = mapValues(function (v) {\n return typeof v == 'function' ? v : applySpec(v);\n }, spec);\n return curryN(reduce(max, 0, pluck('length', values(spec))), function () {\n var args = arguments;\n return mapValues(function (f) {\n return apply(f, args);\n }, spec);\n });\n});\n\nexport default applySpec;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes a value and applies a function to it.\n *\n * This function is also known as the `thrush` combinator.\n *\n * @func\n * @memberOf R\n * @since v0.25.0\n * @category Function\n * @sig a -> (a -> b) -> b\n * @param {*} x The value\n * @param {Function} f The function to apply\n * @return {*} The result of applying `f` to `x`\n * @example\n *\n * const t42 = R.applyTo(42);\n * t42(R.identity); //=> 42\n * t42(R.add(1)); //=> 43\n */\n\nvar applyTo =\n/*#__PURE__*/\n_curry2(function applyTo(x, f) {\n return f(x);\n});\n\nexport default applyTo;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Makes an ascending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) < fn(b), `1` if fn(b) < fn(a), otherwise `0`\n * @see R.descend\n * @example\n *\n * const byAge = R.ascend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByYoungestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\nvar ascend =\n/*#__PURE__*/\n_curry3(function ascend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n});\n\nexport default ascend;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig String -> a -> {k: v} -> {k: v}\n * @param {String} prop The property name to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except for the changed property.\n * @see R.dissoc, R.pick\n * @example\n *\n * R.assoc('c', 3, {a: 1, b: 2}); //=> {a: 1, b: 2, c: 3}\n */\n\nvar assoc =\n/*#__PURE__*/\n_curry3(function assoc(prop, val, obj) {\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n result[prop] = val;\n return result;\n});\n\nexport default assoc;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\nvar isNil =\n/*#__PURE__*/\n_curry1(function isNil(x) {\n return x == null;\n});\n\nexport default isNil;","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport assoc from \"./assoc.js\";\nimport isNil from \"./isNil.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\n\nvar assocPath =\n/*#__PURE__*/\n_curry3(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n\n var idx = path[0];\n\n if (path.length > 1) {\n var nextObj = !isNil(obj) && _has(idx, obj) ? obj[idx] : _isInteger(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n\n if (_isInteger(idx) && _isArray(obj)) {\n var arr = [].concat(obj);\n arr[idx] = val;\n return arr;\n } else {\n return assoc(idx, val, obj);\n }\n});\n\nexport default assocPath;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly `n` parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} n The desired arity of the new function.\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity `n`.\n * @see R.binary, R.unary\n * @example\n *\n * const takesTwoArgs = (a, b) => [a, b];\n *\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.nAry(1, takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only `n` arguments are passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.nAry(0, f)(a, b) = f()\n * @symb R.nAry(1, f)(a, b) = f(a)\n * @symb R.nAry(2, f)(a, b) = f(a, b)\n */\n\nvar nAry =\n/*#__PURE__*/\n_curry2(function nAry(n, fn) {\n switch (n) {\n case 0:\n return function () {\n return fn.call(this);\n };\n\n case 1:\n return function (a0) {\n return fn.call(this, a0);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.call(this, a0, a1);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.call(this, a0, a1, a2);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.call(this, a0, a1, a2, a3);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.call(this, a0, a1, a2, a3, a4);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.call(this, a0, a1, a2, a3, a4, a5);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n };\n\n default:\n throw new Error('First argument to nAry must be a non-negative integer no greater than ten');\n }\n});\n\nexport default nAry;","import _curry1 from \"./internal/_curry1.js\";\nimport nAry from \"./nAry.js\";\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 2 parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> c) -> (a, b -> c)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 2.\n * @see R.nAry, R.unary\n * @example\n *\n * const takesThreeArgs = function(a, b, c) {\n * return [a, b, c];\n * };\n * takesThreeArgs.length; //=> 3\n * takesThreeArgs(1, 2, 3); //=> [1, 2, 3]\n *\n * const takesTwoArgs = R.binary(takesThreeArgs);\n * takesTwoArgs.length; //=> 2\n * // Only 2 arguments are passed to the wrapped function\n * takesTwoArgs(1, 2, 3); //=> [1, 2, undefined]\n * @symb R.binary(f)(a, b, c) = f(a, b)\n */\n\nvar binary =\n/*#__PURE__*/\n_curry1(function binary(fn) {\n return nAry(2, fn);\n});\n\nexport default binary;","export default function _isFunction(x) {\n var type = Object.prototype.toString.call(x);\n return type === '[object Function]' || type === '[object AsyncFunction]' || type === '[object GeneratorFunction]' || type === '[object AsyncGeneratorFunction]';\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport ap from \"./ap.js\";\nimport curryN from \"./curryN.js\";\nimport map from \"./map.js\";\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" that\n * many lists, Functions or other objects that satisfy the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig Number -> (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.lift, R.ap\n * @example\n *\n * const madd3 = R.liftN(3, (...args) => R.sum(args));\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n */\n\nvar liftN =\n/*#__PURE__*/\n_curry2(function liftN(arity, fn) {\n var lifted = curryN(arity, fn);\n return curryN(arity, function () {\n return _reduce(ap, map(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));\n });\n});\n\nexport default liftN;","import _curry1 from \"./internal/_curry1.js\";\nimport liftN from \"./liftN.js\";\n/**\n * \"lifts\" a function of arity > 1 so that it may \"map over\" a list, Function or other\n * object that satisfies the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.liftN\n * @example\n *\n * const madd3 = R.lift((a, b, c) => a + b + c);\n *\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n *\n * const madd5 = R.lift((a, b, c, d, e) => a + b + c + d + e);\n *\n * madd5([1,2], [3], [4, 5], [6], [7, 8]); //=> [21, 22, 22, 23, 22, 23, 23, 24]\n */\n\nvar lift =\n/*#__PURE__*/\n_curry1(function lift(fn) {\n return liftN(fn.length, fn);\n});\n\nexport default lift;","import _curry2 from \"./internal/_curry2.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport and from \"./and.js\";\nimport lift from \"./lift.js\";\n/**\n * A function which calls the two provided functions and returns the `&&`\n * of the results.\n * It returns the result of the first function if it is false-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * false-y value.\n *\n * In addition to functions, `R.both` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f A predicate\n * @param {Function} g Another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `&&`s their outputs together.\n * @see R.and\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const lt20 = R.lt(R.__, 20)\n * const f = R.both(gt10, lt20);\n * f(15); //=> true\n * f(30); //=> false\n *\n * R.both(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(false)\n * R.both([false, false, 'a'], [11]); //=> [false, false, 11]\n */\n\nvar both =\n/*#__PURE__*/\n_curry2(function both(f, g) {\n return _isFunction(f) ? function _both() {\n return f.apply(this, arguments) && g.apply(this, arguments);\n } : lift(and)(f, g);\n});\n\nexport default both;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Returns a curried equivalent of the provided function. The curried function\n * has two unusual capabilities. First, its arguments needn't be provided one\n * at a time. If `f` is a ternary function and `g` is `R.curry(f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> a) -> (* -> a)\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curryN, R.partial\n * @example\n *\n * const addFourNumbers = (a, b, c, d) => a + b + c + d;\n *\n * const curriedAddFourNumbers = R.curry(addFourNumbers);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curry =\n/*#__PURE__*/\n_curry1(function curry(fn) {\n return curryN(fn.length, fn);\n});\n\nexport default curry;","import curry from \"./curry.js\";\n/**\n * Returns the result of calling its first argument with the remaining\n * arguments. This is occasionally useful as a converging function for\n * [`R.converge`](#converge): the first branch can produce a function while the\n * remaining branches produce values to be passed to that function as its\n * arguments.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig (*... -> a),*... -> a\n * @param {Function} fn The function to apply to the remaining arguments.\n * @param {...*} args Any number of positional arguments.\n * @return {*}\n * @see R.apply\n * @example\n *\n * R.call(R.add, 1, 2); //=> 3\n *\n * const indentN = R.pipe(R.repeat(' '),\n * R.join(''),\n * R.replace(/^(?!$)/gm));\n *\n * const format = R.converge(R.call, [\n * R.pipe(R.prop('indent'), indentN),\n * R.prop('value')\n * ]);\n *\n * format({indent: 2, value: 'foo\\nbar\\nbaz\\n'}); //=> ' foo\\n bar\\n baz\\n'\n * @symb R.call(f, a, b) = f(a, b)\n */\n\nvar call =\n/*#__PURE__*/\ncurry(function call(fn) {\n return fn.apply(this, Array.prototype.slice.call(arguments, 1));\n});\nexport default call;","import _isArrayLike from \"./_isArrayLike.js\";\n/**\n * `_makeFlat` is a helper function that returns a one-level or fully recursive\n * function based on the flag passed in.\n *\n * @private\n */\n\nexport default function _makeFlat(recursive) {\n return function flatt(list) {\n var value, jlen, j;\n var result = [];\n var idx = 0;\n var ilen = list.length;\n\n while (idx < ilen) {\n if (_isArrayLike(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n };\n}","import _forceReduced from \"./_forceReduced.js\";\nimport _isArrayLike from \"./_isArrayLike.js\";\nimport _reduce from \"./_reduce.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar preservingReduced = function (xf) {\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function (result) {\n return xf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n var ret = xf['@@transducer/step'](result, input);\n return ret['@@transducer/reduced'] ? _forceReduced(ret) : ret;\n }\n };\n};\n\nvar _flatCat = function _xcat(xf) {\n var rxf = preservingReduced(xf);\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function (result) {\n return rxf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n return !_isArrayLike(input) ? _reduce(rxf, result, [input]) : _reduce(rxf, result, input);\n }\n };\n};\n\nexport default _flatCat;","export default function _forceReduced(x) {\n return {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _makeFlat from \"./internal/_makeFlat.js\";\nimport _xchain from \"./internal/_xchain.js\";\nimport map from \"./map.js\";\n/**\n * `chain` maps a function over a list and concatenates the results. `chain`\n * is also known as `flatMap` in some libraries.\n *\n * Dispatches to the `chain` method of the second argument, if present,\n * according to the [FantasyLand Chain spec](https://github.com/fantasyland/fantasy-land#chain).\n *\n * If second argument is a function, `chain(f, g)(x)` is equivalent to `f(g(x), x)`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain m => (a -> m b) -> m a -> m b\n * @param {Function} fn The function to map with\n * @param {Array} list The list to map over\n * @return {Array} The result of flat-mapping `list` with `fn`\n * @example\n *\n * const duplicate = n => [n, n];\n * R.chain(duplicate, [1, 2, 3]); //=> [1, 1, 2, 2, 3, 3]\n *\n * R.chain(R.append, R.head)([1, 2, 3]); //=> [1, 2, 3, 1]\n */\n\nvar chain =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['fantasy-land/chain', 'chain'], _xchain, function chain(fn, monad) {\n if (typeof monad === 'function') {\n return function (x) {\n return fn(monad(x))(x);\n };\n }\n\n return _makeFlat(false)(map(fn, monad));\n}));\n\nexport default chain;","import _curry2 from \"./_curry2.js\";\nimport _flatCat from \"./_flatCat.js\";\nimport map from \"../map.js\";\n\nvar _xchain =\n/*#__PURE__*/\n_curry2(function _xchain(f, xf) {\n return map(f, _flatCat(xf));\n});\n\nexport default _xchain;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Restricts a number to be within a range.\n *\n * Also works for other ordered types such as Strings and Dates.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Relation\n * @sig Ord a => a -> a -> a -> a\n * @param {Number} minimum The lower limit of the clamp (inclusive)\n * @param {Number} maximum The upper limit of the clamp (inclusive)\n * @param {Number} value Value to be clamped\n * @return {Number} Returns `minimum` when `val < minimum`, `maximum` when `val > maximum`, returns `val` otherwise\n * @example\n *\n * R.clamp(1, 10, -5) // => 1\n * R.clamp(1, 10, 15) // => 10\n * R.clamp(1, 10, 4) // => 4\n */\n\nvar clamp =\n/*#__PURE__*/\n_curry3(function clamp(min, max, value) {\n if (min > max) {\n throw new Error('min must not be greater than max in clamp(min, max, value)');\n }\n\n return value < min ? min : value > max ? max : value;\n});\n\nexport default clamp;","export default function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));\n}","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\nvar type =\n/*#__PURE__*/\n_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\n\nexport default type;","import _cloneRegExp from \"./_cloneRegExp.js\";\nimport type from \"../type.js\";\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Array} refFrom Array containing the source references\n * @param {Array} refTo Array containing the copied source references\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\n\nexport default function _clone(value, refFrom, refTo, deep) {\n var copy = function copy(copiedValue) {\n var len = refFrom.length;\n var idx = 0;\n\n while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n\n idx += 1;\n }\n\n refFrom[idx + 1] = value;\n refTo[idx + 1] = copiedValue;\n\n for (var key in value) {\n copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];\n }\n\n return copiedValue;\n };\n\n switch (type(value)) {\n case 'Object':\n return copy({});\n\n case 'Array':\n return copy([]);\n\n case 'Date':\n return new Date(value.valueOf());\n\n case 'RegExp':\n return _cloneRegExp(value);\n\n default:\n return value;\n }\n}","import _clone from \"./internal/_clone.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Creates a deep copy of the value which may contain (nested) `Array`s and\n * `Object`s, `Number`s, `String`s, `Boolean`s and `Date`s. `Function`s are\n * assigned by reference rather than copied\n *\n * Dispatches to a `clone` method if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\n\nvar clone =\n/*#__PURE__*/\n_curry1(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : _clone(value, [], [], true);\n});\n\nexport default clone;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Makes a comparator function out of a function that reports whether the first\n * element is less than the second.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b) -> Boolean) -> ((a, b) -> Number)\n * @param {Function} pred A predicate function of arity two which will return `true` if the first argument\n * is less than the second, `false` otherwise\n * @return {Function} A Function :: a -> b -> Int that returns `-1` if a < b, `1` if b < a, otherwise `0`\n * @example\n *\n * const byAge = R.comparator((a, b) => a.age < b.age);\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByIncreasingAge = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\nvar comparator =\n/*#__PURE__*/\n_curry1(function comparator(pred) {\n return function (a, b) {\n return pred(a, b) ? -1 : pred(b, a) ? 1 : 0;\n };\n});\n\nexport default comparator;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\n\nvar not =\n/*#__PURE__*/\n_curry1(function not(a) {\n return !a;\n});\n\nexport default not;","import lift from \"./lift.js\";\nimport not from \"./not.js\";\n/**\n * Takes a function `f` and returns a function `g` such that if called with the same arguments\n * when `f` returns a \"truthy\" value, `g` returns `false` and when `f` returns a \"falsy\" value `g` returns `true`.\n *\n * `R.complement` may be applied to any functor\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> *) -> (*... -> Boolean)\n * @param {Function} f\n * @return {Function}\n * @see R.not\n * @example\n *\n * const isNotNil = R.complement(R.isNil);\n * isNil(null); //=> true\n * isNotNil(null); //=> false\n * isNil(7); //=> false\n * isNotNil(7); //=> true\n */\n\nvar complement =\n/*#__PURE__*/\nlift(not);\nexport default complement;","export default function _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}","import _isArray from \"./_isArray.js\";\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implemtation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\n\nexport default function _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n\n if (length === 0) {\n return fn();\n }\n\n var obj = arguments[length - 1];\n return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\n\nvar slice =\n/*#__PURE__*/\n_curry3(\n/*#__PURE__*/\n_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\n\nexport default slice;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\n\nvar tail =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_checkForMethod('tail',\n/*#__PURE__*/\nslice(1, Infinity)));\n\nexport default tail;","import _arity from \"./internal/_arity.js\";\nimport _pipe from \"./internal/_pipe.js\";\nimport reduce from \"./reduce.js\";\nimport tail from \"./tail.js\";\n/**\n * Performs left-to-right function composition. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n */\n\nexport default function pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n\n return _arity(arguments[0].length, reduce(_pipe, arguments[0], tail(arguments)));\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\nvar reverse =\n/*#__PURE__*/\n_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\nexport default reverse;","import pipe from \"./pipe.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left function composition. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * const classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * const yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n */\n\nexport default function compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n\n return pipe.apply(this, reverse(arguments));\n}","import chain from \"./chain.js\";\nimport compose from \"./compose.js\";\nimport map from \"./map.js\";\n/**\n * Returns the right-to-left Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.composeK(h, g, f)` is equivalent to `R.compose(R.chain(h), R.chain(g), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((y -> m z), (x -> m y), ..., (a -> m b)) -> (a -> m z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipeK\n * @deprecated since v0.26.0\n * @example\n *\n * // get :: String -> Object -> Maybe *\n * const get = R.curry((propName, obj) => Maybe(obj[propName]))\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.composeK(\n * R.compose(Maybe.of, R.toUpper),\n * get('state'),\n * get('address'),\n * get('user'),\n * );\n * getStateCode({\"user\":{\"address\":{\"state\":\"ny\"}}}); //=> Maybe.Just(\"NY\")\n * getStateCode({}); //=> Maybe.Nothing()\n * @symb R.composeK(f, g, h)(a) = R.chain(f, R.chain(g, h(a)))\n */\n\nexport default function composeK() {\n if (arguments.length === 0) {\n throw new Error('composeK requires at least one argument');\n }\n\n var init = Array.prototype.slice.call(arguments);\n var last = init.pop();\n return compose(compose.apply(this, map(chain, init)), last);\n}","export default function _pipeP(f, g) {\n return function () {\n var ctx = this;\n return f.apply(ctx, arguments).then(function (x) {\n return g.call(ctx, x);\n });\n };\n}","import _arity from \"./internal/_arity.js\";\nimport _pipeP from \"./internal/_pipeP.js\";\nimport reduce from \"./reduce.js\";\nimport tail from \"./tail.js\";\n/**\n * Performs left-to-right composition of one or more Promise-returning\n * functions. The first argument may have any arity; the remaining arguments\n * must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a -> Promise b), (b -> Promise c), ..., (y -> Promise z)) -> (a -> Promise z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeP\n * @deprecated since v0.26.0\n * @example\n *\n * // followersForUser :: String -> Promise [User]\n * const followersForUser = R.pipeP(db.getUserById, db.getFollowers);\n */\n\nexport default function pipeP() {\n if (arguments.length === 0) {\n throw new Error('pipeP requires at least one argument');\n }\n\n return _arity(arguments[0].length, reduce(_pipeP, arguments[0], tail(arguments)));\n}","import pipeP from \"./pipeP.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left composition of one or more Promise-returning\n * functions. The last arguments may have any arity; the remaining\n * arguments must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((y -> Promise z), (x -> Promise y), ..., (a -> Promise b)) -> (a -> Promise z)\n * @param {...Function} functions The functions to compose\n * @return {Function}\n * @see R.pipeP\n * @deprecated since v0.26.0\n * @example\n *\n * const db = {\n * users: {\n * JOE: {\n * name: 'Joe',\n * followers: ['STEVE', 'SUZY']\n * }\n * }\n * }\n *\n * // We'll pretend to do a db lookup which returns a promise\n * const lookupUser = (userId) => Promise.resolve(db.users[userId])\n * const lookupFollowers = (user) => Promise.resolve(user.followers)\n * lookupUser('JOE').then(lookupFollowers)\n *\n * // followersForUser :: String -> Promise [UserId]\n * const followersForUser = R.composeP(lookupFollowers, lookupUser);\n * followersForUser('JOE').then(followers => console.log('Followers:', followers))\n * // Followers: [\"STEVE\",\"SUZY\"]\n */\n\nexport default function composeP() {\n if (arguments.length === 0) {\n throw new Error('composeP requires at least one argument');\n }\n\n return pipeP.apply(this, reverse(arguments));\n}","import nth from \"./nth.js\";\n/**\n * Returns the first element of the given list or string. In some libraries\n * this function is named `first`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {Array|String} list\n * @return {*}\n * @see R.tail, R.init, R.last\n * @example\n *\n * R.head(['fi', 'fo', 'fum']); //=> 'fi'\n * R.head([]); //=> undefined\n *\n * R.head('abc'); //=> 'a'\n * R.head(''); //=> ''\n */\n\nvar head =\n/*#__PURE__*/\nnth(0);\nexport default head;","export default function _identity(x) {\n return x;\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _identity from \"./internal/_identity.js\";\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\nvar identity =\n/*#__PURE__*/\n_curry1(_identity);\n\nexport default identity;","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport head from \"./head.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport tail from \"./tail.js\";\nimport identity from \"./identity.js\";\n/**\n * Performs left-to-right function composition using transforming function. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of pipeWith is not automatically curried. Transforming function is not used on the\n * first argument.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((* -> *), [((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeWith, R.pipe\n * @example\n *\n * const pipeWhileNotNil = R.pipeWith((f, res) => R.isNil(res) ? res : f(res));\n * const f = pipeWhileNotNil([Math.pow, R.negate, R.inc])\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipeWith(f)([g, h, i])(...args) = f(i, f(h, g(...args)))\n */\n\nvar pipeWith =\n/*#__PURE__*/\n_curry2(function pipeWith(xf, list) {\n if (list.length <= 0) {\n return identity;\n }\n\n var headList = head(list);\n var tailList = tail(list);\n return _arity(headList.length, function () {\n return _reduce(function (result, f) {\n return xf.call(this, f, result);\n }, headList.apply(this, arguments), tailList);\n });\n});\n\nexport default pipeWith;","import _curry2 from \"./internal/_curry2.js\";\nimport pipeWith from \"./pipeWith.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left function composition using transforming function. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried. Transforming function is not used on the\n * last argument.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((* -> *), [(y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.compose, R.pipeWith\n * @example\n *\n * const composeWhileNotNil = R.composeWith((f, res) => R.isNil(res) ? res : f(res));\n *\n * composeWhileNotNil([R.inc, R.prop('age')])({age: 1}) //=> 2\n * composeWhileNotNil([R.inc, R.prop('age')])({}) //=> undefined\n *\n * @symb R.composeWith(f)([g, h, i])(...args) = f(g, f(h, i(...args)))\n */\n\nvar composeWith =\n/*#__PURE__*/\n_curry2(function composeWith(xf, list) {\n return pipeWith.apply(this, [xf, reverse(list)]);\n});\n\nexport default composeWith;","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _arrayFromIterator from \"./_arrayFromIterator.js\";\nimport _includesWith from \"./_includesWith.js\";\nimport _functionName from \"./_functionName.js\";\nimport _has from \"./_has.js\";\nimport _objectIs from \"./_objectIs.js\";\nimport keys from \"../keys.js\";\nimport type from \"../type.js\";\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparision of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n } // if *a* array contains any element that is not included in *b*\n\n\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n\n var typeA = type(a);\n\n if (typeA !== type(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n\n break;\n\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n\n break;\n\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n\n break;\n\n case 'Error':\n return a.name === b.name && a.message === b.message;\n\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n\n break;\n }\n\n var idx = stackA.length - 1;\n\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\n\n if (keysA.length !== keys(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n\n while (idx >= 0) {\n var key = keysA[idx];\n\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n\n idx -= 1;\n }\n\n return true;\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _equals from \"./internal/_equals.js\";\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\n\nvar equals =\n/*#__PURE__*/\n_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\n\nexport default equals;","import equals from \"../equals.js\";\nexport default function _indexOf(list, a, idx) {\n var inf, item; // Array.prototype.indexOf doesn't exist below IE9\n\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n\n while (idx < list.length) {\n item = list[idx];\n\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } // non-zero numbers can utilise Set\n\n\n return list.indexOf(a, idx);\n // all these types can utilise Set\n\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n\n }\n } // anything else not covered above, defer to R.equals\n\n\n while (idx < list.length) {\n if (equals(list[idx], a)) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}","import _indexOf from \"./_indexOf.js\";\nexport default function _includes(a, list) {\n return _indexOf(list, a, 0) >= 0;\n}","export default function _quote(s) {\n var escaped = s.replace(/\\\\/g, '\\\\\\\\').replace(/[\\b]/g, '\\\\b') // \\b matches word boundary; [\\b] matches backspace\n .replace(/\\f/g, '\\\\f').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\t/g, '\\\\t').replace(/\\v/g, '\\\\v').replace(/\\0/g, '\\\\0');\n return '\"' + escaped.replace(/\"/g, '\\\\\"') + '\"';\n}","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","export default function _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}","export default function _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n}","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFilter =\n/*#__PURE__*/\nfunction () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFilter.prototype['@@transducer/init'] = _xfBase.init;\n XFilter.prototype['@@transducer/result'] = _xfBase.result;\n\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n\n return XFilter;\n}();\n\nvar _xfilter =\n/*#__PURE__*/\n_curry2(function _xfilter(f, xf) {\n return new XFilter(f, xf);\n});\n\nexport default _xfilter;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _filter from \"./internal/_filter.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xfilter from \"./internal/_xfilter.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar filter =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['filter'], _xfilter, function (pred, filterable) {\n return _isObject(filterable) ? _reduce(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n\n return acc;\n }, {}, keys(filterable)) : // else\n _filter(pred, filterable);\n}));\n\nexport default filter;","import _complement from \"./internal/_complement.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport filter from \"./filter.js\";\n/**\n * The complement of [`filter`](#filter).\n *\n * Acts as a transducer if a transformer is given in list position. Filterable\n * objects include plain objects or any object that has a filter method such\n * as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * const isOdd = (n) => n % 2 === 1;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar reject =\n/*#__PURE__*/\n_curry2(function reject(pred, filterable) {\n return filter(_complement(pred), filterable);\n});\n\nexport default reject;","import _includes from \"./_includes.js\";\nimport _map from \"./_map.js\";\nimport _quote from \"./_quote.js\";\nimport _toISOString from \"./_toISOString.js\";\nimport keys from \"../keys.js\";\nimport reject from \"../reject.js\";\nexport default function _toString(x, seen) {\n var recur = function recur(y) {\n var xs = seen.concat([x]);\n return _includes(y, xs) ? '' : _toString(y, xs);\n }; // mapPairs :: (Object, [String]) -> [String]\n\n\n var mapPairs = function (obj, keys) {\n return _map(function (k) {\n return _quote(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + _map(recur, x).join(', ') + '))';\n\n case '[object Array]':\n return '[' + _map(recur, x).concat(mapPairs(x, reject(function (k) {\n return /^\\d+$/.test(k);\n }, keys(x)))).join(', ') + ']';\n\n case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : _quote(_toISOString(x))) + ')';\n\n case '[object Null]':\n return 'null';\n\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : _quote(x);\n\n case '[object Undefined]':\n return 'undefined';\n\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n\n if (repr !== '[object Object]') {\n return repr;\n }\n }\n\n return '{' + mapPairs(x, keys(x)).join(', ') + '}';\n }\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _toString from \"./internal/_toString.js\";\n/**\n * Returns the string representation of the given value. `eval`'ing the output\n * should result in a value equivalent to the input value. Many of the built-in\n * `toString` methods do not satisfy this requirement.\n *\n * If the given value is an `[object Object]` with a `toString` method other\n * than `Object.prototype.toString`, this method is invoked with no arguments\n * to produce the return value. This means user-defined constructor functions\n * can provide a suitable `toString` method. For example:\n *\n * function Point(x, y) {\n * this.x = x;\n * this.y = y;\n * }\n *\n * Point.prototype.toString = function() {\n * return 'new Point(' + this.x + ', ' + this.y + ')';\n * };\n *\n * R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category String\n * @sig * -> String\n * @param {*} val\n * @return {String}\n * @example\n *\n * R.toString(42); //=> '42'\n * R.toString('abc'); //=> '\"abc\"'\n * R.toString([1, 2, 3]); //=> '[1, 2, 3]'\n * R.toString({foo: 1, bar: 2, baz: 3}); //=> '{\"bar\": 2, \"baz\": 3, \"foo\": 1}'\n * R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date(\"2001-02-03T04:05:06.000Z\")'\n */\n\nvar toString =\n/*#__PURE__*/\n_curry1(function toString(val) {\n return _toString(val, []);\n});\n\nexport default toString;","import _curry2 from \"./internal/_curry2.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport _isString from \"./internal/_isString.js\";\nimport toString from \"./toString.js\";\n/**\n * Returns the result of concatenating the given lists or strings.\n *\n * Note: `R.concat` expects both arguments to be of the same type,\n * unlike the native `Array.prototype.concat` method. It will throw\n * an error if you `concat` an Array with a non-Array value.\n *\n * Dispatches to the `concat` method of the first argument, if present.\n * Can also concatenate two members of a [fantasy-land\n * compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @sig String -> String -> String\n * @param {Array|String} firstList The first list\n * @param {Array|String} secondList The second list\n * @return {Array|String} A list consisting of the elements of `firstList` followed by the elements of\n * `secondList`.\n *\n * @example\n *\n * R.concat('ABC', 'DEF'); // 'ABCDEF'\n * R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n * R.concat([], []); //=> []\n */\n\nvar concat =\n/*#__PURE__*/\n_curry2(function concat(a, b) {\n if (_isArray(a)) {\n if (_isArray(b)) {\n return a.concat(b);\n }\n\n throw new TypeError(toString(b) + ' is not an array');\n }\n\n if (_isString(a)) {\n if (_isString(b)) {\n return a + b;\n }\n\n throw new TypeError(toString(b) + ' is not a string');\n }\n\n if (a != null && _isFunction(a['fantasy-land/concat'])) {\n return a['fantasy-land/concat'](b);\n }\n\n if (a != null && _isFunction(a.concat)) {\n return a.concat(b);\n }\n\n throw new TypeError(toString(a) + ' does not have a method named \"concat\" or \"fantasy-land/concat\"');\n});\n\nexport default concat;","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport map from \"./map.js\";\nimport max from \"./max.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Returns a function, `fn`, which encapsulates `if/else, if/else, ...` logic.\n * `R.cond` takes a list of [predicate, transformer] pairs. All of the arguments\n * to `fn` are applied to each of the predicates in turn until one returns a\n * \"truthy\" value, at which point `fn` returns the result of applying its\n * arguments to the corresponding transformer. If none of the predicates\n * matches, `fn` returns undefined.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Logic\n * @sig [[(*... -> Boolean),(*... -> *)]] -> (*... -> *)\n * @param {Array} pairs A list of [predicate, transformer]\n * @return {Function}\n * @see R.ifElse, R.unless, R.when\n * @example\n *\n * const fn = R.cond([\n * [R.equals(0), R.always('water freezes at 0°C')],\n * [R.equals(100), R.always('water boils at 100°C')],\n * [R.T, temp => 'nothing special happens at ' + temp + '°C']\n * ]);\n * fn(0); //=> 'water freezes at 0°C'\n * fn(50); //=> 'nothing special happens at 50°C'\n * fn(100); //=> 'water boils at 100°C'\n */\n\nvar cond =\n/*#__PURE__*/\n_curry1(function cond(pairs) {\n var arity = reduce(max, 0, map(function (pair) {\n return pair[0].length;\n }, pairs));\n return _arity(arity, function () {\n var idx = 0;\n\n while (idx < pairs.length) {\n if (pairs[idx][0].apply(this, arguments)) {\n return pairs[idx][1].apply(this, arguments);\n }\n\n idx += 1;\n }\n });\n});\n\nexport default cond;","import _curry2 from \"./internal/_curry2.js\";\nimport curry from \"./curry.js\";\nimport nAry from \"./nAry.js\";\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type. The arity of the function\n * returned is specified to allow using variadic constructor functions.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Function\n * @sig Number -> (* -> {*}) -> (* -> {*})\n * @param {Number} n The arity of the constructor function.\n * @param {Function} Fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @example\n *\n * // Variadic Constructor function\n * function Salad() {\n * this.ingredients = arguments;\n * }\n *\n * Salad.prototype.recipe = function() {\n * const instructions = R.map(ingredient => 'Add a dollop of ' + ingredient, this.ingredients);\n * return R.join('\\n', instructions);\n * };\n *\n * const ThreeLayerSalad = R.constructN(3, Salad);\n *\n * // Notice we no longer need the 'new' keyword, and the constructor is curried for 3 arguments.\n * const salad = ThreeLayerSalad('Mayonnaise')('Potato Chips')('Ketchup');\n *\n * console.log(salad.recipe());\n * // Add a dollop of Mayonnaise\n * // Add a dollop of Potato Chips\n * // Add a dollop of Ketchup\n */\n\nvar constructN =\n/*#__PURE__*/\n_curry2(function constructN(n, Fn) {\n if (n > 10) {\n throw new Error('Constructor with greater than ten arguments');\n }\n\n if (n === 0) {\n return function () {\n return new Fn();\n };\n }\n\n return curry(nAry(n, function ($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {\n switch (arguments.length) {\n case 1:\n return new Fn($0);\n\n case 2:\n return new Fn($0, $1);\n\n case 3:\n return new Fn($0, $1, $2);\n\n case 4:\n return new Fn($0, $1, $2, $3);\n\n case 5:\n return new Fn($0, $1, $2, $3, $4);\n\n case 6:\n return new Fn($0, $1, $2, $3, $4, $5);\n\n case 7:\n return new Fn($0, $1, $2, $3, $4, $5, $6);\n\n case 8:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7);\n\n case 9:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8);\n\n case 10:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8, $9);\n }\n }));\n});\n\nexport default constructN;","import _curry1 from \"./internal/_curry1.js\";\nimport constructN from \"./constructN.js\";\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> {*}) -> (* -> {*})\n * @param {Function} fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @see R.invoker\n * @example\n *\n * // Constructor function\n * function Animal(kind) {\n * this.kind = kind;\n * };\n * Animal.prototype.sighting = function() {\n * return \"It's a \" + this.kind + \"!\";\n * }\n *\n * const AnimalConstructor = R.construct(Animal)\n *\n * // Notice we no longer need the 'new' keyword:\n * AnimalConstructor('Pig'); //=> {\"kind\": \"Pig\", \"sighting\": function (){...}};\n *\n * const animalTypes = [\"Lion\", \"Tiger\", \"Bear\"];\n * const animalSighting = R.invoker(0, 'sighting');\n * const sightNewAnimal = R.compose(animalSighting, AnimalConstructor);\n * R.map(sightNewAnimal, animalTypes); //=> [\"It's a Lion!\", \"It's a Tiger!\", \"It's a Bear!\"]\n */\n\nvar construct =\n/*#__PURE__*/\n_curry1(function construct(Fn) {\n return constructN(Fn.length, Fn);\n});\n\nexport default construct;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.includes\n * @deprecated since v0.26.0\n * @example\n *\n * R.contains(3, [1, 2, 3]); //=> true\n * R.contains(4, [1, 2, 3]); //=> false\n * R.contains({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.contains([42], [[42]]); //=> true\n * R.contains('ba', 'banana'); //=>true\n */\n\nvar contains =\n/*#__PURE__*/\n_curry2(_includes);\n\nexport default contains;","import _curry2 from \"./internal/_curry2.js\";\nimport _map from \"./internal/_map.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Accepts a converging function and a list of branching functions and returns\n * a new function. The arity of the new function is the same as the arity of\n * the longest branching function. When invoked, this new function is applied\n * to some arguments, and each branching function is applied to those same\n * arguments. The results of each branching function are passed as arguments\n * to the converging function to produce the return value.\n *\n * @func\n * @memberOf R\n * @since v0.4.2\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [((a, b, ...) -> x1), ((a, b, ...) -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} after A function. `after` will be invoked with the return values of\n * `fn1` and `fn2` as its arguments.\n * @param {Array} functions A list of functions.\n * @return {Function} A new function.\n * @see R.useWith\n * @example\n *\n * const average = R.converge(R.divide, [R.sum, R.length])\n * average([1, 2, 3, 4, 5, 6, 7]) //=> 4\n *\n * const strangeConcat = R.converge(R.concat, [R.toUpper, R.toLower])\n * strangeConcat(\"Yodel\") //=> \"YODELyodel\"\n *\n * @symb R.converge(f, [g, h])(a, b) = f(g(a, b), h(a, b))\n */\n\nvar converge =\n/*#__PURE__*/\n_curry2(function converge(after, fns) {\n return curryN(reduce(max, 0, pluck('length', fns)), function () {\n var args = arguments;\n var context = this;\n return after.apply(context, _map(function (fn) {\n return fn.apply(context, args);\n }, fns));\n });\n});\n\nexport default converge;","import _curryN from \"./_curryN.js\";\nimport _has from \"./_has.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XReduceBy =\n/*#__PURE__*/\nfunction () {\n function XReduceBy(valueFn, valueAcc, keyFn, xf) {\n this.valueFn = valueFn;\n this.valueAcc = valueAcc;\n this.keyFn = keyFn;\n this.xf = xf;\n this.inputs = {};\n }\n\n XReduceBy.prototype['@@transducer/init'] = _xfBase.init;\n\n XReduceBy.prototype['@@transducer/result'] = function (result) {\n var key;\n\n for (key in this.inputs) {\n if (_has(key, this.inputs)) {\n result = this.xf['@@transducer/step'](result, this.inputs[key]);\n\n if (result['@@transducer/reduced']) {\n result = result['@@transducer/value'];\n break;\n }\n }\n }\n\n this.inputs = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XReduceBy.prototype['@@transducer/step'] = function (result, input) {\n var key = this.keyFn(input);\n this.inputs[key] = this.inputs[key] || [key, this.valueAcc];\n this.inputs[key][1] = this.valueFn(this.inputs[key][1], input);\n return result;\n };\n\n return XReduceBy;\n}();\n\nvar _xreduceBy =\n/*#__PURE__*/\n_curryN(4, [], function _xreduceBy(valueFn, valueAcc, keyFn, xf) {\n return new XReduceBy(valueFn, valueAcc, keyFn, xf);\n});\n\nexport default _xreduceBy;","import _clone from \"./internal/_clone.js\";\nimport _curryN from \"./internal/_curryN.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _has from \"./internal/_has.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xreduceBy from \"./internal/_xreduceBy.js\";\n/**\n * Groups the elements of the list according to the result of calling\n * the String-returning function `keyFn` on each element and reduces the elements\n * of each group to a single value via the reducer function `valueFn`.\n *\n * This function is basically a more general [`groupBy`](#groupBy) function.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category List\n * @sig ((a, b) -> a) -> a -> (b -> String) -> [b] -> {String: a}\n * @param {Function} valueFn The function that reduces the elements of each group to a single\n * value. Receives two values, accumulator for a particular group and the current element.\n * @param {*} acc The (initial) accumulator value for each group.\n * @param {Function} keyFn The function that maps the list's element into a key.\n * @param {Array} list The array to group.\n * @return {Object} An object with the output of `keyFn` for keys, mapped to the output of\n * `valueFn` for elements which produced that key when passed to `keyFn`.\n * @see R.groupBy, R.reduce\n * @example\n *\n * const groupNames = (acc, {name}) => acc.concat(name)\n * const toGrade = ({score}) =>\n * score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A'\n *\n * var students = [\n * {name: 'Abby', score: 83},\n * {name: 'Bart', score: 62},\n * {name: 'Curt', score: 88},\n * {name: 'Dora', score: 92},\n * ]\n *\n * reduceBy(groupNames, [], toGrade, students)\n * //=> {\"A\": [\"Dora\"], \"B\": [\"Abby\", \"Curt\"], \"F\": [\"Bart\"]}\n */\n\nvar reduceBy =\n/*#__PURE__*/\n_curryN(4, [],\n/*#__PURE__*/\n_dispatchable([], _xreduceBy, function reduceBy(valueFn, valueAcc, keyFn, list) {\n return _reduce(function (acc, elt) {\n var key = keyFn(elt);\n acc[key] = valueFn(_has(key, acc) ? acc[key] : _clone(valueAcc, [], [], false), elt);\n return acc;\n }, {}, list);\n}));\n\nexport default reduceBy;","import reduceBy from \"./reduceBy.js\";\n/**\n * Counts the elements of a list according to how many match each value of a\n * key generated by the supplied function. Returns an object mapping the keys\n * produced by `fn` to the number of occurrences in the list. Note that all\n * keys are coerced to strings because of how JavaScript objects work.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig (a -> String) -> [a] -> {*}\n * @param {Function} fn The function used to map values to keys.\n * @param {Array} list The list to count elements from.\n * @return {Object} An object mapping keys to number of occurrences in the list.\n * @example\n *\n * const numbers = [1.0, 1.1, 1.2, 2.0, 3.0, 2.2];\n * R.countBy(Math.floor)(numbers); //=> {'1': 3, '2': 2, '3': 1}\n *\n * const letters = ['a', 'b', 'A', 'a', 'B', 'c'];\n * R.countBy(R.toLower)(letters); //=> {'a': 3, 'b': 2, 'c': 1}\n */\n\nvar countBy =\n/*#__PURE__*/\nreduceBy(function (acc, elem) {\n return acc + 1;\n}, 0);\nexport default countBy;","import add from \"./add.js\";\n/**\n * Decrements its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n - 1\n * @see R.inc\n * @example\n *\n * R.dec(42); //=> 41\n */\n\nvar dec =\n/*#__PURE__*/\nadd(-1);\nexport default dec;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the second argument if it is not `null`, `undefined` or `NaN`;\n * otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {a} default The default value.\n * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.\n * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value\n * @example\n *\n * const defaultTo42 = R.defaultTo(42);\n *\n * defaultTo42(null); //=> 42\n * defaultTo42(undefined); //=> 42\n * defaultTo42(false); //=> false\n * defaultTo42('Ramda'); //=> 'Ramda'\n * // parseInt('string') results in NaN\n * defaultTo42(parseInt('string')); //=> 42\n */\n\nvar defaultTo =\n/*#__PURE__*/\n_curry2(function defaultTo(d, v) {\n return v == null || v !== v ? d : v;\n});\n\nexport default defaultTo;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Makes a descending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) > fn(b), `1` if fn(b) > fn(a), otherwise `0`\n * @see R.ascend\n * @example\n *\n * const byAge = R.descend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByOldestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Peter', age: 78 }, { name: 'Emma', age: 70 }, { name: 'Mikhail', age: 62 }]\n */\n\nvar descend =\n/*#__PURE__*/\n_curry3(function descend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa > bb ? -1 : aa < bb ? 1 : 0;\n});\n\nexport default descend;","import _includes from \"./_includes.js\";\n\nvar _Set =\n/*#__PURE__*/\nfunction () {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n }; //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n\n\n _Set.prototype.has = function (item) {\n return hasOrAdd(item, false, this);\n }; //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n\n\n return _Set;\n}();\n\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n\n return false;\n }\n } // these types can all utilise the native Set\n\n\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n\n return false;\n }\n }\n\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n\n return false;\n }\n\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n }\n\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n\n return false;\n }\n\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n\n return false;\n }\n\n return true;\n }\n\n /* falls through */\n\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n } // scan through all previously applied items\n\n\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n} // A simple Set type that honours R.equals semantics\n\n\nexport default _Set;","import _curry2 from \"./internal/_curry2.js\";\nimport _Set from \"./internal/_Set.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Objects and Arrays are compared in terms of\n * value equality, not reference equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.differenceWith, R.symmetricDifference, R.symmetricDifferenceWith, R.without\n * @example\n *\n * R.difference([1,2,3,4], [7,6,5,4,3]); //=> [1,2]\n * R.difference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5]\n * R.difference([{a: 1}, {b: 2}], [{a: 1}, {c: 3}]) //=> [{b: 2}]\n */\n\nvar difference =\n/*#__PURE__*/\n_curry2(function difference(first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n var secondLen = second.length;\n var toFilterOut = new _Set();\n\n for (var i = 0; i < secondLen; i += 1) {\n toFilterOut.add(second[i]);\n }\n\n while (idx < firstLen) {\n if (toFilterOut.add(first[idx])) {\n out[out.length] = first[idx];\n }\n\n idx += 1;\n }\n\n return out;\n});\n\nexport default difference;","import _includesWith from \"./internal/_includesWith.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Duplication is determined according to the\n * value returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.difference, R.symmetricDifference, R.symmetricDifferenceWith\n * @example\n *\n * const cmp = (x, y) => x.a === y.a;\n * const l1 = [{a: 1}, {a: 2}, {a: 3}];\n * const l2 = [{a: 3}, {a: 4}];\n * R.differenceWith(cmp, l1, l2); //=> [{a: 1}, {a: 2}]\n */\n\nvar differenceWith =\n/*#__PURE__*/\n_curry3(function differenceWith(pred, first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n\n while (idx < firstLen) {\n if (!_includesWith(pred, first[idx], second) && !_includesWith(pred, first[idx], out)) {\n out.push(first[idx]);\n }\n\n idx += 1;\n }\n\n return out;\n});\n\nexport default differenceWith;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new object that does not contain a `prop` property.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Object\n * @sig String -> {k: v} -> {k: v}\n * @param {String} prop The name of the property to dissociate\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original but without the specified property\n * @see R.assoc, R.omit\n * @example\n *\n * R.dissoc('b', {a: 1, b: 2, c: 3}); //=> {a: 1, c: 3}\n */\n\nvar dissoc =\n/*#__PURE__*/\n_curry2(function dissoc(prop, obj) {\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n delete result[prop];\n return result;\n});\n\nexport default dissoc;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Removes the sub-list of `list` starting at index `start` and containing\n * `count` elements. _Note that this is not destructive_: it returns a copy of\n * the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} start The position to start removing elements\n * @param {Number} count The number of elements to remove\n * @param {Array} list The list to remove from\n * @return {Array} A new Array with `count` elements from `start` removed.\n * @see R.without\n * @example\n *\n * R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8]\n */\n\nvar remove =\n/*#__PURE__*/\n_curry3(function remove(start, count, list) {\n var result = Array.prototype.slice.call(list, 0);\n result.splice(start, count);\n return result;\n});\n\nexport default remove;","import _curry3 from \"./internal/_curry3.js\";\nimport adjust from \"./adjust.js\";\nimport always from \"./always.js\";\n/**\n * Returns a new copy of the array with the element at the provided index\n * replaced with the given value.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} idx The index to update.\n * @param {*} x The value to exist at the given index of the returned array.\n * @param {Array|Arguments} list The source array-like object to be updated.\n * @return {Array} A copy of `list` with the value at index `idx` replaced with `x`.\n * @see R.adjust\n * @example\n *\n * R.update(1, '_', ['a', 'b', 'c']); //=> ['a', '_', 'c']\n * R.update(-1, '_', ['a', 'b', 'c']); //=> ['a', 'b', '_']\n * @symb R.update(-1, a, [b, c]) = [b, a]\n * @symb R.update(0, a, [b, c]) = [a, c]\n * @symb R.update(1, a, [b, c]) = [b, a]\n */\n\nvar update =\n/*#__PURE__*/\n_curry3(function update(idx, x, list) {\n return adjust(idx, always(x), list);\n});\n\nexport default update;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport assoc from \"./assoc.js\";\nimport dissoc from \"./dissoc.js\";\nimport remove from \"./remove.js\";\nimport update from \"./update.js\";\n/**\n * Makes a shallow clone of an object, omitting the property at the given path.\n * Note that this copies and flattens prototype properties onto the new object\n * as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.11.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {Array} path The path to the value to omit\n * @param {Object} obj The object to clone\n * @return {Object} A new object without the property at path\n * @see R.assocPath\n * @example\n *\n * R.dissocPath(['a', 'b', 'c'], {a: {b: {c: 42}}}); //=> {a: {b: {}}}\n */\n\nvar dissocPath =\n/*#__PURE__*/\n_curry2(function dissocPath(path, obj) {\n switch (path.length) {\n case 0:\n return obj;\n\n case 1:\n return _isInteger(path[0]) && _isArray(obj) ? remove(path[0], 1, obj) : dissoc(path[0], obj);\n\n default:\n var head = path[0];\n var tail = Array.prototype.slice.call(path, 1);\n\n if (obj[head] == null) {\n return obj;\n } else if (_isInteger(head) && _isArray(obj)) {\n return update(head, dissocPath(tail, obj[head]), obj);\n } else {\n return assoc(head, dissocPath(tail, obj[head]), obj);\n }\n\n }\n});\n\nexport default dissocPath;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Divides two numbers. Equivalent to `a / b`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a / b`.\n * @see R.multiply\n * @example\n *\n * R.divide(71, 100); //=> 0.71\n *\n * const half = R.divide(R.__, 2);\n * half(42); //=> 21\n *\n * const reciprocal = R.divide(1);\n * reciprocal(4); //=> 0.25\n */\n\nvar divide =\n/*#__PURE__*/\n_curry2(function divide(a, b) {\n return a / b;\n});\n\nexport default divide;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDrop =\n/*#__PURE__*/\nfunction () {\n function XDrop(n, xf) {\n this.xf = xf;\n this.n = n;\n }\n\n XDrop.prototype['@@transducer/init'] = _xfBase.init;\n XDrop.prototype['@@transducer/result'] = _xfBase.result;\n\n XDrop.prototype['@@transducer/step'] = function (result, input) {\n if (this.n > 0) {\n this.n -= 1;\n return result;\n }\n\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDrop;\n}();\n\nvar _xdrop =\n/*#__PURE__*/\n_curry2(function _xdrop(n, xf) {\n return new XDrop(n, xf);\n});\n\nexport default _xdrop;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdrop from \"./internal/_xdrop.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns all but the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `drop` method).\n *\n * Dispatches to the `drop` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*} A copy of list without the first `n` elements\n * @see R.take, R.transduce, R.dropLast, R.dropWhile\n * @example\n *\n * R.drop(1, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.drop(2, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.drop(3, ['foo', 'bar', 'baz']); //=> []\n * R.drop(4, ['foo', 'bar', 'baz']); //=> []\n * R.drop(3, 'ramda'); //=> 'da'\n */\n\nvar drop =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['drop'], _xdrop, function drop(n, xs) {\n return slice(Math.max(0, n), Infinity, xs);\n}));\n\nexport default drop;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XTake =\n/*#__PURE__*/\nfunction () {\n function XTake(n, xf) {\n this.xf = xf;\n this.n = n;\n this.i = 0;\n }\n\n XTake.prototype['@@transducer/init'] = _xfBase.init;\n XTake.prototype['@@transducer/result'] = _xfBase.result;\n\n XTake.prototype['@@transducer/step'] = function (result, input) {\n this.i += 1;\n var ret = this.n === 0 ? result : this.xf['@@transducer/step'](result, input);\n return this.n >= 0 && this.i >= this.n ? _reduced(ret) : ret;\n };\n\n return XTake;\n}();\n\nvar _xtake =\n/*#__PURE__*/\n_curry2(function _xtake(n, xf) {\n return new XTake(n, xf);\n});\n\nexport default _xtake;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xtake from \"./internal/_xtake.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `take` method).\n *\n * Dispatches to the `take` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*}\n * @see R.drop\n * @example\n *\n * R.take(1, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.take(2, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.take(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(3, 'ramda'); //=> 'ram'\n *\n * const personnel = [\n * 'Dave Brubeck',\n * 'Paul Desmond',\n * 'Eugene Wright',\n * 'Joe Morello',\n * 'Gerry Mulligan',\n * 'Bob Bates',\n * 'Joe Dodge',\n * 'Ron Crotty'\n * ];\n *\n * const takeFive = R.take(5);\n * takeFive(personnel);\n * //=> ['Dave Brubeck', 'Paul Desmond', 'Eugene Wright', 'Joe Morello', 'Gerry Mulligan']\n * @symb R.take(-1, [a, b]) = [a, b]\n * @symb R.take(0, [a, b]) = []\n * @symb R.take(1, [a, b]) = [a]\n * @symb R.take(2, [a, b]) = [a, b]\n */\n\nvar take =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['take'], _xtake, function take(n, xs) {\n return slice(0, n < 0 ? Infinity : n, xs);\n}));\n\nexport default take;","import take from \"../take.js\";\nexport default function dropLast(n, xs) {\n return take(n < xs.length ? xs.length - n : 0, xs);\n}","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropLast =\n/*#__PURE__*/\nfunction () {\n function XDropLast(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n\n XDropLast.prototype['@@transducer/init'] = _xfBase.init;\n\n XDropLast.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XDropLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.full) {\n result = this.xf['@@transducer/step'](result, this.acc[this.pos]);\n }\n\n this.store(input);\n return result;\n };\n\n XDropLast.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n return XDropLast;\n}();\n\nvar _xdropLast =\n/*#__PURE__*/\n_curry2(function _xdropLast(n, xf) {\n return new XDropLast(n, xf);\n});\n\nexport default _xdropLast;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _dropLast from \"./internal/_dropLast.js\";\nimport _xdropLast from \"./internal/_xdropLast.js\";\n/**\n * Returns a list containing all but the last `n` elements of the given `list`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements of `list` to skip.\n * @param {Array} list The list of elements to consider.\n * @return {Array} A copy of the list with only the first `list.length - n` elements\n * @see R.takeLast, R.drop, R.dropWhile, R.dropLastWhile\n * @example\n *\n * R.dropLast(1, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.dropLast(2, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.dropLast(3, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(4, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(3, 'ramda'); //=> 'ra'\n */\n\nvar dropLast =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xdropLast, _dropLast));\n\nexport default dropLast;","import slice from \"../slice.js\";\nexport default function dropLastWhile(pred, xs) {\n var idx = xs.length - 1;\n\n while (idx >= 0 && pred(xs[idx])) {\n idx -= 1;\n }\n\n return slice(0, idx + 1, xs);\n}","import _curry2 from \"./_curry2.js\";\nimport _reduce from \"./_reduce.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropLastWhile =\n/*#__PURE__*/\nfunction () {\n function XDropLastWhile(fn, xf) {\n this.f = fn;\n this.retained = [];\n this.xf = xf;\n }\n\n XDropLastWhile.prototype['@@transducer/init'] = _xfBase.init;\n\n XDropLastWhile.prototype['@@transducer/result'] = function (result) {\n this.retained = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XDropLastWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.retain(result, input) : this.flush(result, input);\n };\n\n XDropLastWhile.prototype.flush = function (result, input) {\n result = _reduce(this.xf['@@transducer/step'], result, this.retained);\n this.retained = [];\n return this.xf['@@transducer/step'](result, input);\n };\n\n XDropLastWhile.prototype.retain = function (result, input) {\n this.retained.push(input);\n return result;\n };\n\n return XDropLastWhile;\n}();\n\nvar _xdropLastWhile =\n/*#__PURE__*/\n_curry2(function _xdropLastWhile(fn, xf) {\n return new XDropLastWhile(fn, xf);\n});\n\nexport default _xdropLastWhile;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _dropLastWhile from \"./internal/_dropLastWhile.js\";\nimport _xdropLastWhile from \"./internal/_xdropLastWhile.js\";\n/**\n * Returns a new list excluding all the tailing elements of a given list which\n * satisfy the supplied predicate function. It passes each value from the right\n * to the supplied predicate function, skipping elements until the predicate\n * function returns a `falsy` value. The predicate function is applied to one argument:\n * *(value)*.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} predicate The function to be called on each element\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array without any trailing elements that return `falsy` values from the `predicate`.\n * @see R.takeLastWhile, R.addIndex, R.drop, R.dropWhile\n * @example\n *\n * const lteThree = x => x <= 3;\n *\n * R.dropLastWhile(lteThree, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3, 4]\n *\n * R.dropLastWhile(x => x !== 'd' , 'Ramda'); //=> 'Ramd'\n */\n\nvar dropLastWhile =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xdropLastWhile, _dropLastWhile));\n\nexport default dropLastWhile;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropRepeatsWith =\n/*#__PURE__*/\nfunction () {\n function XDropRepeatsWith(pred, xf) {\n this.xf = xf;\n this.pred = pred;\n this.lastValue = undefined;\n this.seenFirstValue = false;\n }\n\n XDropRepeatsWith.prototype['@@transducer/init'] = _xfBase.init;\n XDropRepeatsWith.prototype['@@transducer/result'] = _xfBase.result;\n\n XDropRepeatsWith.prototype['@@transducer/step'] = function (result, input) {\n var sameAsLast = false;\n\n if (!this.seenFirstValue) {\n this.seenFirstValue = true;\n } else if (this.pred(this.lastValue, input)) {\n sameAsLast = true;\n }\n\n this.lastValue = input;\n return sameAsLast ? result : this.xf['@@transducer/step'](result, input);\n };\n\n return XDropRepeatsWith;\n}();\n\nvar _xdropRepeatsWith =\n/*#__PURE__*/\n_curry2(function _xdropRepeatsWith(pred, xf) {\n return new XDropRepeatsWith(pred, xf);\n});\n\nexport default _xdropRepeatsWith;","import nth from \"./nth.js\";\n/**\n * Returns the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.init, R.head, R.tail\n * @example\n *\n * R.last(['fi', 'fo', 'fum']); //=> 'fum'\n * R.last([]); //=> undefined\n *\n * R.last('abc'); //=> 'c'\n * R.last(''); //=> ''\n */\n\nvar last =\n/*#__PURE__*/\nnth(-1);\nexport default last;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdropRepeatsWith from \"./internal/_xdropRepeatsWith.js\";\nimport last from \"./last.js\";\n/**\n * Returns a new list without any consecutively repeating elements. Equality is\n * determined by applying the supplied predicate to each pair of consecutive elements. The\n * first element in a series of equal elements will be preserved.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * const l = [1, -1, 1, 3, 4, -4, -4, -5, 5, 3, 3];\n * R.dropRepeatsWith(R.eqBy(Math.abs), l); //=> [1, 3, 4, -5, 3]\n */\n\nvar dropRepeatsWith =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xdropRepeatsWith, function dropRepeatsWith(pred, list) {\n var result = [];\n var idx = 1;\n var len = list.length;\n\n if (len !== 0) {\n result[0] = list[0];\n\n while (idx < len) {\n if (!pred(last(result), list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n }\n\n return result;\n}));\n\nexport default dropRepeatsWith;","import _curry1 from \"./internal/_curry1.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdropRepeatsWith from \"./internal/_xdropRepeatsWith.js\";\nimport dropRepeatsWith from \"./dropRepeatsWith.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns a new list without any consecutively repeating elements.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * R.dropRepeats([1, 1, 1, 2, 3, 4, 4, 2, 2]); //=> [1, 2, 3, 4, 2]\n */\n\nvar dropRepeats =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_dispatchable([],\n/*#__PURE__*/\n_xdropRepeatsWith(equals),\n/*#__PURE__*/\ndropRepeatsWith(equals)));\n\nexport default dropRepeats;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropWhile =\n/*#__PURE__*/\nfunction () {\n function XDropWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XDropWhile.prototype['@@transducer/init'] = _xfBase.init;\n XDropWhile.prototype['@@transducer/result'] = _xfBase.result;\n\n XDropWhile.prototype['@@transducer/step'] = function (result, input) {\n if (this.f) {\n if (this.f(input)) {\n return result;\n }\n\n this.f = null;\n }\n\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDropWhile;\n}();\n\nvar _xdropWhile =\n/*#__PURE__*/\n_curry2(function _xdropWhile(f, xf) {\n return new XDropWhile(f, xf);\n});\n\nexport default _xdropWhile;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdropWhile from \"./internal/_xdropWhile.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns a new list excluding the leading elements of a given list which\n * satisfy the supplied predicate function. It passes each value to the supplied\n * predicate function, skipping elements while the predicate function returns\n * `true`. The predicate function is applied to one argument: *(value)*.\n *\n * Dispatches to the `dropWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.takeWhile, R.transduce, R.addIndex\n * @example\n *\n * const lteTwo = x => x <= 2;\n *\n * R.dropWhile(lteTwo, [1, 2, 3, 4, 3, 2, 1]); //=> [3, 4, 3, 2, 1]\n *\n * R.dropWhile(x => x !== 'd' , 'Ramda'); //=> 'da'\n */\n\nvar dropWhile =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['dropWhile'], _xdropWhile, function dropWhile(pred, xs) {\n var idx = 0;\n var len = xs.length;\n\n while (idx < len && pred(xs[idx])) {\n idx += 1;\n }\n\n return slice(idx, Infinity, xs);\n}));\n\nexport default dropWhile;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if one or both of its arguments are `true`. Returns `false`\n * if both arguments are `false`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if truthy, otherwise the second argument.\n * @see R.either, R.xor\n * @example\n *\n * R.or(true, true); //=> true\n * R.or(true, false); //=> true\n * R.or(false, true); //=> true\n * R.or(false, false); //=> false\n */\n\nvar or =\n/*#__PURE__*/\n_curry2(function or(a, b) {\n return a || b;\n});\n\nexport default or;","import _curry2 from \"./internal/_curry2.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport lift from \"./lift.js\";\nimport or from \"./or.js\";\n/**\n * A function wrapping calls to the two functions in an `||` operation,\n * returning the result of the first function if it is truth-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * truth-y value.\n *\n * In addition to functions, `R.either` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f a predicate\n * @param {Function} g another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `||`s their outputs together.\n * @see R.or\n * @example\n *\n * const gt10 = x => x > 10;\n * const even = x => x % 2 === 0;\n * const f = R.either(gt10, even);\n * f(101); //=> true\n * f(8); //=> true\n *\n * R.either(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(55)\n * R.either([false, false, 'a'], [11]) // => [11, 11, \"a\"]\n */\n\nvar either =\n/*#__PURE__*/\n_curry2(function either(f, g) {\n return _isFunction(f) ? function _either() {\n return f.apply(this, arguments) || g.apply(this, arguments);\n } : lift(or)(f, g);\n});\n\nexport default either;","import _curry1 from \"./internal/_curry1.js\";\nimport _isArguments from \"./internal/_isArguments.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns the empty value of its argument's type. Ramda defines the empty\n * value of Array (`[]`), Object (`{}`), String (`''`), and Arguments. Other\n * types are supported if they define `.empty`,\n * `.prototype.empty` or implement the\n * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).\n *\n * Dispatches to the `empty` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> a\n * @param {*} x\n * @return {*}\n * @example\n *\n * R.empty(Just(42)); //=> Nothing()\n * R.empty([1, 2, 3]); //=> []\n * R.empty('unicorns'); //=> ''\n * R.empty({x: 1, y: 2}); //=> {}\n */\n\nvar empty =\n/*#__PURE__*/\n_curry1(function empty(x) {\n return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : _isArray(x) ? [] : _isString(x) ? '' : _isObject(x) ? {} : _isArguments(x) ? function () {\n return arguments;\n }() : void 0 // else\n ;\n});\n\nexport default empty;","import _curry2 from \"./internal/_curry2.js\";\nimport drop from \"./drop.js\";\n/**\n * Returns a new list containing the last `n` elements of the given list.\n * If `n > list.length`, returns a list of `list.length` elements.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements to return.\n * @param {Array} xs The collection to consider.\n * @return {Array}\n * @see R.dropLast\n * @example\n *\n * R.takeLast(1, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.takeLast(2, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.takeLast(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(3, 'ramda'); //=> 'mda'\n */\n\nvar takeLast =\n/*#__PURE__*/\n_curry2(function takeLast(n, xs) {\n return drop(n >= 0 ? xs.length - n : 0, xs);\n});\n\nexport default takeLast;","import _curry2 from \"./internal/_curry2.js\";\nimport equals from \"./equals.js\";\nimport takeLast from \"./takeLast.js\";\n/**\n * Checks if a list ends with the provided sublist.\n *\n * Similarly, checks if a string ends with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} suffix\n * @param {*} list\n * @return {Boolean}\n * @see R.startsWith\n * @example\n *\n * R.endsWith('c', 'abc') //=> true\n * R.endsWith('b', 'abc') //=> false\n * R.endsWith(['c'], ['a', 'b', 'c']) //=> true\n * R.endsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\nvar endsWith =\n/*#__PURE__*/\n_curry2(function (suffix, list) {\n return equals(takeLast(suffix.length, list), suffix);\n});\n\nexport default endsWith;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\n/**\n * Takes a function and two values in its domain and returns `true` if the\n * values map to the same value in the codomain; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Relation\n * @sig (a -> b) -> a -> a -> Boolean\n * @param {Function} f\n * @param {*} x\n * @param {*} y\n * @return {Boolean}\n * @example\n *\n * R.eqBy(Math.abs, 5, -5); //=> true\n */\n\nvar eqBy =\n/*#__PURE__*/\n_curry3(function eqBy(f, x, y) {\n return equals(f(x), f(y));\n});\n\nexport default eqBy;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\n/**\n * Reports whether two objects have the same value, in [`R.equals`](#equals)\n * terms, for the specified property. Useful as a curried predicate.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig k -> {k: v} -> {k: v} -> Boolean\n * @param {String} prop The name of the property to compare\n * @param {Object} obj1\n * @param {Object} obj2\n * @return {Boolean}\n *\n * @example\n *\n * const o1 = { a: 1, b: 2, c: 3, d: 4 };\n * const o2 = { a: 10, b: 20, c: 3, d: 40 };\n * R.eqProps('a', o1, o2); //=> false\n * R.eqProps('c', o1, o2); //=> true\n */\n\nvar eqProps =\n/*#__PURE__*/\n_curry3(function eqProps(prop, obj1, obj2) {\n return equals(obj1[prop], obj2[prop]);\n});\n\nexport default eqProps;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new object by recursively evolving a shallow copy of `object`,\n * according to the `transformation` functions. All non-primitive properties\n * are copied by reference.\n *\n * A `transformation` function will not be invoked if its corresponding key\n * does not exist in the evolved object.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {k: (v -> v)} -> {k: v} -> {k: v}\n * @param {Object} transformations The object specifying transformation functions to apply\n * to the object.\n * @param {Object} object The object to be transformed.\n * @return {Object} The transformed object.\n * @example\n *\n * const tomato = {firstName: ' Tomato ', data: {elapsed: 100, remaining: 1400}, id:123};\n * const transformations = {\n * firstName: R.trim,\n * lastName: R.trim, // Will not get invoked.\n * data: {elapsed: R.add(1), remaining: R.add(-1)}\n * };\n * R.evolve(transformations, tomato); //=> {firstName: 'Tomato', data: {elapsed: 101, remaining: 1399}, id:123}\n */\n\nvar evolve =\n/*#__PURE__*/\n_curry2(function evolve(transformations, object) {\n var result = object instanceof Array ? [] : {};\n var transformation, key, type;\n\n for (key in object) {\n transformation = transformations[key];\n type = typeof transformation;\n result[key] = type === 'function' ? transformation(object[key]) : transformation && type === 'object' ? evolve(transformation, object[key]) : object[key];\n }\n\n return result;\n});\n\nexport default evolve;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFind =\n/*#__PURE__*/\nfunction () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n\n XFind.prototype['@@transducer/init'] = _xfBase.init;\n\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, input));\n }\n\n return result;\n };\n\n return XFind;\n}();\n\nvar _xfind =\n/*#__PURE__*/\n_curry2(function _xfind(f, xf) {\n return new XFind(f, xf);\n});\n\nexport default _xfind;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfind from \"./internal/_xfind.js\";\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar find =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['find'], _xfind, function find(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx += 1;\n }\n}));\n\nexport default find;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFindIndex =\n/*#__PURE__*/\nfunction () {\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n\n XFindIndex.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindIndex.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFindIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, this.idx));\n }\n\n return result;\n };\n\n return XFindIndex;\n}();\n\nvar _xfindIndex =\n/*#__PURE__*/\n_curry2(function _xfindIndex(f, xf) {\n return new XFindIndex(f, xf);\n});\n\nexport default _xfindIndex;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindIndex from \"./internal/_xfindIndex.js\";\n/**\n * Returns the index of the first element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.findIndex(R.propEq('a', 2))(xs); //=> 1\n * R.findIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findIndex =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xfindIndex, function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}));\n\nexport default findIndex;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFindLast =\n/*#__PURE__*/\nfunction () {\n function XFindLast(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFindLast.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindLast.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));\n };\n\n XFindLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.last = input;\n }\n\n return result;\n };\n\n return XFindLast;\n}();\n\nvar _xfindLast =\n/*#__PURE__*/\n_curry2(function _xfindLast(f, xf) {\n return new XFindLast(f, xf);\n});\n\nexport default _xfindLast;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindLast from \"./internal/_xfindLast.js\";\n/**\n * Returns the last element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLast(R.propEq('a', 1))(xs); //=> {a: 1, b: 1}\n * R.findLast(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar findLast =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xfindLast, function findLast(fn, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx -= 1;\n }\n}));\n\nexport default findLast;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFindLastIndex =\n/*#__PURE__*/\nfunction () {\n function XFindLastIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.lastIdx = -1;\n }\n\n XFindLastIndex.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindLastIndex.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.lastIdx));\n };\n\n XFindLastIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.lastIdx = this.idx;\n }\n\n return result;\n };\n\n return XFindLastIndex;\n}();\n\nvar _xfindLastIndex =\n/*#__PURE__*/\n_curry2(function _xfindLastIndex(f, xf) {\n return new XFindLastIndex(f, xf);\n});\n\nexport default _xfindLastIndex;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindLastIndex from \"./internal/_xfindLastIndex.js\";\n/**\n * Returns the index of the last element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLastIndex(R.propEq('a', 1))(xs); //=> 1\n * R.findLastIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findLastIndex =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xfindLastIndex, function findLastIndex(fn, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx -= 1;\n }\n\n return -1;\n}));\n\nexport default findLastIndex;","import _curry1 from \"./internal/_curry1.js\";\nimport _makeFlat from \"./internal/_makeFlat.js\";\n/**\n * Returns a new list by pulling every item out of it (and all its sub-arrays)\n * and putting them in a new array, depth-first.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b]\n * @param {Array} list The array to consider.\n * @return {Array} The flattened list.\n * @see R.unnest\n * @example\n *\n * R.flatten([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]);\n * //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n */\n\nvar flatten =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_makeFlat(true));\n\nexport default flatten;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Returns a new function much like the supplied one, except that the first two\n * arguments' order is reversed.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b, c, ...) -> z) -> (b -> a -> c -> ... -> z)\n * @param {Function} fn The function to invoke with its first two parameters reversed.\n * @return {*} The result of invoking `fn` with its first two parameters' order reversed.\n * @example\n *\n * const mergeThree = (a, b, c) => [].concat(a, b, c);\n *\n * mergeThree(1, 2, 3); //=> [1, 2, 3]\n *\n * R.flip(mergeThree)(1, 2, 3); //=> [2, 1, 3]\n * @symb R.flip(f)(a, b, c) = f(b, a, c)\n */\n\nvar flip =\n/*#__PURE__*/\n_curry1(function flip(fn) {\n return curryN(fn.length, function (a, b) {\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = b;\n args[1] = a;\n return fn.apply(this, args);\n });\n});\n\nexport default flip;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Iterate over an input `list`, calling a provided function `fn` for each\n * element in the list.\n *\n * `fn` receives one argument: *(value)*.\n *\n * Note: `R.forEach` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.forEach` method. For more\n * details on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Description\n *\n * Also note that, unlike `Array.prototype.forEach`, Ramda's `forEach` returns\n * the original array. In some libraries this function is named `each`.\n *\n * Dispatches to the `forEach` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> *) -> [a] -> [a]\n * @param {Function} fn The function to invoke. Receives one argument, `value`.\n * @param {Array} list The list to iterate over.\n * @return {Array} The original list.\n * @see R.addIndex\n * @example\n *\n * const printXPlusFive = x => console.log(x + 5);\n * R.forEach(printXPlusFive, [1, 2, 3]); //=> [1, 2, 3]\n * // logs 6\n * // logs 7\n * // logs 8\n * @symb R.forEach(f, [a, b, c]) = [a, b, c]\n */\n\nvar forEach =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_checkForMethod('forEach', function forEach(fn, list) {\n var len = list.length;\n var idx = 0;\n\n while (idx < len) {\n fn(list[idx]);\n idx += 1;\n }\n\n return list;\n}));\n\nexport default forEach;","import _curry2 from \"./internal/_curry2.js\";\nimport keys from \"./keys.js\";\n/**\n * Iterate over an input `object`, calling a provided function `fn` for each\n * key and value in the object.\n *\n * `fn` receives three argument: *(value, key, obj)*.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Object\n * @sig ((a, String, StrMap a) -> Any) -> StrMap a -> StrMap a\n * @param {Function} fn The function to invoke. Receives three argument, `value`, `key`, `obj`.\n * @param {Object} obj The object to iterate over.\n * @return {Object} The original object.\n * @example\n *\n * const printKeyConcatValue = (value, key) => console.log(key + ':' + value);\n * R.forEachObjIndexed(printKeyConcatValue, {x: 1, y: 2}); //=> {x: 1, y: 2}\n * // logs x:1\n * // logs y:2\n * @symb R.forEachObjIndexed(f, {x: a, y: b}) = {x: a, y: b}\n */\n\nvar forEachObjIndexed =\n/*#__PURE__*/\n_curry2(function forEachObjIndexed(fn, obj) {\n var keyList = keys(obj);\n var idx = 0;\n\n while (idx < keyList.length) {\n var key = keyList[idx];\n fn(obj[key], key, obj);\n idx += 1;\n }\n\n return obj;\n});\n\nexport default forEachObjIndexed;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Creates a new object from a list key-value pairs. If a key appears in\n * multiple pairs, the rightmost pair is included in the object.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [[k,v]] -> {k: v}\n * @param {Array} pairs An array of two-element arrays that will be the keys and values of the output object.\n * @return {Object} The object made by pairing up `keys` and `values`.\n * @see R.toPairs, R.pair\n * @example\n *\n * R.fromPairs([['a', 1], ['b', 2], ['c', 3]]); //=> {a: 1, b: 2, c: 3}\n */\n\nvar fromPairs =\n/*#__PURE__*/\n_curry1(function fromPairs(pairs) {\n var result = {};\n var idx = 0;\n\n while (idx < pairs.length) {\n result[pairs[idx][0]] = pairs[idx][1];\n idx += 1;\n }\n\n return result;\n});\n\nexport default fromPairs;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport reduceBy from \"./reduceBy.js\";\n/**\n * Splits a list into sub-lists stored in an object, based on the result of\n * calling a String-returning function on each element, and grouping the\n * results according to values returned.\n *\n * Dispatches to the `groupBy` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> String) -> [a] -> {String: [a]}\n * @param {Function} fn Function :: a -> String\n * @param {Array} list The array to group\n * @return {Object} An object with the output of `fn` for keys, mapped to arrays of elements\n * that produced that key when passed to `fn`.\n * @see R.reduceBy, R.transduce\n * @example\n *\n * const byGrade = R.groupBy(function(student) {\n * const score = student.score;\n * return score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A';\n * });\n * const students = [{name: 'Abby', score: 84},\n * {name: 'Eddy', score: 58},\n * // ...\n * {name: 'Jack', score: 69}];\n * byGrade(students);\n * // {\n * // 'A': [{name: 'Dianne', score: 99}],\n * // 'B': [{name: 'Abby', score: 84}]\n * // // ...,\n * // 'F': [{name: 'Eddy', score: 58}]\n * // }\n */\n\nvar groupBy =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_checkForMethod('groupBy',\n/*#__PURE__*/\nreduceBy(function (acc, item) {\n if (acc == null) {\n acc = [];\n }\n\n acc.push(item);\n return acc;\n}, null)));\n\nexport default groupBy;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes a list and returns a list of lists where each sublist's elements are\n * all satisfied pairwise comparison according to the provided function.\n * Only adjacent elements are passed to the comparison function.\n *\n * @func\n * @memberOf R\n * @since v0.21.0\n * @category List\n * @sig ((a, a) → Boolean) → [a] → [[a]]\n * @param {Function} fn Function for determining whether two given (adjacent)\n * elements should be in the same group\n * @param {Array} list The array to group. Also accepts a string, which will be\n * treated as a list of characters.\n * @return {List} A list that contains sublists of elements,\n * whose concatenations are equal to the original list.\n * @example\n *\n * R.groupWith(R.equals, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a + 1 === b, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0, 1], [1, 2, 3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a % 2 === b % 2, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3, 5], [8], [13, 21]]\n *\n * R.groupWith(R.eqBy(isVowel), 'aestiou')\n * //=> ['ae', 'st', 'iou']\n */\n\nvar groupWith =\n/*#__PURE__*/\n_curry2(function (fn, list) {\n var res = [];\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n var nextidx = idx + 1;\n\n while (nextidx < len && fn(list[nextidx - 1], list[nextidx])) {\n nextidx += 1;\n }\n\n res.push(list.slice(idx, nextidx));\n idx = nextidx;\n }\n\n return res;\n});\n\nexport default groupWith;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the first argument is greater than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.lt\n * @example\n *\n * R.gt(2, 1); //=> true\n * R.gt(2, 2); //=> false\n * R.gt(2, 3); //=> false\n * R.gt('a', 'z'); //=> false\n * R.gt('z', 'a'); //=> true\n */\n\nvar gt =\n/*#__PURE__*/\n_curry2(function gt(a, b) {\n return a > b;\n});\n\nexport default gt;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the first argument is greater than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.lte\n * @example\n *\n * R.gte(2, 1); //=> true\n * R.gte(2, 2); //=> true\n * R.gte(2, 3); //=> false\n * R.gte('a', 'z'); //=> false\n * R.gte('z', 'a'); //=> true\n */\n\nvar gte =\n/*#__PURE__*/\n_curry2(function gte(a, b) {\n return a >= b;\n});\n\nexport default gte;","import _curry2 from \"./internal/_curry2.js\";\nimport _has from \"./internal/_has.js\";\nimport isNil from \"./isNil.js\";\n/**\n * Returns whether or not a path exists in an object. Only the object's\n * own properties are checked.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> Boolean\n * @param {Array} path The path to use.\n * @param {Object} obj The object to check the path in.\n * @return {Boolean} Whether the path exists.\n * @see R.has\n * @example\n *\n * R.hasPath(['a', 'b'], {a: {b: 2}}); // => true\n * R.hasPath(['a', 'b'], {a: {b: undefined}}); // => true\n * R.hasPath(['a', 'b'], {a: {c: 2}}); // => false\n * R.hasPath(['a', 'b'], {}); // => false\n */\n\nvar hasPath =\n/*#__PURE__*/\n_curry2(function hasPath(_path, obj) {\n if (_path.length === 0 || isNil(obj)) {\n return false;\n }\n\n var val = obj;\n var idx = 0;\n\n while (idx < _path.length) {\n if (!isNil(val) && _has(_path[idx], val)) {\n val = val[_path[idx]];\n idx += 1;\n } else {\n return false;\n }\n }\n\n return true;\n});\n\nexport default hasPath;","import _curry2 from \"./internal/_curry2.js\";\nimport hasPath from \"./hasPath.js\";\n/**\n * Returns whether or not an object has an own property with the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * const hasName = R.has('name');\n * hasName({name: 'alice'}); //=> true\n * hasName({name: 'bob'}); //=> true\n * hasName({}); //=> false\n *\n * const point = {x: 0, y: 0};\n * const pointHas = R.has(R.__, point);\n * pointHas('x'); //=> true\n * pointHas('y'); //=> true\n * pointHas('z'); //=> false\n */\n\nvar has =\n/*#__PURE__*/\n_curry2(function has(prop, obj) {\n return hasPath([prop], obj);\n});\n\nexport default has;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns whether or not an object or its prototype chain has a property with\n * the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * function Rectangle(width, height) {\n * this.width = width;\n * this.height = height;\n * }\n * Rectangle.prototype.area = function() {\n * return this.width * this.height;\n * };\n *\n * const square = new Rectangle(2, 2);\n * R.hasIn('width', square); //=> true\n * R.hasIn('area', square); //=> true\n */\n\nvar hasIn =\n/*#__PURE__*/\n_curry2(function hasIn(prop, obj) {\n return prop in obj;\n});\n\nexport default hasIn;","import _objectIs from \"./internal/_objectIs.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns true if its arguments are identical, false otherwise. Values are\n * identical if they reference the same memory. `NaN` is identical to `NaN`;\n * `0` and `-0` are not identical.\n *\n * Note this is merely a curried version of ES6 `Object.is`.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * const o = {};\n * R.identical(o, o); //=> true\n * R.identical(1, 1); //=> true\n * R.identical(1, '1'); //=> false\n * R.identical([], []); //=> false\n * R.identical(0, -0); //=> false\n * R.identical(NaN, NaN); //=> true\n */\n\nvar identical =\n/*#__PURE__*/\n_curry2(_objectIs);\n\nexport default identical;","import _curry3 from \"./internal/_curry3.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Creates a function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> *) -> (*... -> *) -> (*... -> *)\n * @param {Function} condition A predicate function\n * @param {Function} onTrue A function to invoke when the `condition` evaluates to a truthy value.\n * @param {Function} onFalse A function to invoke when the `condition` evaluates to a falsy value.\n * @return {Function} A new function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n * @see R.unless, R.when, R.cond\n * @example\n *\n * const incCount = R.ifElse(\n * R.has('count'),\n * R.over(R.lensProp('count'), R.inc),\n * R.assoc('count', 1)\n * );\n * incCount({}); //=> { count: 1 }\n * incCount({ count: 1 }); //=> { count: 2 }\n */\n\nvar ifElse =\n/*#__PURE__*/\n_curry3(function ifElse(condition, onTrue, onFalse) {\n return curryN(Math.max(condition.length, onTrue.length, onFalse.length), function _ifElse() {\n return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments);\n });\n});\n\nexport default ifElse;","import add from \"./add.js\";\n/**\n * Increments its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n + 1\n * @see R.dec\n * @example\n *\n * R.inc(42); //=> 43\n */\n\nvar inc =\n/*#__PURE__*/\nadd(1);\nexport default inc;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.any\n * @example\n *\n * R.includes(3, [1, 2, 3]); //=> true\n * R.includes(4, [1, 2, 3]); //=> false\n * R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.includes([42], [[42]]); //=> true\n * R.includes('ba', 'banana'); //=>true\n */\n\nvar includes =\n/*#__PURE__*/\n_curry2(_includes);\n\nexport default includes;","import reduceBy from \"./reduceBy.js\";\n/**\n * Given a function that generates a key, turns a list of objects into an\n * object indexing the objects by the given key. Note that if multiple\n * objects generate the same value for the indexing key only the last value\n * will be included in the generated object.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> String) -> [{k: v}] -> {k: {k: v}}\n * @param {Function} fn Function :: a -> String\n * @param {Array} array The array of objects to index\n * @return {Object} An object indexing each array element by the given property.\n * @example\n *\n * const list = [{id: 'xyz', title: 'A'}, {id: 'abc', title: 'B'}];\n * R.indexBy(R.prop('id'), list);\n * //=> {abc: {id: 'abc', title: 'B'}, xyz: {id: 'xyz', title: 'A'}}\n */\n\nvar indexBy =\n/*#__PURE__*/\nreduceBy(function (acc, elem) {\n return elem;\n}, null);\nexport default indexBy;","import _curry2 from \"./internal/_curry2.js\";\nimport _indexOf from \"./internal/_indexOf.js\";\nimport _isArray from \"./internal/_isArray.js\";\n/**\n * Returns the position of the first occurrence of an item in an array, or -1\n * if the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.lastIndexOf\n * @example\n *\n * R.indexOf(3, [1,2,3,4]); //=> 2\n * R.indexOf(10, [1,2,3,4]); //=> -1\n */\n\nvar indexOf =\n/*#__PURE__*/\n_curry2(function indexOf(target, xs) {\n return typeof xs.indexOf === 'function' && !_isArray(xs) ? xs.indexOf(target) : _indexOf(xs, target, 0);\n});\n\nexport default indexOf;","import slice from \"./slice.js\";\n/**\n * Returns all but the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.last, R.head, R.tail\n * @example\n *\n * R.init([1, 2, 3]); //=> [1, 2]\n * R.init([1, 2]); //=> [1]\n * R.init([1]); //=> []\n * R.init([]); //=> []\n *\n * R.init('abc'); //=> 'ab'\n * R.init('ab'); //=> 'a'\n * R.init('a'); //=> ''\n * R.init(''); //=> ''\n */\n\nvar init =\n/*#__PURE__*/\nslice(0, -1);\nexport default init;","import _includesWith from \"./internal/_includesWith.js\";\nimport _curry3 from \"./internal/_curry3.js\";\nimport _filter from \"./internal/_filter.js\";\n/**\n * Takes a predicate `pred`, a list `xs`, and a list `ys`, and returns a list\n * `xs'` comprising each of the elements of `xs` which is equal to one or more\n * elements of `ys` according to `pred`.\n *\n * `pred` must be a binary function expecting an element from each list.\n *\n * `xs`, `ys`, and `xs'` are treated as sets, semantically, so ordering should\n * not be significant, but since `xs'` is ordered the implementation guarantees\n * that its values are in the same order as they appear in `xs`. Duplicates are\n * not removed, so `xs'` may contain duplicates if `xs` contains duplicates.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Relation\n * @sig ((a, b) -> Boolean) -> [a] -> [b] -> [a]\n * @param {Function} pred\n * @param {Array} xs\n * @param {Array} ys\n * @return {Array}\n * @see R.intersection\n * @example\n *\n * R.innerJoin(\n * (record, id) => record.id === id,\n * [{id: 824, name: 'Richie Furay'},\n * {id: 956, name: 'Dewey Martin'},\n * {id: 313, name: 'Bruce Palmer'},\n * {id: 456, name: 'Stephen Stills'},\n * {id: 177, name: 'Neil Young'}],\n * [177, 456, 999]\n * );\n * //=> [{id: 456, name: 'Stephen Stills'}, {id: 177, name: 'Neil Young'}]\n */\n\nvar innerJoin =\n/*#__PURE__*/\n_curry3(function innerJoin(pred, xs, ys) {\n return _filter(function (x) {\n return _includesWith(pred, x, ys);\n }, xs);\n});\n\nexport default innerJoin;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Inserts the supplied element into the list, at the specified `index`. _Note that\n\n * this is not destructive_: it returns a copy of the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} index The position to insert the element\n * @param {*} elt The element to insert into the Array\n * @param {Array} list The list to insert into\n * @return {Array} A new Array with `elt` inserted at `index`.\n * @example\n *\n * R.insert(2, 'x', [1,2,3,4]); //=> [1,2,'x',3,4]\n */\n\nvar insert =\n/*#__PURE__*/\n_curry3(function insert(idx, elt, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n var result = Array.prototype.slice.call(list, 0);\n result.splice(idx, 0, elt);\n return result;\n});\n\nexport default insert;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Inserts the sub-list into the list, at the specified `index`. _Note that this is not\n * destructive_: it returns a copy of the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig Number -> [a] -> [a] -> [a]\n * @param {Number} index The position to insert the sub-list\n * @param {Array} elts The sub-list to insert into the Array\n * @param {Array} list The list to insert the sub-list into\n * @return {Array} A new Array with `elts` inserted starting at `index`.\n * @example\n *\n * R.insertAll(2, ['x','y','z'], [1,2,3,4]); //=> [1,2,'x','y','z',3,4]\n */\n\nvar insertAll =\n/*#__PURE__*/\n_curry3(function insertAll(idx, elts, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n return [].concat(Array.prototype.slice.call(list, 0, idx), elts, Array.prototype.slice.call(list, idx));\n});\n\nexport default insertAll;","import _Set from \"./internal/_Set.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied function to\n * each list element. Prefers the first item if the supplied function produces\n * the same value on two items. [`R.equals`](#equals) is used for comparison.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> b) -> [a] -> [a]\n * @param {Function} fn A function used to produce a value to use during comparisons.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniqBy(Math.abs, [-1, -5, 2, 10, 1, 2]); //=> [-1, -5, 2, 10]\n */\n\nvar uniqBy =\n/*#__PURE__*/\n_curry2(function uniqBy(fn, list) {\n var set = new _Set();\n var result = [];\n var idx = 0;\n var appliedItem, item;\n\n while (idx < list.length) {\n item = list[idx];\n appliedItem = fn(item);\n\n if (set.add(appliedItem)) {\n result.push(item);\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default uniqBy;","import identity from \"./identity.js\";\nimport uniqBy from \"./uniqBy.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list. [`R.equals`](#equals) is used to determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniq([1, 1, 2, 1]); //=> [1, 2]\n * R.uniq([1, '1']); //=> [1, '1']\n * R.uniq([[42], [42]]); //=> [[42]]\n */\n\nvar uniq =\n/*#__PURE__*/\nuniqBy(identity);\nexport default uniq;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _filter from \"./internal/_filter.js\";\nimport flip from \"./flip.js\";\nimport uniq from \"./uniq.js\";\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of those\n * elements common to both lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The list of elements found in both `list1` and `list2`.\n * @see R.innerJoin\n * @example\n *\n * R.intersection([1,2,3,4], [7,6,5,4,3]); //=> [4, 3]\n */\n\nvar intersection =\n/*#__PURE__*/\n_curry2(function intersection(list1, list2) {\n var lookupList, filteredList;\n\n if (list1.length > list2.length) {\n lookupList = list1;\n filteredList = list2;\n } else {\n lookupList = list2;\n filteredList = list1;\n }\n\n return uniq(_filter(flip(_includes)(lookupList), filteredList));\n});\n\nexport default intersection;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new list with the separator interposed between elements.\n *\n * Dispatches to the `intersperse` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} separator The element to add to the list.\n * @param {Array} list The list to be interposed.\n * @return {Array} The new list.\n * @example\n *\n * R.intersperse('a', ['b', 'n', 'n', 's']); //=> ['b', 'a', 'n', 'a', 'n', 'a', 's']\n */\n\nvar intersperse =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_checkForMethod('intersperse', function intersperse(separator, list) {\n var out = [];\n var idx = 0;\n var length = list.length;\n\n while (idx < length) {\n if (idx === length - 1) {\n out.push(list[idx]);\n } else {\n out.push(list[idx], separator);\n }\n\n idx += 1;\n }\n\n return out;\n}));\n\nexport default intersperse;","import _has from \"./_has.js\"; // Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n\n while (idx < length) {\n var source = arguments[idx];\n\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n\n idx += 1;\n }\n\n return output;\n}\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates an object containing a single key:value pair.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @sig String -> a -> {String:a}\n * @param {String} key\n * @param {*} val\n * @return {Object}\n * @see R.pair\n * @example\n *\n * const matchPhrases = R.compose(\n * R.objOf('must'),\n * R.map(R.objOf('match_phrase'))\n * );\n * matchPhrases(['foo', 'bar', 'baz']); //=> {must: [{match_phrase: 'foo'}, {match_phrase: 'bar'}, {match_phrase: 'baz'}]}\n */\n\nvar objOf =\n/*#__PURE__*/\n_curry2(function objOf(key, val) {\n var obj = {};\n obj[key] = val;\n return obj;\n});\n\nexport default objOf;","import _objectAssign from \"./_objectAssign.js\";\nimport _identity from \"./_identity.js\";\nimport _isArrayLike from \"./_isArrayLike.js\";\nimport _isTransformer from \"./_isTransformer.js\";\nimport objOf from \"../objOf.js\";\nvar _stepCatArray = {\n '@@transducer/init': Array,\n '@@transducer/step': function (xs, x) {\n xs.push(x);\n return xs;\n },\n '@@transducer/result': _identity\n};\nvar _stepCatString = {\n '@@transducer/init': String,\n '@@transducer/step': function (a, b) {\n return a + b;\n },\n '@@transducer/result': _identity\n};\nvar _stepCatObject = {\n '@@transducer/init': Object,\n '@@transducer/step': function (result, input) {\n return _objectAssign(result, _isArrayLike(input) ? objOf(input[0], input[1]) : input);\n },\n '@@transducer/result': _identity\n};\nexport default function _stepCat(obj) {\n if (_isTransformer(obj)) {\n return obj;\n }\n\n if (_isArrayLike(obj)) {\n return _stepCatArray;\n }\n\n if (typeof obj === 'string') {\n return _stepCatString;\n }\n\n if (typeof obj === 'object') {\n return _stepCatObject;\n }\n\n throw new Error('Cannot create transformer for ' + obj);\n}","import _clone from \"./internal/_clone.js\";\nimport _curry3 from \"./internal/_curry3.js\";\nimport _isTransformer from \"./internal/_isTransformer.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _stepCat from \"./internal/_stepCat.js\";\n/**\n * Transforms the items of the list with the transducer and appends the\n * transformed items to the accumulator using an appropriate iterator function\n * based on the accumulator type.\n *\n * The accumulator can be an array, string, object or a transformer. Iterated\n * items will be appended to arrays and concatenated to strings. Objects will\n * be merged directly or 2-item arrays will be merged as key, value pairs.\n *\n * The accumulator can also be a transformer object that provides a 2-arity\n * reducing iterator function, step, 0-arity initial value function, init, and\n * 1-arity result extraction function result. The step function is used as the\n * iterator function in reduce. The result function is used to convert the\n * final accumulator into the return type and in most cases is R.identity. The\n * init function is used to provide the initial accumulator.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the\n * transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig a -> (b -> b) -> [c] -> a\n * @param {*} acc The initial accumulator value.\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.transduce\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n *\n * R.into([], transducer, numbers); //=> [2, 3]\n *\n * const intoArray = R.into([]);\n * intoArray(transducer, numbers); //=> [2, 3]\n */\n\nvar into =\n/*#__PURE__*/\n_curry3(function into(acc, xf, list) {\n return _isTransformer(acc) ? _reduce(xf(acc), acc['@@transducer/init'](), list) : _reduce(xf(_stepCat(acc)), _clone(acc, [], [], false), list);\n});\n\nexport default into;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport keys from \"./keys.js\";\n/**\n * Same as [`R.invertObj`](#invertObj), however this accounts for objects with\n * duplicate values by putting the values into an array.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: [ s, ... ]}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object with keys in an array.\n * @see R.invertObj\n * @example\n *\n * const raceResultsByFirstName = {\n * first: 'alice',\n * second: 'jake',\n * third: 'alice',\n * };\n * R.invert(raceResultsByFirstName);\n * //=> { 'alice': ['first', 'third'], 'jake':['second'] }\n */\n\nvar invert =\n/*#__PURE__*/\n_curry1(function invert(obj) {\n var props = keys(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n var val = obj[key];\n var list = _has(val, out) ? out[val] : out[val] = [];\n list[list.length] = key;\n idx += 1;\n }\n\n return out;\n});\n\nexport default invert;","import _curry1 from \"./internal/_curry1.js\";\nimport keys from \"./keys.js\";\n/**\n * Returns a new object with the keys of the given object as values, and the\n * values of the given object, which are coerced to strings, as keys. Note\n * that the last key found is preferred when handling the same value.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: s}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object\n * @see R.invert\n * @example\n *\n * const raceResults = {\n * first: 'alice',\n * second: 'jake'\n * };\n * R.invertObj(raceResults);\n * //=> { 'alice': 'first', 'jake':'second' }\n *\n * // Alternatively:\n * const raceResults = ['alice', 'jake'];\n * R.invertObj(raceResults);\n * //=> { 'alice': '0', 'jake':'1' }\n */\n\nvar invertObj =\n/*#__PURE__*/\n_curry1(function invertObj(obj) {\n var props = keys(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n out[obj[key]] = key;\n idx += 1;\n }\n\n return out;\n});\n\nexport default invertObj;","import _curry2 from \"./internal/_curry2.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport curryN from \"./curryN.js\";\nimport toString from \"./toString.js\";\n/**\n * Turns a named method with a specified arity into a function that can be\n * called directly supplied with arguments and a target object.\n *\n * The returned function is curried and accepts `arity + 1` parameters where\n * the final parameter is the target object.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> String -> (a -> b -> ... -> n -> Object -> *)\n * @param {Number} arity Number of arguments the returned function should take\n * before the target object.\n * @param {String} method Name of any of the target object's methods to call.\n * @return {Function} A new curried function.\n * @see R.construct\n * @example\n *\n * const sliceFrom = R.invoker(1, 'slice');\n * sliceFrom(6, 'abcdefghijklm'); //=> 'ghijklm'\n * const sliceFrom6 = R.invoker(2, 'slice')(6);\n * sliceFrom6(8, 'abcdefghijklm'); //=> 'gh'\n *\n * const dog = {\n * speak: async () => 'Woof!'\n * };\n * const speak = R.invoker(0, 'speak');\n * speak(dog).then(console.log) //~> 'Woof!'\n *\n * @symb R.invoker(0, 'method')(o) = o['method']()\n * @symb R.invoker(1, 'method')(a, o) = o['method'](a)\n * @symb R.invoker(2, 'method')(a, b, o) = o['method'](a, b)\n */\n\nvar invoker =\n/*#__PURE__*/\n_curry2(function invoker(arity, method) {\n return curryN(arity + 1, function () {\n var target = arguments[arity];\n\n if (target != null && _isFunction(target[method])) {\n return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity));\n }\n\n throw new TypeError(toString(target) + ' does not have a method named \"' + method + '\"');\n });\n});\n\nexport default invoker;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * See if an object (`val`) is an instance of the supplied constructor. This\n * function will check up the inheritance chain, if any.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Type\n * @sig (* -> {*}) -> a -> Boolean\n * @param {Object} ctor A constructor\n * @param {*} val The value to test\n * @return {Boolean}\n * @example\n *\n * R.is(Object, {}); //=> true\n * R.is(Number, 1); //=> true\n * R.is(Object, 1); //=> false\n * R.is(String, 's'); //=> true\n * R.is(String, new String('')); //=> true\n * R.is(Object, new String('')); //=> true\n * R.is(Object, 's'); //=> false\n * R.is(Number, {}); //=> false\n */\n\nvar is =\n/*#__PURE__*/\n_curry2(function is(Ctor, val) {\n return val != null && val.constructor === Ctor || val instanceof Ctor;\n});\n\nexport default is;","import _curry1 from \"./internal/_curry1.js\";\nimport empty from \"./empty.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns `true` if the given value is its type's empty value; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> Boolean\n * @param {*} x\n * @return {Boolean}\n * @see R.empty\n * @example\n *\n * R.isEmpty([1, 2, 3]); //=> false\n * R.isEmpty([]); //=> true\n * R.isEmpty(''); //=> true\n * R.isEmpty(null); //=> false\n * R.isEmpty({}); //=> true\n * R.isEmpty({length: 0}); //=> false\n */\n\nvar isEmpty =\n/*#__PURE__*/\n_curry1(function isEmpty(x) {\n return x != null && equals(x, empty(x));\n});\n\nexport default isEmpty;","import invoker from \"./invoker.js\";\n/**\n * Returns a string made by inserting the `separator` between each element and\n * concatenating all the elements into a single string.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig String -> [a] -> String\n * @param {Number|String} separator The string used to separate the elements.\n * @param {Array} xs The elements to join into a string.\n * @return {String} str The string made by concatenating `xs` with `separator`.\n * @see R.split\n * @example\n *\n * const spacer = R.join(' ');\n * spacer(['a', 2, 3.4]); //=> 'a 2 3.4'\n * R.join('|', [1, 2, 3]); //=> '1|2|3'\n */\n\nvar join =\n/*#__PURE__*/\ninvoker(1, 'join');\nexport default join;","import _curry1 from \"./internal/_curry1.js\";\nimport converge from \"./converge.js\";\n/**\n * juxt applies a list of functions to a list of values.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Function\n * @sig [(a, b, ..., m) -> n] -> ((a, b, ..., m) -> [n])\n * @param {Array} fns An array of functions\n * @return {Function} A function that returns a list of values after applying each of the original `fns` to its parameters.\n * @see R.applySpec\n * @example\n *\n * const getRange = R.juxt([Math.min, Math.max]);\n * getRange(3, 4, 9, -3); //=> [-3, 9]\n * @symb R.juxt([f, g, h])(a, b) = [f(a, b), g(a, b), h(a, b)]\n */\n\nvar juxt =\n/*#__PURE__*/\n_curry1(function juxt(fns) {\n return converge(function () {\n return Array.prototype.slice.call(arguments, 0);\n }, fns);\n});\n\nexport default juxt;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Returns a list containing the names of all the properties of the supplied\n * object, including prototype properties.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own and prototype properties.\n * @see R.keys, R.valuesIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.keysIn(f); //=> ['x', 'y']\n */\n\nvar keysIn =\n/*#__PURE__*/\n_curry1(function keysIn(obj) {\n var prop;\n var ks = [];\n\n for (prop in obj) {\n ks[ks.length] = prop;\n }\n\n return ks;\n});\n\nexport default keysIn;","import _curry2 from \"./internal/_curry2.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns the position of the last occurrence of an item in an array, or -1 if\n * the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.indexOf\n * @example\n *\n * R.lastIndexOf(3, [-1,3,3,0,1,2,3,4]); //=> 6\n * R.lastIndexOf(10, [1,2,3,4]); //=> -1\n */\n\nvar lastIndexOf =\n/*#__PURE__*/\n_curry2(function lastIndexOf(target, xs) {\n if (typeof xs.lastIndexOf === 'function' && !_isArray(xs)) {\n return xs.lastIndexOf(target);\n } else {\n var idx = xs.length - 1;\n\n while (idx >= 0) {\n if (equals(xs[idx], target)) {\n return idx;\n }\n\n idx -= 1;\n }\n\n return -1;\n }\n});\n\nexport default lastIndexOf;","export default function _isNumber(x) {\n return Object.prototype.toString.call(x) === '[object Number]';\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _isNumber from \"./internal/_isNumber.js\";\n/**\n * Returns the number of elements in the array by returning `list.length`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [a] -> Number\n * @param {Array} list The array to inspect.\n * @return {Number} The length of the array.\n * @example\n *\n * R.length([]); //=> 0\n * R.length([1, 2, 3]); //=> 3\n */\n\nvar length =\n/*#__PURE__*/\n_curry1(function length(list) {\n return list != null && _isNumber(list.length) ? list.length : NaN;\n});\n\nexport default length;","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\n/**\n * Returns a lens for the given getter and setter functions. The getter \"gets\"\n * the value of the focus; the setter \"sets\" the value of the focus. The setter\n * should not mutate the data structure.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig (s -> a) -> ((a, s) -> s) -> Lens s a\n * @param {Function} getter\n * @param {Function} setter\n * @return {Lens}\n * @see R.view, R.set, R.over, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lens(R.prop('x'), R.assoc('x'));\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lens =\n/*#__PURE__*/\n_curry2(function lens(getter, setter) {\n return function (toFunctorFn) {\n return function (target) {\n return map(function (focus) {\n return setter(focus, target);\n }, toFunctorFn(getter(target)));\n };\n };\n});\n\nexport default lens;","import _curry1 from \"./internal/_curry1.js\";\nimport lens from \"./lens.js\";\nimport nth from \"./nth.js\";\nimport update from \"./update.js\";\n/**\n * Returns a lens whose focus is the specified index.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Number -> Lens s a\n * @param {Number} n\n * @return {Lens}\n * @see R.view, R.set, R.over, R.nth\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.view(headLens, ['a', 'b', 'c']); //=> 'a'\n * R.set(headLens, 'x', ['a', 'b', 'c']); //=> ['x', 'b', 'c']\n * R.over(headLens, R.toUpper, ['a', 'b', 'c']); //=> ['A', 'b', 'c']\n */\n\nvar lensIndex =\n/*#__PURE__*/\n_curry1(function lensIndex(n) {\n return lens(nth(n), update(n));\n});\n\nexport default lensIndex;","import _curry1 from \"./internal/_curry1.js\";\nimport assocPath from \"./assocPath.js\";\nimport lens from \"./lens.js\";\nimport path from \"./path.js\";\n/**\n * Returns a lens whose focus is the specified path.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @typedefn Idx = String | Int\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig [Idx] -> Lens s a\n * @param {Array} path The path to use.\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xHeadYLens = R.lensPath(['x', 0, 'y']);\n *\n * R.view(xHeadYLens, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> 2\n * R.set(xHeadYLens, 1, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: 1, z: 3}, {y: 4, z: 5}]}\n * R.over(xHeadYLens, R.negate, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: -2, z: 3}, {y: 4, z: 5}]}\n */\n\nvar lensPath =\n/*#__PURE__*/\n_curry1(function lensPath(p) {\n return lens(path(p), assocPath(p));\n});\n\nexport default lensPath;","import _curry1 from \"./internal/_curry1.js\";\nimport assoc from \"./assoc.js\";\nimport lens from \"./lens.js\";\nimport prop from \"./prop.js\";\n/**\n * Returns a lens whose focus is the specified property.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig String -> Lens s a\n * @param {String} k\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lensProp =\n/*#__PURE__*/\n_curry1(function lensProp(k) {\n return lens(prop(k), assoc(k));\n});\n\nexport default lensProp;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the first argument is less than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.gt\n * @example\n *\n * R.lt(2, 1); //=> false\n * R.lt(2, 2); //=> false\n * R.lt(2, 3); //=> true\n * R.lt('a', 'z'); //=> true\n * R.lt('z', 'a'); //=> false\n */\n\nvar lt =\n/*#__PURE__*/\n_curry2(function lt(a, b) {\n return a < b;\n});\n\nexport default lt;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the first argument is less than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.gte\n * @example\n *\n * R.lte(2, 1); //=> false\n * R.lte(2, 2); //=> true\n * R.lte(2, 3); //=> true\n * R.lte('a', 'z'); //=> true\n * R.lte('z', 'a'); //=> false\n */\n\nvar lte =\n/*#__PURE__*/\n_curry2(function lte(a, b) {\n return a <= b;\n});\n\nexport default lte;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * The `mapAccum` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from left to right, and returning a final value of this\n * accumulator together with the new list.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.scan, R.addIndex, R.mapAccumRight\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [a + b, a + b];\n *\n * R.mapAccum(appender, 0, digits); //=> ['01234', ['01', '012', '0123', '01234']]\n * @symb R.mapAccum(f, a, [b, c, d]) = [\n * f(f(f(a, b)[0], c)[0], d)[0],\n * [\n * f(a, b)[1],\n * f(f(a, b)[0], c)[1],\n * f(f(f(a, b)[0], c)[0], d)[1]\n * ]\n * ]\n */\n\nvar mapAccum =\n/*#__PURE__*/\n_curry3(function mapAccum(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var tuple = [acc];\n\n while (idx < len) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx += 1;\n }\n\n return [tuple[0], result];\n});\n\nexport default mapAccum;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * The `mapAccumRight` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from right to left, and returning a final value of this\n * accumulator together with the new list.\n *\n * Similar to [`mapAccum`](#mapAccum), except moves through the input list from\n * the right to the left.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.addIndex, R.mapAccum\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [b + a, b + a];\n *\n * R.mapAccumRight(appender, 5, digits); //=> ['12345', ['12345', '2345', '345', '45']]\n * @symb R.mapAccumRight(f, a, [b, c, d]) = [\n * f(f(f(a, d)[0], c)[0], b)[0],\n * [\n * f(a, d)[1],\n * f(f(a, d)[0], c)[1],\n * f(f(f(a, d)[0], c)[0], b)[1]\n * ]\n * ]\n */\n\nvar mapAccumRight =\n/*#__PURE__*/\n_curry3(function mapAccumRight(fn, acc, list) {\n var idx = list.length - 1;\n var result = [];\n var tuple = [acc];\n\n while (idx >= 0) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx -= 1;\n }\n\n return [tuple[0], result];\n});\n\nexport default mapAccumRight;","import _curry2 from \"./internal/_curry2.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport keys from \"./keys.js\";\n/**\n * An Object-specific version of [`map`](#map). The function is applied to three\n * arguments: *(value, key, obj)*. If only the value is significant, use\n * [`map`](#map) instead.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig ((*, String, Object) -> *) -> Object -> Object\n * @param {Function} fn\n * @param {Object} obj\n * @return {Object}\n * @see R.map\n * @example\n *\n * const xyz = { x: 1, y: 2, z: 3 };\n * const prependKeyAndDouble = (num, key, obj) => key + (num * 2);\n *\n * R.mapObjIndexed(prependKeyAndDouble, xyz); //=> { x: 'x2', y: 'y4', z: 'z6' }\n */\n\nvar mapObjIndexed =\n/*#__PURE__*/\n_curry2(function mapObjIndexed(fn, obj) {\n return _reduce(function (acc, key) {\n acc[key] = fn(obj[key], key, obj);\n return acc;\n }, {}, keys(obj));\n});\n\nexport default mapObjIndexed;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Tests a regular expression against a String. Note that this function will\n * return an empty array when there are no matches. This differs from\n * [`String.prototype.match`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match)\n * which returns `null` when there are no matches.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig RegExp -> String -> [String | Undefined]\n * @param {RegExp} rx A regular expression.\n * @param {String} str The string to match against\n * @return {Array} The list of matches or empty array.\n * @see R.test\n * @example\n *\n * R.match(/([a-z]a)/g, 'bananas'); //=> ['ba', 'na', 'na']\n * R.match(/a/, 'b'); //=> []\n * R.match(/a/, null); //=> TypeError: null does not have a method named \"match\"\n */\n\nvar match =\n/*#__PURE__*/\n_curry2(function match(rx, str) {\n return str.match(rx) || [];\n});\n\nexport default match;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\n/**\n * `mathMod` behaves like the modulo operator should mathematically, unlike the\n * `%` operator (and by extension, [`R.modulo`](#modulo)). So while\n * `-17 % 5` is `-2`, `mathMod(-17, 5)` is `3`. `mathMod` requires Integer\n * arguments, and returns NaN when the modulus is zero or negative.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} m The dividend.\n * @param {Number} p the modulus.\n * @return {Number} The result of `b mod a`.\n * @see R.modulo\n * @example\n *\n * R.mathMod(-17, 5); //=> 3\n * R.mathMod(17, 5); //=> 2\n * R.mathMod(17, -5); //=> NaN\n * R.mathMod(17, 0); //=> NaN\n * R.mathMod(17.2, 5); //=> NaN\n * R.mathMod(17, 5.3); //=> NaN\n *\n * const clock = R.mathMod(R.__, 12);\n * clock(15); //=> 3\n * clock(24); //=> 0\n *\n * const seventeenMod = R.mathMod(17);\n * seventeenMod(3); //=> 2\n * seventeenMod(4); //=> 1\n * seventeenMod(10); //=> 7\n */\n\nvar mathMod =\n/*#__PURE__*/\n_curry2(function mathMod(m, p) {\n if (!_isInteger(m)) {\n return NaN;\n }\n\n if (!_isInteger(p) || p < 1) {\n return NaN;\n }\n\n return (m % p + p) % p;\n});\n\nexport default mathMod;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Takes a function and two values, and returns whichever value produces the\n * larger result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.max, R.minBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.maxBy(square, -3, 2); //=> -3\n *\n * R.reduce(R.maxBy(square), 0, [3, -5, 4, 1, -2]); //=> -5\n * R.reduce(R.maxBy(square), 0, []); //=> 0\n */\n\nvar maxBy =\n/*#__PURE__*/\n_curry3(function maxBy(f, a, b) {\n return f(b) > f(a) ? b : a;\n});\n\nexport default maxBy;","import add from \"./add.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Adds together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The sum of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.sum([2,4,6,8,100,1]); //=> 121\n */\n\nvar sum =\n/*#__PURE__*/\nreduce(add, 0);\nexport default sum;","import _curry1 from \"./internal/_curry1.js\";\nimport sum from \"./sum.js\";\n/**\n * Returns the mean of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.median\n * @example\n *\n * R.mean([2, 7, 9]); //=> 6\n * R.mean([]); //=> NaN\n */\n\nvar mean =\n/*#__PURE__*/\n_curry1(function mean(list) {\n return sum(list) / list.length;\n});\n\nexport default mean;","import _curry1 from \"./internal/_curry1.js\";\nimport mean from \"./mean.js\";\n/**\n * Returns the median of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.mean\n * @example\n *\n * R.median([2, 9, 7]); //=> 7\n * R.median([7, 2, 10, 9]); //=> 8\n * R.median([]); //=> NaN\n */\n\nvar median =\n/*#__PURE__*/\n_curry1(function median(list) {\n var len = list.length;\n\n if (len === 0) {\n return NaN;\n }\n\n var width = 2 - len % 2;\n var idx = (len - width) / 2;\n return mean(Array.prototype.slice.call(list, 0).sort(function (a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }).slice(idx, idx + width));\n});\n\nexport default median;","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Creates a new function that, when invoked, caches the result of calling `fn`\n * for a given argument set and returns the result. Subsequent calls to the\n * memoized `fn` with the same argument set will not result in an additional\n * call to `fn`; instead, the cached result for that set of arguments will be\n * returned.\n *\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (*... -> String) -> (*... -> a) -> (*... -> a)\n * @param {Function} fn The function to generate the cache key.\n * @param {Function} fn The function to memoize.\n * @return {Function} Memoized version of `fn`.\n * @example\n *\n * let count = 0;\n * const factorial = R.memoizeWith(R.identity, n => {\n * count += 1;\n * return R.product(R.range(1, n + 1));\n * });\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * count; //=> 1\n */\n\nvar memoizeWith =\n/*#__PURE__*/\n_curry2(function memoizeWith(mFn, fn) {\n var cache = {};\n return _arity(fn.length, function () {\n var key = mFn.apply(this, arguments);\n\n if (!_has(key, cache)) {\n cache[key] = fn.apply(this, arguments);\n }\n\n return cache[key];\n });\n});\n\nexport default memoizeWith;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @deprecated since v0.26.0\n * @example\n *\n * R.merge({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.merge({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.merge(a, b) = {...a, ...b}\n */\n\nvar merge =\n/*#__PURE__*/\n_curry2(function merge(l, r) {\n return _objectAssign({}, l, r);\n});\n\nexport default merge;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Merges a list of objects together into one object.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig [{k: v}] -> {k: v}\n * @param {Array} list An array of objects\n * @return {Object} A merged object.\n * @see R.reduce\n * @example\n *\n * R.mergeAll([{foo:1},{bar:2},{baz:3}]); //=> {foo:1,bar:2,baz:3}\n * R.mergeAll([{foo:1},{foo:2},{bar:2}]); //=> {foo:2,bar:2}\n * @symb R.mergeAll([{ x: 1 }, { y: 2 }, { z: 3 }]) = { x: 1, y: 2, z: 3 }\n */\n\nvar mergeAll =\n/*#__PURE__*/\n_curry1(function mergeAll(list) {\n return _objectAssign.apply(null, [{}].concat(list));\n});\n\nexport default mergeAll;","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\n\nvar mergeWithKey =\n/*#__PURE__*/\n_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\n\nexport default mergeWithKey;","import _curry3 from \"./internal/_curry3.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport mergeWithKey from \"./mergeWithKey.js\";\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\n\nvar mergeDeepWithKey =\n/*#__PURE__*/\n_curry3(function mergeDeepWithKey(fn, lObj, rObj) {\n return mergeWithKey(function (k, lVal, rVal) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\n\nexport default mergeDeepWithKey;","import _curry2 from \"./internal/_curry2.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepRight, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepLeft({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 10, contact: { email: 'moo@example.com' }}\n */\n\nvar mergeDeepLeft =\n/*#__PURE__*/\n_curry2(function mergeDeepLeft(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return lVal;\n }, lObj, rObj);\n});\n\nexport default mergeDeepLeft;","import _curry2 from \"./internal/_curry2.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\n\nvar mergeDeepRight =\n/*#__PURE__*/\n_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\n\nexport default mergeDeepRight;","import _curry3 from \"./internal/_curry3.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to associated values using the\n * resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepWith(R.concat,\n * { a: true, c: { values: [10, 20] }},\n * { b: true, c: { values: [15, 35] }});\n * //=> { a: true, b: true, c: { values: [10, 20, 15, 35] }}\n */\n\nvar mergeDeepWith =\n/*#__PURE__*/\n_curry3(function mergeDeepWith(fn, lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return fn(lVal, rVal);\n }, lObj, rObj);\n});\n\nexport default mergeDeepWith;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepLeft, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeLeft({ 'age': 40 }, { 'name': 'fred', 'age': 10 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const resetToDefault = R.mergeLeft({x: 0});\n * resetToDefault({x: 5, y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeLeft(a, b) = {...b, ...a}\n */\n\nvar mergeLeft =\n/*#__PURE__*/\n_curry2(function mergeLeft(l, r) {\n return _objectAssign({}, r, l);\n});\n\nexport default mergeLeft;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.mergeRight({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeRight(a, b) = {...a, ...b}\n */\n\nvar mergeRight =\n/*#__PURE__*/\n_curry2(function mergeRight(l, r) {\n return _objectAssign({}, l, r);\n});\n\nexport default mergeRight;","import _curry3 from \"./internal/_curry3.js\";\nimport mergeWithKey from \"./mergeWithKey.js\";\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the values\n * associated with the key in each object, with the result being used as the\n * value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWith, R.merge, R.mergeWithKey\n * @example\n *\n * R.mergeWith(R.concat,\n * { a: true, values: [10, 20] },\n * { b: true, values: [15, 35] });\n * //=> { a: true, b: true, values: [10, 20, 15, 35] }\n */\n\nvar mergeWith =\n/*#__PURE__*/\n_curry3(function mergeWith(fn, l, r) {\n return mergeWithKey(function (_, _l, _r) {\n return fn(_l, _r);\n }, l, r);\n});\n\nexport default mergeWith;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the smaller of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.minBy, R.max\n * @example\n *\n * R.min(789, 123); //=> 123\n * R.min('a', 'b'); //=> 'a'\n */\n\nvar min =\n/*#__PURE__*/\n_curry2(function min(a, b) {\n return b < a ? b : a;\n});\n\nexport default min;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Takes a function and two values, and returns whichever value produces the\n * smaller result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.min, R.maxBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.minBy(square, -3, 2); //=> 2\n *\n * R.reduce(R.minBy(square), Infinity, [3, -5, 4, 1, -2]); //=> 1\n * R.reduce(R.minBy(square), Infinity, []); //=> Infinity\n */\n\nvar minBy =\n/*#__PURE__*/\n_curry3(function minBy(f, a, b) {\n return f(b) < f(a) ? b : a;\n});\n\nexport default minBy;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Divides the first parameter by the second and returns the remainder. Note\n * that this function preserves the JavaScript-style behavior for modulo. For\n * mathematical modulo see [`mathMod`](#mathMod).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The value to the divide.\n * @param {Number} b The pseudo-modulus\n * @return {Number} The result of `b % a`.\n * @see R.mathMod\n * @example\n *\n * R.modulo(17, 3); //=> 2\n * // JS behavior:\n * R.modulo(-17, 3); //=> -2\n * R.modulo(17, -3); //=> 2\n *\n * const isOdd = R.modulo(R.__, 2);\n * isOdd(42); //=> 0\n * isOdd(21); //=> 1\n */\n\nvar modulo =\n/*#__PURE__*/\n_curry2(function modulo(a, b) {\n return a % b;\n});\n\nexport default modulo;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Move an item, at index `from`, to index `to`, in a list of elements.\n * A new list will be created containing the new elements order.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} from The source index\n * @param {Number} to The destination index\n * @param {Array} list The list which will serve to realise the move\n * @return {Array} The new list reordered\n * @example\n *\n * R.move(0, 2, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['b', 'c', 'a', 'd', 'e', 'f']\n * R.move(-1, 0, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['f', 'a', 'b', 'c', 'd', 'e'] list rotation\n */\n\nvar move =\n/*#__PURE__*/\n_curry3(function (from, to, list) {\n var length = list.length;\n var result = list.slice();\n var positiveFrom = from < 0 ? length + from : from;\n var positiveTo = to < 0 ? length + to : to;\n var item = result.splice(positiveFrom, 1);\n return positiveFrom < 0 || positiveFrom >= list.length || positiveTo < 0 || positiveTo >= list.length ? list : [].concat(result.slice(0, positiveTo)).concat(item).concat(result.slice(positiveTo, list.length));\n});\n\nexport default move;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Multiplies two numbers. Equivalent to `a * b` but curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a * b`.\n * @see R.divide\n * @example\n *\n * const double = R.multiply(2);\n * const triple = R.multiply(3);\n * double(3); //=> 6\n * triple(4); //=> 12\n * R.multiply(2, 5); //=> 10\n */\n\nvar multiply =\n/*#__PURE__*/\n_curry2(function multiply(a, b) {\n return a * b;\n});\n\nexport default multiply;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Negates its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number}\n * @example\n *\n * R.negate(42); //=> -42\n */\n\nvar negate =\n/*#__PURE__*/\n_curry1(function negate(n) {\n return -n;\n});\n\nexport default negate;","import _complement from \"./internal/_complement.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport all from \"./all.js\";\n/**\n * Returns `true` if no elements of the list match the predicate, `false`\n * otherwise.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is not satisfied by every element, `false` otherwise.\n * @see R.all, R.any\n * @example\n *\n * const isEven = n => n % 2 === 0;\n * const isOdd = n => n % 2 === 1;\n *\n * R.none(isEven, [1, 3, 5, 7, 9, 11]); //=> true\n * R.none(isOdd, [1, 3, 5, 7, 8, 11]); //=> false\n */\n\nvar none =\n/*#__PURE__*/\n_curry2(function none(fn, input) {\n return all(_complement(fn), input);\n});\n\nexport default none;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\nimport nth from \"./nth.js\";\n/**\n * Returns a function which returns its nth argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig Number -> *... -> *\n * @param {Number} n\n * @return {Function}\n * @example\n *\n * R.nthArg(1)('a', 'b', 'c'); //=> 'b'\n * R.nthArg(-1)('a', 'b', 'c'); //=> 'c'\n * @symb R.nthArg(-1)(a, b, c) = c\n * @symb R.nthArg(0)(a, b, c) = a\n * @symb R.nthArg(1)(a, b, c) = b\n */\n\nvar nthArg =\n/*#__PURE__*/\n_curry1(function nthArg(n) {\n var arity = n < 0 ? 1 : n + 1;\n return curryN(arity, function () {\n return nth(n, arguments);\n });\n});\n\nexport default nthArg;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * `o` is a curried composition function that returns a unary function.\n * Like [`compose`](#compose), `o` performs right-to-left function composition.\n * Unlike [`compose`](#compose), the rightmost function passed to `o` will be\n * invoked with only one argument. Also, unlike [`compose`](#compose), `o` is\n * limited to accepting only 2 unary functions. The name o was chosen because\n * of its similarity to the mathematical composition operator ∘.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (b -> c) -> (a -> b) -> a -> c\n * @param {Function} f\n * @param {Function} g\n * @return {Function}\n * @see R.compose, R.pipe\n * @example\n *\n * const classyGreeting = name => \"The name's \" + name.last + \", \" + name.first + \" \" + name.last\n * const yellGreeting = R.o(R.toUpper, classyGreeting);\n * yellGreeting({first: 'James', last: 'Bond'}); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.o(R.multiply(10), R.add(10))(-4) //=> 60\n *\n * @symb R.o(f, g, x) = f(g(x))\n */\n\nvar o =\n/*#__PURE__*/\n_curry3(function o(f, g, x) {\n return f(g(x));\n});\n\nexport default o;","export default function _of(x) {\n return [x];\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _of from \"./internal/_of.js\";\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\n\nvar of =\n/*#__PURE__*/\n_curry1(_of);\n\nexport default of;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\n\nvar omit =\n/*#__PURE__*/\n_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\nexport default omit;","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Accepts a function `fn` and returns a function that guards invocation of\n * `fn` such that `fn` can only ever be called once, no matter how many times\n * the returned function is invoked. The first value calculated is returned in\n * subsequent invocations.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a... -> b) -> (a... -> b)\n * @param {Function} fn The function to wrap in a call-only-once wrapper.\n * @return {Function} The wrapped function.\n * @example\n *\n * const addOneOnce = R.once(x => x + 1);\n * addOneOnce(10); //=> 11\n * addOneOnce(addOneOnce(50)); //=> 11\n */\n\nvar once =\n/*#__PURE__*/\n_curry1(function once(fn) {\n var called = false;\n var result;\n return _arity(fn.length, function () {\n if (called) {\n return result;\n }\n\n called = true;\n result = fn.apply(this, arguments);\n return result;\n });\n});\n\nexport default once;","import _isFunction from \"./_isFunction.js\";\nimport _toString from \"./_toString.js\";\nexport default function _assertPromise(name, p) {\n if (p == null || !_isFunction(p.then)) {\n throw new TypeError('`' + name + '` expected a Promise, received ' + _toString(p, []));\n }\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _assertPromise from \"./internal/_assertPromise.js\";\n/**\n * Returns the result of applying the onFailure function to the value inside\n * a failed promise. This is useful for handling rejected promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig (e -> b) -> (Promise e a) -> (Promise e b)\n * @sig (e -> (Promise f b)) -> (Promise e a) -> (Promise f b)\n * @param {Function} onFailure The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(null, onFailure)`\n * @see R.then\n * @example\n *\n * var failedFetch = (id) => Promise.reject('bad ID');\n * var useDefault = () => ({ firstName: 'Bob', lastName: 'Loblaw' })\n *\n * //recoverFromFailure :: String -> Promise ({firstName, lastName})\n * var recoverFromFailure = R.pipe(\n * failedFetch,\n * R.otherwise(useDefault),\n * R.then(R.pick(['firstName', 'lastName'])),\n * );\n * recoverFromFailure(12345).then(console.log)\n */\n\nvar otherwise =\n/*#__PURE__*/\n_curry2(function otherwise(f, p) {\n _assertPromise('otherwise', p);\n\n return p.then(null, f);\n});\n\nexport default otherwise;","import _curry3 from \"./internal/_curry3.js\"; // `Identity` is a functor that holds a single value, where `map` simply\n// transforms the held value with the provided function.\n\nvar Identity = function (x) {\n return {\n value: x,\n map: function (f) {\n return Identity(f(x));\n }\n };\n};\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the result of applying the given function to\n * the focused value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> (a -> a) -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.over(headLens, R.toUpper, ['foo', 'bar', 'baz']); //=> ['FOO', 'bar', 'baz']\n */\n\n\nvar over =\n/*#__PURE__*/\n_curry3(function over(lens, f, x) {\n // The value returned by the getter function is first transformed with `f`,\n // then set as the value of an `Identity`. This is then mapped over with the\n // setter function of the lens.\n return lens(function (y) {\n return Identity(f(y));\n })(x).value;\n});\n\nexport default over;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes two arguments, `fst` and `snd`, and returns `[fst, snd]`.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category List\n * @sig a -> b -> (a,b)\n * @param {*} fst\n * @param {*} snd\n * @return {Array}\n * @see R.objOf, R.of\n * @example\n *\n * R.pair('foo', 'bar'); //=> ['foo', 'bar']\n */\n\nvar pair =\n/*#__PURE__*/\n_curry2(function pair(fst, snd) {\n return [fst, snd];\n});\n\nexport default pair;","import _arity from \"./_arity.js\";\nimport _curry2 from \"./_curry2.js\";\nexport default function _createPartialApplicator(concat) {\n return _curry2(function (fn, args) {\n return _arity(Math.max(0, fn.length - args.length), function () {\n return fn.apply(this, concat(args, arguments));\n });\n });\n}","import _concat from \"./internal/_concat.js\";\nimport _createPartialApplicator from \"./internal/_createPartialApplicator.js\";\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided initially followed by the arguments provided to `g`.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [a, b, c, ...] -> ((d, e, f, ..., n) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partialRight, R.curry\n * @example\n *\n * const multiply2 = (a, b) => a * b;\n * const double = R.partial(multiply2, [2]);\n * double(2); //=> 4\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const sayHello = R.partial(greet, ['Hello']);\n * const sayHelloToMs = R.partial(sayHello, ['Ms.']);\n * sayHelloToMs('Jane', 'Jones'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partial(f, [a, b])(c, d) = f(a, b, c, d)\n */\n\nvar partial =\n/*#__PURE__*/\n_createPartialApplicator(_concat);\n\nexport default partial;","import _concat from \"./internal/_concat.js\";\nimport _createPartialApplicator from \"./internal/_createPartialApplicator.js\";\nimport flip from \"./flip.js\";\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided to `g` followed by the arguments provided initially.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [d, e, f, ..., n] -> ((a, b, c, ...) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partial\n * @example\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const greetMsJaneJones = R.partialRight(greet, ['Ms.', 'Jane', 'Jones']);\n *\n * greetMsJaneJones('Hello'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partialRight(f, [a, b])(c, d) = f(c, d, a, b)\n */\n\nvar partialRight =\n/*#__PURE__*/\n_createPartialApplicator(\n/*#__PURE__*/\nflip(_concat));\n\nexport default partialRight;","import filter from \"./filter.js\";\nimport juxt from \"./juxt.js\";\nimport reject from \"./reject.js\";\n/**\n * Takes a predicate and a list or other `Filterable` object and returns the\n * pair of filterable objects of the same type of elements which do and do not\n * satisfy, the predicate, respectively. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> [f a, f a]\n * @param {Function} pred A predicate to determine which side the element belongs to.\n * @param {Array} filterable the list (or other filterable) to partition.\n * @return {Array} An array, containing first the subset of elements that satisfy the\n * predicate, and second the subset of elements that do not satisfy.\n * @see R.filter, R.reject\n * @example\n *\n * R.partition(R.includes('s'), ['sss', 'ttt', 'foo', 'bars']);\n * // => [ [ 'sss', 'bars' ], [ 'ttt', 'foo' ] ]\n *\n * R.partition(R.includes('s'), { a: 'sss', b: 'ttt', foo: 'bars' });\n * // => [ { a: 'sss', foo: 'bars' }, { b: 'ttt' } ]\n */\n\nvar partition =\n/*#__PURE__*/\njuxt([filter, reject]);\nexport default partition;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\nimport path from \"./path.js\";\n/**\n * Determines whether a nested path on an object has a specific value, in\n * [`R.equals`](#equals) terms. Most likely used to filter a list.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Relation\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> Boolean\n * @param {Array} path The path of the nested property to use\n * @param {*} val The value to compare the nested property with\n * @param {Object} obj The object to check the nested property in\n * @return {Boolean} `true` if the value equals the nested object property,\n * `false` otherwise.\n * @example\n *\n * const user1 = { address: { zipCode: 90210 } };\n * const user2 = { address: { zipCode: 55555 } };\n * const user3 = { name: 'Bob' };\n * const users = [ user1, user2, user3 ];\n * const isFamous = R.pathEq(['address', 'zipCode'], 90210);\n * R.filter(isFamous, users); //=> [ user1 ]\n */\n\nvar pathEq =\n/*#__PURE__*/\n_curry3(function pathEq(_path, val, obj) {\n return equals(path(_path, obj), val);\n});\n\nexport default pathEq;","import _curry3 from \"./internal/_curry3.js\";\nimport defaultTo from \"./defaultTo.js\";\nimport path from \"./path.js\";\n/**\n * If the given, non-null object has a value at the given path, returns the\n * value at that path. Otherwise returns the provided default value.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig a -> [Idx] -> {a} -> a\n * @param {*} d The default value.\n * @param {Array} p The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path` of the supplied object or the default value.\n * @example\n *\n * R.pathOr('N/A', ['a', 'b'], {a: {b: 2}}); //=> 2\n * R.pathOr('N/A', ['a', 'b'], {c: {b: 2}}); //=> \"N/A\"\n */\n\nvar pathOr =\n/*#__PURE__*/\n_curry3(function pathOr(d, p, obj) {\n return defaultTo(d, path(p, obj));\n});\n\nexport default pathOr;","import _curry3 from \"./internal/_curry3.js\";\nimport path from \"./path.js\";\n/**\n * Returns `true` if the specified object property at given path satisfies the\n * given predicate; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Logic\n * @typedefn Idx = String | Int\n * @sig (a -> Boolean) -> [Idx] -> {a} -> Boolean\n * @param {Function} pred\n * @param {Array} propPath\n * @param {*} obj\n * @return {Boolean}\n * @see R.propSatisfies, R.path\n * @example\n *\n * R.pathSatisfies(y => y > 0, ['x', 'y'], {x: {y: 2}}); //=> true\n * R.pathSatisfies(R.is(Object), [], {x: {y: 2}}); //=> true\n */\n\nvar pathSatisfies =\n/*#__PURE__*/\n_curry3(function pathSatisfies(pred, propPath, obj) {\n return pred(path(propPath, obj));\n});\n\nexport default pathSatisfies;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object containing only the keys specified. If\n * the key does not exist, the property is ignored.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.omit, R.props\n * @example\n *\n * R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}\n */\n\nvar pick =\n/*#__PURE__*/\n_curry2(function pick(names, obj) {\n var result = {};\n var idx = 0;\n\n while (idx < names.length) {\n if (names[idx] in obj) {\n result[names[idx]] = obj[names[idx]];\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default pick;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Similar to `pick` except that this one includes a `key: undefined` pair for\n * properties that don't exist.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.pick\n * @example\n *\n * R.pickAll(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pickAll(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, e: undefined, f: undefined}\n */\n\nvar pickAll =\n/*#__PURE__*/\n_curry2(function pickAll(names, obj) {\n var result = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n var name = names[idx];\n result[name] = obj[name];\n idx += 1;\n }\n\n return result;\n});\n\nexport default pickAll;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object containing only the keys that satisfy\n * the supplied predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig ((v, k) -> Boolean) -> {k: v} -> {k: v}\n * @param {Function} pred A predicate to determine whether or not a key\n * should be included on the output object.\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties that satisfy `pred`\n * on it.\n * @see R.pick, R.filter\n * @example\n *\n * const isUpperCase = (val, key) => key.toUpperCase() === key;\n * R.pickBy(isUpperCase, {a: 1, b: 2, A: 3, B: 4}); //=> {A: 3, B: 4}\n */\n\nvar pickBy =\n/*#__PURE__*/\n_curry2(function pickBy(test, obj) {\n var result = {};\n\n for (var prop in obj) {\n if (test(obj[prop], prop, obj)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\nexport default pickBy;","import composeK from \"./composeK.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Returns the left-to-right Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.pipeK(f, g, h)` is equivalent to `R.pipe(f, R.chain(g), R.chain(h))`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((a -> m b), (b -> m c), ..., (y -> m z)) -> (a -> m z)\n * @param {...Function}\n * @return {Function}\n * @see R.composeK\n * @deprecated since v0.26.0\n * @example\n *\n * // parseJson :: String -> Maybe *\n * // get :: String -> Object -> Maybe *\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.pipeK(\n * parseJson,\n * get('user'),\n * get('address'),\n * get('state'),\n * R.compose(Maybe.of, R.toUpper)\n * );\n *\n * getStateCode('{\"user\":{\"address\":{\"state\":\"ny\"}}}');\n * //=> Just('NY')\n * getStateCode('[Invalid JSON]');\n * //=> Nothing()\n * @symb R.pipeK(f, g, h)(a) = R.chain(h, R.chain(g, f(a)))\n */\n\nexport default function pipeK() {\n if (arguments.length === 0) {\n throw new Error('pipeK requires at least one argument');\n }\n\n return composeK.apply(this, reverse(arguments));\n}","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list with the given element at the front, followed by the\n * contents of the list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The item to add to the head of the output list.\n * @param {Array} list The array to add to the tail of the output list.\n * @return {Array} A new array.\n * @see R.append\n * @example\n *\n * R.prepend('fee', ['fi', 'fo', 'fum']); //=> ['fee', 'fi', 'fo', 'fum']\n */\n\nvar prepend =\n/*#__PURE__*/\n_curry2(function prepend(el, list) {\n return _concat([el], list);\n});\n\nexport default prepend;","import multiply from \"./multiply.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Multiplies together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The product of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.product([2,4,6,8,100,1]); //=> 38400\n */\n\nvar product =\n/*#__PURE__*/\nreduce(multiply, 1);\nexport default product;","import _curry2 from \"./internal/_curry2.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Accepts a function `fn` and a list of transformer functions and returns a\n * new curried function. When the new function is invoked, it calls the\n * function `fn` with parameters consisting of the result of calling each\n * supplied handler on successive arguments to the new function.\n *\n * If more arguments are passed to the returned function than transformer\n * functions, those arguments are passed directly to `fn` as additional\n * parameters. If you expect additional arguments that don't need to be\n * transformed, although you can ignore them, it's best to pass an identity\n * function so that the new function reports the correct arity.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [(a -> x1), (b -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} fn The function to wrap.\n * @param {Array} transformers A list of transformer functions\n * @return {Function} The wrapped function.\n * @see R.converge\n * @example\n *\n * R.useWith(Math.pow, [R.identity, R.identity])(3, 4); //=> 81\n * R.useWith(Math.pow, [R.identity, R.identity])(3)(4); //=> 81\n * R.useWith(Math.pow, [R.dec, R.inc])(3, 4); //=> 32\n * R.useWith(Math.pow, [R.dec, R.inc])(3)(4); //=> 32\n * @symb R.useWith(f, [g, h])(a, b) = f(g(a), h(b))\n */\n\nvar useWith =\n/*#__PURE__*/\n_curry2(function useWith(fn, transformers) {\n return curryN(transformers.length, function () {\n var args = [];\n var idx = 0;\n\n while (idx < transformers.length) {\n args.push(transformers[idx].call(this, arguments[idx]));\n idx += 1;\n }\n\n return fn.apply(this, args.concat(Array.prototype.slice.call(arguments, transformers.length)));\n });\n});\n\nexport default useWith;","import _map from \"./internal/_map.js\";\nimport identity from \"./identity.js\";\nimport pickAll from \"./pickAll.js\";\nimport useWith from \"./useWith.js\";\n/**\n * Reasonable analog to SQL `select` statement.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @category Relation\n * @sig [k] -> [{k: v}] -> [{k: v}]\n * @param {Array} props The property names to project\n * @param {Array} objs The objects to query\n * @return {Array} An array of objects with just the `props` properties.\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond', grade: 2};\n * const fred = {name: 'Fred', age: 12, hair: 'brown', grade: 7};\n * const kids = [abby, fred];\n * R.project(['name', 'grade'], kids); //=> [{name: 'Abby', grade: 2}, {name: 'Fred', grade: 7}]\n */\n\nvar project =\n/*#__PURE__*/\nuseWith(_map, [pickAll, identity]); // passing `identity` gives correct arity\n\nexport default project;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns `true` if the specified object property is equal, in\n * [`R.equals`](#equals) terms, to the given value; `false` otherwise.\n * You can test multiple properties with [`R.whereEq`](#whereEq).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.whereEq, R.propSatisfies, R.equals\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond'};\n * const fred = {name: 'Fred', age: 12, hair: 'brown'};\n * const rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * const alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * const kids = [abby, fred, rusty, alois];\n * const hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\n\nvar propEq =\n/*#__PURE__*/\n_curry3(function propEq(name, val, obj) {\n return equals(val, obj[name]);\n});\n\nexport default propEq;","import _curry3 from \"./internal/_curry3.js\";\nimport is from \"./is.js\";\n/**\n * Returns `true` if the specified object property is of the given type;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Type\n * @sig Type -> String -> Object -> Boolean\n * @param {Function} type\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.is, R.propSatisfies\n * @example\n *\n * R.propIs(Number, 'x', {x: 1, y: 2}); //=> true\n * R.propIs(Number, 'x', {x: 'foo'}); //=> false\n * R.propIs(Number, 'x', {}); //=> false\n */\n\nvar propIs =\n/*#__PURE__*/\n_curry3(function propIs(type, name, obj) {\n return is(type, obj[name]);\n});\n\nexport default propIs;","import _curry3 from \"./internal/_curry3.js\";\nimport pathOr from \"./pathOr.js\";\n/**\n * If the given, non-null object has an own property with the specified name,\n * returns the value of that property. Otherwise returns the provided default\n * value.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Object\n * @sig a -> String -> Object -> a\n * @param {*} val The default value.\n * @param {String} p The name of the property to return.\n * @param {Object} obj The object to query.\n * @return {*} The value of given property of the supplied object or the default value.\n * @example\n *\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const favorite = R.prop('favoriteLibrary');\n * const favoriteWithDefault = R.propOr('Ramda', 'favoriteLibrary');\n *\n * favorite(alice); //=> undefined\n * favoriteWithDefault(alice); //=> 'Ramda'\n */\n\nvar propOr =\n/*#__PURE__*/\n_curry3(function propOr(val, p, obj) {\n return pathOr(val, [p], obj);\n});\n\nexport default propOr;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns `true` if the specified object property satisfies the given\n * predicate; `false` otherwise. You can test multiple properties with\n * [`R.where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Logic\n * @sig (a -> Boolean) -> String -> {String: a} -> Boolean\n * @param {Function} pred\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.where, R.propEq, R.propIs\n * @example\n *\n * R.propSatisfies(x => x > 0, 'x', {x: 1, y: 2}); //=> true\n */\n\nvar propSatisfies =\n/*#__PURE__*/\n_curry3(function propSatisfies(pred, name, obj) {\n return pred(obj[name]);\n});\n\nexport default propSatisfies;","import _curry2 from \"./internal/_curry2.js\";\nimport path from \"./path.js\";\n/**\n * Acts as multiple `prop`: array of keys in, array of values out. Preserves\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> [v]\n * @param {Array} ps The property names to fetch\n * @param {Object} obj The object to query\n * @return {Array} The corresponding values or partially applied function.\n * @example\n *\n * R.props(['x', 'y'], {x: 1, y: 2}); //=> [1, 2]\n * R.props(['c', 'a', 'b'], {b: 2, a: 1}); //=> [undefined, 1, 2]\n *\n * const fullName = R.compose(R.join(' '), R.props(['first', 'last']));\n * fullName({last: 'Bullet-Tooth', age: 33, first: 'Tony'}); //=> 'Tony Bullet-Tooth'\n */\n\nvar props =\n/*#__PURE__*/\n_curry2(function props(ps, obj) {\n return ps.map(function (p) {\n return path([p], obj);\n });\n});\n\nexport default props;","import _curry2 from \"./internal/_curry2.js\";\nimport _isNumber from \"./internal/_isNumber.js\";\n/**\n * Returns a list of numbers from `from` (inclusive) to `to` (exclusive).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> Number -> [Number]\n * @param {Number} from The first number in the list.\n * @param {Number} to One more than the last number in the list.\n * @return {Array} The list of numbers in the set `[a, b)`.\n * @example\n *\n * R.range(1, 5); //=> [1, 2, 3, 4]\n * R.range(50, 53); //=> [50, 51, 52]\n */\n\nvar range =\n/*#__PURE__*/\n_curry2(function range(from, to) {\n if (!(_isNumber(from) && _isNumber(to))) {\n throw new TypeError('Both arguments to range must be numbers');\n }\n\n var result = [];\n var n = from;\n\n while (n < to) {\n result.push(n);\n n += 1;\n }\n\n return result;\n});\n\nexport default range;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * Similar to [`reduce`](#reduce), except moves through the input list from the\n * right to the left.\n *\n * The iterator function receives two values: *(value, acc)*, while the arguments'\n * order of `reduce`'s iterator function is *(acc, value)*.\n *\n * Note: `R.reduceRight` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduceRight` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight#Description\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> b) -> b -> [a] -> b\n * @param {Function} fn The iterator function. Receives two values, the current element from the array\n * and the accumulator.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.addIndex\n * @example\n *\n * R.reduceRight(R.subtract, 0, [1, 2, 3, 4]) // => (1 - (2 - (3 - (4 - 0)))) = -2\n * // - -2\n * // / \\ / \\\n * // 1 - 1 3\n * // / \\ / \\\n * // 2 - ==> 2 -1\n * // / \\ / \\\n * // 3 - 3 4\n * // / \\ / \\\n * // 4 0 4 0\n *\n * @symb R.reduceRight(f, a, [b, c, d]) = f(b, f(c, f(d, a)))\n */\n\nvar reduceRight =\n/*#__PURE__*/\n_curry3(function reduceRight(fn, acc, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n acc = fn(list[idx], acc);\n idx -= 1;\n }\n\n return acc;\n});\n\nexport default reduceRight;","import _curryN from \"./internal/_curryN.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _reduced from \"./internal/_reduced.js\";\n/**\n * Like [`reduce`](#reduce), `reduceWhile` returns a single item by iterating\n * through the list, successively calling the iterator function. `reduceWhile`\n * also takes a predicate that is evaluated before each step. If the predicate\n * returns `false`, it \"short-circuits\" the iteration and returns the current\n * value of the accumulator.\n *\n * @func\n * @memberOf R\n * @since v0.22.0\n * @category List\n * @sig ((a, b) -> Boolean) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} pred The predicate. It is passed the accumulator and the\n * current element.\n * @param {Function} fn The iterator function. Receives two values, the\n * accumulator and the current element.\n * @param {*} a The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced\n * @example\n *\n * const isOdd = (acc, x) => x % 2 === 1;\n * const xs = [1, 3, 5, 60, 777, 800];\n * R.reduceWhile(isOdd, R.add, 0, xs); //=> 9\n *\n * const ys = [2, 4, 6]\n * R.reduceWhile(isOdd, R.add, 111, ys); //=> 111\n */\n\nvar reduceWhile =\n/*#__PURE__*/\n_curryN(4, [], function _reduceWhile(pred, fn, a, list) {\n return _reduce(function (acc, x) {\n return pred(acc, x) ? fn(acc, x) : _reduced(acc);\n }, a, list);\n});\n\nexport default reduceWhile;","import _curry1 from \"./internal/_curry1.js\";\nimport _reduced from \"./internal/_reduced.js\";\n/**\n * Returns a value wrapped to indicate that it is the final value of the reduce\n * and transduce functions. The returned value should be considered a black\n * box: the internal structure is not guaranteed to be stable.\n *\n * Note: this optimization is only available to the below functions:\n * - [`reduce`](#reduce)\n * - [`reduceWhile`](#reduceWhile)\n * - [`transduce`](#transduce)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category List\n * @sig a -> *\n * @param {*} x The final value of the reduce.\n * @return {*} The wrapped value.\n * @see R.reduce, R.reduceWhile, R.transduce\n * @example\n *\n * R.reduce(\n * (acc, item) => item > 3 ? R.reduced(acc) : acc.concat(item),\n * [],\n * [1, 2, 3, 4, 5]) // [1, 2, 3]\n */\n\nvar reduced =\n/*#__PURE__*/\n_curry1(_reduced);\n\nexport default reduced;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Calls an input function `n` times, returning an array containing the results\n * of those function calls.\n *\n * `fn` is passed one argument: The current value of `n`, which begins at `0`\n * and is gradually incremented to `n - 1`.\n *\n * @func\n * @memberOf R\n * @since v0.2.3\n * @category List\n * @sig (Number -> a) -> Number -> [a]\n * @param {Function} fn The function to invoke. Passed one argument, the current value of `n`.\n * @param {Number} n A value between `0` and `n - 1`. Increments after each function call.\n * @return {Array} An array containing the return values of all calls to `fn`.\n * @see R.repeat\n * @example\n *\n * R.times(R.identity, 5); //=> [0, 1, 2, 3, 4]\n * @symb R.times(f, 0) = []\n * @symb R.times(f, 1) = [f(0)]\n * @symb R.times(f, 2) = [f(0), f(1)]\n */\n\nvar times =\n/*#__PURE__*/\n_curry2(function times(fn, n) {\n var len = Number(n);\n var idx = 0;\n var list;\n\n if (len < 0 || isNaN(len)) {\n throw new RangeError('n must be a non-negative number');\n }\n\n list = new Array(len);\n\n while (idx < len) {\n list[idx] = fn(idx);\n idx += 1;\n }\n\n return list;\n});\n\nexport default times;","import _curry2 from \"./internal/_curry2.js\";\nimport always from \"./always.js\";\nimport times from \"./times.js\";\n/**\n * Returns a fixed list of size `n` containing a specified identical value.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig a -> n -> [a]\n * @param {*} value The value to repeat.\n * @param {Number} n The desired size of the output list.\n * @return {Array} A new array containing `n` `value`s.\n * @see R.times\n * @example\n *\n * R.repeat('hi', 5); //=> ['hi', 'hi', 'hi', 'hi', 'hi']\n *\n * const obj = {};\n * const repeatedObjs = R.repeat(obj, 5); //=> [{}, {}, {}, {}, {}]\n * repeatedObjs[0] === repeatedObjs[1]; //=> true\n * @symb R.repeat(a, 0) = []\n * @symb R.repeat(a, 1) = [a]\n * @symb R.repeat(a, 2) = [a, a]\n */\n\nvar repeat =\n/*#__PURE__*/\n_curry2(function repeat(value, n) {\n return times(always(value), n);\n});\n\nexport default repeat;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Replace a substring or regex match in a string with a replacement.\n *\n * The first two parameters correspond to the parameters of the\n * `String.prototype.replace()` function, so the second parameter can also be a\n * function.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category String\n * @sig RegExp|String -> String -> String -> String\n * @param {RegExp|String} pattern A regular expression or a substring to match.\n * @param {String} replacement The string to replace the matches with.\n * @param {String} str The String to do the search and replacement in.\n * @return {String} The result.\n * @example\n *\n * R.replace('foo', 'bar', 'foo foo foo'); //=> 'bar foo foo'\n * R.replace(/foo/, 'bar', 'foo foo foo'); //=> 'bar foo foo'\n *\n * // Use the \"g\" (global) flag to replace all occurrences:\n * R.replace(/foo/g, 'bar', 'foo foo foo'); //=> 'bar bar bar'\n */\n\nvar replace =\n/*#__PURE__*/\n_curry3(function replace(regex, replacement, str) {\n return str.replace(regex, replacement);\n});\n\nexport default replace;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Scan is similar to [`reduce`](#reduce), but returns a list of successively\n * reduced values from the left\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> [a]\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {Array} A list of all intermediately reduced values.\n * @see R.reduce, R.mapAccum\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const factorials = R.scan(R.multiply, 1, numbers); //=> [1, 1, 2, 6, 24]\n * @symb R.scan(f, a, [b, c]) = [a, f(a, b), f(f(a, b), c)]\n */\n\nvar scan =\n/*#__PURE__*/\n_curry3(function scan(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [acc];\n\n while (idx < len) {\n acc = fn(acc, list[idx]);\n result[idx + 1] = acc;\n idx += 1;\n }\n\n return result;\n});\n\nexport default scan;","import _curry2 from \"./internal/_curry2.js\";\nimport ap from \"./ap.js\";\nimport map from \"./map.js\";\nimport prepend from \"./prepend.js\";\nimport reduceRight from \"./reduceRight.js\";\n/**\n * Transforms a [Traversable](https://github.com/fantasyland/fantasy-land#traversable)\n * of [Applicative](https://github.com/fantasyland/fantasy-land#applicative) into an\n * Applicative of Traversable.\n *\n * Dispatches to the `sequence` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> t (f a) -> f (t a)\n * @param {Function} of\n * @param {*} traversable\n * @return {*}\n * @see R.traverse\n * @example\n *\n * R.sequence(Maybe.of, [Just(1), Just(2), Just(3)]); //=> Just([1, 2, 3])\n * R.sequence(Maybe.of, [Just(1), Just(2), Nothing()]); //=> Nothing()\n *\n * R.sequence(R.of, Just([1, 2, 3])); //=> [Just(1), Just(2), Just(3)]\n * R.sequence(R.of, Nothing()); //=> [Nothing()]\n */\n\nvar sequence =\n/*#__PURE__*/\n_curry2(function sequence(of, traversable) {\n return typeof traversable.sequence === 'function' ? traversable.sequence(of) : reduceRight(function (x, acc) {\n return ap(map(prepend, x), acc);\n }, of([]), traversable);\n});\n\nexport default sequence;","import _curry3 from \"./internal/_curry3.js\";\nimport always from \"./always.js\";\nimport over from \"./over.js\";\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the given value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> a -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.set(xLens, 8, {x: 1, y: 2}); //=> {x: 8, y: 2}\n */\n\nvar set =\n/*#__PURE__*/\n_curry3(function set(lens, v, x) {\n return over(lens, always(v), x);\n});\n\nexport default set;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a copy of the list, sorted according to the comparator function,\n * which should accept two values at a time and return a negative number if the\n * first value is smaller, a positive number if it's larger, and zero if they\n * are equal. Please note that this is a **copy** of the list. It does not\n * modify the original.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, a) -> Number) -> [a] -> [a]\n * @param {Function} comparator A sorting function :: a -> b -> Int\n * @param {Array} list The list to sort\n * @return {Array} a new array with its elements sorted by the comparator function.\n * @example\n *\n * const diff = function(a, b) { return a - b; };\n * R.sort(diff, [4,2,7,5]); //=> [2, 4, 5, 7]\n */\n\nvar sort =\n/*#__PURE__*/\n_curry2(function sort(comparator, list) {\n return Array.prototype.slice.call(list, 0).sort(comparator);\n});\n\nexport default sort;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Sorts the list according to the supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord b => (a -> b) -> [a] -> [a]\n * @param {Function} fn\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted by the keys generated by `fn`.\n * @example\n *\n * const sortByFirstItem = R.sortBy(R.prop(0));\n * const pairs = [[-1, 1], [-2, 2], [-3, 3]];\n * sortByFirstItem(pairs); //=> [[-3, 3], [-2, 2], [-1, 1]]\n *\n * const sortByNameCaseInsensitive = R.sortBy(R.compose(R.toLower, R.prop('name')));\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const bob = {\n * name: 'Bob',\n * age: -10\n * };\n * const clara = {\n * name: 'clara',\n * age: 314.159\n * };\n * const people = [clara, bob, alice];\n * sortByNameCaseInsensitive(people); //=> [alice, bob, clara]\n */\n\nvar sortBy =\n/*#__PURE__*/\n_curry2(function sortBy(fn, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n });\n});\n\nexport default sortBy;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Sorts a list according to a list of comparators.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Relation\n * @sig [(a, a) -> Number] -> [a] -> [a]\n * @param {Array} functions A list of comparator functions.\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted according to the comarator functions.\n * @example\n *\n * const alice = {\n * name: 'alice',\n * age: 40\n * };\n * const bob = {\n * name: 'bob',\n * age: 30\n * };\n * const clara = {\n * name: 'clara',\n * age: 40\n * };\n * const people = [clara, bob, alice];\n * const ageNameSort = R.sortWith([\n * R.descend(R.prop('age')),\n * R.ascend(R.prop('name'))\n * ]);\n * ageNameSort(people); //=> [alice, clara, bob]\n */\n\nvar sortWith =\n/*#__PURE__*/\n_curry2(function sortWith(fns, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var result = 0;\n var i = 0;\n\n while (result === 0 && i < fns.length) {\n result = fns[i](a, b);\n i += 1;\n }\n\n return result;\n });\n});\n\nexport default sortWith;","import invoker from \"./invoker.js\";\n/**\n * Splits a string into an array of strings based on the given\n * separator.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig (String | RegExp) -> String -> [String]\n * @param {String|RegExp} sep The pattern.\n * @param {String} str The string to separate into an array.\n * @return {Array} The array of strings from `str` separated by `sep`.\n * @see R.join\n * @example\n *\n * const pathComponents = R.split('/');\n * R.tail(pathComponents('/usr/local/bin/node')); //=> ['usr', 'local', 'bin', 'node']\n *\n * R.split('.', 'a.b.c.xyz.d'); //=> ['a', 'b', 'c', 'xyz', 'd']\n */\n\nvar split =\n/*#__PURE__*/\ninvoker(1, 'split');\nexport default split;","import _curry2 from \"./internal/_curry2.js\";\nimport length from \"./length.js\";\nimport slice from \"./slice.js\";\n/**\n * Splits a given list or string at a given index.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig Number -> [a] -> [[a], [a]]\n * @sig Number -> String -> [String, String]\n * @param {Number} index The index where the array/string is split.\n * @param {Array|String} array The array/string to be split.\n * @return {Array}\n * @example\n *\n * R.splitAt(1, [1, 2, 3]); //=> [[1], [2, 3]]\n * R.splitAt(5, 'hello world'); //=> ['hello', ' world']\n * R.splitAt(-1, 'foobar'); //=> ['fooba', 'r']\n */\n\nvar splitAt =\n/*#__PURE__*/\n_curry2(function splitAt(index, array) {\n return [slice(0, index, array), slice(index, length(array), array)];\n});\n\nexport default splitAt;","import _curry2 from \"./internal/_curry2.js\";\nimport slice from \"./slice.js\";\n/**\n * Splits a collection into slices of the specified length.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @sig Number -> String -> [String]\n * @param {Number} n\n * @param {Array} list\n * @return {Array}\n * @example\n *\n * R.splitEvery(3, [1, 2, 3, 4, 5, 6, 7]); //=> [[1, 2, 3], [4, 5, 6], [7]]\n * R.splitEvery(3, 'foobarbaz'); //=> ['foo', 'bar', 'baz']\n */\n\nvar splitEvery =\n/*#__PURE__*/\n_curry2(function splitEvery(n, list) {\n if (n <= 0) {\n throw new Error('First argument to splitEvery must be a positive integer');\n }\n\n var result = [];\n var idx = 0;\n\n while (idx < list.length) {\n result.push(slice(idx, idx += n, list));\n }\n\n return result;\n});\n\nexport default splitEvery;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes a list and a predicate and returns a pair of lists with the following properties:\n *\n * - the result of concatenating the two output lists is equivalent to the input list;\n * - none of the elements of the first output list satisfies the predicate; and\n * - if the second output list is non-empty, its first element satisfies the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [[a], [a]]\n * @param {Function} pred The predicate that determines where the array is split.\n * @param {Array} list The array to be split.\n * @return {Array}\n * @example\n *\n * R.splitWhen(R.equals(2), [1, 2, 3, 1, 2, 3]); //=> [[1], [2, 3, 1, 2, 3]]\n */\n\nvar splitWhen =\n/*#__PURE__*/\n_curry2(function splitWhen(pred, list) {\n var idx = 0;\n var len = list.length;\n var prefix = [];\n\n while (idx < len && !pred(list[idx])) {\n prefix.push(list[idx]);\n idx += 1;\n }\n\n return [prefix, Array.prototype.slice.call(list, idx)];\n});\n\nexport default splitWhen;","import _curry2 from \"./internal/_curry2.js\";\nimport equals from \"./equals.js\";\nimport take from \"./take.js\";\n/**\n * Checks if a list starts with the provided sublist.\n *\n * Similarly, checks if a string starts with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} prefix\n * @param {*} list\n * @return {Boolean}\n * @see R.endsWith\n * @example\n *\n * R.startsWith('a', 'abc') //=> true\n * R.startsWith('b', 'abc') //=> false\n * R.startsWith(['a'], ['a', 'b', 'c']) //=> true\n * R.startsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\nvar startsWith =\n/*#__PURE__*/\n_curry2(function (prefix, list) {\n return equals(take(prefix.length, list), prefix);\n});\n\nexport default startsWith;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Subtracts its second argument from its first argument.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a - b`.\n * @see R.add\n * @example\n *\n * R.subtract(10, 8); //=> 2\n *\n * const minus5 = R.subtract(R.__, 5);\n * minus5(17); //=> 12\n *\n * const complementaryAngle = R.subtract(90);\n * complementaryAngle(30); //=> 60\n * complementaryAngle(72); //=> 18\n */\n\nvar subtract =\n/*#__PURE__*/\n_curry2(function subtract(a, b) {\n return Number(a) - Number(b);\n});\n\nexport default subtract;","import _curry2 from \"./internal/_curry2.js\";\nimport concat from \"./concat.js\";\nimport difference from \"./difference.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifferenceWith, R.difference, R.differenceWith\n * @example\n *\n * R.symmetricDifference([1,2,3,4], [7,6,5,4,3]); //=> [1,2,7,6,5]\n * R.symmetricDifference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5,1,2]\n */\n\nvar symmetricDifference =\n/*#__PURE__*/\n_curry2(function symmetricDifference(list1, list2) {\n return concat(difference(list1, list2), difference(list2, list1));\n});\n\nexport default symmetricDifference;","import _curry3 from \"./internal/_curry3.js\";\nimport concat from \"./concat.js\";\nimport differenceWith from \"./differenceWith.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both. Duplication is determined according to the value\n * returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifference, R.difference, R.differenceWith\n * @example\n *\n * const eqA = R.eqBy(R.prop('a'));\n * const l1 = [{a: 1}, {a: 2}, {a: 3}, {a: 4}];\n * const l2 = [{a: 3}, {a: 4}, {a: 5}, {a: 6}];\n * R.symmetricDifferenceWith(eqA, l1, l2); //=> [{a: 1}, {a: 2}, {a: 5}, {a: 6}]\n */\n\nvar symmetricDifferenceWith =\n/*#__PURE__*/\n_curry3(function symmetricDifferenceWith(pred, list1, list2) {\n return concat(differenceWith(pred, list1, list2), differenceWith(pred, list2, list1));\n});\n\nexport default symmetricDifferenceWith;","import _curry2 from \"./internal/_curry2.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns a new list containing the last `n` elements of a given list, passing\n * each value to the supplied predicate function, and terminating when the\n * predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropLastWhile, R.addIndex\n * @example\n *\n * const isNotOne = x => x !== 1;\n *\n * R.takeLastWhile(isNotOne, [1, 2, 3, 4]); //=> [2, 3, 4]\n *\n * R.takeLastWhile(x => x !== 'R' , 'Ramda'); //=> 'amda'\n */\n\nvar takeLastWhile =\n/*#__PURE__*/\n_curry2(function takeLastWhile(fn, xs) {\n var idx = xs.length - 1;\n\n while (idx >= 0 && fn(xs[idx])) {\n idx -= 1;\n }\n\n return slice(idx + 1, Infinity, xs);\n});\n\nexport default takeLastWhile;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XTakeWhile =\n/*#__PURE__*/\nfunction () {\n function XTakeWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XTakeWhile.prototype['@@transducer/init'] = _xfBase.init;\n XTakeWhile.prototype['@@transducer/result'] = _xfBase.result;\n\n XTakeWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : _reduced(result);\n };\n\n return XTakeWhile;\n}();\n\nvar _xtakeWhile =\n/*#__PURE__*/\n_curry2(function _xtakeWhile(f, xf) {\n return new XTakeWhile(f, xf);\n});\n\nexport default _xtakeWhile;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xtakeWhile from \"./internal/_xtakeWhile.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns a new list containing the first `n` elements of a given list,\n * passing each value to the supplied predicate function, and terminating when\n * the predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * Dispatches to the `takeWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropWhile, R.transduce, R.addIndex\n * @example\n *\n * const isNotFour = x => x !== 4;\n *\n * R.takeWhile(isNotFour, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3]\n *\n * R.takeWhile(x => x !== 'd' , 'Ramda'); //=> 'Ram'\n */\n\nvar takeWhile =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['takeWhile'], _xtakeWhile, function takeWhile(fn, xs) {\n var idx = 0;\n var len = xs.length;\n\n while (idx < len && fn(xs[idx])) {\n idx += 1;\n }\n\n return slice(0, idx, xs);\n}));\n\nexport default takeWhile;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XTap =\n/*#__PURE__*/\nfunction () {\n function XTap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XTap.prototype['@@transducer/init'] = _xfBase.init;\n XTap.prototype['@@transducer/result'] = _xfBase.result;\n\n XTap.prototype['@@transducer/step'] = function (result, input) {\n this.f(input);\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XTap;\n}();\n\nvar _xtap =\n/*#__PURE__*/\n_curry2(function _xtap(f, xf) {\n return new XTap(f, xf);\n});\n\nexport default _xtap;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xtap from \"./internal/_xtap.js\";\n/**\n * Runs the given function with the supplied object, then returns the object.\n *\n * Acts as a transducer if a transformer is given as second parameter.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a -> *) -> a -> a\n * @param {Function} fn The function to call with `x`. The return value of `fn` will be thrown away.\n * @param {*} x\n * @return {*} `x`.\n * @example\n *\n * const sayX = x => console.log('x is ' + x);\n * R.tap(sayX, 100); //=> 100\n * // logs 'x is 100'\n * @symb R.tap(f, a) = a\n */\n\nvar tap =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xtap, function tap(fn, x) {\n fn(x);\n return x;\n}));\n\nexport default tap;","import _cloneRegExp from \"./internal/_cloneRegExp.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _isRegExp from \"./internal/_isRegExp.js\";\nimport toString from \"./toString.js\";\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\n\nvar test =\n/*#__PURE__*/\n_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n\n return _cloneRegExp(pattern).test(str);\n});\n\nexport default test;","export default function _isRegExp(x) {\n return Object.prototype.toString.call(x) === '[object RegExp]';\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _assertPromise from \"./internal/_assertPromise.js\";\n/**\n * Returns the result of applying the onSuccess function to the value inside\n * a successfully resolved promise. This is useful for working with promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Function\n * @sig (a -> b) -> (Promise e a) -> (Promise e b)\n * @sig (a -> (Promise e b)) -> (Promise e a) -> (Promise e b)\n * @param {Function} onSuccess The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(onSuccess)`\n * @see R.otherwise\n * @example\n *\n * var makeQuery = (email) => ({ query: { email }});\n *\n * //getMemberName :: String -> Promise ({firstName, lastName})\n * var getMemberName = R.pipe(\n * makeQuery,\n * fetchMember,\n * R.andThen(R.pick(['firstName', 'lastName']))\n * );\n */\n\nvar andThen =\n/*#__PURE__*/\n_curry2(function andThen(f, p) {\n _assertPromise('andThen', p);\n\n return p.then(f);\n});\n\nexport default andThen;","import invoker from \"./invoker.js\";\n/**\n * The lower case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to lower case.\n * @return {String} The lower case version of `str`.\n * @see R.toUpper\n * @example\n *\n * R.toLower('XYZ'); //=> 'xyz'\n */\n\nvar toLower =\n/*#__PURE__*/\ninvoker(0, 'toLowerCase');\nexport default toLower;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Converts an object into an array of key, value arrays. Only the object's\n * own properties are used.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own properties.\n * @see R.fromPairs\n * @example\n *\n * R.toPairs({a: 1, b: 2, c: 3}); //=> [['a', 1], ['b', 2], ['c', 3]]\n */\n\nvar toPairs =\n/*#__PURE__*/\n_curry1(function toPairs(obj) {\n var pairs = [];\n\n for (var prop in obj) {\n if (_has(prop, obj)) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n }\n\n return pairs;\n});\n\nexport default toPairs;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Converts an object into an array of key, value arrays. The object's own\n * properties and prototype properties are used. Note that the order of the\n * output array is not guaranteed to be consistent across different JS\n * platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own\n * and prototype properties.\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.toPairsIn(f); //=> [['x','X'], ['y','Y']]\n */\n\nvar toPairsIn =\n/*#__PURE__*/\n_curry1(function toPairsIn(obj) {\n var pairs = [];\n\n for (var prop in obj) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n\n return pairs;\n});\n\nexport default toPairsIn;","import invoker from \"./invoker.js\";\n/**\n * The upper case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to upper case.\n * @return {String} The upper case version of `str`.\n * @see R.toLower\n * @example\n *\n * R.toUpper('abc'); //=> 'ABC'\n */\n\nvar toUpper =\n/*#__PURE__*/\ninvoker(0, 'toUpperCase');\nexport default toUpper;","import _reduce from \"./internal/_reduce.js\";\nimport _xwrap from \"./internal/_xwrap.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Initializes a transducer using supplied iterator function. Returns a single\n * item by iterating through the list, successively calling the transformed\n * iterator function and passing it an accumulator value and the current value\n * from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It will be\n * wrapped as a transformer to initialize the transducer. A transformer can be\n * passed directly in place of an iterator function. In both cases, iteration\n * may be stopped early with the [`R.reduced`](#reduced) function.\n *\n * A transducer is a function that accepts a transformer and returns a\n * transformer and can be composed directly.\n *\n * A transformer is an an object that provides a 2-arity reducing iterator\n * function, step, 0-arity initial value function, init, and 1-arity result\n * extraction function, result. The step function is used as the iterator\n * function in reduce. The result function is used to convert the final\n * accumulator into the return type and in most cases is\n * [`R.identity`](#identity). The init function can be used to provide an\n * initial accumulator, but is ignored by transduce.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (c -> c) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array. Wrapped as transformer, if necessary, and used to\n * initialize the transducer\n * @param {*} acc The initial accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced, R.into\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n * R.transduce(transducer, R.flip(R.append), [], numbers); //=> [2, 3]\n *\n * const isOdd = (x) => x % 2 === 1;\n * const firstOddTransducer = R.compose(R.filter(isOdd), R.take(1));\n * R.transduce(firstOddTransducer, R.flip(R.append), [], R.range(0, 100)); //=> [1]\n */\n\nvar transduce =\n/*#__PURE__*/\ncurryN(4, function transduce(xf, fn, acc, list) {\n return _reduce(xf(typeof fn === 'function' ? _xwrap(fn) : fn), acc, list);\n});\nexport default transduce;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Transposes the rows and columns of a 2D list.\n * When passed a list of `n` lists of length `x`,\n * returns a list of `x` lists of length `n`.\n *\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [[a]] -> [[a]]\n * @param {Array} list A 2D list\n * @return {Array} A 2D list\n * @example\n *\n * R.transpose([[1, 'a'], [2, 'b'], [3, 'c']]) //=> [[1, 2, 3], ['a', 'b', 'c']]\n * R.transpose([[1, 2, 3], ['a', 'b', 'c']]) //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n *\n * // If some of the rows are shorter than the following rows, their elements are skipped:\n * R.transpose([[10, 11], [20], [], [30, 31, 32]]) //=> [[10, 20, 30], [11, 31], [32]]\n * @symb R.transpose([[a], [b], [c]]) = [a, b, c]\n * @symb R.transpose([[a, b], [c, d]]) = [[a, c], [b, d]]\n * @symb R.transpose([[a, b], [c]]) = [[a, c], [b]]\n */\n\nvar transpose =\n/*#__PURE__*/\n_curry1(function transpose(outerlist) {\n var i = 0;\n var result = [];\n\n while (i < outerlist.length) {\n var innerlist = outerlist[i];\n var j = 0;\n\n while (j < innerlist.length) {\n if (typeof result[j] === 'undefined') {\n result[j] = [];\n }\n\n result[j].push(innerlist[j]);\n j += 1;\n }\n\n i += 1;\n }\n\n return result;\n});\n\nexport default transpose;","import _curry3 from \"./internal/_curry3.js\";\nimport map from \"./map.js\";\nimport sequence from \"./sequence.js\";\n/**\n * Maps an [Applicative](https://github.com/fantasyland/fantasy-land#applicative)-returning\n * function over a [Traversable](https://github.com/fantasyland/fantasy-land#traversable),\n * then uses [`sequence`](#sequence) to transform the resulting Traversable of Applicative\n * into an Applicative of Traversable.\n *\n * Dispatches to the `traverse` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> (a -> f b) -> t a -> f (t b)\n * @param {Function} of\n * @param {Function} f\n * @param {*} traversable\n * @return {*}\n * @see R.sequence\n * @example\n *\n * // Returns `Maybe.Nothing` if the given divisor is `0`\n * const safeDiv = n => d => d === 0 ? Maybe.Nothing() : Maybe.Just(n / d)\n *\n * R.traverse(Maybe.of, safeDiv(10), [2, 4, 5]); //=> Maybe.Just([5, 2.5, 2])\n * R.traverse(Maybe.of, safeDiv(10), [2, 0, 5]); //=> Maybe.Nothing\n */\n\nvar traverse =\n/*#__PURE__*/\n_curry3(function traverse(of, f, traversable) {\n return typeof traversable['fantasy-land/traverse'] === 'function' ? traversable['fantasy-land/traverse'](f, of) : sequence(of, map(f, traversable));\n});\n\nexport default traverse;","import _curry1 from \"./internal/_curry1.js\";\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\n\nvar trim = !hasProtoTrim ||\n/*#__PURE__*/\nws.trim() || !\n/*#__PURE__*/\nzeroWidth.trim() ?\n/*#__PURE__*/\n_curry1(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n}) :\n/*#__PURE__*/\n_curry1(function trim(str) {\n return str.trim();\n});\nexport default trim;","import _arity from \"./internal/_arity.js\";\nimport _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * `tryCatch` takes two functions, a `tryer` and a `catcher`. The returned\n * function evaluates the `tryer`; if it does not throw, it simply returns the\n * result. If the `tryer` *does* throw, the returned function evaluates the\n * `catcher` function and returns its result. Note that for effective\n * composition with this function, both the `tryer` and `catcher` functions\n * must return the same type of results.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig (...x -> a) -> ((e, ...x) -> a) -> (...x -> a)\n * @param {Function} tryer The function that may throw.\n * @param {Function} catcher The function that will be evaluated if `tryer` throws.\n * @return {Function} A new function that will catch exceptions and send then to the catcher.\n * @example\n *\n * R.tryCatch(R.prop('x'), R.F)({x: true}); //=> true\n * R.tryCatch(() => { throw 'foo'}, R.always('catched'))('bar') // => 'catched'\n * R.tryCatch(R.times(R.identity), R.always([]))('s') // => []\n * R.tryCatch(() => { throw 'this is not a valid value'}, (err, value)=>({error : err, value }))('bar') // => {'error': 'this is not a valid value', 'value': 'bar'}\n */\n\nvar tryCatch =\n/*#__PURE__*/\n_curry2(function _tryCatch(tryer, catcher) {\n return _arity(tryer.length, function () {\n try {\n return tryer.apply(this, arguments);\n } catch (e) {\n return catcher.apply(this, _concat([e], arguments));\n }\n });\n});\n\nexport default tryCatch;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Takes a function `fn`, which takes a single array argument, and returns a\n * function which:\n *\n * - takes any number of positional arguments;\n * - passes these arguments to `fn` as an array; and\n * - returns the result.\n *\n * In other words, `R.unapply` derives a variadic function from a function which\n * takes an array. `R.unapply` is the inverse of [`R.apply`](#apply).\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Function\n * @sig ([*...] -> a) -> (*... -> a)\n * @param {Function} fn\n * @return {Function}\n * @see R.apply\n * @example\n *\n * R.unapply(JSON.stringify)(1, 2, 3); //=> '[1,2,3]'\n * @symb R.unapply(f)(a, b) = f([a, b])\n */\n\nvar unapply =\n/*#__PURE__*/\n_curry1(function unapply(fn) {\n return function () {\n return fn(Array.prototype.slice.call(arguments, 0));\n };\n});\n\nexport default unapply;","import _curry1 from \"./internal/_curry1.js\";\nimport nAry from \"./nAry.js\";\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 1 parameter. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> b) -> (a -> b)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 1.\n * @see R.binary, R.nAry\n * @example\n *\n * const takesTwoArgs = function(a, b) {\n * return [a, b];\n * };\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.unary(takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only 1 argument is passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.unary(f)(a, b, c) = f(a)\n */\n\nvar unary =\n/*#__PURE__*/\n_curry1(function unary(fn) {\n return nAry(1, fn);\n});\n\nexport default unary;","import _curry2 from \"./internal/_curry2.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Returns a function of arity `n` from a (manually) curried function.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Function\n * @sig Number -> (a -> b) -> (a -> c)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to uncurry.\n * @return {Function} A new function.\n * @see R.curry\n * @example\n *\n * const addFour = a => b => c => d => a + b + c + d;\n *\n * const uncurriedAddFour = R.uncurryN(4, addFour);\n * uncurriedAddFour(1, 2, 3, 4); //=> 10\n */\n\nvar uncurryN =\n/*#__PURE__*/\n_curry2(function uncurryN(depth, fn) {\n return curryN(depth, function () {\n var currentDepth = 1;\n var value = fn;\n var idx = 0;\n var endIdx;\n\n while (currentDepth <= depth && typeof value === 'function') {\n endIdx = currentDepth === depth ? arguments.length : idx + value.length;\n value = value.apply(this, Array.prototype.slice.call(arguments, idx, endIdx));\n currentDepth += 1;\n idx = endIdx;\n }\n\n return value;\n });\n});\n\nexport default uncurryN;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Builds a list from a seed value. Accepts an iterator function, which returns\n * either false to stop iteration or an array of length 2 containing the value\n * to add to the resulting list and the seed to be used in the next call to the\n * iterator function.\n *\n * The iterator function receives one argument: *(seed)*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig (a -> [b]) -> * -> [b]\n * @param {Function} fn The iterator function. receives one argument, `seed`, and returns\n * either false to quit iteration or an array of length two to proceed. The element\n * at index 0 of this array will be added to the resulting array, and the element\n * at index 1 will be passed to the next call to `fn`.\n * @param {*} seed The seed value.\n * @return {Array} The final list.\n * @example\n *\n * const f = n => n > 50 ? false : [-n, n + 10];\n * R.unfold(f, 10); //=> [-10, -20, -30, -40, -50]\n * @symb R.unfold(f, x) = [f(x)[0], f(f(x)[1])[0], f(f(f(x)[1])[1])[0], ...]\n */\n\nvar unfold =\n/*#__PURE__*/\n_curry2(function unfold(fn, seed) {\n var pair = fn(seed);\n var result = [];\n\n while (pair && pair.length) {\n result[result.length] = pair[0];\n pair = fn(pair[1]);\n }\n\n return result;\n});\n\nexport default unfold;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport compose from \"./compose.js\";\nimport uniq from \"./uniq.js\";\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @example\n *\n * R.union([1, 2, 3], [2, 3, 4]); //=> [1, 2, 3, 4]\n */\n\nvar union =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\ncompose(uniq, _concat));\n\nexport default union;","import _includesWith from \"./internal/_includesWith.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied predicate to\n * two list elements. Prefers the first item if two items compare equal based\n * on the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * const strEq = R.eqBy(String);\n * R.uniqWith(strEq)([1, '1', 2, 1]); //=> [1, 2]\n * R.uniqWith(strEq)([{}, {}]); //=> [{}]\n * R.uniqWith(strEq)([1, '1', 1]); //=> [1]\n * R.uniqWith(strEq)(['1', 1, 1]); //=> ['1']\n */\n\nvar uniqWith =\n/*#__PURE__*/\n_curry2(function uniqWith(pred, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var item;\n\n while (idx < len) {\n item = list[idx];\n\n if (!_includesWith(pred, item, result)) {\n result[result.length] = item;\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default uniqWith;","import _concat from \"./internal/_concat.js\";\nimport _curry3 from \"./internal/_curry3.js\";\nimport uniqWith from \"./uniqWith.js\";\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list. Duplication is determined according to the value returned by\n * applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [*] -> [*] -> [*]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @see R.union\n * @example\n *\n * const l1 = [{a: 1}, {a: 2}];\n * const l2 = [{a: 1}, {a: 4}];\n * R.unionWith(R.eqBy(R.prop('a')), l1, l2); //=> [{a: 1}, {a: 2}, {a: 4}]\n */\n\nvar unionWith =\n/*#__PURE__*/\n_curry3(function unionWith(pred, list1, list2) {\n return uniqWith(pred, _concat(list1, list2));\n});\n\nexport default unionWith;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is not satisfied, the function will return the result of\n * calling the `whenFalseFn` function with the same argument. If the predicate\n * is satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenFalseFn A function to invoke when the `pred` evaluates\n * to a falsy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenFalseFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenFalseFn`.\n * @see R.ifElse, R.when, R.cond\n * @example\n *\n * let safeInc = R.unless(R.isNil, R.inc);\n * safeInc(null); //=> null\n * safeInc(1); //=> 2\n */\n\nvar unless =\n/*#__PURE__*/\n_curry3(function unless(pred, whenFalseFn, x) {\n return pred(x) ? x : whenFalseFn(x);\n});\n\nexport default unless;","import _identity from \"./internal/_identity.js\";\nimport chain from \"./chain.js\";\n/**\n * Shorthand for `R.chain(R.identity)`, which removes one level of nesting from\n * any [Chain](https://github.com/fantasyland/fantasy-land#chain).\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain c => c (c a) -> c a\n * @param {*} list\n * @return {*}\n * @see R.flatten, R.chain\n * @example\n *\n * R.unnest([1, [2], [[3]]]); //=> [1, 2, [3]]\n * R.unnest([[1, 2], [3, 4], [5, 6]]); //=> [1, 2, 3, 4, 5, 6]\n */\n\nvar unnest =\n/*#__PURE__*/\nchain(_identity);\nexport default unnest;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Takes a predicate, a transformation function, and an initial value,\n * and returns a value of the same type as the initial value.\n * It does so by applying the transformation until the predicate is satisfied,\n * at which point it returns the satisfactory value.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} fn The iterator function\n * @param {*} init Initial value\n * @return {*} Final value that satisfies predicate\n * @example\n *\n * R.until(R.gt(R.__, 100), R.multiply(2))(1) // => 128\n */\n\nvar until =\n/*#__PURE__*/\n_curry3(function until(pred, fn, init) {\n var val = init;\n\n while (!pred(val)) {\n val = fn(val);\n }\n\n return val;\n});\n\nexport default until;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Returns a list of all the properties, including prototype properties, of the\n * supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own and prototype properties.\n * @see R.values, R.keysIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.valuesIn(f); //=> ['X', 'Y']\n */\n\nvar valuesIn =\n/*#__PURE__*/\n_curry1(function valuesIn(obj) {\n var prop;\n var vs = [];\n\n for (prop in obj) {\n vs[vs.length] = obj[prop];\n }\n\n return vs;\n});\n\nexport default valuesIn;","import _curry2 from \"./internal/_curry2.js\"; // `Const` is a functor that effectively ignores the function given to `map`.\n\nvar Const = function (x) {\n return {\n value: x,\n 'fantasy-land/map': function () {\n return this;\n }\n };\n};\n/**\n * Returns a \"view\" of the given data structure, determined by the given lens.\n * The lens's focus determines which portion of the data structure is visible.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> s -> a\n * @param {Lens} lens\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.view(xLens, {x: 4, y: 2}); //=> 4\n */\n\n\nvar view =\n/*#__PURE__*/\n_curry2(function view(lens, x) {\n // Using `Const` effectively ignores the setter function of the `lens`,\n // leaving the value returned by the getter function unmodified.\n return lens(Const)(x).value;\n});\n\nexport default view;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is satisfied, the function will return the result of calling\n * the `whenTrueFn` function with the same argument. If the predicate is not\n * satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenTrueFn A function to invoke when the `condition`\n * evaluates to a truthy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenTrueFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenTrueFn`.\n * @see R.ifElse, R.unless, R.cond\n * @example\n *\n * // truncate :: String -> String\n * const truncate = R.when(\n * R.propSatisfies(R.gt(R.__, 10), 'length'),\n * R.pipe(R.take(10), R.append('…'), R.join(''))\n * );\n * truncate('12345'); //=> '12345'\n * truncate('0123456789ABC'); //=> '0123456789…'\n */\n\nvar when =\n/*#__PURE__*/\n_curry3(function when(pred, whenTrueFn, x) {\n return pred(x) ? whenTrueFn(x) : x;\n});\n\nexport default when;","import _curry2 from \"./internal/_curry2.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec. Each of the spec's own properties must be a predicate function.\n * Each predicate is applied to the value of the corresponding property of the\n * test object. `where` returns true if all the predicates return true, false\n * otherwise.\n *\n * `where` is well suited to declaratively expressing constraints for other\n * functions such as [`filter`](#filter) and [`find`](#find).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Object\n * @sig {String: (* -> Boolean)} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propSatisfies, R.whereEq\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.where({\n * a: R.equals('foo'),\n * b: R.complement(R.equals('bar')),\n * x: R.gt(R.__, 10),\n * y: R.lt(R.__, 20)\n * });\n *\n * pred({a: 'foo', b: 'xxx', x: 11, y: 19}); //=> true\n * pred({a: 'xxx', b: 'xxx', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'bar', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 10, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 11, y: 20}); //=> false\n */\n\nvar where =\n/*#__PURE__*/\n_curry2(function where(spec, testObj) {\n for (var prop in spec) {\n if (_has(prop, spec) && !spec[prop](testObj[prop])) {\n return false;\n }\n }\n\n return true;\n});\n\nexport default where;","import _curry2 from \"./internal/_curry2.js\";\nimport equals from \"./equals.js\";\nimport map from \"./map.js\";\nimport where from \"./where.js\";\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec, false otherwise. An object satisfies the spec if, for each of the\n * spec's own properties, accessing that property of the object gives the same\n * value (in [`R.equals`](#equals) terms) as accessing that property of the\n * spec.\n *\n * `whereEq` is a specialization of [`where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @sig {String: *} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propEq, R.where\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.whereEq({a: 1, b: 2});\n *\n * pred({a: 1}); //=> false\n * pred({a: 1, b: 2}); //=> true\n * pred({a: 1, b: 2, c: 3}); //=> true\n * pred({a: 1, b: 1}); //=> false\n */\n\nvar whereEq =\n/*#__PURE__*/\n_curry2(function whereEq(spec, testObj) {\n return where(map(equals, spec), testObj);\n});\n\nexport default whereEq;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport flip from \"./flip.js\";\nimport reject from \"./reject.js\";\n/**\n * Returns a new list without values in the first argument.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @param {Array} list1 The values to be removed from `list2`.\n * @param {Array} list2 The array to remove values from.\n * @return {Array} The new array without values in `list1`.\n * @see R.transduce, R.difference, R.remove\n * @example\n *\n * R.without([1, 2], [1, 2, 1, 3, 4]); //=> [3, 4]\n */\n\nvar without =\n/*#__PURE__*/\n_curry2(function (xs, list) {\n return reject(flip(_includes)(xs), list);\n});\n\nexport default without;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Exclusive disjunction logical operation.\n * Returns `true` if one of the arguments is truthy and the other is falsy.\n * Otherwise, it returns `false`.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Logic\n * @sig a -> b -> Boolean\n * @param {Any} a\n * @param {Any} b\n * @return {Boolean} true if one of the arguments is truthy and the other is falsy\n * @see R.or, R.and\n * @example\n *\n * R.xor(true, true); //=> false\n * R.xor(true, false); //=> true\n * R.xor(false, true); //=> true\n * R.xor(false, false); //=> false\n */\n\nvar xor =\n/*#__PURE__*/\n_curry2(function xor(a, b) {\n return Boolean(!a ^ !b);\n});\n\nexport default xor;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new list out of the two supplied by creating each possible pair\n * from the lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The list made by combining each possible pair from\n * `as` and `bs` into pairs (`[a, b]`).\n * @example\n *\n * R.xprod([1, 2], ['a', 'b']); //=> [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']]\n * @symb R.xprod([a, b], [c, d]) = [[a, c], [a, d], [b, c], [b, d]]\n */\n\nvar xprod =\n/*#__PURE__*/\n_curry2(function xprod(a, b) {\n // = xprodWith(prepend); (takes about 3 times as long...)\n var idx = 0;\n var ilen = a.length;\n var j;\n var jlen = b.length;\n var result = [];\n\n while (idx < ilen) {\n j = 0;\n\n while (j < jlen) {\n result[result.length] = [a[idx], b[j]];\n j += 1;\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default xprod;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new list out of the two supplied by pairing up equally-positioned\n * items from both lists. The returned list is truncated to the length of the\n * shorter of the two input lists.\n * Note: `zip` is equivalent to `zipWith(function(a, b) { return [a, b] })`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by pairing up same-indexed elements of `list1` and `list2`.\n * @example\n *\n * R.zip([1, 2, 3], ['a', 'b', 'c']); //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n * @symb R.zip([a, b, c], [d, e, f]) = [[a, d], [b, e], [c, f]]\n */\n\nvar zip =\n/*#__PURE__*/\n_curry2(function zip(a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = [a[idx], b[idx]];\n idx += 1;\n }\n\n return rv;\n});\n\nexport default zip;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new object out of a list of keys and a list of values.\n * Key/value pairing is truncated to the length of the shorter of the two lists.\n * Note: `zipObj` is equivalent to `pipe(zip, fromPairs)`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [String] -> [*] -> {String: *}\n * @param {Array} keys The array that will be properties on the output object.\n * @param {Array} values The list of values on the output object.\n * @return {Object} The object made by pairing up same-indexed elements of `keys` and `values`.\n * @example\n *\n * R.zipObj(['a', 'b', 'c'], [1, 2, 3]); //=> {a: 1, b: 2, c: 3}\n */\n\nvar zipObj =\n/*#__PURE__*/\n_curry2(function zipObj(keys, values) {\n var idx = 0;\n var len = Math.min(keys.length, values.length);\n var out = {};\n\n while (idx < len) {\n out[keys[idx]] = values[idx];\n idx += 1;\n }\n\n return out;\n});\n\nexport default zipObj;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Creates a new list out of the two supplied by applying the function to each\n * equally-positioned pair in the lists. The returned list is truncated to the\n * length of the shorter of the two input lists.\n *\n * @function\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> c) -> [a] -> [b] -> [c]\n * @param {Function} fn The function used to combine the two elements into one value.\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by combining same-indexed elements of `list1` and `list2`\n * using `fn`.\n * @example\n *\n * const f = (x, y) => {\n * // ...\n * };\n * R.zipWith(f, [1, 2, 3], ['a', 'b', 'c']);\n * //=> [f(1, 'a'), f(2, 'b'), f(3, 'c')]\n * @symb R.zipWith(fn, [a, b, c], [d, e, f]) = [fn(a, d), fn(b, e), fn(c, f)]\n */\n\nvar zipWith =\n/*#__PURE__*/\n_curry3(function zipWith(fn, a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = fn(a[idx], b[idx]);\n idx += 1;\n }\n\n return rv;\n});\n\nexport default zipWith;","import curryN from \"./curryN.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Creates a thunk out of a function. A thunk delays a calculation until\n * its result is needed, providing lazy evaluation of arguments.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((a, b, ..., j) -> k) -> (a, b, ..., j) -> (() -> k)\n * @param {Function} fn A function to wrap in a thunk\n * @return {Function} Expects arguments for `fn` and returns a new function\n * that, when called, applies those arguments to `fn`.\n * @see R.partial, R.partialRight\n * @example\n *\n * R.thunkify(R.identity)(42)(); //=> 42\n * R.thunkify((a, b) => a + b)(25, 17)(); //=> 42\n */\n\nvar thunkify =\n/*#__PURE__*/\n_curry1(function thunkify(fn) {\n return curryN(fn.length, function createThunk() {\n var fnArgs = arguments;\n return function invokeThunk() {\n return fn.apply(this, fnArgs);\n };\n });\n});\n\nexport default thunkify;","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _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\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","/**\n * @license React\n * react-server-dom-webpack.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var k=require(\"react\"),l={stream:!0},n=new Map,p=Symbol.for(\"react.element\"),q=Symbol.for(\"react.lazy\"),r=Symbol.for(\"react.default_value\"),t=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ContextRegistry;function u(a){t[a]||(t[a]=k.createServerContext(a,r));return t[a]}function v(a,b,c){this._status=a;this._value=b;this._response=c}v.prototype.then=function(a){0===this._status?(null===this._value&&(this._value=[]),this._value.push(a)):a()};\nfunction w(a){switch(a._status){case 3:return a._value;case 1:var b=JSON.parse(a._value,a._response._fromJSON);a._status=3;return a._value=b;case 2:b=a._value;for(var c=b.chunks,d=0;d= 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 (g && (g = 0, op[0] && (_ = 0)), _) 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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 || Array.prototype.slice.call(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\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(t, e) {\n return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _setPrototypeOf(t, e);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst PartytownSnippet = \"/* Partytown 0.7.6 - MIT builder.io */\\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\\\"/\\\"==(a=(o.lib||\\\"/~partytown/\\\")+(o.debug?\\\"debug/\\\":\\\"\\\"))[0]&&(s=e.querySelectorAll('script[type=\\\"text/partytown\\\"]'),i!=t?i.dispatchEvent(new CustomEvent(\\\"pt1\\\",{detail:t})):(d=setTimeout(f,1e4),e.addEventListener(\\\"pt0\\\",w),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\\\"partytown-sw.js\\\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\\\"statechange\\\",(function(t){\\\"activated\\\"==t.target.state&&h()}))}),console.error):f())))}function h(t){c=e.createElement(t?\\\"script\\\":\\\"iframe\\\"),t||(c.setAttribute(\\\"style\\\",\\\"display:block;width:0;height:0;border:0;visibility:hidden\\\"),c.setAttribute(\\\"aria-hidden\\\",!0)),c.src=a+\\\"partytown-\\\"+(t?\\\"atomics.js?v=0.7.6\\\":\\\"sandbox-sw.html?\\\"+Date.now()),e.body.appendChild(c)}function f(n,r){for(w(),i==t&&(o.forward||[]).map((function(e){delete t[e.split(\\\".\\\")[0]]})),n=0;n {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `