{"version":3,"sources":["webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/createClass.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/extends.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/get.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/inherits.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/superPropBase.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/typeof.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://lcb-research-content/./node_modules/@babel/runtime/regenerator/index.js","webpack://lcb-research-content/./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack://lcb-research-content/./node_modules/@fortawesome/react-fontawesome/index.es.js","webpack://lcb-research-content/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://lcb-research-content/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://lcb-research-content/./node_modules/js-base64/base64.mjs","webpack://lcb-research-content/./node_modules/@imgix/js-core/dist/index.esm.js","webpack://lcb-research-content/./node_modules/@prismicio/helpers/dist/index.js","webpack://lcb-research-content/./node_modules/@prismicio/react/dist/index.js","webpack://lcb-research-content/./node_modules/@prismicio/richtext/dist/index.js","webpack://lcb-research-content/./node_modules/@prismicio/types/dist/index.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/bookmark/lib/cjs/bookmark.min.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/bookmark/lib/index.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/core/lib/cjs/core.min.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/core/lib/index.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/full-screen/lib/cjs/full-screen.min.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/full-screen/lib/index.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/get-file/lib/cjs/get-file.min.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/get-file/lib/index.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/open/lib/cjs/open.min.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/open/lib/index.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/page-navigation/lib/cjs/page-navigation.min.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/page-navigation/lib/index.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/print/lib/cjs/print.min.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/print/lib/index.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/properties/lib/cjs/properties.min.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/properties/lib/index.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/rotate/lib/cjs/rotate.min.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/rotate/lib/index.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/scroll-mode/lib/cjs/scroll-mode.min.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/scroll-mode/lib/index.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/search/lib/cjs/search.min.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/search/lib/index.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/selection-mode/lib/cjs/selection-mode.min.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/selection-mode/lib/index.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/theme/lib/cjs/theme.min.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/theme/lib/index.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/toolbar/lib/cjs/toolbar.min.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/toolbar/lib/index.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/zoom/lib/cjs/zoom.min.js","webpack://lcb-research-content/./node_modules/@react-pdf-viewer/zoom/lib/index.js","webpack://lcb-research-content/./node_modules/@restart/hooks/esm/useCommittedRef.js","webpack://lcb-research-content/./node_modules/@restart/hooks/esm/useEventCallback.js","webpack://lcb-research-content/./node_modules/@restart/hooks/esm/useForceUpdate.js","webpack://lcb-research-content/./node_modules/@restart/hooks/esm/useMergedRefs.js","webpack://lcb-research-content/./node_modules/camel-case/node_modules/tslib/tslib.es6.js","webpack://lcb-research-content/./node_modules/camel-case/dist.es2015/index.js","webpack://lcb-research-content/./node_modules/camelcase/index.js","webpack://lcb-research-content/./node_modules/charenc/charenc.js","webpack://lcb-research-content/./node_modules/classnames/index.js","webpack://lcb-research-content/./node_modules/common-tags/es/TemplateTag/TemplateTag.js","webpack://lcb-research-content/./node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js","webpack://lcb-research-content/./node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js","webpack://lcb-research-content/./node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js","webpack://lcb-research-content/./node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js","webpack://lcb-research-content/./node_modules/common-tags/es/commaLists/commaLists.js","webpack://lcb-research-content/./node_modules/common-tags/es/commaListsAnd/commaListsAnd.js","webpack://lcb-research-content/./node_modules/common-tags/es/commaListsOr/commaListsOr.js","webpack://lcb-research-content/./node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js","webpack://lcb-research-content/./node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js","webpack://lcb-research-content/./node_modules/common-tags/es/html/html.js","webpack://lcb-research-content/./node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js","webpack://lcb-research-content/./node_modules/common-tags/es/safeHtml/safeHtml.js","webpack://lcb-research-content/./node_modules/common-tags/es/stripIndent/stripIndent.js","webpack://lcb-research-content/./node_modules/common-tags/es/oneLine/oneLine.js","webpack://lcb-research-content/./node_modules/common-tags/es/oneLineTrim/oneLineTrim.js","webpack://lcb-research-content/./node_modules/common-tags/es/oneLineCommaLists/oneLineCommaLists.js","webpack://lcb-research-content/./node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js","webpack://lcb-research-content/./node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js","webpack://lcb-research-content/./node_modules/common-tags/es/inlineLists/inlineLists.js","webpack://lcb-research-content/./node_modules/common-tags/es/oneLineInlineLists/oneLineInlineLists.js","webpack://lcb-research-content/./node_modules/common-tags/es/stripIndents/stripIndents.js","webpack://lcb-research-content/./node_modules/crypt/crypt.js","webpack://lcb-research-content/./node_modules/es-cookie/src/es-cookie.js","webpack://lcb-research-content/./node_modules/escape-html/index.js","webpack://lcb-research-content/./node_modules/fp-ts-contrib/lib/Do.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Applicative.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Apply.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Chain.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Either.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/ChainRec.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/EitherT.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Eq.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/FromEither.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/FromIO.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/FromReader.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Functor.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Zero.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Option.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Ord.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Predicate.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Reader.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/ReaderT.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/ReaderTask.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/ReaderTaskEither.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Semigroup.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Magma.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Separated.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Task.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Compactable.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Filterable.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/FromTask.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/TaskEither.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Witherable.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/function.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/internal.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/pipeable.js","webpack://lcb-research-content/./node_modules/fp-ts/lib/Apply.js","webpack://lcb-research-content/./node_modules/fp-ts/lib/function.js","webpack://lcb-research-content/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://lcb-research-content/./node_modules/io-ts/es6/index.js","webpack://lcb-research-content/./node_modules/is-buffer/index.js","webpack://lcb-research-content/./node_modules/jsuri/Uri.js","webpack://lcb-research-content/./node_modules/md5/md5.js","webpack://lcb-research-content/./node_modules/ms/index.js","webpack://lcb-research-content/./node_modules/node-fetch/browser.js","webpack://lcb-research-content/./node_modules/pascal-case/node_modules/tslib/tslib.es6.js","webpack://lcb-research-content/./node_modules/lower-case/dist.es2015/index.js","webpack://lcb-research-content/./node_modules/no-case/dist.es2015/index.js","webpack://lcb-research-content/./node_modules/pascal-case/dist.es2015/index.js","webpack://lcb-research-content/./node_modules/prop-types-extra/lib/all.js","webpack://lcb-research-content/./node_modules/prop-types-extra/lib/isRequiredForA11y.js","webpack://lcb-research-content/./node_modules/prop-types-extra/lib/utils/createChainableTypeChecker.js","webpack://lcb-research-content/./node_modules/ramda/es/F.js","webpack://lcb-research-content/./node_modules/ramda/es/T.js","webpack://lcb-research-content/./node_modules/ramda/es/__.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_isPlaceholder.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_curry1.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_curry2.js","webpack://lcb-research-content/./node_modules/ramda/es/add.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_concat.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_arity.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_curryN.js","webpack://lcb-research-content/./node_modules/ramda/es/curryN.js","webpack://lcb-research-content/./node_modules/ramda/es/addIndex.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_curry3.js","webpack://lcb-research-content/./node_modules/ramda/es/adjust.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_isArray.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_isTransformer.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_dispatchable.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_reduced.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xfBase.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xall.js","webpack://lcb-research-content/./node_modules/ramda/es/all.js","webpack://lcb-research-content/./node_modules/ramda/es/max.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_map.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_isString.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_isArrayLike.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xwrap.js","webpack://lcb-research-content/./node_modules/ramda/es/bind.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_reduce.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xmap.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_has.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_isArguments.js","webpack://lcb-research-content/./node_modules/ramda/es/keys.js","webpack://lcb-research-content/./node_modules/ramda/es/map.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_isInteger.js","webpack://lcb-research-content/./node_modules/ramda/es/nth.js","webpack://lcb-research-content/./node_modules/ramda/es/paths.js","webpack://lcb-research-content/./node_modules/ramda/es/path.js","webpack://lcb-research-content/./node_modules/ramda/es/prop.js","webpack://lcb-research-content/./node_modules/ramda/es/pluck.js","webpack://lcb-research-content/./node_modules/ramda/es/reduce.js","webpack://lcb-research-content/./node_modules/ramda/es/allPass.js","webpack://lcb-research-content/./node_modules/ramda/es/always.js","webpack://lcb-research-content/./node_modules/ramda/es/and.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xany.js","webpack://lcb-research-content/./node_modules/ramda/es/any.js","webpack://lcb-research-content/./node_modules/ramda/es/anyPass.js","webpack://lcb-research-content/./node_modules/ramda/es/ap.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_aperture.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xaperture.js","webpack://lcb-research-content/./node_modules/ramda/es/aperture.js","webpack://lcb-research-content/./node_modules/ramda/es/append.js","webpack://lcb-research-content/./node_modules/ramda/es/apply.js","webpack://lcb-research-content/./node_modules/ramda/es/values.js","webpack://lcb-research-content/./node_modules/ramda/es/applySpec.js","webpack://lcb-research-content/./node_modules/ramda/es/applyTo.js","webpack://lcb-research-content/./node_modules/ramda/es/ascend.js","webpack://lcb-research-content/./node_modules/ramda/es/assoc.js","webpack://lcb-research-content/./node_modules/ramda/es/isNil.js","webpack://lcb-research-content/./node_modules/ramda/es/assocPath.js","webpack://lcb-research-content/./node_modules/ramda/es/nAry.js","webpack://lcb-research-content/./node_modules/ramda/es/binary.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_isFunction.js","webpack://lcb-research-content/./node_modules/ramda/es/liftN.js","webpack://lcb-research-content/./node_modules/ramda/es/lift.js","webpack://lcb-research-content/./node_modules/ramda/es/both.js","webpack://lcb-research-content/./node_modules/ramda/es/curry.js","webpack://lcb-research-content/./node_modules/ramda/es/call.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_makeFlat.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_flatCat.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_forceReduced.js","webpack://lcb-research-content/./node_modules/ramda/es/chain.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xchain.js","webpack://lcb-research-content/./node_modules/ramda/es/clamp.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_cloneRegExp.js","webpack://lcb-research-content/./node_modules/ramda/es/type.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_clone.js","webpack://lcb-research-content/./node_modules/ramda/es/clone.js","webpack://lcb-research-content/./node_modules/ramda/es/comparator.js","webpack://lcb-research-content/./node_modules/ramda/es/not.js","webpack://lcb-research-content/./node_modules/ramda/es/complement.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_pipe.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_checkForMethod.js","webpack://lcb-research-content/./node_modules/ramda/es/slice.js","webpack://lcb-research-content/./node_modules/ramda/es/tail.js","webpack://lcb-research-content/./node_modules/ramda/es/pipe.js","webpack://lcb-research-content/./node_modules/ramda/es/reverse.js","webpack://lcb-research-content/./node_modules/ramda/es/compose.js","webpack://lcb-research-content/./node_modules/ramda/es/composeK.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_pipeP.js","webpack://lcb-research-content/./node_modules/ramda/es/pipeP.js","webpack://lcb-research-content/./node_modules/ramda/es/composeP.js","webpack://lcb-research-content/./node_modules/ramda/es/head.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_identity.js","webpack://lcb-research-content/./node_modules/ramda/es/identity.js","webpack://lcb-research-content/./node_modules/ramda/es/pipeWith.js","webpack://lcb-research-content/./node_modules/ramda/es/composeWith.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_arrayFromIterator.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_includesWith.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_objectIs.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_equals.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_functionName.js","webpack://lcb-research-content/./node_modules/ramda/es/equals.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_indexOf.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_includes.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_quote.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_toISOString.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_complement.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_filter.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_isObject.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xfilter.js","webpack://lcb-research-content/./node_modules/ramda/es/filter.js","webpack://lcb-research-content/./node_modules/ramda/es/reject.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_toString.js","webpack://lcb-research-content/./node_modules/ramda/es/toString.js","webpack://lcb-research-content/./node_modules/ramda/es/concat.js","webpack://lcb-research-content/./node_modules/ramda/es/cond.js","webpack://lcb-research-content/./node_modules/ramda/es/constructN.js","webpack://lcb-research-content/./node_modules/ramda/es/construct.js","webpack://lcb-research-content/./node_modules/ramda/es/contains.js","webpack://lcb-research-content/./node_modules/ramda/es/converge.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xreduceBy.js","webpack://lcb-research-content/./node_modules/ramda/es/reduceBy.js","webpack://lcb-research-content/./node_modules/ramda/es/countBy.js","webpack://lcb-research-content/./node_modules/ramda/es/dec.js","webpack://lcb-research-content/./node_modules/ramda/es/defaultTo.js","webpack://lcb-research-content/./node_modules/ramda/es/descend.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_Set.js","webpack://lcb-research-content/./node_modules/ramda/es/difference.js","webpack://lcb-research-content/./node_modules/ramda/es/differenceWith.js","webpack://lcb-research-content/./node_modules/ramda/es/dissoc.js","webpack://lcb-research-content/./node_modules/ramda/es/remove.js","webpack://lcb-research-content/./node_modules/ramda/es/update.js","webpack://lcb-research-content/./node_modules/ramda/es/dissocPath.js","webpack://lcb-research-content/./node_modules/ramda/es/divide.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xdrop.js","webpack://lcb-research-content/./node_modules/ramda/es/drop.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xtake.js","webpack://lcb-research-content/./node_modules/ramda/es/take.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_dropLast.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xdropLast.js","webpack://lcb-research-content/./node_modules/ramda/es/dropLast.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_dropLastWhile.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xdropLastWhile.js","webpack://lcb-research-content/./node_modules/ramda/es/dropLastWhile.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xdropRepeatsWith.js","webpack://lcb-research-content/./node_modules/ramda/es/last.js","webpack://lcb-research-content/./node_modules/ramda/es/dropRepeatsWith.js","webpack://lcb-research-content/./node_modules/ramda/es/dropRepeats.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xdropWhile.js","webpack://lcb-research-content/./node_modules/ramda/es/dropWhile.js","webpack://lcb-research-content/./node_modules/ramda/es/or.js","webpack://lcb-research-content/./node_modules/ramda/es/either.js","webpack://lcb-research-content/./node_modules/ramda/es/empty.js","webpack://lcb-research-content/./node_modules/ramda/es/takeLast.js","webpack://lcb-research-content/./node_modules/ramda/es/endsWith.js","webpack://lcb-research-content/./node_modules/ramda/es/eqBy.js","webpack://lcb-research-content/./node_modules/ramda/es/eqProps.js","webpack://lcb-research-content/./node_modules/ramda/es/evolve.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xfind.js","webpack://lcb-research-content/./node_modules/ramda/es/find.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xfindIndex.js","webpack://lcb-research-content/./node_modules/ramda/es/findIndex.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xfindLast.js","webpack://lcb-research-content/./node_modules/ramda/es/findLast.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xfindLastIndex.js","webpack://lcb-research-content/./node_modules/ramda/es/findLastIndex.js","webpack://lcb-research-content/./node_modules/ramda/es/flatten.js","webpack://lcb-research-content/./node_modules/ramda/es/flip.js","webpack://lcb-research-content/./node_modules/ramda/es/forEach.js","webpack://lcb-research-content/./node_modules/ramda/es/forEachObjIndexed.js","webpack://lcb-research-content/./node_modules/ramda/es/fromPairs.js","webpack://lcb-research-content/./node_modules/ramda/es/groupBy.js","webpack://lcb-research-content/./node_modules/ramda/es/groupWith.js","webpack://lcb-research-content/./node_modules/ramda/es/gt.js","webpack://lcb-research-content/./node_modules/ramda/es/gte.js","webpack://lcb-research-content/./node_modules/ramda/es/hasPath.js","webpack://lcb-research-content/./node_modules/ramda/es/has.js","webpack://lcb-research-content/./node_modules/ramda/es/hasIn.js","webpack://lcb-research-content/./node_modules/ramda/es/identical.js","webpack://lcb-research-content/./node_modules/ramda/es/ifElse.js","webpack://lcb-research-content/./node_modules/ramda/es/inc.js","webpack://lcb-research-content/./node_modules/ramda/es/includes.js","webpack://lcb-research-content/./node_modules/ramda/es/indexBy.js","webpack://lcb-research-content/./node_modules/ramda/es/indexOf.js","webpack://lcb-research-content/./node_modules/ramda/es/init.js","webpack://lcb-research-content/./node_modules/ramda/es/innerJoin.js","webpack://lcb-research-content/./node_modules/ramda/es/insert.js","webpack://lcb-research-content/./node_modules/ramda/es/insertAll.js","webpack://lcb-research-content/./node_modules/ramda/es/uniqBy.js","webpack://lcb-research-content/./node_modules/ramda/es/uniq.js","webpack://lcb-research-content/./node_modules/ramda/es/intersection.js","webpack://lcb-research-content/./node_modules/ramda/es/intersperse.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_objectAssign.js","webpack://lcb-research-content/./node_modules/ramda/es/objOf.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_stepCat.js","webpack://lcb-research-content/./node_modules/ramda/es/into.js","webpack://lcb-research-content/./node_modules/ramda/es/invert.js","webpack://lcb-research-content/./node_modules/ramda/es/invertObj.js","webpack://lcb-research-content/./node_modules/ramda/es/invoker.js","webpack://lcb-research-content/./node_modules/ramda/es/is.js","webpack://lcb-research-content/./node_modules/ramda/es/isEmpty.js","webpack://lcb-research-content/./node_modules/ramda/es/join.js","webpack://lcb-research-content/./node_modules/ramda/es/juxt.js","webpack://lcb-research-content/./node_modules/ramda/es/keysIn.js","webpack://lcb-research-content/./node_modules/ramda/es/lastIndexOf.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_isNumber.js","webpack://lcb-research-content/./node_modules/ramda/es/length.js","webpack://lcb-research-content/./node_modules/ramda/es/lens.js","webpack://lcb-research-content/./node_modules/ramda/es/lensIndex.js","webpack://lcb-research-content/./node_modules/ramda/es/lensPath.js","webpack://lcb-research-content/./node_modules/ramda/es/lensProp.js","webpack://lcb-research-content/./node_modules/ramda/es/lt.js","webpack://lcb-research-content/./node_modules/ramda/es/lte.js","webpack://lcb-research-content/./node_modules/ramda/es/mapAccum.js","webpack://lcb-research-content/./node_modules/ramda/es/mapAccumRight.js","webpack://lcb-research-content/./node_modules/ramda/es/mapObjIndexed.js","webpack://lcb-research-content/./node_modules/ramda/es/match.js","webpack://lcb-research-content/./node_modules/ramda/es/mathMod.js","webpack://lcb-research-content/./node_modules/ramda/es/maxBy.js","webpack://lcb-research-content/./node_modules/ramda/es/sum.js","webpack://lcb-research-content/./node_modules/ramda/es/mean.js","webpack://lcb-research-content/./node_modules/ramda/es/median.js","webpack://lcb-research-content/./node_modules/ramda/es/memoizeWith.js","webpack://lcb-research-content/./node_modules/ramda/es/merge.js","webpack://lcb-research-content/./node_modules/ramda/es/mergeAll.js","webpack://lcb-research-content/./node_modules/ramda/es/mergeWithKey.js","webpack://lcb-research-content/./node_modules/ramda/es/mergeDeepWithKey.js","webpack://lcb-research-content/./node_modules/ramda/es/mergeDeepLeft.js","webpack://lcb-research-content/./node_modules/ramda/es/mergeDeepRight.js","webpack://lcb-research-content/./node_modules/ramda/es/mergeDeepWith.js","webpack://lcb-research-content/./node_modules/ramda/es/mergeLeft.js","webpack://lcb-research-content/./node_modules/ramda/es/mergeRight.js","webpack://lcb-research-content/./node_modules/ramda/es/mergeWith.js","webpack://lcb-research-content/./node_modules/ramda/es/min.js","webpack://lcb-research-content/./node_modules/ramda/es/minBy.js","webpack://lcb-research-content/./node_modules/ramda/es/modulo.js","webpack://lcb-research-content/./node_modules/ramda/es/move.js","webpack://lcb-research-content/./node_modules/ramda/es/multiply.js","webpack://lcb-research-content/./node_modules/ramda/es/negate.js","webpack://lcb-research-content/./node_modules/ramda/es/none.js","webpack://lcb-research-content/./node_modules/ramda/es/nthArg.js","webpack://lcb-research-content/./node_modules/ramda/es/o.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_of.js","webpack://lcb-research-content/./node_modules/ramda/es/of.js","webpack://lcb-research-content/./node_modules/ramda/es/omit.js","webpack://lcb-research-content/./node_modules/ramda/es/once.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_assertPromise.js","webpack://lcb-research-content/./node_modules/ramda/es/otherwise.js","webpack://lcb-research-content/./node_modules/ramda/es/over.js","webpack://lcb-research-content/./node_modules/ramda/es/pair.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_createPartialApplicator.js","webpack://lcb-research-content/./node_modules/ramda/es/partial.js","webpack://lcb-research-content/./node_modules/ramda/es/partialRight.js","webpack://lcb-research-content/./node_modules/ramda/es/partition.js","webpack://lcb-research-content/./node_modules/ramda/es/pathEq.js","webpack://lcb-research-content/./node_modules/ramda/es/pathOr.js","webpack://lcb-research-content/./node_modules/ramda/es/pathSatisfies.js","webpack://lcb-research-content/./node_modules/ramda/es/pick.js","webpack://lcb-research-content/./node_modules/ramda/es/pickAll.js","webpack://lcb-research-content/./node_modules/ramda/es/pickBy.js","webpack://lcb-research-content/./node_modules/ramda/es/pipeK.js","webpack://lcb-research-content/./node_modules/ramda/es/prepend.js","webpack://lcb-research-content/./node_modules/ramda/es/product.js","webpack://lcb-research-content/./node_modules/ramda/es/useWith.js","webpack://lcb-research-content/./node_modules/ramda/es/project.js","webpack://lcb-research-content/./node_modules/ramda/es/propEq.js","webpack://lcb-research-content/./node_modules/ramda/es/propIs.js","webpack://lcb-research-content/./node_modules/ramda/es/propOr.js","webpack://lcb-research-content/./node_modules/ramda/es/propSatisfies.js","webpack://lcb-research-content/./node_modules/ramda/es/props.js","webpack://lcb-research-content/./node_modules/ramda/es/range.js","webpack://lcb-research-content/./node_modules/ramda/es/reduceRight.js","webpack://lcb-research-content/./node_modules/ramda/es/reduceWhile.js","webpack://lcb-research-content/./node_modules/ramda/es/reduced.js","webpack://lcb-research-content/./node_modules/ramda/es/times.js","webpack://lcb-research-content/./node_modules/ramda/es/repeat.js","webpack://lcb-research-content/./node_modules/ramda/es/replace.js","webpack://lcb-research-content/./node_modules/ramda/es/scan.js","webpack://lcb-research-content/./node_modules/ramda/es/sequence.js","webpack://lcb-research-content/./node_modules/ramda/es/set.js","webpack://lcb-research-content/./node_modules/ramda/es/sort.js","webpack://lcb-research-content/./node_modules/ramda/es/sortBy.js","webpack://lcb-research-content/./node_modules/ramda/es/sortWith.js","webpack://lcb-research-content/./node_modules/ramda/es/split.js","webpack://lcb-research-content/./node_modules/ramda/es/splitAt.js","webpack://lcb-research-content/./node_modules/ramda/es/splitEvery.js","webpack://lcb-research-content/./node_modules/ramda/es/splitWhen.js","webpack://lcb-research-content/./node_modules/ramda/es/startsWith.js","webpack://lcb-research-content/./node_modules/ramda/es/subtract.js","webpack://lcb-research-content/./node_modules/ramda/es/symmetricDifference.js","webpack://lcb-research-content/./node_modules/ramda/es/symmetricDifferenceWith.js","webpack://lcb-research-content/./node_modules/ramda/es/takeLastWhile.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xtakeWhile.js","webpack://lcb-research-content/./node_modules/ramda/es/takeWhile.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_xtap.js","webpack://lcb-research-content/./node_modules/ramda/es/tap.js","webpack://lcb-research-content/./node_modules/ramda/es/test.js","webpack://lcb-research-content/./node_modules/ramda/es/internal/_isRegExp.js","webpack://lcb-research-content/./node_modules/ramda/es/andThen.js","webpack://lcb-research-content/./node_modules/ramda/es/toLower.js","webpack://lcb-research-content/./node_modules/ramda/es/toPairs.js","webpack://lcb-research-content/./node_modules/ramda/es/toPairsIn.js","webpack://lcb-research-content/./node_modules/ramda/es/toUpper.js","webpack://lcb-research-content/./node_modules/ramda/es/transduce.js","webpack://lcb-research-content/./node_modules/ramda/es/transpose.js","webpack://lcb-research-content/./node_modules/ramda/es/traverse.js","webpack://lcb-research-content/./node_modules/ramda/es/trim.js","webpack://lcb-research-content/./node_modules/ramda/es/tryCatch.js","webpack://lcb-research-content/./node_modules/ramda/es/unapply.js","webpack://lcb-research-content/./node_modules/ramda/es/unary.js","webpack://lcb-research-content/./node_modules/ramda/es/uncurryN.js","webpack://lcb-research-content/./node_modules/ramda/es/unfold.js","webpack://lcb-research-content/./node_modules/ramda/es/union.js","webpack://lcb-research-content/./node_modules/ramda/es/uniqWith.js","webpack://lcb-research-content/./node_modules/ramda/es/unionWith.js","webpack://lcb-research-content/./node_modules/ramda/es/unless.js","webpack://lcb-research-content/./node_modules/ramda/es/unnest.js","webpack://lcb-research-content/./node_modules/ramda/es/until.js","webpack://lcb-research-content/./node_modules/ramda/es/valuesIn.js","webpack://lcb-research-content/./node_modules/ramda/es/view.js","webpack://lcb-research-content/./node_modules/ramda/es/when.js","webpack://lcb-research-content/./node_modules/ramda/es/where.js","webpack://lcb-research-content/./node_modules/ramda/es/whereEq.js","webpack://lcb-research-content/./node_modules/ramda/es/without.js","webpack://lcb-research-content/./node_modules/ramda/es/xor.js","webpack://lcb-research-content/./node_modules/ramda/es/xprod.js","webpack://lcb-research-content/./node_modules/ramda/es/zip.js","webpack://lcb-research-content/./node_modules/ramda/es/zipObj.js","webpack://lcb-research-content/./node_modules/ramda/es/zipWith.js","webpack://lcb-research-content/./node_modules/ramda/es/thunkify.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/CloseButton.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/Alert.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/Badge.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/Button.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/CardImg.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/Card.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/CardContext.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/Col.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/Fade.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/NavContext.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/AbstractNavItem.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/NavLink.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/NavbarContext.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/Row.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/SafeAnchor.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/SelectableContext.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/ThemeProvider.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/createChainedFunction.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/camelize.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/createWithBsPrefix.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/divWithClassName.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/transitionEnd.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/triggerEvent.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/transitionEndListener.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/triggerBrowserReflow.js","webpack://lcb-research-content/./node_modules/react-fast-compare/index.js","webpack://lcb-research-content/./node_modules/react-side-effect/lib/index.js","webpack://lcb-research-content/./node_modules/react-transition-group/esm/config.js","webpack://lcb-research-content/./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://lcb-research-content/./node_modules/react-transition-group/esm/Transition.js","webpack://lcb-research-content/./node_modules/uncontrollable/lib/esm/utils.js","webpack://lcb-research-content/./node_modules/uncontrollable/lib/esm/hook.js","webpack://lcb-research-content/./node_modules/core-js/internals/a-callable.js","webpack://lcb-research-content/./node_modules/core-js/internals/a-constructor.js","webpack://lcb-research-content/./node_modules/core-js/internals/add-to-unscopables.js","webpack://lcb-research-content/./node_modules/core-js/internals/an-object.js","webpack://lcb-research-content/./node_modules/core-js/internals/array-includes.js","webpack://lcb-research-content/./node_modules/core-js/internals/array-species-constructor.js","webpack://lcb-research-content/./node_modules/core-js/internals/array-species-create.js","webpack://lcb-research-content/./node_modules/core-js/internals/classof-raw.js","webpack://lcb-research-content/./node_modules/core-js/internals/classof.js","webpack://lcb-research-content/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://lcb-research-content/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://lcb-research-content/./node_modules/core-js/internals/create-property-descriptor.js","webpack://lcb-research-content/./node_modules/core-js/internals/create-property.js","webpack://lcb-research-content/./node_modules/core-js/internals/descriptors.js","webpack://lcb-research-content/./node_modules/core-js/internals/document-create-element.js","webpack://lcb-research-content/./node_modules/core-js/internals/engine-user-agent.js","webpack://lcb-research-content/./node_modules/core-js/internals/engine-v8-version.js","webpack://lcb-research-content/./node_modules/core-js/internals/enum-bug-keys.js","webpack://lcb-research-content/./node_modules/core-js/internals/export.js","webpack://lcb-research-content/./node_modules/core-js/internals/fails.js","webpack://lcb-research-content/./node_modules/core-js/internals/flatten-into-array.js","webpack://lcb-research-content/./node_modules/core-js/internals/function-bind-context.js","webpack://lcb-research-content/./node_modules/core-js/internals/function-bind-native.js","webpack://lcb-research-content/./node_modules/core-js/internals/function-call.js","webpack://lcb-research-content/./node_modules/core-js/internals/function-name.js","webpack://lcb-research-content/./node_modules/core-js/internals/function-uncurry-this.js","webpack://lcb-research-content/./node_modules/core-js/internals/get-built-in.js","webpack://lcb-research-content/./node_modules/core-js/internals/get-iterator-method.js","webpack://lcb-research-content/./node_modules/core-js/internals/get-iterator.js","webpack://lcb-research-content/./node_modules/core-js/internals/get-method.js","webpack://lcb-research-content/./node_modules/core-js/internals/global.js","webpack://lcb-research-content/./node_modules/core-js/internals/has-own-property.js","webpack://lcb-research-content/./node_modules/core-js/internals/hidden-keys.js","webpack://lcb-research-content/./node_modules/core-js/internals/html.js","webpack://lcb-research-content/./node_modules/core-js/internals/ie8-dom-define.js","webpack://lcb-research-content/./node_modules/core-js/internals/indexed-object.js","webpack://lcb-research-content/./node_modules/core-js/internals/inspect-source.js","webpack://lcb-research-content/./node_modules/core-js/internals/internal-state.js","webpack://lcb-research-content/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://lcb-research-content/./node_modules/core-js/internals/is-array.js","webpack://lcb-research-content/./node_modules/core-js/internals/is-callable.js","webpack://lcb-research-content/./node_modules/core-js/internals/is-constructor.js","webpack://lcb-research-content/./node_modules/core-js/internals/is-forced.js","webpack://lcb-research-content/./node_modules/core-js/internals/is-object.js","webpack://lcb-research-content/./node_modules/core-js/internals/is-pure.js","webpack://lcb-research-content/./node_modules/core-js/internals/is-symbol.js","webpack://lcb-research-content/./node_modules/core-js/internals/iterate.js","webpack://lcb-research-content/./node_modules/core-js/internals/iterator-close.js","webpack://lcb-research-content/./node_modules/core-js/internals/iterators.js","webpack://lcb-research-content/./node_modules/core-js/internals/length-of-array-like.js","webpack://lcb-research-content/./node_modules/core-js/internals/native-promise-constructor.js","webpack://lcb-research-content/./node_modules/core-js/internals/native-symbol.js","webpack://lcb-research-content/./node_modules/core-js/internals/native-weak-map.js","webpack://lcb-research-content/./node_modules/core-js/internals/new-promise-capability.js","webpack://lcb-research-content/./node_modules/core-js/internals/object-create.js","webpack://lcb-research-content/./node_modules/core-js/internals/object-define-properties.js","webpack://lcb-research-content/./node_modules/core-js/internals/object-define-property.js","webpack://lcb-research-content/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://lcb-research-content/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://lcb-research-content/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://lcb-research-content/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://lcb-research-content/./node_modules/core-js/internals/object-keys-internal.js","webpack://lcb-research-content/./node_modules/core-js/internals/object-keys.js","webpack://lcb-research-content/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://lcb-research-content/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://lcb-research-content/./node_modules/core-js/internals/own-keys.js","webpack://lcb-research-content/./node_modules/core-js/internals/perform.js","webpack://lcb-research-content/./node_modules/core-js/internals/promise-resolve.js","webpack://lcb-research-content/./node_modules/core-js/internals/redefine.js","webpack://lcb-research-content/./node_modules/core-js/internals/require-object-coercible.js","webpack://lcb-research-content/./node_modules/core-js/internals/set-global.js","webpack://lcb-research-content/./node_modules/core-js/internals/shared-key.js","webpack://lcb-research-content/./node_modules/core-js/internals/shared-store.js","webpack://lcb-research-content/./node_modules/core-js/internals/shared.js","webpack://lcb-research-content/./node_modules/core-js/internals/species-constructor.js","webpack://lcb-research-content/./node_modules/core-js/internals/string-trim-forced.js","webpack://lcb-research-content/./node_modules/core-js/internals/string-trim.js","webpack://lcb-research-content/./node_modules/core-js/internals/to-absolute-index.js","webpack://lcb-research-content/./node_modules/core-js/internals/to-indexed-object.js","webpack://lcb-research-content/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://lcb-research-content/./node_modules/core-js/internals/to-length.js","webpack://lcb-research-content/./node_modules/core-js/internals/to-object.js","webpack://lcb-research-content/./node_modules/core-js/internals/to-primitive.js","webpack://lcb-research-content/./node_modules/core-js/internals/to-property-key.js","webpack://lcb-research-content/./node_modules/core-js/internals/to-string-tag-support.js","webpack://lcb-research-content/./node_modules/core-js/internals/to-string.js","webpack://lcb-research-content/./node_modules/core-js/internals/try-to-string.js","webpack://lcb-research-content/./node_modules/core-js/internals/uid.js","webpack://lcb-research-content/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://lcb-research-content/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://lcb-research-content/./node_modules/core-js/internals/well-known-symbol.js","webpack://lcb-research-content/./node_modules/core-js/internals/whitespaces.js","webpack://lcb-research-content/./node_modules/core-js/modules/es.array.flat.js","webpack://lcb-research-content/./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack://lcb-research-content/./node_modules/core-js/modules/es.global-this.js","webpack://lcb-research-content/./node_modules/core-js/modules/es.math.hypot.js","webpack://lcb-research-content/./node_modules/core-js/modules/es.object.from-entries.js","webpack://lcb-research-content/./node_modules/core-js/modules/es.promise.all-settled.js","webpack://lcb-research-content/./node_modules/core-js/modules/es.promise.finally.js","webpack://lcb-research-content/./node_modules/core-js/modules/es.string.trim-end.js","webpack://lcb-research-content/./node_modules/core-js/modules/es.string.trim-start.js","webpack://lcb-research-content/./node_modules/core-js/modules/esnext.global-this.js","webpack://lcb-research-content/./node_modules/core-js/modules/esnext.promise.all-settled.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/canUseDOM.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/addEventListener.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/getComputedStyle.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/ownerWindow.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/hyphenate.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/hyphenateStyle.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/isTransform.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/css.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/removeEventListener.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/listen.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/ownerDocument.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/querySelectorAll.js","webpack://lcb-research-content/./node_modules/gatsby-link/index.js","webpack://lcb-research-content/./node_modules/gatsby-link/parse-path.js","webpack://lcb-research-content/./node_modules/gatsby-react-router-scroll/index.js","webpack://lcb-research-content/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://lcb-research-content/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://lcb-research-content/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://lcb-research-content/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://lcb-research-content/./.cache/api-runner-browser-plugins.js","webpack://lcb-research-content/./.cache/api-runner-browser.js","webpack://lcb-research-content/./node_modules/mitt/dist/mitt.es.js","webpack://lcb-research-content/./.cache/emitter.js","webpack://lcb-research-content/./.cache/normalize-page-path.js","webpack://lcb-research-content/./.cache/find-path.js","webpack://lcb-research-content/./.cache/gatsby-browser-entry.js","webpack://lcb-research-content/./.cache/prefetch.js","webpack://lcb-research-content/./.cache/loader.js","webpack://lcb-research-content/./.cache/page-renderer.js","webpack://lcb-research-content/./.cache/route-announcer-props.js","webpack://lcb-research-content/./.cache/navigation.js","webpack://lcb-research-content/./node_modules/shallow-compare/es/index.js","webpack://lcb-research-content/./.cache/ensure-resources.js","webpack://lcb-research-content/./.cache/production-app.js","webpack://lcb-research-content/./.cache/public-page-renderer-prod.js","webpack://lcb-research-content/./.cache/public-page-renderer.js","webpack://lcb-research-content/./.cache/react-lifecycles-compat.js","webpack://lcb-research-content/./.cache/redirect-utils.js","webpack://lcb-research-content/./.cache/register-service-worker.js","webpack://lcb-research-content/./.cache/strip-prefix.js","webpack://lcb-research-content/./gatsby-browser.js","webpack://lcb-research-content/../src/api/fetchBase64Image.ts","webpack://lcb-research-content/../src/api/fetchImgixMetadata.ts","webpack://lcb-research-content/../src/common/cache.ts","webpack://lcb-research-content/../src/common/createExternalHelper.ts","webpack://lcb-research-content/../src/common/fpTsUtils.ts","webpack://lcb-research-content/../src/common/imgix-js-core-wrapper.ts","webpack://lcb-research-content/../src/common/log.ts","webpack://lcb-research-content/../src/common/uri.ts","webpack://lcb-research-content/../src/common/utils.ts","webpack://lcb-research-content/../src/modules/gatsby-plugin/buildGatsbyImageDataBaseArgs.ts","webpack://lcb-research-content/../src/modules/gatsby-plugin/createImgixBase64FieldConfig.ts","webpack://lcb-research-content/../src/modules/gatsby-plugin/createImgixFixedFieldConfig.ts","webpack://lcb-research-content/../src/modules/gatsby-plugin/graphqlTypes.ts","webpack://lcb-research-content/../src/modules/gatsby-plugin/objectBuilders.ts","webpack://lcb-research-content/../src/modules/gatsby-plugin/resolveDimensions.ts","webpack://lcb-research-content/../src/pluginHelpers.browser.ts","webpack://lcb-research-content/./node_modules/@imgix/gatsby/node_modules/debug/src/browser.js","webpack://lcb-research-content/./node_modules/@imgix/gatsby/node_modules/debug/src/common.js","webpack://lcb-research-content/../src/image-utils.ts","webpack://lcb-research-content/../src/components/hooks.ts","webpack://lcb-research-content/../src/components/layout-wrapper.tsx","webpack://lcb-research-content/../src/components/picture.tsx","webpack://lcb-research-content/../src/components/placeholder.tsx","webpack://lcb-research-content/../src/components/main-image.tsx","webpack://lcb-research-content/../src/components/gatsby-image.server.tsx","webpack://lcb-research-content/../src/components/gatsby-image.browser.tsx","webpack://lcb-research-content/../src/components/static-image.server.tsx","webpack://lcb-research-content/../src/components/static-image.tsx","webpack://lcb-research-content/../src/components/later-hydrator.tsx","webpack://lcb-research-content/./node_modules/gatsby-plugin-image/gatsby-browser.js","webpack://lcb-research-content/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://lcb-research-content/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://lcb-research-content/./node_modules/gatsby-plugin-matomo/gatsby-browser.js","webpack://lcb-research-content/./node_modules/gatsby-plugin-offline/gatsby-browser.js","webpack://lcb-research-content/../src/constants.ts","webpack://lcb-research-content/../src/lib/setPluginOptionsOnWindow.ts","webpack://lcb-research-content/../src/on-client-entry.ts","webpack://lcb-research-content/../src/lib/setPrismicWindowEndpoint.ts","webpack://lcb-research-content/./node_modules/fp-ts/es6/string.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/ReadonlyRecord.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Record.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/IO.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/IOEither.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://lcb-research-content/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://lcb-research-content/./node_modules/@prismicio/client/dist/index.es.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/ReaderEither.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/ReadonlyNonEmptyArray.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/NonEmptyArray.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/ReadonlyArray.js","webpack://lcb-research-content/./node_modules/fp-ts/es6/Array.js","webpack://lcb-research-content/./node_modules/tiny-hashes/md5/index.mjs","webpack://lcb-research-content/../src/index.ts","webpack://lcb-research-content/./node_modules/clsx/dist/clsx.m.js","webpack://lcb-research-content/./node_modules/@reach/utils/can-use-dom/dist/reach-utils-can-use-dom.esm.js","webpack://lcb-research-content/./node_modules/@reach/utils/use-isomorphic-layout-effect/dist/reach-utils-use-isomorphic-layout-effect.esm.js","webpack://lcb-research-content/./node_modules/@reach/portal/dist/reach-portal.esm.js","webpack://lcb-research-content/./node_modules/@reach/utils/use-force-update/dist/reach-utils-use-force-update.esm.js","webpack://lcb-research-content/./node_modules/@reach/utils/owner-document/dist/reach-utils-owner-document.esm.js","webpack://lcb-research-content/./node_modules/@reach/utils/noop/dist/reach-utils-noop.esm.js","webpack://lcb-research-content/./node_modules/@reach/utils/compose-refs/dist/reach-utils-compose-refs.esm.js","webpack://lcb-research-content/./node_modules/@reach/utils/type-check/dist/reach-utils-type-check.esm.js","webpack://lcb-research-content/./node_modules/@reach/utils/compose-event-handlers/dist/reach-utils-compose-event-handlers.esm.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/constants.js","webpack://lcb-research-content/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js","webpack://lcb-research-content/./node_modules/use-callback-ref/dist/es2015/useRef.js","webpack://lcb-research-content/./node_modules/use-callback-ref/dist/es2015/assignRef.js","webpack://lcb-research-content/./node_modules/react-focus-lock/dist/es2015/FocusGuard.js","webpack://lcb-research-content/./node_modules/tslib/tslib.es6.js","webpack://lcb-research-content/./node_modules/use-sidecar/dist/es2015/medium.js","webpack://lcb-research-content/./node_modules/react-focus-lock/dist/es2015/medium.js","webpack://lcb-research-content/./node_modules/react-focus-lock/dist/es2015/Lock.js","webpack://lcb-research-content/./node_modules/react-clientside-effect/lib/index.es.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/utils/is.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/utils/correctFocus.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/utils/firstFocus.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/solver.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/utils/array.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/utils/tabOrder.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/utils/tabUtils.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/utils/tabbables.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/utils/DOMutils.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/utils/all-affected.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/utils/getActiveElement.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/utils/parenting.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/focusMerge.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/setFocus.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/index.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/focusInside.js","webpack://lcb-research-content/./node_modules/react-focus-lock/dist/es2015/util.js","webpack://lcb-research-content/./node_modules/react-focus-lock/dist/es2015/Trap.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/focusIsHidden.js","webpack://lcb-research-content/./node_modules/focus-lock/dist/es2015/focusables.js","webpack://lcb-research-content/./node_modules/react-focus-lock/dist/es2015/Combination.js","webpack://lcb-research-content/./node_modules/react-focus-lock/dist/es2015/index.js","webpack://lcb-research-content/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js","webpack://lcb-research-content/./node_modules/react-remove-scroll/dist/es2015/medium.js","webpack://lcb-research-content/./node_modules/react-remove-scroll/dist/es2015/UI.js","webpack://lcb-research-content/./node_modules/use-sidecar/dist/es2015/exports.js","webpack://lcb-research-content/./node_modules/get-nonce/dist/es2015/index.js","webpack://lcb-research-content/./node_modules/react-style-singleton/dist/es2015/singleton.js","webpack://lcb-research-content/./node_modules/react-style-singleton/dist/es2015/component.js","webpack://lcb-research-content/./node_modules/react-style-singleton/dist/es2015/hook.js","webpack://lcb-research-content/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js","webpack://lcb-research-content/./node_modules/react-remove-scroll-bar/dist/es2015/component.js","webpack://lcb-research-content/./node_modules/react-remove-scroll/dist/es2015/handleScroll.js","webpack://lcb-research-content/./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","webpack://lcb-research-content/./node_modules/react-remove-scroll/dist/es2015/SideEffect.js","webpack://lcb-research-content/./node_modules/react-remove-scroll/dist/es2015/sidecar.js","webpack://lcb-research-content/./node_modules/react-remove-scroll/dist/es2015/Combination.js","webpack://lcb-research-content/./node_modules/@reach/dialog/dist/reach-dialog.esm.js","webpack://lcb-research-content/../src/context.tsx","webpack://lcb-research-content/../src/lib/isPlainObject.ts","webpack://lcb-research-content/../src/lib/getCookie.ts","webpack://lcb-research-content/../src/lib/sprintf.ts","webpack://lcb-research-content/../src/usePrismicPreviewContext.tsx","webpack://lcb-research-content/../src/useMergePrismicPreviewData.ts","webpack://lcb-research-content/../src/lib/isProxy.ts","webpack://lcb-research-content/../src/usePrismicPreviewAccessToken.ts","webpack://lcb-research-content/../src/lib/setCookie.ts","webpack://lcb-research-content/../src/lib/removeCookie.ts","webpack://lcb-research-content/../src/lib/defaultFieldTransformer.ts","webpack://lcb-research-content/../src/lib/extractPreviewRefRepositoryName.ts","webpack://lcb-research-content/../src/lib/buildTypePathsStoreFilename.ts","webpack://lcb-research-content/../src/lib/fetchTypePaths.ts","webpack://lcb-research-content/../src/lib/fetchJSON.ts","webpack://lcb-research-content/../src/lib/getPreviewRef.ts","webpack://lcb-research-content/../src/lib/isPreviewSession.ts","webpack://lcb-research-content/../src/lib/mapRecordIndices.ts","webpack://lcb-research-content/../src/fieldProxies/documentDataFieldProxy.ts","webpack://lcb-research-content/../src/lib/createGetProxy.ts","webpack://lcb-research-content/../src/fieldProxies/alternativeLanguagesFieldProxy.ts","webpack://lcb-research-content/../src/fieldProxies/documentFieldProxy.ts","webpack://lcb-research-content/../src/fieldProxies/groupFieldProxy.ts","webpack://lcb-research-content/../src/lib/refineFieldValue.ts","webpack://lcb-research-content/../src/lib/arrowPath.ts","webpack://lcb-research-content/../src/lib/sanitizeImageURL.ts","webpack://lcb-research-content/../src/fieldProxies/imageFieldProxy.ts","webpack://lcb-research-content/../src/lib/stripURLQueryParameters.ts","webpack://lcb-research-content/../src/fieldProxies/linkFieldProxy.ts","webpack://lcb-research-content/../src/fieldProxies/sliceFieldProxy.ts","webpack://lcb-research-content/../src/fieldProxies/slicesFieldProxy.ts","webpack://lcb-research-content/../src/fieldProxies/structuredTextFieldProxy.ts","webpack://lcb-research-content/../src/lib/serializePath.ts","webpack://lcb-research-content/../src/lib/proxyDocumentSubtree.ts","webpack://lcb-research-content/../src/lib/proxyDocumentNodeInput.ts","webpack://lcb-research-content/../src/usePrismicPreviewBootstrap.ts","webpack://lcb-research-content/../src/lib/isPreviewResolverSession.ts","webpack://lcb-research-content/../src/lib/getURLSearchParam.ts","webpack://lcb-research-content/../src/lib/getComponentDisplayName.ts","webpack://lcb-research-content/../src/components/Root.tsx","webpack://lcb-research-content/../src/components/Modal.tsx","webpack://lcb-research-content/../src/components/Button.tsx","webpack://lcb-research-content/../src/components/Text.tsx","webpack://lcb-research-content/../src/components/ModalAccessToken.tsx","webpack://lcb-research-content/../src/components/ModalError.tsx","webpack://lcb-research-content/../src/components/ModalLoading.tsx","webpack://lcb-research-content/../src/components/PrismicPreviewUI.tsx","webpack://lcb-research-content/../src/lib/userFriendlyError.ts","webpack://lcb-research-content/../src/withPrismicPreview.tsx","webpack://lcb-research-content/../src/withPrismicPreviewResolver.tsx","webpack://lcb-research-content/../src/usePrismicPreviewResolver.ts","webpack://lcb-research-content/../src/withPrismicUnpublishedPreview.tsx","webpack://lcb-research-content/../src/lib/camelCase.ts","webpack://lcb-research-content/../src/lib/getNodesForPath.ts","webpack://lcb-research-content/./node_modules/gatsby-plugin-prismic-previews/gatsby-browser.js","webpack://lcb-research-content/../src/types.ts","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/BreadcrumbItem.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/Breadcrumb.js","webpack://lcb-research-content/./src/components/ContentItem/ContentBreadcrumb.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/TabContext.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/AbstractNav.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/NavItem.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/Nav.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/TabContainer.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/TabContent.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/TabPane.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/ElementChildren.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/Tabs.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/Tab.js","webpack://lcb-research-content/./src/components/ContentItem/Description.js","webpack://lcb-research-content/./src/components/ContentItem/WebContent.js","webpack://lcb-research-content/./src/components/ContentItem/PdfViewer.tsx","webpack://lcb-research-content/./src/components/ContentItem/MainContentDisplay.js","webpack://lcb-research-content/./src/components/ContentItem/ContentCategory.js","webpack://lcb-research-content/./src/components/ContentItem/ItemSubjects.js","webpack://lcb-research-content/./src/components/ContentItem/DocumentDesignation.js","webpack://lcb-research-content/./src/components/ContentItem/ContentLink.js","webpack://lcb-research-content/./src/components/ContentItem/LinkToText.js","webpack://lcb-research-content/./src/components/ContentItem/TextOnly.js","webpack://lcb-research-content/./src/components/ContentItem/Versions.js","webpack://lcb-research-content/./src/components/ContentItem/RelatedContent.js","webpack://lcb-research-content/./src/components/ContentItem/Index.js","webpack://lcb-research-content/./node_modules/react-helmet/es/Helmet.js","webpack://lcb-research-content/./src/components/Layout/SEO.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/Collapse.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/NavbarBrand.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/NavbarCollapse.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/NavbarToggle.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/Navbar.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/matches.js","webpack://lcb-research-content/./node_modules/@restart/hooks/esm/useGlobalListener.js","webpack://lcb-research-content/./node_modules/@restart/hooks/esm/useEventListener.js","webpack://lcb-research-content/./node_modules/react-overlays/esm/DropdownContext.js","webpack://lcb-research-content/./node_modules/@restart/hooks/esm/useSafeState.js","webpack://lcb-research-content/./node_modules/@restart/hooks/esm/useMounted.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/math.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/within.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/enums.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/createPopper.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://lcb-research-content/./node_modules/react-overlays/esm/popper.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://lcb-research-content/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://lcb-research-content/./node_modules/react-overlays/esm/usePopper.js","webpack://lcb-research-content/./node_modules/react-overlays/esm/ownerDocument.js","webpack://lcb-research-content/./node_modules/react-overlays/esm/safeFindDOMNode.js","webpack://lcb-research-content/./node_modules/react-overlays/esm/useRootClose.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/contains.js","webpack://lcb-research-content/./node_modules/react-overlays/esm/mergeOptionsWithPopperConfig.js","webpack://lcb-research-content/./node_modules/react-overlays/esm/DropdownMenu.js","webpack://lcb-research-content/./node_modules/@restart/hooks/esm/useCallbackRef.js","webpack://lcb-research-content/./node_modules/react-overlays/esm/DropdownToggle.js","webpack://lcb-research-content/./node_modules/react-overlays/esm/Dropdown.js","webpack://lcb-research-content/./node_modules/@restart/hooks/esm/usePrevious.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/DropdownItem.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/useWrappedRefWithWarning.js","webpack://lcb-research-content/./node_modules/dom-helpers/esm/hasClass.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/usePopperMarginModifiers.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/DropdownMenu.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/DropdownToggle.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/Dropdown.js","webpack://lcb-research-content/./node_modules/react-bootstrap/esm/NavDropdown.js","webpack://lcb-research-content/./src/components/Layout/SideMenu.js","webpack://lcb-research-content/./src/components/Layout/index.js","webpack://lcb-research-content/./src/components/SubjectBadge.js","webpack://lcb-research-content/./src/utils/DateDisplay.js","webpack://lcb-research-content/./src/utils/LinkResolver.js","webpack://lcb-research-content/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://lcb-research-content/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://lcb-research-content/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://lcb-research-content/./node_modules/invariant/browser.js","webpack://lcb-research-content/./node_modules/regenerator-runtime/runtime.js","webpack://lcb-research-content/./src/images/logo.png","webpack://lcb-research-content/./node_modules/warning/warning.js"],"names":["module","exports","arr","len","length","i","arr2","Array","__esModule","isArray","arrayLikeToArray","self","ReferenceError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","fn","this","args","arguments","apply","err","undefined","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","protoProps","staticProps","prototype","_defineProperty","obj","_extends","assign","source","hasOwnProperty","call","_inheritsLoose","subClass","superClass","create","constructor","_objectWithoutPropertiesLoose","excluded","sourceKeys","keys","indexOf","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_arrayLikeToArray","_toConsumableArray","iter","Symbol","iterator","from","minLen","n","toString","slice","name","test","superPropBase","_get","Reflect","get","property","receiver","base","desc","getOwnPropertyDescriptor","_getPrototypeOf","getPrototypeOf","_i","_s","_e","_arr","_n","_d","next","push","_typeof","assertThisInitialized","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","object","arrayWithoutHoles","iterableToArray","nonIterableSpread","_objectSpread","ownKeys","getOwnPropertySymbols","concat","filter","sym","forEach","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","noop","_WINDOW","_DOCUMENT","_PERFORMANCE","mark","measure","window","document","MutationObserver","performance","e","_ref$userAgent","navigator","userAgent","WINDOW","DOCUMENT","PERFORMANCE","IS_DOM","documentElement","head","addEventListener","createElement","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","oneToTen","oneToTwenty","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","initial","map","FontAwesomeConfig","querySelector","_ref","_ref2","attr","val","coerce","element","getAttribute","getAttrConfig","_config","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","config","w","styles","hooks","shims","namespace","functions","doScroll","readyState","listener","removeEventListener","asyncTimer","PENDING","SETTLED","FULFILLED","REJECTED","NOOP","isNode","g","process","emit","asyncSetTimer","setImmediate","setTimeout","asyncQueue","asyncFlush","asyncCall","callback","invokeCallback","subscriber","owner","settled","_state","_data","promise","handleThenable","resolved","fulfill","reason","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","P","resolver","rejectPromise","invokeResolver","onFulfillment","onRejection","fulfilled","rejected","catch","all","promises","results","remaining","index","race","meaninglessTransform","size","x","y","rotate","flipX","flipY","insertCss","css","style","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","tagName","toUpperCase","insertBefore","nextUniqueId","id","Math","random","htmlEscape","str","replace","joinStyles","reduce","acc","styleName","transformIsMeaningful","transform","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","path","ALL_SPACE","width","height","fillBlack","abstract","force","attributes","fill","makeInlineSvgAbstract","params","_params$icons","icons","main","mask","prefix","iconName","symbol","title","maskId","titleId","extra","_params$watchable","watchable","found","isUploadedIcon","widthClass","ceil","attrClass","c","classes","join","content","children","role","uploadedIconWidthStyle","tag","explicitMaskId","mainWidth","mainPath","icon","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconMasking","styleString","makeIconStandard","asSymbol","offset","asIcon","noop$1","subject","initialValue","thisContext","result","func","a","b","d","bindInternal4","defineIcons","_params$skipHooks","skipHooks","normalized","addPack","build","lookup","reducer","ligatures","ligature","hasRegular","shim","oldName","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","attributeName","trim","joinAttributes","parseTransformString","transformString","toLowerCase","split","parts","first","rest","parseFloat","isNaN","MissingIcon","message","stack","Error","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","RING","OPACITY_ANIMATE","cx","cy","r","values","opacity","asFoundIcon","vectorData","class","dfp","drc","fp","rc","s","dPatt","RegExp","customPropPatt","rPatt","ensureCss","_cssInserted","apiObject","abstractCreator","container","html","findIconDefinition","iconLookup","_iconLookup$prefix","library","definitions","Library","_classCallCheck","_this","_len","_key","additions","_pullDefinitions","definition","0","_normalized$key","parse","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","type","maybeIconDefinition","enumerableOnly","symbols","_objectSpread2","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","sourceSymbolKeys","propertyIsEnumerable","camelize","string","match","chr","substr","styleToObject","pair","prop","startsWith","charAt","normalizeIconArgs","objectWithKey","FontAwesomeIcon","forwardedRef","iconArgs","maskArgs","className","_classes","spin","pulse","fixedWidth","inverse","border","listItem","flip","rotation","pull","swapOpacity","classList","renderedIcon","_console","console","log","extraProps","ref","defaultProps","convertCurry","displayName","propTypes","convert","mixins","attrs","_extraProps$style","existingStyle","bind","getLocation","_source$location","location","search","hash","href","origin","protocol","host","hostname","port","pathname","canUseDOM","URL","encodeURI","decodeURI","state","history","createHistory","options","listeners","transitioning","resolveTransition","_onTransitionComplete","listen","popstateListener","action","navigate","to","_ref$replace","go","Date","now","replaceState","pushState","transition","res","createMemorySource","initialPath","searchIndex","initialLocation","states","_","uri","_uri$split","_uri$split$","_uri$split2","_uri$split2$","newIndex","globalHistory","shallowCompare","validateRedirect","insertParams","pick","_invariant","_invariant2","default","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","l","missed","route","routeSegments","max","routeSegment","uriSegment","isSplat","decodeURIComponent","dynamicMatch","paramRe","exec","reservedNames","isDynamic","segment","rankRoute","score","isRootSegment","SEGMENT_POINTS","sort","addQuery","query","q","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","allSegments","segments","pop","_path$split","pathBase","_path$split$","constructedPath","_params$location","_params$location$sear","searchSplit","obj1","obj2","obj1Keys","every","tab","_hasbtoa","btoa","_hasBuffer","Buffer","_TE","TextDecoder","TextEncoder","b64chs","_fromCC","String","fromCharCode","_mkUriSafe","Uint8Array","src","m0","btoaPolyfill","bin","u32","c0","c1","c2","asc","pad","charCodeAt","substring","_btoa","_fromUint8Array","u8a","strs","subarray","cb_utob","cc","re_utob","utob","u","_encode","encode","urlsafe","gBase64","_unsupportedIterableToArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","DOMAIN_REGEX","DPR_QUALITIES","1","2","3","4","5","DEFAULT_OPTIONS","domain","useHTTPS","includeLibraryParam","urlPrefix","secureURLToken","validateRange","min","Number","isInteger","validateWidthTolerance","widthTolerance","ImgixClient","opts","settings","targetWidthsCache","libraryParam","version","minWidth","maxWidth","cache","minW","floor","maxW","cacheKey","resolutions","currentWidth","round","sanitizedPath","_sanitizePath","finalParams","_buildParams","_signParams","queryParams","entries","prev","encodedKey","encodeURIComponent","encodedValue","signatureBase","signature","_path","h","_buildDPRSrcSet","_buildSrcSetPairs","targetWidthValues","_validateAndDestructu2","validateAndDestructureOptions","widths","customWidths","validateWidths","targetWidths","buildURL","_this2","targetRatios","disableVariableQuality","validateVariableQuality","dpr","withQuality","documentToLinkField","prismicDocument","_a","_b","_c","link_type","uid","tags","lang","url","slug","slugs","data","asLink","linkFieldOrDocument","linkResolver","linkField","resolvedURL","asText","richTextField","separator","getLabel","node","label","serializeStandardTag","serializeHyperlink","createDefaultHTMLSerializer","_type","text","serializePreFormatted","imageTag","alt","copyright","linkTo","start","end","serializeImage","oembed","embed_url","provider_name","serializeEmbed","asHTML","htmlSerializer","serializer","mapSerializer","modifiedMapSerializer","_loop","tagSerializer","payload","wrapMapSerializerWithStringChildren","_createForOfIteratorHelper","allowArrayLike","it","F","f","normalCompletion","didErr","step","_e2","return","PrismicContext","PrismicProvider","client","richTextComponents","internalLinkComponent","externalLinkComponent","Provider","usePrismicContext","globalThis","env","PrismicLink","context","field","rel","InternalComponent","internalComponent","ExternalComponent","externalComponent","Component","isInternal","isSpecialLink","isInternalURL","passthroughProps","PrismicRichText","components","heading1","heading2","_ref3","heading3","_ref4","heading4","_ref5","heading5","_ref6","heading6","_ref7","paragraph","_ref8","preformatted","_ref9","strong","_ref10","em","_ref11","_ref12","oListItem","_ref13","list","_ref14","oList","_ref15","image","_ref16","img","embed","_ref17","dangerouslySetInnerHTML","__html","hyperlink","_ref18","_ref19","span","_ref20","_step","_iterator","line","serialized","_RichTextReversedNode","uuid","createTreeNode","createTextTreeNode","spans","prepareNodes","nodes","mutNodes","items","splice","nodeToTreeNode","textNodeSpansToTreeNodeChildren","parentSpan","mutSpans","parentSpanStart","spanStart","spanEnd","childSpans","j","siblingSpan","serialize","serializeTreeNodes","preparedNodes","asTree","serializedTreeNodes","treeNode","serializedTreeNode","RichTextReversedNodeType","wrapMapSerializer","composeSerializers","serializers","RichTextNodeType","LinkType","Any","Document","Media","Web","CustomTypeModelFieldType","Boolean","Color","Embed","GeoPoint","Group","Image","IntegrationFields","Link","Select","Slices","StructuredText","Text","Timestamp","UID","CustomTypeModelSliceType","Slice","SharedSlice","t","freeze","Icon","bookmark","depth","doc","numberOfSiblings","store","m","onJumpToDest","useState","k","tabIndex","paddingLeft","onClick","dest","newWindow","bookmarks","isRoot","Collapse","Expand","useRef","querySelectorAll","current","HTMLElement","contains","preventDefault","v","E","activeElement","closest","click","getElementsByClassName","focus","parentElement","useEffect","subscribe","unsubscribe","getDestination","pageIndex","bottomOffset","scaleTo","useContext","LocalizationContext","isLoaded","getOutline","noBookmark","Spinner","bookmarkPlugin","useMemo","createStore","linkAnnotations","install","update","jumpToDestination","onDocumentLoad","Bookmarks","onAnnotationLayerRender","annotations","subtype","AnnotationType","FreeText","Line","Square","Circle","Polygon","Polyline","Highlight","Underline","Squiggly","StrikeOut","Stamp","Caret","Ink","Popup","FileAttachment","LayerRenderStatus","PreRender","DidRender","Position","TopLeft","TopCenter","TopRight","RightTop","RightCenter","RightBottom","BottomLeft","BottomCenter","BottomRight","LeftTop","LeftCenter","LeftBottom","SpecialZoomLevel","ActualSize","PageFit","PageWidth","ToggleStatus","Close","Open","Toggle","useLayoutEffect","focusable","viewBox","_v","_m","ariaLabel","placeholder","onChange","onKeyDown","_t","ariaControlsSuffix","closeOnClickOutside","closeOnEscape","onToggle","getComputedStyle","body","overflow","clientHeight","getBoundingClientRect","maxHeight","opened","toggle","Fragment","C","L","T","top","left","O","customClassName","position","S","targetRef","onClose","R","M","contentRef","N","createContext","A","core","askingPassword","requirePasswordToOpen","submit","wrongPassword","tryAgain","pageLabel","H","localization","I","currentTheme","setCurrentTheme","B","D","theme","onSwitchTheme","matchMedia","matches","W","threshold","onVisibilityChanged","IntersectionObserver","isIntersecting","intersectionRatio","isVisible","ratio","observe","unobserve","Solid","Dashed","Beveled","Inset","V","z","parseInt","annotation","modificationDate","UTC","toLocaleDateString","toLocaleTimeString","zIndex","annotationType","contents","Click","Hover","Z","ignoreBorder","hasPopup","isRenderable","page","viewport","rect","closeOnHover","openOnHover","toggleOnClick","view","borderColor","borderRadius","borderStyle","borderWidth","borderBottomStyle","horizontalCornerRadius","verticalCornerRadius","color","popup","slot","transformOrigin","U","onMouseEnter","onMouseLeave","G","preserveAspectRatio","rx","ry","stroke","strokeWidth","J","file","filename","createObjectURL","Blob","display","appendChild","removeChild","revokeObjectURL","onDoubleClick","K","X","parentType","parentId","Y","childAnnotation","quadPoints","Q","inkLists","points","$","x1","lineCoordinates","x2","y1","y2","ee","getPageIndex","destArray","te","onExecuteNamedAction","ne","vertices","re","oe","ae","ie","ce","se","le","pe","ue","de","fe","ve","ge","me","containerRef","plugins","scale","getViewport","clone","dontFlip","find","he","renderAnnotations","loading","getAnnotations","intent","Ee","ye","xe","devicePixelRatio","cancel","onCanvasLayerRender","ele","status","getContext","alpha","render","canvasContext","removeProperty","we","getOperatorList","SVGGraphics","commonObjs","objs","getSVG","onTextLayerRender","getTextContent","renderTextLayer","textContent","enhanceTextSelection","add","be","currentPage","renderPage","onPageVisibilityChanged","pageHeight","pageWidth","viewportRotation","abs","getPage","canvasLayer","textLayer","annotationLayer","svgLayer","renderPageLayer","Pe","clientWidth","ke","initialPage","pageSize","viewerState","onOpenFile","onPageChange","onZoom","numPages","onViewerStateChange","scrollTop","offsetTop","scrollLeft","offsetLeft","FileReader","readAsArrayBuffer","onload","getPageElement","getPagesContainer","getViewerState","jumpToPage","openFile","setViewerState","zoom","uninstall","subSlot","renderViewer","Ce","Le","defaultScale","findIndex","Te","Oe","verifyPasswordFn","Se","Re","Me","Ne","percentages","Ae","He","Ie","characterMap","httpHeaders","renderError","renderLoader","transformGetDocumentParams","withCredentials","PDFWorker","worker","cMapUrl","cMapPacked","isCompressed","getDocument","onPassword","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","onProgress","total","loaded","destroyed","destroy","Button","LocalizationProvider","Menu","MenuDivider","MenuItem","checked","isDisabled","MinimalButton","ariaKeyShortcuts","isSelected","Modal","Popover","ariaHasPopup","PrimaryButton","ProgressBar","progress","Separator","TextBox","ThemeContext","ThemeProvider","Tooltip","onBlur","relatedTarget","currentTarget","onFocus","Viewer","fileUrl","shouldLoad","Worker","workerUrl","GlobalWorkerOptions","workerSrc","classNames","isMac","platform","useIntersectionObserver","useIsomorphicLayoutEffect","_u","fullScreen","enterFullScreen","ExitFullScreen","FullScreenChange","FullScreenElement","FullScreenEnabled","RequestFullScreen","onEnterFullScreen","onExitFullScreen","exitFullScreen","ExitFullScreenIcon","FullScreenIcon","fullScreenPlugin","EnterFullScreen","EnterFullScreenButton","EnterFullScreenMenuItem","_r","download","fileNameGenerator","DownloadIcon","getFilePlugin","Download","DownloadButton","DownloadMenuItem","_o","open","createRef","multiple","files","OpenFileIcon","openPlugin","OpenButton","OpenMenuItem","numberOfPages","pageNavigation","enterPageNumber","goToFirstPage","goToLastPage","goToNextPage","goToPreviousPage","DownArrowIcon","NextIcon","PreviousIcon","UpArrowIcon","pageNavigationPlugin","CurrentPageInput","CurrentPageLabel","GoToFirstPage","GoToFirstPageButton","GoToFirstPageMenuItem","GoToLastPage","GoToLastPageButton","GoToLastPageMenuItem","GoToNextPage","GoToNextPageButton","GoToNextPageMenuItem","GoToPreviousPage","GoToPreviousPageButton","GoToPreviousPageMenuItem","enableShortcuts","print","Inactive","Preparing","Cancelled","Ready","numLoadedPages","onCancel","preparingDocument","canvas","onLoad","save","fillStyle","fillRect","restore","toBlob","toDataURL","printStatus","remove","createPortal","shiftKey","altKey","metaKey","ctrlKey","PrintIcon","printPlugin","Print","PrintButton","PrintMenuItem","getMetadata","getDownloadInfo","fileName","contentDispositionFilename","properties","fileSize","pow","toFixed","Title","author","Author","Subject","keywords","Keywords","creator","Creator","creationDate","CreationDate","ModDate","pdfProducer","Producer","pdfVersion","PDFFormatVersion","pageCount","close","showProperties","currentDoc","InfoIcon","propertiesPlugin","ShowProperties","ShowPropertiesButton","ShowPropertiesMenuItem","RotateDirection","Backward","Forward","direction","rotateBackward","rotateForward","RotateBackwardIcon","RotateForwardIcon","rotatePlugin","Rotate","RotateBackwardButton","RotateBackwardMenuItem","RotateForwardButton","RotateForwardMenuItem","ScrollMode","Horizontal","Vertical","Wrapped","_l","mode","scrollMode","horizontalScrolling","wrappedScrolling","verticalScrolling","switchTo","HorizontalScrollingIcon","VerticalScrollingIcon","WrappedScrollingIcon","scrollModePlugin","SwitchScrollMode","SwitchScrollModeButton","SwitchScrollModeMenuItem","wholeWords","keyword","matchCase","matchIndex","pageContent","pageText","startIndex","endIndex","lastIndex","clearKeyword","changeMatchCase","changeWholeWords","currentMatch","jumpToMatch","jumpToNextMatch","jumpToPreviousMatch","numberOfMatches","searchFor","setKeywords","setKeyword","enterToSearch","previousMatch","nextMatch","parentNode","createRange","selectNodeContents","extractContents","normalize","onHighlightKeyword","has","char","charIndexInSpan","spanIndex","flags","indexes","firstChild","setStart","setEnd","surroundContents","highlightEle","SearchIcon","searchPlugin","renderStatus","Map","clear","set","Search","ShowSearchPopover","ShowSearchPopoverButton","clearHighlights","highlight","SelectionMode","Hand","selectionMode","handTool","textSelectionTool","clientY","clientX","stopPropagation","HandToolIcon","TextSelectionIcon","selectionModePlugin","SwitchSelectionMode","SwitchSelectionModeButton","SwitchSelectionModeMenuItem","switchLightTheme","switchDarkTheme","DarkIcon","LightIcon","themePlugin","SwitchTheme","SwitchThemeButton","SwitchThemeMenuItem","_E","toolbarSlot","toolbar","moreActions","NumberOfPages","Zoom","ZoomIn","ZoomOut","toolbarPlugin","zoomPlugin","fullScreenPluginInstance","getFilePluginInstance","openPluginInstance","pageNavigationPluginInstance","printPluginInstance","propertiesPluginInstance","rotatePluginInstance","scrollModePluginInstance","searchPluginInstance","selectionModePluginInstance","themePluginInstance","zoomPluginInstance","Toolbar","CurrentScale","ZoomInMenuItem","ZoomOutMenuItem","zoomDocument","actualSize","pageFit","zoomIn","zoomOut","ZoomInIcon","ZoomOutIcon","zoomTo","ZoomInButton","ZoomOutButton","ZoomPopover","useEventCallback","useCallback","useForceUpdate","useReducer","toFnRef","refA","refB","mergeRefs","_assign","camelCaseTransform","input","camelCaseTransformMerge","camelCase","pascalCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","character","preserveCamelCase","p1","charenc","utf8","stringToBytes","unescape","bytesToString","bytes","escape","hasOwn","argType","strings","raw","_createClass","_templateObject","TemplateTag","transformers","_len2","expressions","_key2","interimTag","transformEndResult","processSubstitutions","transformer","previousTag","template","_len3","substitutions","_key3","resultSoFar","remainingPart","substitution","transformSubstitution","shift","onString","onSubstitution","endResult","onEndResult","defaults","conjunction","serial","arrayLength","indent","separatorIndex","lastIndexOf","el","regexp","side","splitBy","includes","isValidValue","replaceWhat","replaceWith","base64map","crypt","rotl","rotr","endian","randomBytes","bytesToWords","words","wordsToBytes","bytesToHex","hex","hexToBytes","bytesToBase64","base64","triplet","base64ToBytes","imod4","__assign","stringifyAttribute","stringified","expires","setMilliseconds","getMilliseconds","toUTCString","secure","sameSite","stringifyAttributes","cookieString","cookies","rdecode","cookie","getAll","matchHtmlRegExp","Apply_1","DoClass","do","chain","doL","bindL","let","letL","sequenceS","sequenceSL","init","Do","of","getApplicativeMonoid","getApplySemigroup","empty","ap","fa","fab","gab","ga","apFirst","second","apSecond","apS","fb","curried","combined","tupleConstructors","getTupleConstructor","tuple","sequenceT","fas","getRecordConstructor","fr","chainFirst","ma","right","_map","pipe","_ap","_chain","_reduce","_foldMap","foldMapM","foldMap","_reduceRight","reduceRight","_traverse","traverseF","traverse","ta","_bimap","bimap","_mapLeft","mapLeft","_alt","that","_extend","wa","extend","_chainRec","startWith","ab","_tag","tailRec","isLeft","URI","getShow","SE","SA","show","getEq","EL","EA","equals","isRight","getSemigroup","getCompactable","compact","separate","getFilterable","predicate","filterMap","ob","partition","partitionMap","getWitherable","F_","sequence","wither","Traversable","wilt","getApplicativeValidation","getAltValidation","ea","Pointed","apW","chainW","Monad","Foldable","Bifunctor","altW","Alt","Extend","ChainRec","chainRec","throwError","MonadThrow","fromEither","identity","fromPredicate","fromOption","matchW","onLeft","onRight","foldW","fold","getOrElseW","getOrElse","flap","chainFirstW","flattenW","flatten","duplicate","fromOptionK","chainOptionK","filterOrElse","filterOrElseW","swap","orElseW","orElse","fromNullable","tryCatch","onThrow","tryCatchK","fromNullableK","flow","chainNullableK","toUnion","toError","elem","elemE_1","exists","bindTo","bindW","apSW","ApT","traverseReadonlyNonEmptyArrayWithIndex","as","out","e_1","traverseReadonlyArrayWithIndex","traverseArrayWithIndex","traverseArray","sequenceArray","parseJSON","onError","JSON","stringifyJSON","stringify","either","getApplyMonoid","getValidationSemigroup","getValidationMonoid","MA","getValidation","rightF","leftF","fea","altValidation","e1","e2","matchE","orElseFirst","orElseM","eb","orLeft","fromEquals","_equals","eqStrict","onNone","onFalse","fromOptionF","fromOptionKF","fromEitherK","chainEitherK","fromEitherKF","fromIOK","fromIO","chainIOK","chainFirstIOK","chainFirstM","ask","fromReader","asks","guard","zero","none","some","getLeft","getRight","_filter","_filterMap","_partition","_partitionMap","isNone","getOrd","compare","isSome","getMonoid","Zero","Alternative","defaultSeparated","Compactable","Filterable","_wither","_wilt","_witherF","_wiltF","onSome","toNullable","constNull","toUndefined","constUndefined","o_1","getRefinement","getOption","mapNullable","getFirstMonoid","getLastMonoid","last","equalsDefault","fromCompare","_compare","constTrue","not","local","r2","asksReaderW","constant","Functor","Apply","fromTask","_apPar","ApplyPar","fromTaskEither","rightIO","SK","struct","semigroups","intercalate","middle","semigroupVoid","getObjectSemigroup","getLastSemigroup","getFirstSemigroup","getTupleSemigroup","getStructSemigroup","getDualSemigroup","getJoinSemigroup","getMeetSemigroup","getIntercalateSemigroup","concatAllS","semigroupAll","semigroupAny","getFunctionSemigroup","semigroupString","semigroupSum","semigroupProduct","separated","delay","millis","_apSeq","getRaceMonoid","never","ApplicativePar","ApplySeq","ApplicativeSeq","Chain","MonadIO","MonadTask","FromIO","FromTask","traverseReadonlyNonEmptyArrayWithIndexSeq","bs","traverseReadonlyArrayWithIndexSeq","traverseSeqArrayWithIndex","traverseSeqArray","sequenceSeqArray","task","taskSeq","fga","_compact","fge","fgb","fromTaskK","chainTaskK","chainFirstTaskK","rightTask","leftTask","leftIO","fromIOEither","fromTaskOption","matchEW","onRejected","orElseFirstW","fromTaskOptionK","chainTaskOptionK","fromIOEitherK","chainIOEitherKW","chainIOEitherK","getApplicativeTaskValidation","getAltTaskValidation","_alt2","chainEitherKW","taskify","bracket","acquire","use","release","ebs","taskEither","taskEitherSeq","getTaskValidation","applicativeTaskValidation","altTaskValidation","wiltDefault","witherDefault","getBooleanAlgebra","meet","one","implies","getSemigroupM","getSemiring","mul","getRing","sub","unsafeCoerce","constFalse","constVoid","bc","cd","ef","fg","gh","hi","ij","increment","decrement","absurd","tupled","untupled","ret","hole","getEndomorphismMonoid","__spreadArray","il","singleton","isNonEmpty","tail","emptyReadonlyArray","emptyRecord","fromReadonlyNonEmptyArray","pipeable","isFunctor","contramap","isContravariant","mapWithIndex","isFunctorWithIndex","isApply","isChain","mma","isBifunctor","isExtend","isFoldable","reduceWithIndex","isFoldableWithIndex","foldMapWithIndex","reduceRightWithIndex","isAlt","isCompactable","isFilterable","filterWithIndex","isFilterableWithIndex","predicateWithIndex","filterMapWithIndex","partitionWithIndex","partitionMapWithIndex","promap","isProfunctor","compose","isSemigroupoid","isMonadThrow","function_1","_extendStatics","__extends","__","__spreadArrays","jl","failures","failure","success","Type","is","validate","decode","asDecoder","asEncoder","actual","getFunctionName","getContextEntry","decoder","appendContext","pushAll","xs","ys","getNameFromProps","useIdentity","codecs","getInterfaceTypeName","getPartialTypeName","getDomainKeys","isLiteralC","literal_1","isUnionC","types","undefinedType","getUnionName","mergeAll","us","equal","primitive","baseIsNotADictionary","UnknownRecord","us_1","us_2","getProps","codec","stripKeys","getOwnPropertyNames","shouldStrip","emptyTags","intersect","a_1","isAnyC","isTypeC","lazyCodecs","getTags","isStrictC","isExactC","isRefinementC","isIntersectionC","intersection_1","mergeTags","intersectTags","isRecursiveC","getIndex","_loop_1","keys_1","state_1","NullType","_super","nullType","UndefinedType","VoidType","voidType","UnknownType","unknown","StringType","NumberType","number","BigIntType","bigint","BooleanType","boolean","AnyArrayType","UnknownArray","AnyDictionaryType","LiteralType","literal","KeyofType","keyof","RefinementType","brand","refinement","Int","RecursiveType","runDefinition","recursion","Self","ArrayType","array","item","errors","ui","ai","InterfaceType","uk","ak","type_1","vak","PartialType","partial","type_2","DictionaryType","codomain","record","changed","ok","codomainResult","vok","enumerableRecord","domainResult","vk","nonEnumerableRecord","UnionType","union","tag_1","groups_1","len_1","find_1","TaggedUnionType","codecs_1","IntersectionType","intersection","TupleType","type_3","va","ReadonlyType","readonly","ReadonlyArrayType","readonlyArray","strict","exact","ExactType","isPartialC","getExactTypeName","FunctionType","Function","taggedUnion","warn","getValidationError","getDefaultContext","NeverType","AnyType","any","Dictionary","ObjectType","Integer","dictionary","StrictType","clean","alias","isBuffer","readFloatLE","isSlowBuffer","_isBuffer","global","starts_with_slashes","ends_with_slashes","pluses","query_separator","uri_parser","parseQuery","ps","pairs","Uri","uriParts","parseUri","queryPairs","hasAuthorityPrefixUserPref","thisArg","kValue","hasAuthorityPrefix","isColonUri","param","getQueryParamValue","getQueryParamValues","deleteQueryParam","keyMatchesFilter","valMatchesFilter","addQueryParam","hasQueryParam","replaceQueryParam","newVal","oldVal","method","scheme","userInfo","addTrailingSlash","anchor","md5","encoding","FF","_ff","GG","_gg","HH","_hh","II","_ii","aa","bb","dd","_blocksize","_digestsize","digestbytes","asBytes","asString","plural","ms","msAbs","isPlural","isFinite","long","fmtLong","fmtShort","getGlobal","fetch","Headers","Request","Response","lowerCase","DEFAULT_SPLIT_REGEXP","DEFAULT_STRIP_REGEXP","pascalCaseTransform","firstChar","lowerChars","pascalCaseTransformMerge","splitRegexp","stripRegexp","delimiter","noCase","validators","allPropTypes","validator","_createChainableTypeChecker2","_createChainableTypeChecker","propName","componentName","propFullName","componentNameSafe","propFullNameSafe","checkType","isRequired","chainedCheckType","_isPlaceholder","_curry1","f1","_curry2","f2","_concat","set1","set2","idx","len1","len2","_arity","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","_curryN","received","argsIdx","combinedIdx","origFn","_curry3","f3","_idx","_list","_isTransformer","_dispatchable","methodNames","xf","_isArray","transducer","_reduced","_result","XAll","_xfBase","functor","_isString","nodeType","XWrap","_xwrap","thisObj","_iterableReduce","_methodReduce","methodName","symIterator","_arrayReduce","XMap","_has","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","nIdx","ks","checkArgsLength","pathsArray","paths","_isInteger","pathAr","preds","XAny","applyF","applyX","_aperture","limit","XAperture","pos","full","getCopy","vals","mapValues","applySpec","spec","assocPath","nextObj","_isFunction","arity","lifted","_makeFlat","recursive","flatt","jlen","ilen","rxf","preservingReduced","monad","_cloneRegExp","pattern","ignoreCase","multiline","sticky","unicode","_clone","refFrom","refTo","deep","copy","copiedValue","valueOf","pred","_pipe","_checkForMethod","methodname","fromIndex","toIndex","Infinity","reverse","composeK","_pipeP","ctx","pipeP","composeP","_identity","headList","tailList","_arrayFromIterator","_includesWith","_uniqContentEquals","aIterator","bIterator","stackA","stackB","eq","aItem","typeA","_functionName","keysA","extendedStackA","extendedStackB","_indexOf","inf","_includes","_quote","toISOString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","_complement","_isObject","XFilter","filterable","_toString","seen","recur","mapPairs","NaN","repr","Fn","$0","$1","$2","$3","$4","$5","$6","$7","$8","$9","after","fns","XReduceBy","valueFn","valueAcc","keyFn","inputs","elt","hasOrAdd","shouldAdd","prevSize","_items","_nativeSet","bIdx","_Set","Set","firstLen","secondLen","toFilterOut","count","dissocPath","XDrop","XTake","dropLast","XDropLast","dropLastWhile","XDropLastWhile","retained","retain","flush","XDropRepeatsWith","lastValue","seenFirstValue","sameAsLast","XDropWhile","suffix","evolve","transformations","transformation","XFind","XFindIndex","XFindLast","XFindLastIndex","lastIdx","keyList","nextidx","condition","onTrue","elts","appliedItem","list1","list2","lookupList","filteredList","output","nextKey","_stepCatArray","_stepCatString","_stepCatObject","_stepCat","Ctor","_isNumber","getter","setter","toFunctorFn","mFn","mergeDeepWithKey","lObj","rObj","lVal","rVal","positiveFrom","positiveTo","_of","names","called","_assertPromise","Identity","lens","fst","snd","_createPartialApplicator","propPath","pipeK","RangeError","regex","replacement","traversable","comparator","XTakeWhile","XTap","outerlist","innerlist","ws","beginRx","endRx","tryer","catcher","endIdx","currentDepth","seed","whenFalseFn","vs","Const","whenTrueFn","testObj","rv","fnArgs","CloseButton","DivStyledAsH4","divWithClassName","AlertHeading","createWithBsPrefix","AlertLink","SafeAnchor","Fade","closeLabel","Alert","uncontrolledProps","_useUncontrolled","bsPrefix","variant","dismissible","handleClose","Transition","alert","unmountOnExit","in","Heading","Badge","pill","_ref$as","active","block","disabled","CardImg","DivStyledAsH5","DivStyledAsH6","CardBody","CardTitle","CardSubtitle","CardLink","CardText","CardHeader","CardFooter","CardImgOverlay","Card","bg","cardContext","cardHeaderBsPrefix","CardContext","Img","Subtitle","Body","Header","Footer","ImgOverlay","DEVICE_SIZES","Col","brkPoint","order","propValue","_propValue$span","infix","_fadeStyles","fadeStyles","handleEnter","onEnter","addEndListener","innerProps","timeout","mountOnEnter","appear","NavContext","AbstractNavItem","eventKey","onSelect","navKey","parentOnSelect","SelectableContext","navContext","isActive","contextControllerId","getControllerId","contextControlledId","getControlledId","activeKey","handleOnclick","NavLink","Row","noGutters","decoratedBsPrefix","sizePrefix","cols","isTrivialHref","handleClick","event","makeEventKey","Consumer","useBootstrapPrefix","defaultPrefix","prefixes","funcs","rHyphen","_temp","_ref$displayName","BsComponent","_ref2$as","Tag","resolvedPrefix","emulateTransitionEnd","duration","padding","handle","eventName","bubbles","cancelable","createEvent","initEvent","dispatchEvent","triggerEvent","once","clearTimeout","transitionEnd","handler","mult","removeEmulate","transitionEndListener","triggerBrowserReflow","offsetHeight","hasElementType","Element","hasMap","hasSet","hasArrayBuffer","ArrayBuffer","isView","$$typeof","ex","React","React__default","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","WrappedComponent","mountedInstances","emitChange","SideEffect","_PureComponent","peek","rewind","recordedState","_proto","UNSAFE_componentWillMount","componentDidUpdate","componentWillUnmount","PureComponent","getDisplayName","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","_React$Component","initialStatus","isMounting","enter","appearStatus","nextCallback","getDerivedStateFromProps","prevState","componentDidMount","updateStatus","prevProps","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","performEnter","performExit","setState","appearing","nodeRef","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","nextState","setNextCallback","_this4","doesNotHaveTimeoutOrListener","maybeNextCallback","_this$props","childProps","TransitionGroupContext","contextType","defaultKey","_toPropertyKey","hint","prim","toPrimitive","_toPrimitive","useUncontrolledProp","defaultValue","wasPropRef","_useState","stateValue","isProp","wasProp","useUncontrolled","fieldName","_extends2","propsValue","handlerName","_useUncontrolledProp","isCallable","tryToString","argument","isConstructor","wellKnownSymbol","definePropertyModule","UNSCOPABLES","ArrayPrototype","isObject","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","SPECIES","originalArray","arraySpeciesConstructor","uncurryThis","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tryGet","callee","getOwnPropertyDescriptorModule","exceptions","DESCRIPTORS","createPropertyDescriptor","bitmap","toPropertyKey","propertyKey","fails","EXISTS","getBuiltIn","Deno","versions","v8","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","sham","flattenIntoArray","original","sourceLen","mapper","elementLen","targetIndex","sourceIndex","mapFn","aCallable","NATIVE_BIND","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","aFunction","classof","getMethod","Iterators","ITERATOR","anObject","getIteratorMethod","usingIterator","iteratorMethod","check","toObject","functionToString","inspectSource","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","TYPE","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","feature","detection","POLYFILL","NATIVE","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","isArrayIteratorMethod","getIterator","iteratorClose","Result","stopped","ResultPrototype","iterable","unboundFunction","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","callFn","kind","innerResult","innerError","toLength","V8_VERSION","PromiseCapability","$$resolve","$$reject","activeXDocument","definePropertiesModule","enumBugKeys","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","write","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","contentWindow","Properties","V8_PROTOTYPE_DEFINE_BUG","objectKeys","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","propertyIsEnumerableModule","internalObjectKeys","$propertyIsEnumerable","NASHORN_BUG","pref","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","newPromiseCapability","promiseCapability","InternalStateModule","CONFIGURABLE_FUNCTION_NAME","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","SHARED","IS_PURE","license","aConstructor","defaultConstructor","PROPER_FUNCTION_NAME","whitespaces","METHOD_NAME","requireObjectCoercible","whitespace","ltrim","rtrim","toIntegerOrInfinity","integer","IndexedObject","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","postfix","NATIVE_SYMBOL","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","arraySpeciesCreate","proto","flat","depthArg","addToUnscopables","$hypot","hypot","sqrt","value1","value2","div","sum","aLen","larg","iterate","createProperty","fromEntries","newPromiseCapabilityModule","perform","allSettled","capability","promiseResolve","counter","alreadyCalled","NativePromise","speciesConstructor","real","onFinally","isFunction","$trimEnd","FORCED","forcedStringTrimMethod","trimEnd","trimRight","$trimStart","trimStart","trimLeft","optionsSupported","onceSupported","capture","wrappedHandler","__once","onceHandler","psuedoElement","ownerDocument","defaultView","ownerWindow","rUpper","msPattern","hyphenateStyleName","hyphenate","supportedTransforms","transforms","getPropertyValue","isTransform","cssText","toArray","qsa","selector","_interopRequireDefault","withPrefix","getGlobalPathPrefix","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_propTypes","_react","_reachRouter","_utils","_parsePath","parsePath","_excluded","isAbsolutePath","_prefix","getGlobalBasePrefix","isLocalLink","endsWith","rewriteLinkPath","relativeTo","absolutify","NavLinkPropTypes","activeClassName","activeStyle","partiallyActive","bool","GatsbyLinkLocationWrapper","Location","GatsbyLink","_location","defaultGetProps","isPartiallyCurrent","isCurrent","IOSupported","handleRef","_prefetch","currentPath","rewrittenPath","newPathName","___loader","enqueue","io","_this$io","disconnect","cb","innerRef","entry","_this$props$getProps","_onClick","_onMouseEnter","prefixedTo","hovering","button","defaultPrevented","shouldReplace","___navigate","_default","forwardRef","hashIndex","_scrollHandler","ScrollHandler","_useScrollRestoration","useScrollRestoration","ScrollContext","nodeInterop","_getRequireWildcardCache","newObj","hasPropertyDescriptor","_interopRequireWildcard","_sessionStorage","cacheBabelInterop","cacheNodeInterop","SessionStorage","_stateStorage","_isTicking","_latestKnownScrollY","scrollListener","scrollY","requestAnimationFrame","_saveScroll","windowScroll","shouldUpdateScroll","scrollTo","scrollToHash","getElementById","scrollIntoView","prevRouterProps","routerProps","scrollPosition","_this$props$location","read","_this$props$location2","GATSBY_ROUTER_SCROLL_STATE","stateKey","getStateKey","sessionStorage","getItem","storedValue","setItem","stateKeyBase","identifier","useLocation","onScroll","plugin","require","getResourceURLsForPathname","loadPage","loadPageSync","api","defaultReturn","argTransform","previous","on","off","evt","mitt","pathCache","matchPaths","trimPathname","rawPathname","stripPrefix","__BASE_PATH__","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","matchPath","originalPath","normalizePagePath","grabMatchParams","findPath","redirect","maybeGetBrowserRedirect","toPath","foundPath","prefetchPathname","loader","StaticQueryContext","StaticQueryDataRenderer","staticQueryData","finalData","StaticQuery","useStaticQuery","graphql","supportedPrefetchStrategy","fakeLink","relList","supports","support","link","onerror","getElementsByTagName","getElementsByName","req","XMLHttpRequest","send","preFetched","PageResourceStatus","Success","preferDefault","createPageDataUrl","__PATH_PREFIX__","doFetch","onreadystatechange","toPageResources","pageData","component","componentChunkName","webpackCompilationHash","staticQueryHashes","json","BaseLoader","loadComponent","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","prefetchTriggered","prefetchCompleted","memoizedGet","inFlightPromise","response","delete","setApiRunner","apiRunner","prefetchDisabled","fetchPageDataJson","loadObj","pagePath","retries","responseText","jsonPayload","notFound","loadPageDataJson","rawPath","loadAppData","allData","finalResult","componentChunkPromise","pageResources","createdAt","staticQueryBatchPromise","staticQueryHash","staticQueryResults","staticQueryResultsMap","emitter","withErrorDetails","shouldPrefetch","connection","effectiveType","saveData","doesConnectionSupportPrefetch","prefetch","realPath","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","ProdLoader","asyncRequires","chunkName","componentUrls","setLoader","_loader","publicLoader","getStaticQueryResults","PageRenderer","pageContext","__params","pageElement","RouteAnnouncerProps","clip","whiteSpace","maybeRedirect","___replace","nextRoute","onPreRouteUpdate","prevLocation","onRouteUpdate","___swUpdated","timeoutId","___webpackCompilationHash","serviceWorker","controller","postMessage","gatsbyApi","reachNavigate","getSavedScrollPosition","RouteAnnouncer","announcementRef","nextProps","pageName","pageHeadings","newAnnouncement","innerText","compareLocationProps","nextLocation","RouteUpdates","shouldComponentUpdate","shallowDiffers","loadResources","___emitter","___push","apiRunnerAsync","RouteHandler","BaseContext","baseuri","basepath","DataContext","GatsbyRoot","LocationHandler","Router","browserLoc","SiteRoot","App","onClientEntryRanRef","renderer","ReactDOM","runRender","rootElement","InternalPageRenderer","redirectMap","redirectIgnoreCaseMap","redirects","fromPath","register","reg","installingWorker","installing","___failedResources","reload","onServiceWorkerUpdateReady","confirm","wrapRootElement","repositoryConfigs","repositoryName","LinkResolver","componentResolver","componentResolverFromMap","ContentItem","contentType","utils_1","TE","buffer","headers","palette","dominant_colors","vibrant","PixelWidth","PixelHeight","fm","fieldConfigFactory","imgixClient","imgixClientOptions","js_core_1","ixlib","buildSrcSet","ns","customLogger","_uri","jsuri_1","safeData","msg","reporter","panic","resolverArgs","defaultParams","pluginName","sourceMetadata","format","breakpoints","srcSetMinWidth","srcSetMaxWidth","formats","generateImageSource","imageName","fit","imgixParams","resolveUrl","paramsInputType","quality","placeholderImgixParams","rootValue","manualWidth","resolveWidth","fpTsUtils_1","manualHeight","resolveHeight","modifiedArgs","sourceWidth","sourceHeight","defaultPlaceholderParams","fields","parameters_json_1","parameters","expects","expectsTypes","expect","short_description","aliases","fluidType","createBase64ConfigWithResolver","srcSet","srcWebp","srcSetWebp","sizes","aspectRatio","transformedKey","DOMINANT_COLOR","BLURRED","NONE","parseAspectRatioFloatFromString","ramda_1","DEFAULT_LQIP_PARAMS","blur","maxWidthAndHeightSet","ar","srcImgixParams","srcsetOptions","srcSetBreakpoints","srcsetImgixParams","createImgixFixedFieldConfig_1","srcset","srcsetWebp","sequenceSO","option","WidthHeightTE","internalObjectBuilders","buildFluidObject","buildImgixFixed","generateImageDataArgs","warned","formatArgs","useColors","humanize","diff","lastC","namespaces","storage","removeItem","load","DEBUG","__nwjs","WebkitAppearance","firebug","exception","table","localStorage","localstorage","colors","debug","formatters","createDebug","prevTime","namespacesCache","enabledCache","enableOverride","enabled","curr","unshift","formatter","logFn","selectColor","newDebug","toNamespace","disable","skips","enable","DEFAULT_PIXEL_DENSITIES","DEFAULT_BREAKPOINTS","EVERY_BREAKPOINT","sortNumeric","getSrcSet","images","formatFromFilename","dot","ext","setDefaultDimensions","layout","getLowResolutionImageURL","_generateImageSource","generateImageData","backgroundColor","placeholderURL","imageSizes","imgDimensions","erroneousUserDimensions","dim","outputPixelDensities","densities","dedupeAndSortDensities","calculated","getDimensionsAndAspectRatio","originalWidth","fixedDimension","stripIndent","density","presentationWidth","presentationHeight","unscaledWidth","responsiveImageSizes","calculateImageSizes","sources","imageSrc","unscaled","fallback","imageProps","dimensions","imageAspectRatio","widthOption","MAX_SAFE_INTEGER","heightOption","imageCache","hasNativeLazyLoadSupport","HTMLImageElement","GATSBY___IMAGE","storeImageloaded","hasImageLoaded","getImage","_node$images","_node$images$fallback","gatsbyImageData","childImageSharp","_node$childImageSharp","getSrc","_getImage","_getImage$images","_getImage$images$fall","_getImage2","_getImage2$images","_getImage2$images$fal","getImageData","baseUrl","urlBuilder","_breakpoints","getMainProps","isLoading","toggleLoaded","dataset","objectFit","objectPosition","objectFitPolyfill","import","data-main-image","currentSrc","getPlaceholderProps","wrapperStyle","bottom","aria-hidden","data-placeholder-image","withArtDirection","defaultImage","artDirected","media","Sizer","paddingTop","LayoutWrapper","decoding","Picture","fallbackImage","PropTypes","Placeholder","_Picture$propTypes","MainImage","altValidator","GatsbyImageHydrator","_lazyHydrate","hasSSRHtml","root","hydrated","lazyHydrator","lazyHydrate","toggleIsLoaded","forceRender","_setupIntersectionObserver","useCache","intersectionObserver","createIntersectionObserver","onStartLoad","wasCached","unobserveRef","hasChanged","_this5","ssrElement","complete","data-gatsby-image-wrapper","wStyle","wClass","wrapperProps","sizer","suppressHydrationWarning","GatsbyImage","propsKey","checkDimensionProps","validLayouts","StaticImage","GatsbyImageBrowser","imageData","__imageData","__error","LaterHydrator","localizedManifests","defaultFilename","localizedManifest","app","start_url","pluginOptions","_paq","difference","_window","dev","prevUrl","_pluginOptions$trackL","trackLoad","getTime","registerServiceWorker","GATSBY_IS_PREVIEW","whiteListLinkRels","prefetchedPathnames","setPathResources","resources","onServiceWorkerActive","headerResources","prefetchedResources","resource","onPostPrefetchPathname","WINDOW_PLUGIN_OPTIONS_KEY","ssrPluginOptionsStore","setupLegacyToolbar","endpoint","apiEndpoint","prismic","__spreadProps","setWindowPluginOptions","onClientEntryProgram","onClientEntry","_gatsbyContext","__async","Ord","keys_","_sequence","fromFoldableMap","traverseWithIndexO","_traverseWithIndex","traverseWithIndexOF","traverseO","traverseOF","keysO","ks_1","fromFoldableMapM","fka","mab","Applicative","_asyncToGenerator","_isNativeReflectConstruct","Proxy","_construct","Parent","Class","_inherits","_possibleConstructorReturn","_wrapNativeSuper","_cache","Wrapper","objectWithoutPropertiesLoose","_excluded2","_excluded3","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","predicateFn","RefStateType","RefStateType2","getEndpoint","castArray","RENAMED_PARAMS","accessToken","castOrderingToString","ordering","_buildQueryURL","predicates","searchParams","_predicate","append","scopedValue","appendPredicates","objWithPredicates","readValue","cookieStore","_step2","_iterator2","getCookie","isForbiddenErrorAPIResponse","ForbiddenError","_Error","oauth_initiate","oauth_token","ParsingError","_Error2","_super2","column","PrismicError","_Error3","_super3","preview","formatValue","pathWithArgsPredicate","formattedArgs","joiner","pathPredicate","at","_in","createSimpleTTLCache","cacheValue","expiresAt","ttl","typePredicate","documentType","tagsPredicate","findRef","refs","predicate2","ref2","createClient","_len4","_key4","Client","internalCache","refMode","autoPreviewsEnabled","queryContentFromRef","fetchFn","_fetch","_getResolvedRefString","_getCachedRepositoryForm","_getCachedRepository","_resolvePreviewURL","_buildQueryURL2","_getTags","_getReleaseByLabel","_getReleaseByID","_getReleases","_getMasterRef","_getRefByLabel","_getRefById","_getRefs","_getRepository","_getAllByTags","_getByTags","_getAllByTag","_getByTag","_getAllByType","_getByType","_getSingle","_getByUID","_getAllByIDs","_getByIDs","_getByID","_getAll","_getFirst","httpRequest","_callee","_context","buildQueryURL","sent","abrupt","_x","_callee2","firstResult","_context2","_x2","_callee3","_params$limit","actualParams","resolvedParams","documents","result2","_args3","_context3","total_pages","_callee4","_context4","getFirst","_x3","_x4","_callee5","ids","_context5","_x5","_x6","_callee6","_context6","_x7","_x8","_callee7","_context7","_x9","_x10","_x11","_callee8","_context8","_x12","_x13","_callee9","_context9","_x14","_x15","_callee10","_context10","_x16","_x17","_callee11","_context11","_x18","_x19","_callee12","_context12","_x20","_x21","_callee13","_context13","_x22","_x23","_callee14","_context14","_x24","_x25","_callee15","_context15","_callee16","_context16","getRepository","_callee17","_context17","getRefs","_x26","_callee18","_context18","_x27","_callee19","_context19","isMasterRef","_callee20","_context20","_callee21","releases","_context21","getReleases","_x28","_callee22","_context22","_x29","_callee23","tagsForm","_context23","getCachedRepositoryForm","t0","_callee24","_params$ref","_params$accessToken","_args24","_context24","getResolvedRefString","_callee25","documentId","previewToken","_context25","URLSearchParams","token","getByID","defaultURL","_x30","releaseId","releaseLabel","refStringOrFn","_callee26","cachedRepository","repository","_context26","_callee27","form","_context27","getCachedRepository","forms","_x31","_callee28","previewRef","_repository","thisRefStringOrFn","_repository2","_context28","getPreviewRefString","_callee29","_context29","t1","_x32","rightReader","extract","optionB","foldMapWithIndexM","pc","RESERVED_GATSBY_NODE_FIELDS","createNodeHelpers","typePrefix","fieldPrefix","gatsbyCreateNodeId","createNodeId","gatsbyCreateContentDigest","createContentDigest","createTypeName","nameParts","createFieldName","createNodeFactory","idIsGloballyUnique","internal","contentDigest","reservedField","sin","PI","toVal","mix","tmp","Portal","dispatch","_ref$type","mountNode","portalNode","forceUpdate","getOwnerDocument","_createForOfIteratorHelperLoose","assignRef","composeEventHandlers","theirHandler","ourHandler","FOCUS_GROUP","FOCUS_DISABLED","useMergeRefs","newValue","hiddenGuard","InFocusGuard","__rest","ItoI","innerCreateMedium","middleware","assigned","useMedium","assignSyncMedium","cbs","assignMedium","pendingQueue","executeQueue","cycle","createMedium","createSidecarMedium","medium","async","ssr","mediumFocus","mediumBlur","mediumEffect","mediumSidecar","emptyArray","FocusLock","parentRef","_React$useState","realObserved","setObserved","observed","originalFocusedElement","noFocusGuards","persistentFocus","crossFrame","autoFocus","group","allowTextSelection","whiteList","hasPositiveIndices","_props$shards","shards","_props$as","Container","_props$lockProps","lockProps","containerProps","SideCar","sideCar","shouldReturnFocus","returnFocus","focusOptions","onActivationCallback","onActivation","onDeactivationCallback","onDeactivation","allowDefer","returnFocusTo","howToReturnFocus","returnFocusOptions","setObserveNode","newObserved","hasLeadingGuards","hasTailingGuards","mergedRef","isVisibleUncached","checkParent","Node","DOCUMENT_NODE","ELEMENT_NODE","computedStyle","isElementHidden","DOCUMENT_FRAGMENT_NODE","isVisibleCached","visibilityCache","cached","getDataset","isHTMLInputElement","isRadioElement","isGuard","focusGuard","isNotAGuard","isDefined","correctNode","findSelectedRadio","pickFirstFocus","pickFocusable","NEW_FOCUS","newFocus","innerNodes","outerNodes","lastNode","cnt","firstFocus","lastFocus","isOnGuard","resultSet","activeIndex","lastNodeInside","indexDiff","firstNodeIndex","lastNodeIndex","correctedNodes","correctedIndexDiff","returnFirstNode","returnLastNode","asArray","tabSort","tabDiff","orderByTabIndex","filterNegative","keepGuards","queryTabbables","queryGuardTabbables","getFocusables","parents","withGuards","parent","filterFocusable","isHTMLButtonElement","ariaDisabled","notHiddenInput","getTabbableNodes","topNodes","getAllTabbableNodes","parentAutofocusables","topNode","parentFocus","getTopParent","getAllAffectedNodes","currentNode","contained","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","filterNested","getActiveElement","shadowRoot","getParents","getCommonParent","nodeA","nodeB","parentsA","parentsB","currentParent","getTopCommonParent","baseActiveElement","leftEntry","rightEntries","activeElements","leftEntries","topCommon","subEntry","common","getFocusMerge","commonParent","anyFocusable","innerElements","srcNodes","dstNodes","remap","autoFocusables","orderedInnerElements","entity","newId","autoFocusable","allParentAutofocusables","autofocus","guardCount","lockDisabled","focusInsideIframe","focusInside","deferAction","isFreeFocus","lastActiveTrap","lastActiveFocus","lastPortaledElement","focusWasOutsideWindow","defaultWhitelist","autoGuard","allNodes","lastGuard","focusAutoGuard","lockItem","extractRef","checkInHost","boundary","activateTrap","_lastActiveTrap","workingNode","portaledElement","workingArea","focusWhitelisted","area","withinHost","newActiveElement","focusedIndex","removeAttribute","onTrap","observerNode","onWindowBlur","moveFocusInside","propsList","traps","trap","lastTrap","sameTrap","FocusLockCombination","zeroRightClassName","fullWidthClassName","effectCar","nothing","RemoveScroll","onScrollCapture","onWheelCapture","onTouchMoveCapture","callbacks","setCallbacks","forwardProps","removeScrollBar","noIsolation","inert","allowPinchZoom","lockRef","fullWidth","zeroRight","currentNonce","Target","isSideCarExport","makeStyleTag","nonce","stylesheetSingleton","stylesheet","styleSheet","createTextNode","insertStyleTag","styleSingleton","sheet","useStyle","zeroGap","gap","getGapWidth","gapMode","offsets","cs","getOffset","documentWidth","windowWidth","innerWidth","Style","getStyles","allowRelative","important","RemoveScrollBar","setGap","noRelative","noImportant","locationCouldBeScrolled","axis","ShadowRoot","elementCouldBeScrolled","getScrollVariables","overflowY","overflowX","elementCouldBeVScrolled","elementCouldBeHScrolled","scrollHeight","scrollWidth","getHScrollVariables","passiveSupported","nonPassive","passive","getTouchXY","changedTouches","getDeltaXY","deltaX","deltaY","generateStyle","idCounter","lockStack","exported","shouldPreventQueue","touchStartRef","activeAxis","lastProps","allow_1","shouldCancelEvent","touches","currentAxis","touch","touchStart","moveDirection","canBeScrolledInMainDirection","cancelingAxis","endTarget","sourceDelta","noOverscroll","directionFactor","getDirectionFactor","delta","targetInLock","shouldCancelScroll","isDeltaPositive","availableScroll","availableScrollTop","elementScroll","handleScroll","shouldPrevent","_event","sourceEvent","should","shardNodes","shouldCancel","scrollTouchStart","scrollWheel","scrollTouchMove","inst","ReactRemoveScroll","DialogOverlay","Comp","_ref$isOpen","isOpen","__REACH_DISABLE_TOOLTIPS","DialogInner","_ref2$dangerouslyBypa","dangerouslyBypassFocusLock","_ref2$dangerouslyBypa2","dangerouslyBypassScrollLock","initialFocusRef","_ref2$onDismiss","onDismiss","onMouseDown","_ref2$unstable_lockFo","unstable_lockFocusAcrossFrames","mouseDownTarget","overlayNode","useComposedRefs","activateFocusLock","dialogNode","originalValues","rootNodes","_dialogNode$parentNod","_dialogNode$parentNod2","originalValue","createAriaHider","DialogContent","_ref3$as","PrismicPreviewState","PrismicPreviewState2","PrismicContextActionType","PrismicContextActionType2","isMapOrSet","getTag","IS_PROXY","PRISMIC_API_IMAGE_FIELDS","COOKIE_ACCESS_TOKEN_NAME","MISSING_REPOSITORY_CONFIG_MSG","MISSING_PLUGIN_OPTIONS_MSG","sprintf","populateAccessToken","pipe2","chain2","fromPredicate2","scope","cookieName","of2","contextReducer","SetActiveRepositoryName","activeRepositoryName","AppendNodes","prismicId","__spreadValues","AppendTypePaths","typePathsStore","typePaths","SetAccessToken","pluginOptionsStore","StartResolving","previewState","RESOLVING","Resolved","RESOLVED","resolvedPath","StartBootstrapping","BOOTSTRAPPING","isBootstrapped","Bootstrapped","ACTIVE","Failed","FAILED","NotAPreview","NOT_PREVIEW","PromptForAccessToken","PROMPT_FOR_ACCESS_TOKEN","GoToIdle","IDLE","defaultInitialState","createInitialState","map3","map2","defaultContextValue","PrismicPreviewProvider","initialState","reducerTuple","usePrismicPreviewContext","findAndReplacePreviewables","nodeOrLeaf","isProxy","previewableValue","PREVIEWABLE_NODE_ID_FIELD","newNode","subnode","useMergePrismicPreviewData","staticData","skip","isPreview","pipe3","fromPredicate3","nodes2","isEmpty","map4","traverseAndReplace","usePrismicPreviewAccessToken","contextState","contextDispatch","setAccessToken","remember","setCookie","removeAccessTokenCookie","removeCookie","useMemo2","defaultFieldTransformer","extractFirstSubdomain","parseObjectRef","pipe4","previewRef2","map5","chain3","findFirst","parseURLRef","extractPreviewRefRepositoryName","fold2","buildTypePathsStoreFilename","pipe5","map6","basename","buildTypePathsStoreURL","pipe6","chain4","map7","withAssetPrefix","fetchTypePaths","bind2","tryCatch2","fetchJSON","getPreviewRef","pipe7","cookie4","isPreviewSession","pipe8","chain5","map8","mapLeft2","mapRecordIndices","collect","valueRefinement","proxyValue","fieldValue","pipe9","ask2","chain6","transformFieldName","proxyDocumentSubtree","sequence2","Applicative2","createGetProxy","get2","proxyElement","pipe10","ask3","bind3","of3","map9","enhancedFieldValue","fromPredicate4","chain7","fromNullable2","getNode","valueRefinement2","proxyValue3","pipe11","ask4","bind4","fromPredicate5","isEmpty2","chain8","of4","map10","proxyValue2","alternate_languages","nodeHelpers","map11","__typename","alternative_languages","valueRefinement3","proxyValue4","pipe12","ask5","chain9","map12","fieldValueElement","mapWithIndex2","sequence3","Applicative3","sequenceArray2","refineFieldValue","intendedType","fromPredicate6","arrowPath","sanitizeImageURL","valueRefinement4","buildImageProxyValue","pipe14","ask6","bindW2","fromNullable3","fromOption2","right2","pipe13","tryCatch3","map13","getOrElse2","fromFoldable","last2","Foldable2","bind5","of5","existingImageImgixParams","imageImgixParams","mergedImageImgixParams","imagePlaceholderImgixParams","buildFixedObject","sanitizedURLBase","buildGatsbyImageDataObject","publicURL","fixed","fluid","map14","sanitizedURL","localFile","proxyValue5","chain10","baseFields","map15","thumbnailFields","sequence4","Applicative4","thumbnails","valueRefinement5","proxyValue6","pipe15","ask7","bind6","of6","asLink2","map16","fromPredicate7","fieldValue2","isBroken","chain11","fromNullable4","getOrElseW2","valueRefinement6","proxyValue7","pipe16","ask8","bind7","primary","mapWithIndex3","sequence5","Applicative5","map18","sequenceArray3","of7","map17","valueRefinement7","proxyValue8","pipe17","map19","slice_type","sequenceArray4","valueRefinement8","proxyValue9","pipe18","ask9","bind8","of8","map20","serializePath","md52","pipe19","ask10","bindW3","fromNullable5","getTypePath","fromOption3","chain12","PrismicSpecialType","CustomTypeModelFieldType2","of9","proxyDocumentNodeInput","nodeInput","usePrismicPreviewBootstrap","contextStateRef","useEffect2","useCallback2","resolvedRepositoryConfigs","repositoryConfig","repositoryPluginOptions","md53","GLOBAL_TYPE_PREFIX","fetchLinks","graphQuery","enableAutoPreviews","allDocuments","promptForAccessToken","allProxiedNodesOrError","pipe20","map21","sequenceArray5","getOrElseW3","of10","isPreviewResolverSession","pipe22","chain13","pipe21","fromNullable6","fromOption4","getComponentDisplayName","Root","CloseSVG","xmlns","PrismicLogo","fillWhite","__objRest","aria-label","clsx","data-gatsby-plugin-prismic-previews-repository-name","clsx2","variants","fontFamilyClassName","fontSizeClassName","leadingClassName","trackingClassName","variantName","restProps","clsx3","ModalAccessToken","initialAccessToken","afterSubmit","ephemeralAccessToken","setEphemeralAccessToken","useEffect4","onSubmit","spellCheck","required","clsx4","ModalError","errorMessage","ModalLoading","PrismicPreviewUI","afterAccessTokenSet","accessTokenActions","goToIdle","ForbiddenError3","withPrismicPreview","WithPrismicPreview","bootstrapPreview","mergedData","mergePreviewData","useCallback4","useEffect5","isPrismicPreview","prismicPreviewOriginalData","wrappedComponentName","withPrismicPreviewResolver","WithPrismicPreviewResolver","resolvePreview","useRef2","useEffect3","useCallback3","isLeft2","isNone2","getEndpoint2","createClient2","resolvePreviewURL","ForbiddenError2","usePrismicPreviewResolver","useCallback5","useEffect6","autoRedirect","prismicPreviewPath","componentMap","pipe24","bind9","some2","chain14","getOrElseW4","defaultDataResolver","camelCase2","fold3","useNodesForPath","useMemo3","nodesStore","pipe23","filter2","collect2","getNodesForPath","withPrismicUnpublishedPreview","WithPrismicUnpublishedPreview","nodesForPath","useActiveRepositoryConfig","ResolvedComponent","resolvedData","dataResolver","useCallback6","useEffect7","PrismicSpecialType2","PrismicWebhookType","PrismicWebhookType2","__export","PLUGIN_NAME","PRISMIC_API_NON_DATA_FIELDS","DEFAULT_CUSTOM_TYPES_API_ENDPOINT","DEFAULT_IMGIX_PARAMS","auto","DEFAULT_PLACEHOLDER_IMGIX_PARAMS","DEFAULT_LANG","REPORTER_TEMPLATE","WEBHOOK_SECRET_MISMATCH_MSG","WEBHOOK_TEST_TRIGGER_SUCCESS_MSG","MISSING_SCHEMAS_MSG","MISSING_SCHEMA_MSG","BreadcrumbItem","_ref$linkAs","linkAs","LinkComponent","linkProps","Breadcrumb","listProps","Item","data-wio-id","siteRoot","featured","needsRefocusRef","tabContext","listNode","getNextActiveChild","currentListNode","activeChild","nextIndex","handleSelect","useMergedRefs","nextActiveChild","rbEventKey","NavItem","Nav","_classNames","navbarBsPrefix","_useUncontrolled$as","initialBsPrefix","justify","navbar","navbarScroll","isNavbar","navbarContext","NavbarContext","generateCustomChildId","generateChildId","TabPane","_useTabContext","shouldTransition","useTabContext","_useTabContext$as","pane","getDefaultActiveKey","defaultActiveKey","renderTab","_child$props","tabClassName","Tabs","_useUncontrolled$acti","controlledProps","Tab","Content","Pane","resource_type","data-copyright","PdfViewer","toolbarPluginInstance","bookmarkPluginInstance","filepath","content_item_path","borderBottom","slots","faMinus","faPlus","faAngleLeft","faAngleRight","faFileDownload","faPrint","descriptionIsEmptyOrNull","richTextIsEmptyOrNull","setKey","content_category","content_category_has_landing_page","content_category_link","subjects","SubjectBadge","designation","faDatabase","faLink","contentItemPath","faFileAlt","has_text_only_version","text_only_file_name","fontSize","wordWrap","relatedContent","related_content","md","faAngleDoubleRight","prismicContent","Layout","SEO","researchLogo","date_published","FullDate","lg","related_content_items","document_designation","clock","_class","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","classCallCheck","createClass","objectWithoutProperties","possibleConstructorReturn","encodeSpecialCharacters","getTitleFromPropsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","currentTime","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","_helmetCallback","commitTagChanges","newState","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","attribute","indexToSave","headElement","tagNodes","indexToDelete","newElement","existingTag","isEqualNode","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","_ref$title","meta","noscript","script","HelmetSideEffects","defer","HelmetExport","HelmetWrapper","inherits","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","initAttributes","convertReactPropstoHtmlAttributes","_props","defaultTitle","titleTemplate","mappedState","renderStatic","site","metaDescription","siteMetadata","canonical","siteUrl","_collapseStyles","MARGINS","getDefaultDimensionValue","dimension","margins","collapseStyles","getDimensionValue","_ref$dimension","_ref$getDimensionValu","computedDimension","createChainedFunction","handleEntering","scroll","handleEntered","handleExit","handleExiting","NavbarBrand","NavbarCollapse","expanded","NavbarToggle","NavbarText","Navbar","expand","_onToggle","collapseOnSelect","handleCollapse","expandClass","Brand","matchesImpl","useGlobalListener","eventTarget","useEventListener","isMounted","mounted","useMounted","getBasePlacement","placement","getLayoutRect","clientRect","offsetWidth","getWindow","isElement","isHTMLElement","isShadowRoot","rootNode","getRootNode","isSameNode","getNodeName","nodeName","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","offsetParent","getOffsetParent","isFirefox","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","mergePaddingObject","paddingObject","expandToHashMap","hashMap","basePlacements","popper","variationPlacements","modifierPhases","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","roundOffsetsByDPR","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","pageXOffset","pageYOffset","getWindowScrollBarX","isScrollParent","_getComputedStyle","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","visualViewport","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","clientTop","clientLeft","getInnerBoundingClientRect","winScroll","getDocumentRect","getClippingRect","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","getVariation","computeOffsets","reference","basePlacement","variation","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","referenceElement","elements","rects","clippingClientRect","contextElement","referenceClientRect","popperOffsets","strategy","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","multiply","getSideOffsets","preventedOffsets","isAnySideFullyClipped","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","modifiers","visited","modifier","requires","requiresIfExists","dep","depModifier","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","cleanupModifierEffects","scrollParents","phase","orderModifiers","merged","existing","mergeByName","_ref3$options","effect","cleanupFn","noopFn","_state$elements","reset","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","referenceRect","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","_options$scroll","_options$resize","resize","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_offset","_min","_max","_preventedOffset","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","initialPopperStyles","pointerEvents","disabledApplyStylesModifier","ariaDescribedByModifier","_popper$getAttribute","_state$elements2","EMPTY_MODIFIERS","popperElement","_ref3$enabled","_ref3$placement","_ref3$strategy","_ref3$modifiers","popperInstanceRef","_popperInstanceRef$cu","_popperInstanceRef$cu2","_useSafeState","popperState","updateModifier","componentOrElement","safeFindDOMNode","getRefTarget","onRootClose","_ref$clickTrigger","clickTrigger","preventMouseRootCloseRef","handleMouseCapture","isLeftClickEvent","handleMouse","handleKeyUp","keyCode","currentEvent","removeMouseCaptureListener","removeMouseListener","removeKeyupListener","mobileSafariHackListeners","mergeOptionsWithPopperConfig","_modifiers$preventOve","_modifiers$preventOve2","_modifiers$offset","_modifiers$arrow","enableEvents","containerPadding","_ref$popperConfig","popperConfig","toModifierMap","eventListeners","useDropdownMenu","_useCallbackRef","attachArrowRef","hasShownRef","rootCloseEvent","_options$fixed","_options$popperConfig","_options$usePopper","usePopper","shouldUsePopper","alignEnd","drop","setMenu","menuElement","toggleElement","menuProps","hasShown","arrowProps","DropdownMenu","_useDropdownMenu","useDropdownToggle","_ref$show","_ref$toggle","setToggle","DropdownToggle","_useDropdownToggle","useRefWithUpdate","attachRef","Dropdown","defaultShow","rawShow","rawOnToggle","_ref$itemSelector","itemSelector","focusFirstItemOnShow","_useRefWithUpdate","menuRef","_useRefWithUpdate2","toggleRef","lastShow","lastSourceEvent","focusInDropdown","nextShow","focusToggle","maybeFocusFirst","focusType","nativeMatch","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","getNextFocusedChild","_menuRef$current","_toggleRef$current","fromMenu","fromToggle","DropdownItem","propActive","onSelectCtx","useWrappedRefWithWarning","hasClass","baseVal","getMargins","marginTop","marginRight","marginBottom","marginLeft","alignDirection","sm","xl","overlayRef","arrowMargins","popoverClass","dropdownMenuClass","align","alignRight","showProps","renderOnMount","_usePopperMarginModif","overlay","margin","_margins$current","_arrowMargins$current","_getMargins","popperRef","marginModifiers","alignClasses","_useDropdownMenu$","childBsPrefix","toggleProps","DropdownHeader","DropdownDivider","DropdownItemText","pProps","handleToggle","Divider","ItemText","NavDropdown","menuRole","renderMenuOnMount","navItemPrefix","allContent","featuredContent","divisionSubmenuOpen","setDivisionSubmenuOpen","contentSubmenuOpen","setcontentSubmenuOpen","featuresSubmenuOpen","setFeaturesSubmenuOpen","librarySubmenuOpen","setLibrarySubmenuOpen","libraryDbSubmenuOpen","setLibraryDbSubmenuOpen","csuSubmenuOpen","setCsuSubmenuOpen","aria-controls","faBars","aria-expanded","faSearch","subject_icon","subject_name","header","footer","prismicContentHome","prismicFeaturedHome","allPrismicSubject","edges","DateDisplay","date","displayDate","Intl","DateTimeFormat","month","year","timeZone","day","createNamedContext","Ctx","LocationContext","LocationProvider","unlisten","_props$history","componentDidCatch","isRedirect","_navigate","unmounted","ServerLocation","baseContext","locationContext","RouterImpl","_React$PureComponent","_navigate2","_props$component","domProps","createRoute","FocusWrapper","FocusHandler","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","_temp2","shouldFocus","myURIChanged","navigatedUpToMe","_props2","_props2$component","outline","_props$getProps","anchorProps","encodedHref","shouldNavigate","_location$state","restState","RedirectRequest","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","Redirect","Match","useNavigate","useParams","useMatch","stripSlashes","elementPath","argIndex","framesToPop","runtime","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","genFun","ctor","awrap","skipTempReset","rootRecord","rval","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","warning"],"mappings":"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","file":"app-e8e70bfdde22c57b1eaa.js","sourcesContent":["function _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++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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\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\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _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}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _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++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _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}","export default function _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}","function _extends() {\n module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var superPropBase = require(\"./superPropBase.js\");\n\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n\n return _get.apply(this, arguments);\n}\n\nmodule.exports = _get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _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\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _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\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","module.exports = require(\"regenerator-runtime\");\n","/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _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 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 _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\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\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_FAMILY_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\n\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\n\nvar PREFIX_TO_STYLE = {\n 'fas': 'solid',\n 'far': 'regular',\n 'fal': 'light',\n 'fad': 'duotone',\n 'fab': 'brands',\n 'fak': 'kit',\n 'fa': 'solid'\n};\nvar STYLE_TO_PREFIX = {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n};\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font Awesome ([5 ]*)(Solid|Regular|Light|Duotone|Brands|Free|Pro|Kit).*/; // TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\nvar FONT_WEIGHT_TO_PREFIX = {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal'\n};\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'flip-both', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n // For example \n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\nvar _config = _objectSpread({}, _default, initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\n\nvar config = _objectSpread({}, _config);\n\nWINDOW.FontAwesomeConfig = config;\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready(fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nvar PENDING = 'pending';\nvar SETTLED = 'settled';\nvar FULFILLED = 'fulfilled';\nvar REJECTED = 'rejected';\n\nvar NOOP = function NOOP() {};\n\nvar isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\nvar asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\nvar asyncQueue = [];\nvar asyncTimer;\n\nfunction asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n}\n\nfunction asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n}\n\nfunction invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n}\n\nfunction invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n}\n\nfunction handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n}\n\nfunction fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n}\n\nfunction publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n}\n\nfunction publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n}\n\nfunction publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n}\n\nfunction notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n}\n/**\n * @class\n */\n\n\nfunction P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n}\n\nP.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nP.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n};\n\nP.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n};\n\nP.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n};\n\nP.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n};\n\nvar picked = typeof Promise === 'function' ? Promise : P;\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\n\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\n\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\n\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\n\nfunction getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\n\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\n\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\n\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\n}\n\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\n\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\n\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nfunction makeIconMasking(_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction makeIconStandard(_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction asIcon(_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread({}, styles, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol(_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, attributes, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var widthClass = isUploadedIcon ? '' : \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread({}, uploadedIconWidthStyle, extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\n\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"5.15.3\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\nfunction toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\n\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = ('far' in styles);\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n};\n\nbuild();\n\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\n\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\n\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\n\nvar styles$1 = namespace.styles;\n\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\n\nfunction getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && Object.keys(PREFIX_TO_STYLE).indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\n\nvar disabled = false;\n\nfunction disableObservation() {\n disabled = true;\n}\n\nfunction enableObservation() {\n disabled = false;\n}\n\nvar mo = null;\n\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\n\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser(node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser(node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n}\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n};\n\nfunction transformParser(node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n}\n\nfunction symbolParser(node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n}\n\nfunction attributesParser(node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction maskParser(node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\n\nfunction parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n}\n\nfunction MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n}\n\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\nvar FILL = {\n fill: 'currentColor'\n};\nvar ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n};\nvar RING = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n};\n\nvar OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n});\n\nvar DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n};\nvar QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n};\nvar EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n};\nvar missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n};\nvar styles$2 = namespace.styles;\n\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\n\nfunction findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n}\n\nvar styles$3 = namespace.styles;\n\nfunction generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n}\n\nfunction generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return picked.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n}\n\nfunction generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function () {\n mark();\n reject();\n });\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar baseStyles = \"svg:not(:root).svg-inline--fa {\\n overflow: visible;\\n}\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.225em;\\n}\\n.svg-inline--fa.fa-w-1 {\\n width: 0.0625em;\\n}\\n.svg-inline--fa.fa-w-2 {\\n width: 0.125em;\\n}\\n.svg-inline--fa.fa-w-3 {\\n width: 0.1875em;\\n}\\n.svg-inline--fa.fa-w-4 {\\n width: 0.25em;\\n}\\n.svg-inline--fa.fa-w-5 {\\n width: 0.3125em;\\n}\\n.svg-inline--fa.fa-w-6 {\\n width: 0.375em;\\n}\\n.svg-inline--fa.fa-w-7 {\\n width: 0.4375em;\\n}\\n.svg-inline--fa.fa-w-8 {\\n width: 0.5em;\\n}\\n.svg-inline--fa.fa-w-9 {\\n width: 0.5625em;\\n}\\n.svg-inline--fa.fa-w-10 {\\n width: 0.625em;\\n}\\n.svg-inline--fa.fa-w-11 {\\n width: 0.6875em;\\n}\\n.svg-inline--fa.fa-w-12 {\\n width: 0.75em;\\n}\\n.svg-inline--fa.fa-w-13 {\\n width: 0.8125em;\\n}\\n.svg-inline--fa.fa-w-14 {\\n width: 0.875em;\\n}\\n.svg-inline--fa.fa-w-15 {\\n width: 0.9375em;\\n}\\n.svg-inline--fa.fa-w-16 {\\n width: 1em;\\n}\\n.svg-inline--fa.fa-w-17 {\\n width: 1.0625em;\\n}\\n.svg-inline--fa.fa-w-18 {\\n width: 1.125em;\\n}\\n.svg-inline--fa.fa-w-19 {\\n width: 1.1875em;\\n}\\n.svg-inline--fa.fa-w-20 {\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-border {\\n height: 1.5em;\\n}\\n.svg-inline--fa.fa-li {\\n width: 2em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: 1.25em;\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: #ff253a;\\n border-radius: 1em;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #fff;\\n height: 1.5em;\\n line-height: 1;\\n max-width: 5em;\\n min-width: 1.5em;\\n overflow: hidden;\\n padding: 0.25em;\\n right: 0;\\n text-overflow: ellipsis;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: 0;\\n right: 0;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: 0;\\n left: 0;\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n right: 0;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: 0;\\n right: auto;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-lg {\\n font-size: 1.3333333333em;\\n line-height: 0.75em;\\n vertical-align: -0.0667em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: 0.1em;\\n padding: 0.2em 0.25em 0.15em;\\n}\\n\\n.fa-pull-left {\\n float: left;\\n}\\n\\n.fa-pull-right {\\n float: right;\\n}\\n\\n.fa.fa-pull-left,\\n.fas.fa-pull-left,\\n.far.fa-pull-left,\\n.fal.fa-pull-left,\\n.fab.fa-pull-left {\\n margin-right: 0.3em;\\n}\\n.fa.fa-pull-right,\\n.fas.fa-pull-right,\\n.far.fa-pull-right,\\n.fal.fa-pull-right,\\n.fab.fa-pull-right {\\n margin-left: 0.3em;\\n}\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear;\\n}\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8);\\n}\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical,\\n:root .fa-flip-both {\\n -webkit-filter: none;\\n filter: none;\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: #fff;\\n}\\n\\n.sr-only {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse {\\n color: #fff;\\n}\";\n\nfunction css() {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nfunction apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread({}, params, {\n mask: mask\n }));\n };\n}\n\nvar library = new Library();\n\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n};\n\nvar _cssInserted = false;\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n};\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n};\nvar icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n});\n\nvar text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\n\nvar counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\n\nvar layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n};\n\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nexport { icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition };","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\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 = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\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\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n} // Get CSS class list from a props object\n\n\nfunction classList(props) {\n var _classes;\n\n var spin = props.spin,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-spin': spin,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n} // Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\n\n\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, [\"style\"]);\n\n mixins.attrs['style'] = _objectSpread2({}, mixins.attrs['style'], {}, existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2({}, mixins.attrs, {}, remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log() {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (_typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n} // creates an object with a key of key\n// and a value of value\n// if certain conditions are met\n\n\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nfunction FontAwesomeIcon(_ref) {\n var forwardedRef = _ref.forwardedRef,\n props = _objectWithoutProperties(_ref, [\"forwardedRef\"]);\n\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2({}, classes, {}, transform, {}, mask, {\n symbol: symbol,\n title: title,\n titleId: titleId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: forwardedRef\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n}\n\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n border: PropTypes.bool,\n className: PropTypes.string,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf(['horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n size: PropTypes.oneOf(['lg', 'xs', 'sm', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n fixedWidth: false,\n inverse: false,\n flip: null,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n symbol: false,\n title: '',\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\nexport { FontAwesomeIcon };","\"use strict\";\n\nexports.__esModule = true;\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 getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","/**\n * base64.ts\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n *\n * @author Dan Kogai (https://github.com/dankogai)\n */\nvar version = '3.7.2';\n/**\n * @deprecated use lowercase `version`.\n */\n\nvar VERSION = version;\n\nvar _hasatob = typeof atob === 'function';\n\nvar _hasbtoa = typeof btoa === 'function';\n\nvar _hasBuffer = typeof Buffer === 'function';\n\nvar _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;\n\nvar _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;\n\nvar b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nvar b64chs = Array.prototype.slice.call(b64ch);\n\nvar b64tab = function (a) {\n var tab = {};\n a.forEach(function (c, i) {\n return tab[c] = i;\n });\n return tab;\n}(b64chs);\n\nvar b64re = /^(?:[A-Za-z\\d+\\/]{4})*?(?:[A-Za-z\\d+\\/]{2}(?:==)?|[A-Za-z\\d+\\/]{3}=?)?$/;\n\nvar _fromCC = String.fromCharCode.bind(String);\n\nvar _U8Afrom = typeof Uint8Array.from === 'function' ? Uint8Array.from.bind(Uint8Array) : function (it) {\n var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (x) {\n return x;\n };\n return new Uint8Array(Array.prototype.slice.call(it, 0).map(fn));\n};\n\nvar _mkUriSafe = function _mkUriSafe(src) {\n return src.replace(/=/g, '').replace(/[+\\/]/g, function (m0) {\n return m0 == '+' ? '-' : '_';\n });\n};\n\nvar _tidyB64 = function _tidyB64(s) {\n return s.replace(/[^A-Za-z0-9\\+\\/]/g, '');\n};\n/**\n * polyfill version of `btoa`\n */\n\n\nvar btoaPolyfill = function btoaPolyfill(bin) {\n // console.log('polyfilled');\n var u32,\n c0,\n c1,\n c2,\n asc = '';\n var pad = bin.length % 3;\n\n for (var i = 0; i < bin.length;) {\n if ((c0 = bin.charCodeAt(i++)) > 255 || (c1 = bin.charCodeAt(i++)) > 255 || (c2 = bin.charCodeAt(i++)) > 255) throw new TypeError('invalid character found');\n u32 = c0 << 16 | c1 << 8 | c2;\n asc += b64chs[u32 >> 18 & 63] + b64chs[u32 >> 12 & 63] + b64chs[u32 >> 6 & 63] + b64chs[u32 & 63];\n }\n\n return pad ? asc.slice(0, pad - 3) + \"===\".substring(pad) : asc;\n};\n/**\n * does what `window.btoa` of web browsers do.\n * @param {String} bin binary string\n * @returns {string} Base64-encoded string\n */\n\n\nvar _btoa = _hasbtoa ? function (bin) {\n return btoa(bin);\n} : _hasBuffer ? function (bin) {\n return Buffer.from(bin, 'binary').toString('base64');\n} : btoaPolyfill;\n\nvar _fromUint8Array = _hasBuffer ? function (u8a) {\n return Buffer.from(u8a).toString('base64');\n} : function (u8a) {\n // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326\n var maxargs = 0x1000;\n var strs = [];\n\n for (var i = 0, l = u8a.length; i < l; i += maxargs) {\n strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));\n }\n\n return _btoa(strs.join(''));\n};\n/**\n * converts a Uint8Array to a Base64 string.\n * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5\n * @returns {string} Base64 string\n */\n\n\nvar fromUint8Array = function fromUint8Array(u8a) {\n var urlsafe = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);\n}; // This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const utob = (src: string) => unescape(encodeURIComponent(src));\n// reverting good old fationed regexp\n\n\nvar cb_utob = function cb_utob(c) {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c : cc < 0x800 ? _fromCC(0xc0 | cc >>> 6) + _fromCC(0x80 | cc & 0x3f) : _fromCC(0xe0 | cc >>> 12 & 0x0f) + _fromCC(0x80 | cc >>> 6 & 0x3f) + _fromCC(0x80 | cc & 0x3f);\n } else {\n var cc = 0x10000 + (c.charCodeAt(0) - 0xD800) * 0x400 + (c.charCodeAt(1) - 0xDC00);\n return _fromCC(0xf0 | cc >>> 18 & 0x07) + _fromCC(0x80 | cc >>> 12 & 0x3f) + _fromCC(0x80 | cc >>> 6 & 0x3f) + _fromCC(0x80 | cc & 0x3f);\n }\n};\n\nvar re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-8 string\n * @returns {string} UTF-16 string\n */\n\nvar utob = function utob(u) {\n return u.replace(re_utob, cb_utob);\n}; //\n\n\nvar _encode = _hasBuffer ? function (s) {\n return Buffer.from(s, 'utf8').toString('base64');\n} : _TE ? function (s) {\n return _fromUint8Array(_TE.encode(s));\n} : function (s) {\n return _btoa(utob(s));\n};\n/**\n * converts a UTF-8-encoded string to a Base64 string.\n * @param {boolean} [urlsafe] if `true` make the result URL-safe\n * @returns {string} Base64 string\n */\n\n\nvar encode = function encode(src) {\n var urlsafe = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return urlsafe ? _mkUriSafe(_encode(src)) : _encode(src);\n};\n/**\n * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.\n * @returns {string} Base64 string\n */\n\n\nvar encodeURI = function encodeURI(src) {\n return encode(src, true);\n}; // This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const btou = (src: string) => decodeURIComponent(escape(src));\n// reverting good old fationed regexp\n\n\nvar re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\n\nvar cb_btou = function cb_btou(cccc) {\n switch (cccc.length) {\n case 4:\n var cp = (0x07 & cccc.charCodeAt(0)) << 18 | (0x3f & cccc.charCodeAt(1)) << 12 | (0x3f & cccc.charCodeAt(2)) << 6 | 0x3f & cccc.charCodeAt(3),\n offset = cp - 0x10000;\n return _fromCC((offset >>> 10) + 0xD800) + _fromCC((offset & 0x3FF) + 0xDC00);\n\n case 3:\n return _fromCC((0x0f & cccc.charCodeAt(0)) << 12 | (0x3f & cccc.charCodeAt(1)) << 6 | 0x3f & cccc.charCodeAt(2));\n\n default:\n return _fromCC((0x1f & cccc.charCodeAt(0)) << 6 | 0x3f & cccc.charCodeAt(1));\n }\n};\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-16 string\n * @returns {string} UTF-8 string\n */\n\n\nvar btou = function btou(b) {\n return b.replace(re_btou, cb_btou);\n};\n/**\n * polyfill version of `atob`\n */\n\n\nvar atobPolyfill = function atobPolyfill(asc) {\n // console.log('polyfilled');\n asc = asc.replace(/\\s+/g, '');\n if (!b64re.test(asc)) throw new TypeError('malformed base64.');\n asc += '=='.slice(2 - (asc.length & 3));\n var u24,\n bin = '',\n r1,\n r2;\n\n for (var i = 0; i < asc.length;) {\n u24 = b64tab[asc.charAt(i++)] << 18 | b64tab[asc.charAt(i++)] << 12 | (r1 = b64tab[asc.charAt(i++)]) << 6 | (r2 = b64tab[asc.charAt(i++)]);\n bin += r1 === 64 ? _fromCC(u24 >> 16 & 255) : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255) : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);\n }\n\n return bin;\n};\n/**\n * does what `window.atob` of web browsers do.\n * @param {String} asc Base64-encoded string\n * @returns {string} binary string\n */\n\n\nvar _atob = _hasatob ? function (asc) {\n return atob(_tidyB64(asc));\n} : _hasBuffer ? function (asc) {\n return Buffer.from(asc, 'base64').toString('binary');\n} : atobPolyfill; //\n\n\nvar _toUint8Array = _hasBuffer ? function (a) {\n return _U8Afrom(Buffer.from(a, 'base64'));\n} : function (a) {\n return _U8Afrom(_atob(a), function (c) {\n return c.charCodeAt(0);\n });\n};\n/**\n * converts a Base64 string to a Uint8Array.\n */\n\n\nvar toUint8Array = function toUint8Array(a) {\n return _toUint8Array(_unURI(a));\n}; //\n\n\nvar _decode = _hasBuffer ? function (a) {\n return Buffer.from(a, 'base64').toString('utf8');\n} : _TD ? function (a) {\n return _TD.decode(_toUint8Array(a));\n} : function (a) {\n return btou(_atob(a));\n};\n\nvar _unURI = function _unURI(a) {\n return _tidyB64(a.replace(/[-_]/g, function (m0) {\n return m0 == '-' ? '+' : '/';\n }));\n};\n/**\n * converts a Base64 string to a UTF-8 string.\n * @param {String} src Base64 string. Both normal and URL-safe are supported\n * @returns {string} UTF-8 string\n */\n\n\nvar decode = function decode(src) {\n return _decode(_unURI(src));\n};\n/**\n * check if a value is a valid Base64 string\n * @param {String} src a value to check\n */\n\n\nvar isValid = function isValid(src) {\n if (typeof src !== 'string') return false;\n var s = src.replace(/\\s+/g, '').replace(/={0,2}$/, '');\n return !/[^\\s0-9a-zA-Z\\+/]/.test(s) || !/[^\\s0-9a-zA-Z\\-_]/.test(s);\n}; //\n\n\nvar _noEnum = function _noEnum(v) {\n return {\n value: v,\n enumerable: false,\n writable: true,\n configurable: true\n };\n};\n/**\n * extend String.prototype with relevant methods\n */\n\n\nvar extendString = function extendString() {\n var _add = function _add(name, body) {\n return Object.defineProperty(String.prototype, name, _noEnum(body));\n };\n\n _add('fromBase64', function () {\n return decode(this);\n });\n\n _add('toBase64', function (urlsafe) {\n return encode(this, urlsafe);\n });\n\n _add('toBase64URI', function () {\n return encode(this, true);\n });\n\n _add('toBase64URL', function () {\n return encode(this, true);\n });\n\n _add('toUint8Array', function () {\n return toUint8Array(this);\n });\n};\n/**\n * extend Uint8Array.prototype with relevant methods\n */\n\n\nvar extendUint8Array = function extendUint8Array() {\n var _add = function _add(name, body) {\n return Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));\n };\n\n _add('toBase64', function (urlsafe) {\n return fromUint8Array(this, urlsafe);\n });\n\n _add('toBase64URI', function () {\n return fromUint8Array(this, true);\n });\n\n _add('toBase64URL', function () {\n return fromUint8Array(this, true);\n });\n};\n/**\n * extend Builtin prototypes with relevant methods\n */\n\n\nvar extendBuiltins = function extendBuiltins() {\n extendString();\n extendUint8Array();\n};\n\nvar gBase64 = {\n version: version,\n VERSION: VERSION,\n atob: _atob,\n atobPolyfill: atobPolyfill,\n btoa: _btoa,\n btoaPolyfill: btoaPolyfill,\n fromBase64: decode,\n toBase64: encode,\n encode: encode,\n encodeURI: encodeURI,\n encodeURL: encodeURI,\n utob: utob,\n btou: btou,\n decode: decode,\n isValid: isValid,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array,\n extendString: extendString,\n extendUint8Array: extendUint8Array,\n extendBuiltins: extendBuiltins\n}; // makecjs:CUT //\n\nexport { version };\nexport { VERSION };\nexport { _atob as atob };\nexport { atobPolyfill };\nexport { _btoa as btoa };\nexport { btoaPolyfill };\nexport { decode as fromBase64 };\nexport { encode as toBase64 };\nexport { utob };\nexport { encode };\nexport { encodeURI };\nexport { encodeURI as encodeURL };\nexport { btou };\nexport { decode };\nexport { isValid };\nexport { fromUint8Array };\nexport { toUint8Array };\nexport { extendString };\nexport { extendUint8Array };\nexport { extendBuiltins }; // and finally,\n\nexport { gBase64 as Base64 };","import md5 from 'md5';\nimport { Base64 } from 'js-base64';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\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 = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\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 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++) {\n arr2[i] = arr[i];\n }\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} // package version used in the ix-lib parameter\n\n\nvar VERSION = '3.2.2'; // 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_OPTIONS = {\n domain: null,\n useHTTPS: true,\n includeLibraryParam: true,\n urlPrefix: 'https://',\n secureURLToken: null\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}\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}\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}\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}\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}\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 path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var sanitizedPath = this._sanitizePath(path);\n\n var finalParams = this._buildParams(params);\n\n if (!!this.settings.secureURLToken) {\n finalParams = this._signParams(sanitizedPath, finalParams);\n }\n\n return this.settings.urlPrefix + this.settings.domain + sanitizedPath + finalParams;\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 key: \"_sanitizePath\",\n value: function _sanitizePath(path) {\n // Strip leading slash first (we'll re-add after encoding)\n var _path = path.replace(/^\\//, '');\n\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 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 } // returns an array of width values used during srcset generation\n\n }, {\n key: \"_buildSrcSetPairs\",\n value: function _buildSrcSetPairs(path, params, options) {\n var _this = this;\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 })), \" \").concat(w, \"w\");\n });\n return srcset.join(',\\n');\n }\n }, {\n key: \"_buildDPRSrcSet\",\n value: function _buildDPRSrcSet(path, params, options) {\n var _this2 = this;\n\n var targetRatios = [1, 2, 3, 4, 5];\n var disableVariableQuality = options.disableVariableQuality || false;\n\n if (!disableVariableQuality) {\n validateVariableQuality(disableVariableQuality);\n }\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 || DPR_QUALITIES[dpr]\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 })), \" \").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: \"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 };","import _toConsumableArray from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";\nimport _objectWithoutProperties from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\";\nimport _defineProperty from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nvar _excluded = [\"widths\"],\n _excluded2 = [\"url\", \"dimensions\", \"alt\", \"copyright\"],\n _excluded3 = [\"pixelDensities\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport { LinkType, RichTextNodeType } from '@prismicio/types';\nimport { asText as asText$1, composeSerializers, wrapMapSerializer, Element, serialize } from '@prismicio/richtext';\nexport { Element } from '@prismicio/richtext';\nimport escapeHtml from 'escape-html';\nimport { buildURL, buildWidthSrcSet, buildPixelDensitySrcSet } from 'imgix-url-builder';\n\nvar asDate = function asDate(dateOrTimestampField) {\n if (!dateOrTimestampField) {\n return null;\n }\n\n if (dateOrTimestampField.length === 24) {\n return new Date(dateOrTimestampField.replace(/(\\+|-)(\\d{2})(\\d{2})$/, \".000$1$2:$3\"));\n } else {\n return new Date(dateOrTimestampField);\n }\n};\n\nvar documentToLinkField = function documentToLinkField(prismicDocument) {\n var _a, _b, _c;\n\n return _objectSpread({\n link_type: LinkType.Document,\n id: prismicDocument.id,\n uid: (_a = prismicDocument.uid) != null ? _a : void 0,\n type: prismicDocument.type,\n tags: prismicDocument.tags,\n lang: prismicDocument.lang,\n url: (_b = prismicDocument.url) != null ? _b : void 0,\n slug: (_c = prismicDocument.slugs) == null ? void 0 : _c[0]\n }, Object.keys(prismicDocument.data).length > 0 ? {\n data: prismicDocument.data\n } : {});\n};\n\nvar asLink = function asLink(linkFieldOrDocument, linkResolver) {\n if (!linkFieldOrDocument) {\n return null;\n }\n\n var linkField = \"link_type\" in linkFieldOrDocument ? linkFieldOrDocument : documentToLinkField(linkFieldOrDocument);\n\n switch (linkField.link_type) {\n case LinkType.Media:\n case LinkType.Web:\n return \"url\" in linkField ? linkField.url : null;\n\n case LinkType.Document:\n {\n if (\"id\" in linkField && linkResolver) {\n var resolvedURL = linkResolver(linkField);\n\n if (resolvedURL != null) {\n return resolvedURL;\n }\n }\n\n if (\"url\" in linkField && linkField.url) {\n return linkField.url;\n }\n\n return null;\n }\n\n case LinkType.Any:\n default:\n return null;\n }\n};\n\nvar asText = function asText(richTextField, separator) {\n if (richTextField) {\n return asText$1(richTextField, separator);\n } else {\n return null;\n }\n};\n\nvar getLabel = function getLabel(node) {\n return \"data\" in node && \"label\" in node.data ? \" class=\\\"\".concat(node.data.label, \"\\\"\") : \"\";\n};\n\nvar serializeStandardTag = function serializeStandardTag(tag, node, children) {\n return \"<\".concat(tag).concat(getLabel(node), \">\").concat(children.join(\"\"), \"\");\n};\n\nvar serializePreFormatted = function serializePreFormatted(node) {\n return \"\").concat(escapeHtml(node.text), \"\");\n};\n\nvar serializeImage = function serializeImage(linkResolver, node) {\n var imageTag = \"\\\"\").concat(escapeHtml(node.alt),\");\n\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\n return \"

\".concat(imageTag, \"

\");\n};\n\nvar serializeEmbed = function serializeEmbed(node) {\n return \"
\").concat(node.oembed.html, \"
\");\n};\n\nvar serializeHyperlink = function serializeHyperlink(linkResolver, node, children) {\n switch (node.data.link_type) {\n case LinkType.Web:\n {\n return \"\").concat(children.join(\"\"), \"\");\n }\n\n case LinkType.Document:\n {\n return \"\").concat(children.join(\"\"), \"\");\n }\n\n case LinkType.Media:\n {\n return \"\").concat(children.join(\"\"), \"\");\n }\n }\n};\n\nvar serializeSpan = function serializeSpan(content) {\n return content ? escapeHtml(content).replace(/\\n/g, \"
\") : \"\";\n};\n\nvar createDefaultHTMLSerializer = function createDefaultHTMLSerializer(linkResolver) {\n return function (_type, node, text, children, _key) {\n switch (node.type) {\n case Element.heading1:\n return serializeStandardTag(\"h1\", node, children);\n\n case Element.heading2:\n return serializeStandardTag(\"h2\", node, children);\n\n case Element.heading3:\n return serializeStandardTag(\"h3\", node, children);\n\n case Element.heading4:\n return serializeStandardTag(\"h4\", node, children);\n\n case Element.heading5:\n return serializeStandardTag(\"h5\", node, children);\n\n case Element.heading6:\n return serializeStandardTag(\"h6\", node, children);\n\n case Element.paragraph:\n return serializeStandardTag(\"p\", node, children);\n\n case Element.preformatted:\n return serializePreFormatted(node);\n\n case Element.strong:\n return serializeStandardTag(\"strong\", node, children);\n\n case Element.em:\n return serializeStandardTag(\"em\", node, children);\n\n case Element.listItem:\n return serializeStandardTag(\"li\", node, children);\n\n case Element.oListItem:\n return serializeStandardTag(\"li\", node, children);\n\n case Element.list:\n return serializeStandardTag(\"ul\", node, children);\n\n case Element.oList:\n return serializeStandardTag(\"ol\", node, children);\n\n case Element.image:\n return serializeImage(linkResolver, node);\n\n case Element.embed:\n return serializeEmbed(node);\n\n case Element.hyperlink:\n return serializeHyperlink(linkResolver, node, children);\n\n case Element.label:\n return serializeStandardTag(\"span\", node, children);\n\n case Element.span:\n default:\n return serializeSpan(text);\n }\n };\n};\n\nvar wrapMapSerializerWithStringChildren = function wrapMapSerializerWithStringChildren(mapSerializer) {\n var modifiedMapSerializer = {};\n\n var _loop = function _loop(tag) {\n var tagSerializer = mapSerializer[tag];\n\n if (tagSerializer) {\n modifiedMapSerializer[tag] = function (payload) {\n return tagSerializer(_objectSpread(_objectSpread({}, payload), {}, {\n children: payload.children.join(\"\")\n }));\n };\n }\n };\n\n for (var tag in mapSerializer) {\n _loop(tag);\n }\n\n return wrapMapSerializer(modifiedMapSerializer);\n};\n\nvar asHTML = function asHTML(richTextField, linkResolver, htmlSerializer) {\n if (richTextField) {\n var serializer;\n\n if (htmlSerializer) {\n serializer = composeSerializers(typeof htmlSerializer === \"object\" ? wrapMapSerializerWithStringChildren(htmlSerializer) : function (type, node, text, children, key) {\n return htmlSerializer(type, node, text, children.join(\"\"), key);\n }, createDefaultHTMLSerializer(linkResolver));\n } else {\n serializer = createDefaultHTMLSerializer(linkResolver);\n }\n\n return serialize(richTextField, serializer).join(\"\");\n } else {\n return null;\n }\n};\n\nvar isNonNullish = function isNonNullish(input) {\n return input != null;\n};\n\nvar isNonEmptyArray = function isNonEmptyArray(input) {\n return !!input.length;\n};\n\nvar richText = function richText(field) {\n if (!isNonNullish(field)) {\n return false;\n } else if (field.length === 1 && \"text\" in field[0]) {\n return !!field[0].text;\n } else {\n return !!field.length;\n }\n};\n\nvar title = richText;\n\nvar imageThumbnail = function imageThumbnail(thumbnail) {\n return isNonNullish(thumbnail) && !!thumbnail.url;\n};\n\nvar image = imageThumbnail;\n\nvar link = function link(field) {\n return isNonNullish(field) && (\"id\" in field || \"url\" in field);\n};\n\nvar linkToMedia = link;\nvar contentRelationship = link;\nvar date = isNonNullish;\nvar timestamp = isNonNullish;\nvar color = isNonNullish;\nvar number = isNonNullish;\n\nvar keyText = function keyText(field) {\n return isNonNullish(keyText) && !!field;\n};\n\nvar select = isNonNullish;\n\nvar embed = function embed(field) {\n return isNonNullish(field) && !!field.embed_url;\n};\n\nvar geoPoint = function geoPoint(field) {\n return isNonNullish(field) && \"longitude\" in field;\n};\n\nvar integrationFields = isNonNullish;\n\nvar group = function group(group2) {\n return isNonNullish(group2) && isNonEmptyArray(group2);\n};\n\nvar sliceZone = function sliceZone(slices) {\n return isNonNullish(slices) && isNonEmptyArray(slices);\n};\n\nvar isFilled = /*#__PURE__*/Object.freeze({\n __proto__: null,\n richText: richText,\n title: title,\n imageThumbnail: imageThumbnail,\n image: image,\n link: link,\n linkToMedia: linkToMedia,\n contentRelationship: contentRelationship,\n date: date,\n timestamp: timestamp,\n color: color,\n number: number,\n keyText: keyText,\n select: select,\n embed: embed,\n geoPoint: geoPoint,\n integrationFields: integrationFields,\n group: group,\n sliceZone: sliceZone\n});\n\nvar asImageSrc = function asImageSrc(field) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (field && imageThumbnail(field)) {\n return buildURL(field.url, params);\n } else {\n return null;\n }\n};\n\nvar asImageWidthSrcSet = function asImageWidthSrcSet(field) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (field && imageThumbnail(field)) {\n var _params$widths = params.widths,\n widths = _params$widths === void 0 ? [640, 828, 1200, 2048, 3840] : _params$widths,\n urlParams = _objectWithoutProperties(params, _excluded);\n\n var url = field.url,\n dimensions = field.dimensions,\n _alt = field.alt,\n _copyright = field.copyright,\n responsiveViews = _objectWithoutProperties(field, _excluded2);\n\n var responsiveViewObjects = Object.values(responsiveViews);\n return {\n src: buildURL(url, urlParams),\n srcset: responsiveViewObjects.length ? [buildWidthSrcSet(url, _objectSpread(_objectSpread({}, urlParams), {}, {\n widths: [dimensions.width]\n }))].concat(_toConsumableArray(responsiveViewObjects.map(function (thumbnail) {\n return buildWidthSrcSet(thumbnail.url, _objectSpread(_objectSpread({}, urlParams), {}, {\n widths: [thumbnail.dimensions.width]\n }));\n }))).join(\", \") : buildWidthSrcSet(field.url, _objectSpread(_objectSpread({}, urlParams), {}, {\n widths: widths\n }))\n };\n } else {\n return null;\n }\n};\n\nvar asImagePixelDensitySrcSet = function asImagePixelDensitySrcSet(field) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (field && imageThumbnail(field)) {\n var _params$pixelDensitie = params.pixelDensities,\n pixelDensities = _params$pixelDensitie === void 0 ? [1, 2, 3] : _params$pixelDensitie,\n imgixParams = _objectWithoutProperties(params, _excluded3);\n\n return {\n src: buildURL(field.url, imgixParams),\n srcset: buildPixelDensitySrcSet(field.url, _objectSpread(_objectSpread({}, imgixParams), {}, {\n pixelDensities: pixelDensities\n }))\n };\n } else {\n return null;\n }\n};\n\nvar Elements = Element;\nexport { Elements, asDate, asHTML, asImagePixelDensitySrcSet, asImageSrc, asImageWidthSrcSet, asLink, asText, documentToLinkField, isFilled };","import _toConsumableArray from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";\nimport _slicedToArray from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nimport _objectWithoutProperties from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\";\nimport _defineProperty from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nvar _excluded = [\"client\", \"skip\"];\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport \"core-js/modules/esnext.global-this.js\";\nimport * as React from 'react';\nimport * as prismicH from '@prismicio/helpers';\nimport * as prismicR from '@prismicio/richtext';\nimport { Element } from '@prismicio/richtext';\nexport { Element } from '@prismicio/richtext';\nvar PrismicContext = React.createContext({});\n\nvar PrismicProvider = function PrismicProvider(_ref) {\n var client = _ref.client,\n linkResolver = _ref.linkResolver,\n richTextComponents = _ref.richTextComponents,\n internalLinkComponent = _ref.internalLinkComponent,\n externalLinkComponent = _ref.externalLinkComponent,\n children = _ref.children;\n var value = React.useMemo(function () {\n return {\n client: client,\n linkResolver: linkResolver,\n richTextComponents: richTextComponents,\n internalLinkComponent: internalLinkComponent,\n externalLinkComponent: externalLinkComponent\n };\n }, [client, linkResolver, richTextComponents, internalLinkComponent, externalLinkComponent]);\n return /* @__PURE__ */React.createElement(PrismicContext.Provider, {\n value: value\n }, children);\n};\n\nvar usePrismicContext = function usePrismicContext() {\n return React.useContext(PrismicContext) || {};\n};\n\nif (typeof process === \"undefined\") {\n globalThis.process = {\n env: {}\n };\n}\n\nvar __PRODUCTION__ = process.env.NODE_ENV === \"production\";\n\nvar prefix = \"Invariant failed\";\n\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (__PRODUCTION__) {\n throw new Error(prefix);\n }\n\n throw new Error(\"\".concat(prefix, \": \").concat(message || \"\"));\n}\n\nvar usePrismicClient = function usePrismicClient(explicitClient) {\n var context = usePrismicContext();\n var client = explicitClient || (context == null ? void 0 : context.client);\n invariant(client, \"A @prismicio/client is required to query documents. Provide a client to the hook or to a higher in your component tree.\");\n return client;\n};\n\nvar isInternalURL = function isInternalURL(url) {\n var isInternal = /^(\\/(?!\\/)|#)/.test(url);\n var isSpecialLink = !isInternal && !/^https?:\\/\\//.test(url);\n return isInternal && !isSpecialLink;\n};\n\nvar defaultInternalComponent = \"a\";\nvar defaultExternalComponent = \"a\";\n\nvar PrismicLink = function PrismicLink(props) {\n var context = usePrismicContext();\n var linkResolver = props.linkResolver || context.linkResolver;\n var href;\n\n if (\"href\" in props) {\n href = props.href;\n } else if (\"document\" in props && props.document) {\n href = prismicH.asLink(props.document, linkResolver);\n } else if (\"field\" in props && props.field) {\n href = prismicH.asLink(props.field, linkResolver);\n }\n\n var target = props.target || \"field\" in props && props.field && \"target\" in props.field && props.field.target || void 0;\n var rel = props.rel || (target === \"_blank\" ? \"noopener noreferrer\" : void 0);\n var InternalComponent = props.internalComponent || context.internalLinkComponent || defaultInternalComponent;\n var ExternalComponent = props.externalComponent || context.externalLinkComponent || defaultExternalComponent;\n var isInternal = href && isInternalURL(href);\n var Component = isInternal ? InternalComponent : ExternalComponent;\n var passthroughProps = Object.assign({}, props);\n delete passthroughProps.linkResolver;\n delete passthroughProps.internalComponent;\n delete passthroughProps.externalComponent;\n delete passthroughProps.rel;\n delete passthroughProps.target;\n\n if (\"field\" in passthroughProps) {\n delete passthroughProps.field;\n } else if (\"document\" in passthroughProps) {\n delete passthroughProps.document;\n } else if (\"href\" in passthroughProps) {\n delete passthroughProps.href;\n }\n\n return href ? /* @__PURE__ */React.createElement(Component, _objectSpread(_objectSpread({}, passthroughProps), {}, {\n href: href,\n target: target,\n rel: rel\n })) : null;\n};\n\nvar PrismicText = function PrismicText(props) {\n return React.useMemo(function () {\n if (props.field) {\n var text = prismicH.asText(props.field, props.separator);\n return /* @__PURE__ */React.createElement(React.Fragment, null, text);\n } else {\n return props.fallback != null ? /* @__PURE__ */React.createElement(React.Fragment, null, props.fallback) : null;\n }\n }, [props.field, props.fallback, props.separator]);\n};\n\nvar createDefaultSerializer = function createDefaultSerializer(args) {\n return prismicR.wrapMapSerializer({\n heading1: function heading1(_ref2) {\n var children = _ref2.children,\n key = _ref2.key;\n return /* @__PURE__ */React.createElement(\"h1\", {\n key: key\n }, children);\n },\n heading2: function heading2(_ref3) {\n var children = _ref3.children,\n key = _ref3.key;\n return /* @__PURE__ */React.createElement(\"h2\", {\n key: key\n }, children);\n },\n heading3: function heading3(_ref4) {\n var children = _ref4.children,\n key = _ref4.key;\n return /* @__PURE__ */React.createElement(\"h3\", {\n key: key\n }, children);\n },\n heading4: function heading4(_ref5) {\n var children = _ref5.children,\n key = _ref5.key;\n return /* @__PURE__ */React.createElement(\"h4\", {\n key: key\n }, children);\n },\n heading5: function heading5(_ref6) {\n var children = _ref6.children,\n key = _ref6.key;\n return /* @__PURE__ */React.createElement(\"h5\", {\n key: key\n }, children);\n },\n heading6: function heading6(_ref7) {\n var children = _ref7.children,\n key = _ref7.key;\n return /* @__PURE__ */React.createElement(\"h6\", {\n key: key\n }, children);\n },\n paragraph: function paragraph(_ref8) {\n var children = _ref8.children,\n key = _ref8.key;\n return /* @__PURE__ */React.createElement(\"p\", {\n key: key\n }, children);\n },\n preformatted: function preformatted(_ref9) {\n var node = _ref9.node,\n key = _ref9.key;\n return /* @__PURE__ */React.createElement(\"pre\", {\n key: key\n }, node.text);\n },\n strong: function strong(_ref10) {\n var children = _ref10.children,\n key = _ref10.key;\n return /* @__PURE__ */React.createElement(\"strong\", {\n key: key\n }, children);\n },\n em: function em(_ref11) {\n var children = _ref11.children,\n key = _ref11.key;\n return /* @__PURE__ */React.createElement(\"em\", {\n key: key\n }, children);\n },\n listItem: function listItem(_ref12) {\n var children = _ref12.children,\n key = _ref12.key;\n return /* @__PURE__ */React.createElement(\"li\", {\n key: key\n }, children);\n },\n oListItem: function oListItem(_ref13) {\n var children = _ref13.children,\n key = _ref13.key;\n return /* @__PURE__ */React.createElement(\"li\", {\n key: key\n }, children);\n },\n list: function list(_ref14) {\n var children = _ref14.children,\n key = _ref14.key;\n return /* @__PURE__ */React.createElement(\"ul\", {\n key: key\n }, children);\n },\n oList: function oList(_ref15) {\n var children = _ref15.children,\n key = _ref15.key;\n return /* @__PURE__ */React.createElement(\"ol\", {\n key: key\n }, children);\n },\n image: function image(_ref16) {\n var node = _ref16.node,\n key = _ref16.key;\n\n var _a;\n\n var img = /* @__PURE__ */React.createElement(\"img\", {\n src: node.url,\n alt: (_a = node.alt) != null ? _a : void 0,\n \"data-copyright\": node.copyright ? node.copyright : void 0\n });\n return /* @__PURE__ */React.createElement(\"p\", {\n key: key,\n className: \"block-img\"\n }, node.linkTo ? /* @__PURE__ */React.createElement(PrismicLink, {\n linkResolver: args.linkResolver,\n internalComponent: args.internalLinkComponent,\n externalComponent: args.externalLinkComponent,\n field: node.linkTo\n }, img) : img);\n },\n embed: function embed(_ref17) {\n var node = _ref17.node,\n key = _ref17.key;\n\n var _a;\n\n return /* @__PURE__ */React.createElement(\"div\", {\n key: key,\n \"data-oembed\": node.oembed.embed_url,\n \"data-oembed-type\": node.oembed.type,\n \"data-oembed-provider\": node.oembed.provider_name,\n dangerouslySetInnerHTML: {\n __html: (_a = node.oembed.html) != null ? _a : \"\"\n }\n });\n },\n hyperlink: function hyperlink(_ref18) {\n var node = _ref18.node,\n children = _ref18.children,\n key = _ref18.key;\n return /* @__PURE__ */React.createElement(PrismicLink, {\n key: key,\n field: node.data,\n linkResolver: args.linkResolver,\n internalComponent: args.internalLinkComponent,\n externalComponent: args.externalLinkComponent\n }, children);\n },\n label: function label(_ref19) {\n var node = _ref19.node,\n children = _ref19.children,\n key = _ref19.key;\n return /* @__PURE__ */React.createElement(\"span\", {\n key: key,\n className: node.data.label\n }, children);\n },\n span: function span(_ref20) {\n var text = _ref20.text,\n key = _ref20.key;\n var result = [];\n var i = 0;\n\n var _iterator = _createForOfIteratorHelper(text.split(\"\\n\")),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var line = _step.value;\n\n if (i > 0) {\n result.push( /* @__PURE__ */React.createElement(\"br\", {\n key: \"\".concat(i, \"__break\")\n }));\n }\n\n result.push( /* @__PURE__ */React.createElement(React.Fragment, {\n key: \"\".concat(i, \"__line\")\n }, line));\n i++;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return /* @__PURE__ */React.createElement(React.Fragment, {\n key: key\n }, result);\n }\n });\n};\n\nvar PrismicRichText = function PrismicRichText(props) {\n var context = usePrismicContext();\n return React.useMemo(function () {\n if (!props.field) {\n return null;\n } else {\n var linkResolver = props.linkResolver || context.linkResolver;\n var serializer = prismicR.composeSerializers(typeof props.components === \"object\" ? prismicR.wrapMapSerializer(props.components) : props.components, typeof context.richTextComponents === \"object\" ? prismicR.wrapMapSerializer(context.richTextComponents) : context.richTextComponents, createDefaultSerializer({\n linkResolver: linkResolver,\n internalLinkComponent: props.internalLinkComponent,\n externalLinkComponent: props.externalLinkComponent\n }));\n var serialized = prismicR.serialize(props.field, function (type, node, text, children, key) {\n var result = serializer(type, node, text, children, key);\n\n if (React.isValidElement(result) && result.key == null) {\n return React.cloneElement(result, {\n key: key\n });\n } else {\n return result;\n }\n });\n return /* @__PURE__ */React.createElement(React.Fragment, null, serialized);\n }\n }, [props.field, props.internalLinkComponent, props.externalLinkComponent, props.components, props.linkResolver, context.linkResolver, context.richTextComponents]);\n};\n\nvar pascalCase = function pascalCase(input) {\n var camelCased = input.replace(/(?:-|_)(\\w)/g, function (_, c) {\n return c ? c.toUpperCase() : \"\";\n });\n return camelCased[0].toUpperCase() + camelCased.slice(1);\n};\n\nvar TODOSliceComponent = __PRODUCTION__ ? function () {\n return null;\n} : function (_ref21) {\n var slice = _ref21.slice;\n React.useEffect(function () {\n console.warn(\"[SliceZone] Could not find a component for Slice type \\\"\".concat(slice.slice_type, \"\\\"\"), slice);\n }, [slice]);\n return /* @__PURE__ */React.createElement(\"section\", {\n \"data-slice-zone-todo-component\": \"\",\n \"data-slice-type\": slice.slice_type\n }, \"Could not find a component for Slice type \\u201C\", slice.slice_type, \"\\u201D\");\n};\n\nvar SliceZone = function SliceZone(_ref22) {\n var _ref22$slices = _ref22.slices,\n slices = _ref22$slices === void 0 ? [] : _ref22$slices,\n _ref22$components = _ref22.components,\n components = _ref22$components === void 0 ? {} : _ref22$components,\n resolver = _ref22.resolver,\n _ref22$defaultCompone = _ref22.defaultComponent,\n defaultComponent = _ref22$defaultCompone === void 0 ? TODOSliceComponent : _ref22$defaultCompone,\n _ref22$context = _ref22.context,\n context = _ref22$context === void 0 ? {} : _ref22$context;\n var renderedSlices = React.useMemo(function () {\n return slices.map(function (slice, index) {\n var Comp = components[slice.slice_type] || defaultComponent;\n\n if (resolver) {\n var resolvedComp = resolver({\n slice: slice,\n sliceName: pascalCase(slice.slice_type),\n i: index\n });\n\n if (resolvedComp) {\n Comp = resolvedComp;\n }\n }\n\n var key = \"\".concat(index, \"-\").concat(JSON.stringify(slice));\n return /* @__PURE__ */React.createElement(Comp, {\n key: key,\n slice: slice,\n index: index,\n slices: slices,\n context: context\n });\n });\n }, [components, context, defaultComponent, slices, resolver]);\n return /* @__PURE__ */React.createElement(React.Fragment, null, renderedSlices);\n};\n\nvar PrismicToolbar = function PrismicToolbar(_ref23) {\n var repositoryName = _ref23.repositoryName,\n _ref23$type = _ref23.type,\n type = _ref23$type === void 0 ? \"new\" : _ref23$type;\n var src = \"https://static.cdn.prismic.io/prismic.js?repo=\".concat(repositoryName).concat(type === \"new\" ? \"&new=true\" : \"\");\n React.useEffect(function () {\n var existingScript = document.querySelector(\"script[src=\\\"\".concat(src, \"\\\"]\"));\n\n if (!existingScript) {\n var script = document.createElement(\"script\");\n script.src = src;\n script.defer = true;\n script.dataset.prismicToolbar = \"\";\n script.dataset.repositoryName = repositoryName;\n script.dataset.type = type;\n document.body.appendChild(script);\n }\n }, [repositoryName, type, src]);\n return null;\n};\n\nvar reducer = function reducer(state, action) {\n switch (action[0]) {\n case \"start\":\n {\n return {\n state: \"loading\"\n };\n }\n\n case \"succeed\":\n {\n return {\n state: \"loaded\",\n data: action[1]\n };\n }\n\n case \"fail\":\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n state: \"failed\",\n error: action[1]\n });\n }\n }\n};\n\nvar initialState = {\n state: \"idle\"\n};\n\nvar isParams = function isParams(value) {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n};\n\nvar useStatefulPrismicClientMethod = function useStatefulPrismicClientMethod(methodName, args, explicitClient) {\n var lastArg = args[args.length - 1];\n\n var _ref24 = isParams(lastArg) ? lastArg : {},\n lastArgExplicitClient = _ref24.client,\n skip = _ref24.skip,\n params = _objectWithoutProperties(_ref24, _excluded);\n\n var argsWithoutParams = isParams(lastArg) ? args.slice(0, -1) : args;\n var client = usePrismicClient(explicitClient || lastArgExplicitClient);\n\n var _React$useReducer = React.useReducer(reducer, initialState),\n _React$useReducer2 = _slicedToArray(_React$useReducer, 2),\n state = _React$useReducer2[0],\n dispatch = _React$useReducer2[1];\n\n React.useEffect(function () {\n if (!skip) {\n var _client$methodName;\n\n {\n dispatch([\"start\"]);\n }\n\n (_client$methodName = client[methodName]).call.apply(_client$methodName, [client].concat(_toConsumableArray(argsWithoutParams), [params])).then(function (result) {\n {\n dispatch([\"succeed\", result]);\n }\n }).catch(function (error) {\n {\n dispatch([\"fail\", error]);\n }\n });\n }\n }, [client, methodName, skip, JSON.stringify(argsWithoutParams), JSON.stringify(params)]);\n return React.useMemo(function () {\n return [state.data, {\n state: state.state,\n error: state.error\n }];\n }, [state]);\n};\n\nvar usePrismicPreviewResolver = function usePrismicPreviewResolver() {\n var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var context = usePrismicContext();\n var linkResolver = args.linkResolver || context.linkResolver;\n var result = useStatefulPrismicClientMethod(\"resolvePreviewURL\", [{\n linkResolver: linkResolver,\n defaultURL: args.defaultURL || \"/\",\n previewToken: args.previewToken,\n documentID: args.documentID\n }], args.client);\n\n var _result = _slicedToArray(result, 1),\n resolvedURL = _result[0];\n\n var navigate = args.navigate;\n React.useEffect(function () {\n if (resolvedURL && navigate) {\n navigate(resolvedURL);\n }\n }, [resolvedURL, navigate]);\n return result;\n};\n\nvar usePrismicDocuments = function usePrismicDocuments() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return useStatefulPrismicClientMethod(\"get\", args);\n};\n\nvar useFirstPrismicDocument = function useFirstPrismicDocument() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return useStatefulPrismicClientMethod(\"getFirst\", args);\n};\n\nvar useAllPrismicDocumentsDangerously = function useAllPrismicDocumentsDangerously() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return useStatefulPrismicClientMethod(\"dangerouslyGetAll\", args);\n};\n\nvar usePrismicDocumentByID = function usePrismicDocumentByID() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return useStatefulPrismicClientMethod(\"getByID\", args);\n};\n\nvar usePrismicDocumentsByIDs = function usePrismicDocumentsByIDs() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return useStatefulPrismicClientMethod(\"getByIDs\", args);\n};\n\nvar useAllPrismicDocumentsByIDs = function useAllPrismicDocumentsByIDs() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return useStatefulPrismicClientMethod(\"getAllByIDs\", args);\n};\n\nvar usePrismicDocumentByUID = function usePrismicDocumentByUID() {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return useStatefulPrismicClientMethod(\"getByUID\", args);\n};\n\nvar usePrismicDocumentsByUIDs = function usePrismicDocumentsByUIDs() {\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n\n return useStatefulPrismicClientMethod(\"getByUIDs\", args);\n};\n\nvar useAllPrismicDocumentsByUIDs = function useAllPrismicDocumentsByUIDs() {\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n return useStatefulPrismicClientMethod(\"getAllByUIDs\", args);\n};\n\nvar useSinglePrismicDocument = function useSinglePrismicDocument() {\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = arguments[_key10];\n }\n\n return useStatefulPrismicClientMethod(\"getSingle\", args);\n};\n\nvar usePrismicDocumentsByType = function usePrismicDocumentsByType() {\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n args[_key11] = arguments[_key11];\n }\n\n return useStatefulPrismicClientMethod(\"getByType\", args);\n};\n\nvar useAllPrismicDocumentsByType = function useAllPrismicDocumentsByType() {\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n args[_key12] = arguments[_key12];\n }\n\n return useStatefulPrismicClientMethod(\"getAllByType\", args);\n};\n\nvar usePrismicDocumentsByTag = function usePrismicDocumentsByTag() {\n for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n args[_key13] = arguments[_key13];\n }\n\n return useStatefulPrismicClientMethod(\"getByTag\", args);\n};\n\nvar useAllPrismicDocumentsByTag = function useAllPrismicDocumentsByTag() {\n for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n args[_key14] = arguments[_key14];\n }\n\n return useStatefulPrismicClientMethod(\"getAllByTag\", args);\n};\n\nvar usePrismicDocumentsBySomeTags = function usePrismicDocumentsBySomeTags() {\n for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {\n args[_key15] = arguments[_key15];\n }\n\n return useStatefulPrismicClientMethod(\"getBySomeTags\", args);\n};\n\nvar useAllPrismicDocumentsBySomeTags = function useAllPrismicDocumentsBySomeTags() {\n for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {\n args[_key16] = arguments[_key16];\n }\n\n return useStatefulPrismicClientMethod(\"getAllBySomeTags\", args);\n};\n\nvar usePrismicDocumentsByEveryTag = function usePrismicDocumentsByEveryTag() {\n for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {\n args[_key17] = arguments[_key17];\n }\n\n return useStatefulPrismicClientMethod(\"getByEveryTag\", args);\n};\n\nvar useAllPrismicDocumentsByEveryTag = function useAllPrismicDocumentsByEveryTag() {\n for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {\n args[_key18] = arguments[_key18];\n }\n\n return useStatefulPrismicClientMethod(\"getAllByEveryTag\", args);\n};\n\nvar Elements = Element;\nexport { Elements, PrismicLink, PrismicProvider, PrismicRichText, PrismicText, PrismicToolbar, SliceZone, TODOSliceComponent, useAllPrismicDocumentsByEveryTag, useAllPrismicDocumentsByIDs, useAllPrismicDocumentsBySomeTags, useAllPrismicDocumentsByTag, useAllPrismicDocumentsByType, useAllPrismicDocumentsByUIDs, useAllPrismicDocumentsDangerously, useFirstPrismicDocument, usePrismicClient, usePrismicContext, usePrismicDocumentByID, usePrismicDocumentByUID, usePrismicDocuments, usePrismicDocumentsByEveryTag, usePrismicDocumentsByIDs, usePrismicDocumentsBySomeTags, usePrismicDocumentsByTag, usePrismicDocumentsByType, usePrismicDocumentsByUIDs, usePrismicPreviewResolver, useSinglePrismicDocument };","import _defineProperty from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\n\nvar _RichTextReversedNode;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport { RichTextNodeType } from '@prismicio/types';\nexport { RichTextNodeType as Element } from '@prismicio/types';\n\nvar uuid = function uuid() {\n return (++uuid.i).toString();\n};\n\nuuid.i = 0;\n\nvar asTree = function asTree(nodes) {\n var preparedNodes = prepareNodes(nodes);\n var children = [];\n\n for (var i = 0; i < preparedNodes.length; i++) {\n children.push(nodeToTreeNode(preparedNodes[i]));\n }\n\n return {\n key: uuid(),\n children: children\n };\n};\n\nvar createTreeNode = function createTreeNode(node) {\n var children = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return {\n key: uuid(),\n type: node.type,\n text: \"text\" in node ? node.text : void 0,\n node: node,\n children: children\n };\n};\n\nvar createTextTreeNode = function createTextTreeNode(text) {\n return createTreeNode({\n type: RichTextNodeType.span,\n text: text,\n spans: []\n });\n};\n\nvar prepareNodes = function prepareNodes(nodes) {\n var mutNodes = nodes.slice(0);\n\n for (var i = 0; i < mutNodes.length; i++) {\n var node = mutNodes[i];\n\n if (node.type === RichTextNodeType.listItem || node.type === RichTextNodeType.oListItem) {\n var items = [node];\n\n while (mutNodes[i + 1] && mutNodes[i + 1].type === node.type) {\n items.push(mutNodes[i + 1]);\n mutNodes.splice(i, 1);\n }\n\n if (node.type === RichTextNodeType.listItem) {\n mutNodes[i] = {\n type: RichTextNodeType.list,\n items: items\n };\n } else {\n mutNodes[i] = {\n type: RichTextNodeType.oList,\n items: items\n };\n }\n }\n }\n\n return mutNodes;\n};\n\nvar nodeToTreeNode = function nodeToTreeNode(node) {\n if (\"text\" in node) {\n return createTreeNode(node, textNodeSpansToTreeNodeChildren(node.spans, node));\n }\n\n if (\"items\" in node) {\n var children = [];\n\n for (var i = 0; i < node.items.length; i++) {\n children.push(nodeToTreeNode(node.items[i]));\n }\n\n return createTreeNode(node, children);\n }\n\n return createTreeNode(node);\n};\n\nvar textNodeSpansToTreeNodeChildren = function textNodeSpansToTreeNodeChildren(spans, node, parentSpan) {\n if (!spans.length) {\n return [createTextTreeNode(node.text)];\n }\n\n var mutSpans = spans.slice(0);\n mutSpans.sort(function (a, b) {\n return a.start - b.start || b.end - a.end;\n });\n var children = [];\n\n for (var i = 0; i < mutSpans.length; i++) {\n var span = mutSpans[i];\n var parentSpanStart = parentSpan && parentSpan.start || 0;\n var spanStart = span.start - parentSpanStart;\n var spanEnd = span.end - parentSpanStart;\n var childSpans = [];\n\n for (var j = i; j < mutSpans.length; j++) {\n var siblingSpan = mutSpans[j];\n\n if (siblingSpan !== span && siblingSpan.start >= span.start && siblingSpan.end <= span.end) {\n childSpans.push(siblingSpan);\n mutSpans.splice(j, 1);\n j--;\n }\n }\n\n if (i === 0 && spanStart > 0) {\n children.push(createTextTreeNode(node.text.slice(0, spanStart)));\n }\n\n children.push(createTreeNode(span, textNodeSpansToTreeNodeChildren(childSpans, _objectSpread(_objectSpread({}, node), {}, {\n text: node.text.slice(spanStart, spanEnd)\n }), span)));\n\n if (spanEnd < node.text.length) {\n children.push(createTextTreeNode(node.text.slice(spanEnd, mutSpans[i + 1] ? mutSpans[i + 1].start - parentSpanStart : void 0)));\n }\n }\n\n return children;\n};\n\nvar asText = function asText(richTextField) {\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \" \";\n var result = \"\";\n\n for (var i = 0; i < richTextField.length; i++) {\n if (\"text\" in richTextField[i]) {\n result += (result ? separator : \"\") + richTextField[i].text;\n }\n }\n\n return result;\n};\n\nvar serialize = function serialize(richTextField, serializer) {\n return serializeTreeNodes(asTree(richTextField).children, serializer);\n};\n\nvar serializeTreeNodes = function serializeTreeNodes(nodes, serializer) {\n var serializedTreeNodes = [];\n\n for (var i = 0; i < nodes.length; i++) {\n var treeNode = nodes[i];\n var serializedTreeNode = serializer(treeNode.type, treeNode.node, treeNode.text, serializeTreeNodes(treeNode.children, serializer), treeNode.key);\n\n if (serializedTreeNode != null) {\n serializedTreeNodes.push(serializedTreeNode);\n }\n }\n\n return serializedTreeNodes;\n};\n\nvar RichTextReversedNodeType = (_RichTextReversedNode = {}, _defineProperty(_RichTextReversedNode, RichTextNodeType.listItem, \"listItem\"), _defineProperty(_RichTextReversedNode, RichTextNodeType.oListItem, \"oListItem\"), _defineProperty(_RichTextReversedNode, RichTextNodeType.list, \"list\"), _defineProperty(_RichTextReversedNode, RichTextNodeType.oList, \"oList\"), _RichTextReversedNode);\n\nvar wrapMapSerializer = function wrapMapSerializer(mapSerializer) {\n return function (type, node, text, children, key) {\n var tagSerializer = mapSerializer[RichTextReversedNodeType[type] || type];\n\n if (tagSerializer) {\n return tagSerializer({\n type: type,\n node: node,\n text: text,\n children: children,\n key: key\n });\n }\n };\n};\n\nvar composeSerializers = function composeSerializers() {\n for (var _len = arguments.length, serializers = new Array(_len), _key = 0; _key < _len; _key++) {\n serializers[_key] = arguments[_key];\n }\n\n return function () {\n for (var i = 0; i < serializers.length; i++) {\n var serializer = serializers[i];\n\n if (serializer) {\n var res = serializer.apply(void 0, arguments);\n\n if (res != null) {\n return res;\n }\n }\n }\n };\n};\n\nexport { asText, asTree, composeSerializers, serialize, wrapMapSerializer };","var RichTextNodeType = {\n heading1: \"heading1\",\n heading2: \"heading2\",\n heading3: \"heading3\",\n heading4: \"heading4\",\n heading5: \"heading5\",\n heading6: \"heading6\",\n paragraph: \"paragraph\",\n preformatted: \"preformatted\",\n strong: \"strong\",\n em: \"em\",\n listItem: \"list-item\",\n oListItem: \"o-list-item\",\n list: \"group-list-item\",\n oList: \"group-o-list-item\",\n image: \"image\",\n embed: \"embed\",\n hyperlink: \"hyperlink\",\n label: \"label\",\n span: \"span\"\n};\nvar LinkType = {\n Any: \"Any\",\n Document: \"Document\",\n Media: \"Media\",\n Web: \"Web\"\n};\nvar OEmbedType = {\n Photo: \"photo\",\n Video: \"video\",\n Link: \"link\",\n Rich: \"rich\"\n};\nvar CustomTypeModelFieldType = {\n Boolean: \"Boolean\",\n Color: \"Color\",\n Date: \"Date\",\n Embed: \"Embed\",\n GeoPoint: \"GeoPoint\",\n Group: \"Group\",\n Image: \"Image\",\n IntegrationFields: \"IntegrationFields\",\n Link: \"Link\",\n Number: \"Number\",\n Select: \"Select\",\n Slices: \"Slices\",\n StructuredText: \"StructuredText\",\n Text: \"Text\",\n Timestamp: \"Timestamp\",\n UID: \"UID\"\n};\nvar CustomTypeModelLinkSelectType = {\n Document: \"document\",\n Media: \"media\"\n};\nvar CustomTypeModelSliceDisplay = {\n List: \"list\",\n Grid: \"grid\"\n};\nvar CustomTypeModelSliceType = {\n Slice: \"Slice\",\n SharedSlice: \"SharedSlice\"\n};\nvar WebhookType = {\n APIUpdate: \"api-update\",\n TestTrigger: \"test-trigger\"\n};\nvar EmbedType = OEmbedType;\nexport { CustomTypeModelFieldType, CustomTypeModelLinkSelectType, CustomTypeModelSliceDisplay, CustomTypeModelSliceType, EmbedType, LinkType, OEmbedType, RichTextNodeType, WebhookType };","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n});\n\nvar e = require(\"react\"),\n t = require(\"@react-pdf-viewer/core\");\n\nfunction n(e) {\n if (e && e.__esModule) return e;\n var t = Object.create(null);\n return e && Object.keys(e).forEach(function (n) {\n if (\"default\" !== n) {\n var r = Object.getOwnPropertyDescriptor(e, n);\n Object.defineProperty(t, n, r.get ? r : {\n enumerable: !0,\n get: function get() {\n return e[n];\n }\n });\n }\n }), t.default = e, Object.freeze(t);\n}\n\nvar r,\n o = n(e),\n a = function a() {\n return o.createElement(t.Icon, {\n size: 16\n }, o.createElement(\"path\", {\n d: \"M6.427,8.245A.5.5,0,0,1,6.862,7.5H17.138a.5.5,0,0,1,.435.749l-5.139,9a.5.5,0,0,1-.868,0Z\"\n }));\n},\n i = function i() {\n return o.createElement(t.Icon, {\n size: 16\n }, o.createElement(\"path\", {\n d: \"M9.248,17.572a.5.5,0,0,1-.748-.434V6.862a.5.5,0,0,1,.748-.434l8.992,5.138a.5.5,0,0,1,0,.868Z\"\n }));\n},\n c = function c(e) {\n var t = e.bookmark,\n n = e.depth,\n r = e.doc,\n c = e.index,\n u = e.numberOfSiblings,\n l = e.store,\n m = e.onJumpToDest,\n f = o.useState(!0),\n d = f[0],\n k = f[1],\n p = t.items && t.items.length > 0;\n return o.createElement(\"li\", {\n \"aria-expanded\": d ? \"true\" : \"false\",\n \"aria-label\": t.title,\n \"aria-level\": n + 1,\n \"aria-posinset\": c + 1,\n \"aria-setsize\": u,\n role: \"treeitem\",\n tabIndex: -1\n }, o.createElement(\"div\", {\n className: \"rpv-bookmark__item\",\n style: {\n paddingLeft: 1.25 * n + \"rem\"\n },\n onClick: function onClick() {\n !p && t.dest && m(t.dest);\n }\n }, p && o.createElement(\"span\", {\n className: \"rpv-bookmark__toggle\",\n onClick: function onClick() {\n return k(function (e) {\n return !e;\n });\n }\n }, d ? o.createElement(a, null) : o.createElement(i, null)), t.url ? o.createElement(\"a\", {\n className: \"rpv-bookmark__title\",\n href: t.url,\n rel: \"noopener noreferrer nofollow\",\n target: t.newWindow ? \"_blank\" : \"\"\n }, t.title) : o.createElement(\"div\", {\n className: \"rpv-bookmark__title\",\n onClick: function onClick() {\n p && t.dest && m(t.dest);\n }\n }, t.title)), p && d && o.createElement(s, {\n bookmarks: t.items,\n depth: n + 1,\n doc: r,\n isRoot: !1,\n store: l,\n onJumpToDest: m\n }));\n},\n s = function s(e) {\n var t = e.bookmarks,\n n = e.depth,\n r = void 0 === n ? 0 : n,\n a = e.doc,\n i = e.isRoot,\n s = e.store,\n u = e.onJumpToDest;\n return o.createElement(\"ul\", {\n className: \"rpv-bookmark__list\",\n role: i ? \"tree\" : \"group\",\n tabIndex: -1\n }, t.map(function (e, n) {\n return o.createElement(c, {\n bookmark: e,\n depth: r,\n doc: a,\n index: n,\n key: n,\n numberOfSiblings: t.length,\n store: s,\n onJumpToDest: u\n });\n }));\n};\n\n!function (e) {\n e[e.Collapse = 0] = \"Collapse\", e[e.Expand = 1] = \"Expand\";\n}(r || (r = {}));\n\nvar u = function u(e) {\n var n = e.bookmarks,\n a = e.doc,\n i = e.store,\n c = e.onJumpToDest,\n u = o.useRef(),\n l = o.useState(i.get(\"linkAnnotations\") || {}),\n m = l[0],\n f = l[1],\n d = function d(e, t) {\n var n = e.dest;\n n && \"string\" == typeof n && t[n] && (t[n].querySelectorAll('a[data-annotation-link-dest=\"' + n + '\"]').forEach(function (t) {\n t.setAttribute(\"aria-label\", e.title);\n }), e.items && e.items.length && e.items.forEach(function (e) {\n return d(e, t);\n }));\n },\n k = function k(e) {\n return f(e);\n },\n p = function p(e) {\n var t = u.current;\n if (t && e.target instanceof HTMLElement && t.contains(e.target)) switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault(), v(function (e, t) {\n return e.indexOf(t) + 1;\n });\n break;\n\n case \"ArrowLeft\":\n e.preventDefault(), E(r.Collapse);\n break;\n\n case \"ArrowRight\":\n e.preventDefault(), E(r.Expand);\n break;\n\n case \"ArrowUp\":\n e.preventDefault, v(function (e, t) {\n return e.indexOf(t) - 1;\n });\n break;\n\n case \"End\":\n e.preventDefault(), v(function (e, t) {\n return e.length - 1;\n });\n break;\n\n case \" \":\n case \"Enter\":\n case \"Space\":\n e.preventDefault(), b();\n break;\n\n case \"Home\":\n e.preventDefault(), v(function (e, t) {\n return 0;\n });\n }\n },\n b = function b() {\n var e = document.activeElement.closest(\".rpv-bookmark__item\").querySelector(\".rpv-bookmark__title\");\n e && e.click();\n },\n v = function v(e) {\n var t = u.current,\n n = [].slice.call(t.getElementsByClassName(\"rpv-bookmark__item\"));\n\n if (0 !== n.length) {\n var r = document.activeElement,\n o = n[Math.min(n.length - 1, Math.max(0, e(n, r)))];\n r.setAttribute(\"tabindex\", \"-1\"), o.setAttribute(\"tabindex\", \"0\"), o.focus();\n }\n },\n E = function E(e) {\n var t = u.current;\n\n if (0 !== [].slice.call(t.getElementsByClassName(\"rpv-bookmark__item\")).length) {\n var n = document.activeElement.closest(\".rpv-bookmark__item\"),\n o = e === r.Collapse ? \"true\" : \"false\";\n\n if (n && n.parentElement.getAttribute(\"aria-expanded\") === o) {\n var a = n.querySelector(\".rpv-bookmark__toggle\");\n a && a.click();\n }\n }\n };\n\n return o.useEffect(function () {\n return document.addEventListener(\"keydown\", p), i.subscribe(\"linkAnnotations\", k), function () {\n document.removeEventListener(\"keydown\", p), i.unsubscribe(\"linkAnnotations\", k);\n };\n }, []), o.useEffect(function () {\n n.forEach(function (e) {\n return d(e, m);\n });\n }, [m]), o.useEffect(function () {\n var e = u.current;\n\n if (e) {\n var t = [].slice.call(e.getElementsByClassName(\"rpv-bookmark__item\"));\n t.length > 0 && (t[0].focus(), t[0].setAttribute(\"tabindex\", \"0\"));\n }\n }, []), o.createElement(\"div\", {\n ref: u\n }, o.createElement(s, {\n bookmarks: n,\n depth: 0,\n doc: a,\n isRoot: !0,\n store: i,\n onJumpToDest: function onJumpToDest(e) {\n t.getDestination(a, e).then(function (e) {\n var t = e.pageIndex,\n n = e.bottomOffset,\n r = e.scaleTo;\n c(t + 1, n, r);\n });\n }\n }));\n},\n l = function l(e) {\n var n = e.doc,\n r = e.store,\n a = e.onJumpToDest,\n i = o.useContext(t.LocalizationContext),\n c = o.useState({\n isLoaded: !1,\n items: []\n }),\n s = c[0],\n l = c[1];\n return o.useEffect(function () {\n l({\n isLoaded: !1,\n items: []\n }), n.getOutline().then(function (e) {\n l({\n isLoaded: !0,\n items: e || []\n });\n });\n }, [n]), s.isLoaded ? 0 === s.items.length ? o.createElement(\"div\", {\n className: \"rpv-bookmark__empty\"\n }, i && i.bookmark ? i.bookmark.noBookmark : \"There is no bookmark\") : o.createElement(\"div\", {\n className: \"rpv-bookmark__container\"\n }, o.createElement(u, {\n bookmarks: s.items,\n doc: n,\n store: r,\n onJumpToDest: a\n })) : o.createElement(t.Spinner, null);\n},\n m = function m(e) {\n var n = e.store,\n r = o.useState(n.get(\"doc\")),\n a = r[0],\n i = r[1],\n c = function c(e) {\n i(e);\n };\n\n return o.useEffect(function () {\n return n.subscribe(\"doc\", c), function () {\n n.unsubscribe(\"doc\", c);\n };\n }, []), a ? o.createElement(l, {\n doc: a,\n store: n,\n onJumpToDest: function onJumpToDest(e, t, r) {\n var o = n.get(\"jumpToDestination\");\n o && o(e, t, 0, r);\n }\n }) : o.createElement(\"div\", {\n className: \"rpv-bookmark__loader\"\n }, o.createElement(t.Spinner, null));\n};\n\nexports.DownArrowIcon = a, exports.RightArrowIcon = i, exports.bookmarkPlugin = function () {\n var e = o.useMemo(function () {\n return t.createStore({\n linkAnnotations: {}\n });\n }, []);\n return {\n install: function install(t) {\n e.update(\"jumpToDestination\", t.jumpToDestination);\n },\n onDocumentLoad: function onDocumentLoad(t) {\n e.update(\"doc\", t.doc);\n },\n Bookmarks: function Bookmarks() {\n return o.createElement(m, {\n store: e\n });\n },\n onAnnotationLayerRender: function onAnnotationLayerRender(t) {\n if (t.annotations.length) {\n var n = t.annotations.filter(function (e) {\n return \"Link\" === e.subtype;\n });\n\n if (n.length) {\n var r = e.get(\"linkAnnotations\") || {};\n n.forEach(function (e) {\n return r[e.dest] = t.container;\n }), e.update(\"linkAnnotations\", r);\n }\n }\n }\n };\n};","/**\n * A React component to view a PDF document\n *\n * @see https://react-pdf-viewer.dev\n * @license https://react-pdf-viewer.dev/license\n * @copyright 2019-2021 Nguyen Huu Phuoc \n */\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/bookmark.min.js');\n} else {\n module.exports = require('./cjs/bookmark.js');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n});\n\nvar e = require(\"react\"),\n t = require(\"pdfjs-dist\");\n\nfunction n(e) {\n if (e && e.__esModule) return e;\n var t = Object.create(null);\n return e && Object.keys(e).forEach(function (n) {\n if (\"default\" !== n) {\n var r = Object.getOwnPropertyDescriptor(e, n);\n Object.defineProperty(t, n, r.get ? r : {\n enumerable: !0,\n get: function get() {\n return e[n];\n }\n });\n }\n }), t.default = e, Object.freeze(t);\n}\n\nvar r,\n o,\n a,\n i,\n c,\n s = n(e),\n l = n(t);\nexports.AnnotationType = void 0, (r = exports.AnnotationType || (exports.AnnotationType = {}))[r.Text = 1] = \"Text\", r[r.Link = 2] = \"Link\", r[r.FreeText = 3] = \"FreeText\", r[r.Line = 4] = \"Line\", r[r.Square = 5] = \"Square\", r[r.Circle = 6] = \"Circle\", r[r.Polygon = 7] = \"Polygon\", r[r.Polyline = 8] = \"Polyline\", r[r.Highlight = 9] = \"Highlight\", r[r.Underline = 10] = \"Underline\", r[r.Squiggly = 11] = \"Squiggly\", r[r.StrikeOut = 12] = \"StrikeOut\", r[r.Stamp = 13] = \"Stamp\", r[r.Caret = 14] = \"Caret\", r[r.Ink = 15] = \"Ink\", r[r.Popup = 16] = \"Popup\", r[r.FileAttachment = 17] = \"FileAttachment\", exports.LayerRenderStatus = void 0, (o = exports.LayerRenderStatus || (exports.LayerRenderStatus = {}))[o.PreRender = 0] = \"PreRender\", o[o.DidRender = 1] = \"DidRender\", exports.Position = void 0, (a = exports.Position || (exports.Position = {})).TopLeft = \"TOP_LEFT\", a.TopCenter = \"TOP_CENTER\", a.TopRight = \"TOP_RIGHT\", a.RightTop = \"RIGHT_TOP\", a.RightCenter = \"RIGHT_CENTER\", a.RightBottom = \"RIGHT_BOTTOM\", a.BottomLeft = \"BOTTOM_LEFT\", a.BottomCenter = \"BOTTOM_CENTER\", a.BottomRight = \"BOTTOM_RIGHT\", a.LeftTop = \"LEFT_TOP\", a.LeftCenter = \"LEFT_CENTER\", a.LeftBottom = \"LEFT_BOTTOM\", exports.SpecialZoomLevel = void 0, (i = exports.SpecialZoomLevel || (exports.SpecialZoomLevel = {})).ActualSize = \"ActualSize\", i.PageFit = \"PageFit\", i.PageWidth = \"PageWidth\", exports.ToggleStatus = void 0, (c = exports.ToggleStatus || (exports.ToggleStatus = {})).Close = \"Close\", c.Open = \"Open\", c.Toggle = \"Toggle\";\n\nvar p = \"undefined\" != typeof window ? s.useLayoutEffect : s.useEffect,\n u = function u(e) {\n var t = e.children,\n n = e.size,\n r = ((void 0 === n ? 24 : n) || 24) + \"px\";\n return s.createElement(\"svg\", {\n \"aria-hidden\": \"true\",\n className: \"rpv-core__icon\",\n focusable: \"false\",\n height: r,\n viewBox: \"0 0 24 24\",\n width: r\n }, t);\n},\n d = function d() {\n return s.createElement(u, {\n size: 16\n }, s.createElement(\"path\", {\n d: \"M23.5,0.499l-16.5,23l-6.5-6.5\"\n }));\n},\n f = function f(e) {\n var t = [];\n return Object.keys(e).forEach(function (n) {\n n && e[n] && t.push(n);\n }), t.join(\" \");\n},\n _v = function v(e, t) {\n return (_v = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (e, t) {\n e.__proto__ = t;\n } || function (e, t) {\n for (var n in t) {\n Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);\n }\n })(e, t);\n};\n\nfunction g(e, t) {\n if (\"function\" != typeof t && null !== t) throw new TypeError(\"Class extends value \" + String(t) + \" is not a constructor or null\");\n\n function n() {\n this.constructor = e;\n }\n\n _v(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n());\n}\n\nvar _m = function m() {\n return (_m = Object.assign || function (e) {\n for (var t, n = 1, r = arguments.length; n < r; n++) {\n for (var o in t = arguments[n]) {\n Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n},\n h = function h(e) {\n var t = e.children,\n n = e.onClick;\n return s.createElement(\"button\", {\n className: \"rpv-core__primary-button\",\n type: \"button\",\n onClick: n\n }, t);\n},\n E = function E(e) {\n var t = e.size,\n n = void 0 === t ? \"4rem\" : t;\n return s.createElement(\"div\", {\n className: \"rpv-core__spinner\",\n style: {\n height: n,\n width: n\n }\n });\n},\n y = function y(e) {\n var t = e.ariaLabel,\n n = void 0 === t ? \"\" : t,\n r = e.placeholder,\n o = void 0 === r ? \"\" : r,\n a = e.type,\n i = void 0 === a ? \"text\" : a,\n c = e.value,\n l = void 0 === c ? \"\" : c,\n p = e.onChange,\n u = e.onKeyDown,\n d = void 0 === u ? function () {} : u;\n return s.createElement(\"input\", {\n \"aria-label\": n,\n className: \"rpv-core__textbox\",\n placeholder: o,\n type: i,\n value: l,\n onChange: function onChange(e) {\n return p(e.target.value);\n },\n onKeyDown: d\n });\n},\n x = function x(e, t, n) {\n var r = function r(e) {\n var r = t.current;\n r && !r.contains(e.target) && n();\n };\n\n s.useEffect(function () {\n if (e) return document.addEventListener(\"click\", r), function () {\n document.removeEventListener(\"click\", r);\n };\n }, []);\n},\n w = function w(e) {\n var t = function t(_t) {\n \"Escape\" === _t.key && e();\n };\n\n s.useEffect(function () {\n return document.addEventListener(\"keyup\", t), function () {\n document.removeEventListener(\"keyup\", t);\n };\n }, []);\n},\n _ = function _(e) {\n var t = e.ariaControlsSuffix,\n n = e.children,\n r = e.closeOnClickOutside,\n o = e.closeOnEscape,\n a = e.onToggle,\n i = s.useRef();\n return s.useEffect(function () {\n var e = window.getComputedStyle(document.body).overflow;\n return document.body.style.overflow = \"hidden\", function () {\n document.body.style.overflow = e;\n };\n }, []), w(function () {\n i.current && o && a();\n }), x(r, i, a), p(function () {\n var e = i.current;\n\n if (e) {\n var t = .75 * document.body.clientHeight;\n e.getBoundingClientRect().height >= t && (e.style.overflow = \"auto\", e.style.maxHeight = t + \"px\");\n }\n }, []), s.createElement(\"div\", {\n \"aria-modal\": \"true\",\n className: \"rpv-core__modal-body\",\n id: \"rpv-core__modal-body-\" + t,\n ref: i,\n role: \"dialog\",\n tabIndex: -1\n }, n);\n},\n b = function b(e) {\n var t = e.children;\n return s.createElement(\"div\", {\n className: \"rpv-core__modal-overlay\"\n }, t);\n},\n P = function P() {\n var e = s.useState(!1),\n t = e[0],\n n = e[1];\n return {\n opened: t,\n toggle: function toggle(e) {\n switch (e) {\n case exports.ToggleStatus.Close:\n n(!1);\n break;\n\n case exports.ToggleStatus.Open:\n n(!0);\n break;\n\n case exports.ToggleStatus.Toggle:\n default:\n n(function (e) {\n return !e;\n });\n }\n }\n };\n},\n k = function k(e) {\n var t = e.content,\n n = e.target,\n r = P(),\n o = r.opened,\n a = r.toggle;\n return s.createElement(s.Fragment, null, n(a, o), o && t(a));\n},\n C = 0,\n L = function L() {\n return C++;\n},\n T = function T(e, t, n, r, o) {\n p(function () {\n var a = t.current,\n i = e.current,\n c = n.current;\n\n if (i && a && c) {\n var s = c.getBoundingClientRect(),\n l = function (e, t, n, r) {\n var o = t.getBoundingClientRect(),\n a = e.getBoundingClientRect(),\n i = a.height,\n c = a.width,\n s = 0,\n l = 0;\n\n switch (n) {\n case exports.Position.TopLeft:\n s = o.top - i, l = o.left;\n break;\n\n case exports.Position.TopCenter:\n s = o.top - i, l = o.left + o.width / 2 - c / 2;\n break;\n\n case exports.Position.TopRight:\n s = o.top - i, l = o.left + o.width - c;\n break;\n\n case exports.Position.RightTop:\n s = o.top, l = o.left + o.width;\n break;\n\n case exports.Position.RightCenter:\n s = o.top + o.height / 2 - i / 2, l = o.left + o.width;\n break;\n\n case exports.Position.RightBottom:\n s = o.top + o.height - i, l = o.left + o.width;\n break;\n\n case exports.Position.BottomLeft:\n s = o.top + o.height, l = o.left;\n break;\n\n case exports.Position.BottomCenter:\n s = o.top + o.height, l = o.left + o.width / 2 - c / 2;\n break;\n\n case exports.Position.BottomRight:\n s = o.top + o.height, l = o.left + o.width - c;\n break;\n\n case exports.Position.LeftTop:\n s = o.top, l = o.left - c;\n break;\n\n case exports.Position.LeftCenter:\n s = o.top + o.height / 2 - i / 2, l = o.left - c;\n break;\n\n case exports.Position.LeftBottom:\n s = o.top + o.height - i, l = o.left - c;\n }\n\n return {\n left: l + (r.left || 0),\n top: s + (r.top || 0)\n };\n }(i, a, r, o),\n p = l.top,\n u = l.left;\n\n i.style.top = p - s.top + \"px\", i.style.left = u - s.left + \"px\";\n }\n }, []);\n},\n O = function O(e) {\n var t,\n n = e.customClassName,\n r = e.position;\n return s.createElement(\"div\", {\n className: f((t = {\n \"rpv-core__arrow\": !0,\n \"rpv-core__arrow--tl\": r === exports.Position.TopLeft,\n \"rpv-core__arrow--tc\": r === exports.Position.TopCenter,\n \"rpv-core__arrow--tr\": r === exports.Position.TopRight,\n \"rpv-core__arrow--rt\": r === exports.Position.RightTop,\n \"rpv-core__arrow--rc\": r === exports.Position.RightCenter,\n \"rpv-core__arrow--rb\": r === exports.Position.RightBottom,\n \"rpv-core__arrow--bl\": r === exports.Position.BottomLeft,\n \"rpv-core__arrow--bc\": r === exports.Position.BottomCenter,\n \"rpv-core__arrow--br\": r === exports.Position.BottomRight,\n \"rpv-core__arrow--lt\": r === exports.Position.LeftTop,\n \"rpv-core__arrow--lc\": r === exports.Position.LeftCenter,\n \"rpv-core__arrow--lb\": r === exports.Position.LeftBottom\n }, t[\"\" + n] = \"\" !== n, t))\n });\n},\n S = function S(e) {\n var t = e.ariaControlsSuffix,\n n = e.children,\n r = e.closeOnClickOutside,\n o = e.offset,\n a = e.position,\n i = e.targetRef,\n c = e.onClose,\n l = s.useRef(),\n u = s.useRef(),\n d = s.useRef();\n x(r, l, c), T(l, i, d, a, o), p(function () {\n var e = u.current;\n\n if (e) {\n var t = .75 * document.body.clientHeight;\n e.getBoundingClientRect().height >= t && (e.style.overflow = \"auto\", e.style.maxHeight = t + \"px\");\n }\n }, []);\n var f = \"rpv-core__popover-body-inner-\" + t;\n return s.createElement(s.Fragment, null, s.createElement(\"div\", {\n ref: d,\n style: {\n left: 0,\n position: \"absolute\",\n top: 0\n }\n }), s.createElement(\"div\", {\n \"aria-describedby\": f,\n className: \"rpv-core__popover-body\",\n id: \"rpv-core__popover-body-\" + t,\n ref: l,\n role: \"dialog\",\n tabIndex: -1\n }, s.createElement(O, {\n customClassName: \"rpv-core__popover-body-arrow\",\n position: a\n }), s.createElement(\"div\", {\n id: f,\n ref: u\n }, n)));\n},\n R = function R(e) {\n var t = e.closeOnEscape,\n n = e.onClose,\n r = s.useRef();\n return w(function () {\n r.current && t && n();\n }), s.createElement(\"div\", {\n className: \"rpv-core__popover-overlay\",\n ref: r\n });\n},\n M = function M(e) {\n var t = e.ariaControlsSuffix,\n n = e.children,\n r = e.contentRef,\n o = e.offset,\n a = e.position,\n i = e.targetRef,\n c = s.useRef();\n return T(r, i, c, a, o), s.createElement(s.Fragment, null, s.createElement(\"div\", {\n ref: c,\n style: {\n left: 0,\n position: \"absolute\",\n top: 0\n }\n }), s.createElement(\"div\", {\n className: \"rpv-core__tooltip-body\",\n id: \"rpv-core__tooltip-body-\" + t,\n ref: r,\n role: \"tooltip\"\n }, s.createElement(O, {\n customClassName: \"rpv-core__tooltip-body-arrow\",\n position: a\n }), s.createElement(\"div\", {\n className: \"rpv-core__tooltip-body-content\"\n }, n)));\n};\n\nvar N = s.createContext({}),\n A = {\n core: {\n askingPassword: {\n requirePasswordToOpen: \"This document requires a password to open\",\n submit: \"Submit\"\n },\n wrongPassword: {\n submit: \"Submit\",\n tryAgain: \"The password is wrong. Please try again\"\n },\n pageLabel: \"Page {{pageIndex}}\"\n }\n},\n H = function H(e) {\n var t = e.children,\n n = e.localization,\n r = A,\n o = s.useState(n || r),\n a = o[0],\n i = o[1];\n return s.createElement(N.Provider, {\n value: a\n }, t(function (e) {\n return i(e);\n }));\n},\n I = s.createContext({\n currentTheme: \"light\",\n setCurrentTheme: function setCurrentTheme() {}\n});\n\nfunction B(e) {\n var t = s.useRef(e);\n return s.useEffect(function () {\n t.current = e;\n }, [e]), t.current;\n}\n\nvar F,\n D = function D(e) {\n var t = e.children,\n n = e.theme,\n r = e.onSwitchTheme,\n o = s.useMemo(function () {\n return \"auto\" === n ? \"undefined\" != typeof window && window.matchMedia && window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\" : n;\n }, []),\n a = s.useState(o),\n i = a[0],\n c = a[1],\n l = B(i);\n s.useEffect(function () {\n if (\"auto\" === n) {\n var e = window.matchMedia(\"(prefers-color-scheme: dark)\"),\n t = function t(e) {\n c(e.matches ? \"dark\" : \"light\");\n };\n\n return e.addEventListener(\"change\", t), function () {\n return e.removeEventListener(\"change\", t);\n };\n }\n }, []), s.useEffect(function () {\n i !== l && r && r(i);\n }, [i]);\n var p = {\n currentTheme: i,\n setCurrentTheme: c\n };\n return s.createElement(I.Provider, {\n value: p\n }, t);\n},\n W = function W(e) {\n var t = s.useRef(null),\n n = e.threshold,\n r = e.onVisibilityChanged;\n return p(function () {\n var e = new IntersectionObserver(function (e) {\n e.forEach(function (e) {\n var t = e.isIntersecting,\n n = e.intersectionRatio;\n r({\n isVisible: t,\n ratio: n\n });\n });\n }, {\n threshold: n || 0\n }),\n o = t.current;\n if (o) return e.observe(o), function () {\n e.unobserve(o);\n };\n }, []), t;\n};\n\n!function (e) {\n e[e.Solid = 1] = \"Solid\", e[e.Dashed = 2] = \"Dashed\", e[e.Beveled = 3] = \"Beveled\", e[e.Inset = 4] = \"Inset\", e[e.Underline = 5] = \"Underline\";\n}(F || (F = {}));\n\nvar j,\n V = new RegExp(\"^D:(\\\\d{4})(\\\\d{2})?(\\\\d{2})?(\\\\d{2})?(\\\\d{2})?(\\\\d{2})?([Z|+|-])?(\\\\d{2})?'?(\\\\d{2})?'?\"),\n z = function z(e, t, n, r) {\n var o = parseInt(e, 10);\n return o >= t && o <= n ? o : r;\n},\n q = function q(e) {\n var t = e.annotation,\n n = s.useRef(),\n r = \"\";\n\n if (t.modificationDate) {\n var o = function (e) {\n var t = V.exec(e);\n if (!t) return null;\n var n = parseInt(t[1], 10),\n r = z(t[2], 1, 12, 1) - 1,\n o = z(t[3], 1, 31, 1),\n a = z(t[4], 0, 23, 0),\n i = z(t[5], 0, 59, 0),\n c = z(t[6], 0, 59, 0),\n s = t[7] || \"Z\",\n l = z(t[8], 0, 23, 0),\n p = z(t[9], 0, 59, 0);\n\n switch (s) {\n case \"-\":\n a += l, i += p;\n break;\n\n case \"+\":\n a -= l, i -= p;\n }\n\n return new Date(Date.UTC(n, r, o, a, i, c));\n }(t.modificationDate);\n\n r = o ? o.toLocaleDateString() + \", \" + o.toLocaleTimeString() : \"\";\n }\n\n return s.useLayoutEffect(function () {\n if (n.current) {\n var e = document.querySelector('[data-annotation-id=\"' + t.id + '\"]');\n\n if (e) {\n var r = e;\n return r.style.zIndex += 1, function () {\n r.style.zIndex = \"\" + (parseInt(r.style.zIndex, 10) - 1);\n };\n }\n }\n }, []), s.createElement(\"div\", {\n ref: n,\n className: \"rpv-core__annotation-popup-wrapper\",\n style: {\n top: t.annotationType === exports.AnnotationType.Popup ? \"\" : \"100%\"\n }\n }, t.title && s.createElement(\"div\", {\n className: \"rpv-core__annotation-popup-header\"\n }, s.createElement(\"div\", {\n className: \"rpv-core__annotation-popup-title\"\n }, t.title), s.createElement(\"span\", {\n className: \"rpv-core__annotation-popup-date\"\n }, r)), t.contents && s.createElement(\"div\", {\n className: \"rpv-core__annotation-popup-content\"\n }, t.contents.split(\"\\n\").map(function (e, t) {\n return s.createElement(s.Fragment, {\n key: t\n }, e, s.createElement(\"br\", null));\n })));\n};\n\n!function (e) {\n e.Click = \"Click\", e.Hover = \"Hover\";\n}(j || (j = {}));\n\nvar Z = function Z(e) {\n var t,\n n = e.annotation,\n r = e.children,\n o = e.ignoreBorder,\n a = e.hasPopup,\n i = e.isRenderable,\n c = e.page,\n l = e.viewport,\n p = n.rect,\n u = function () {\n var e = P(),\n t = e.opened,\n n = e.toggle,\n r = s.useState(j.Hover),\n o = r[0],\n a = r[1];\n return {\n opened: t,\n closeOnHover: function closeOnHover() {\n o === j.Hover && n(exports.ToggleStatus.Close);\n },\n openOnHover: function openOnHover() {\n o === j.Hover && n(exports.ToggleStatus.Open);\n },\n toggleOnClick: function toggleOnClick() {\n switch (o) {\n case j.Click:\n t && a(j.Hover), n(exports.ToggleStatus.Toggle);\n break;\n\n case j.Hover:\n a(j.Click), n(exports.ToggleStatus.Open);\n }\n }\n };\n }(),\n d = u.closeOnHover,\n f = u.opened,\n v = u.openOnHover,\n g = u.toggleOnClick,\n m = (t = [p[0], c.view[3] + c.view[1] - p[1], p[2], c.view[3] + c.view[1] - p[3]], [Math.min(t[0], t[2]), Math.min(t[1], t[3]), Math.max(t[0], t[2]), Math.max(t[1], t[3])]),\n h = p[2] - p[0],\n E = p[3] - p[1],\n y = {\n borderColor: \"\",\n borderRadius: \"\",\n borderStyle: \"\",\n borderWidth: \"\"\n };\n\n if (!o && n.borderStyle.width > 0) {\n switch (n.borderStyle.style) {\n case F.Dashed:\n y.borderStyle = \"dashed\";\n break;\n\n case F.Solid:\n y.borderStyle = \"solid\";\n break;\n\n case F.Underline:\n y = Object.assign({\n borderBottomStyle: \"solid\"\n }, y);\n break;\n\n case F.Beveled:\n case F.Inset:\n }\n\n var x = n.borderStyle.width;\n y.borderWidth = x + \"px\", n.borderStyle.style !== F.Underline && (h -= 2 * x, E -= 2 * x);\n var w = n.borderStyle,\n _ = w.horizontalCornerRadius,\n b = w.verticalCornerRadius;\n (_ > 0 || b > 0) && (y.borderRadius = _ + \"px / \" + b + \"px\"), n.color ? y.borderColor = \"rgb(\" + (0 | n.color[0]) + \", \" + (0 | n.color[1]) + \", \" + (0 | n.color[2]) + \")\" : y.borderWidth = \"0\";\n }\n\n return s.createElement(s.Fragment, null, i && r({\n popup: {\n opened: f,\n closeOnHover: d,\n openOnHover: v,\n toggleOnClick: g\n },\n slot: {\n attrs: {\n style: Object.assign({\n height: E + \"px\",\n left: m[0] + \"px\",\n top: m[1] + \"px\",\n transform: \"matrix(\" + l.transform.join(\",\") + \")\",\n transformOrigin: \"-\" + m[0] + \"px -\" + m[1] + \"px\",\n width: h + \"px\"\n }, y)\n },\n children: s.createElement(s.Fragment, null, a && f && s.createElement(q, {\n annotation: n\n }))\n }\n }));\n},\n U = function U(e) {\n var t = e.annotation,\n n = e.page,\n r = e.viewport,\n o = !1 === t.hasPopup,\n a = !!(t.hasPopup || t.title || t.contents);\n return s.createElement(Z, {\n annotation: t,\n hasPopup: o,\n ignoreBorder: !0,\n isRenderable: a,\n page: n,\n viewport: r\n }, function (e) {\n return s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--caret\",\n \"data-annotation-id\": t.id,\n onClick: e.popup.toggleOnClick,\n onMouseEnter: e.popup.openOnHover,\n onMouseLeave: e.popup.closeOnHover\n }), e.slot.children);\n });\n},\n G = function G(e) {\n var t = e.annotation,\n n = e.page,\n r = e.viewport,\n o = !1 === t.hasPopup,\n a = !!(t.hasPopup || t.title || t.contents),\n i = t.rect,\n c = i[2] - i[0],\n l = i[3] - i[1],\n p = t.borderStyle.width;\n return s.createElement(Z, {\n annotation: t,\n hasPopup: o,\n ignoreBorder: !0,\n isRenderable: a,\n page: n,\n viewport: r\n }, function (e) {\n return s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--circle\",\n \"data-annotation-id\": t.id,\n onClick: e.popup.toggleOnClick,\n onMouseEnter: e.popup.openOnHover,\n onMouseLeave: e.popup.closeOnHover\n }), s.createElement(\"svg\", {\n height: l + \"px\",\n preserveAspectRatio: \"none\",\n version: \"1.1\",\n viewBox: \"0 0 \" + c + \" \" + l,\n width: c + \"px\"\n }, s.createElement(\"circle\", {\n cy: l / 2,\n fill: \"none\",\n rx: c / 2 - p / 2,\n ry: l / 2 - p / 2,\n stroke: \"transparent\",\n strokeWidth: p || 1\n })), e.slot.children);\n });\n},\n J = function J(e) {\n var t = e.annotation,\n n = e.page,\n r = e.viewport,\n o = !(!1 !== t.hasPopup || !t.title && !t.contents),\n a = function a() {\n var e,\n n,\n r,\n o,\n a = t.file;\n a && (e = a.filename, n = a.content, r = \"string\" == typeof n ? \"\" : URL.createObjectURL(new Blob([n], {\n type: \"\"\n })), (o = document.createElement(\"a\")).style.display = \"none\", o.href = r || e, o.setAttribute(\"download\", function (e) {\n var t = e.split(\"/\").pop();\n return t ? t.split(\"#\")[0].split(\"?\")[0] : e;\n }(e)), document.body.appendChild(o), o.click(), document.body.removeChild(o), r && URL.revokeObjectURL(r));\n };\n\n return s.createElement(Z, {\n annotation: t,\n hasPopup: o,\n ignoreBorder: !0,\n isRenderable: !0,\n page: n,\n viewport: r\n }, function (e) {\n return s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--file-attachment\",\n \"data-annotation-id\": t.id,\n onClick: e.popup.toggleOnClick,\n onDoubleClick: a,\n onMouseEnter: e.popup.openOnHover,\n onMouseLeave: e.popup.closeOnHover\n }), e.slot.children);\n });\n},\n K = function K(e) {\n var t = e.annotation,\n n = e.page,\n r = e.viewport,\n o = !1 === t.hasPopup,\n a = !!(t.hasPopup || t.title || t.contents);\n return s.createElement(Z, {\n annotation: t,\n hasPopup: o,\n ignoreBorder: !0,\n isRenderable: a,\n page: n,\n viewport: r\n }, function (e) {\n return s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--free-text\",\n \"data-annotation-id\": t.id,\n onClick: e.popup.toggleOnClick,\n onMouseEnter: e.popup.openOnHover,\n onMouseLeave: e.popup.closeOnHover\n }), e.slot.children);\n });\n},\n X = function X(e) {\n var t = e.annotation,\n n = e.page,\n r = e.viewport,\n o = !(!t.title && !t.contents),\n a = !t.parentType || -1 !== [\"Circle\", \"Ink\", \"Line\", \"Polygon\", \"PolyLine\", \"Square\"].indexOf(t.parentType);\n return p(function () {\n if (t.parentId) {\n var e = document.querySelector('[data-annotation-id=\"' + t.parentId + '\"]'),\n n = document.querySelector('[data-annotation-id=\"' + t.id + '\"]');\n\n if (e && n) {\n var r = parseFloat(e.style.left),\n o = parseFloat(e.style.top) + parseFloat(e.style.height);\n n.style.left = r + \"px\", n.style.top = o + \"px\", n.style.transformOrigin = \"-\" + r + \"px -\" + o + \"px\";\n }\n }\n }, []), s.createElement(Z, {\n annotation: t,\n hasPopup: a,\n ignoreBorder: !1,\n isRenderable: o,\n page: n,\n viewport: r\n }, function (e) {\n return s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--popup\",\n \"data-annotation-id\": t.id\n }), s.createElement(q, {\n annotation: t\n }));\n });\n},\n Y = function Y(e) {\n var t = e.annotation,\n n = e.childAnnotation,\n r = e.page,\n o = e.viewport,\n a = !1 === t.hasPopup,\n i = !!(t.hasPopup || t.title || t.contents);\n\n if (t.quadPoints && t.quadPoints.length > 0) {\n var c = t.quadPoints.map(function (e) {\n return Object.assign({}, t, {\n rect: [e[2].x, e[2].y, e[1].x, e[1].y],\n quadPoints: []\n });\n });\n return s.createElement(s.Fragment, null, c.map(function (e, t) {\n return s.createElement(Y, {\n key: t,\n annotation: e,\n childAnnotation: n,\n page: r,\n viewport: o\n });\n }));\n }\n\n return s.createElement(Z, {\n annotation: t,\n hasPopup: a,\n ignoreBorder: !0,\n isRenderable: i,\n page: r,\n viewport: o\n }, function (e) {\n return s.createElement(s.Fragment, null, s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--highlight\",\n \"data-annotation-id\": t.id,\n onClick: e.popup.toggleOnClick,\n onMouseEnter: e.popup.openOnHover,\n onMouseLeave: e.popup.closeOnHover\n }), e.slot.children), n && n.annotationType === exports.AnnotationType.Popup && e.popup.opened && s.createElement(X, {\n annotation: n,\n page: r,\n viewport: o\n }));\n });\n},\n Q = function Q(e) {\n var t = e.annotation,\n n = e.page,\n r = e.viewport,\n o = !1 === t.hasPopup,\n a = !!(t.hasPopup || t.title || t.contents),\n i = t.rect,\n c = i[2] - i[0],\n l = i[3] - i[1],\n p = t.borderStyle.width;\n return s.createElement(Z, {\n annotation: t,\n hasPopup: o,\n ignoreBorder: !0,\n isRenderable: a,\n page: n,\n viewport: r\n }, function (e) {\n return s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--ink\",\n \"data-annotation-id\": t.id,\n onClick: e.popup.toggleOnClick,\n onMouseEnter: e.popup.openOnHover,\n onMouseLeave: e.popup.closeOnHover\n }), t.inkLists && t.inkLists.length && s.createElement(\"svg\", {\n height: l + \"px\",\n preserveAspectRatio: \"none\",\n version: \"1.1\",\n viewBox: \"0 0 \" + c + \" \" + l,\n width: c + \"px\"\n }, t.inkLists.map(function (e, t) {\n return s.createElement(\"polyline\", {\n key: t,\n fill: \"none\",\n stroke: \"transparent\",\n strokeWidth: p || 1,\n points: e.map(function (e) {\n return e.x - i[0] + \",\" + (i[3] - e.y);\n }).join(\" \")\n });\n })), e.slot.children);\n });\n},\n $ = function $(e) {\n var t = e.annotation,\n n = e.page,\n r = e.viewport,\n o = !1 === t.hasPopup,\n a = !!(t.hasPopup || t.title || t.contents),\n i = t.rect,\n c = i[2] - i[0],\n l = i[3] - i[1],\n p = t.borderStyle.width;\n return s.createElement(Z, {\n annotation: t,\n hasPopup: o,\n ignoreBorder: !0,\n isRenderable: a,\n page: n,\n viewport: r\n }, function (e) {\n return s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--line\",\n \"data-annotation-id\": t.id,\n onClick: e.popup.toggleOnClick,\n onMouseEnter: e.popup.openOnHover,\n onMouseLeave: e.popup.closeOnHover\n }), s.createElement(\"svg\", {\n height: l + \"px\",\n preserveAspectRatio: \"none\",\n version: \"1.1\",\n viewBox: \"0 0 \" + c + \" \" + l,\n width: c + \"px\"\n }, s.createElement(\"line\", {\n stroke: \"transparent\",\n strokeWidth: p || 1,\n x1: i[2] - t.lineCoordinates[0],\n x2: i[2] - t.lineCoordinates[2],\n y1: i[3] - t.lineCoordinates[1],\n y2: i[3] - t.lineCoordinates[3]\n })), e.slot.children);\n });\n},\n ee = function ee(e, t) {\n return new Promise(function (n) {\n new Promise(function (n) {\n \"string\" == typeof t ? e.getDestination(t).then(function (e) {\n n(e);\n }) : n(t);\n }).then(function (t) {\n return \"object\" == typeof t[0] ? e.getPageIndex(t[0]).then(function (e) {\n return Promise.resolve({\n pageIndex: e,\n destArray: t\n });\n }) : Promise.resolve({\n pageIndex: t[0],\n destArray: t\n });\n }).then(function (e) {\n var t = function (e, t) {\n switch (t[1].name) {\n case \"XYZ\":\n return {\n bottomOffset: t[3],\n pageIndex: e - 1,\n scaleTo: t[4]\n };\n\n case \"Fit\":\n case \"FitB\":\n return {\n bottomOffset: 0,\n pageIndex: e - 1,\n scaleTo: exports.SpecialZoomLevel.PageFit\n };\n\n case \"FitH\":\n case \"FitBH\":\n return {\n bottomOffset: t[2],\n pageIndex: e - 1,\n scaleTo: exports.SpecialZoomLevel.PageWidth\n };\n\n default:\n return {\n bottomOffset: 0,\n pageIndex: e - 1,\n scaleTo: 1\n };\n }\n }(e.pageIndex, e.destArray);\n\n n(t);\n });\n });\n},\n te = function te(e) {\n var t = e.annotation,\n n = e.doc,\n r = e.page,\n o = e.viewport,\n a = e.onExecuteNamedAction,\n i = e.onJumpToDest,\n c = !!(t.url || t.dest || t.action),\n l = t.url ? {\n href: t.url,\n rel: \"noopener noreferrer nofollow\",\n target: t.newWindow ? \"_blank\" : \"\",\n title: t.url\n } : {\n href: \"\",\n \"data-annotation-link-dest\": t.dest,\n onClick: function onClick(e) {\n e.preventDefault(), t.action ? a(t.action) : ee(n, t.dest).then(function (e) {\n var t = e.pageIndex,\n n = e.bottomOffset,\n r = e.scaleTo;\n i(n ? t + 1 : t, n, 0, r);\n });\n }\n };\n return s.createElement(Z, {\n annotation: t,\n hasPopup: !1,\n ignoreBorder: !1,\n isRenderable: c,\n page: r,\n viewport: o\n }, function (e) {\n return s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--link\",\n \"data-annotation-id\": t.id\n }), s.createElement(\"a\", _m({}, l)));\n });\n},\n ne = function ne(e) {\n var t = e.annotation,\n n = e.page,\n r = e.viewport,\n o = !1 === t.hasPopup,\n a = !!(t.hasPopup || t.title || t.contents),\n i = t.rect,\n c = i[2] - i[0],\n l = i[3] - i[1],\n p = t.borderStyle.width;\n return s.createElement(Z, {\n annotation: t,\n hasPopup: o,\n ignoreBorder: !0,\n isRenderable: a,\n page: n,\n viewport: r\n }, function (e) {\n return s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--polygon\",\n \"data-annotation-id\": t.id,\n onClick: e.popup.toggleOnClick,\n onMouseEnter: e.popup.openOnHover,\n onMouseLeave: e.popup.closeOnHover\n }), t.vertices && t.vertices.length && s.createElement(\"svg\", {\n height: l + \"px\",\n preserveAspectRatio: \"none\",\n version: \"1.1\",\n viewBox: \"0 0 \" + c + \" \" + l,\n width: c + \"px\"\n }, s.createElement(\"polygon\", {\n fill: \"none\",\n stroke: \"transparent\",\n strokeWidth: p || 1,\n points: t.vertices.map(function (e) {\n return e.x - i[0] + \",\" + (i[3] - e.y);\n }).join(\" \")\n })), e.slot.children);\n });\n},\n re = function re(e) {\n var t = e.annotation,\n n = e.page,\n r = e.viewport,\n o = !1 === t.hasPopup,\n a = !!(t.hasPopup || t.title || t.contents),\n i = t.rect,\n c = i[2] - i[0],\n l = i[3] - i[1],\n p = t.borderStyle.width;\n return s.createElement(Z, {\n annotation: t,\n hasPopup: o,\n ignoreBorder: !0,\n isRenderable: a,\n page: n,\n viewport: r\n }, function (e) {\n return s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--polyline\",\n \"data-annotation-id\": t.id,\n onClick: e.popup.toggleOnClick,\n onMouseEnter: e.popup.openOnHover,\n onMouseLeave: e.popup.closeOnHover\n }), t.vertices && t.vertices.length && s.createElement(\"svg\", {\n height: l + \"px\",\n preserveAspectRatio: \"none\",\n version: \"1.1\",\n viewBox: \"0 0 \" + c + \" \" + l,\n width: c + \"px\"\n }, s.createElement(\"polyline\", {\n fill: \"none\",\n stroke: \"transparent\",\n strokeWidth: p || 1,\n points: t.vertices.map(function (e) {\n return e.x - i[0] + \",\" + (i[3] - e.y);\n }).join(\" \")\n })), e.slot.children);\n });\n},\n oe = function oe(e) {\n var t = e.annotation,\n n = e.page,\n r = e.viewport,\n o = !1 === t.hasPopup,\n a = !!(t.hasPopup || t.title || t.contents),\n i = t.rect,\n c = i[2] - i[0],\n l = i[3] - i[1],\n p = t.borderStyle.width;\n return s.createElement(Z, {\n annotation: t,\n hasPopup: o,\n ignoreBorder: !0,\n isRenderable: a,\n page: n,\n viewport: r\n }, function (e) {\n return s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--square\",\n \"data-annotation-id\": t.id,\n onClick: e.popup.toggleOnClick,\n onMouseEnter: e.popup.openOnHover,\n onMouseLeave: e.popup.closeOnHover\n }), s.createElement(\"svg\", {\n height: l + \"px\",\n preserveAspectRatio: \"none\",\n version: \"1.1\",\n viewBox: \"0 0 \" + c + \" \" + l,\n width: c + \"px\"\n }, s.createElement(\"rect\", {\n height: l - p,\n fill: \"none\",\n stroke: \"transparent\",\n strokeWidth: p || 1,\n x: p / 2,\n y: p / 2,\n width: c - p\n })), e.slot.children);\n });\n},\n ae = function ae(e) {\n var t = e.annotation,\n n = e.page,\n r = e.viewport,\n o = !1 === t.hasPopup,\n a = !!(t.hasPopup || t.title || t.contents);\n return s.createElement(Z, {\n annotation: t,\n hasPopup: o,\n ignoreBorder: !0,\n isRenderable: a,\n page: n,\n viewport: r\n }, function (e) {\n return s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--squiggly\",\n \"data-annotation-id\": t.id,\n onClick: e.popup.toggleOnClick,\n onMouseEnter: e.popup.openOnHover,\n onMouseLeave: e.popup.closeOnHover\n }), e.slot.children);\n });\n},\n ie = function ie(e) {\n var t = e.annotation,\n n = e.page,\n r = e.viewport,\n o = !1 === t.hasPopup,\n a = !!(t.hasPopup || t.title || t.contents);\n return s.createElement(Z, {\n annotation: t,\n hasPopup: o,\n ignoreBorder: !0,\n isRenderable: a,\n page: n,\n viewport: r\n }, function (e) {\n return s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--stamp\",\n \"data-annotation-id\": t.id,\n onClick: e.popup.toggleOnClick,\n onMouseEnter: e.popup.openOnHover,\n onMouseLeave: e.popup.closeOnHover\n }), e.slot.children);\n });\n},\n ce = function ce(e) {\n var t = e.annotation,\n n = e.page,\n r = e.viewport,\n o = !1 === t.hasPopup,\n a = !!(t.hasPopup || t.title || t.contents);\n return s.createElement(Z, {\n annotation: t,\n hasPopup: o,\n ignoreBorder: !0,\n isRenderable: a,\n page: n,\n viewport: r\n }, function (e) {\n return s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--strike-out\",\n \"data-annotation-id\": t.id,\n onClick: e.popup.toggleOnClick,\n onMouseEnter: e.popup.openOnHover,\n onMouseLeave: e.popup.closeOnHover\n }), e.slot.children);\n });\n},\n se = function se() {\n return s.createElement(u, {\n size: 16\n }, s.createElement(\"path\", {\n d: \"M.5,16.5a1,1,0,0,0,1,1h2v4l4-4h15a1,1,0,0,0,1-1V3.5a1,1,0,0,0-1-1H1.5a1,1,0,0,0-1,1Z\"\n }), s.createElement(\"path\", {\n d: \"M7.25,9.75A.25.25,0,1,1,7,10a.25.25,0,0,1,.25-.25\"\n }), s.createElement(\"path\", {\n d: \"M12,9.75a.25.25,0,1,1-.25.25A.25.25,0,0,1,12,9.75\"\n }), s.createElement(\"path\", {\n d: \"M16.75,9.75a.25.25,0,1,1-.25.25.25.25,0,0,1,.25-.25\"\n }));\n},\n le = function le() {\n return s.createElement(u, {\n size: 16\n }, s.createElement(\"path\", {\n d: \"M0.500 12.001 A11.500 11.500 0 1 0 23.500 12.001 A11.500 11.500 0 1 0 0.500 12.001 Z\"\n }), s.createElement(\"path\", {\n d: \"M6.000 12.001 A6.000 6.000 0 1 0 18.000 12.001 A6.000 6.000 0 1 0 6.000 12.001 Z\"\n }), s.createElement(\"path\", {\n d: \"M21.423 5.406L17.415 9.414\"\n }), s.createElement(\"path\", {\n d: \"M14.587 6.585L18.607 2.565\"\n }), s.createElement(\"path\", {\n d: \"M5.405 21.424L9.413 17.416\"\n }), s.createElement(\"path\", {\n d: \"M6.585 14.588L2.577 18.596\"\n }), s.createElement(\"path\", {\n d: \"M18.602 21.419L14.595 17.412\"\n }), s.createElement(\"path\", {\n d: \"M17.419 14.58L21.428 18.589\"\n }), s.createElement(\"path\", {\n d: \"M2.582 5.399L6.588 9.406\"\n }), s.createElement(\"path\", {\n d: \"M9.421 6.581L5.412 2.572\"\n }));\n},\n pe = function pe() {\n return s.createElement(u, {\n size: 16\n }, s.createElement(\"path\", {\n d: \"M4.000 18.500 A1.500 1.500 0 1 0 7.000 18.500 A1.500 1.500 0 1 0 4.000 18.500 Z\"\n }), s.createElement(\"path\", {\n d: \"M20.5.5l-9.782,9.783a7,7,0,1,0,3,3L17,10h1.5V8.5L19,8h1.5V6.5L21,6h1.5V4.5l1-1V.5Z\"\n }));\n},\n ue = function ue() {\n return s.createElement(u, {\n size: 16\n }, s.createElement(\"path\", {\n d: \"M2.000 2.500 L22.000 2.500 L22.000 23.500 L2.000 23.500 Z\"\n }), s.createElement(\"path\", {\n d: \"M6 4.5L6 0.5\"\n }), s.createElement(\"path\", {\n d: \"M18 4.5L18 0.5\"\n }), s.createElement(\"path\", {\n d: \"M10 4.5L10 0.5\"\n }), s.createElement(\"path\", {\n d: \"M14 4.5L14 0.5\"\n }));\n},\n de = function de() {\n return s.createElement(u, {\n size: 16\n }, s.createElement(\"path\", {\n d: \"M17.5 0.498L17.5 23.498\"\n }), s.createElement(\"path\", {\n d: \"M10.5 0.498L10.5 23.498\"\n }), s.createElement(\"path\", {\n d: \"M23.5.5H6.5a6,6,0,0,0,0,12h4\"\n }));\n},\n fe = function fe() {\n return s.createElement(u, {\n size: 16\n }, s.createElement(\"path\", {\n d: \"M2.5 22.995L12 6.005 21.5 22.995 2.5 22.995z\"\n }));\n},\n ve = function ve(e) {\n var t = e.annotation,\n n = e.childAnnotation,\n r = e.page,\n o = e.viewport,\n a = !1 === t.hasPopup,\n i = !!(t.hasPopup || t.title || t.contents),\n c = t.name ? t.name.toLowerCase() : \"\";\n return s.createElement(Z, {\n annotation: t,\n hasPopup: a,\n ignoreBorder: !1,\n isRenderable: i,\n page: r,\n viewport: o\n }, function (e) {\n return s.createElement(s.Fragment, null, s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--text\",\n \"data-annotation-id\": t.id,\n onClick: e.popup.toggleOnClick,\n onMouseEnter: e.popup.openOnHover,\n onMouseLeave: e.popup.closeOnHover\n }), c && s.createElement(\"div\", {\n className: \"rpv-core__annotation-text-icon\"\n }, \"check\" === c && s.createElement(d, null), \"comment\" === c && s.createElement(se, null), \"help\" === c && s.createElement(le, null), \"insert\" === c && s.createElement(fe, null), \"key\" === c && s.createElement(pe, null), \"note\" === c && s.createElement(ue, null), (\"newparagraph\" === c || \"paragraph\" === c) && s.createElement(de, null)), e.slot.children), n && n.annotationType === exports.AnnotationType.Popup && e.popup.opened && s.createElement(X, {\n annotation: n,\n page: r,\n viewport: o\n }));\n });\n},\n ge = function ge(e) {\n var t = e.annotation,\n n = e.page,\n r = e.viewport,\n o = !1 === t.hasPopup,\n a = !!(t.hasPopup || t.title || t.contents);\n return s.createElement(Z, {\n annotation: t,\n hasPopup: o,\n ignoreBorder: !0,\n isRenderable: a,\n page: n,\n viewport: r\n }, function (e) {\n return s.createElement(\"div\", _m({}, e.slot.attrs, {\n className: \"rpv-core__annotation rpv-core__annotation--underline\",\n \"data-annotation-id\": t.id,\n onClick: e.popup.toggleOnClick,\n onMouseEnter: e.popup.openOnHover,\n onMouseLeave: e.popup.closeOnHover\n }), e.slot.children);\n });\n},\n me = function me(e) {\n var t = e.annotations,\n n = e.containerRef,\n r = e.doc,\n o = e.page,\n a = e.pageIndex,\n i = e.plugins,\n c = e.rotation,\n l = e.scale,\n p = e.onExecuteNamedAction,\n u = e.onJumpToDest,\n d = o.getViewport({\n rotation: c,\n scale: l\n }).clone({\n dontFlip: !0\n }),\n f = t.filter(function (e) {\n return !e.parentId;\n });\n return s.useEffect(function () {\n var e = n.current;\n e && i.forEach(function (t) {\n t.onAnnotationLayerRender && t.onAnnotationLayerRender({\n annotations: f,\n container: e,\n pageIndex: a,\n rotation: c,\n scale: l\n });\n });\n }, []), s.createElement(s.Fragment, null, f.map(function (e) {\n var n = t.find(function (t) {\n return t.parentId === e.id;\n });\n\n switch (e.annotationType) {\n case exports.AnnotationType.Caret:\n return s.createElement(U, {\n key: e.id,\n annotation: e,\n page: o,\n viewport: d\n });\n\n case exports.AnnotationType.Circle:\n return s.createElement(G, {\n key: e.id,\n annotation: e,\n page: o,\n viewport: d\n });\n\n case exports.AnnotationType.FileAttachment:\n return s.createElement(J, {\n key: e.id,\n annotation: e,\n page: o,\n viewport: d\n });\n\n case exports.AnnotationType.FreeText:\n return s.createElement(K, {\n key: e.id,\n annotation: e,\n page: o,\n viewport: d\n });\n\n case exports.AnnotationType.Highlight:\n return s.createElement(Y, {\n key: e.id,\n annotation: e,\n childAnnotation: n,\n page: o,\n viewport: d\n });\n\n case exports.AnnotationType.Ink:\n return s.createElement(Q, {\n key: e.id,\n annotation: e,\n page: o,\n viewport: d\n });\n\n case exports.AnnotationType.Line:\n return s.createElement($, {\n key: e.id,\n annotation: e,\n page: o,\n viewport: d\n });\n\n case exports.AnnotationType.Link:\n return s.createElement(te, {\n key: e.id,\n annotation: e,\n doc: r,\n page: o,\n viewport: d,\n onExecuteNamedAction: p,\n onJumpToDest: u\n });\n\n case exports.AnnotationType.Polygon:\n return s.createElement(ne, {\n key: e.id,\n annotation: e,\n page: o,\n viewport: d\n });\n\n case exports.AnnotationType.Polyline:\n return s.createElement(re, {\n key: e.id,\n annotation: e,\n page: o,\n viewport: d\n });\n\n case exports.AnnotationType.Popup:\n return s.createElement(X, {\n key: e.id,\n annotation: e,\n page: o,\n viewport: d\n });\n\n case exports.AnnotationType.Square:\n return s.createElement(oe, {\n key: e.id,\n annotation: e,\n page: o,\n viewport: d\n });\n\n case exports.AnnotationType.Squiggly:\n return s.createElement(ae, {\n key: e.id,\n annotation: e,\n page: o,\n viewport: d\n });\n\n case exports.AnnotationType.Stamp:\n return s.createElement(ie, {\n key: e.id,\n annotation: e,\n page: o,\n viewport: d\n });\n\n case exports.AnnotationType.StrikeOut:\n return s.createElement(ce, {\n key: e.id,\n annotation: e,\n page: o,\n viewport: d\n });\n\n case exports.AnnotationType.Text:\n return s.createElement(ve, {\n key: e.id,\n annotation: e,\n childAnnotation: n,\n page: o,\n viewport: d\n });\n\n case exports.AnnotationType.Underline:\n return s.createElement(ge, {\n key: e.id,\n annotation: e,\n page: o,\n viewport: d\n });\n\n default:\n return s.createElement(s.Fragment, {\n key: e.id\n });\n }\n }));\n},\n he = function he(e) {\n var t = e.page,\n n = e.renderAnnotations,\n r = s.useState({\n loading: !0,\n annotations: []\n }),\n o = r[0],\n a = r[1];\n return s.useEffect(function () {\n t.getAnnotations({\n intent: \"display\"\n }).then(function (e) {\n a({\n loading: !1,\n annotations: e\n });\n });\n }, []), o.loading ? s.createElement(s.Fragment, null) : n(o.annotations);\n},\n Ee = function Ee(e) {\n var t = e.doc,\n n = e.page,\n r = e.pageIndex,\n o = e.plugins,\n a = e.rotation,\n i = e.scale,\n c = e.onExecuteNamedAction,\n l = e.onJumpToDest,\n p = s.useRef();\n return s.createElement(\"div\", {\n ref: p,\n className: \"rpv-core__annotation-layer\"\n }, s.createElement(he, {\n page: n,\n renderAnnotations: function renderAnnotations(e) {\n return s.createElement(me, {\n annotations: e,\n containerRef: p,\n doc: t,\n page: n,\n pageIndex: r,\n plugins: o,\n rotation: a,\n scale: i,\n onExecuteNamedAction: c,\n onJumpToDest: l\n });\n }\n }));\n},\n ye = function ye(e) {\n var t = e.callback,\n n = e.children,\n r = e.rotation,\n o = e.scale;\n return p(function () {\n t();\n }, [r, o]), s.createElement(s.Fragment, null, n);\n},\n xe = function xe(e) {\n var t = e.height,\n n = e.page,\n r = e.pageIndex,\n o = e.plugins,\n a = e.rotation,\n i = e.scale,\n c = e.width,\n l = s.useRef(),\n p = s.useRef(),\n u = s.useState(!1),\n d = u[0],\n f = u[1],\n v = window.devicePixelRatio || 1;\n return s.createElement(ye, {\n callback: function callback() {\n f(!1);\n var e = p.current;\n e && e.cancel();\n var s = l.current;\n o.forEach(function (e) {\n e.onCanvasLayerRender && e.onCanvasLayerRender({\n ele: s,\n pageIndex: r,\n rotation: a,\n scale: i,\n status: exports.LayerRenderStatus.PreRender\n });\n }), s.height = t * v, s.width = c * v, s.style.opacity = \"0\";\n var u = s.getContext(\"2d\", {\n alpha: !1\n }),\n d = n.getViewport({\n rotation: a,\n scale: i * v\n });\n p.current = n.render({\n canvasContext: u,\n viewport: d\n }), p.current.promise.then(function () {\n f(!0), s.style.removeProperty(\"opacity\"), o.forEach(function (e) {\n e.onCanvasLayerRender && e.onCanvasLayerRender({\n ele: s,\n pageIndex: r,\n rotation: a,\n scale: i,\n status: exports.LayerRenderStatus.DidRender\n });\n });\n }, function () {\n f(!0);\n });\n },\n rotation: a,\n scale: i\n }, s.createElement(\"div\", {\n className: \"rpv-core__canvas-layer\",\n style: {\n height: t + \"px\",\n width: c + \"px\"\n }\n }, !d && s.createElement(\"div\", {\n className: \"rpv-core__canvas-layer-loader\"\n }, s.createElement(E, null)), s.createElement(\"canvas\", {\n ref: l,\n style: {\n transform: \"scale(\" + 1 / v + \")\",\n transformOrigin: \"top left\"\n }\n })));\n},\n we = function we(e) {\n var t = e.height,\n n = e.page,\n r = e.rotation,\n o = e.scale,\n a = e.width,\n i = s.useRef();\n return s.createElement(ye, {\n callback: function callback() {\n var e = i.current,\n c = n.getViewport({\n rotation: r,\n scale: o\n });\n n.getOperatorList().then(function (r) {\n !function () {\n var e = i.current;\n e && (e.innerHTML = \"\");\n }(), new l.SVGGraphics(n.commonObjs, n.objs).getSVG(r, c).then(function (n) {\n n.style.height = t + \"px\", n.style.width = a + \"px\", e.appendChild(n);\n });\n });\n },\n rotation: r,\n scale: o\n }, s.createElement(\"div\", {\n className: \"rpv-core__svg-layer\",\n ref: i\n }));\n},\n _e = function _e(e) {\n var t = e.page,\n n = e.pageIndex,\n r = e.plugins,\n o = e.rotation,\n a = e.scale,\n i = s.useRef(),\n c = s.useRef();\n return s.createElement(ye, {\n callback: function callback() {\n var e = c.current;\n e && e.cancel();\n var s = i.current;\n\n if (s) {\n var p = t.getViewport({\n rotation: o,\n scale: a\n });\n r.forEach(function (e) {\n e.onTextLayerRender && e.onTextLayerRender({\n ele: s,\n pageIndex: n,\n scale: a,\n status: exports.LayerRenderStatus.PreRender\n });\n }), t.getTextContent().then(function (e) {\n !function () {\n var e = i.current;\n e && ([].slice.call(e.querySelectorAll(\"span.rpv-core__text-layer-text\")).forEach(function (t) {\n return e.removeChild(t);\n }), [].slice.call(e.querySelectorAll('br[role=\"presentation\"]')).forEach(function (t) {\n return e.removeChild(t);\n }));\n }(), c.current = l.renderTextLayer({\n container: s,\n textContent: e,\n viewport: p,\n enhanceTextSelection: !0\n }), c.current.promise.then(function () {\n [].slice.call(s.querySelectorAll(\"span\")).forEach(function (e) {\n return e.classList.add(\"rpv-core__text-layer-text\");\n }), r.forEach(function (e) {\n e.onTextLayerRender && e.onTextLayerRender({\n ele: s,\n pageIndex: n,\n scale: a,\n status: exports.LayerRenderStatus.DidRender\n });\n });\n }, function () {});\n });\n }\n },\n rotation: o,\n scale: a\n }, s.createElement(\"div\", {\n className: \"rpv-core__text-layer\",\n ref: i\n }));\n},\n be = function be(e) {\n var t = e.currentPage,\n n = e.doc,\n r = e.height,\n o = e.pageIndex,\n a = e.plugins,\n i = e.renderPage,\n c = e.rotation,\n l = e.scale,\n p = e.width,\n u = e.onExecuteNamedAction,\n d = e.onJumpToDest,\n f = e.onPageVisibilityChanged,\n v = s.useState({\n page: null,\n pageHeight: r,\n pageWidth: p,\n viewportRotation: 0\n }),\n g = v[0],\n m = v[1],\n h = g.page,\n y = g.pageHeight,\n x = g.pageWidth,\n w = s.useRef(!1),\n _ = Array(10).fill(null).map(function (e, t) {\n return t / 10;\n }),\n b = x * l,\n P = y * l,\n k = Math.abs(c) % 180 == 0,\n C = k ? b : P,\n L = k ? P : b,\n T = function T() {\n w.current || (w.current = !0, n.getPage(o + 1).then(function (e) {\n var t = e.getViewport({\n scale: 1\n });\n m({\n page: e,\n pageHeight: t.height,\n pageWidth: t.width,\n viewportRotation: t.rotation\n });\n }));\n },\n O = i || function (e) {\n return s.createElement(s.Fragment, null, e.canvasLayer.children, e.textLayer.children, e.annotationLayer.children);\n },\n S = (c + g.viewportRotation) % 360,\n R = W({\n threshold: _,\n onVisibilityChanged: function onVisibilityChanged(e) {\n f(o, e.isVisible ? e.ratio : -1), e.isVisible && T();\n }\n });\n\n return s.useEffect(function () {\n t - 2 <= o && o <= t + 2 && T();\n }, [t]), s.createElement(\"div\", {\n ref: R,\n className: \"rpv-core__page-layer\",\n \"data-testid\": \"viewer-page-layer-\" + o,\n style: {\n height: L + \"px\",\n width: C + \"px\"\n }\n }, h ? s.createElement(s.Fragment, null, O({\n annotationLayer: {\n attrs: {},\n children: s.createElement(Ee, {\n doc: n,\n page: h,\n pageIndex: o,\n plugins: a,\n rotation: S,\n scale: l,\n onExecuteNamedAction: u,\n onJumpToDest: d\n })\n },\n canvasLayer: {\n attrs: {},\n children: s.createElement(xe, {\n height: L,\n page: h,\n pageIndex: o,\n plugins: a,\n rotation: S,\n scale: l,\n width: C\n })\n },\n doc: n,\n height: L,\n pageIndex: o,\n rotation: c,\n scale: l,\n svgLayer: {\n attrs: {},\n children: s.createElement(we, {\n height: L,\n page: h,\n rotation: S,\n scale: l,\n width: C\n })\n },\n textLayer: {\n attrs: {},\n children: s.createElement(_e, {\n page: h,\n pageIndex: o,\n plugins: a,\n rotation: S,\n scale: l\n })\n },\n width: C\n }), a.map(function (e, t) {\n return e.renderPageLayer ? s.createElement(s.Fragment, {\n key: t\n }, e.renderPageLayer({\n doc: n,\n height: L,\n pageIndex: o,\n rotation: c,\n scale: l,\n width: C\n })) : s.createElement(s.Fragment, {\n key: t\n });\n })) : s.createElement(E, null));\n},\n Pe = function Pe(e, t, n, r) {\n switch (r) {\n case exports.SpecialZoomLevel.ActualSize:\n return 1;\n\n case exports.SpecialZoomLevel.PageFit:\n return Math.min((e.clientWidth - 17) / n, (e.clientHeight - 16) / t);\n\n case exports.SpecialZoomLevel.PageWidth:\n return (e.clientWidth - 17) / n;\n }\n},\n ke = function ke(e) {\n var t = e.doc,\n n = e.initialPage,\n r = e.pageSize,\n o = e.plugins,\n a = e.renderPage,\n i = e.viewerState,\n c = e.onDocumentLoad,\n l = e.onOpenFile,\n p = e.onPageChange,\n u = e.onZoom,\n d = s.useContext(N),\n f = s.useRef(null),\n v = s.useRef(null),\n g = s.useState(0),\n h = g[0],\n E = g[1],\n y = s.useState(0),\n x = y[0],\n w = y[1],\n _ = s.useRef(i),\n b = s.useState(r.scale),\n P = b[0],\n k = b[1],\n C = t.numPages,\n L = r.pageWidth,\n T = r.pageHeight,\n O = Array(C).fill(null),\n S = O.map(function () {\n return 0;\n }),\n R = O.map(function () {\n return s.useRef();\n }),\n M = function M(e) {\n var t = e;\n o.forEach(function (e) {\n e.onViewerStateChange && (t = e.onViewerStateChange(t));\n }), _.current = t;\n },\n A = function A() {\n return v.current;\n },\n H = function H(e) {\n return e < 0 || e >= C ? null : R[e].current;\n },\n I = function I() {\n return _.current;\n },\n B = function B(e, n, r, o) {\n var a = v.current,\n i = _.current;\n\n if (a && i) {\n var c = e + 1;\n t.getPage(c).then(function (t) {\n var c = t.getViewport({\n scale: 1\n }),\n s = 0,\n l = n || 0,\n p = r || 0,\n u = i.scale;\n\n switch (o) {\n case exports.SpecialZoomLevel.PageFit:\n s = 0, p = 0, j(exports.SpecialZoomLevel.PageFit);\n break;\n\n case exports.SpecialZoomLevel.PageWidth:\n u = Pe(a, T, L, exports.SpecialZoomLevel.PageWidth), s = (c.height - l) * u, p *= u, j(u);\n break;\n\n default:\n s = (c.height - l) * i.scale, p *= i.scale;\n }\n\n var d = R[e].current;\n d && (a.scrollTop = d.offsetTop + s, a.scrollLeft = d.offsetLeft + p);\n });\n }\n },\n F = function F(e) {\n if (!(e < 0 || e >= C)) {\n var t = v.current,\n n = R[e].current;\n t && n && (t.scrollTop = n.offsetTop, t.scrollLeft = n.offsetLeft), E(e);\n }\n },\n D = function D(e) {\n var t, n;\n \"pdf\" === (t = e.name, n = t.split(/\\./).pop(), n ? n.toLowerCase() : \"\").toLowerCase() && new Promise(function (t) {\n var n = new FileReader();\n n.readAsArrayBuffer(e), n.onload = function () {\n var e = new Uint8Array(n.result);\n t(e);\n };\n }).then(function (t) {\n l(e.name, t);\n });\n },\n W = function W(e) {\n w(e), M({\n file: i.file,\n pageIndex: h,\n pageHeight: T,\n pageWidth: L,\n rotation: e,\n scale: P\n });\n },\n j = function j(e) {\n var n = v.current,\n r = n ? \"string\" == typeof e ? Pe(n, T, L, e) : e : 1;\n k(r), u({\n doc: t,\n scale: r\n });\n };\n\n s.useEffect(function () {\n var e = v.current,\n t = _.current;\n e && t && (e.scrollTop = e.scrollTop * P / t.scale, e.scrollLeft = e.scrollLeft * P / t.scale, M({\n file: i.file,\n pageIndex: t.pageIndex,\n pageHeight: T,\n pageWidth: L,\n rotation: x,\n scale: P\n }));\n }, [P]);\n s.useEffect(function () {\n var e = {\n getPageElement: H,\n getPagesContainer: A,\n getViewerState: I,\n jumpToDestination: B,\n jumpToPage: F,\n openFile: D,\n rotate: W,\n setViewerState: M,\n zoom: j\n };\n return o.forEach(function (t) {\n t.install && t.install(e);\n }), function () {\n o.forEach(function (t) {\n t.uninstall && t.uninstall(e);\n });\n };\n }, []), s.useEffect(function () {\n c({\n doc: t\n }), o.forEach(function (e) {\n e.onDocumentLoad && e.onDocumentLoad({\n doc: t\n });\n }), n && F(n);\n }, []), s.useEffect(function () {\n p({\n currentPage: h,\n doc: t\n }), M({\n file: i.file,\n pageIndex: h,\n pageHeight: T,\n pageWidth: L,\n rotation: x,\n scale: P\n });\n }, [h]);\n\n var V,\n z = function z(e, t) {\n S[e] = t;\n var n = S.reduce(function (e, t, n, r) {\n return t > r[e] ? n : e;\n }, 0);\n E(n);\n },\n q = function q(e) {\n var t = h - 1,\n n = h + 1;\n\n switch (e) {\n case \"FirstPage\":\n F(0);\n break;\n\n case \"LastPage\":\n F(C - 1);\n break;\n\n case \"NextPage\":\n n < C && F(n);\n break;\n\n case \"PrevPage\":\n t >= 0 && F(t);\n }\n },\n Z = d && d.core ? d.core.pageLabel : \"Page {{pageIndex}}\",\n U = function U(e) {\n return s.createElement(\"div\", _m({}, e.attrs, {\n style: e.attrs && e.attrs.style ? e.attrs.style : {}\n }), e.children, e.subSlot && U(e.subSlot));\n };\n\n return U((V = {\n attrs: {\n ref: f,\n style: {\n height: \"100%\"\n }\n },\n children: s.createElement(s.Fragment, null),\n subSlot: {\n attrs: {\n ref: v,\n style: {\n height: \"100%\",\n overflow: \"auto\",\n position: \"relative\"\n }\n },\n children: s.createElement(s.Fragment, null, Array(C).fill(0).map(function (e, n) {\n return s.createElement(\"div\", {\n \"aria-label\": Z.replace(\"{{pageIndex}}\", \"\" + (n + 1)),\n className: \"rpv-core__inner-page\",\n key: \"pagelayer-\" + n,\n ref: function ref(e) {\n R[n].current = e;\n },\n role: \"region\"\n }, s.createElement(be, {\n currentPage: h,\n doc: t,\n height: T,\n pageIndex: n,\n plugins: o,\n renderPage: a,\n rotation: x,\n scale: P,\n width: L,\n onExecuteNamedAction: q,\n onJumpToDest: B,\n onPageVisibilityChanged: z\n }));\n }))\n }\n }, o.forEach(function (e) {\n e.renderViewer && (V = e.renderViewer({\n containerRef: f,\n doc: t,\n pageHeight: T,\n pageWidth: L,\n rotation: x,\n slot: V,\n jumpToPage: F,\n openFile: D,\n rotate: W,\n zoom: j\n }));\n }), V));\n},\n Ce = [.1, .2, .3, .4, .5, .6, .7, .8, .9, 1, 1.1, 1.3, 1.5, 1.7, 1.9, 2.1, 2.4, 2.7, 3, 3.3, 3.7, 4.1, 4.6, 5.1, 5.7, 6.3, 7, 7.7, 8.5, 9.4, 10],\n Le = function Le(e) {\n var t = e.defaultScale,\n n = e.doc,\n r = e.render,\n o = s.useRef(null),\n a = s.useState({\n pageHeight: 0,\n pageWidth: 0,\n scale: 1\n }),\n i = a[0],\n c = a[1];\n return s.useEffect(function () {\n n.getPage(1).then(function (e) {\n var n = e.getViewport({\n scale: 1\n }),\n r = n.width,\n a = n.height,\n i = o.current;\n\n if (i) {\n var s,\n l,\n p = (i.clientWidth - 100) / r,\n u = t ? \"string\" == typeof t ? Pe(i, a, r, t) : t : (s = p, -1 === (l = Ce.findIndex(function (e) {\n return e >= s;\n })) || 0 === l ? s : Ce[l - 1]);\n c({\n pageHeight: a,\n pageWidth: r,\n scale: u\n });\n }\n });\n }, [n]), 0 === i.pageWidth ? s.createElement(\"div\", {\n className: \"rpv-core__page-size-calculator\",\n ref: o\n }, s.createElement(E, null)) : r(i);\n},\n Te = function Te() {},\n Oe = function (e) {\n function t(t) {\n var n = e.call(this) || this;\n return n.verifyPasswordFn = t, n;\n }\n\n return g(t, e), t;\n}(Te),\n Se = function Se(e) {\n var t = e.verifyPasswordFn,\n n = s.useContext(N),\n r = s.useState(\"\"),\n o = r[0],\n a = r[1];\n return s.createElement(\"div\", {\n className: \"rpv-core__asking-password-wrapper\"\n }, s.createElement(\"div\", {\n className: \"rpv-core__asking-password\"\n }, s.createElement(\"div\", {\n className: \"rpv-core__asking-password-message\"\n }, n.core.askingPassword.requirePasswordToOpen, \":\"), s.createElement(\"div\", {\n className: \"rpv-core__asking-password-body\"\n }, s.createElement(\"div\", {\n className: \"rpv-core__asking-password-input\"\n }, s.createElement(y, {\n type: \"password\",\n value: o,\n onChange: a\n })), s.createElement(h, {\n onClick: function onClick() {\n return t(o);\n }\n }, n.core.askingPassword.submit))));\n},\n Re = function (e) {\n function t(t) {\n var n = e.call(this) || this;\n return n.doc = t, n;\n }\n\n return g(t, e), t;\n}(Te),\n Me = function (e) {\n function t(t) {\n var n = e.call(this) || this;\n return n.error = t, n;\n }\n\n return g(t, e), t;\n}(Te),\n Ne = function (e) {\n function t(t) {\n var n = e.call(this) || this;\n return n.percentages = t, n;\n }\n\n return g(t, e), t;\n}(Te),\n Ae = function Ae(e) {\n var t = e.verifyPasswordFn,\n n = s.useContext(N),\n r = s.useState(\"\"),\n o = r[0],\n a = r[1];\n return s.createElement(\"div\", {\n className: \"rpv-core__asking-password-wrapper\"\n }, s.createElement(\"div\", {\n className: \"rpv-core__asking-password\"\n }, s.createElement(\"div\", {\n className: \"rpv-core__asking-password-message\"\n }, n.core.wrongPassword.tryAgain, \":\"), s.createElement(\"div\", {\n className: \"rpv-core__asking-password-body\"\n }, s.createElement(\"div\", {\n className: \"rpv-core__asking-password-input\"\n }, s.createElement(y, {\n type: \"password\",\n value: o,\n onChange: a\n })), s.createElement(\"button\", {\n className: \"rpv-core__asking-password-button\",\n onClick: function onClick() {\n return t(o);\n }\n }, n.core.wrongPassword.submit))));\n},\n He = function (e) {\n function t(t) {\n var n = e.call(this) || this;\n return n.verifyPasswordFn = t, n;\n }\n\n return g(t, e), t;\n}(Te),\n Ie = function Ie(e) {\n var t,\n n = e.characterMap,\n r = e.file,\n o = e.httpHeaders,\n a = e.render,\n i = e.renderError,\n c = e.renderLoader,\n p = e.transformGetDocumentParams,\n u = e.withCredentials,\n d = s.useState(new Ne(0)),\n f = d[0],\n v = d[1],\n g = s.useState(0),\n m = g[0],\n h = g[1],\n y = s.useState(null),\n x = y[0],\n w = y[1],\n _ = (t = s.useRef(!1), s.useEffect(function () {\n return t.current = !0, function () {\n t.current = !1;\n };\n }, []), t);\n\n switch (s.useEffect(function () {\n v(new Ne(0));\n var e = new l.PDFWorker({\n name: \"PDFWorker_\" + Date.now()\n }),\n t = Object.assign({\n httpHeaders: o,\n withCredentials: u,\n worker: e\n }, \"string\" == typeof r ? {\n url: r\n } : {\n data: r\n }, n ? {\n cMapUrl: n.url,\n cMapPacked: n.isCompressed\n } : {}),\n a = p ? p(t) : t,\n i = l.getDocument(a);\n return i.onPassword = function (e, t) {\n switch (t) {\n case l.PasswordResponses.NEED_PASSWORD:\n _.current && v(new Oe(e));\n break;\n\n case l.PasswordResponses.INCORRECT_PASSWORD:\n _.current && v(new He(e));\n }\n }, i.onProgress = function (e) {\n e.total > 0 ? _.current && h(Math.min(100, 100 * e.loaded / e.total)) : _.current && h(100);\n }, i.promise.then(function (e) {\n return _.current && w(e);\n }, function (t) {\n return _.current && !e.destroyed && v(new Me({\n message: t.message || \"Cannot load document\",\n name: t.name\n }));\n }), function () {\n i.destroy(), e.destroy();\n };\n }, [r]), s.useEffect(function () {\n 100 === m && x ? _.current && v(new Re(x)) : _.current && v(new Ne(m));\n }, [m, x]), !0) {\n case f instanceof Oe:\n return s.createElement(Se, {\n verifyPasswordFn: f.verifyPasswordFn\n });\n\n case f instanceof He:\n return s.createElement(Ae, {\n verifyPasswordFn: f.verifyPasswordFn\n });\n\n case f instanceof Re:\n return a(f.doc);\n\n case f instanceof Me:\n return i ? i(f.error) : s.createElement(\"div\", {\n className: \"rpv-core__doc-error\"\n }, s.createElement(\"div\", {\n className: \"rpv-core__doc-error-text\"\n }, f.error.message));\n\n case f instanceof Ne:\n return s.createElement(\"div\", {\n className: \"rpv-core__doc-loading\"\n }, c ? c(f.percentages) : s.createElement(E, null));\n\n default:\n return s.createElement(\"div\", {\n className: \"rpv-core__doc-loading\"\n }, s.createElement(E, null));\n }\n};\n\nexports.Button = function (e) {\n var t = e.children,\n n = e.onClick;\n return s.createElement(\"button\", {\n className: \"rpv-core__button\",\n type: \"button\",\n onClick: n\n }, t);\n}, exports.Icon = u, exports.LocalizationContext = N, exports.LocalizationProvider = H, exports.Menu = function (e) {\n var t = e.children,\n n = s.useRef(),\n r = s.useRef([]),\n o = function o(e) {\n if (n.current) switch (e.key) {\n case \"Tab\":\n e.preventDefault();\n break;\n\n case \"ArrowDown\":\n e.preventDefault(), a(function (e, t) {\n return t + 1;\n });\n break;\n\n case \"ArrowUp\":\n e.preventDefault(), a(function (e, t) {\n return t - 1;\n });\n break;\n\n case \"End\":\n e.preventDefault(), a(function (e, t) {\n return e.length - 1;\n });\n break;\n\n case \"Home\":\n e.preventDefault(), a(function (e, t) {\n return 0;\n });\n }\n },\n a = function a(e) {\n if (n.current) {\n var t = r.current,\n o = t.findIndex(function (e) {\n return \"0\" === e.getAttribute(\"tabindex\");\n }),\n a = Math.min(t.length - 1, Math.max(0, e(t, o)));\n o >= 0 && o <= t.length - 1 && t[o].setAttribute(\"tabindex\", \"-1\"), t[a].setAttribute(\"tabindex\", \"0\"), t[a].focus();\n }\n };\n\n return p(function () {\n var e = n.current;\n\n if (e) {\n var t = function (e) {\n var t = [];\n return e.querySelectorAll('.rpv-core__menu-item[role=\"menuitem\"]').forEach(function (n) {\n if (n instanceof HTMLElement) {\n var r = n.parentElement;\n (r === e || \"none\" !== window.getComputedStyle(r).display) && t.push(n);\n }\n }), t;\n }(e);\n\n r.current = t;\n }\n }, []), p(function () {\n return document.addEventListener(\"keydown\", o), function () {\n document.removeEventListener(\"keydown\", o);\n };\n }, []), s.createElement(\"div\", {\n ref: n,\n \"aria-orientation\": \"vertical\",\n className: \"rpv-core__menu\",\n role: \"menu\",\n tabIndex: 0\n }, t);\n}, exports.MenuDivider = function () {\n return s.createElement(\"div\", {\n \"aria-orientation\": \"horizontal\",\n className: \"rpv-core__menu-divider\",\n role: \"separator\"\n });\n}, exports.MenuItem = function (e) {\n var t = e.checked,\n n = void 0 !== t && t,\n r = e.children,\n o = e.icon,\n a = void 0 === o ? null : o,\n i = e.isDisabled,\n c = void 0 !== i && i,\n l = e.onClick;\n return s.createElement(\"button\", {\n className: f({\n \"rpv-core__menu-item\": !0,\n \"rpv-core__menu-item--disabled\": c\n }),\n role: \"menuitem\",\n tabIndex: -1,\n type: \"button\",\n onClick: l\n }, s.createElement(\"div\", {\n className: \"rpv-core__menu-item-icon\"\n }, a), s.createElement(\"div\", {\n className: \"rpv-core__menu-item-label\"\n }, r), s.createElement(\"div\", {\n className: \"rpv-core__menu-item-check\"\n }, n && s.createElement(d, null)));\n}, exports.MinimalButton = function (e) {\n var t = e.ariaLabel,\n n = void 0 === t ? \"\" : t,\n r = e.ariaKeyShortcuts,\n o = void 0 === r ? \"\" : r,\n a = e.children,\n i = e.isDisabled,\n c = void 0 !== i && i,\n l = e.isSelected,\n p = void 0 !== l && l,\n u = e.onClick;\n return s.createElement(\"button\", _m({\n \"aria-label\": n\n }, o && {\n \"aria-keyshortcuts\": o\n }, c && {\n \"aria-disabled\": !0\n }, {\n className: f({\n \"rpv-core__minimal-button\": !0,\n \"rpv-core__minimal-button--disabled\": c,\n \"rpv-core__minimal-button--selected\": p\n }),\n type: \"button\",\n onClick: u\n }), a);\n}, exports.Modal = function (e) {\n var t = e.ariaControlsSuffix,\n n = e.closeOnClickOutside,\n r = e.closeOnEscape,\n o = e.content,\n a = e.target,\n i = t || \"\" + L();\n return s.createElement(k, {\n target: function target(e, t) {\n return s.createElement(\"div\", {\n \"aria-expanded\": t ? \"true\" : \"false\",\n \"aria-haspopup\": \"dialog\",\n \"aria-controls\": \"rpv-core__modal-body-\" + i\n }, a(e, t));\n },\n content: function content(e) {\n return s.createElement(b, null, s.createElement(_, {\n ariaControlsSuffix: i,\n closeOnClickOutside: n,\n closeOnEscape: r,\n onToggle: e\n }, o(e)));\n }\n });\n}, exports.Popover = function (e) {\n var t = e.ariaHasPopup,\n n = void 0 === t ? \"dialog\" : t,\n r = e.ariaControlsSuffix,\n o = e.closeOnClickOutside,\n a = e.closeOnEscape,\n i = e.content,\n c = e.offset,\n l = e.position,\n p = e.target,\n u = P(),\n d = u.opened,\n f = u.toggle,\n v = s.useRef(),\n g = r || \"\" + L();\n return s.createElement(\"div\", {\n ref: v,\n \"aria-expanded\": d ? \"true\" : \"false\",\n \"aria-haspopup\": n,\n \"aria-controls\": \"rpv-core__popver-body-\" + g\n }, p(f, d), d && s.createElement(s.Fragment, null, s.createElement(R, {\n closeOnEscape: a,\n onClose: f\n }), s.createElement(S, {\n ariaControlsSuffix: g,\n closeOnClickOutside: o,\n offset: c,\n position: l,\n targetRef: v,\n onClose: f\n }, i(f))));\n}, exports.PrimaryButton = h, exports.ProgressBar = function (e) {\n var t = e.progress;\n return s.createElement(\"div\", {\n className: \"rpv-core__progress-bar\"\n }, s.createElement(\"div\", {\n className: \"rpv-core__progress-bar-progress\",\n style: {\n width: t + \"%\"\n }\n }, t, \"%\"));\n}, exports.Separator = function () {\n return s.createElement(\"div\", {\n className: \"rpv-core__separator\"\n });\n}, exports.Spinner = E, exports.TextBox = y, exports.ThemeContext = I, exports.ThemeProvider = D, exports.Tooltip = function (e) {\n var t = e.ariaControlsSuffix,\n n = e.content,\n r = e.offset,\n o = e.position,\n a = e.target,\n i = P(),\n c = i.opened,\n l = i.toggle,\n p = s.useRef(),\n u = s.useRef(),\n d = t || \"\" + L();\n w(function () {\n p.current && document.activeElement && p.current.contains(document.activeElement) && v();\n });\n\n var f = function f() {\n l(exports.ToggleStatus.Open);\n },\n v = function v() {\n l(exports.ToggleStatus.Close);\n };\n\n return s.createElement(s.Fragment, null, s.createElement(\"div\", {\n ref: p,\n \"aria-describedby\": \"rpv-core__tooltip-body-\" + d,\n onBlur: function onBlur(e) {\n e.relatedTarget instanceof HTMLElement && e.currentTarget.parentElement && e.currentTarget.parentElement.contains(e.relatedTarget) ? u.current && (u.current.style.display = \"none\") : v();\n },\n onFocus: f,\n onMouseEnter: f,\n onMouseLeave: v\n }, a), c && s.createElement(M, {\n ariaControlsSuffix: d,\n contentRef: u,\n offset: r,\n position: o,\n targetRef: p\n }, n()));\n}, exports.Viewer = function (e) {\n var t = e.characterMap,\n n = e.defaultScale,\n r = e.fileUrl,\n o = e.httpHeaders,\n a = void 0 === o ? {} : o,\n i = e.initialPage,\n c = void 0 === i ? 0 : i,\n l = e.localization,\n p = e.plugins,\n u = void 0 === p ? [] : p,\n d = e.renderError,\n f = e.renderPage,\n v = e.renderLoader,\n g = e.transformGetDocumentParams,\n m = e.theme,\n h = void 0 === m ? \"light\" : m,\n E = e.withCredentials,\n y = void 0 !== E && E,\n x = e.onDocumentLoad,\n w = void 0 === x ? function () {} : x,\n _ = e.onPageChange,\n b = void 0 === _ ? function () {} : _,\n P = e.onSwitchTheme,\n k = void 0 === P ? function () {} : P,\n C = e.onZoom,\n L = void 0 === C ? function () {} : C,\n T = s.useState({\n data: r,\n name: \"string\" == typeof r ? r : \"\",\n shouldLoad: !1\n }),\n O = T[0],\n S = T[1],\n R = function R(e, t) {\n S({\n data: t,\n name: e,\n shouldLoad: !0\n });\n },\n M = s.useState(!1),\n N = M[0],\n A = M[1],\n F = B(O);\n\n s.useEffect(function () {\n var e, t, n, o;\n e = F.data, o = typeof (t = r), \"string\" === (n = typeof e) && \"string\" === o && e === t || \"object\" === n && \"object\" === o && e.length === t.length && e.every(function (e, n) {\n return e === t[n];\n }) || S({\n data: r,\n name: \"string\" == typeof r ? r : \"\",\n shouldLoad: N\n });\n }, [r, N]);\n var j = W({\n onVisibilityChanged: function onVisibilityChanged(e) {\n A(e.isVisible), e.isVisible && S(function (e) {\n return Object.assign({}, e, {\n shouldLoad: !0\n });\n });\n }\n });\n return s.createElement(D, {\n theme: h,\n onSwitchTheme: k\n }, s.createElement(H, {\n localization: l\n }, function (e) {\n var r = s.useContext(I);\n return s.createElement(\"div\", {\n ref: j,\n className: \"rpv-core__viewer rpv-core__viewer--\" + r.currentTheme,\n \"data-testid\": \"viewer\",\n style: {\n height: \"100%\",\n width: \"100%\"\n }\n }, O.shouldLoad && s.createElement(Ie, {\n characterMap: t,\n file: O.data,\n httpHeaders: a,\n render: function render(e) {\n return s.createElement(Le, {\n defaultScale: n,\n doc: e,\n render: function render(t) {\n return s.createElement(ke, {\n doc: e,\n initialPage: c,\n pageSize: t,\n plugins: u,\n renderPage: f,\n viewerState: {\n file: O,\n pageIndex: c,\n pageHeight: t.pageHeight,\n pageWidth: t.pageWidth,\n rotation: 0,\n scale: t.scale\n },\n onDocumentLoad: w,\n onOpenFile: R,\n onPageChange: b,\n onZoom: L\n });\n }\n });\n },\n renderError: d,\n renderLoader: v,\n transformGetDocumentParams: g,\n withCredentials: y\n }));\n }));\n}, exports.Worker = function (e) {\n var t = e.children,\n n = e.workerUrl;\n return l.GlobalWorkerOptions.workerSrc = n, s.createElement(s.Fragment, null, t);\n}, exports.classNames = f, exports.createStore = function (e) {\n var t = e || {},\n n = {};\n return {\n subscribe: function subscribe(e, t) {\n n[e] = (n[e] || []).concat(t);\n },\n unsubscribe: function unsubscribe(e, t) {\n n[e] = (n[e] || []).filter(function (e) {\n return e !== t;\n });\n },\n update: function update(e, r) {\n var o;\n t = _m(_m({}, t), ((o = {})[e] = r, o)), (n[e] || []).forEach(function (n) {\n return n(t[e]);\n });\n },\n get: function get(e) {\n return t[e];\n }\n };\n}, exports.getDestination = ee, exports.isMac = function () {\n return \"undefined\" != typeof window && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\n}, exports.useIntersectionObserver = W, exports.useIsomorphicLayoutEffect = p;","/**\n * A React component to view a PDF document\n *\n * @see https://react-pdf-viewer.dev\n * @license https://react-pdf-viewer.dev/license\n * @copyright 2019-2021 Nguyen Huu Phuoc \n */\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/core.min.js');\n} else {\n module.exports = require('./cjs/core.js');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n});\n\nvar e = require(\"react\"),\n n = require(\"@react-pdf-viewer/core\");\n\nfunction t(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n return e && Object.keys(e).forEach(function (t) {\n if (\"default\" !== t) {\n var r = Object.getOwnPropertyDescriptor(e, t);\n Object.defineProperty(n, t, r.get ? r : {\n enumerable: !0,\n get: function get() {\n return e[t];\n }\n });\n }\n }), n.default = e, Object.freeze(n);\n}\n\nvar r,\n l = t(e),\n _u = function u() {\n return (_u = Object.assign || function (e) {\n for (var n, t = 1, r = arguments.length; t < r; t++) {\n for (var l in n = arguments[t]) {\n Object.prototype.hasOwnProperty.call(n, l) && (e[l] = n[l]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n},\n c = function c() {\n return l.createElement(n.Icon, {\n size: 16\n }, l.createElement(\"path\", {\n d: \"M0.5 12L23.5 12\"\n }), l.createElement(\"path\", {\n d: \"M11.5 1L11.5 23\"\n }), l.createElement(\"path\", {\n d: \"M8.5 4L11.5 1 14.5 4\"\n }), l.createElement(\"path\", {\n d: \"M20.5 9L23.5 12 20.5 15\"\n }), l.createElement(\"path\", {\n d: \"M3.5 15L0.5 12 3.5 9\"\n }), l.createElement(\"path\", {\n d: \"M14.5 20L11.5 23 8.5 20\"\n }));\n},\n o = {\n left: 0,\n top: 8\n},\n a = function a(e) {\n var t = e.onClick,\n r = l.useContext(n.LocalizationContext),\n u = r && r.fullScreen ? r.fullScreen.enterFullScreen : \"Full screen\";\n return l.createElement(n.Tooltip, {\n ariaControlsSuffix: \"full-screen-enter\",\n position: n.Position.BottomCenter,\n target: l.createElement(n.MinimalButton, {\n ariaLabel: u,\n onClick: t\n }, l.createElement(c, null)),\n content: function content() {\n return u;\n },\n offset: o\n });\n};\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n\n\n!function (e) {\n e[e.ExitFullScreen = 0] = \"ExitFullScreen\", e[e.FullScreenChange = 1] = \"FullScreenChange\", e[e.FullScreenElement = 2] = \"FullScreenElement\", e[e.FullScreenEnabled = 3] = \"FullScreenEnabled\", e[e.RequestFullScreen = 4] = \"RequestFullScreen\";\n}(r || (r = {}));\n\nvar i = {\n ExitFullScreen: \"exitFullscreen\",\n FullScreenChange: \"fullscreenchange\",\n FullScreenElement: \"fullscreenElement\",\n FullScreenEnabled: \"fullscreenEnabled\",\n RequestFullScreen: \"requestFullscreen\"\n},\n s = {\n ExitFullScreen: \"webkitExitFullscreen\",\n FullScreenChange: \"webkitfullscreenchange\",\n FullScreenElement: \"webkitFullscreenElement\",\n FullScreenEnabled: \"webkitFullscreenEnabled\",\n RequestFullScreen: \"webkitRequestFullscreen\"\n},\n f = {\n ExitFullScreen: \"msExitFullscreen\",\n FullScreenChange: \"MSFullscreenChange\",\n FullScreenElement: \"msFullscreenElement\",\n FullScreenEnabled: \"msFullscreenEnabled\",\n RequestFullScreen: \"msRequestFullscreen\"\n},\n E = \"undefined\" != typeof window,\n m = E && (r.FullScreenEnabled in document && i || s.FullScreenEnabled in document && s || f.FullScreenEnabled in document && f) || i,\n F = function F(e) {\n return E ? e[m.ExitFullScreen]() : Promise.resolve({});\n},\n S = function S() {\n return E ? document[m.FullScreenElement] : null;\n},\n d = function d(e) {\n var n = e.children,\n t = e.store,\n r = e.onEnterFullScreen,\n u = e.onExitFullScreen,\n c = l.useRef(t.get(\"getPagesContainer\") ? t.get(\"getPagesContainer\")() : null),\n o = function o() {\n var e = S() === c.current;\n t.update(\"isFullScreen\", e);\n var n = t.get(\"zoom\");\n n && (e ? r(n) : u(n));\n },\n i = function i(e) {\n var n;\n c.current = e(), n = o, E && document.addEventListener(m.FullScreenChange, n);\n };\n\n l.useEffect(function () {\n return t.subscribe(\"getPagesContainer\", i), function () {\n t.unsubscribe(\"getPagesContainer\", i);\n };\n }, []);\n return (n || function (e) {\n return l.createElement(a, {\n onClick: e.onClick\n });\n })({\n onClick: function onClick() {\n var e = c.current;\n e && function () {\n var e = c.current;\n if (!e) return Promise.resolve();\n var n = S();\n return n && n !== e ? F(n) : Promise.resolve();\n }().then(function () {\n var n;\n n = e, E && n[m.RequestFullScreen]();\n });\n }\n });\n},\n b = function b(e) {\n var t = e.onClick,\n r = l.useContext(n.LocalizationContext),\n u = r && r.fullScreen ? r.fullScreen.enterFullScreen : \"Full screen\";\n return l.createElement(n.MenuItem, {\n icon: l.createElement(c, null),\n onClick: t\n }, u);\n},\n g = function g() {\n return l.createElement(n.Icon, {\n size: 16\n }, l.createElement(\"path\", {\n d: \"M11.5 23.499L11.5 14.499\"\n }), l.createElement(\"path\", {\n d: \"M7.5 18.499L11.5 14.499 15.5 18.499\"\n }), l.createElement(\"path\", {\n d: \"M11.5 1.499L11.5 10.499\"\n }), l.createElement(\"path\", {\n d: \"M7.5 6.499L11.5 10.499 15.5 6.499\"\n }), l.createElement(\"path\", {\n d: \"M20.5 12.499L1.5 12.499\"\n }));\n},\n p = function p(e) {\n var t = e.store,\n r = l.useState(!1),\n u = r[0],\n c = r[1],\n o = l.useContext(n.LocalizationContext),\n a = o && o.fullScreen ? o.fullScreen.exitFullScreen : \"Exit full screen\",\n i = function i(e) {\n c(e);\n };\n\n return l.useEffect(function () {\n return t.subscribe(\"isFullScreen\", i), function () {\n t.unsubscribe(\"isFullScreen\", i);\n };\n }, []), l.createElement(l.Fragment, null, u && l.createElement(\"div\", {\n className: \"rpv-full-screen__exit-button\"\n }, l.createElement(\"div\", {\n className: \"rpv-full-screen__exit-button-content\"\n }, l.createElement(n.MinimalButton, {\n ariaLabel: a,\n onClick: function onClick() {\n c(!1);\n var e = t.get(\"getPagesContainer\");\n\n if (e) {\n var n = e();\n\n if (n) {\n var r = S();\n r && r === n && F(document);\n }\n }\n }\n }, l.createElement(g, null)))));\n};\n\nexports.ExitFullScreenIcon = g, exports.FullScreenIcon = c, exports.fullScreenPlugin = function (e) {\n var t = l.useMemo(function () {\n return n.createStore({});\n }, []),\n r = e && e.onEnterFullScreen ? e.onEnterFullScreen : function () {},\n c = e && e.onExitFullScreen ? e.onExitFullScreen : function () {},\n o = function o(e) {\n return l.createElement(d, _u({}, e, {\n store: t,\n onEnterFullScreen: r,\n onExitFullScreen: c\n }));\n },\n i = function i() {\n return l.createElement(p, {\n store: t\n });\n };\n\n return {\n install: function install(e) {\n t.update(\"getPagesContainer\", e.getPagesContainer), t.update(\"zoom\", e.zoom);\n },\n renderViewer: function renderViewer(e) {\n var n = e.slot;\n return n.subSlot && (n.subSlot.children = l.createElement(l.Fragment, null, l.createElement(i, null), n.subSlot.children)), n;\n },\n EnterFullScreen: o,\n EnterFullScreenButton: function EnterFullScreenButton() {\n return l.createElement(o, null, function (e) {\n return l.createElement(a, _u({}, e));\n });\n },\n EnterFullScreenMenuItem: function EnterFullScreenMenuItem(e) {\n return l.createElement(o, null, function (n) {\n return l.createElement(b, {\n onClick: function onClick() {\n n.onClick(), e.onClick();\n }\n });\n });\n }\n };\n};","/**\n * A React component to view a PDF document\n *\n * @see https://react-pdf-viewer.dev\n * @license https://react-pdf-viewer.dev/license\n * @copyright 2019-2021 Nguyen Huu Phuoc \n */\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/full-screen.min.js');\n} else {\n module.exports = require('./cjs/full-screen.js');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n});\n\nvar e = require(\"react\"),\n t = require(\"@react-pdf-viewer/core\");\n\nfunction n(e) {\n if (e && e.__esModule) return e;\n var t = Object.create(null);\n return e && Object.keys(e).forEach(function (n) {\n if (\"default\" !== n) {\n var o = Object.getOwnPropertyDescriptor(e, n);\n Object.defineProperty(t, n, o.get ? o : {\n enumerable: !0,\n get: function get() {\n return e[n];\n }\n });\n }\n }), t.default = e, Object.freeze(t);\n}\n\nvar o = n(e),\n _r = function r() {\n return (_r = Object.assign || function (e) {\n for (var t, n = 1, o = arguments.length; n < o; n++) {\n for (var r in t = arguments[n]) {\n Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n},\n a = function a() {\n return o.createElement(t.Icon, {\n size: 16\n }, o.createElement(\"path\", {\n d: \"M11.5 19.5L11.5 5\"\n }), o.createElement(\"path\", {\n d: \"M17 14L11.5 19.5 6 14\"\n }), o.createElement(\"path\", {\n d: \"M17.5.5h5a1,1,0,0,1,1,1v21a1,1,0,0,1-1,1h-5\"\n }), o.createElement(\"path\", {\n d: \"M6.5.5h-5a1,1,0,0,0-1,1v21a1,1,0,0,0,1,1h5\"\n }));\n},\n c = {\n left: 0,\n top: 8\n},\n i = function i(e) {\n var n = e.onClick,\n r = o.useContext(t.LocalizationContext),\n i = r && r.download ? r.download.download : \"Download\";\n return o.createElement(t.Tooltip, {\n ariaControlsSuffix: \"get-file\",\n position: t.Position.BottomCenter,\n target: o.createElement(t.MinimalButton, {\n ariaLabel: i,\n onClick: n\n }, o.createElement(a, null)),\n content: function content() {\n return i;\n },\n offset: c\n });\n},\n l = function l(e) {\n var t = e.children,\n n = e.fileNameGenerator,\n r = e.store,\n a = o.useState(r.get(\"file\")),\n c = a[0],\n l = a[1],\n u = function u(e) {\n l(e);\n };\n\n o.useEffect(function () {\n return r.subscribe(\"file\", u), function () {\n r.unsubscribe(\"file\", u);\n };\n }, []);\n return (t || function (e) {\n return o.createElement(i, {\n onClick: e.onClick\n });\n })({\n onClick: function onClick() {\n var e, t, o, r;\n c && (e = c, t = n(c), o = \"string\" == typeof e.data ? \"\" : URL.createObjectURL(new Blob([e.data], {\n type: \"application/pdf\"\n })), (r = document.createElement(\"a\")).style.display = \"none\", r.href = o || e.name, r.setAttribute(\"download\", t), document.body.appendChild(r), r.click(), document.body.removeChild(r), o && URL.revokeObjectURL(o));\n }\n });\n},\n u = function u(e) {\n var n = e.onClick,\n r = o.useContext(t.LocalizationContext),\n c = r && r.download ? r.download.download : \"Download\";\n return o.createElement(t.MenuItem, {\n icon: o.createElement(a, null),\n onClick: n\n }, c);\n};\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n\n\nexports.DownloadIcon = a, exports.getFilePlugin = function (e) {\n var n = o.useMemo(function () {\n return t.createStore({});\n }, []),\n a = function a(e) {\n return \"object\" == typeof e.data ? \"document.pdf\" : (t = e.name, (n = t.split(\"/\").pop()) ? n.split(\"#\")[0].split(\"?\")[0] : t);\n var t, n;\n },\n c = function c(t) {\n return o.createElement(l, _r({}, t, {\n fileNameGenerator: e && e.fileNameGenerator || a,\n store: n\n }));\n };\n\n return {\n onViewerStateChange: function onViewerStateChange(e) {\n return n.update(\"file\", e.file), e;\n },\n Download: c,\n DownloadButton: function DownloadButton() {\n return o.createElement(c, null, function (e) {\n return o.createElement(i, _r({}, e));\n });\n },\n DownloadMenuItem: function DownloadMenuItem(e) {\n return o.createElement(c, null, function (t) {\n return o.createElement(u, {\n onClick: function onClick() {\n t.onClick(), e.onClick();\n }\n });\n });\n }\n };\n};","/**\n * A React component to view a PDF document\n *\n * @see https://react-pdf-viewer.dev\n * @license https://react-pdf-viewer.dev/license\n * @copyright 2019-2021 Nguyen Huu Phuoc \n */\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/get-file.min.js');\n} else {\n module.exports = require('./cjs/get-file.js');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n});\n\nvar e = require(\"react\"),\n t = require(\"@react-pdf-viewer/core\");\n\nfunction n(e) {\n if (e && e.__esModule) return e;\n var t = Object.create(null);\n return e && Object.keys(e).forEach(function (n) {\n if (\"default\" !== n) {\n var r = Object.getOwnPropertyDescriptor(e, n);\n Object.defineProperty(t, n, r.get ? r : {\n enumerable: !0,\n get: function get() {\n return e[n];\n }\n });\n }\n }), t.default = e, Object.freeze(t);\n}\n\nvar r = n(e),\n _o = function o() {\n return (_o = Object.assign || function (e) {\n for (var t, n = 1, r = arguments.length; n < r; n++) {\n for (var o in t = arguments[n]) {\n Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n},\n i = function i() {\n return r.createElement(t.Icon, {\n size: 16\n }, r.createElement(\"path\", {\n d: \"M12.5 4.5L12.5 19.5\"\n }), r.createElement(\"path\", {\n d: \"M18 10L12.5 4.5 7 10\"\n }), r.createElement(\"path\", {\n d: \"M17.5.5h5a1,1,0,0,1,1,1v21a1,1,0,0,1-1,1h-5\"\n }), r.createElement(\"path\", {\n d: \"M6.5.5h-5a1,1,0,0,0-1,1v21a1,1,0,0,0,1,1h5\"\n }));\n},\n c = {\n left: 0,\n top: 8\n},\n a = function a(e) {\n var n = e.onClick,\n o = r.useContext(t.LocalizationContext),\n a = o && o.open ? o.open.openFile : \"Open file\",\n l = r.createRef();\n return r.createElement(t.Tooltip, {\n ariaControlsSuffix: \"open\",\n position: t.Position.BottomCenter,\n target: r.createElement(\"div\", {\n className: \"rpv-open__input-wrapper\"\n }, r.createElement(\"input\", {\n ref: l,\n className: \"rpv-open__input\",\n multiple: !1,\n tabIndex: -1,\n title: \"\",\n type: \"file\",\n onChange: n\n }), r.createElement(t.MinimalButton, {\n ariaLabel: a,\n onClick: function onClick() {\n var e = l.current;\n e && e.click();\n }\n }, r.createElement(i, null))),\n content: function content() {\n return a;\n },\n offset: c\n });\n},\n l = function l(e) {\n var t = e.store;\n return (e.children || function (e) {\n return r.createElement(a, {\n onClick: e.onClick\n });\n })({\n onClick: function onClick(e) {\n var n = e.target.files;\n\n if (n && n.length) {\n var r = t.get(\"openFile\");\n r && r(n[0]);\n }\n }\n });\n},\n u = function u(e) {\n var n = e.onClick,\n o = r.useContext(t.LocalizationContext),\n c = o && o.open ? o.open.openFile : \"Open file\",\n a = r.createRef();\n return r.createElement(t.MenuItem, {\n icon: r.createElement(i, null),\n onClick: function onClick() {\n var e = a.current;\n e && e.click();\n }\n }, r.createElement(\"div\", {\n className: \"rpv-open__input-wrapper\"\n }, r.createElement(\"input\", {\n ref: a,\n className: \"rpv-open__input\",\n multiple: !1,\n tabIndex: -1,\n title: \"\",\n type: \"file\",\n onChange: n\n }), c));\n};\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n\n\nexports.OpenFileIcon = i, exports.openPlugin = function () {\n var e = r.useMemo(function () {\n return t.createStore({});\n }, []),\n n = function n(t) {\n return r.createElement(l, _o({}, t, {\n store: e\n }));\n };\n\n return {\n install: function install(t) {\n e.update(\"openFile\", t.openFile);\n },\n Open: n,\n OpenButton: function OpenButton() {\n return r.createElement(n, null);\n },\n OpenMenuItem: function OpenMenuItem() {\n return r.createElement(n, null, function (e) {\n return r.createElement(u, {\n onClick: e.onClick\n });\n });\n }\n };\n};","/**\n * A React component to view a PDF document\n *\n * @see https://react-pdf-viewer.dev\n * @license https://react-pdf-viewer.dev/license\n * @copyright 2019-2021 Nguyen Huu Phuoc \n */\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/open.min.js');\n} else {\n module.exports = require('./cjs/open.js');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n});\n\nvar e = require(\"react\"),\n t = require(\"@react-pdf-viewer/core\");\n\nfunction n(e) {\n if (e && e.__esModule) return e;\n var t = Object.create(null);\n return e && Object.keys(e).forEach(function (n) {\n if (\"default\" !== n) {\n var r = Object.getOwnPropertyDescriptor(e, n);\n Object.defineProperty(t, n, r.get ? r : {\n enumerable: !0,\n get: function get() {\n return e[n];\n }\n });\n }\n }), t.default = e, Object.freeze(t);\n}\n\nvar r = n(e),\n _a = function a() {\n return (_a = Object.assign || function (e) {\n for (var t, n = 1, r = arguments.length; n < r; n++) {\n for (var a in t = arguments[n]) {\n Object.prototype.hasOwnProperty.call(t, a) && (e[a] = t[a]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n},\n o = function o(e) {\n var n = r.useState(e.get(\"currentPage\") || 0),\n a = n[0],\n o = n[1],\n i = function i(e) {\n o(e);\n };\n\n return t.useIsomorphicLayoutEffect(function () {\n return e.subscribe(\"currentPage\", i), function () {\n e.unsubscribe(\"currentPage\", i);\n };\n }, []), {\n currentPage: a\n };\n},\n i = function i(e) {\n var t = r.useState(e.get(\"numberOfPages\") || 0),\n n = t[0],\n a = t[1],\n o = function o(e) {\n a(e);\n };\n\n return r.useEffect(function () {\n return e.subscribe(\"numberOfPages\", o), function () {\n e.unsubscribe(\"numberOfPages\", o);\n };\n }, []), {\n numberOfPages: n\n };\n},\n u = function u(e) {\n var n = e.store,\n a = r.useContext(t.LocalizationContext),\n u = r.useState(\"1\"),\n c = u[0],\n l = u[1],\n s = o(n).currentPage,\n g = i(n).numberOfPages;\n r.useEffect(function () {\n return l(\"\" + (s + 1));\n }, [s]);\n\n var f = function f(e) {\n var t = n.get(\"jumpToPage\");\n t && t(e);\n },\n m = a && a.pageNavigation ? a.pageNavigation.enterPageNumber : \"Enter a page number\";\n\n return r.createElement(\"span\", {\n className: \"rpv-page-navigation__current-page-input\"\n }, r.createElement(t.TextBox, {\n ariaLabel: m,\n type: \"text\",\n value: c,\n onChange: l,\n onKeyDown: function onKeyDown(e) {\n switch (e.key) {\n case \"ArrowUp\":\n (r = s - 1) >= 0 && (l(\"\" + (r + 1)), f(r));\n break;\n\n case \"ArrowDown\":\n (n = s + 1) < g && (l(\"\" + (n + 1)), f(n));\n break;\n\n case \"Enter\":\n t = parseInt(c, 10), \"\" === c || t < 1 || t > g ? l(\"\" + (s + 1)) : f(t - 1);\n }\n\n var t, n, r;\n }\n }));\n},\n c = function c(e) {\n var t = e.children,\n n = e.store;\n return (t || function (e) {\n return r.createElement(r.Fragment, null, e.currentPage + 1);\n })({\n currentPage: o(n).currentPage,\n numberOfPages: i(n).numberOfPages\n });\n},\n l = function l() {\n return r.createElement(t.Icon, {\n size: 16\n }, r.createElement(\"path\", {\n d: \"M21.783,21.034H2.332c-0.552,0-1-0.448-1-1c0-0.182,0.05-0.361,0.144-0.517L11.2,3.448\\n c0.286-0.472,0.901-0.624,1.373-0.338c0.138,0.084,0.254,0.2,0.338,0.338l9.726,16.069c0.286,0.473,0.134,1.087-0.339,1.373\\n C22.143,20.984,21.965,21.034,21.783,21.034z\"\n }));\n},\n s = {\n left: 0,\n top: 8\n},\n g = function g(e) {\n var n = e.isDisabled,\n a = e.onClick,\n o = r.useContext(t.LocalizationContext),\n i = o && o.pageNavigation ? o.pageNavigation.goToFirstPage : \"First page\";\n return r.createElement(t.Tooltip, {\n ariaControlsSuffix: \"page-navigation-first\",\n position: t.Position.BottomCenter,\n target: r.createElement(t.MinimalButton, {\n ariaLabel: i,\n isDisabled: n,\n onClick: a\n }, r.createElement(l, null)),\n content: function content() {\n return i;\n },\n offset: s\n });\n},\n f = function f(e) {\n var t = e.children,\n n = e.store;\n return (t || function (e) {\n return r.createElement(g, {\n isDisabled: e.isDisabled,\n onClick: e.onClick\n });\n })({\n isDisabled: 0 === o(n).currentPage,\n onClick: function onClick() {\n var e = n.get(\"jumpToPage\");\n e && e(0);\n }\n });\n},\n m = function m(e) {\n var n = e.isDisabled,\n a = e.onClick,\n o = r.useContext(t.LocalizationContext),\n i = o && o.pageNavigation ? o.pageNavigation.goToFirstPage : \"First page\";\n return r.createElement(t.MenuItem, {\n icon: r.createElement(l, null),\n isDisabled: n,\n onClick: a\n }, i);\n},\n p = function p() {\n return r.createElement(t.Icon, {\n size: 16\n }, r.createElement(\"path\", {\n d: \"M2.32,2.966h19.452c0.552,0.001,1,0.449,0.999,1.001c0,0.182-0.05,0.36-0.144,0.516L12.9,20.552\\n c-0.286,0.472-0.901,0.624-1.373,0.338c-0.138-0.084-0.254-0.2-0.338-0.338L1.465,4.483C1.179,4.01,1.331,3.396,1.804,3.11\\n C1.96,3.016,2.138,2.966,2.32,2.966z\"\n }));\n},\n C = {\n left: 0,\n top: 8\n},\n b = function b(e) {\n var n = e.isDisabled,\n a = e.onClick,\n o = r.useContext(t.LocalizationContext),\n i = o && o.pageNavigation ? o.pageNavigation.goToLastPage : \"Last page\";\n return r.createElement(t.Tooltip, {\n ariaControlsSuffix: \"page-navigation-last\",\n position: t.Position.BottomCenter,\n target: r.createElement(t.MinimalButton, {\n ariaLabel: i,\n isDisabled: n,\n onClick: a\n }, r.createElement(p, null)),\n content: function content() {\n return i;\n },\n offset: C\n });\n},\n P = function P(e) {\n var t = e.children,\n n = e.store,\n a = o(n).currentPage,\n u = i(n).numberOfPages;\n return (t || function (e) {\n return r.createElement(b, {\n isDisabled: e.isDisabled,\n onClick: e.onClick\n });\n })({\n isDisabled: a + 1 >= u,\n onClick: function onClick() {\n var e = n.get(\"jumpToPage\");\n e && e(u - 1);\n }\n });\n},\n v = function v(e) {\n var n = e.isDisabled,\n a = e.onClick,\n o = r.useContext(t.LocalizationContext),\n i = o && o.pageNavigation ? o.pageNavigation.goToLastPage : \"Last page\";\n return r.createElement(t.MenuItem, {\n icon: r.createElement(p, null),\n isDisabled: n,\n onClick: a\n }, i);\n},\n E = function E() {\n return r.createElement(t.Icon, {\n size: 16\n }, r.createElement(\"path\", {\n d: \"M0.541,5.627L11.666,18.2c0.183,0.207,0.499,0.226,0.706,0.043c0.015-0.014,0.03-0.028,0.043-0.043\\n L23.541,5.627\"\n }));\n},\n d = {\n left: 0,\n top: 8\n},\n k = function k(e) {\n var n = e.isDisabled,\n a = e.onClick,\n o = r.useContext(t.LocalizationContext),\n i = o && o.pageNavigation ? o.pageNavigation.goToNextPage : \"Next page\";\n return r.createElement(t.Tooltip, {\n ariaControlsSuffix: \"page-navigation-next\",\n position: t.Position.BottomCenter,\n target: r.createElement(t.MinimalButton, {\n ariaLabel: i,\n isDisabled: n,\n onClick: a\n }, r.createElement(E, null)),\n content: function content() {\n return i;\n },\n offset: d\n });\n},\n x = function x(e) {\n var t = e.children,\n n = e.store,\n a = o(n).currentPage,\n u = i(n).numberOfPages;\n return (t || function (e) {\n return r.createElement(k, {\n onClick: e.onClick,\n isDisabled: e.isDisabled\n });\n })({\n isDisabled: a + 1 >= u,\n onClick: function onClick() {\n var e = n.get(\"jumpToPage\");\n e && e(a + 1);\n }\n });\n},\n D = function D(e) {\n var n = e.isDisabled,\n a = e.onClick,\n o = r.useContext(t.LocalizationContext),\n i = o && o.pageNavigation ? o.pageNavigation.goToNextPage : \"Next page\";\n return r.createElement(t.MenuItem, {\n icon: r.createElement(E, null),\n isDisabled: n,\n onClick: a\n }, i);\n},\n T = function T() {\n return r.createElement(t.Icon, {\n size: 16\n }, r.createElement(\"path\", {\n d: \"M23.535,18.373L12.409,5.8c-0.183-0.207-0.499-0.226-0.706-0.043C11.688,5.77,11.674,5.785,11.66,5.8\\n L0.535,18.373\"\n }));\n},\n L = {\n left: 0,\n top: 8\n},\n N = function N(e) {\n var n = e.isDisabled,\n a = e.onClick,\n o = r.useContext(t.LocalizationContext),\n i = o && o.pageNavigation ? o.pageNavigation.goToPreviousPage : \"Previous page\";\n return r.createElement(t.Tooltip, {\n ariaControlsSuffix: \"page-navigation-previous\",\n position: t.Position.BottomCenter,\n target: r.createElement(t.MinimalButton, {\n ariaLabel: i,\n isDisabled: n,\n onClick: a\n }, r.createElement(T, null)),\n content: function content() {\n return i;\n },\n offset: L\n });\n},\n I = function I(e) {\n var t = e.store,\n n = e.children,\n a = o(t).currentPage;\n return (n || function (e) {\n return r.createElement(N, {\n isDisabled: e.isDisabled,\n onClick: e.onClick\n });\n })({\n isDisabled: a <= 0,\n onClick: function onClick() {\n var e = t.get(\"jumpToPage\");\n e && e(a - 1);\n }\n });\n},\n O = function O(e) {\n var n = e.isDisabled,\n a = e.onClick,\n o = r.useContext(t.LocalizationContext),\n i = o && o.pageNavigation ? o.pageNavigation.goToPreviousPage : \"Previous page\";\n return r.createElement(t.MenuItem, {\n icon: r.createElement(T, null),\n isDisabled: n,\n onClick: a\n }, i);\n};\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n\n\nexports.DownArrowIcon = p, exports.NextIcon = E, exports.PreviousIcon = T, exports.UpArrowIcon = l, exports.pageNavigationPlugin = function () {\n var e = r.useMemo(function () {\n return t.createStore();\n }, []),\n n = function n(t) {\n return r.createElement(f, _a({}, t, {\n store: e\n }));\n },\n o = function o(t) {\n return r.createElement(P, _a({}, t, {\n store: e\n }));\n },\n i = function i(t) {\n return r.createElement(x, _a({}, t, {\n store: e\n }));\n },\n l = function l(t) {\n return r.createElement(I, _a({}, t, {\n store: e\n }));\n };\n\n return {\n install: function install(t) {\n e.update(\"jumpToPage\", t.jumpToPage);\n },\n onDocumentLoad: function onDocumentLoad(t) {\n e.update(\"numberOfPages\", t.doc.numPages);\n },\n onViewerStateChange: function onViewerStateChange(t) {\n return e.update(\"currentPage\", t.pageIndex), t;\n },\n jumpToPage: function jumpToPage(t) {\n var n = e.get(\"jumpToPage\");\n n && n(t);\n },\n CurrentPageInput: function CurrentPageInput() {\n return r.createElement(u, {\n store: e\n });\n },\n CurrentPageLabel: function CurrentPageLabel(t) {\n return r.createElement(c, _a({}, t, {\n store: e\n }));\n },\n GoToFirstPage: n,\n GoToFirstPageButton: function GoToFirstPageButton() {\n return r.createElement(n, null, function (e) {\n return r.createElement(g, _a({}, e));\n });\n },\n GoToFirstPageMenuItem: function GoToFirstPageMenuItem(e) {\n return r.createElement(n, null, function (t) {\n return r.createElement(m, {\n isDisabled: t.isDisabled,\n onClick: function onClick() {\n t.onClick(), e.onClick();\n }\n });\n });\n },\n GoToLastPage: o,\n GoToLastPageButton: function GoToLastPageButton() {\n return r.createElement(o, null, function (e) {\n return r.createElement(b, _a({}, e));\n });\n },\n GoToLastPageMenuItem: function GoToLastPageMenuItem(e) {\n return r.createElement(o, null, function (t) {\n return r.createElement(v, {\n isDisabled: t.isDisabled,\n onClick: function onClick() {\n t.onClick(), e.onClick();\n }\n });\n });\n },\n GoToNextPage: i,\n GoToNextPageButton: function GoToNextPageButton() {\n return r.createElement(i, null, function (e) {\n return r.createElement(k, _a({}, e));\n });\n },\n GoToNextPageMenuItem: function GoToNextPageMenuItem(e) {\n return r.createElement(i, null, function (t) {\n return r.createElement(D, {\n isDisabled: t.isDisabled,\n onClick: function onClick() {\n t.onClick(), e.onClick();\n }\n });\n });\n },\n GoToPreviousPage: l,\n GoToPreviousPageButton: function GoToPreviousPageButton() {\n return r.createElement(l, null, function (e) {\n return r.createElement(N, _a({}, e));\n });\n },\n GoToPreviousPageMenuItem: function GoToPreviousPageMenuItem(e) {\n return r.createElement(l, null, function (t) {\n return r.createElement(O, {\n isDisabled: t.isDisabled,\n onClick: function onClick() {\n t.onClick(), e.onClick();\n }\n });\n });\n }\n };\n};","/**\n * A React component to view a PDF document\n *\n * @see https://react-pdf-viewer.dev\n * @license https://react-pdf-viewer.dev/license\n * @copyright 2019-2021 Nguyen Huu Phuoc \n */\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/page-navigation.min.js');\n} else {\n module.exports = require('./cjs/page-navigation.js');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n});\n\nvar e = require(\"react\"),\n t = require(\"@react-pdf-viewer/core\"),\n n = require(\"react-dom\");\n\nfunction r(e) {\n if (e && e.__esModule) return e;\n var t = Object.create(null);\n return e && Object.keys(e).forEach(function (n) {\n if (\"default\" !== n) {\n var r = Object.getOwnPropertyDescriptor(e, n);\n Object.defineProperty(t, n, r.get ? r : {\n enumerable: !0,\n get: function get() {\n return e[n];\n }\n });\n }\n }), t.default = e, Object.freeze(t);\n}\n\nvar a,\n o = r(e),\n _i = function i() {\n return (_i = Object.assign || function (e) {\n for (var t, n = 1, r = arguments.length; n < r; n++) {\n for (var a in t = arguments[n]) {\n Object.prototype.hasOwnProperty.call(t, a) && (e[a] = t[a]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n},\n c = function c() {\n return o.createElement(t.Icon, {\n size: 16\n }, o.createElement(\"path\", {\n d: \"M7.5,19.499h9 M7.5,16.499h9 M5.5,16.5h-3c-1.103-0.003-1.997-0.897-2-2v-6c0.003-1.103,0.897-1.997,2-2h19\\n c1.103,0.003,1.997,0.897,2,2v6c-0.003,1.103-0.897,1.997-2,2h-3\\n M5.5,4.5v-4h9.586c0.265,0,0.52,0.105,0.707,0.293l2.414,2.414\\n C18.395,3.394,18.5,3.649,18.5,3.914V4.5\\n M18.5,22.5c0,0.552-0.448,1-1,1h-11c-0.552,0-1-0.448-1-1v-9h13V22.5z\\n M3.5,8.499\\n c0.552,0,1,0.448,1,1s-0.448,1-1,1s-1-0.448-1-1S2.948,8.499,3.5,8.499z\\n M14.5,0.499v4h4\"\n }));\n},\n u = {\n left: 0,\n top: 8\n},\n l = function l(e) {\n var n = e.enableShortcuts,\n r = e.onClick,\n a = o.useContext(t.LocalizationContext),\n i = a && a.print ? a.print.print : \"Print\",\n l = n ? t.isMac() ? \"Meta+p\" : \"Ctrl+p\" : \"\";\n return o.createElement(t.Tooltip, {\n ariaControlsSuffix: \"print\",\n position: t.Position.BottomCenter,\n target: o.createElement(t.MinimalButton, {\n ariaKeyShortcuts: l,\n ariaLabel: i,\n onClick: r\n }, o.createElement(c, null)),\n content: function content() {\n return i;\n },\n offset: u\n });\n};\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n\n\n!function (e) {\n e.Inactive = \"Inactive\", e.Preparing = \"Preparing\", e.Cancelled = \"Cancelled\", e.Ready = \"Ready\";\n}(a || (a = {}));\n\nvar s = function s(e) {\n var t = e.children,\n n = e.enableShortcuts,\n r = e.store;\n return (t || l)({\n enableShortcuts: n,\n onClick: function onClick() {\n r.update(\"printStatus\", a.Preparing);\n }\n });\n},\n p = function p(e) {\n var n = e.numLoadedPages,\n r = e.numPages,\n a = e.onCancel,\n i = o.useContext(t.LocalizationContext),\n c = Math.floor(100 * n / r);\n return o.createElement(\"div\", {\n className: \"rpv-print__progress\"\n }, o.createElement(\"div\", {\n className: \"rpv-print__progress-body\"\n }, o.createElement(\"div\", {\n className: \"rpv-print__progress-message\"\n }, i && i.print ? i.print.preparingDocument : \"Preparing document ...\"), o.createElement(\"div\", {\n className: \"rpv-print__progress-bar\"\n }, o.createElement(t.ProgressBar, {\n progress: c\n })), o.createElement(t.Button, {\n onClick: a\n }, i && i.print ? i.print.cancel : \"Cancel\")));\n},\n d = function d(e) {\n var t = e.canvas,\n n = e.page,\n r = e.pageHeight,\n a = e.pageWidth,\n i = e.rotation,\n c = e.onLoad,\n u = o.useRef(),\n l = o.useState(\"\"),\n s = l[0],\n p = l[1];\n return o.useEffect(function () {\n var e = u.current;\n e && e.cancel();\n var o = 150 / 72;\n t.height = Math.floor(r * o), t.width = Math.floor(a * o);\n var c = t.getContext(\"2d\");\n c.save(), c.fillStyle = \"rgb(255, 255, 255)\", c.fillRect(0, 0, t.width, t.height), c.restore();\n var l = n.getViewport({\n rotation: i,\n scale: 1\n });\n u.current = n.render({\n canvasContext: c,\n intent: \"print\",\n transform: [o, 0, 0, o, 0, 0],\n viewport: l\n }), u.current.promise.then(function () {\n \"toBlob\" in t ? t.toBlob(function (e) {\n p(URL.createObjectURL(e));\n }) : p(t.toDataURL());\n }, function () {});\n }, []), s && o.createElement(\"div\", {\n className: \"rpv-print__page\"\n }, o.createElement(\"img\", {\n src: s,\n onLoad: function onLoad() {\n return c();\n }\n }));\n},\n m = function m(e) {\n var t = e.canvas,\n n = e.doc,\n r = e.pageHeight,\n a = e.pageIndex,\n i = e.pageWidth,\n c = e.rotation,\n u = e.onLoad,\n l = o.useState({\n height: r,\n page: null,\n viewportRotation: 0,\n width: i\n }),\n s = l[0],\n p = l[1],\n m = s.page,\n g = s.height,\n f = s.width,\n v = Math.abs(c) % 180 == 0;\n o.useEffect(function () {\n n.getPage(a + 1).then(function (e) {\n var t = e.getViewport({\n scale: 1\n });\n p({\n height: t.height,\n page: e,\n viewportRotation: t.rotation,\n width: t.width\n });\n });\n }, []);\n var h = (c + s.viewportRotation) % 360;\n return m && o.createElement(d, {\n canvas: t,\n page: m,\n pageHeight: v ? g : f,\n pageWidth: v ? f : g,\n rotation: h,\n onLoad: u\n });\n},\n g = function g(e) {\n var t = e.doc,\n r = e.numLoadedPages,\n i = e.pageHeight,\n c = e.pageWidth,\n u = e.printStatus,\n l = e.rotation,\n s = e.onCancel,\n p = e.onLoad,\n d = o.useMemo(function () {\n return document.createElement(\"canvas\");\n }, []),\n g = o.useMemo(function () {\n var e = document.createElement(\"div\");\n return e.classList.add(\"rpv-print__zone\"), document.body.appendChild(e), e;\n }, []);\n return o.useEffect(function () {\n u === a.Ready && (document.documentElement.classList.add(\"rpv-print__html-printing\"), document.body.classList.add(\"rpv-print__body-printing\"), window.print());\n\n var e = function e() {\n u === a.Ready && (document.documentElement.classList.remove(\"rpv-print__html-printing\"), document.body.classList.remove(\"rpv-print__body-printing\"), g.parentElement && g.parentElement.removeChild(g), d.height = 0, d.width = 0, document.removeEventListener(\"mousemove\", e), s());\n };\n\n return document.addEventListener(\"mousemove\", e), function () {\n return document.removeEventListener(\"mousemove\", e);\n };\n }, [u]), n.createPortal(o.createElement(o.Fragment, null, Array(Math.min(r + 1, t.numPages)).fill(0).map(function (e, n) {\n return o.createElement(m, {\n key: n,\n canvas: d,\n doc: t,\n pageHeight: i,\n pageIndex: n,\n pageWidth: c,\n rotation: l,\n onLoad: p\n });\n }), o.createElement(\"style\", {\n dangerouslySetInnerHTML: {\n __html: \"@page { size: \" + c + \"pt \" + i + \"pt }\"\n }\n })), g);\n},\n f = function f(e) {\n var t = e.doc,\n n = e.pageHeight,\n r = e.pageWidth,\n i = e.rotation,\n c = e.store,\n u = o.useState(a.Inactive),\n l = u[0],\n s = u[1],\n d = o.useState(0),\n m = d[0],\n f = d[1],\n v = function v() {\n f(0), s(a.Inactive);\n },\n h = function h(e) {\n return s(e);\n };\n\n return o.useEffect(function () {\n return c.subscribe(\"printStatus\", h), function () {\n c.unsubscribe(\"printStatus\", h);\n };\n }, []), o.createElement(o.Fragment, null, l === a.Preparing && o.createElement(p, {\n numLoadedPages: m,\n numPages: t.numPages,\n onCancel: v\n }), (l === a.Preparing || l === a.Ready) && m <= t.numPages && o.createElement(g, {\n doc: t,\n numLoadedPages: m,\n pageHeight: n,\n pageWidth: r,\n printStatus: l,\n rotation: i,\n onCancel: v,\n onLoad: function onLoad() {\n var e = m + 1;\n e <= t.numPages && (f(e), e === t.numPages && s(a.Ready));\n }\n }));\n},\n v = function v(e) {\n var n = e.onClick,\n r = o.useContext(t.LocalizationContext),\n a = r && r.print ? r.print.print : \"Print\";\n return o.createElement(t.MenuItem, {\n icon: o.createElement(c, null),\n onClick: n\n }, a);\n},\n h = function h(e) {\n var n = e.containerRef,\n r = e.store,\n i = function i(e) {\n if (!e.shiftKey && !e.altKey && \"p\" === e.key && (t.isMac() ? e.metaKey : e.ctrlKey)) {\n var o = n.current;\n o && document.activeElement && o.contains(document.activeElement) && (e.preventDefault(), r.update(\"printStatus\", a.Preparing));\n }\n };\n\n return o.useEffect(function () {\n if (n.current) return document.addEventListener(\"keydown\", i), function () {\n document.removeEventListener(\"keydown\", i);\n };\n }, [n.current]), o.createElement(o.Fragment, null);\n};\n\nexports.PrintIcon = c, exports.printPlugin = function (e) {\n var n = o.useMemo(function () {\n return Object.assign({}, {\n enableShortcuts: !0\n }, e);\n }, []),\n r = o.useMemo(function () {\n return t.createStore({\n printStatus: a.Inactive\n });\n }, []),\n c = function c(e) {\n return o.createElement(s, _i({\n enableShortcuts: n.enableShortcuts\n }, e, {\n store: r\n }));\n };\n\n return {\n renderViewer: function renderViewer(e) {\n var t = e.slot,\n a = {\n children: o.createElement(o.Fragment, null, n.enableShortcuts && o.createElement(h, {\n containerRef: e.containerRef,\n store: r\n }), o.createElement(f, {\n doc: e.doc,\n pageHeight: e.pageHeight,\n pageWidth: e.pageWidth,\n rotation: e.rotation,\n store: r\n }), t.children)\n };\n return _i(_i({}, t), a);\n },\n Print: c,\n PrintButton: function PrintButton() {\n return o.createElement(c, null, function (e) {\n return o.createElement(l, _i({}, e));\n });\n },\n PrintMenuItem: function PrintMenuItem(e) {\n return o.createElement(c, null, function (t) {\n return o.createElement(v, {\n onClick: function onClick() {\n t.onClick(), e.onClick();\n }\n });\n });\n }\n };\n};","/**\n * A React component to view a PDF document\n *\n * @see https://react-pdf-viewer.dev\n * @license https://react-pdf-viewer.dev/license\n * @copyright 2019-2021 Nguyen Huu Phuoc \n */\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/print.min.js');\n} else {\n module.exports = require('./cjs/print.js');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n});\n\nvar e = require(\"react\"),\n t = require(\"@react-pdf-viewer/core\");\n\nfunction r(e) {\n if (e && e.__esModule) return e;\n var t = Object.create(null);\n return e && Object.keys(e).forEach(function (r) {\n if (\"default\" !== r) {\n var n = Object.getOwnPropertyDescriptor(e, r);\n Object.defineProperty(t, r, n.get ? n : {\n enumerable: !0,\n get: function get() {\n return e[r];\n }\n });\n }\n }), t.default = e, Object.freeze(t);\n}\n\nvar n = r(e),\n _o = function o() {\n return (_o = Object.assign || function (e) {\n for (var t, r = 1, n = arguments.length; r < n; r++) {\n for (var o in t = arguments[r]) {\n Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n},\n a = function a(e) {\n var r = e.doc,\n o = e.render,\n a = n.useState(),\n i = a[0],\n l = a[1];\n return n.useEffect(function () {\n r.getMetadata().then(function (e) {\n return Promise.resolve(e);\n }).then(function (e) {\n return r.getDownloadInfo().then(function (t) {\n return Promise.resolve({\n fileName: e.contentDispositionFilename || \"\",\n info: e.info,\n length: t.length\n });\n });\n }).then(function (e) {\n l(e);\n });\n }, []), i ? o(i) : n.createElement(\"div\", {\n className: \"rpv-properties__loader\"\n }, n.createElement(t.Spinner, null));\n},\n i = function i(e) {\n var t = e.label,\n r = e.value;\n return n.createElement(\"dl\", {\n className: \"rpv-properties__item\"\n }, n.createElement(\"dt\", {\n className: \"rpv-properties__item-label\"\n }, t, \":\"), n.createElement(\"dd\", {\n className: \"rpv-properties__item-value\"\n }, r || \"-\"));\n},\n l = new RegExp(\"^D:(\\\\d{4})(\\\\d{2})?(\\\\d{2})?(\\\\d{2})?(\\\\d{2})?(\\\\d{2})?([Z|+|-])?(\\\\d{2})?'?(\\\\d{2})?'?\"),\n c = function c(e, t, r, n) {\n var o = parseInt(e, 10);\n return o >= t && o <= r ? o : n;\n},\n u = function u(e) {\n var r = e.doc,\n o = e.fileName,\n u = e.onToggle,\n p = n.useContext(t.LocalizationContext),\n s = function s(e) {\n var t = function (e) {\n var t = l.exec(e);\n if (!t) return null;\n var r = parseInt(t[1], 10),\n n = c(t[2], 1, 12, 1) - 1,\n o = c(t[3], 1, 31, 1),\n a = c(t[4], 0, 23, 0),\n i = c(t[5], 0, 59, 0),\n u = c(t[6], 0, 59, 0),\n p = t[7] || \"Z\",\n s = c(t[8], 0, 23, 0),\n f = c(t[9], 0, 59, 0);\n\n switch (p) {\n case \"-\":\n a += s, i += f;\n break;\n\n case \"+\":\n a -= s, i -= f;\n }\n\n return new Date(Date.UTC(r, n, o, a, i, u));\n }(e);\n\n return t ? t.toLocaleDateString() + \", \" + t.toLocaleTimeString() : \"\";\n };\n\n return n.createElement(\"div\", {\n className: \"rpv-properties__modal\"\n }, n.createElement(a, {\n doc: r,\n render: function render(e) {\n return n.createElement(n.Fragment, null, n.createElement(\"div\", {\n className: \"rpv-properties__modal-section\"\n }, n.createElement(i, {\n label: p && p.properties ? p.properties.fileName : \"File name\",\n value: e.fileName || (c = o, u = c.split(\"/\").pop(), u ? u.split(\"#\")[0].split(\"?\")[0] : c)\n }), n.createElement(i, {\n label: p && p.properties ? p.properties.fileSize : \"File size\",\n value: (a = e.length, l = Math.floor(Math.log(a) / Math.log(1024)), (a / Math.pow(1024, l)).toFixed(2) + \" \" + [\"B\", \"kB\", \"MB\", \"GB\", \"TB\"][l])\n })), n.createElement(t.Separator, null), n.createElement(\"div\", {\n className: \"rpv-properties__modal-section\"\n }, n.createElement(i, {\n label: p && p.properties ? p.properties.title : \"Title\",\n value: e.info.Title\n }), n.createElement(i, {\n label: p && p.properties ? p.properties.author : \"Author\",\n value: e.info.Author\n }), n.createElement(i, {\n label: p && p.properties ? p.properties.subject : \"Subject\",\n value: e.info.Subject\n }), n.createElement(i, {\n label: p && p.properties ? p.properties.keywords : \"Keywords\",\n value: e.info.Keywords\n }), n.createElement(i, {\n label: p && p.properties ? p.properties.creator : \"Creator\",\n value: e.info.Creator\n }), n.createElement(i, {\n label: p && p.properties ? p.properties.creationDate : \"Creation date\",\n value: s(e.info.CreationDate)\n }), n.createElement(i, {\n label: p && p.properties ? p.properties.modificationDate : \"Modification date\",\n value: s(e.info.ModDate)\n })), n.createElement(t.Separator, null), n.createElement(\"div\", {\n className: \"rpv-properties__modal-section\"\n }, n.createElement(i, {\n label: p && p.properties ? p.properties.pdfProducer : \"PDF producer\",\n value: e.info.Producer\n }), n.createElement(i, {\n label: p && p.properties ? p.properties.pdfVersion : \"PDF version\",\n value: e.info.PDFFormatVersion\n }), n.createElement(i, {\n label: p && p.properties ? p.properties.pageCount : \"Page count\",\n value: \"\" + r.numPages\n })));\n var a, l, c, u;\n }\n }), n.createElement(\"div\", {\n className: \"rpv-properties__modal-footer\"\n }, n.createElement(t.Button, {\n onClick: u\n }, p && p.properties ? p.properties.close : \"Close\")));\n},\n p = function p() {\n return n.createElement(t.Icon, {\n size: 16\n }, n.createElement(\"path\", {\n d: \"M12,1.001c6.075,0,11,4.925,11,11s-4.925,11-11,11s-11-4.925-11-11S5.925,1.001,12,1.001z\\n M14.5,17.005H13\\n c-0.552,0-1-0.448-1-1v-6.5c0-0.276-0.224-0.5-0.5-0.5H10\\n M11.745,6.504L11.745,6.504\\n M11.745,6.5c-0.138,0-0.25,0.112-0.25,0.25\\n S11.607,7,11.745,7s0.25-0.112,0.25-0.25S11.883,6.5,11.745,6.5\"\n }));\n},\n s = {\n left: 0,\n top: 8\n},\n f = function f(e) {\n var r = e.onClick,\n o = n.useContext(t.LocalizationContext),\n a = o && o.properties ? o.properties.showProperties : \"Show properties\";\n return n.createElement(t.Tooltip, {\n ariaControlsSuffix: \"properties\",\n position: t.Position.BottomCenter,\n target: n.createElement(t.MinimalButton, {\n ariaLabel: a,\n onClick: r\n }, n.createElement(p, null)),\n content: function content() {\n return a;\n },\n offset: s\n });\n},\n m = function m(e) {\n var r = e.children,\n a = e.store,\n i = function (e) {\n var t = n.useState(e.get(\"doc\")),\n r = t[0],\n o = t[1],\n a = function a(e) {\n o(e);\n };\n\n return n.useEffect(function () {\n return e.subscribe(\"doc\", a), function () {\n e.unsubscribe(\"doc\", a);\n };\n }, []), {\n currentDoc: r\n };\n }(a).currentDoc,\n l = a.get(\"fileName\") || \"\",\n c = r || function (e) {\n return n.createElement(f, _o({}, e));\n };\n\n return i ? n.createElement(t.Modal, {\n ariaControlsSuffix: \"properties\",\n target: function target(e) {\n return c({\n onClick: e\n });\n },\n content: function content(e) {\n return n.createElement(u, {\n doc: i,\n fileName: l,\n onToggle: e\n });\n },\n closeOnClickOutside: !0,\n closeOnEscape: !0\n }) : n.createElement(n.Fragment, null);\n},\n d = function d(e) {\n var r = e.onClick,\n o = n.useContext(t.LocalizationContext),\n a = o && o.properties ? o.properties.showProperties : \"Show properties\";\n return n.createElement(t.MenuItem, {\n icon: n.createElement(p, null),\n onClick: r\n }, a);\n};\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n\n\nexports.InfoIcon = p, exports.propertiesPlugin = function () {\n var e = n.useMemo(function () {\n return t.createStore({\n fileName: \"\"\n });\n }, []),\n r = function r(t) {\n return n.createElement(m, _o({}, t, {\n store: e\n }));\n };\n\n return {\n onDocumentLoad: function onDocumentLoad(t) {\n e.update(\"doc\", t.doc);\n },\n onViewerStateChange: function onViewerStateChange(t) {\n return e.update(\"fileName\", t.file.name), t;\n },\n ShowProperties: r,\n ShowPropertiesButton: function ShowPropertiesButton() {\n return n.createElement(m, {\n store: e\n });\n },\n ShowPropertiesMenuItem: function ShowPropertiesMenuItem(e) {\n return n.createElement(r, null, function (e) {\n return n.createElement(d, _o({}, e));\n });\n }\n };\n};","/**\n * A React component to view a PDF document\n *\n * @see https://react-pdf-viewer.dev\n * @license https://react-pdf-viewer.dev/license\n * @copyright 2019-2021 Nguyen Huu Phuoc \n */\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/properties.min.js');\n} else {\n module.exports = require('./cjs/properties.js');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n});\n\nvar t = require(\"react\"),\n e = require(\"@react-pdf-viewer/core\");\n\nfunction r(t) {\n if (t && t.__esModule) return t;\n var e = Object.create(null);\n return t && Object.keys(t).forEach(function (r) {\n if (\"default\" !== r) {\n var n = Object.getOwnPropertyDescriptor(t, r);\n Object.defineProperty(e, r, n.get ? n : {\n enumerable: !0,\n get: function get() {\n return t[r];\n }\n });\n }\n }), e.default = t, Object.freeze(e);\n}\n\nvar n,\n o = r(t);\nexports.RotateDirection = void 0, (n = exports.RotateDirection || (exports.RotateDirection = {})).Backward = \"Backward\", n.Forward = \"Forward\";\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n\nvar _c = function c() {\n return (_c = Object.assign || function (t) {\n for (var e, r = 1, n = arguments.length; r < n; r++) {\n for (var o in e = arguments[r]) {\n Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);\n }\n }\n\n return t;\n }).apply(this, arguments);\n},\n a = function a() {\n return o.createElement(e.Icon, {\n size: 16\n }, o.createElement(\"path\", {\n d: \"M3.434,10.537c0.141-0.438,0.316-0.864,0.523-1.274\\n M3.069,14.425C3.023,14.053,3,13.679,3,13.305 c0-0.291,0.014-0.579,0.041-0.863\\n M4.389,18.111c-0.341-0.539-0.623-1.112-0.843-1.711\\n M7.163,20.9 c-0.543-0.345-1.048-0.747-1.506-1.2\\n M10.98,22.248c-0.65-0.074-1.29-0.218-1.909-0.431\\n M10,4.25h2 c4.987,0.015,9.017,4.069,9.003,9.055c-0.013,4.581-3.456,8.426-8.008,8.945\\n M13.5,1.75L10,4.25l3.5,2.5\"\n }));\n},\n i = function i() {\n return o.createElement(e.Icon, {\n size: 16\n }, o.createElement(\"path\", {\n d: \"M20.566,10.537c-0.141-0.438-0.316-0.864-0.523-1.274\\n M20.931,14.425C20.977,14.053,21,13.679,21,13.305 c0-0.291-0.014-0.579-0.041-0.863\\n M19.611,18.111c0.341-0.539,0.624-1.114,0.843-1.713\\n M16.837,20.9 c0.543-0.345,1.048-0.747,1.506-1.2\\n M13.02,22.248c0.65-0.074,1.29-0.218,1.909-0.431\\n M14,4.25h-2 c-4.987,0.015-9.017,4.069-9.003,9.055c0.013,4.581,3.456,8.426,8.008,8.945\\n M10.5,1.75l3.5,2.5l-3.5,2.5\"\n }));\n},\n u = {\n left: 0,\n top: 8\n},\n l = function l(t) {\n var r = t.direction,\n n = t.onClick,\n c = o.useContext(e.LocalizationContext),\n l = c && c.rotate ? c.rotate.rotateBackward : \"Rotate counterclockwise\",\n f = c && c.rotate ? c.rotate.rotateForward : \"Rotate clockwise\",\n d = r === exports.RotateDirection.Backward ? l : f,\n s = r === exports.RotateDirection.Backward ? o.createElement(a, null) : o.createElement(i, null);\n return o.createElement(e.Tooltip, {\n ariaControlsSuffix: \"rotate\",\n position: e.Position.BottomCenter,\n target: o.createElement(e.MinimalButton, {\n ariaLabel: d,\n onClick: n\n }, s),\n content: function content() {\n return d;\n },\n offset: u\n });\n},\n f = function f(t) {\n var e = t.children,\n r = t.direction,\n n = t.store,\n c = function (t) {\n var e = o.useState(t.get(\"rotation\") || 0),\n r = e[0],\n n = e[1],\n c = function c(t) {\n n(t);\n };\n\n return o.useEffect(function () {\n return t.subscribe(\"rotation\", c), function () {\n t.unsubscribe(\"rotation\", c);\n };\n }, []), {\n rotation: r\n };\n }(n).rotation;\n\n return (e || function (t) {\n return o.createElement(l, {\n direction: t.direction,\n onClick: t.onClick\n });\n })({\n direction: r,\n onClick: function onClick() {\n var t = n.get(\"rotate\");\n\n if (t) {\n var e = r === exports.RotateDirection.Backward ? -90 : 90;\n t(360 === c || -360 === c ? e : c + e);\n }\n }\n });\n},\n d = function d(t) {\n var r = t.direction,\n n = t.onClick,\n c = o.useContext(e.LocalizationContext),\n u = c && c.rotate ? c.rotate.rotateBackward : \"Rotate counterclockwise\",\n l = c && c.rotate ? c.rotate.rotateForward : \"Rotate clockwise\",\n f = r === exports.RotateDirection.Backward ? u : l,\n d = r === exports.RotateDirection.Backward ? o.createElement(a, null) : o.createElement(i, null);\n return o.createElement(e.MenuItem, {\n icon: d,\n onClick: n\n }, f);\n};\n\nexports.RotateBackwardIcon = a, exports.RotateForwardIcon = i, exports.rotatePlugin = function () {\n var t = o.useMemo(function () {\n return e.createStore({\n rotation: 0\n });\n }, []),\n r = function r(e) {\n return o.createElement(f, _c({}, e, {\n store: t\n }));\n };\n\n return {\n install: function install(e) {\n t.update(\"rotate\", e.rotate);\n },\n onViewerStateChange: function onViewerStateChange(e) {\n return t.update(\"rotation\", e.rotation), e;\n },\n Rotate: r,\n RotateBackwardButton: function RotateBackwardButton() {\n return o.createElement(r, {\n direction: exports.RotateDirection.Backward\n }, function (t) {\n return o.createElement(l, _c({}, t));\n });\n },\n RotateBackwardMenuItem: function RotateBackwardMenuItem(t) {\n return o.createElement(r, {\n direction: exports.RotateDirection.Backward\n }, function (e) {\n return o.createElement(d, {\n direction: e.direction,\n onClick: function onClick() {\n e.onClick(), t.onClick();\n }\n });\n });\n },\n RotateForwardButton: function RotateForwardButton() {\n return o.createElement(r, {\n direction: exports.RotateDirection.Forward\n }, function (t) {\n return o.createElement(l, _c({}, t));\n });\n },\n RotateForwardMenuItem: function RotateForwardMenuItem(t) {\n return o.createElement(r, {\n direction: exports.RotateDirection.Forward\n }, function (e) {\n return o.createElement(d, {\n direction: e.direction,\n onClick: function onClick() {\n e.onClick(), t.onClick();\n }\n });\n });\n }\n };\n};","/**\n * A React component to view a PDF document\n *\n * @see https://react-pdf-viewer.dev\n * @license https://react-pdf-viewer.dev/license\n * @copyright 2019-2021 Nguyen Huu Phuoc \n */\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/rotate.min.js');\n} else {\n module.exports = require('./cjs/rotate.js');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n});\n\nvar e = require(\"react\"),\n r = require(\"@react-pdf-viewer/core\");\n\nfunction o(e) {\n if (e && e.__esModule) return e;\n var r = Object.create(null);\n return e && Object.keys(e).forEach(function (o) {\n if (\"default\" !== o) {\n var t = Object.getOwnPropertyDescriptor(e, o);\n Object.defineProperty(r, o, t.get ? t : {\n enumerable: !0,\n get: function get() {\n return e[o];\n }\n });\n }\n }), r.default = e, Object.freeze(r);\n}\n\nvar t,\n c = o(e);\nexports.ScrollMode = void 0, (t = exports.ScrollMode || (exports.ScrollMode = {})).Horizontal = \"Horizontal\", t.Vertical = \"Vertical\", t.Wrapped = \"Wrapped\";\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n\nvar _l = function l() {\n return (_l = Object.assign || function (e) {\n for (var r, o = 1, t = arguments.length; o < t; o++) {\n for (var c in r = arguments[o]) {\n Object.prototype.hasOwnProperty.call(r, c) && (e[c] = r[c]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n},\n n = function n() {\n return c.createElement(r.Icon, {\n size: 16\n }, c.createElement(\"path\", {\n d: \"M6.5,21.5c0,0.552-0.448,1-1,1h-4c-0.552,0-1-0.448-1-1v-20c0-0.552,0.448-1,1-1h4c0.552,0,1,0.448,1,1V21.5z\\n M14.5,21.5c0,0.552-0.448,1-1,1h-4c-0.552,0-1-0.448-1-1v-20c0-0.552,0.448-1,1-1h4c0.552,0,1,0.448,1,1V21.5z\\n M22.5,21.5 c0,0.552-0.448,1-1,1h-4c-0.552,0-1-0.448-1-1v-20c0-0.552,0.448-1,1-1h4c0.552,0,1,0.448,1,1V21.5z\"\n }));\n},\n i = function i() {\n return c.createElement(r.Icon, {\n size: 16\n }, c.createElement(\"path\", {\n d: \"M23.5,5.5c0,0.552-0.448,1-1,1h-21c-0.552,0-1-0.448-1-1v-3c0-0.552,0.448-1,1-1h21c0.552,0,1,0.448,1,1V5.5z\\n M23.5,13.5c0,0.552-0.448,1-1,1h-21c-0.552,0-1-0.448-1-1v-3c0-0.552,0.448-1,1-1h21c0.552,0,1,0.448,1,1V13.5z\\n M23.5,21.5 c0,0.552-0.448,1-1,1h-21c-0.552,0-1-0.448-1-1v-3c0-0.552,0.448-1,1-1h21c0.552,0,1,0.448,1,1V21.5z\"\n }));\n},\n a = function a() {\n return c.createElement(r.Icon, {\n size: 16\n }, c.createElement(\"path\", {\n d: \"M10.5,9.5c0,0.552-0.448,1-1,1h-8c-0.552,0-1-0.448-1-1v-8c0-0.552,0.448-1,1-1h8c0.552,0,1,0.448,1,1V9.5z\\n M23.5,9.5c0,0.552-0.448,1-1,1h-8c-0.552,0-1-0.448-1-1v-8c0-0.552,0.448-1,1-1h8c0.552,0,1,0.448,1,1V9.5z\\n M10.5,22.5 c0,0.552-0.448,1-1,1h-8c-0.552,0-1-0.448-1-1v-8c0-0.552,0.448-1,1-1h8c0.552,0,1,0.448,1,1V22.5z\\n M23.5,22.5c0,0.552-0.448,1-1,1 h-8c-0.552,0-1-0.448-1-1v-8c0-0.552,0.448-1,1-1h8c0.552,0,1,0.448,1,1V22.5z\"\n }));\n},\n s = function s(e) {\n var o = e.children,\n t = e.mode,\n l = e.onClick,\n s = c.useContext(r.LocalizationContext),\n d = \"\",\n u = c.createElement(i, null);\n\n switch (t) {\n case exports.ScrollMode.Horizontal:\n d = s && s.scrollMode ? s.scrollMode.horizontalScrolling : \"Horizontal scrolling\", u = c.createElement(n, null);\n break;\n\n case exports.ScrollMode.Wrapped:\n d = s && s.scrollMode ? s.scrollMode.wrappedScrolling : \"Wrapped scrolling\", u = c.createElement(a, null);\n break;\n\n case exports.ScrollMode.Vertical:\n default:\n d = s && s.scrollMode ? s.scrollMode.verticalScrolling : \"Vertical scrolling\", u = c.createElement(i, null);\n }\n\n return o({\n icon: u,\n label: d,\n onClick: l\n });\n},\n d = {\n left: 0,\n top: 8\n},\n u = function u(e) {\n var o = e.isSelected,\n t = e.mode,\n l = e.onClick;\n return c.createElement(s, {\n mode: t,\n onClick: l\n }, function (e) {\n return c.createElement(r.Tooltip, {\n ariaControlsSuffix: \"scroll-mode-switch\",\n position: r.Position.BottomCenter,\n target: c.createElement(r.MinimalButton, {\n ariaLabel: e.label,\n isSelected: o,\n onClick: e.onClick\n }, e.icon),\n content: function content() {\n return e.label;\n },\n offset: d\n });\n });\n},\n m = function m(e) {\n var r = c.useState(e.get(\"scrollMode\") || exports.ScrollMode.Vertical),\n o = r[0],\n t = r[1],\n l = function l(e) {\n t(e);\n };\n\n return c.useEffect(function () {\n return e.subscribe(\"scrollMode\", l), function () {\n e.unsubscribe(\"scrollMode\", l);\n };\n }, []), {\n scrollMode: o,\n switchTo: function switchTo(r) {\n var o = e.get(\"getPagesContainer\");\n\n if (o) {\n var t = o();\n\n if (t) {\n switch (r) {\n case exports.ScrollMode.Vertical:\n t.classList.add(\"rpv-scroll-mode__vertical\"), t.classList.remove(\"rpv-scroll-mode__horizontal\"), t.classList.remove(\"rpv-scroll-mode__wrapped\");\n break;\n\n case exports.ScrollMode.Horizontal:\n t.classList.add(\"rpv-scroll-mode__horizontal\"), t.classList.remove(\"rpv-scroll-mode__vertical\"), t.classList.remove(\"rpv-scroll-mode__wrapped\");\n break;\n\n case exports.ScrollMode.Wrapped:\n t.classList.add(\"rpv-scroll-mode__wrapped\"), t.classList.remove(\"rpv-scroll-mode__vertical\"), t.classList.remove(\"rpv-scroll-mode__horizontal\");\n }\n\n e.update(\"scrollMode\", r);\n }\n }\n }\n };\n},\n p = function p(e) {\n var r = e.children,\n o = e.mode,\n t = e.store,\n l = m(t),\n n = l.scrollMode,\n i = l.switchTo,\n a = n === o;\n return (r || function (e) {\n return c.createElement(u, {\n isSelected: a,\n mode: e.mode,\n onClick: e.onClick\n });\n })({\n isSelected: a,\n mode: o,\n onClick: function onClick() {\n return i(o);\n }\n });\n},\n f = function f(e) {\n var o = e.isSelected,\n t = e.mode,\n l = e.onClick;\n return c.createElement(s, {\n mode: t,\n onClick: l\n }, function (e) {\n return c.createElement(r.MenuItem, {\n checked: o,\n icon: e.icon,\n onClick: e.onClick\n }, e.label);\n });\n},\n v = function v(e) {\n var r = e.store,\n o = m(r).switchTo,\n t = function t(e) {\n if (e()) {\n var t = r.get(\"scrollMode\") || exports.ScrollMode.Vertical;\n t !== exports.ScrollMode.Vertical && o(t);\n }\n };\n\n return c.useEffect(function () {\n return r.subscribe(\"getPagesContainer\", t), function () {\n r.unsubscribe(\"getPagesContainer\", t);\n };\n }, []), c.createElement(c.Fragment, null);\n};\n\nexports.HorizontalScrollingIcon = n, exports.VerticalScrollingIcon = i, exports.WrappedScrollingIcon = a, exports.scrollModePlugin = function (e) {\n var o = c.useMemo(function () {\n return r.createStore({\n scrollMode: e && e.scrollMode ? e.scrollMode : exports.ScrollMode.Vertical\n });\n }, []),\n t = function t(e) {\n return c.createElement(p, _l({}, e, {\n store: o\n }));\n };\n\n return {\n install: function install(e) {\n o.update(\"getPagesContainer\", e.getPagesContainer);\n },\n renderViewer: function renderViewer(e) {\n var r = e.slot;\n return r && r.children && (r.children = c.createElement(c.Fragment, null, c.createElement(v, {\n store: o\n }), r.children)), r;\n },\n SwitchScrollMode: t,\n SwitchScrollModeButton: function SwitchScrollModeButton(e) {\n return c.createElement(t, {\n mode: e.mode\n }, function (e) {\n return c.createElement(u, {\n isSelected: e.isSelected,\n mode: e.mode,\n onClick: function onClick() {\n e.onClick();\n }\n });\n });\n },\n SwitchScrollModeMenuItem: function SwitchScrollModeMenuItem(e) {\n return c.createElement(t, {\n mode: e.mode\n }, function (r) {\n return c.createElement(f, {\n isSelected: r.isSelected,\n mode: r.mode,\n onClick: function onClick() {\n r.onClick(), e.onClick();\n }\n });\n });\n }\n };\n};","/**\n * A React component to view a PDF document\n *\n * @see https://react-pdf-viewer.dev\n * @license https://react-pdf-viewer.dev/license\n * @copyright 2019-2021 Nguyen Huu Phuoc \n */\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scroll-mode.min.js');\n} else {\n module.exports = require('./cjs/scroll-mode.js');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n});\n\nvar e = require(\"react\"),\n t = require(\"@react-pdf-viewer/core\");\n\nfunction n(e) {\n if (e && e.__esModule) return e;\n var t = Object.create(null);\n return e && Object.keys(e).forEach(function (n) {\n if (\"default\" !== n) {\n var r = Object.getOwnPropertyDescriptor(e, n);\n Object.defineProperty(t, n, r.get ? r : {\n enumerable: !0,\n get: function get() {\n return e[n];\n }\n });\n }\n }), t.default = e, Object.freeze(t);\n}\n\nvar r = n(e),\n _o = function o() {\n return (_o = Object.assign || function (e) {\n for (var t, n = 1, r = arguments.length; n < r; n++) {\n for (var o in t = arguments[n]) {\n Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n};\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n\n\nfunction a(e, t, n) {\n if (n || 2 === arguments.length) for (var r, o = 0, a = t.length; o < a; o++) {\n !r && o in t || (r || (r = Array.prototype.slice.call(t, 0, o)), r[o] = t[o]);\n }\n return e.concat(r || t);\n}\n\nvar c = new RegExp(\" \"),\n u = function u(e) {\n var t = e.wholeWords ? \" \" + e.keyword + \" \" : e.keyword,\n n = e.matchCase ? \"g\" : \"gi\";\n return new RegExp(t, n);\n},\n i = function i(e, t, n) {\n return e instanceof RegExp ? e : \"string\" == typeof e ? \"\" === e ? c : u({\n keyword: e,\n matchCase: t || !1,\n wholeWords: n || !1\n }) : (void 0 !== t && (e.matchCase = t), void 0 !== n && (e.wholeWords = n), u(e));\n},\n s = function s(e) {\n var t,\n n = function (e) {\n var t = r.useRef(e.get(\"doc\")),\n n = function n(e) {\n t.current = e;\n };\n\n return r.useEffect(function () {\n return e.subscribe(\"doc\", n), function () {\n e.unsubscribe(\"doc\", n);\n };\n }, []), t;\n }(e),\n o = r.useState([]),\n a = o[0],\n u = o[1],\n s = r.useState([]),\n l = s[0],\n h = s[1],\n f = r.useState(0),\n d = f[0],\n p = f[1],\n m = r.useState(!1),\n g = m[0],\n v = m[1],\n x = r.useRef([]),\n y = r.useState(!1),\n E = y[0],\n w = y[1],\n b = function b(e) {\n if (0 === a.length || 0 === l.length) return null;\n var t = Math.max(1, Math.min(l.length, e));\n return p(t), I(l[t - 1]);\n },\n C = function C(e) {\n return u(\"\" === e ? [] : [e]);\n },\n I = function I(t) {\n var n = e.get(\"jumpToPage\");\n return n && n(t.pageIndex), e.update(\"matchPosition\", {\n matchIndex: t.matchIndex,\n pageIndex: t.pageIndex\n }), t;\n },\n S = function S(t, r, o) {\n var a = t.map(function (e) {\n return i(e, r, o);\n });\n return e.update(\"keyword\", a), p(0), h([]), new Promise(function (e, t) {\n (0 === x.current.length ? function () {\n var e = n.current;\n if (!e) return Promise.resolve([]);\n var t = Array(e.numPages).fill(0).map(function (t, n) {\n return e.getPage(n + 1).then(function (e) {\n return e.getTextContent();\n }).then(function (e) {\n var t = e.items.map(function (e) {\n return e.str || \"\";\n }).join(\"\");\n return Promise.resolve({\n pageContent: t,\n pageIndex: n\n });\n });\n });\n return Promise.all(t).then(function (e) {\n return e.sort(function (e, t) {\n return e.pageIndex - t.pageIndex;\n }), Promise.resolve(e.map(function (e) {\n return e.pageContent;\n }));\n });\n }().then(function (e) {\n return x.current = e, Promise.resolve(e);\n }) : Promise.resolve(x.current)).then(function (t) {\n var n = [];\n t.forEach(function (e, t) {\n a.forEach(function (r) {\n for (var o, a = 0; null !== (o = r.exec(e));) {\n n.push({\n keyword: r,\n matchIndex: a,\n pageIndex: t,\n pageText: e,\n startIndex: o.index,\n endIndex: r.lastIndex\n }), a++;\n }\n });\n }), h(n), n.length > 0 && (p(1), I(n[0])), e(n);\n });\n });\n };\n\n return r.useEffect(function () {\n x.current = [];\n }, [n.current]), {\n clearKeyword: function clearKeyword() {\n 0 !== a.length && (e.update(\"keyword\", [c]), C(\"\"), p(0), h([]), v(!1), w(!1));\n },\n changeMatchCase: function changeMatchCase(e) {\n v(e), a.length > 0 && S(a, e, E);\n },\n changeWholeWords: function changeWholeWords(e) {\n w(e), a.length > 0 && S(a, g, e);\n },\n currentMatch: d,\n jumpToMatch: b,\n jumpToNextMatch: function jumpToNextMatch() {\n return b(d + 1);\n },\n jumpToPreviousMatch: function jumpToPreviousMatch() {\n return b(d - 1);\n },\n keywords: a,\n matchCase: g,\n numberOfMatches: l.length,\n wholeWords: E,\n search: function search() {\n return S(a, g, E);\n },\n searchFor: S,\n setKeywords: u,\n keyword: 0 === a.length ? \"\" : (t = a[0], t instanceof RegExp ? t.source : \"string\" == typeof t ? t : t.keyword),\n setKeyword: C\n };\n},\n l = function l(e) {\n var t = e.children,\n n = e.store,\n r = s(n);\n return t(_o({}, r));\n},\n h = function h() {\n return r.createElement(t.Icon, {\n size: 16\n }, r.createElement(\"path\", {\n d: \"M0.541,5.627L11.666,18.2c0.183,0.207,0.499,0.226,0.706,0.043c0.015-0.014,0.03-0.028,0.043-0.043\\n L23.541,5.627\"\n }));\n},\n f = function f() {\n return r.createElement(t.Icon, {\n size: 16\n }, r.createElement(\"path\", {\n d: \"M23.535,18.373L12.409,5.8c-0.183-0.207-0.499-0.226-0.706-0.043C11.688,5.77,11.674,5.785,11.66,5.8\\n L0.535,18.373\"\n }));\n},\n d = {\n left: 0,\n top: 8\n},\n p = function p(e) {\n var n = e.store,\n o = e.onToggle,\n a = r.useContext(t.LocalizationContext),\n c = r.useState(!1),\n u = c[0],\n i = c[1],\n l = s(n),\n p = l.clearKeyword,\n m = l.changeMatchCase,\n g = l.changeWholeWords,\n v = l.currentMatch,\n x = l.jumpToNextMatch,\n y = l.jumpToPreviousMatch,\n E = l.keyword,\n w = l.matchCase,\n b = l.numberOfMatches,\n C = l.wholeWords,\n I = l.search,\n S = l.setKeyword,\n k = a && a.search ? a.search.enterToSearch : \"Enter to search\",\n _ = a && a.search ? a.search.previousMatch : \"Previous match\",\n P = a && a.search ? a.search.nextMatch : \"Next match\";\n\n return r.createElement(\"div\", {\n className: \"rpv-search__popover\"\n }, r.createElement(\"div\", {\n className: \"rpv-search__popover-input-counter\"\n }, r.createElement(t.TextBox, {\n ariaLabel: k,\n placeholder: k,\n type: \"text\",\n value: E,\n onChange: S,\n onKeyDown: function onKeyDown(e) {\n \"Enter\" === e.key && E && (i(!0), I().then(function (e) {\n return i(!1);\n }));\n }\n }), r.createElement(\"div\", {\n className: \"rpv-search__popover-counter\"\n }, u && r.createElement(t.Spinner, {\n size: \"1rem\"\n }), !u && r.createElement(\"span\", null, v, \"/\", b))), r.createElement(\"label\", {\n className: \"rpv-search__popover-label\"\n }, r.createElement(\"input\", {\n className: \"rpv-search__popover-label-checkbox\",\n checked: w,\n type: \"checkbox\",\n onChange: function onChange(e) {\n m(e.target.checked);\n }\n }), \" \", a && a.search ? a.search.matchCase : \"Match case\"), r.createElement(\"label\", {\n className: \"rpv-search__popover-label\"\n }, r.createElement(\"input\", {\n className: \"rpv-search__popover-label-checkbox\",\n checked: C,\n type: \"checkbox\",\n onChange: function onChange(e) {\n g(e.target.checked);\n }\n }), \" \", a && a.search ? a.search.wholeWords : \"Whole words\"), r.createElement(\"div\", {\n className: \"rpv-search__popover-footer\"\n }, r.createElement(\"div\", {\n className: \"rpv-search__popover-footer-item\"\n }, r.createElement(t.Tooltip, {\n ariaControlsSuffix: \"search-previous-match\",\n position: t.Position.BottomCenter,\n target: r.createElement(t.MinimalButton, {\n ariaLabel: _,\n isDisabled: v <= 1,\n onClick: y\n }, r.createElement(f, null)),\n content: function content() {\n return _;\n },\n offset: d\n })), r.createElement(\"div\", {\n className: \"rpv-search__popover-footer-item\"\n }, r.createElement(t.Tooltip, {\n ariaControlsSuffix: \"search-next-match\",\n position: t.Position.BottomCenter,\n target: r.createElement(t.MinimalButton, {\n ariaLabel: P,\n isDisabled: v > b - 1,\n onClick: x\n }, r.createElement(h, null)),\n content: function content() {\n return P;\n },\n offset: d\n })), r.createElement(\"div\", {\n className: \"rpv-search__popover-footer-button\"\n }, r.createElement(t.Button, {\n onClick: function onClick() {\n o(), p();\n }\n }, a && a.search ? a.search.close : \"Close\"))));\n},\n m = function m() {\n return r.createElement(t.Icon, {\n size: 16\n }, r.createElement(\"path\", {\n d: \"M10.5,0.5c5.523,0,10,4.477,10,10s-4.477,10-10,10s-10-4.477-10-10S4.977,0.5,10.5,0.5z\\n M23.5,23.5\\n l-5.929-5.929\"\n }));\n},\n g = function g(e) {\n var n = e.children,\n o = e.onClick,\n a = r.useContext(t.LocalizationContext),\n c = a && a.search ? a.search.search : \"Search\";\n return n({\n icon: r.createElement(m, null),\n label: c,\n onClick: o\n });\n},\n v = {\n left: 0,\n top: 8\n},\n x = function x(e) {\n var n = e.onClick;\n return r.createElement(g, {\n onClick: n\n }, function (e) {\n return r.createElement(t.Tooltip, {\n ariaControlsSuffix: \"search-popover\",\n position: t.Position.BottomCenter,\n target: r.createElement(t.MinimalButton, {\n ariaLabel: e.label,\n onClick: n\n }, e.icon),\n content: function content() {\n return e.label;\n },\n offset: v\n });\n });\n},\n y = {\n left: 0,\n top: 8\n},\n E = function E(e) {\n var n = e.children,\n a = e.store,\n c = n || function (e) {\n return r.createElement(x, _o({}, e));\n };\n\n return r.createElement(t.Popover, {\n ariaControlsSuffix: \"search\",\n position: t.Position.BottomLeft,\n target: function target(e) {\n return c({\n onClick: e\n });\n },\n content: function content(e) {\n return r.createElement(p, {\n store: a,\n onToggle: e\n });\n },\n offset: y,\n closeOnClickOutside: !1,\n closeOnEscape: !0\n });\n},\n w = function w(e) {\n var t = e.parentNode;\n t && t.removeChild(e);\n},\n b = function b(e) {\n var t = e.parentNode;\n\n if (t) {\n var n = document.createRange();\n n.selectNodeContents(e), function (e, t) {\n w(e);\n var n = t.parentNode;\n n && n.insertBefore(e, t), w(t);\n }(n.extractContents(), e), t.normalize();\n }\n},\n C = function C(e) {\n var n = e.pageIndex,\n o = e.store,\n u = e.onHighlightKeyword,\n i = r.useState({\n matchIndex: -1,\n pageIndex: -1\n }),\n s = i[0],\n l = i[1],\n h = r.useState([c]),\n f = h[0],\n d = h[1],\n p = r.useState({\n pageIndex: n,\n scale: 1,\n status: t.LayerRenderStatus.PreRender\n }),\n m = p[0],\n g = p[1],\n v = r.useRef(null),\n x = r.useRef([]),\n y = function y(e) {\n for (var t = e.querySelectorAll(\"span.rpv-search__highlight\"), n = t.length, r = 0; r < n; r++) {\n t[r].parentElement.removeChild(t[r]);\n }\n },\n E = function E(e) {\n var t = x.current;\n\n if (0 !== t.length) {\n var n = [].slice.call(e.querySelectorAll(\".rpv-core__text-layer-text\")),\n r = t.map(function (e) {\n return e.char;\n }).join(\"\");\n f.forEach(function (o) {\n if (o.source.trim()) {\n for (var c, i = -1 === o.flags.indexOf(\"g\") ? new RegExp(o, o.flags + \"g\") : o, s = []; null !== (c = i.exec(r));) {\n s.push({\n keyword: i,\n startIndex: c.index,\n endIndex: i.lastIndex\n });\n }\n\n s.map(function (e) {\n return {\n keyword: e.keyword,\n indexes: t.slice(e.startIndex, e.endIndex)\n };\n }).forEach(function (t) {\n var r = t.indexes.reduce(function (e, t) {\n return e[t.spanIndex] = a(a([], e[t.spanIndex] || []), [t]), e;\n }, {});\n Object.values(r).forEach(function (r) {\n !function (e, t, n, r) {\n var o = document.createRange(),\n a = n.firstChild;\n\n if (a) {\n var c = r[0].charIndexInSpan,\n i = 1 === r.length ? c : r[r.length - 1].charIndexInSpan;\n o.setStart(a, c), o.setEnd(a, i + 1);\n var s = document.createElement(\"span\");\n o.surroundContents(s);\n var l = s.getBoundingClientRect(),\n h = t.getBoundingClientRect(),\n f = document.createElement(\"span\");\n t.appendChild(f), f.style.left = 100 * (l.left - h.left) / h.width + \"%\", f.style.top = 100 * (l.top - h.top) / h.height + \"%\", f.style.width = 100 * l.width / h.width + \"%\", f.style.height = 100 * l.height / h.height + \"%\", f.classList.add(\"rpv-search__highlight\"), f.setAttribute(\"title\", e.source.trim()), b(s), u && u({\n highlightEle: f,\n keyword: e\n });\n }\n }(t.keyword, e, n[r[0].spanIndex], r);\n });\n });\n }\n });\n }\n },\n w = function w(e) {\n e && e.length > 0 && d(e);\n },\n C = function C(e) {\n return l(e);\n },\n I = function I(e) {\n if (e.has(n)) {\n var t = e.get(n);\n t && g({\n ele: t.ele,\n pageIndex: n,\n scale: t.scale,\n status: t.status\n });\n }\n },\n S = function S() {\n return 0 === f.length || 1 === f.length && \"\" === f[0].source.trim();\n };\n\n r.useEffect(function () {\n if (!S() && m.status === t.LayerRenderStatus.DidRender && !x.current.length) {\n var e = m.ele,\n n = [].slice.call(e.querySelectorAll(\".rpv-core__text-layer-text\")).map(function (e) {\n return e.textContent;\n }).reduce(function (e, t, n) {\n return e.concat(t.split(\"\").map(function (e, t) {\n return {\n char: e,\n charIndexInSpan: t,\n spanIndex: n\n };\n }));\n }, [{\n char: \"\",\n charIndexInSpan: 0,\n spanIndex: 0\n }]).slice(1);\n x.current = n;\n }\n }, [f, m.status]), r.useEffect(function () {\n if (!S() && m.ele && m.status === t.LayerRenderStatus.DidRender) {\n var e = m.ele;\n y(e), E(e), k();\n }\n }, [f, s, m.status, x.current]), r.useEffect(function () {\n S() && m.ele && m.status === t.LayerRenderStatus.DidRender && y(m.ele);\n }, [f, m.status]);\n\n var k = function k() {\n if (s.pageIndex === n && m.ele && m.status === t.LayerRenderStatus.DidRender) {\n var e = m.ele,\n r = e.querySelectorAll(\".rpv-search__highlight\");\n\n if (s.matchIndex < r.length) {\n var a = r[s.matchIndex],\n c = function (e, t) {\n for (var n = e.offsetTop, r = e.offsetLeft, o = e.parentElement; o && o !== t;) {\n n += o.offsetTop, r += o.offsetLeft, o = o.parentElement;\n }\n\n return {\n left: r,\n top: n\n };\n }(a, e),\n u = c.left,\n i = c.top,\n l = o.get(\"jumpToDestination\");\n\n l && (l(n, (e.getBoundingClientRect().height - i) / m.scale, u / m.scale, m.scale), v.current && v.current.classList.remove(\"rpv-search__highlight--current\"), v.current = a, a.classList.add(\"rpv-search__highlight--current\"));\n }\n }\n };\n\n return r.useEffect(function () {\n return o.subscribe(\"keyword\", w), o.subscribe(\"matchPosition\", C), o.subscribe(\"renderStatus\", I), function () {\n o.unsubscribe(\"keyword\", w), o.unsubscribe(\"matchPosition\", C), o.unsubscribe(\"renderStatus\", I);\n };\n }, []), r.createElement(r.Fragment, null);\n};\n\nexports.NextIcon = h, exports.PreviousIcon = f, exports.SearchIcon = m, exports.searchPlugin = function (e) {\n var n = r.useMemo(function () {\n return e && e.onHighlightKeyword ? e.onHighlightKeyword : function () {};\n }, []),\n a = r.useMemo(function () {\n return t.createStore({\n renderStatus: new Map()\n });\n }, []),\n u = s(a),\n h = u.clearKeyword,\n f = u.jumpToMatch,\n d = u.jumpToNextMatch,\n p = u.jumpToPreviousMatch,\n m = u.searchFor,\n g = u.setKeywords,\n v = function v(e) {\n return r.createElement(E, _o({}, e, {\n store: a\n }));\n };\n\n return {\n install: function install(t) {\n var n = e && e.keyword ? function (e) {\n return Array.isArray(e) ? e.map(function (e) {\n return i(e);\n }) : [i(e)];\n }(e.keyword) : [c];\n a.update(\"jumpToDestination\", t.jumpToDestination), a.update(\"jumpToPage\", t.jumpToPage), a.update(\"keyword\", n);\n },\n renderViewer: function renderViewer(e) {\n var t = e.slot;\n return t.subSlot && (t.subSlot.children = r.createElement(r.Fragment, null, Array(e.doc.numPages).fill(0).map(function (e, t) {\n return r.createElement(C, {\n key: t,\n pageIndex: t,\n store: a,\n onHighlightKeyword: n\n });\n }), t.subSlot.children)), t;\n },\n uninstall: function uninstall(e) {\n var t = a.get(\"renderStatus\");\n t && t.clear();\n },\n onDocumentLoad: function onDocumentLoad(e) {\n a.update(\"doc\", e.doc);\n },\n onTextLayerRender: function onTextLayerRender(e) {\n var t = a.get(\"renderStatus\");\n t && (t = t.set(e.pageIndex, e), a.update(\"renderStatus\", t));\n },\n Search: function Search(e) {\n return r.createElement(l, _o({}, e, {\n store: a\n }));\n },\n ShowSearchPopover: v,\n ShowSearchPopoverButton: function ShowSearchPopoverButton() {\n return r.createElement(v, null, function (e) {\n return r.createElement(x, _o({}, e));\n });\n },\n clearHighlights: function clearHighlights() {\n h();\n },\n highlight: function highlight(e) {\n var t = Array.isArray(e) ? e : [e];\n return g(t), m(t);\n },\n jumpToMatch: f,\n jumpToNextMatch: d,\n jumpToPreviousMatch: p\n };\n};","/**\n * A React component to view a PDF document\n *\n * @see https://react-pdf-viewer.dev\n * @license https://react-pdf-viewer.dev/license\n * @copyright 2019-2021 Nguyen Huu Phuoc \n */\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/search.min.js');\n} else {\n module.exports = require('./cjs/search.js');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n});\n\nvar e = require(\"react\"),\n t = require(\"@react-pdf-viewer/core\");\n\nfunction n(e) {\n if (e && e.__esModule) return e;\n var t = Object.create(null);\n return e && Object.keys(e).forEach(function (n) {\n if (\"default\" !== n) {\n var o = Object.getOwnPropertyDescriptor(e, n);\n Object.defineProperty(t, n, o.get ? o : {\n enumerable: !0,\n get: function get() {\n return e[n];\n }\n });\n }\n }), t.default = e, Object.freeze(t);\n}\n\nvar o,\n r = n(e);\nexports.SelectionMode = void 0, (o = exports.SelectionMode || (exports.SelectionMode = {})).Hand = \"Hand\", o.Text = \"Text\";\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n\nvar _c = function c() {\n return (_c = Object.assign || function (e) {\n for (var t, n = 1, o = arguments.length; n < o; n++) {\n for (var r in t = arguments[n]) {\n Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n},\n i = function i() {\n return r.createElement(t.Icon, {\n size: 16\n }, r.createElement(\"path\", {\n d: \"M11.5,5.5v-2C11.5,2.672,12.172,2,13,2s1.5,0.672,1.5,1.5v2 M14.5,11.5v-6C14.5,4.672,15.172,4,16,4\\n c0.828,0,1.5,0.672,1.5,1.5v3 M17.5,13V8.5C17.5,7.672,18.172,7,19,7s1.5,0.672,1.5,1.5v10c0,2.761-2.239,5-5,5h-3.335\\n c-1.712-0.001-3.305-0.876-4.223-2.321C6.22,18.467,4.083,14,4.083,14c-0.378-0.545-0.242-1.292,0.303-1.67\\n c0.446-0.309,1.044-0.281,1.458,0.07L8.5,15.5v-10C8.5,4.672,9.172,4,10,4s1.5,0.672,1.5,1.5v6\"\n }));\n},\n l = function l() {\n return r.createElement(t.Icon, {\n size: 16\n }, r.createElement(\"path\", {\n d: \"M13.675,11.671l2.941-2.941c0.195-0.196,0.195-0.512-0.001-0.707C16.563,7.971,16.5,7.931,16.43,7.906\\n L4.168,3.527C3.908,3.434,3.622,3.57,3.529,3.83c-0.039,0.109-0.039,0.228,0,0.336l4.379,12.262\\n c0.093,0.26,0.379,0.396,0.639,0.303c0.07-0.025,0.133-0.065,0.185-0.117l2.943-2.943l6.146,6.146c0.195,0.195,0.512,0.195,0.707,0\\n l1.293-1.293c0.195-0.195,0.195-0.512,0-0.707L13.675,11.671z\"\n }));\n},\n u = function u(e) {\n var n = e.children,\n o = e.mode,\n c = e.onClick,\n u = r.useContext(t.LocalizationContext),\n s = \"\",\n a = r.createElement(l, null);\n\n switch (o) {\n case exports.SelectionMode.Hand:\n s = u && u.selectionMode ? u.selectionMode.handTool : \"Hand tool\", a = r.createElement(i, null);\n break;\n\n case exports.SelectionMode.Text:\n default:\n s = u && u.selectionMode ? u.selectionMode.textSelectionTool : \"Text selection tool\", a = r.createElement(l, null);\n }\n\n return n({\n icon: a,\n label: s,\n onClick: c\n });\n},\n s = {\n left: 0,\n top: 8\n},\n a = function a(e) {\n var n = e.isSelected,\n o = e.mode,\n c = e.onClick;\n return r.createElement(u, {\n mode: o,\n onClick: c\n }, function (e) {\n return r.createElement(t.Tooltip, {\n ariaControlsSuffix: \"selection-mode-switch\",\n position: t.Position.BottomCenter,\n target: r.createElement(t.MinimalButton, {\n ariaLabel: e.label,\n isSelected: n,\n onClick: e.onClick\n }, e.icon),\n content: function content() {\n return e.label;\n },\n offset: s\n });\n });\n},\n d = function d(e) {\n var t = e.children,\n n = e.mode,\n o = e.store,\n c = n === o.get(\"selectionMode\");\n return (t || function (e) {\n return r.createElement(a, {\n isSelected: c,\n mode: e.mode,\n onClick: e.onClick\n });\n })({\n isSelected: c,\n mode: n,\n onClick: function onClick() {\n return o.update(\"selectionMode\", n);\n }\n });\n},\n m = function m(e) {\n var n = e.isSelected,\n o = e.mode,\n c = e.onClick;\n return r.createElement(u, {\n mode: o,\n onClick: c\n }, function (e) {\n return r.createElement(t.MenuItem, {\n checked: n,\n icon: e.icon,\n onClick: e.onClick\n }, e.label);\n });\n},\n f = function f(e) {\n var t = e.store,\n n = r.useRef(null),\n o = r.useState(exports.SelectionMode.Text),\n c = o[0],\n i = o[1],\n l = r.useRef({\n top: 0,\n left: 0,\n x: 0,\n y: 0\n }),\n u = function u(e) {\n var t = n.current;\n t && (t.scrollTop = l.current.top - (e.clientY - l.current.y), t.scrollLeft = l.current.left - (e.clientX - l.current.x));\n },\n s = function s() {\n var e = n.current;\n e && (e.classList.add(\"rpv-selection-mode__grab\"), e.classList.remove(\"rpv-selection-mode__grabbing\"), document.removeEventListener(\"mousemove\", u), document.removeEventListener(\"mouseup\", s));\n },\n a = function a(e) {\n var t = n.current;\n t && c !== exports.SelectionMode.Text && (t.classList.remove(\"rpv-selection-mode__grab\"), t.classList.add(\"rpv-selection-mode__grabbing\"), e.preventDefault(), e.stopPropagation(), l.current = {\n left: t.scrollLeft,\n top: t.scrollTop,\n x: e.clientX,\n y: e.clientY\n }, document.addEventListener(\"mousemove\", u), document.addEventListener(\"mouseup\", s));\n },\n d = function d(e) {\n n.current = e();\n },\n m = function m(e) {\n i(e);\n };\n\n return r.useEffect(function () {\n var e = n.current;\n if (e) return c === exports.SelectionMode.Hand ? e.classList.add(\"rpv-selection-mode__grab\") : e.classList.remove(\"rpv-selection-mode__grab\"), e.addEventListener(\"mousedown\", a), function () {\n e.removeEventListener(\"mousedown\", a);\n };\n }, [c]), r.useEffect(function () {\n return t.subscribe(\"getPagesContainer\", d), t.subscribe(\"selectionMode\", m), function () {\n t.unsubscribe(\"getPagesContainer\", d), t.unsubscribe(\"selectionMode\", m);\n };\n }, []), r.createElement(r.Fragment, null);\n};\n\nexports.HandToolIcon = i, exports.TextSelectionIcon = l, exports.selectionModePlugin = function (e) {\n var n = r.useMemo(function () {\n return t.createStore();\n }, []),\n o = function o(e) {\n return r.createElement(d, _c({}, e, {\n store: n\n }));\n };\n\n return {\n install: function install(t) {\n n.update(\"selectionMode\", e && e.selectionMode ? e.selectionMode : exports.SelectionMode.Text), n.update(\"getPagesContainer\", t.getPagesContainer);\n },\n renderViewer: function renderViewer(e) {\n var t = e.slot;\n return t.subSlot && t.subSlot.children && (t.subSlot.children = r.createElement(r.Fragment, null, r.createElement(f, {\n store: n\n }), t.subSlot.children)), t;\n },\n SwitchSelectionMode: o,\n SwitchSelectionModeButton: function SwitchSelectionModeButton(e) {\n return r.createElement(o, {\n mode: e.mode\n }, function (e) {\n return r.createElement(a, {\n isSelected: e.isSelected,\n mode: e.mode,\n onClick: function onClick() {\n e.onClick();\n }\n });\n });\n },\n SwitchSelectionModeMenuItem: function SwitchSelectionModeMenuItem(e) {\n return r.createElement(o, {\n mode: e.mode\n }, function (t) {\n return r.createElement(m, {\n isSelected: t.isSelected,\n mode: t.mode,\n onClick: function onClick() {\n t.onClick(), e.onClick();\n }\n });\n });\n }\n };\n};","/**\n * A React component to view a PDF document\n *\n * @see https://react-pdf-viewer.dev\n * @license https://react-pdf-viewer.dev/license\n * @copyright 2019-2021 Nguyen Huu Phuoc \n */\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/selection-mode.min.js');\n} else {\n module.exports = require('./cjs/selection-mode.js');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n});\n\nvar e = require(\"react\"),\n t = require(\"@react-pdf-viewer/core\");\n\nfunction n(e) {\n if (e && e.__esModule) return e;\n var t = Object.create(null);\n return e && Object.keys(e).forEach(function (n) {\n if (\"default\" !== n) {\n var r = Object.getOwnPropertyDescriptor(e, n);\n Object.defineProperty(t, n, r.get ? r : {\n enumerable: !0,\n get: function get() {\n return e[n];\n }\n });\n }\n }), t.default = e, Object.freeze(t);\n}\n\nvar r = n(e),\n _c = function c() {\n return (_c = Object.assign || function (e) {\n for (var t, n = 1, r = arguments.length; n < r; n++) {\n for (var c in t = arguments[n]) {\n Object.prototype.hasOwnProperty.call(t, c) && (e[c] = t[c]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n},\n o = function o() {\n return r.createElement(t.Icon, {\n size: 16\n }, r.createElement(\"path\", {\n d: \"M19.5,15.106l2.4-2.4a1,1,0,0,0,0-1.414l-2.4-2.4V5.5a1,1,0,0,0-1-1H15.106l-2.4-2.4a1,1,0,0,0-1.414,0l-2.4,2.4H5.5a1,1,0,0,0-1,1V8.894l-2.4,2.4a1,1,0,0,0,0,1.414l2.4,2.4V18.5a1,1,0,0,0,1,1H8.894l2.4,2.4a1,1,0,0,0,1.414,0l2.4-2.4H18.5a1,1,0,0,0,1-1Z\"\n }), r.createElement(\"path\", {\n d: \"M10,6.349a6,6,0,0,1,0,11.3,6,6,0,1,0,0-11.3Z\"\n }));\n},\n a = function a() {\n return r.createElement(t.Icon, {\n size: 16\n }, r.createElement(\"path\", {\n d: \"M19.491,15.106l2.4-2.4a1,1,0,0,0,0-1.414l-2.4-2.4V5.5a1,1,0,0,0-1-1H15.1L12.7,2.1a1,1,0,0,0-1.414,0l-2.4,2.4H5.491a1,1,0,0,0-1,1V8.894l-2.4,2.4a1,1,0,0,0,0,1.414l2.4,2.4V18.5a1,1,0,0,0,1,1H8.885l2.4,2.4a1,1,0,0,0,1.414,0l2.4-2.4h3.394a1,1,0,0,0,1-1Z\"\n }), r.createElement(\"path\", {\n d: \"M11.491,6c4,0,6,2.686,6,6s-2,6-6,6Z\"\n }));\n},\n l = {\n left: 0,\n top: 8\n},\n i = function i(e) {\n var n = e.onClick,\n c = r.useContext(t.ThemeContext),\n i = r.useContext(t.LocalizationContext),\n u = \"dark\" === c.currentTheme,\n h = i && i.theme ? u ? i.theme.switchLightTheme : i.theme.switchDarkTheme : u ? \"Switch to the light theme\" : \"Switch to the dark theme\";\n return r.createElement(t.Tooltip, {\n ariaControlsSuffix: \"theme-switch\",\n position: t.Position.BottomCenter,\n target: r.createElement(t.MinimalButton, {\n ariaLabel: h,\n onClick: n\n }, u ? r.createElement(a, null) : r.createElement(o, null)),\n content: function content() {\n return h;\n },\n offset: l\n });\n},\n u = function u(e) {\n var n = e.children,\n c = r.useContext(t.ThemeContext);\n return (n || function (e) {\n return r.createElement(i, {\n onClick: e.onClick\n });\n })({\n onClick: function onClick() {\n return c.setCurrentTheme(\"dark\" === c.currentTheme ? \"light\" : \"dark\");\n }\n });\n},\n h = function h(e) {\n var n = e.onClick,\n c = r.useContext(t.ThemeContext),\n l = r.useContext(t.LocalizationContext),\n i = \"dark\" === c.currentTheme,\n u = l && l.theme ? i ? l.theme.switchLightTheme : l.theme.switchDarkTheme : i ? \"Switch to the light theme\" : \"Switch to the dark theme\";\n return r.createElement(t.MenuItem, {\n icon: i ? r.createElement(a, null) : r.createElement(o, null),\n onClick: n\n }, u);\n};\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n\n\nexports.DarkIcon = o, exports.LightIcon = a, exports.themePlugin = function () {\n var e = function e(_e) {\n return r.createElement(u, _c({}, _e));\n };\n\n return {\n SwitchTheme: e,\n SwitchThemeButton: function SwitchThemeButton() {\n return r.createElement(e, null, function (e) {\n return r.createElement(i, _c({}, e));\n });\n },\n SwitchThemeMenuItem: function SwitchThemeMenuItem(t) {\n return r.createElement(e, null, function (e) {\n return r.createElement(h, {\n onClick: function onClick() {\n e.onClick(), t.onClick();\n }\n });\n });\n }\n };\n};","/**\n * A React component to view a PDF document\n *\n * @see https://react-pdf-viewer.dev\n * @license https://react-pdf-viewer.dev/license\n * @copyright 2019-2021 Nguyen Huu Phuoc \n */\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/theme.min.js');\n} else {\n module.exports = require('./cjs/theme.js');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n});\n\nvar e = require(\"react\"),\n t = require(\"@react-pdf-viewer/full-screen\"),\n r = require(\"@react-pdf-viewer/get-file\"),\n n = require(\"@react-pdf-viewer/open\"),\n o = require(\"@react-pdf-viewer/page-navigation\"),\n l = require(\"@react-pdf-viewer/print\"),\n a = require(\"@react-pdf-viewer/properties\"),\n i = require(\"@react-pdf-viewer/rotate\"),\n c = require(\"@react-pdf-viewer/scroll-mode\"),\n m = require(\"@react-pdf-viewer/search\"),\n u = require(\"@react-pdf-viewer/selection-mode\"),\n s = require(\"@react-pdf-viewer/theme\"),\n d = require(\"@react-pdf-viewer/zoom\"),\n p = require(\"@react-pdf-viewer/core\");\n\nfunction v(e) {\n if (e && e.__esModule) return e;\n var t = Object.create(null);\n return e && Object.keys(e).forEach(function (r) {\n if (\"default\" !== r) {\n var n = Object.getOwnPropertyDescriptor(e, r);\n Object.defineProperty(t, r, n.get ? n : {\n enumerable: !0,\n get: function get() {\n return e[r];\n }\n });\n }\n }), t.default = e, Object.freeze(t);\n}\n\nvar _ = v(e),\n _E = function E() {\n return (_E = Object.assign || function (e) {\n for (var t, r = 1, n = arguments.length; r < n; r++) {\n for (var o in t = arguments[r]) {\n Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n},\n P = function P() {\n return _.createElement(p.Icon, {\n size: 16\n }, _.createElement(\"path\", {\n d: \"M12,0.5c1.381,0,2.5,1.119,2.5,2.5S13.381,5.5,12,5.5S9.5,4.381,9.5,3S10.619,0.5,12,0.5z\\n M12,9.5\\n c1.381,0,2.5,1.119,2.5,2.5s-1.119,2.5-2.5,2.5S9.5,13.381,9.5,12S10.619,9.5,12,9.5z\\n M12,18.5c1.381,0,2.5,1.119,2.5,2.5\\n s-1.119,2.5-2.5,2.5S9.5,22.381,9.5,21S10.619,18.5,12,18.5z\"\n }));\n},\n g = {\n left: 0,\n top: 8\n},\n M = function M(e) {\n var t = e.toolbarSlot,\n r = _.useContext(p.LocalizationContext),\n n = t.DownloadMenuItem,\n o = t.EnterFullScreenMenuItem,\n l = t.GoToFirstPageMenuItem,\n a = t.GoToLastPageMenuItem,\n i = t.GoToNextPageMenuItem,\n m = t.GoToPreviousPageMenuItem,\n s = t.OpenMenuItem,\n d = t.PrintMenuItem,\n v = t.RotateBackwardMenuItem,\n E = t.RotateForwardMenuItem,\n M = t.ShowPropertiesMenuItem,\n h = t.SwitchScrollModeMenuItem,\n f = t.SwitchSelectionModeMenuItem,\n S = t.SwitchThemeMenuItem;\n\n return _.createElement(p.Popover, {\n ariaControlsSuffix: \"toolbar-more-actions\",\n ariaHasPopup: \"menu\",\n position: p.Position.BottomRight,\n target: function target(e, t) {\n var n = r && r.toolbar ? r.toolbar.moreActions : \"More actions\";\n return _.createElement(p.Tooltip, {\n ariaControlsSuffix: \"toolbar-more-actions\",\n position: p.Position.BottomRight,\n target: _.createElement(p.MinimalButton, {\n ariaLabel: n,\n onClick: e,\n isSelected: t\n }, _.createElement(P, null)),\n content: function content() {\n return n;\n },\n offset: g\n });\n },\n content: function content(e) {\n return _.createElement(p.Menu, null, _.createElement(\"div\", {\n className: \"rpv-core__display--block rpv-core__display--hidden-medium\"\n }, _.createElement(S, {\n onClick: e\n })), _.createElement(\"div\", {\n className: \"rpv-core__display--block rpv-core__display--hidden-medium\"\n }, _.createElement(o, {\n onClick: e\n })), _.createElement(\"div\", {\n className: \"rpv-core__display--block rpv-core__display--hidden-medium\"\n }, _.createElement(s, null)), _.createElement(\"div\", {\n className: \"rpv-core__display--block rpv-core__display--hidden-medium\"\n }, _.createElement(d, {\n onClick: e\n })), _.createElement(\"div\", {\n className: \"rpv-core__display--block rpv-core__display--hidden-medium\"\n }, _.createElement(n, {\n onClick: e\n })), _.createElement(\"div\", {\n className: \"rpv-core__display--block rpv-core__display--hidden-medium\"\n }, _.createElement(p.MenuDivider, null)), _.createElement(l, {\n onClick: e\n }), _.createElement(\"div\", {\n className: \"rpv-core__display--block rpv-core__display--hidden-medium\"\n }, _.createElement(m, {\n onClick: e\n })), _.createElement(\"div\", {\n className: \"rpv-core__display--block rpv-core__display--hidden-medium\"\n }, _.createElement(i, {\n onClick: e\n })), _.createElement(a, {\n onClick: e\n }), _.createElement(p.MenuDivider, null), _.createElement(E, {\n onClick: e\n }), _.createElement(v, {\n onClick: e\n }), _.createElement(p.MenuDivider, null), _.createElement(f, {\n mode: u.SelectionMode.Text,\n onClick: e\n }), _.createElement(f, {\n mode: u.SelectionMode.Hand,\n onClick: e\n }), _.createElement(p.MenuDivider, null), _.createElement(h, {\n mode: c.ScrollMode.Vertical,\n onClick: e\n }), _.createElement(h, {\n mode: c.ScrollMode.Horizontal,\n onClick: e\n }), _.createElement(h, {\n mode: c.ScrollMode.Wrapped,\n onClick: e\n }), _.createElement(p.MenuDivider, null), _.createElement(M, {\n onClick: e\n }));\n },\n offset: g,\n closeOnClickOutside: !0,\n closeOnEscape: !0\n });\n},\n h = function h(e) {\n var t = e.CurrentPageInput,\n r = e.Download,\n n = e.EnterFullScreen,\n o = e.GoToNextPage,\n l = e.GoToPreviousPage,\n a = e.NumberOfPages,\n i = e.Open,\n c = e.Print,\n m = e.ShowSearchPopover,\n u = e.SwitchTheme,\n s = e.Zoom,\n d = e.ZoomIn,\n p = e.ZoomOut;\n return _.createElement(\"div\", {\n className: \"rpv-toolbar\",\n role: \"toolbar\",\n \"aria-orientation\": \"horizontal\"\n }, _.createElement(\"div\", {\n className: \"rpv-toolbar__left\"\n }, _.createElement(\"div\", {\n className: \"rpv-toolbar__item\"\n }, _.createElement(m, null)), _.createElement(\"div\", {\n className: \"rpv-core__display--hidden rpv-core__display--block-small\"\n }, _.createElement(\"div\", {\n className: \"rpv-toolbar__item\"\n }, _.createElement(l, null))), _.createElement(\"div\", {\n className: \"rpv-toolbar__item\"\n }, _.createElement(t, null), \" \", _.createElement(\"span\", {\n className: \"rpv-toolbar__label\"\n }, \"/ \", _.createElement(a, null))), _.createElement(\"div\", {\n className: \"rpv-core__display--hidden rpv-core__display--block-small\"\n }, _.createElement(\"div\", {\n className: \"rpv-toolbar__item\"\n }, _.createElement(o, null)))), _.createElement(\"div\", {\n className: \"rpv-toolbar__center\"\n }, _.createElement(\"div\", {\n className: \"rpv-toolbar__item\"\n }, _.createElement(p, null)), _.createElement(\"div\", {\n className: \"rpv-core__display--hidden rpv-core__display--block-small\"\n }, _.createElement(\"div\", {\n className: \"rpv-toolbar__item\"\n }, _.createElement(s, null))), _.createElement(\"div\", {\n className: \"rpv-toolbar__item\"\n }, _.createElement(d, null))), _.createElement(\"div\", {\n className: \"rpv-toolbar__right\"\n }, _.createElement(\"div\", {\n className: \"rpv-core__display--hidden rpv-core__display--block-medium\"\n }, _.createElement(\"div\", {\n className: \"rpv-toolbar__item\"\n }, _.createElement(u, null))), _.createElement(\"div\", {\n className: \"rpv-core__display--hidden rpv-core__display--block-medium\"\n }, _.createElement(\"div\", {\n className: \"rpv-toolbar__item\"\n }, _.createElement(n, null))), _.createElement(\"div\", {\n className: \"rpv-core__display--hidden rpv-core__display--block-medium\"\n }, _.createElement(\"div\", {\n className: \"rpv-toolbar__item\"\n }, _.createElement(i, null))), _.createElement(\"div\", {\n className: \"rpv-core__display--hidden rpv-core__display--block-medium\"\n }, _.createElement(\"div\", {\n className: \"rpv-toolbar__item\"\n }, _.createElement(r, null))), _.createElement(\"div\", {\n className: \"rpv-core__display--hidden rpv-core__display--block-medium\"\n }, _.createElement(\"div\", {\n className: \"rpv-toolbar__item\"\n }, _.createElement(c, null))), _.createElement(\"div\", {\n className: \"rpv-toolbar__item\"\n }, _.createElement(M, {\n toolbarSlot: e\n }))));\n},\n f = function f(e) {\n var t = e.children,\n r = e.slot;\n return (t || h)(r);\n};\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n\n\nexports.MoreActionsPopover = M, exports.MoreIcon = P, exports.toolbarPlugin = function (e) {\n var p = t.fullScreenPlugin(e ? e.fullScreenPlugin : {}),\n v = r.getFilePlugin(e ? e.getFilePlugin : {}),\n P = n.openPlugin(),\n g = o.pageNavigationPlugin(),\n M = l.printPlugin(e ? e.printPlugin : {}),\n h = a.propertiesPlugin(),\n S = i.rotatePlugin(),\n I = c.scrollModePlugin(e ? e.scrollModePlugin : {}),\n b = m.searchPlugin(e ? e.searchPlugin : {}),\n w = u.selectionModePlugin(e ? e.selectionModePlugin : {}),\n N = s.themePlugin(),\n y = d.zoomPlugin(e ? e.zoomPlugin : {}),\n k = [p, v, P, g, M, h, S, I, b, w, N, y];\n return {\n fullScreenPluginInstance: p,\n getFilePluginInstance: v,\n openPluginInstance: P,\n pageNavigationPluginInstance: g,\n printPluginInstance: M,\n propertiesPluginInstance: h,\n rotatePluginInstance: S,\n scrollModePluginInstance: I,\n searchPluginInstance: b,\n selectionModePluginInstance: w,\n themePluginInstance: N,\n zoomPluginInstance: y,\n install: function install(e) {\n k.forEach(function (t) {\n t.install && t.install(e);\n });\n },\n renderViewer: function renderViewer(e) {\n var t = e.slot;\n return k.forEach(function (r) {\n r.renderViewer && (t = r.renderViewer(_E(_E({}, e), {\n slot: t\n })));\n }), t;\n },\n uninstall: function uninstall(e) {\n k.forEach(function (t) {\n t.uninstall && t.uninstall(e);\n });\n },\n onDocumentLoad: function onDocumentLoad(e) {\n k.forEach(function (t) {\n t.onDocumentLoad && t.onDocumentLoad(e);\n });\n },\n onTextLayerRender: function onTextLayerRender(e) {\n k.forEach(function (t) {\n t.onTextLayerRender && t.onTextLayerRender(e);\n });\n },\n onViewerStateChange: function onViewerStateChange(e) {\n var t = e;\n return k.forEach(function (e) {\n e.onViewerStateChange && (t = e.onViewerStateChange(t));\n }), t;\n },\n Toolbar: function Toolbar(e) {\n var t = p.EnterFullScreen,\n r = p.EnterFullScreenMenuItem,\n n = v.Download,\n o = v.DownloadMenuItem,\n l = P.Open,\n a = P.OpenMenuItem,\n i = g.CurrentPageInput,\n c = g.CurrentPageLabel,\n m = g.GoToFirstPage,\n u = g.GoToFirstPageMenuItem,\n s = g.GoToLastPage,\n d = g.GoToLastPageMenuItem,\n k = g.GoToNextPage,\n T = g.GoToNextPageMenuItem,\n C = g.GoToPreviousPage,\n O = g.GoToPreviousPageMenuItem,\n G = M.Print,\n x = M.PrintMenuItem,\n F = h.ShowProperties,\n D = h.ShowPropertiesMenuItem,\n L = S.Rotate,\n q = S.RotateBackwardMenuItem,\n R = S.RotateForwardMenuItem,\n Z = I.SwitchScrollMode,\n z = I.SwitchScrollModeMenuItem,\n j = b.Search,\n V = b.ShowSearchPopover,\n B = w.SwitchSelectionMode,\n H = w.SwitchSelectionModeMenuItem,\n A = N.SwitchTheme,\n W = N.SwitchThemeMenuItem,\n J = y.CurrentScale,\n K = y.Zoom,\n Q = y.ZoomIn,\n U = y.ZoomInMenuItem,\n X = y.ZoomOut,\n Y = y.ZoomOutMenuItem;\n return _.createElement(f, _E({}, e, {\n slot: {\n CurrentPageInput: i,\n CurrentPageLabel: c,\n CurrentScale: J,\n Download: n,\n DownloadMenuItem: o,\n EnterFullScreen: t,\n EnterFullScreenMenuItem: r,\n GoToFirstPage: m,\n GoToFirstPageMenuItem: u,\n GoToLastPage: s,\n GoToLastPageMenuItem: d,\n GoToNextPage: k,\n GoToNextPageMenuItem: T,\n GoToPreviousPage: C,\n GoToPreviousPageMenuItem: O,\n NumberOfPages: function NumberOfPages() {\n return _.createElement(c, null, function (e) {\n return _.createElement(_.Fragment, null, e.numberOfPages);\n });\n },\n Open: l,\n OpenMenuItem: a,\n Print: G,\n PrintMenuItem: x,\n Rotate: L,\n RotateBackwardMenuItem: q,\n RotateForwardMenuItem: R,\n Search: j,\n ShowProperties: F,\n ShowPropertiesMenuItem: D,\n ShowSearchPopover: V,\n SwitchScrollMode: Z,\n SwitchScrollModeMenuItem: z,\n SwitchSelectionMode: B,\n SwitchSelectionModeMenuItem: H,\n SwitchTheme: A,\n SwitchThemeMenuItem: W,\n Zoom: K,\n ZoomIn: Q,\n ZoomInMenuItem: U,\n ZoomOut: X,\n ZoomOutMenuItem: Y\n }\n }));\n }\n };\n};","/**\n * A React component to view a PDF document\n *\n * @see https://react-pdf-viewer.dev\n * @license https://react-pdf-viewer.dev/license\n * @copyright 2019-2021 Nguyen Huu Phuoc \n */\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/toolbar.min.js');\n} else {\n module.exports = require('./cjs/toolbar.js');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\n});\n\nvar e = require(\"react\"),\n t = require(\"@react-pdf-viewer/core\");\n\nfunction n(e) {\n if (e && e.__esModule) return e;\n var t = Object.create(null);\n return e && Object.keys(e).forEach(function (n) {\n if (\"default\" !== n) {\n var o = Object.getOwnPropertyDescriptor(e, n);\n Object.defineProperty(t, n, o.get ? o : {\n enumerable: !0,\n get: function get() {\n return e[n];\n }\n });\n }\n }), t.default = e, Object.freeze(t);\n}\n\nvar o = n(e),\n _r = function r() {\n return (_r = Object.assign || function (e) {\n for (var t, n = 1, o = arguments.length; n < o; n++) {\n for (var r in t = arguments[n]) {\n Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n},\n c = function c(e) {\n var t = o.useState(e.get(\"scale\") || 0),\n n = t[0],\n r = t[1],\n c = function c(e) {\n r(e);\n };\n\n return o.useEffect(function () {\n return e.subscribe(\"scale\", c), function () {\n e.unsubscribe(\"scale\", c);\n };\n }, []), {\n scale: n\n };\n},\n a = function a(e) {\n var t = e.children,\n n = e.store;\n return (t || function (e) {\n return o.createElement(o.Fragment, null, Math.round(100 * e.scale) + \"%\");\n })({\n scale: c(n).scale\n });\n},\n u = [.1, .2, .3, .4, .5, .6, .7, .8, .9, 1, 1.1, 1.3, 1.5, 1.7, 1.9, 2.1, 2.4, 2.7, 3, 3.3, 3.7, 4.1, 4.6, 5.1, 5.7, 6.3, 7, 7.7, 8.5, 9.4, 10],\n i = function i(e) {\n return u.find(function (t) {\n return t > e;\n }) || e;\n},\n l = function l(e) {\n var t = u.findIndex(function (t) {\n return t >= e;\n });\n return -1 === t || 0 === t ? e : u[t - 1];\n},\n m = function m(e) {\n var n = e.containerRef,\n r = e.store,\n c = function c(e) {\n if (!e.shiftKey && !e.altKey && (t.isMac() ? e.metaKey : e.ctrlKey)) {\n var o = n.current;\n\n if (o && document.activeElement && o.contains(document.activeElement)) {\n var c = r.get(\"zoom\");\n\n if (c) {\n var a = r.get(\"scale\") || 1,\n u = 1;\n\n switch (e.key) {\n case \"-\":\n u = l(a);\n break;\n\n case \"=\":\n u = i(a);\n break;\n\n case \"0\":\n u = 1;\n break;\n\n default:\n u = a;\n }\n\n u !== a && (e.preventDefault(), c(u));\n }\n }\n }\n };\n\n return o.useEffect(function () {\n if (n.current) return document.addEventListener(\"keydown\", c), function () {\n document.removeEventListener(\"keydown\", c);\n };\n }, [n.current]), o.createElement(o.Fragment, null);\n},\n s = [.5, .75, 1, 1.25, 1.5, 2, 3, 4],\n f = {\n left: 0,\n top: 8\n},\n p = function p(e) {\n var n = e.scale,\n r = e.onZoom,\n c = o.useContext(t.LocalizationContext),\n a = c && c.zoom ? c.zoom.zoomDocument : \"Zoom document\";\n return o.createElement(t.Popover, {\n ariaControlsSuffix: \"zoom\",\n ariaHasPopup: \"menu\",\n position: t.Position.BottomCenter,\n target: function target(e) {\n return o.createElement(t.MinimalButton, {\n ariaLabel: a,\n onClick: function onClick() {\n e();\n }\n }, o.createElement(\"span\", {\n className: \"rpv-zoom__popover-target\"\n }, o.createElement(\"span\", {\n className: \"rpv-zoom__popover-target-scale\"\n }, Math.round(100 * n), \"%\"), o.createElement(\"span\", {\n className: \"rpv-zoom__popover-target-arrow\"\n })));\n },\n content: function content(e) {\n return o.createElement(t.Menu, null, Object.keys(t.SpecialZoomLevel).map(function (n) {\n var a = n;\n return o.createElement(t.MenuItem, {\n key: a,\n onClick: function onClick() {\n e(), r(a);\n }\n }, function (e) {\n switch (e) {\n case t.SpecialZoomLevel.ActualSize:\n return c && c.zoom ? c.zoom.actualSize : \"Actual size\";\n\n case t.SpecialZoomLevel.PageFit:\n return c && c.zoom ? c.zoom.pageFit : \"Page fit\";\n\n case t.SpecialZoomLevel.PageWidth:\n return c && c.zoom ? c.zoom.pageWidth : \"Page width\";\n }\n }(a));\n }), o.createElement(t.MenuDivider, null), s.map(function (n) {\n return o.createElement(t.MenuItem, {\n key: n,\n onClick: function onClick() {\n e(), r(n);\n }\n }, Math.round(100 * n) + \"%\");\n }));\n },\n offset: f,\n closeOnClickOutside: !0,\n closeOnEscape: !0\n });\n},\n v = function v(e) {\n var t = e.children,\n n = e.store;\n return (t || function (e) {\n return o.createElement(p, {\n scale: e.scale,\n onZoom: e.onZoom\n });\n })({\n scale: c(n).scale,\n onZoom: function onZoom(e) {\n var t = n.get(\"zoom\");\n t && t(e);\n }\n });\n},\n E = function E() {\n return o.createElement(t.Icon, {\n size: 16\n }, o.createElement(\"path\", {\n d: \"M10.5,0.499c5.523,0,10,4.477,10,10s-4.477,10-10,10s-10-4.477-10-10S4.977,0.499,10.5,0.499z\\n M23.5,23.499\\n l-5.929-5.929\\n M5.5,10.499h10\\n M10.5,5.499v10\"\n }));\n},\n z = {\n left: 0,\n top: 8\n},\n C = function C(e) {\n var n = e.enableShortcuts,\n r = e.onClick,\n c = o.useContext(t.LocalizationContext),\n a = c && c.zoom ? c.zoom.zoomIn : \"Zoom in\",\n u = n ? t.isMac() ? \"Meta+=\" : \"Ctrl+=\" : \"\";\n return o.createElement(t.Tooltip, {\n ariaControlsSuffix: \"zoom-in\",\n position: t.Position.BottomCenter,\n target: o.createElement(t.MinimalButton, {\n ariaKeyShortcuts: u,\n ariaLabel: a,\n onClick: r\n }, o.createElement(E, null)),\n content: function content() {\n return a;\n },\n offset: z\n });\n},\n d = function d(e) {\n var t = e.children,\n n = e.enableShortcuts,\n o = e.store,\n r = c(o).scale;\n return (t || C)({\n enableShortcuts: n,\n onClick: function onClick() {\n var e = o.get(\"zoom\");\n e && e(i(r));\n }\n });\n},\n h = function h() {\n return o.createElement(t.Icon, {\n size: 16\n }, o.createElement(\"path\", {\n d: \"M10.5,0.499c5.523,0,10,4.477,10,10s-4.477,10-10,10s-10-4.477-10-10S4.977,0.499,10.5,0.499z\\n M23.5,23.499\\n l-5.929-5.929\\n M5.5,10.499h10\"\n }));\n},\n b = {\n left: 0,\n top: 8\n},\n g = function g(e) {\n var n = e.enableShortcuts,\n r = e.onClick,\n c = o.useContext(t.LocalizationContext),\n a = c && c.zoom ? c.zoom.zoomOut : \"Zoom out\",\n u = n ? t.isMac() ? \"Meta+-\" : \"Ctrl+-\" : \"\";\n return o.createElement(t.Tooltip, {\n ariaControlsSuffix: \"zoom-out\",\n position: t.Position.BottomCenter,\n target: o.createElement(t.MinimalButton, {\n ariaKeyShortcuts: u,\n ariaLabel: a,\n onClick: r\n }, o.createElement(h, null)),\n content: function content() {\n return a;\n },\n offset: b\n });\n},\n k = function k(e) {\n var t = e.children,\n n = e.enableShortcuts,\n o = e.store,\n r = c(o).scale;\n return (t || g)({\n enableShortcuts: n,\n onClick: function onClick() {\n var e = o.get(\"zoom\");\n e && e(l(r));\n }\n });\n},\n M = function M(e) {\n var n = e.onClick,\n r = o.useContext(t.LocalizationContext),\n c = r && r.zoom ? r.zoom.zoomIn : \"Zoom in\";\n return o.createElement(t.MenuItem, {\n icon: o.createElement(E, null),\n onClick: n\n }, c);\n},\n S = function S(e) {\n var n = e.onClick,\n r = o.useContext(t.LocalizationContext),\n c = r && r.zoom ? r.zoom.zoomOut : \"Zoom out\";\n return o.createElement(t.MenuItem, {\n icon: o.createElement(h, null),\n onClick: n\n }, c);\n};\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n\n\nexports.ZoomInIcon = E, exports.ZoomOutIcon = h, exports.zoomPlugin = function (e) {\n var n = o.useMemo(function () {\n return Object.assign({}, {\n enableShortcuts: !0\n }, e);\n }, []),\n c = o.useMemo(function () {\n return t.createStore({});\n }, []),\n u = function u(e) {\n return o.createElement(d, _r({\n enableShortcuts: n.enableShortcuts\n }, e, {\n store: c\n }));\n },\n i = function i(e) {\n return o.createElement(k, _r({\n enableShortcuts: n.enableShortcuts\n }, e, {\n store: c\n }));\n },\n l = function l(e) {\n return o.createElement(v, _r({}, e, {\n store: c\n }));\n };\n\n return {\n renderViewer: function renderViewer(e) {\n var t = e.slot;\n if (!n.enableShortcuts) return t;\n var a = {\n children: o.createElement(o.Fragment, null, o.createElement(m, {\n containerRef: e.containerRef,\n store: c\n }), t.children)\n };\n return _r(_r({}, t), a);\n },\n install: function install(e) {\n c.update(\"zoom\", e.zoom);\n },\n onViewerStateChange: function onViewerStateChange(e) {\n return c.update(\"scale\", e.scale), e;\n },\n zoomTo: function zoomTo(e) {\n var t = c.get(\"zoom\");\n t && t(e);\n },\n CurrentScale: function CurrentScale(e) {\n return o.createElement(a, _r({}, e, {\n store: c\n }));\n },\n ZoomIn: u,\n ZoomInButton: function ZoomInButton() {\n return o.createElement(u, null, function (e) {\n return o.createElement(C, _r({}, e));\n });\n },\n ZoomInMenuItem: function ZoomInMenuItem(e) {\n return o.createElement(u, null, function (t) {\n return o.createElement(M, {\n onClick: function onClick() {\n t.onClick(), e.onClick();\n }\n });\n });\n },\n ZoomOut: i,\n ZoomOutButton: function ZoomOutButton() {\n return o.createElement(i, null, function (e) {\n return o.createElement(g, _r({}, e));\n });\n },\n ZoomOutMenuItem: function ZoomOutMenuItem(e) {\n return o.createElement(i, null, function (t) {\n return o.createElement(S, {\n onClick: function onClick() {\n t.onClick(), e.onClick();\n }\n });\n });\n },\n Zoom: l,\n ZoomPopover: function ZoomPopover() {\n return o.createElement(l, null, function (e) {\n return o.createElement(p, _r({}, e));\n });\n }\n };\n};","/**\n * A React component to view a PDF document\n *\n * @see https://react-pdf-viewer.dev\n * @license https://react-pdf-viewer.dev/license\n * @copyright 2019-2021 Nguyen Huu Phuoc \n */\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/zoom.min.js');\n} else {\n module.exports = require('./cjs/zoom.js');\n}","import { useEffect, useRef } from 'react';\n/**\n * Creates a `Ref` whose value is updated in an effect, ensuring the most recent\n * value is the one rendered with. Generally only required for Concurrent mode usage\n * where previous work in `render()` may be discarded befor being used.\n *\n * This is safe to access in an event handler.\n *\n * @param value The `Ref` value\n */\n\nfunction useCommittedRef(value) {\n var ref = useRef(value);\n useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref;\n}\n\nexport default useCommittedRef;","import { useCallback } from 'react';\nimport useCommittedRef from './useCommittedRef';\nexport default function useEventCallback(fn) {\n var ref = useCommittedRef(fn);\n return useCallback(function () {\n return ref.current && ref.current.apply(ref, arguments);\n }, [ref]);\n}","import { useReducer } from 'react';\n/**\n * Returns a function that triggers a component update. the hook equivalent to\n * `this.forceUpdate()` in a class component. In most cases using a state value directly\n * is preferable but may be required in some advanced usages of refs for interop or\n * when direct DOM manipulation is required.\n *\n * ```ts\n * const forceUpdate = useForceUpdate();\n *\n * const updateOnClick = useCallback(() => {\n * forceUpdate()\n * }, [forceUpdate])\n *\n * return \n * ```\n */\n\nexport default function useForceUpdate() {\n // The toggling state value is designed to defeat React optimizations for skipping\n // updates when they are stricting equal to the last state value\n var _useReducer = useReducer(function (state) {\n return !state;\n }, false),\n dispatch = _useReducer[1];\n\n return dispatch;\n}","import { useMemo } from 'react';\n\nvar toFnRef = function toFnRef(ref) {\n return !ref || typeof ref === 'function' ? ref : function (value) {\n ref.current = value;\n };\n};\n\nexport function mergeRefs(refA, refB) {\n var a = toFnRef(refA);\n var b = toFnRef(refB);\n return function (value) {\n if (a) a(value);\n if (b) b(value);\n };\n}\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return \n * \n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\n\n// Name the function so it is clearer in the documentation\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import invariant from 'invariant';\n\nvar noop = function noop() {};\n\nfunction readOnlyPropType(handler, name) {\n return function (props, propName) {\n if (props[propName] !== undefined) {\n if (!props[handler]) {\n return new Error(\"You have provided a `\" + propName + \"` prop to `\" + name + \"` \" + (\"without an `\" + handler + \"` handler prop. This will render a read-only field. \") + (\"If the field should be mutable use `\" + defaultKey(propName) + \"`. \") + (\"Otherwise, set `\" + handler + \"`.\"));\n }\n }\n };\n}\n\nexport function uncontrolledPropTypes(controlledValues, displayName) {\n var propTypes = {};\n Object.keys(controlledValues).forEach(function (prop) {\n // add default propTypes for folks that use runtime checks\n propTypes[defaultKey(prop)] = noop;\n\n if (process.env.NODE_ENV !== 'production') {\n var handler = controlledValues[prop];\n !(typeof handler === 'string' && handler.trim().length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop) : invariant(false) : void 0;\n propTypes[prop] = readOnlyPropType(handler, displayName);\n }\n });\n return propTypes;\n}\nexport function isProp(props, prop) {\n return props[prop] !== undefined;\n}\nexport function defaultKey(key) {\n return 'default' + key.charAt(0).toUpperCase() + key.substr(1);\n}\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nexport function canAcceptRef(component) {\n return !!component && (typeof component !== 'function' || component.prototype && component.prototype.isReactComponent);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\n\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n\n return (hint === \"string\" ? String : Number)(input);\n}\n\nimport { useCallback, useRef, useState } from 'react';\nimport * as Utils from './utils';\n\nfunction useUncontrolledProp(propValue, defaultValue, handler) {\n var wasPropRef = useRef(propValue !== undefined);\n\n var _useState = useState(defaultValue),\n stateValue = _useState[0],\n setState = _useState[1];\n\n var isProp = propValue !== undefined;\n var wasProp = wasPropRef.current;\n wasPropRef.current = isProp;\n /**\n * If a prop switches from controlled to Uncontrolled\n * reset its value to the defaultValue\n */\n\n if (!isProp && wasProp && stateValue !== defaultValue) {\n setState(defaultValue);\n }\n\n return [isProp ? propValue : stateValue, useCallback(function (value) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (handler) handler.apply(void 0, [value].concat(args));\n setState(value);\n }, [handler])];\n}\n\nexport { useUncontrolledProp };\nexport default function useUncontrolled(props, config) {\n return Object.keys(config).reduce(function (result, fieldName) {\n var _extends2;\n\n var _ref = result,\n defaultValue = _ref[Utils.defaultKey(fieldName)],\n propsValue = _ref[fieldName],\n rest = _objectWithoutPropertiesLoose(_ref, [Utils.defaultKey(fieldName), fieldName].map(_toPropertyKey));\n\n var handlerName = config[fieldName];\n\n var _useUncontrolledProp = useUncontrolledProp(propsValue, defaultValue, props[handlerName]),\n value = _useUncontrolledProp[0],\n handler = _useUncontrolledProp[1];\n\n return _extends({}, rest, (_extends2 = {}, _extends2[fieldName] = value, _extends2[handlerName] = handler, _extends2));\n }, props);\n}","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar bind = require('../internals/function-bind-context');\n\nvar TypeError = global.TypeError;\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.21.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));\n return A;\n }\n});\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true }, {\n globalThis: global\n});\n","var $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-hypot -- required for testing\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, forced: BUGGY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n hypot: function hypot(value1, value2) {\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromise)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromise.prototype['finally'] !== method) {\n redefine(NativePromise.prototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimEnd = require('../internals/string-trim').end;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimEnd');\n\nvar trimEnd = FORCED ? function trimEnd() {\n return $trimEnd(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimEnd;\n\n// `String.prototype.{ trimEnd, trimRight }` methods\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// https://tc39.es/ecma262/#String.prototype.trimright\n$({ target: 'String', proto: true, name: 'trimEnd', forced: FORCED }, {\n trimEnd: trimEnd,\n trimRight: trimEnd\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimStart');\n\nvar trimStart = FORCED ? function trimStart() {\n return $trimStart(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimStart;\n\n// `String.prototype.{ trimStart, trimLeft }` methods\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// https://tc39.es/ecma262/#String.prototype.trimleft\n$({ target: 'String', proto: true, name: 'trimStart', forced: FORCED }, {\n trimStart: trimStart,\n trimLeft: trimStart\n});\n","// TODO: Remove from `core-js@4`\nrequire('../modules/es.global-this');\n","// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.all-settled.js');\n","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","/* eslint-disable no-return-assign */\nimport canUseDOM from './canUseDOM';\nexport var optionsSupported = false;\nexport var onceSupported = false;\n\ntry {\n var options = {\n get passive() {\n return optionsSupported = true;\n },\n\n get once() {\n // eslint-disable-next-line no-multi-assign\n return onceSupported = optionsSupported = true;\n }\n\n };\n\n if (canUseDOM) {\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, true);\n }\n} catch (e) {\n /* */\n}\n\n/**\n * An `addEventListener` ponyfill, supports the `once` option\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction addEventListener(node, eventName, handler, options) {\n if (options && typeof options !== 'boolean' && !onceSupported) {\n var once = options.once,\n capture = options.capture;\n var wrappedHandler = handler;\n\n if (!onceSupported && once) {\n wrappedHandler = handler.__once || function onceHandler(event) {\n this.removeEventListener(eventName, onceHandler, capture);\n handler.call(this, event);\n };\n\n handler.__once = wrappedHandler;\n }\n\n node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);\n }\n\n node.addEventListener(eventName, handler, options);\n}\n\nexport default addEventListener;","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc && doc.defaultView || window;\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n var css = '';\n var transforms = '';\n\n if (typeof property === 'string') {\n return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n }\n\n Object.keys(property).forEach(function (key) {\n var value = property[key];\n\n if (!value && value !== 0) {\n node.style.removeProperty(hyphenate(key));\n } else if (isTransform(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += hyphenate(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += \"transform: \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default style;","/**\n * A `removeEventListener` ponyfill\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction removeEventListener(node, eventName, handler, options) {\n var capture = options && typeof options !== 'boolean' ? options.capture : options;\n node.removeEventListener(eventName, handler, capture);\n\n if (handler.__once) {\n node.removeEventListener(eventName, handler.__once, capture);\n }\n}\n\nexport default removeEventListener;","import addEventListener from './addEventListener';\nimport removeEventListener from './removeEventListener';\n\nfunction listen(node, eventName, handler, options) {\n addEventListener(node, eventName, handler, options);\n return function () {\n removeEventListener(node, eventName, handler, options);\n };\n}\n\nexport default listen;","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);\n/**\n * Runs `querySelectorAll` on a given element.\n * \n * @param element the element\n * @param selector the selector\n */\n\nexport default function qsa(element, selector) {\n return toArray(element.querySelectorAll(selector));\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nvar _utils = require(\"@gatsbyjs/reach-router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\nvar _excluded = [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"];\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + (base !== null && base !== void 0 && base.endsWith(\"/\") ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var newPathName = (0, _parsePath.parsePath)(rewrittenPath).pathname; // Prefech is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n ___loader.enqueue(newPathName);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n _this2._prefetch();\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = rewriteLinkPath(to, _location.pathname);\n\n if (!isLocalLink(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\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); }\n\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; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\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\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\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\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\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\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\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\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\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\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\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\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\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\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\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}","// prefer default export if available\nconst preferDefault = m => (m && m.default) || m\n\nexports.components = {\n \"component---cache-caches-gatsby-plugin-offline-app-shell-js\": () => import(\"./../../caches/gatsby-plugin-offline/app-shell.js\" /* webpackChunkName: \"component---cache-caches-gatsby-plugin-offline-app-shell-js\" */),\n \"component---src-components-all-content-index-js\": () => import(\"./../../../src/components/AllContent/Index.js\" /* webpackChunkName: \"component---src-components-all-content-index-js\" */),\n \"component---src-components-content-categories-index-js\": () => import(\"./../../../src/components/ContentCategories/Index.js\" /* webpackChunkName: \"component---src-components-content-categories-index-js\" */),\n \"component---src-components-content-item-index-js\": () => import(\"./../../../src/components/ContentItem/Index.js\" /* webpackChunkName: \"component---src-components-content-item-index-js\" */),\n \"component---src-components-featured-content-index-js\": () => import(\"./../../../src/components/FeaturedContent/Index.js\" /* webpackChunkName: \"component---src-components-featured-content-index-js\" */),\n \"component---src-components-subject-index-js\": () => import(\"./../../../src/components/Subject/Index.js\" /* webpackChunkName: \"component---src-components-subject-index-js\" */),\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-items-preview-js\": () => import(\"./../../../src/pages/items/preview.js\" /* webpackChunkName: \"component---src-pages-items-preview-js\" */),\n \"component---src-pages-preview-js\": () => import(\"./../../../src/pages/preview.js\" /* webpackChunkName: \"component---src-pages-preview-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-image/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-matomo/gatsby-browser.js'),\n options: {\"plugins\":[],\"siteId\":\"1\",\"matomoUrl\":\"//webanalytics.leg.state.nv.us/piwik/\",\"siteUrl\":\"https://www.leg.state.nv.us\",\"matomoPhpScript\":\"matomo.php\",\"matomoJsScript\":\"matomo.js\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-prismic-previews/gatsby-browser.js'),\n options: {\"plugins\":[],\"repositoryName\":\"lcb-research\",\"promptForAccessToken\":true,\"apiEndpoint\":\"https://lcb-research.cdn.prismic.io/api/v2\",\"lang\":\"*\",\"imageImgixParams\":{\"auto\":\"compress,format\",\"fit\":\"max\",\"q\":50},\"imagePlaceholderImgixParams\":{\"w\":100,\"blur\":15},\"toolbar\":\"new\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"Legislative Counsel Bureau Research Division Content\",\"short_name\":\"LCB Research Division Content\",\"start_url\":\"/\",\"background_color\":\"#f0f0f0\",\"theme_color\":\"#30415b\",\"display\":\"standalone\",\"icon\":\"src/images/icon.png\",\"icon_options\":{\"purpose\":\"maskable\"},\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"ca25395aa6403490a623ab2a4978db8d\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-offline/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../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","// \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","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { pick } from \"@gatsbyjs/reach-router/lib/utils\"\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 const pathname = decodeURIComponent(rawPathname)\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 // Remove search query\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\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\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\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\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 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\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\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 {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\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 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 = path => {\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise((resolve, reject) => {\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\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n }\n\n return {\n component,\n json: pageData.result,\n page,\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.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 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 page and it doesn't exist, we're done\n if (pagePath === `/404.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 Object.assign(loadObj, {\n status: PageResourceStatus.Error,\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 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 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 {\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 inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n }\n // undefined if final result is an error\n return pageResources\n }\n )\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.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([componentChunkPromise, 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 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 // 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 false\n }\n\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 false\n }\n\n const realPath = findPath(pagePath)\n // Todo make doPrefetch logic cacheable\n // eslint-disable-next-line consistent-return\n this.doPrefetch(realPath).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n })\n\n return true\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\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 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 => {\n if (!asyncRequires.components[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.components[chunkName]()\n .then(preferDefault)\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(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 // 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","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n }\n\n const pageElement = createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\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 { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\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_EXPERIMENTAL_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).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 // window.___webpackCompilationHash gets set in production-app.js after navigationInit() is called\n // So on a direct visit of a page with a browser redirect this check is truthy and thus the codepath is hit\n // While the resource actually exists, but only too late\n // TODO: This should probably be fixed by setting ___webpackCompilationHash before navigationInit() is called\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 // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\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(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.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, { withErrorDetails: true }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname, {\n withErrorDetails: true,\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(nextProps.location.pathname)\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(nextProps.location.pathname)\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 ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"gatsby\"\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} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\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 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 return (\n \n \n {children}\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). But\n // 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 !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\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 window.___webpackCompilationHash = page.page.webpackCompilationHash\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 renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n ReactDOM.hydrateRoot ? ReactDOM.hydrateRoot : ReactDOM.hydrate\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n if (renderer === ReactDOM.hydrateRoot) {\n renderer(rootElement, )\n } else {\n renderer(, rootElement)\n }\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})\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","exports.polyfill = Component => Component\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","/**\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","import 'typeface-roboto'\r\nimport * as React from 'react'\r\nimport { Link } from 'gatsby'\r\nimport { PrismicProvider } from '@prismicio/react'\r\nimport {\r\n PrismicPreviewProvider,\r\n componentResolverFromMap,\r\n} from 'gatsby-plugin-prismic-previews'\r\nimport { LinkResolver } from './src/utils/LinkResolver'\r\nimport ContentItem from './src/components/ContentItem/Index'\r\n\r\n\r\nexport const onServiceWorkerUpdateReady = () => {\r\n const answer = window.confirm(\r\n `This application has been updated. ` +\r\n `Reload to display the latest version?`\r\n )\r\n if (answer === true) {\r\n window.location.reload();\r\n }\r\n}\r\n\r\nexport const wrapRootElement = ({ element }) => (\r\n (\r\n \r\n )}\r\n >\r\n \r\n {element}\r\n \r\n \r\n)",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/* 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\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 && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$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.substr(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","/* eslint-disable no-unused-expressions */\nimport { stripIndent } from \"common-tags\"\nimport camelCase from \"camelcase\"\nimport { IGatsbyImageData } from \".\"\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,\n 654,\n 768,\n 1024,\n 1366,\n 1600,\n 1920,\n 2048,\n 2560,\n 3440,\n 3840,\n 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 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.substr(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(stripIndent`\n The 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","/* eslint-disable no-unused-expressions */\nimport {\n useState,\n CSSProperties,\n useEffect,\n HTMLAttributes,\n ImgHTMLAttributes,\n ReactEventHandler,\n SetStateAction,\n Dispatch,\n RefObject,\n} from \"react\"\nimport { Node } from \"gatsby\"\nimport { PlaceholderProps } from \"./placeholder\"\nimport { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport {\n IGatsbyImageHelperArgs,\n generateImageData,\n Layout,\n EVERY_BREAKPOINT,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\nconst imageCache = new Set()\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 function storeImageloaded(cacheKey?: string): void {\n if (cacheKey) {\n imageCache.add(cacheKey)\n }\n}\n\nexport function hasImageLoaded(cacheKey: string): boolean {\n return imageCache.has(cacheKey)\n}\nexport type IGatsbyImageDataParent = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type FileNode = Node & {\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\nexport type ImageDataLike = FileNode | IGatsbyImageDataParent | IGatsbyImageData\nexport const getImage = (node: ImageDataLike): IGatsbyImageData | undefined => {\n if (isGatsbyImageData(node)) {\n return node\n }\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\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 async function applyPolyfill(\n ref: RefObject\n): Promise {\n if (!(`objectFitPolyfill` in window)) {\n await import(\n /* webpackChunkName: \"gatsby-plugin-image-objectfit-polyfill\" */ `objectFitPolyfill`\n )\n }\n ;(window as any).objectFitPolyfill(ref.current)\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 toggleLoaded?: (loaded: boolean) => void,\n cacheKey?: string,\n ref?: RefObject,\n style: CSSProperties = {}\n): Partial {\n const onLoad: ReactEventHandler = function (e) {\n if (isLoaded) {\n return\n }\n\n storeImageloaded(cacheKey)\n\n const target = e.currentTarget\n const img = new Image()\n img.src = target.currentSrc\n\n if (img.decode) {\n // Decode the image through javascript to support our transition\n img\n .decode()\n .catch(() => {\n // ignore error, we just go forward\n })\n .then(() => {\n toggleLoaded(true)\n })\n } else {\n toggleLoaded(true)\n }\n }\n\n // Polyfill \"object-fit\" if unsupported (mostly IE)\n if (ref?.current && !(`objectFit` in document.documentElement.style)) {\n ref.current.dataset.objectFit = style.objectFit ?? `cover`\n ref.current.dataset.objectPosition = `${style.objectPosition ?? `50% 50%`}`\n applyPolyfill(ref)\n }\n\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 onLoad,\n ref,\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 function useImageLoaded(\n cacheKey: string,\n loading: \"lazy\" | \"eager\",\n ref: any\n): {\n isLoaded: boolean\n isLoading: boolean\n toggleLoaded: Dispatch>\n} {\n const [isLoaded, toggleLoaded] = useState(false)\n const [isLoading, toggleIsLoading] = useState(loading === `eager`)\n\n const rAF =\n typeof window !== `undefined` && `requestAnimationFrame` in window\n ? requestAnimationFrame\n : function (cb: TimerHandler): number {\n return setTimeout(cb, 16)\n }\n const cRAF =\n typeof window !== `undefined` && `cancelAnimationFrame` in window\n ? cancelAnimationFrame\n : clearTimeout\n\n useEffect(() => {\n let interval: number\n // @see https://stackoverflow.com/questions/44074747/componentdidmount-called-before-ref-callback/50019873#50019873\n function toggleIfRefExists(): void {\n if (ref.current) {\n if (loading === `eager` && ref.current.complete) {\n storeImageloaded(cacheKey)\n toggleLoaded(true)\n } else {\n toggleIsLoading(true)\n }\n } else {\n interval = rAF(toggleIfRefExists)\n }\n }\n toggleIfRefExists()\n\n return (): void => {\n cRAF(interval)\n }\n }, [])\n\n return {\n isLoading,\n isLoaded,\n toggleLoaded,\n }\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","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \n\nimport React, { Fragment, FunctionComponent } 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: string | null = null\n if (layout === `fullWidth`) {\n sizer = `
`\n }\n if (layout === `constrained`) {\n sizer = `
\"\"
`\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}\n","import * as React from 'react'\nimport clsx from 'clsx'\n\ntype ButtonProps = {\n variant: 'purple' | 'white' | 'whiteOutline'\n} & React.ButtonHTMLAttributes\n\nexport const Button = ({\n className,\n variant,\n ...props\n}: ButtonProps): JSX.Element => (\n \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 'sans-12': {\n fontFamilyClassName: 'gppp-font-sans',\n fontSizeClassName: 'gppp-text-12',\n leadingClassName: 'gppp-leading-1_5',\n trackingClassName: undefined,\n },\n 'sans-12-14': {\n fontFamilyClassName: 'gppp-font-sans',\n fontSizeClassName: 'gppp-text-12 sm:gppp-text-14',\n leadingClassName: 'gppp-leading-1_5',\n trackingClassName: undefined,\n },\n 'sans-14': {\n fontFamilyClassName: 'gppp-font-sans',\n fontSizeClassName: 'gppp-text-14',\n leadingClassName: 'gppp-leading-1_1',\n trackingClassName: undefined,\n },\n 'sans-16': {\n fontFamilyClassName: 'gppp-font-sans',\n fontSizeClassName: 'gppp-text-16',\n leadingClassName: 'gppp-leading-1_1',\n trackingClassName: undefined,\n },\n 'sans-24': {\n fontFamilyClassName: 'gppp-font-sans',\n fontSizeClassName: 'gppp-text-24',\n leadingClassName: 'gppp-leading-1_1',\n trackingClassName: 'gppp-tracking-tight',\n },\n 'mono-20': {\n fontFamilyClassName: 'gppp-font-mono',\n fontSizeClassName: 'gppp-text-20',\n leadingClassName: 'gppp-leading-1_4',\n trackingClassName: undefined,\n },\n} as const\n\ntype TextOwnProps = {\n variant: keyof typeof variants\n fontFamilyClassName?: string\n fontSizeClassName?: string\n leadingClassName?: string\n trackingClassName?: string\n children?: React.ReactNode\n}\n\nexport type TextProps =\n PolymorphicPropsWithoutRef\n\nexport const Text = ({\n as,\n variant: variantName,\n fontFamilyClassName,\n fontSizeClassName,\n leadingClassName,\n trackingClassName,\n className,\n ...restProps\n}: TextProps): JSX.Element => {\n const Element: React.ElementType = as ?? defaultElement\n const variant = variants[variantName]\n\n return (\n \n )\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 'https://user-guides.prismic.io/en/articles/1036153-generating-an-access-token'\n\ntype ModalAccessTokenProps = {\n state?: 'IDLE' | 'INCORRECT'\n initialAccessToken?: string\n setAccessToken: SetAccessTokenFn\n afterSubmit?: () => void\n} & Pick\n\nexport const ModalAccessToken = ({\n repositoryName,\n state = 'IDLE',\n initialAccessToken = '',\n afterSubmit,\n setAccessToken,\n isOpen,\n onDismiss,\n}: ModalAccessTokenProps): JSX.Element => {\n const [ephemeralAccessToken, setEphemeralAccessToken] =\n React.useState(initialAccessToken)\n\n React.useEffect(() => {\n setEphemeralAccessToken(initialAccessToken)\n }, [initialAccessToken])\n\n const onAccessTokenChange = (\n event: React.FormEvent,\n ): void => setEphemeralAccessToken(event.currentTarget.value)\n\n const onSubmit = (event: React.FormEvent) => {\n event.preventDefault()\n setAccessToken(ephemeralAccessToken)\n\n if (afterSubmit) {\n afterSubmit()\n }\n }\n\n return (\n \n \n \n )\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 errorMessage?: string\n} & Pick\n\nexport const ModalError = ({\n repositoryName,\n errorMessage,\n isOpen,\n onDismiss,\n}: ModalErrorProps): JSX.Element => {\n return (\n \n
\n
\n \n Error\n \n \n The preview could not be loaded.\n \n
\n\n {errorMessage && (\n \n {errorMessage}\n \n )}\n\n \n\n
\n
\n
\n \n Repository\n \n
\n
\n {repositoryName}\n
\n
\n
\n
\n \n Plugin Version\n \n
\n
\n {VERSION}\n
\n
\n
\n
\n \n )\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 ModalProps,\n 'repositoryName' | 'isOpen' | 'onDismiss'\n>\n\nexport const ModalLoading = ({\n repositoryName,\n isOpen,\n onDismiss,\n}: ModalLoadingProps): JSX.Element => {\n return (\n \n
\n
\n \n Fetching preview\n \n \n Please wait while your updates are loading…\n \n
\n\n \n
\n \n )\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 afterAccessTokenSet(): void\n}\n\nexport const PrismicPreviewUI = ({\n afterAccessTokenSet,\n}: PrismicPreviewUIProps): JSX.Element => {\n const [state, dispatch] = usePrismicPreviewContext()\n const [accessToken, accessTokenActions] = usePrismicPreviewAccessToken(\n state.activeRepositoryName,\n )\n\n const goToIdle = () => dispatch({ type: PrismicContextActionType.GoToIdle })\n\n // TODO: Handle modal visibility state locally, not by transitioning globally to IDLE.\n\n return (\n <>\n {state.activeRepositoryName && (\n \n \n \n \n \n )}\n \n )\n}\n","import * as prismic from '@prismicio/client'\n\nexport const userFriendlyError = (error: Error): Error => {\n if (error instanceof prismic.ForbiddenError) {\n return new Error('Unauthorized access')\n } else {\n return error\n }\n}\n","import * as React from 'react'\nimport * as gatsby from 'gatsby'\n\nimport { getComponentDisplayName } from './lib/getComponentDisplayName'\n\nimport { PrismicRepositoryConfigs, UnknownRecord } from './types'\nimport { usePrismicPreviewBootstrap } from './usePrismicPreviewBootstrap'\nimport { useMergePrismicPreviewData } from './useMergePrismicPreviewData'\nimport { PrismicPreviewUI } from './components/PrismicPreviewUI'\nimport { usePrismicPreviewContext } from './usePrismicPreviewContext'\nimport { PrismicContextActionType } from './context'\n\nexport interface WithPrismicPreviewProps<\n TStaticData extends UnknownRecord = UnknownRecord,\n> {\n isPrismicPreview: boolean | null\n prismicPreviewOriginalData: TStaticData\n}\n\nexport type WithPrismicPreviewConfig = {\n mergePreviewData?: boolean\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 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 TStaticData extends UnknownRecord,\n TProps extends gatsby.PageProps,\n>(\n WrappedComponent: React.ComponentType<\n TProps & WithPrismicPreviewProps\n >,\n repositoryConfigs: PrismicRepositoryConfigs = [],\n config: WithPrismicPreviewConfig = {},\n): React.ComponentType => {\n const WithPrismicPreview = (props: TProps): React.ReactElement => {\n const [, contextDispatch] = usePrismicPreviewContext()\n const bootstrapPreview = usePrismicPreviewBootstrap(repositoryConfigs)\n const mergedData = useMergePrismicPreviewData(props.data, {\n skip: config.mergePreviewData,\n })\n\n const afterAccessTokenSet = React.useCallback(() => {\n contextDispatch({ type: PrismicContextActionType.GoToIdle })\n bootstrapPreview()\n }, [bootstrapPreview, contextDispatch])\n\n React.useEffect(() => {\n bootstrapPreview()\n }, [bootstrapPreview])\n\n return (\n <>\n \n \n \n )\n }\n\n const wrappedComponentName = getComponentDisplayName(WrappedComponent)\n WithPrismicPreview.displayName = `withPrismicPreview(${wrappedComponentName})`\n\n return WithPrismicPreview\n}\n","import * as React from 'react'\nimport * as gatsby from 'gatsby'\n\nimport { getComponentDisplayName } from './lib/getComponentDisplayName'\n\nimport { PrismicRepositoryConfigs } from './types'\nimport { usePrismicPreviewResolver } from './usePrismicPreviewResolver'\nimport { usePrismicPreviewContext } from './usePrismicPreviewContext'\n\nimport {\n PrismicContextActionType,\n PrismicContextState,\n PrismicPreviewState,\n} from './context'\nimport { PrismicPreviewUI } from './components/PrismicPreviewUI'\n\nexport interface WithPrismicPreviewResolverProps {\n isPrismicPreview: boolean | null\n prismicPreviewPath: PrismicContextState['resolvedPath']\n}\n\nexport type WithPrismicPreviewResolverConfig = {\n autoRedirect?: boolean\n navigate?: typeof gatsby.navigate\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 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 WrappedComponent: React.ComponentType<\n TProps & WithPrismicPreviewResolverProps\n >,\n repositoryConfigs: PrismicRepositoryConfigs,\n config: WithPrismicPreviewResolverConfig = {},\n): React.ComponentType => {\n const WithPrismicPreviewResolver = (props: TProps): React.ReactElement => {\n const [contextState, contextDispatch] = usePrismicPreviewContext()\n const resolvePreview = usePrismicPreviewResolver(repositoryConfigs)\n\n const isPreview =\n contextState.previewState === PrismicPreviewState.IDLE\n ? null\n : contextState.previewState !== PrismicPreviewState.NOT_PREVIEW\n\n const afterAccessTokenSet = React.useCallback(() => {\n contextDispatch({ type: PrismicContextActionType.GoToIdle })\n resolvePreview()\n }, [resolvePreview, contextDispatch])\n\n React.useEffect(() => {\n resolvePreview()\n }, [resolvePreview])\n\n React.useEffect(() => {\n if (contextState.resolvedPath && (config.autoRedirect ?? true)) {\n const navigate = config.navigate || gatsby.navigate\n\n navigate(contextState.resolvedPath)\n }\n }, [contextState.resolvedPath])\n\n return (\n <>\n \n \n \n )\n }\n\n const wrappedComponentName = getComponentDisplayName(WrappedComponent)\n WithPrismicPreviewResolver.displayName = `withPrismicPreviewResolver(${wrappedComponentName})`\n\n return WithPrismicPreviewResolver\n}\n","import * as React from 'react'\nimport * as prismic from '@prismicio/client'\nimport * as E from 'fp-ts/Either'\nimport * as O from 'fp-ts/Option'\n\nimport { extractPreviewRefRepositoryName } from './lib/extractPreviewRefRepositoryName'\nimport { getPreviewRef } from './lib/getPreviewRef'\nimport { isPreviewResolverSession } from './lib/isPreviewResolverSession'\nimport { sprintf } from './lib/sprintf'\n\nimport { PrismicRepositoryConfigs } from './types'\nimport {\n MISSING_PLUGIN_OPTIONS_MSG,\n MISSING_REPOSITORY_CONFIG_MSG,\n} from './constants'\nimport {\n PrismicContextActionType,\n PrismicContextState,\n PrismicPreviewState,\n} from './context'\nimport { usePrismicPreviewContext } from './usePrismicPreviewContext'\n\nexport type UsePrismicPreviewResolverFn = () => Promise\n\nexport const usePrismicPreviewResolver = (\n repositoryConfigs: PrismicRepositoryConfigs = [],\n): UsePrismicPreviewResolverFn => {\n const [contextState, contextDispatch] = usePrismicPreviewContext()\n\n const contextStateRef = React.useRef(contextState)\n\n // We need to update the ref anytime contextState changes to ensure lazy\n // functions get the latest data.\n React.useEffect(() => {\n contextStateRef.current = contextState\n }, [contextState])\n\n return React.useCallback(async (): Promise => {\n if (contextState.previewState !== PrismicPreviewState.IDLE) {\n // No op. Resolving should only happen at IDLE.\n return\n }\n\n if (E.isLeft(isPreviewResolverSession())) {\n return contextDispatch({\n type: PrismicContextActionType.NotAPreview,\n })\n }\n\n const previewRef = getPreviewRef()\n if (E.isLeft(previewRef)) {\n return contextDispatch({\n type: PrismicContextActionType.Failed,\n payload: { error: new Error('Preview cookie not present') },\n })\n }\n\n const repositoryName = extractPreviewRefRepositoryName(previewRef.right)\n if (O.isNone(repositoryName)) {\n return contextDispatch({\n type: PrismicContextActionType.Failed,\n payload: { error: new Error('Invalid preview ref') },\n })\n }\n\n contextDispatch({\n type: PrismicContextActionType.SetActiveRepositoryName,\n payload: { repositoryName: repositoryName.value },\n })\n\n // TODO: Deeply merge repository configs\n const resolvedRepositoryConfigs = [\n ...repositoryConfigs,\n ...contextState.repositoryConfigs,\n ]\n const repositoryConfig = resolvedRepositoryConfigs.find(\n (config) => config.repositoryName === repositoryName.value,\n )\n if (!repositoryConfig) {\n return contextDispatch({\n type: PrismicContextActionType.Failed,\n payload: {\n error: new Error(\n sprintf(\n MISSING_REPOSITORY_CONFIG_MSG,\n repositoryName.value,\n 'withPrismicPreview and withPrismicUnpublishedPreview',\n ),\n ),\n },\n })\n }\n\n const repositoryPluginOptions =\n contextState.pluginOptionsStore[repositoryName.value]\n if (!repositoryPluginOptions) {\n return contextDispatch({\n type: PrismicContextActionType.Failed,\n payload: {\n error: new Error(\n sprintf(MISSING_PLUGIN_OPTIONS_MSG, repositoryName.value),\n ),\n },\n })\n }\n\n // Begin resolving stage.\n contextDispatch({\n type: PrismicContextActionType.StartResolving,\n })\n\n const endpoint =\n repositoryPluginOptions.apiEndpoint ??\n prismic.getEndpoint(repositoryName.value)\n const client = prismic.createClient(endpoint, {\n accessToken: repositoryPluginOptions.accessToken,\n defaultParams: {\n lang: repositoryPluginOptions.lang,\n fetchLinks: repositoryPluginOptions.fetchLinks,\n graphQuery: repositoryPluginOptions.graphQuery,\n },\n })\n client.enableAutoPreviews()\n\n let path: string\n try {\n path = await client.resolvePreviewURL({\n linkResolver: repositoryConfig.linkResolver,\n defaultURL: '/',\n })\n } catch (error) {\n if (\n error instanceof prismic.ForbiddenError &&\n repositoryPluginOptions.promptForAccessToken\n ) {\n return contextDispatch({\n type: PrismicContextActionType.PromptForAccessToken,\n })\n } else {\n return contextDispatch({\n type: PrismicContextActionType.Failed,\n payload: { error },\n })\n }\n }\n\n contextDispatch({\n type: PrismicContextActionType.Resolved,\n payload: { path },\n })\n }, [\n contextDispatch,\n contextState.pluginOptionsStore,\n contextState.previewState,\n contextState.repositoryConfigs,\n repositoryConfigs,\n ])\n}\n","import * as React from 'react'\nimport * as gatsby from 'gatsby'\nimport * as A from 'fp-ts/Array'\nimport * as O from 'fp-ts/Option'\nimport * as R from 'fp-ts/Record'\nimport { constNull, pipe } from 'fp-ts/function'\n\nimport { camelCase } from './lib/camelCase'\nimport { getComponentDisplayName } from './lib/getComponentDisplayName'\nimport { getNodesForPath } from './lib/getNodesForPath'\n\nimport {\n PrismicUnpublishedRepositoryConfig,\n PrismicUnpublishedRepositoryConfigs,\n UnknownRecord,\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 `withPrismicUnpublishedPreview`'s configuration.\n */\nexport const componentResolverFromMap =\n (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n componentMap: Record>,\n ): PrismicUnpublishedRepositoryConfig['componentResolver'] =>\n (nodes) =>\n pipe(\n A.head(nodes),\n O.bindTo('node'),\n O.bind('type', (env) => O.some(env.node.type)),\n O.chain((env) => R.lookup(env.type, componentMap)),\n O.getOrElseW(constNull),\n )\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 (nodes, data) =>\n pipe(\n A.head(nodes),\n O.bindTo('node'),\n O.bind('key', (env) => O.some(camelCase(env.node.internal.type))),\n O.fold(\n () => data,\n (env) => ({\n ...data,\n [env.key]: env.node,\n }),\n ),\n )\n\nconst useNodesForPath = (path: string) => {\n const [contextState] = usePrismicPreviewContext()\n\n return React.useMemo(\n () => getNodesForPath(path, contextState.nodes),\n [path, contextState.nodes],\n )\n}\n\nconst useActiveRepositoryConfig = (\n repositoryConfigs: PrismicUnpublishedRepositoryConfigs = [],\n) => {\n const [contextState] = usePrismicPreviewContext()\n\n return React.useMemo(\n () =>\n [...repositoryConfigs, ...contextState.repositoryConfigs].find(\n (config) => config.repositoryName === contextState.activeRepositoryName,\n ),\n [\n contextState.activeRepositoryName,\n contextState.repositoryConfigs,\n repositoryConfigs,\n ],\n )\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 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 TStaticData extends UnknownRecord,\n TProps extends gatsby.PageProps,\n>(\n WrappedComponent: React.ComponentType,\n repositoryConfigs?: PrismicUnpublishedRepositoryConfigs,\n): React.ComponentType => {\n const WithPrismicUnpublishedPreview = (props: TProps): React.ReactElement => {\n const [contextState, contextDispatch] = usePrismicPreviewContext()\n const bootstrapPreview = usePrismicPreviewBootstrap(repositoryConfigs)\n const nodesForPath = useNodesForPath(props.location.pathname)\n const repositoryConfig = useActiveRepositoryConfig(repositoryConfigs)\n\n const ResolvedComponent = React.useMemo(\n () =>\n repositoryConfig?.componentResolver(nodesForPath) ?? WrappedComponent,\n [repositoryConfig, nodesForPath],\n )\n\n const resolvedData = React.useMemo(() => {\n const dataResolver = repositoryConfig?.dataResolver || defaultDataResolver\n\n return dataResolver(nodesForPath, props.data)\n }, [repositoryConfig?.dataResolver, nodesForPath, props.data])\n\n const afterAccessTokenSet = React.useCallback(() => {\n contextDispatch({ type: PrismicContextActionType.GoToIdle })\n bootstrapPreview()\n }, [bootstrapPreview, contextDispatch])\n\n React.useEffect(() => {\n bootstrapPreview()\n }, [bootstrapPreview])\n\n return contextState.previewState === PrismicPreviewState.ACTIVE ? (\n \n ) : (\n <>\n \n \n \n )\n }\n\n const wrappedComponentName = getComponentDisplayName(WrappedComponent)\n WithPrismicUnpublishedPreview.displayName = `withPrismicUnpublishedPreview(${wrappedComponentName})`\n\n return WithPrismicUnpublishedPreview\n}\n","import * as cc from 'camel-case'\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 */\nexport const camelCase = (...parts: (string | null | undefined)[]): string =>\n cc.camelCase(parts.filter((p) => p != null).join(' '), {\n transform: cc.camelCaseTransformMerge,\n })\n","import * as R from 'fp-ts/Record'\nimport { pipe } from 'fp-ts/function'\n\nimport { PrismicAPIDocumentNodeInput } from '../types'\nimport { PrismicContextState } from '../context'\n\n/**\n * Returns nodes from the node store with URLs that match the given path.\n *\n * @param path Path to match document URLs against.\n * @param nodesStore Node store containing Prismic document nodes to search.\n *\n * @returns A list of Prismic nodes whose URLs match the given path.\n */\nexport const getNodesForPath = (\n path: string,\n nodesStore: PrismicContextState['nodes'],\n): PrismicAPIDocumentNodeInput[] =>\n pipe(\n nodesStore,\n R.filter((node) => node.url === path),\n R.collect((_, node) => node),\n )\n","module.exports = require('./dist/gatsby-browser')\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\nexport type Mutable = {\n -readonly [P in keyof T]: T[P]\n}\n\nexport type UnknownRecord = Record<\n K,\n unknown\n>\n\nexport type IterableElement = TargetIterable extends Iterable<\n infer ElementType\n>\n ? ElementType\n : never\n\nexport type JoiValidationError = InstanceType<\n gatsby.PluginOptionsSchemaArgs['Joi']['ValidationError']\n>\n\nexport interface TypePath {\n path: string[]\n type: PrismicTypePathType\n}\n\nexport type TypePathNode = TypePath & gatsby.Node\n\nexport interface Dependencies {\n prismicClient: prismic.Client\n createTypes: gatsby.Actions['createTypes']\n createNode: gatsby.Actions['createNode']\n buildObjectType: gatsby.NodePluginSchema['buildObjectType']\n buildUnionType: gatsby.NodePluginSchema['buildUnionType']\n buildEnumType: gatsby.NodePluginSchema['buildEnumType']\n buildInterfaceType: gatsby.NodePluginSchema['buildInterfaceType']\n getNode: gatsby.SourceNodesArgs['getNode']\n getNodes: gatsby.SourceNodesArgs['getNodes']\n touchNode: gatsby.Actions['touchNode']\n deleteNode: gatsby.Actions['deleteNode']\n createNodeId: gatsby.NodePluginArgs['createNodeId']\n createContentDigest: gatsby.NodePluginArgs['createContentDigest']\n schema: gatsby.NodePluginSchema\n cache: gatsby.GatsbyCache\n store: gatsby.Store\n reporter: gatsby.Reporter\n reportInfo: gatsby.Reporter['info']\n reportWarning: gatsby.Reporter['warn']\n globalNodeHelpers: NodeHelpers\n nodeHelpers: NodeHelpers\n pluginOptions: PluginOptions\n webhookBody?: unknown\n createRemoteFileNode: typeof gatsbyFs.createRemoteFileNode\n}\n\nexport interface PluginOptions extends gatsby.PluginOptions {\n repositoryName: string\n accessToken?: string\n apiEndpoint: string\n customTypesApiToken?: string\n customTypesApiEndpoint?: string\n releaseID?: string\n graphQuery?: string\n fetchLinks?: string[]\n lang: string\n pageSize?: number\n linkResolver?: prismicH.LinkResolverFunction\n htmlSerializer?: prismicH.HTMLFunctionSerializer | prismicH.HTMLMapSerializer\n schemas: Record\n imageImgixParams: imgixGatsby.ImgixUrlParams\n imagePlaceholderImgixParams: imgixGatsby.ImgixUrlParams\n typePrefix?: string\n webhookSecret?: string\n plugins: []\n createRemoteFileNode: typeof gatsbyFs.createRemoteFileNode\n transformFieldName: (fieldName: string) => string\n fetch: prismic.FetchLike & prismicCustomTypes.FetchLike\n}\n\nexport type FieldConfigCreator<\n TSchema extends prismicT.CustomTypeModelField = prismicT.CustomTypeModelField,\n> = (\n path: string[],\n schema: TSchema,\n) => RTE.ReaderTaskEither<\n Dependencies,\n never,\n gqlc.ObjectTypeComposerFieldConfigDefinition\n>\n\nexport type PrismicTypePathType =\n | PrismicSpecialType\n | prismicT.CustomTypeModelFieldType\n | prismicT.CustomTypeModelSliceType\n\nexport enum PrismicSpecialType {\n Document = 'Document',\n DocumentData = 'DocumentData',\n Unknown = 'Unknown',\n}\n\nexport interface PrismicAPIDocumentNode\n extends prismicT.PrismicDocument,\n gatsby.Node {\n prismicId: string\n}\n\nexport type PrismicWebhookBody =\n | PrismicWebhookBodyApiUpdate\n | PrismicWebhookBodyTestTrigger\n\nexport enum PrismicWebhookType {\n APIUpdate = 'api-update',\n TestTrigger = 'test-trigger',\n}\n\ninterface PrismicWebhookBodyBase {\n type: PrismicWebhookType\n domain: string\n apiUrl: string\n secret: string | null\n}\n\nexport interface PrismicWebhookBodyApiUpdate extends PrismicWebhookBodyBase {\n type: PrismicWebhookType.APIUpdate\n masterRef?: string\n releases: PrismicWebhookOperations\n masks: PrismicWebhookOperations\n tags: PrismicWebhookOperations\n documents: string[]\n // eslint-disable-next-line deprecation/deprecation\n experiments?: PrismicWebhookOperations\n}\n\nexport interface PrismicWebhookBodyTestTrigger extends PrismicWebhookBodyBase {\n type: PrismicWebhookType.TestTrigger\n}\n\ninterface PrismicWebhookOperations {\n update?: T[]\n addition?: T[]\n deletion?: T[]\n}\n\ninterface PrismicWebhookMask {\n id: string\n label: string\n}\n\ninterface PrismicWebhookTag {\n id: string\n}\n\nexport interface PrismicWebhookRelease {\n id: string\n ref: string\n label: string\n documents: string[]\n}\n\n/**\n * @deprecated\n */\ninterface PrismicWebhookExperiment {\n id: string\n name: string\n // eslint-disable-next-line deprecation/deprecation\n variations: PrismicWebhookExperimentVariation[]\n}\n\n/**\n * @deprecated\n */\ninterface PrismicWebhookExperimentVariation {\n id: string\n ref: string\n label: string\n}\n\nexport type PrismicCustomTypeApiResponse = PrismicCustomTypeApiCustomType[]\n\nexport interface PrismicCustomTypeApiCustomType<\n Model extends prismicT.CustomTypeModel = prismicT.CustomTypeModel,\n> {\n id: string\n label: string\n repeatable: boolean\n json: Model\n}\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport SafeAnchor from './SafeAnchor';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar defaultProps = {\n active: false,\n linkProps: {}\n};\nvar BreadcrumbItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n active = _ref.active,\n children = _ref.children,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'li' : _ref$as,\n _ref$linkAs = _ref.linkAs,\n LinkComponent = _ref$linkAs === void 0 ? SafeAnchor : _ref$linkAs,\n linkProps = _ref.linkProps,\n href = _ref.href,\n title = _ref.title,\n target = _ref.target,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"active\", \"children\", \"className\", \"as\", \"linkAs\", \"linkProps\", \"href\", \"title\", \"target\"]);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'breadcrumb-item');\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(prefix, className, {\n active: active\n }),\n \"aria-current\": active ? 'page' : undefined\n }), active ? children : /*#__PURE__*/React.createElement(LinkComponent, _extends({}, linkProps, {\n href: href,\n title: title,\n target: target\n }), children));\n});\nBreadcrumbItem.displayName = 'BreadcrumbItem';\nBreadcrumbItem.defaultProps = defaultProps;\nexport default BreadcrumbItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport BreadcrumbItem from './BreadcrumbItem';\nvar defaultProps = {\n label: 'breadcrumb',\n listProps: {}\n};\nvar Breadcrumb = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n listProps = _ref.listProps,\n children = _ref.children,\n label = _ref.label,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'nav' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"className\", \"listProps\", \"children\", \"label\", \"as\"]);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'breadcrumb');\n return /*#__PURE__*/React.createElement(Component, _extends({\n \"aria-label\": label,\n className: className,\n ref: ref\n }, props), /*#__PURE__*/React.createElement(\"ol\", _extends({}, listProps, {\n className: classNames(prefix, listProps == null ? void 0 : listProps.className)\n }), children));\n});\nBreadcrumb.displayName = 'Breadcrumb';\nBreadcrumb.defaultProps = defaultProps;\nBreadcrumb.Item = BreadcrumbItem;\nexport default Breadcrumb;","import React from 'react'\r\nimport { withPrefix } from 'gatsby'\r\nimport Breadcrumb from 'react-bootstrap/Breadcrumb'\r\nimport './ContentBreadcrumb.css'\r\n\r\nconst siteRoot = '/'\r\n\r\nconst ContentBreadcrumb = ({item}) => {\r\n if(!item) return null;\r\n return (\r\n \r\n
  • \r\n Home\r\n
  • \r\n
  • \r\n Research Division\r\n
  • \r\n {\r\n item.data.featured === \"Yes\" &&\r\n
  • \r\n Featured\r\n
  • \r\n }\r\n {\r\n item.data.featured === \"No\" &&\r\n
  • \r\n All Research Content\r\n
  • \r\n }\r\n {item.data.title}\r\n
    \r\n )\r\n}\r\n\r\nexport default ContentBreadcrumb;","import React from 'react';\nvar TabContext = /*#__PURE__*/React.createContext(null);\nexport default TabContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport qsa from 'dom-helpers/querySelectorAll';\nimport React, { useContext, useEffect, useRef } from 'react';\nimport useForceUpdate from '@restart/hooks/useForceUpdate';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport NavContext from './NavContext';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport TabContext from './TabContext'; // eslint-disable-next-line @typescript-eslint/no-empty-function\n\nvar noop = function noop() {};\n\nvar AbstractNav = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'ul' : _ref$as,\n onSelect = _ref.onSelect,\n activeKey = _ref.activeKey,\n role = _ref.role,\n onKeyDown = _ref.onKeyDown,\n props = _objectWithoutPropertiesLoose(_ref, [\"as\", \"onSelect\", \"activeKey\", \"role\", \"onKeyDown\"]); // A ref and forceUpdate for refocus, b/c we only want to trigger when needed\n // and don't want to reset the set in the effect\n\n\n var forceUpdate = useForceUpdate();\n var needsRefocusRef = useRef(false);\n var parentOnSelect = useContext(SelectableContext);\n var tabContext = useContext(TabContext);\n var getControlledId, getControllerId;\n\n if (tabContext) {\n role = role || 'tablist';\n activeKey = tabContext.activeKey;\n getControlledId = tabContext.getControlledId;\n getControllerId = tabContext.getControllerId;\n }\n\n var listNode = useRef(null);\n\n var getNextActiveChild = function getNextActiveChild(offset) {\n var currentListNode = listNode.current;\n if (!currentListNode) return null;\n var items = qsa(currentListNode, '[data-rb-event-key]:not(.disabled)');\n var activeChild = currentListNode.querySelector('.active');\n if (!activeChild) return null;\n var index = items.indexOf(activeChild);\n if (index === -1) return null;\n var nextIndex = index + offset;\n if (nextIndex >= items.length) nextIndex = 0;\n if (nextIndex < 0) nextIndex = items.length - 1;\n return items[nextIndex];\n };\n\n var handleSelect = function handleSelect(key, event) {\n if (key == null) return;\n if (onSelect) onSelect(key, event);\n if (parentOnSelect) parentOnSelect(key, event);\n };\n\n var handleKeyDown = function handleKeyDown(event) {\n if (onKeyDown) onKeyDown(event);\n var nextActiveChild;\n\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp':\n nextActiveChild = getNextActiveChild(-1);\n break;\n\n case 'ArrowRight':\n case 'ArrowDown':\n nextActiveChild = getNextActiveChild(1);\n break;\n\n default:\n return;\n }\n\n if (!nextActiveChild) return;\n event.preventDefault();\n handleSelect(nextActiveChild.dataset.rbEventKey, event);\n needsRefocusRef.current = true;\n forceUpdate();\n };\n\n useEffect(function () {\n if (listNode.current && needsRefocusRef.current) {\n var activeChild = listNode.current.querySelector('[data-rb-event-key].active');\n if (activeChild) activeChild.focus();\n }\n\n needsRefocusRef.current = false;\n });\n var mergedRef = useMergedRefs(ref, listNode);\n return /*#__PURE__*/React.createElement(SelectableContext.Provider, {\n value: handleSelect\n }, /*#__PURE__*/React.createElement(NavContext.Provider, {\n value: {\n role: role,\n // used by NavLink to determine it's role\n activeKey: makeEventKey(activeKey),\n getControlledId: getControlledId || noop,\n getControllerId: getControllerId || noop\n }\n }, /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n onKeyDown: handleKeyDown,\n ref: mergedRef,\n role: role\n }))));\n});\nexport default AbstractNav;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar NavItem = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\nfunction (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n children = _ref.children,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"className\", \"children\", \"as\"]);\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'nav-item');\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n ref: ref,\n className: classNames(className, bsPrefix)\n }), children);\n});\nNavItem.displayName = 'NavItem';\nexport default NavItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport all from 'prop-types-extra/lib/all';\nimport React, { useContext } from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport NavbarContext from './NavbarContext';\nimport CardContext from './CardContext';\nimport AbstractNav from './AbstractNav';\nimport NavItem from './NavItem';\nimport NavLink from './NavLink';\nvar defaultProps = {\n justify: false,\n fill: false\n};\nvar Nav = /*#__PURE__*/React.forwardRef(function (uncontrolledProps, ref) {\n var _classNames;\n\n var _useUncontrolled = useUncontrolled(uncontrolledProps, {\n activeKey: 'onSelect'\n }),\n _useUncontrolled$as = _useUncontrolled.as,\n as = _useUncontrolled$as === void 0 ? 'div' : _useUncontrolled$as,\n initialBsPrefix = _useUncontrolled.bsPrefix,\n variant = _useUncontrolled.variant,\n fill = _useUncontrolled.fill,\n justify = _useUncontrolled.justify,\n navbar = _useUncontrolled.navbar,\n navbarScroll = _useUncontrolled.navbarScroll,\n className = _useUncontrolled.className,\n children = _useUncontrolled.children,\n activeKey = _useUncontrolled.activeKey,\n props = _objectWithoutPropertiesLoose(_useUncontrolled, [\"as\", \"bsPrefix\", \"variant\", \"fill\", \"justify\", \"navbar\", \"navbarScroll\", \"className\", \"children\", \"activeKey\"]);\n\n var bsPrefix = useBootstrapPrefix(initialBsPrefix, 'nav');\n var navbarBsPrefix;\n var cardHeaderBsPrefix;\n var isNavbar = false;\n var navbarContext = useContext(NavbarContext);\n var cardContext = useContext(CardContext);\n\n if (navbarContext) {\n navbarBsPrefix = navbarContext.bsPrefix;\n isNavbar = navbar == null ? true : navbar;\n } else if (cardContext) {\n cardHeaderBsPrefix = cardContext.cardHeaderBsPrefix;\n }\n\n return /*#__PURE__*/React.createElement(AbstractNav, _extends({\n as: as,\n ref: ref,\n activeKey: activeKey,\n className: classNames(className, (_classNames = {}, _classNames[bsPrefix] = !isNavbar, _classNames[navbarBsPrefix + \"-nav\"] = isNavbar, _classNames[navbarBsPrefix + \"-nav-scroll\"] = isNavbar && navbarScroll, _classNames[cardHeaderBsPrefix + \"-\" + variant] = !!cardHeaderBsPrefix, _classNames[bsPrefix + \"-\" + variant] = !!variant, _classNames[bsPrefix + \"-fill\"] = fill, _classNames[bsPrefix + \"-justified\"] = justify, _classNames))\n }, props), children);\n});\nNav.displayName = 'Nav';\nNav.defaultProps = defaultProps;\nNav.Item = NavItem;\nNav.Link = NavLink;\nexport default Nav;","import React, { useMemo } from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport TabContext from './TabContext';\nimport SelectableContext from './SelectableContext';\n\nvar TabContainer = function TabContainer(props) {\n var _useUncontrolled = useUncontrolled(props, {\n activeKey: 'onSelect'\n }),\n id = _useUncontrolled.id,\n generateCustomChildId = _useUncontrolled.generateChildId,\n onSelect = _useUncontrolled.onSelect,\n activeKey = _useUncontrolled.activeKey,\n transition = _useUncontrolled.transition,\n mountOnEnter = _useUncontrolled.mountOnEnter,\n unmountOnExit = _useUncontrolled.unmountOnExit,\n children = _useUncontrolled.children;\n\n var generateChildId = useMemo(function () {\n return generateCustomChildId || function (key, type) {\n return id ? id + \"-\" + type + \"-\" + key : null;\n };\n }, [id, generateCustomChildId]);\n var tabContext = useMemo(function () {\n return {\n onSelect: onSelect,\n activeKey: activeKey,\n transition: transition,\n mountOnEnter: mountOnEnter || false,\n unmountOnExit: unmountOnExit || false,\n getControlledId: function getControlledId(key) {\n return generateChildId(key, 'tabpane');\n },\n getControllerId: function getControllerId(key) {\n return generateChildId(key, 'tab');\n }\n };\n }, [onSelect, activeKey, transition, mountOnEnter, unmountOnExit, generateChildId]);\n return /*#__PURE__*/React.createElement(TabContext.Provider, {\n value: tabContext\n }, /*#__PURE__*/React.createElement(SelectableContext.Provider, {\n value: onSelect || null\n }, children));\n};\n\nexport default TabContainer;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar TabContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n className = _ref.className,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"as\", \"className\"]);\n\n var decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'tab-content');\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, decoratedBsPrefix)\n }));\n});\nexport default TabContent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport TabContext from './TabContext';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport Fade from './Fade';\n\nfunction useTabContext(props) {\n var context = useContext(TabContext);\n if (!context) return props;\n\n var activeKey = context.activeKey,\n getControlledId = context.getControlledId,\n getControllerId = context.getControllerId,\n rest = _objectWithoutPropertiesLoose(context, [\"activeKey\", \"getControlledId\", \"getControllerId\"]);\n\n var shouldTransition = props.transition !== false && rest.transition !== false;\n var key = makeEventKey(props.eventKey);\n return _extends({}, props, {\n active: props.active == null && key != null ? makeEventKey(activeKey) === key : props.active,\n id: getControlledId(props.eventKey),\n 'aria-labelledby': getControllerId(props.eventKey),\n transition: shouldTransition && (props.transition || rest.transition || Fade),\n mountOnEnter: props.mountOnEnter != null ? props.mountOnEnter : rest.mountOnEnter,\n unmountOnExit: props.unmountOnExit != null ? props.unmountOnExit : rest.unmountOnExit\n });\n}\n\nvar TabPane = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _useTabContext = useTabContext(props),\n bsPrefix = _useTabContext.bsPrefix,\n className = _useTabContext.className,\n active = _useTabContext.active,\n onEnter = _useTabContext.onEnter,\n onEntering = _useTabContext.onEntering,\n onEntered = _useTabContext.onEntered,\n onExit = _useTabContext.onExit,\n onExiting = _useTabContext.onExiting,\n onExited = _useTabContext.onExited,\n mountOnEnter = _useTabContext.mountOnEnter,\n unmountOnExit = _useTabContext.unmountOnExit,\n Transition = _useTabContext.transition,\n _useTabContext$as = _useTabContext.as,\n Component = _useTabContext$as === void 0 ? 'div' : _useTabContext$as,\n _ = _useTabContext.eventKey,\n rest = _objectWithoutPropertiesLoose(_useTabContext, [\"bsPrefix\", \"className\", \"active\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"mountOnEnter\", \"unmountOnExit\", \"transition\", \"as\", \"eventKey\"]);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'tab-pane');\n if (!active && !Transition && unmountOnExit) return null;\n var pane = /*#__PURE__*/React.createElement(Component, _extends({}, rest, {\n ref: ref,\n role: \"tabpanel\",\n \"aria-hidden\": !active,\n className: classNames(className, prefix, {\n active: active\n })\n }));\n if (Transition) pane = /*#__PURE__*/React.createElement(Transition, {\n in: active,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered,\n onExit: onExit,\n onExiting: onExiting,\n onExited: onExited,\n mountOnEnter: mountOnEnter,\n unmountOnExit: unmountOnExit\n }, pane); // We provide an empty the TabContext so `
    \n )\n }\n if (layout === `constrained`) {\n return (\n
    \n \n
    \n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent = function LayoutWrapper({\n children,\n ...props\n}) {\n return (\n \n \n {children}\n\n {\n // eslint-disable-next-line no-undef\n SERVER && \n }\n \n )\n}\n","/* eslint-disable filenames/match-regex */\nimport React, {\n FunctionComponent,\n ImgHTMLAttributes,\n forwardRef,\n LegacyRef,\n} 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 innerRef: LegacyRef\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 innerRef,\n ...props\n}) {\n return (\n \n )\n}\n\nexport const Picture = forwardRef(\n function Picture(\n { fallback, sources = [], shouldLoad = true, ...props },\n ref\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)\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 = function Placeholder({\n fallback,\n ...props\n}) {\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 return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React, { forwardRef } from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage = forwardRef(\n function MainImage(props, ref) {\n return (\n <>\n \n \n \n )\n }\n)\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React, {\n ElementType,\n FunctionComponent,\n CSSProperties,\n WeakValidationMap,\n} from \"react\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\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\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImageHydrator: FunctionComponent<{\n as?: ElementType\n style?: CSSProperties\n className?: string\n}> = function GatsbyImageHydrator({ as: Type = `div`, children, ...props }) {\n return {children}\n}\n\nexport const GatsbyImage: FunctionComponent = function GatsbyImage({\n as,\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 if (preactClass) {\n className = preactClass\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 { style: wStyle, className: wClass, ...wrapperProps } = getWrapperProps(\n width,\n height,\n layout\n )\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 (\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 undefined,\n undefined,\n undefined,\n imgStyle\n )}\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 return PropTypes.string(props, propName, componentName, ...rest)\n}\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap\n","/* eslint-disable no-unused-expressions */\nimport React, {\n Component,\n ElementType,\n createRef,\n MutableRefObject,\n FunctionComponent,\n ImgHTMLAttributes,\n RefObject,\n CSSProperties,\n} from \"react\"\nimport {\n getWrapperProps,\n hasNativeLazyLoadSupport,\n storeImageloaded,\n hasImageLoaded,\n gatsbyImageIsInstalled,\n} from \"./hooks\"\nimport { PlaceholderProps } from \"./placeholder\"\nimport { MainImageProps } from \"./main-image\"\nimport { Layout } from \"../image-utils\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport { Unobserver } from \"./intersection-observer\"\nimport { render } from \"react-dom\"\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?: () => void\n onError?: () => void\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\nclass GatsbyImageHydrator extends Component<\n GatsbyImageProps,\n { isLoading: boolean; isLoaded: boolean }\n> {\n root: RefObject = createRef<\n HTMLImageElement | undefined\n >()\n hydrated: MutableRefObject = { current: false }\n forceRender: MutableRefObject = {\n // In dev we use render not hydrate, to avoid hydration warnings\n current: process.env.NODE_ENV === `development`,\n }\n lazyHydrator: () => void | null = null\n ref = createRef()\n unobserveRef: Unobserver\n\n constructor(props) {\n super(props)\n\n this.state = {\n isLoading: hasNativeLazyLoadSupport(),\n isLoaded: false,\n }\n }\n\n _lazyHydrate(props, state): Promise {\n const hasSSRHtml = this.root.current.querySelector(\n `[data-gatsby-image-ssr]`\n )\n // On first server hydration do nothing\n if (hasNativeLazyLoadSupport() && hasSSRHtml && !this.hydrated.current) {\n this.hydrated.current = true\n return Promise.resolve()\n }\n\n return import(`./lazy-hydrate`).then(({ lazyHydrate }) => {\n this.lazyHydrator = lazyHydrate(\n {\n image: props.image.images,\n isLoading: state.isLoading,\n isLoaded: state.isLoaded,\n toggleIsLoaded: () => {\n props.onLoad?.()\n\n this.setState({\n isLoaded: true,\n })\n },\n ref: this.ref,\n ...props,\n },\n this.root,\n this.hydrated,\n this.forceRender\n )\n })\n }\n\n /**\n * Choose if setupIntersectionObserver should use the image cache or not.\n */\n _setupIntersectionObserver(useCache = true): void {\n import(`./intersection-observer`).then(({ createIntersectionObserver }) => {\n const intersectionObserver = createIntersectionObserver(() => {\n if (this.root.current) {\n const cacheKey = JSON.stringify(this.props.image.images)\n this.props.onStartLoad?.({\n wasCached: useCache && hasImageLoaded(cacheKey),\n })\n this.setState({\n isLoading: true,\n isLoaded: useCache && hasImageLoaded(cacheKey),\n })\n }\n })\n\n if (this.root.current) {\n this.unobserveRef = intersectionObserver(this.root)\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState): boolean {\n let hasChanged = false\n if (!this.state.isLoading && nextState.isLoading && !nextState.isLoaded) {\n // Props have changed between SSR and hydration, so we need to force render instead of hydrate\n this.forceRender.current = true\n }\n // this check mostly means people do not have the correct ref checks in place, we want to reset some state to suppport loading effects\n if (this.props.image.images !== nextProps.image.images) {\n // reset state, we'll rely on intersection observer to reload\n if (this.unobserveRef) {\n // unregister intersectionObserver\n this.unobserveRef()\n\n // // on unmount, make sure we cleanup\n if (this.hydrated.current && this.lazyHydrator) {\n render(null, this.root.current)\n }\n }\n\n this.setState(\n {\n isLoading: false,\n isLoaded: false,\n },\n () => {\n this._setupIntersectionObserver(false)\n }\n )\n\n hasChanged = true\n }\n\n if (this.root.current && !hasChanged) {\n this._lazyHydrate(nextProps, nextState)\n }\n\n return false\n }\n\n componentDidMount(): void {\n if (this.root.current) {\n const ssrElement = this.root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n const cacheKey = JSON.stringify(this.props.image.images)\n\n // when SSR and native lazyload is supported we'll do nothing ;)\n if (\n hasNativeLazyLoadSupport() &&\n ssrElement &&\n gatsbyImageIsInstalled()\n ) {\n this.props.onStartLoad?.({ wasCached: false })\n\n // When the image is already loaded before we have hydrated, we trigger onLoad and cache the item\n if (ssrElement.complete) {\n this.props.onLoad?.()\n storeImageloaded(cacheKey)\n } else {\n // We need the current class context (this) inside our named onLoad function\n // The named function is necessary to easily remove the listener afterward.\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const _this = this\n // add an onLoad to the image\n ssrElement.addEventListener(`load`, function onLoad() {\n ssrElement.removeEventListener(`load`, onLoad)\n\n _this.props.onLoad?.()\n storeImageloaded(cacheKey)\n })\n }\n\n return\n }\n\n // Fallback to custom lazy loading (intersection observer)\n this._setupIntersectionObserver(true)\n }\n }\n\n componentWillUnmount(): void {\n // Cleanup when onmount happens\n if (this.unobserveRef) {\n // unregister intersectionObserver\n this.unobserveRef()\n\n // on unmount, make sure we cleanup\n if (this.hydrated.current && this.lazyHydrator) {\n this.lazyHydrator()\n }\n }\n\n return\n }\n\n render(): JSX.Element {\n const Type = this.props.as || `div`\n const { width, height, layout } = this.props.image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n let className = this.props.className\n // preact class\n if (this.props.class) {\n className = this.props.class\n }\n\n const sizer = getSizer(layout, width, height)\n\n return (\n \n )\n }\n}\n\nexport const GatsbyImage: FunctionComponent = function GatsbyImage(\n props\n) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n return null\n }\n\n if (!gatsbyImageIsInstalled()) {\n console.error(\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 const { className, class: classSafe, backgroundColor, image } = props\n const { width, height, layout } = image\n const propsKey = JSON.stringify([\n width,\n height,\n layout,\n className,\n classSafe,\n backgroundColor,\n ])\n return \n}\n\nGatsbyImage.propTypes = propTypes\n\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}\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 /* 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 IStaticImageProps & IPrivateProps\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 IStaticImageProps & IPrivateProps\n> = _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import * as React from \"react\"\nexport function LaterHydrator({\n children,\n}: React.PropsWithChildren>): React.ReactNode {\n React.useEffect(() => {\n // eslint-disable-next-line no-unused-expressions\n import(`./lazy-hydrate`)\n }, [])\n\n return children\n}\n","import React from \"react\"\nimport { LaterHydrator } from \".\"\n\nexport function wrapRootElement({ element }) {\n return {element}\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _gatsby = require(\"gatsby\");\n\nvar _getManifestPathname = _interopRequireDefault(require(\"./get-manifest-pathname\"));\n\n/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\n// when we don't have localisation in our manifest, we tree shake everything away\nif (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n exports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n var localize = pluginOptions.localize;\n var manifestFilename = (0, _getManifestPathname.default)(location.pathname, localize);\n var manifestEl = document.head.querySelector(\"link[rel=\\\"manifest\\\"]\");\n\n if (manifestEl) {\n manifestEl.setAttribute(\"href\", (0, _gatsby.withPrefix)(manifestFilename));\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\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 * @return string\n */\nvar _default = function _default(pathname, localizedManifests) {\n var defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n var localizedManifest = localizedManifests.find(function (app) {\n return pathname.startsWith(app.start_url);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\" + localizedManifest.lang + \".webmanifest\";\n};\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.onRouteUpdate = void 0;\nvar first = true;\n\nfunction getDuration() {\n var start = window.start || new Date();\n var now = new Date();\n var difference = now.getTime() - start.getTime();\n\n if (difference === 0) {\n return null;\n }\n\n return difference;\n}\n\nvar onRouteUpdate = function onRouteUpdate(_ref, pluginOptions) {\n var location = _ref.location,\n prevLocation = _ref.prevLocation;\n\n if (process.env.NODE_ENV === 'production' || window.dev === true) {\n if (!window._paq) return;\n var _window = window,\n _paq = _window._paq,\n dev = _window.dev;\n var url = location && location.pathname + location.search + location.hash;\n var prevUrl = prevLocation && prevLocation.pathname + prevLocation.search + prevLocation.hash;\n var _pluginOptions$trackL = pluginOptions.trackLoad,\n trackLoad = _pluginOptions$trackL === void 0 ? true : _pluginOptions$trackL; // document.title workaround stolen from:\n // https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-google-analytics/src/gatsby-browser.js\n\n var sendPageView = function sendPageView() {\n var _document = document,\n title = _document.title;\n prevUrl && _paq.push(['setReferrerUrl', prevUrl]);\n\n _paq.push(['setCustomUrl', url]);\n\n _paq.push(['setDocumentTitle', title]);\n\n _paq.push(['trackPageView']);\n\n _paq.push(['enableLinkTracking']);\n\n _paq.push(['trackAllContentImpressions']);\n\n if (dev) {\n console.debug(\"[Matomo] Page view for: \" + url + \" - \" + title);\n }\n }; // Minimum delay for reactHelmet's requestAnimationFrame\n\n\n var delay = Math.max(32, 0);\n setTimeout(sendPageView, delay);\n\n if (first) {\n first = false;\n\n if (trackLoad) {\n _paq.push(['trackEvent', 'javascript', 'load', 'duration', getDuration()]);\n }\n\n if (dev) {\n console.debug(\"[Matomo] Tracking duration for: \" + url);\n }\n }\n }\n\n return null;\n};\n\nexports.onRouteUpdate = onRouteUpdate;","\"use strict\";\n\nexports.registerServiceWorker = function () {\n return process.env.GATSBY_IS_PREVIEW !== \"true\";\n}; // only cache relevant resources for this page\n\n\nvar whiteListLinkRels = /^(stylesheet|preload)$/;\nvar prefetchedPathnames = [];\n\nexports.onServiceWorkerActive = function (_ref) {\n var getResourceURLsForPathname = _ref.getResourceURLsForPathname,\n serviceWorker = _ref.serviceWorker;\n\n if (process.env.GATSBY_IS_PREVIEW === \"true\") {\n return;\n } // if the SW has just updated then clear the path dependencies and don't cache\n // stuff, since we're on the old revision until we navigate to another page\n\n\n if (window.___swUpdated) {\n serviceWorker.active.postMessage({\n gatsbyApi: \"clearPathResources\"\n });\n return;\n } // grab nodes from head of document\n\n\n var nodes = document.querySelectorAll(\"\\n head > script[src],\\n head > link[href],\\n head > style[data-href]\\n \"); // get all resource URLs\n\n var headerResources = [].slice.call(nodes) // don't include preconnect/prefetch/prerender resources\n .filter(function (node) {\n return node.tagName !== \"LINK\" || whiteListLinkRels.test(node.getAttribute(\"rel\"));\n }).map(function (node) {\n return node.src || node.href || node.getAttribute(\"data-href\");\n }); // Loop over prefetched pages and add their resources to an array,\n // plus specify which resources are required for those paths.\n\n var prefetchedResources = [];\n prefetchedPathnames.forEach(function (path) {\n var resources = getResourceURLsForPathname(path);\n prefetchedResources.push.apply(prefetchedResources, resources);\n serviceWorker.active.postMessage({\n gatsbyApi: \"setPathResources\",\n path: path,\n resources: resources\n });\n }); // Loop over all resources and fetch the page component + JSON data\n // to add it to the SW cache.\n\n var resources = [].concat(headerResources, prefetchedResources);\n resources.forEach(function (resource) {\n // Create a prefetch link for each resource, so Workbox runtime-caches them\n var link = document.createElement(\"link\");\n link.rel = \"prefetch\";\n link.href = resource;\n link.onload = link.remove;\n link.onerror = link.remove;\n document.head.appendChild(link);\n });\n};\n\nfunction setPathResources(path, getResourceURLsForPathname) {\n // do nothing if the SW has just updated, since we still have old pages in\n // memory which we don't want to be whitelisted\n if (window.___swUpdated) return;\n\n if (\"serviceWorker\" in navigator) {\n var _navigator = navigator,\n serviceWorker = _navigator.serviceWorker;\n\n if (serviceWorker.controller === null) {\n // if SW is not installed, we need to record any prefetches\n // that happen so we can then add them to SW cache once installed\n prefetchedPathnames.push(path);\n } else {\n var resources = getResourceURLsForPathname(path);\n serviceWorker.controller.postMessage({\n gatsbyApi: \"setPathResources\",\n path: path,\n resources: resources\n });\n }\n }\n}\n\nexports.onRouteUpdate = function (_ref2) {\n var location = _ref2.location,\n getResourceURLsForPathname = _ref2.getResourceURLsForPathname;\n var pathname = location.pathname.replace(__BASE_PATH__, \"\");\n setPathResources(pathname, getResourceURLsForPathname);\n\n if (\"serviceWorker\" in navigator && navigator.serviceWorker.controller !== null) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: \"enableOfflineShell\"\n });\n }\n};\n\nexports.onPostPrefetchPathname = function (_ref3) {\n var pathname = _ref3.pathname,\n getResourceURLsForPathname = _ref3.getResourceURLsForPathname;\n setPathResources(pathname, getResourceURLsForPathname);\n};","/**\n * Name of the plugin used to identify Nodes owned by this plugin.\n *\n * Note: This should always be in sync with package.json's `name` field.\n */\nexport const PLUGIN_NAME = 'gatsby-source-prismic'\n\n/**\n * Global prefix used for all GraphQL types and, where necessary, fields.\n */\nexport const GLOBAL_TYPE_PREFIX = 'Prismic'\n\n/**\n * Custom type fields that are included alongside other fields in the JSON\n * schema, but are not included in the API response for a document's `data`\n * field.\n *\n * Fields in this list are moved from the `data` GraphQL field to the root.\n */\nexport const PRISMIC_API_NON_DATA_FIELDS = ['uid']\n\n/**\n * Default endpoint used to fetch custom type JSON schemas from Prismic's\n * Custom Type API.\n *\n * @see https://prismic.io/docs/technologies/custom-types-api\n */\nexport const DEFAULT_CUSTOM_TYPES_API_ENDPOINT =\n 'https://customtypes.prismic.io/customtypes'\n\n/**\n * Default Imgix URL parameters for `gatsby-plugin-image` fields.\n *\n * These defaults provide a good balance between image quality and filesize.\n *\n * @see https://docs.imgix.com/apis/rendering\n */\nexport const DEFAULT_IMGIX_PARAMS = {\n auto: 'compress,format',\n\n // The following values are not included by Prismic's URLs by default.\n fit: 'max',\n q: 50,\n} as const\n\n/**\n * Default Imgix URL parameters for `gatsby-plugin-image` placeholder images.\n *\n * These defaults provide a good balance between image quality and filesize.\n * They are merged with the `imageImgixParams` plugin option.\n *\n * @see https://docs.imgix.com/apis/rendering\n */\nexport const DEFAULT_PLACEHOLDER_IMGIX_PARAMS = {\n w: 100,\n\n // Makes the image appear less pixelated when stretched to large sizes.\n //\n // TODO: This value can be removed if `gatsby-plugin-image` implements\n // CSS-based blurring.\n blur: 15,\n} as const\n\n/**\n * Default Prismic language option used when fetching documents. The current\n * default fetches all languages.\n *\n * @see https://prismic.io/docs/technologies/query-by-language-rest-api\n */\nexport const DEFAULT_LANG = '*'\n\n/**\n * Format used for all plugin reporting. Includes the plugin's name and the\n * instance's repository name (helpful when multiple repositories are\n * configured).\n */\nexport const REPORTER_TEMPLATE = `gatsby-source-prismic(%s) - %s`\n\n/**\n * Root node field used to compare static data with preview data. If values are\n * equal, the preview node can be treated as an updated version of the static\n * node.\n *\n * This is an internal-use-only field used by `gatsby-plugin-prismic-previews`.\n */\nexport const PREVIEWABLE_NODE_ID_FIELD = '_previewable'\n\n/**\n * Message displayed to the user when a webhook's secret does not match the\n * secret configured in the site's `gatsby-config.js`.\n */\nexport const WEBHOOK_SECRET_MISMATCH_MSG =\n 'A webhook was received, but the webhook secret did not match the webhook secret provided in the plugin options. If this is unexpected, verify that the `webhookSecret` plugin option matches the webhook secret in your Prismic repository.'\n\n/**\n * Message displayed to the user when a `test-trigger` webhook is received.\n */\nexport const WEBHOOK_TEST_TRIGGER_SUCCESS_MSG =\n 'Success! Received a test trigger webhook. When changes to your content are saved, Gatsby will automatically fetch the changes.'\n\n/**\n * Message displayed to the user when a missing custom type schema is detected.\n */\nexport const MISSING_SCHEMAS_MSG =\n 'JSON schemas for all custom types are required'\n\n/**\n * Format used to inform the user of a missing schema.\n */\nexport const MISSING_SCHEMA_MSG = 'JSON schema for \"%s\" is missing'\n","import * as IO from 'fp-ts/IO'\n\nimport { WINDOW_PLUGIN_OPTIONS_KEY } from '../constants'\nimport { PluginOptions } from '../types'\n\n// This store is primary just used during testing. During the SSR build of a\n// Gatsby site, this function is not called.\nexport const ssrPluginOptionsStore: Record = {}\n\ndeclare global {\n interface Window {\n [WINDOW_PLUGIN_OPTIONS_KEY]: Record\n }\n}\n\nexport const setPluginOptionsOnWindow =\n (pluginOptions: PluginOptions): IO.IO =>\n () => {\n if (typeof window === 'undefined') {\n Object.assign(ssrPluginOptionsStore, {\n [pluginOptions.repositoryName]: pluginOptions,\n })\n } else {\n window[WINDOW_PLUGIN_OPTIONS_KEY] = {\n ...window[WINDOW_PLUGIN_OPTIONS_KEY],\n [pluginOptions.repositoryName]: pluginOptions,\n }\n }\n }\n","import * as gatsby from 'gatsby'\nimport * as RTE from 'fp-ts/ReaderTaskEither'\nimport { pipe, constVoid } from 'fp-ts/function'\n\nimport { setPrismicWindowEndpoint } from './lib/setPrismicWindowEndpoint'\nimport { setPluginOptionsOnWindow } from './lib/setPluginOptionsOnWindow'\n\nimport { PluginOptions } from './types'\nimport { sprintf } from './lib/sprintf'\nimport { MISSING_STYLES_MSG } from './constants'\n\ninterface OnClientEntryProgramEnv {\n pluginOptions: PluginOptions\n}\n\n/**\n * Sets up the app for the legacy toolbar which requires configuration to be set\n * on `window`.\n */\nexport const setupLegacyToolbar: RTE.ReaderTaskEither<\n OnClientEntryProgramEnv,\n Error,\n void\n> = pipe(\n RTE.ask(),\n RTE.chainW(\n RTE.fromPredicate(\n (env) => env.pluginOptions.toolbar === 'legacy',\n () =>\n new Error(\n 'Only repositories using the legacy toolbar must call this API.',\n ),\n ),\n ),\n RTE.chainFirst((env) =>\n RTE.fromIO(setPrismicWindowEndpoint(env.pluginOptions.apiEndpoint)),\n ),\n RTE.map(constVoid),\n // We don't care if this fails.\n RTE.orElse(() => RTE.right(void 0 as void)),\n)\n\n/**\n * Sets the plugin's options on a window using a predefined identifier.\n */\nexport const setWindowPluginOptions: RTE.ReaderTaskEither<\n OnClientEntryProgramEnv,\n Error,\n void\n> = pipe(\n RTE.ask(),\n RTE.chainW(\n RTE.fromPredicate(\n () => typeof window !== 'undefined',\n () => new Error('Window plugin options do not need to be set in SSR'),\n ),\n ),\n RTE.chainFirst((env) =>\n RTE.fromIO(setPluginOptionsOnWindow(env.pluginOptions)),\n ),\n RTE.map(constVoid),\n // We don't care if this fails.\n RTE.orElse(() => RTE.right(void 0 as void)),\n)\n\n/**\n * Sets the plugin's options on a window using a predefined identifier.\n */\nexport const checkStyles = (\n stylesheetName: string,\n): RTE.ReaderTaskEither =>\n process.env.NODE_ENV === 'development' && typeof window !== 'undefined'\n ? pipe(\n RTE.Do,\n RTE.chain(\n RTE.fromPredicate(\n () =>\n parseInt(\n window\n .getComputedStyle(document.body)\n .getPropertyValue(`--gppp-${stylesheetName}`),\n ) !== 1,\n () => new Error('Styles are correctly setup'),\n ),\n ),\n RTE.chainFirst(() =>\n RTE.fromIO(() =>\n console.warn(sprintf(MISSING_STYLES_MSG, stylesheetName)),\n ),\n ),\n RTE.map(constVoid),\n )\n : RTE.right(void 0)\n\n/**\n * To be executed in the `onClientEntry` API.\n */\nexport const onClientEntryProgram: RTE.ReaderTaskEither<\n OnClientEntryProgramEnv,\n Error,\n void\n> = pipe(\n [setupLegacyToolbar, setWindowPluginOptions, checkStyles('styles')],\n RTE.sequenceArray,\n RTE.map(constVoid),\n)\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 async (\n _gatsbyContext: gatsby.BrowserPluginArgs,\n pluginOptions: PluginOptions,\n ) =>\n // We don't care about the output of the program so we won't be doing\n // anything with the result.\n await onClientEntryProgram({ pluginOptions })()\n","import * as IO from 'fp-ts/IO'\n\ndeclare global {\n interface Window {\n prismic?: {\n endpoint?: string\n }\n }\n}\n\nexport const setPrismicWindowEndpoint =\n (endpoint: string): IO.IO =>\n () => {\n window.prismic = { ...window.prismic, endpoint }\n }\n","import \"core-js/modules/es.string.trim-start.js\";\nimport \"core-js/modules/es.string.trim-end.js\";\nimport { isNonEmpty } from './ReadonlyNonEmptyArray'; // -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Eq.equals('a', 'a'), true)\n * assert.deepStrictEqual(S.Eq.equals('a', 'b'), false)\n *\n * @category instances\n * @since 2.10.0\n */\n\nexport var Eq = {\n equals: function equals(first, second) {\n return first === second;\n }\n};\n/**\n * `string` semigroup under concatenation.\n *\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Semigroup.concat('a', 'b'), 'ab')\n *\n * @category instances\n * @since 2.10.0\n */\n\nexport var Semigroup = {\n concat: function concat(first, second) {\n return first + second;\n }\n};\n/**\n * `string` monoid under concatenation.\n *\n * The `empty` value is `''`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Monoid.concat('a', 'b'), 'ab')\n * assert.deepStrictEqual(S.Monoid.concat('a', S.Monoid.empty), 'a')\n *\n * @category instances\n * @since 2.10.0\n */\n\nexport var Monoid = {\n concat: Semigroup.concat,\n empty: ''\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Ord.compare('a', 'a'), 0)\n * assert.deepStrictEqual(S.Ord.compare('a', 'b'), -1)\n * assert.deepStrictEqual(S.Ord.compare('b', 'a'), 1)\n *\n * @category instances\n * @since 2.10.0\n */\n\nexport var Ord = {\n equals: Eq.equals,\n compare: function compare(first, second) {\n return first < second ? -1 : first > second ? 1 : 0;\n }\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Show.show('a'), '\"a\"')\n *\n * @category instances\n * @since 2.10.0\n */\n\nexport var Show = {\n show: function show(s) {\n return JSON.stringify(s);\n }\n}; // -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n\n/**\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.isString('a'), true)\n * assert.deepStrictEqual(S.isString(1), false)\n *\n * @category refinements\n * @since 2.11.0\n */\n\nexport var isString = function isString(u) {\n return typeof u === 'string';\n}; // -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('a', S.toUpperCase), 'A')\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var toUpperCase = function toUpperCase(s) {\n return s.toUpperCase();\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('A', S.toLowerCase), 'a')\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var toLowerCase = function toLowerCase(s) {\n return s.toLowerCase();\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.replace('b', 'd')), 'adc')\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var replace = function replace(searchValue, replaceValue) {\n return function (s) {\n return s.replace(searchValue, replaceValue);\n };\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(' a ', S.trim), 'a')\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var trim = function trim(s) {\n return s.trim();\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(' a ', S.trimLeft), 'a ')\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var trimLeft = function trimLeft(s) {\n return s.trimLeft();\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(' a ', S.trimRight), ' a')\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var trimRight = function trimRight(s) {\n return s.trimRight();\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abcd', S.slice(1, 3)), 'bc')\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var slice = function slice(start, end) {\n return function (s) {\n return s.slice(start, end);\n };\n}; // -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n\n/**\n * An empty `string`.\n *\n * @since 2.10.0\n */\n\nexport var empty = '';\n/**\n * Test whether a `string` is empty.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('', S.isEmpty), true)\n * assert.deepStrictEqual(pipe('a', S.isEmpty), false)\n *\n * @since 2.10.0\n */\n\nexport var isEmpty = function isEmpty(s) {\n return s.length === 0;\n};\n/**\n * Calculate the number of characters in a `string`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.size), 3)\n *\n * @since 2.10.0\n */\n\nexport var size = function size(s) {\n return s.length;\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.split('')), ['a', 'b', 'c'])\n * assert.deepStrictEqual(pipe('', S.split('')), [''])\n *\n * @since 2.11.0\n */\n\nexport var split = function split(separator) {\n return function (s) {\n var out = s.split(separator);\n return isNonEmpty(out) ? out : [s];\n };\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.includes('b')), true)\n * assert.deepStrictEqual(pipe('abc', S.includes('d')), false)\n *\n * @since 2.11.0\n */\n\nexport var includes = function includes(searchString, position) {\n return function (s) {\n return s.includes(searchString, position);\n };\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.startsWith('a')), true)\n * assert.deepStrictEqual(pipe('bc', S.startsWith('a')), false)\n *\n * @since 2.11.0\n */\n\nexport var startsWith = function startsWith(searchString, position) {\n return function (s) {\n return s.startsWith(searchString, position);\n };\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.endsWith('c')), true)\n * assert.deepStrictEqual(pipe('ab', S.endsWith('c')), false)\n *\n * @since 2.11.0\n */\n\nexport var endsWith = function endsWith(searchString, position) {\n return function (s) {\n return s.endsWith(searchString, position);\n };\n};","import { fromEquals } from './Eq';\nimport { flow, identity, pipe, SK } from './function';\nimport { flap as flap_ } from './Functor';\nimport * as _ from './internal';\nimport { separated } from './Separated';\nimport * as S from './string';\nimport { wiltDefault, witherDefault } from './Witherable'; // -------------------------------------------------------------------------------------\n// interop\n// -------------------------------------------------------------------------------------\n\n/**\n * Builds a `ReadonlyRecord` by copying a `Record`.\n *\n * @example\n * import { ReadonlyRecord, fromRecord } from \"fp-ts/ReadonlyRecord\"\n *\n * const x: Record = { a: 1, b: 2 };\n * const y: ReadonlyRecord = fromRecord(x);\n * assert.deepStrictEqual(x,y);\n * // `y.a = 5` gives compiler error\n *\n * @category interop\n * @since 2.5.0\n */\n\nexport var fromRecord = function fromRecord(r) {\n return Object.assign({}, r);\n};\n/**\n * Builds a mutable `Record` from a `ReadonlyRecord`.\n *\n * @example\n * import { ReadonlyRecord, toRecord } from \"fp-ts/ReadonlyRecord\"\n *\n * const x: ReadonlyRecord = { a: 1, b: 2 };\n * const y: Record = toRecord(x);\n * assert.deepStrictEqual(x,y);\n * y.a = 5; // it's ok, y is mutable\n *\n * @category interop\n * @since 2.5.0\n */\n\nexport var toRecord = function toRecord(r) {\n return Object.assign({}, r);\n};\n/**\n * Calculate the number of key/value pairs in a `ReadonlyRecord`,\n *\n * @example\n * import { size } from \"fp-ts/ReadonlyRecord\";\n *\n * assert.deepStrictEqual(size({ a: true, b: 2, c: \"three\" }), 3);\n *\n * @since 2.5.0\n */\n\nexport var size = function size(r) {\n return Object.keys(r).length;\n};\n/**\n * Test whether a `ReadonlyRecord` is empty.\n *\n * @example\n * import { isEmpty } from \"fp-ts/ReadonlyRecord\"\n *\n * assert.deepStrictEqual(isEmpty({}), true);\n * assert.deepStrictEqual(isEmpty({ a: 3 }), false);\n * @since 2.5.0\n */\n\nexport var isEmpty = function isEmpty(r) {\n for (var k in r) {\n if (_.has.call(r, k)) {\n return false;\n }\n }\n\n return true;\n};\n\nvar keys_ = function keys_(O) {\n return function (r) {\n return Object.keys(r).sort(O.compare);\n };\n};\n/**\n * @since 2.5.0\n */\n\n\nexport var keys = /*#__PURE__*/keys_(S.Ord);\nexport function collect(O) {\n if (typeof O === 'function') {\n return collect(S.Ord)(O);\n }\n\n var keysO = keys_(O);\n return function (f) {\n return function (r) {\n var out = [];\n\n for (var _i = 0, _a = keysO(r); _i < _a.length; _i++) {\n var key = _a[_i];\n out.push(f(key, r[key]));\n }\n\n return out;\n };\n };\n}\n/**\n * Get a sorted `ReadonlyArray` of the key/value pairs contained in a `ReadonlyRecord`.\n *\n * @example\n * import { toReadonlyArray } from 'fp-ts/ReadonlyRecord'\n *\n * const x = { c: 3, a: \"foo\", b: false };\n * assert.deepStrictEqual(toReadonlyArray(x), [\n * [\"a\", \"foo\"],\n * [\"b\", false],\n * [\"c\", 3],\n * ]);\n *\n * @since 2.5.0\n */\n\nexport var toReadonlyArray = /*#__PURE__*/collect(S.Ord)(function (k, a) {\n return [k, a];\n});\nexport function toUnfoldable(U) {\n return function (r) {\n var sas = toReadonlyArray(r);\n var len = sas.length;\n return U.unfold(0, function (b) {\n return b < len ? _.some([sas[b], b + 1]) : _.none;\n });\n };\n}\n/**\n * Insert or replace a key/value pair in a `ReadonlyRecord`.\n *\n * @example\n * import { upsertAt } from 'fp-ts/ReadonlyRecord'\n *\n * assert.deepStrictEqual(upsertAt(\"a\", 5)({ a: 1, b: 2 }), { a: 5, b: 2 });\n * assert.deepStrictEqual(upsertAt(\"c\", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 });\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var upsertAt = function upsertAt(k, a) {\n return function (r) {\n if (_.has.call(r, k) && r[k] === a) {\n return r;\n }\n\n var out = Object.assign({}, r);\n out[k] = a;\n return out;\n };\n};\n/**\n * Test whether or not a key exists in a `ReadonlyRecord`.\n *\n * Note. This function is not pipeable because is a `Refinement`.\n *\n * @example\n * import { has } from 'fp-ts/ReadonlyRecord'\n *\n * assert.deepStrictEqual(has(\"a\", { a: 1, b: 2 }), true);\n * assert.deepStrictEqual(has(\"c\", { a: 1, b: 2 }), false);\n *\n * @since 2.10.0\n */\n\nexport var has = function has(k, r) {\n return _.has.call(r, k);\n};\nexport function deleteAt(k) {\n return function (r) {\n if (!_.has.call(r, k)) {\n return r;\n }\n\n var out = Object.assign({}, r);\n delete out[k];\n return out;\n };\n}\n/**\n * Replace a key/value pair in a `ReadonlyRecord`.\n *\n * @returns If the specified key exists it returns an `Option` containing a new `Record`\n * with the entry updated, otherwise it returns `None`\n *\n * @example\n * import { updateAt } from 'fp-ts/ReadonlyRecord'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(updateAt(\"a\", 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 }));\n * assert.deepStrictEqual(updateAt(\"c\", 3)({ a: 1, b: 2 }), option.none);\n *\n * @since 2.5.0\n */\n\nexport var updateAt = function updateAt(k, a) {\n return function (r) {\n if (!has(k, r)) {\n return _.none;\n }\n\n if (r[k] === a) {\n return _.some(r);\n }\n\n var out = Object.assign({}, r);\n out[k] = a;\n return _.some(out);\n };\n};\n/**\n * Applies a mapping function to one spcific key/value pair in a `ReadonlyRecord`.\n *\n * @returns If the specified key exists it returns an `Option` containing a new `Record`\n * with the entry updated, otherwise it returns `None`\n *\n * @example\n * import { modifyAt } from 'fp-ts/ReadonlyRecord'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(modifyAt(\"a\", (x: number) => x * 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 }));\n * assert.deepStrictEqual(modifyAt(\"c\", (x: number) => x * 3)({ a: 1, b: 2 }), option.none);\n *\n * @since 2.5.0\n */\n\nexport var modifyAt = function modifyAt(k, f) {\n return function (r) {\n if (!has(k, r)) {\n return _.none;\n }\n\n var next = f(r[k]);\n\n if (next === r[k]) {\n return _.some(r);\n }\n\n var out = Object.assign({}, r);\n out[k] = next;\n return _.some(out);\n };\n};\nexport function pop(k) {\n var deleteAtk = deleteAt(k);\n return function (r) {\n var oa = lookup(k, r);\n return _.isNone(oa) ? _.none : _.some([oa.value, deleteAtk(r)]);\n };\n}\nexport function isSubrecord(E) {\n return function (me, that) {\n if (that === undefined) {\n var isSubrecordE_1 = isSubrecord(E);\n return function (that) {\n return isSubrecordE_1(that, me);\n };\n }\n\n for (var k in me) {\n if (!_.has.call(that, k) || !E.equals(me[k], that[k])) {\n return false;\n }\n }\n\n return true;\n };\n}\nexport function lookup(k, r) {\n if (r === undefined) {\n return function (r) {\n return lookup(k, r);\n };\n }\n\n return _.has.call(r, k) ? _.some(r[k]) : _.none;\n}\n/**\n * @since 2.5.0\n */\n\nexport var empty = {};\nexport function mapWithIndex(f) {\n return function (r) {\n var out = {};\n\n for (var k in r) {\n if (_.has.call(r, k)) {\n out[k] = f(k, r[k]);\n }\n }\n\n return out;\n };\n}\nexport function map(f) {\n return mapWithIndex(function (_, a) {\n return f(a);\n });\n}\nexport function reduceWithIndex() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (args.length === 2) {\n return reduceWithIndex(S.Ord).apply(void 0, args);\n }\n\n var keysO = keys_(args[0]);\n return function (b, f) {\n return function (fa) {\n var out = b;\n var ks = keysO(fa);\n var len = ks.length;\n\n for (var i = 0; i < len; i++) {\n var k = ks[i];\n out = f(k, out, fa[k]);\n }\n\n return out;\n };\n };\n}\nexport function foldMapWithIndex(O) {\n if ('compare' in O) {\n var keysO_1 = keys_(O);\n return function (M) {\n return function (f) {\n return function (fa) {\n var out = M.empty;\n var ks = keysO_1(fa);\n var len = ks.length;\n\n for (var i = 0; i < len; i++) {\n var k = ks[i];\n out = M.concat(out, f(k, fa[k]));\n }\n\n return out;\n };\n };\n };\n }\n\n return foldMapWithIndex(S.Ord)(O);\n}\nexport function reduceRightWithIndex() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (args.length === 2) {\n return reduceRightWithIndex(S.Ord).apply(void 0, args);\n }\n\n var keysO = keys_(args[0]);\n return function (b, f) {\n return function (fa) {\n var out = b;\n var ks = keysO(fa);\n var len = ks.length;\n\n for (var i = len - 1; i >= 0; i--) {\n var k = ks[i];\n out = f(k, fa[k], out);\n }\n\n return out;\n };\n };\n}\n/**\n * Create a `ReadonlyRecord` with one key/value pair.\n *\n * @example\n * import { singleton } from \"fp-ts/ReadonlyRecord\";\n *\n * assert.deepStrictEqual(singleton(\"a\", 1), { a: 1 });\n *\n * @category constructors\n * @since 2.5.0\n */\n\nexport var singleton = function singleton(k, a) {\n var _a;\n\n return _a = {}, _a[k] = a, _a;\n};\nexport function traverseWithIndex(F) {\n var traverseWithIndexOF = _traverseWithIndex(S.Ord)(F);\n\n return function (f) {\n return function (ta) {\n return traverseWithIndexOF(ta, f);\n };\n };\n}\nexport function traverse(F) {\n var traverseOF = _traverse(S.Ord)(F);\n\n return function (f) {\n return function (ta) {\n return traverseOF(ta, f);\n };\n };\n}\nexport function sequence(F) {\n return _sequence(S.Ord)(F);\n}\n/**\n * @category Witherable\n * @since 2.6.5\n */\n\nexport var wither = function wither(F) {\n var traverseF = traverse(F);\n return function (f) {\n return function (fa) {\n return F.map(pipe(fa, traverseF(f)), compact);\n };\n };\n};\n/**\n * @category Witherable\n * @since 2.6.5\n */\n\nexport var wilt = function wilt(F) {\n var traverseF = traverse(F);\n return function (f) {\n return function (fa) {\n return F.map(pipe(fa, traverseF(f)), separate);\n };\n };\n};\nexport function partitionMapWithIndex(f) {\n return function (r) {\n var left = {};\n var right = {};\n\n for (var k in r) {\n if (_.has.call(r, k)) {\n var e = f(k, r[k]);\n\n switch (e._tag) {\n case 'Left':\n left[k] = e.left;\n break;\n\n case 'Right':\n right[k] = e.right;\n break;\n }\n }\n }\n\n return separated(left, right);\n };\n}\nexport function partitionWithIndex(predicateWithIndex) {\n return function (r) {\n var left = {};\n var right = {};\n\n for (var k in r) {\n if (_.has.call(r, k)) {\n var a = r[k];\n\n if (predicateWithIndex(k, a)) {\n right[k] = a;\n } else {\n left[k] = a;\n }\n }\n }\n\n return separated(left, right);\n };\n}\nexport function filterMapWithIndex(f) {\n return function (r) {\n var out = {};\n\n for (var k in r) {\n if (_.has.call(r, k)) {\n var ob = f(k, r[k]);\n\n if (_.isSome(ob)) {\n out[k] = ob.value;\n }\n }\n }\n\n return out;\n };\n}\nexport function filterWithIndex(predicateWithIndex) {\n return function (fa) {\n var out = {};\n var changed = false;\n\n for (var key in fa) {\n if (_.has.call(fa, key)) {\n var a = fa[key];\n\n if (predicateWithIndex(key, a)) {\n out[key] = a;\n } else {\n changed = true;\n }\n }\n }\n\n return changed ? out : fa;\n };\n}\nexport function fromFoldable(M, F) {\n var fromFoldableMapM = fromFoldableMap(M, F);\n return function (fka) {\n return fromFoldableMapM(fka, identity);\n };\n}\nexport function fromFoldableMap(M, F) {\n return function (ta, f) {\n return F.reduce(ta, {}, function (r, a) {\n var _a = f(a),\n k = _a[0],\n b = _a[1];\n\n r[k] = _.has.call(r, k) ? M.concat(r[k], b) : b;\n return r;\n });\n };\n}\n/**\n * Test if every value in a `ReadonlyRecord` satisfies the predicate.\n *\n * @example\n * import { every } from \"fp-ts/ReadonlyRecord\"\n *\n * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: 2 }), true);\n * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: -1 }), false);\n *\n * @since 2.5.0\n */\n\nexport function every(predicate) {\n return function (r) {\n for (var k in r) {\n if (!predicate(r[k])) {\n return false;\n }\n }\n\n return true;\n };\n}\n/**\n * Test if at least one value in a `ReadonlyRecord` satisfies the predicate.\n *\n * @example\n * import { some } from \"fp-ts/ReadonlyRecord\"\n *\n * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: 1, b: -2 }), true);\n * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: -1, b: -2 }), false);\n *\n * @since 2.5.0\n */\n\nexport function some(predicate) {\n return function (r) {\n for (var k in r) {\n if (predicate(r[k])) {\n return true;\n }\n }\n\n return false;\n };\n}\nexport function elem(E) {\n return function (a, fa) {\n if (fa === undefined) {\n var elemE_1 = elem(E);\n return function (fa) {\n return elemE_1(a, fa);\n };\n }\n\n for (var k in fa) {\n if (E.equals(fa[k], a)) {\n return true;\n }\n }\n\n return false;\n };\n}\n/**\n * Union of two `ReadonlyRecord`s.\n * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` combining all the\n * entries of the two inputs.\n * It uses the `concat` function of the provided `Magma` to\n * combine the elements with the same key.\n *\n * @example\n * import { union } from \"fp-ts/ReadonlyRecord\";\n * import { Magma } from \"fp-ts/Magma\";\n *\n * const m1: Magma = { concat: (x: number, y: number) => x + y };\n * assert.deepStrictEqual(union(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4, b: 2, c: 3 });\n * const m2: Magma = { concat: (x: number) => x };\n * assert.deepStrictEqual(union(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1, b: 2, c: 3 });\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var union = function union(M) {\n return function (second) {\n return function (first) {\n if (isEmpty(first)) {\n return second;\n }\n\n if (isEmpty(second)) {\n return first;\n }\n\n var out = {};\n\n for (var k in first) {\n if (has(k, second)) {\n out[k] = M.concat(first[k], second[k]);\n } else {\n out[k] = first[k];\n }\n }\n\n for (var k in second) {\n if (!has(k, out)) {\n out[k] = second[k];\n }\n }\n\n return out;\n };\n };\n};\n/**\n * Intersection of two `ReadonlyRecord`s.\n * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` combining only the\n * entries of the two inputswith the same key.\n * It uses the `concat` function of the provided `Magma` to\n * combine the elements.\n *\n * @example\n * import { intersection } from \"fp-ts/ReadonlyRecord\";\n * import { Magma } from \"fp-ts/Magma\";\n *\n * const m1: Magma = { concat: (x: number, y: number) => x + y };\n * assert.deepStrictEqual(intersection(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4});\n * const m2: Magma = { concat: (x: number) => x };\n * assert.deepStrictEqual(intersection(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1});\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var intersection = function intersection(M) {\n return function (second) {\n return function (first) {\n if (isEmpty(first) || isEmpty(second)) {\n return empty;\n }\n\n var out = {};\n\n for (var k in first) {\n if (has(k, second)) {\n out[k] = M.concat(first[k], second[k]);\n }\n }\n\n return out;\n };\n };\n};\n/**\n * Difference between two `ReadonlyRecord`s.\n * Takes two `ReadonlyRecord`s and produces a `ReadonlyRecord` composed by the\n * entries of the two inputs, removing the entries with the same\n * key in both inputs.\n *\n * @example\n * import { difference } from \"fp-ts/ReadonlyRecord\";\n *\n * assert.deepStrictEqual(difference({ a: 1 })({ a: 1, b: 2 }), { b: 2 });\n * assert.deepStrictEqual(difference({ a: 3 })({ a: 1, b: 2 }), { b: 2 });\n * assert.deepStrictEqual(difference({ a: 3, c: 3 })({ a: 1, b: 2 }), { b: 2, c: 3 });\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var difference = function difference(second) {\n return function (first) {\n if (isEmpty(first)) {\n return second;\n }\n\n if (isEmpty(second)) {\n return first;\n }\n\n var out = {};\n\n for (var k in first) {\n if (!has(k, second)) {\n out[k] = first[k];\n }\n }\n\n for (var k in second) {\n if (!has(k, first)) {\n out[k] = second[k];\n }\n }\n\n return out;\n };\n}; // -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\n\n/** @internal */\n\nexport var _map = function _map(fa, f) {\n return pipe(fa, map(f));\n};\n/** @internal */\n\n/* istanbul ignore next */\n\nexport var _mapWithIndex = function _mapWithIndex(fa, f) {\n return pipe(fa, mapWithIndex(f));\n};\n/** @internal */\n\n/* istanbul ignore next */\n\nexport var _reduce = function _reduce(O) {\n var reduceO = reduce(O);\n return function (fa, b, f) {\n return pipe(fa, reduceO(b, f));\n };\n};\n/** @internal */\n\nexport var _foldMap = function _foldMap(O) {\n return function (M) {\n var foldMapM = foldMap(O)(M);\n return function (fa, f) {\n return pipe(fa, foldMapM(f));\n };\n };\n};\n/** @internal */\n\n/* istanbul ignore next */\n\nexport var _reduceRight = function _reduceRight(O) {\n var reduceRightO = reduceRight(O);\n return function (fa, b, f) {\n return pipe(fa, reduceRightO(b, f));\n };\n};\n/** @internal */\n\n/* istanbul ignore next */\n\nexport var _filter = function _filter(fa, predicate) {\n return pipe(fa, filter(predicate));\n};\n/** @internal */\n\n/* istanbul ignore next */\n\nexport var _filterMap = function _filterMap(fa, f) {\n return pipe(fa, filterMap(f));\n};\n/** @internal */\n\n/* istanbul ignore next */\n\nexport var _partition = function _partition(fa, predicate) {\n return pipe(fa, partition(predicate));\n};\n/** @internal */\n\n/* istanbul ignore next */\n\nexport var _partitionMap = function _partitionMap(fa, f) {\n return pipe(fa, partitionMap(f));\n};\n/** @internal */\n\n/* istanbul ignore next */\n\nexport var _reduceWithIndex = function _reduceWithIndex(O) {\n var reduceWithIndexO = reduceWithIndex(O);\n return function (fa, b, f) {\n return pipe(fa, reduceWithIndexO(b, f));\n };\n};\n/** @internal */\n\nexport var _foldMapWithIndex = function _foldMapWithIndex(O) {\n var foldMapWithIndexO = foldMapWithIndex(O);\n return function (M) {\n var foldMapWithIndexM = foldMapWithIndexO(M);\n return function (fa, f) {\n return pipe(fa, foldMapWithIndexM(f));\n };\n };\n};\n/** @internal */\n\n/* istanbul ignore next */\n\nexport var _reduceRightWithIndex = function _reduceRightWithIndex(O) {\n var reduceRightWithIndexO = reduceRightWithIndex(O);\n return function (fa, b, f) {\n return pipe(fa, reduceRightWithIndexO(b, f));\n };\n};\n/** @internal */\n\n/* istanbul ignore next */\n\nexport var _partitionMapWithIndex = function _partitionMapWithIndex(fa, f) {\n return pipe(fa, partitionMapWithIndex(f));\n};\n/** @internal */\n\n/* istanbul ignore next */\n\nexport var _partitionWithIndex = function _partitionWithIndex(fa, predicateWithIndex) {\n return pipe(fa, partitionWithIndex(predicateWithIndex));\n};\n/** @internal */\n\n/* istanbul ignore next */\n\nexport var _filterMapWithIndex = function _filterMapWithIndex(fa, f) {\n return pipe(fa, filterMapWithIndex(f));\n};\n/** @internal */\n\n/* istanbul ignore next */\n\nexport var _filterWithIndex = function _filterWithIndex(fa, predicateWithIndex) {\n return pipe(fa, filterWithIndex(predicateWithIndex));\n};\n/** @internal */\n\nexport var _traverse = function _traverse(O) {\n var traverseWithIndexO = _traverseWithIndex(O);\n\n return function (F) {\n var traverseWithIndexOF = traverseWithIndexO(F);\n return function (ta, f) {\n return traverseWithIndexOF(ta, flow(SK, f));\n };\n };\n};\n/** @internal */\n\nexport var _sequence = function _sequence(O) {\n var traverseO = _traverse(O);\n\n return function (F) {\n var traverseOF = traverseO(F);\n return function (ta) {\n return traverseOF(ta, identity);\n };\n };\n};\n\nvar _traverseWithIndex = function _traverseWithIndex(O) {\n return function (F) {\n var keysO = keys_(O);\n return function (ta, f) {\n var ks = keysO(ta);\n\n if (ks.length === 0) {\n return F.of(empty);\n }\n\n var fr = F.of({});\n\n var _loop_1 = function _loop_1(key) {\n fr = F.ap(F.map(fr, function (r) {\n return function (b) {\n r[key] = b;\n return r;\n };\n }), f(key, ta[key]));\n };\n\n for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) {\n var key = ks_1[_i];\n\n _loop_1(key);\n }\n\n return fr;\n };\n };\n}; // -------------------------------------------------------------------------------------\n// type class members\n// -------------------------------------------------------------------------------------\n\n/**\n * Given a `Predicate`, it produces a new `ReadonlyRecord` keeping only the entries with a\n * value that satisfies the provided predicate.\n *\n * @example\n * import { filter } from \"fp-ts/ReadonlyRecord\"\n *\n * assert.deepStrictEqual(filter((s: string) => s.length < 4)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * a: \"foo\",\n * b: \"bar\",\n * });\n *\n * @category Filterable\n * @since 2.5.0\n */\n\n\nexport var filter = function filter(predicate) {\n return filterWithIndex(function (_, a) {\n return predicate(a);\n });\n};\n/**\n * Maps a `ReadonlyRecord` with an iterating function that returns an `Option`\n * and it keeps only the `Some` values discarding the `None`s.\n *\n * @example\n * import { filterMap } from \"fp-ts/ReadonlyRecord\"\n * import { option } from \"fp-ts\"\n *\n * const f = (s: string) => s.length < 4 ? option.some(`${s} is short`): option.none\n * assert.deepStrictEqual(filterMap(f)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * a: \"foo is short\",\n * b: \"bar is short\",\n * });\n *\n * @category Filterable\n * @since 2.5.0\n */\n\nexport var filterMap = function filterMap(f) {\n return filterMapWithIndex(function (_, a) {\n return f(a);\n });\n};\n/**\n * Partition a `ReadonlyRecord` into two parts according to a `Predicate`.\n *\n * @example\n * import { partition } from \"fp-ts/ReadonlyRecord\"\n *\n * assert.deepStrictEqual(partition((s: string) => s.length < 4)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * left:{\n * c: \"verylong\"\n * },\n * right: {\n * a: \"foo\",\n * b: \"bar\",\n * },\n * });\n *\n * @category Filterable\n * @since 2.5.0\n */\n\nexport var partition = function partition(predicate) {\n return partitionWithIndex(function (_, a) {\n return predicate(a);\n });\n};\n/**\n * Maps a `ReadonlyRecord` with a function returning an `Either` and\n * partitions the resulting `ReadonlyRecord` into `Left`s and `Right`s.\n *\n * @example\n * import { partitionMap } from \"fp-ts/ReadonlyRecord\"\n * import { either } from \"fp-ts\"\n *\n * const f = (s: string) => (s.length < 4 ? either.right(`${s} is short`) : either.left(`${s} is not short`));\n * assert.deepStrictEqual(partitionMap(f)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * left: {\n * c: \"verylong is not short\",\n * },\n * right: {\n * a: \"foo is short\",\n * b: \"bar is short\",\n * },\n * });\n *\n * @category Filterable\n * @since 2.5.0\n */\n\nexport var partitionMap = function partitionMap(f) {\n return partitionMapWithIndex(function (_, a) {\n return f(a);\n });\n};\nexport function reduce() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (args.length === 1) {\n var reduceWithIndexO_1 = reduceWithIndex(args[0]);\n return function (b, f) {\n return reduceWithIndexO_1(b, function (_, b, a) {\n return f(b, a);\n });\n };\n }\n\n return reduce(S.Ord).apply(void 0, args);\n}\nexport function foldMap(O) {\n if ('compare' in O) {\n var foldMapWithIndexO_1 = foldMapWithIndex(O);\n return function (M) {\n var foldMapWithIndexM = foldMapWithIndexO_1(M);\n return function (f) {\n return foldMapWithIndexM(function (_, a) {\n return f(a);\n });\n };\n };\n }\n\n return foldMap(S.Ord)(O);\n}\nexport function reduceRight() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (args.length === 1) {\n var reduceRightWithIndexO_1 = reduceRightWithIndex(args[0]);\n return function (b, f) {\n return reduceRightWithIndexO_1(b, function (_, b, a) {\n return f(b, a);\n });\n };\n }\n\n return reduceRight(S.Ord).apply(void 0, args);\n}\n/**\n * Compact a `ReadonlyRecord` of `Option`s discarding the `None` values and\n * keeping the `Some` values.\n *\n * @example\n * import { compact } from 'fp-ts/ReadonlyRecord'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(compact({ a: option.some(\"foo\"), b: option.none, c: option.some(\"bar\") }), {\n * a: \"foo\",\n * c: \"bar\",\n * });\n *\n * @category Compactable\n * @since 2.5.0\n */\n\nexport var compact = function compact(r) {\n var out = {};\n\n for (var k in r) {\n if (_.has.call(r, k)) {\n var oa = r[k];\n\n if (_.isSome(oa)) {\n out[k] = oa.value;\n }\n }\n }\n\n return out;\n};\n/**\n * Separate a `ReadonlyRecord` of `Either`s into `Left`s and `Right`s.\n *\n * @example\n * import { separate } from 'fp-ts/ReadonlyRecord'\n * import { either } from 'fp-ts'\n *\n * assert.deepStrictEqual(\n * separate({ a: either.right(\"foo\"), b: either.left(\"bar\"), c: either.right(\"baz\") }),\n * {\n * right: {\n * a: \"foo\",\n * c: \"baz\",\n * },\n * left: {\n * b: \"bar\",\n * },\n * }\n * );\n *\n * @category Compactable\n * @since 2.5.0\n */\n\nexport var separate = function separate(r) {\n var left = {};\n var right = {};\n\n for (var k in r) {\n if (_.has.call(r, k)) {\n var e = r[k];\n\n if (_.isLeft(e)) {\n left[k] = e.left;\n } else {\n right[k] = e.right;\n }\n }\n }\n\n return separated(left, right);\n}; // -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @category instances\n * @since 2.5.0\n */\n\nexport var URI = 'ReadonlyRecord';\nexport function getShow(O) {\n if ('compare' in O) {\n return function (S) {\n return {\n show: function show(r) {\n var elements = collect(O)(function (k, a) {\n return JSON.stringify(k) + \": \" + S.show(a);\n })(r).join(', ');\n return elements === '' ? '{}' : \"{ \" + elements + \" }\";\n }\n };\n };\n }\n\n return getShow(S.Ord)(O);\n}\nexport function getEq(E) {\n var isSubrecordE = isSubrecord(E);\n return fromEquals(function (x, y) {\n return isSubrecordE(x)(y) && isSubrecordE(y)(x);\n });\n}\nexport function getMonoid(S) {\n return {\n concat: function concat(first, second) {\n if (isEmpty(first)) {\n return second;\n }\n\n if (isEmpty(second)) {\n return first;\n }\n\n var r = Object.assign({}, first);\n\n for (var k in second) {\n if (_.has.call(second, k)) {\n r[k] = _.has.call(first, k) ? S.concat(first[k], second[k]) : second[k];\n }\n }\n\n return r;\n },\n empty: empty\n };\n}\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Derivable from `Functor`.\n * Takes a value and a `ReadonlyRecord` of functions and returns a\n * `ReadonlyRecord` by applying each function to the input value.\n *\n * @example\n * import { flap } from \"fp-ts/ReadonlyRecord\"\n *\n * const fab = { x: (n: number) => `${n} times 2`, y: (n: number) => `${n * 2}` };\n * assert.deepStrictEqual(flap(3)(fab), {\n * x: \"3 times 2\",\n * y: \"6\",\n * });\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var flap = /*#__PURE__*/flap_(Functor);\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var FunctorWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * Produces a `Foldable` instance for a `ReadonlyRecord`, using the\n * provided `Ord` to sort the `ReadonlyRecord`'s entries by key.\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getFoldable = function getFoldable(O) {\n return {\n URI: URI,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O)\n };\n};\n/**\n * Produces a `FoldableWithIndex1` instance for a `ReadonlyRecord`, using the\n * provided `Ord` to sort the `ReadonlyRecord`'s entries by key.\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getFoldableWithIndex = function getFoldableWithIndex(O) {\n return {\n URI: URI,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O),\n reduceWithIndex: _reduceWithIndex(O),\n foldMapWithIndex: _foldMapWithIndex(O),\n reduceRightWithIndex: _reduceRightWithIndex(O)\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Compactable = {\n URI: URI,\n compact: compact,\n separate: separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\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 instances\n * @since 2.7.0\n */\n\nexport var FilterableWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex\n};\n/**\n * Produces a `Traversable` instance for a `ReadonlyRecord`, using the\n * provided `Ord` to sort the `ReadonlyRecord`'s entries by key.\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getTraversable = function getTraversable(O) {\n return {\n URI: URI,\n map: _map,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O),\n traverse: _traverse(O),\n sequence: _sequence(O)\n };\n};\n/**\n * Produces a `TraversableWithIndex` instance for a `ReadonlyRecord`, using the\n * provided `Ord` to sort the `ReadonlyRecord`'s entries by key.\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getTraversableWithIndex = function getTraversableWithIndex(O) {\n return {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O),\n reduceWithIndex: _reduceWithIndex(O),\n foldMapWithIndex: _foldMapWithIndex(O),\n reduceRightWithIndex: _reduceRightWithIndex(O),\n traverse: _traverse(O),\n sequence: _sequence(O),\n traverseWithIndex: _traverseWithIndex(O)\n };\n};\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var getWitherable = function getWitherable(O) {\n var T = getTraversable(O);\n return {\n URI: URI,\n map: _map,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O),\n traverse: T.traverse,\n sequence: T.sequence,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: witherDefault(T, Compactable),\n wilt: wiltDefault(T, Compactable)\n };\n};\n/**\n * Given a `Semigroup` in the base type, it produces a `Semigroup`\n * in the `ReadonlyRecord` of the base type.\n * The resulting `Semigroup` concatenates two `ReadonlyRecord`s by\n * `union`.\n *\n * @example\n * import { getUnionSemigroup, ReadonlyRecord } from \"fp-ts/ReadonlyRecord\"\n * import { Semigroup } from \"fp-ts/Semigroup\"\n *\n * const sNumber: Semigroup = { concat: (x, y) => x - y };\n * const sReadonlyRecord: Semigroup> = getUnionSemigroup(sNumber);\n * assert.deepStrictEqual(sReadonlyRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { a: 1, b: -1, c: 4 });\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getUnionSemigroup = function getUnionSemigroup(S) {\n var unionS = union(S);\n return {\n concat: function concat(first, second) {\n return unionS(second)(first);\n }\n };\n};\n/**\n * Same as `getMonoid`.\n * Returns a `Monoid` instance for `ReadonlyRecord`s given a `Semigroup`\n * instance for the base type.\n * The `Monoid` makes the union of two `ReadonlyRecord`s combining the\n * entries that have the same key with the provided `Semigroup`.\n *\n * @example\n * import { SemigroupSum } from 'fp-ts/number'\n * import { getUnionMonoid } from 'fp-ts/ReadonlyRecord'\n *\n * const M = getUnionMonoid(SemigroupSum);\n * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 });\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getUnionMonoid = function getUnionMonoid(S) {\n return {\n concat: getUnionSemigroup(S).concat,\n empty: empty\n };\n};\n/**\n * Given a `Semigroup` in the base type, it produces a `Semigroup`\n * in the `ReadonlyRecord` of the base type.\n * The resulting `Semigroup` concatenates two `ReadonlyRecord`s by\n * `intersection`.\n *\n * @example\n * import { getIntersectionSemigroup, ReadonlyRecord } from \"fp-ts/ReadonlyRecord\"\n * import { Semigroup } from \"fp-ts/Semigroup\"\n *\n * const sNumber: Semigroup = { concat: (x, y) => x - y };\n * const sReadonlyRecord: Semigroup> = getIntersectionSemigroup(sNumber);\n * assert.deepStrictEqual(sReadonlyRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { b: -1 });\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getIntersectionSemigroup = function getIntersectionSemigroup(S) {\n var intersectionS = intersection(S);\n return {\n concat: function concat(first, second) {\n return intersectionS(second)(first);\n }\n };\n};\n/**\n * Produces a `Magma` with a `concat` function that combines\n * two `ReadonlyRecord`s by making the `difference`.\n *\n * @example\n * import { getDifferenceMagma, difference, ReadonlyRecord } from \"fp-ts/ReadonlyRecord\"\n * import { Magma } from \"fp-ts/Magma\"\n *\n * const r1 = { a: 3, c: 3 };\n * const r2 = { a: 1, b: 2 };\n * const m: Magma> = getDifferenceMagma();\n * assert.deepStrictEqual(m.concat(r1, r2), difference(r2)(r1));\n * assert.deepStrictEqual(m.concat(r1, r2), { c: 3, b: 2 });\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getDifferenceMagma = function getDifferenceMagma() {\n return {\n concat: function concat(first, second) {\n return difference(second)(first);\n }\n };\n}; // -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n// tslint:disable: deprecation\n\n/**\n * Use `getFoldable` instead.\n *\n * @category instances\n * @since 2.7.0\n * @deprecated\n */\n\nexport var Foldable = {\n URI: URI,\n reduce: /*#__PURE__*/_reduce(S.Ord),\n foldMap: /*#__PURE__*/_foldMap(S.Ord),\n reduceRight: /*#__PURE__*/_reduceRight(S.Ord)\n};\n/**\n * Use `getFoldableWithIndex` instead.\n *\n * @category instances\n * @since 2.7.0\n * @deprecated\n */\n\nexport var FoldableWithIndex = {\n URI: URI,\n reduce: /*#__PURE__*/_reduce(S.Ord),\n foldMap: /*#__PURE__*/_foldMap(S.Ord),\n reduceRight: /*#__PURE__*/_reduceRight(S.Ord),\n reduceWithIndex: /*#__PURE__*/_reduceWithIndex(S.Ord),\n foldMapWithIndex: /*#__PURE__*/_foldMapWithIndex(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/_reduceRightWithIndex(S.Ord)\n};\n/**\n * Use `getTraversable` instead.\n *\n * @category instances\n * @since 2.7.0\n * @deprecated\n */\n\nexport var Traversable = {\n URI: URI,\n map: _map,\n reduce: /*#__PURE__*/_reduce(S.Ord),\n foldMap: /*#__PURE__*/_foldMap(S.Ord),\n reduceRight: /*#__PURE__*/_reduceRight(S.Ord),\n traverse: /*#__PURE__*/_traverse(S.Ord),\n sequence: sequence\n};\n/**\n * Use `getTraversableWithIndex` instead.\n *\n * @category instances\n * @since 2.7.0\n * @deprecated\n */\n\nexport var TraversableWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: /*#__PURE__*/_reduce(S.Ord),\n foldMap: /*#__PURE__*/_foldMap(S.Ord),\n reduceRight: /*#__PURE__*/_reduceRight(S.Ord),\n reduceWithIndex: /*#__PURE__*/_reduceWithIndex(S.Ord),\n foldMapWithIndex: /*#__PURE__*/_foldMapWithIndex(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/_reduceRightWithIndex(S.Ord),\n traverse: /*#__PURE__*/_traverse(S.Ord),\n sequence: sequence,\n traverseWithIndex: /*#__PURE__*/_traverseWithIndex(S.Ord)\n};\n\nvar _wither = /*#__PURE__*/witherDefault(Traversable, Compactable);\n\nvar _wilt = /*#__PURE__*/wiltDefault(Traversable, Compactable);\n/**\n * Use `getWitherable` instead.\n *\n * @category instances\n * @since 2.7.0\n * @deprecated\n */\n\n\nexport var Witherable = {\n URI: URI,\n map: _map,\n reduce: /*#__PURE__*/_reduce(S.Ord),\n foldMap: /*#__PURE__*/_foldMap(S.Ord),\n reduceRight: /*#__PURE__*/_reduceRight(S.Ord),\n traverse: /*#__PURE__*/_traverse(S.Ord),\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 * Use [`upsertAt`](#upsertat) instead.\n *\n * @category combinators\n * @since 2.5.0\n * @deprecated\n */\n\nexport var insertAt = upsertAt;\nexport function hasOwnProperty(k, r) {\n return _.has.call(r === undefined ? this : r, k);\n}\n/**\n * Use small, specific instances instead.\n *\n * @category instances\n * @since 2.5.0\n * @deprecated\n */\n\nexport var readonlyRecord = {\n URI: URI,\n map: _map,\n reduce: /*#__PURE__*/_reduce(S.Ord),\n foldMap: /*#__PURE__*/_foldMap(S.Ord),\n reduceRight: /*#__PURE__*/_reduceRight(S.Ord),\n traverse: /*#__PURE__*/_traverse(S.Ord),\n sequence: sequence,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n mapWithIndex: _mapWithIndex,\n reduceWithIndex: /*#__PURE__*/_reduceWithIndex(S.Ord),\n foldMapWithIndex: /*#__PURE__*/_foldMapWithIndex(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/_reduceRightWithIndex(S.Ord),\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n traverseWithIndex: /*#__PURE__*/_traverseWithIndex(S.Ord),\n wither: _wither,\n wilt: _wilt\n};","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nimport { pipe } from './function';\nimport { flap as flap_ } from './Functor';\nimport * as _ from './internal';\nimport * as RR from './ReadonlyRecord';\nimport * as S from './string';\nimport { wiltDefault, witherDefault } from './Witherable'; // -------------------------------------------------------------------------------------\n// model\n// -------------------------------------------------------------------------------------\n\n/**\n * Calculate the number of key/value pairs in a `Record`.\n *\n * @example\n * import { size } from \"fp-ts/Record\";\n *\n * assert.deepStrictEqual(size({ a: true, b: 2, c: \"three\" }), 3);\n *\n * @since 2.0.0\n */\n\nexport var size = RR.size;\n/**\n * Test whether a `Record` is empty.\n *\n * @example\n * import { isEmpty } from \"fp-ts/Record\";\n *\n * assert.deepStrictEqual(isEmpty({}), true);\n * assert.deepStrictEqual(isEmpty({ a: 3 }), false);\n *\n * @since 2.0.0\n */\n\nexport var isEmpty = RR.isEmpty;\n\nvar keys_ = function keys_(O) {\n return function (r) {\n return Object.keys(r).sort(O.compare);\n };\n};\n/**\n * The keys of a `Record`, sorted alphabetically.\n *\n * @example\n * import { keys } from \"fp-ts/Record\";\n *\n * assert.deepStrictEqual(keys({ c: 1, a: 2, b: 3 }), [\"a\", \"b\", \"c\"]);\n *\n * @since 2.0.0\n */\n\n\nexport var keys = /*#__PURE__*/keys_(S.Ord);\nexport function collect(O) {\n if (typeof O === 'function') {\n return collect(S.Ord)(O);\n }\n\n var keysO = keys_(O);\n return function (f) {\n return function (r) {\n var out = [];\n\n for (var _i = 0, _a = keysO(r); _i < _a.length; _i++) {\n var key = _a[_i];\n out.push(f(key, r[key]));\n }\n\n return out;\n };\n };\n}\n/**\n * Get a sorted `Array` of the key/value pairs contained in a `Record`.\n * Sorted alphabetically by key.\n *\n * @example\n * import { toArray } from 'fp-ts/Record'\n *\n * const x = { c: 3, a: \"foo\", b: false };\n * assert.deepStrictEqual(toArray(x), [\n * [\"a\", \"foo\"],\n * [\"b\", false],\n * [\"c\", 3],\n * ]);\n *\n * @since 2.0.0\n */\n\nexport var toArray = /*#__PURE__*/collect(S.Ord)(function (k, a) {\n return [k, a];\n});\nexport function toUnfoldable(U) {\n return function (r) {\n var sas = toArray(r);\n var len = sas.length;\n return U.unfold(0, function (b) {\n return b < len ? _.some([sas[b], b + 1]) : _.none;\n });\n };\n}\n/**\n * Insert or replace a key/value pair in a `Record`.\n *\n * @example\n * import { upsertAt } from 'fp-ts/Record'\n *\n * assert.deepStrictEqual(upsertAt(\"a\", 5)({ a: 1, b: 2 }), { a: 5, b: 2 });\n * assert.deepStrictEqual(upsertAt(\"c\", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 });\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var upsertAt = RR.upsertAt;\n/**\n * Test whether or not a key exists in a `Record`.\n *\n * Note. This function is not pipeable because is a `Refinement`.\n *\n * @example\n * import { has } from 'fp-ts/Record'\n *\n * assert.deepStrictEqual(has(\"a\", { a: 1, b: 2 }), true);\n * assert.deepStrictEqual(has(\"c\", { a: 1, b: 2 }), false);\n *\n * @since 2.10.0\n */\n\nexport var has = RR.has;\nexport function deleteAt(k) {\n return function (r) {\n if (!_.has.call(r, k)) {\n return r;\n }\n\n var out = Object.assign({}, r);\n delete out[k];\n return out;\n };\n}\n/**\n * Replace a key/value pair in a `Record`.\n *\n * @returns If the specified key exists it returns an `Option` containing a new `Record`\n * with the entry updated, otherwise it returns `None`\n *\n * @example\n * import { updateAt } from 'fp-ts/Record'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(updateAt(\"a\", 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 }));\n * assert.deepStrictEqual(updateAt(\"c\", 3)({ a: 1, b: 2 }), option.none);\n *\n * @since 2.0.0\n */\n\nexport var updateAt = function updateAt(k, a) {\n return modifyAt(k, function () {\n return a;\n });\n};\n/**\n * Applies a mapping function to one spcific key/value pair in a `Record`.\n *\n * @returns If the specified key exists it returns an `Option` containing a new `Record`\n * with the entry updated, otherwise it returns `None`\n *\n * @example\n * import { modifyAt } from 'fp-ts/Record'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(modifyAt(\"a\", (x: number) => x * 3)({ a: 1, b: 2 }), option.some({ a: 3, b: 2 }));\n * assert.deepStrictEqual(modifyAt(\"c\", (x: number) => x * 3)({ a: 1, b: 2 }), option.none);\n *\n * @since 2.0.0\n */\n\nexport var modifyAt = function modifyAt(k, f) {\n return function (r) {\n if (!has(k, r)) {\n return _.none;\n }\n\n var out = Object.assign({}, r);\n out[k] = f(r[k]);\n return _.some(out);\n };\n};\nexport function pop(k) {\n var deleteAtk = deleteAt(k);\n return function (r) {\n var oa = lookup(k, r);\n return _.isNone(oa) ? _.none : _.some([oa.value, deleteAtk(r)]);\n };\n} // TODO: remove non-curried overloading in v3\n\n/**\n * Test whether one `Record` contains all of the keys and values\n * contained in another `Record`.\n *\n * @example\n * import { isSubrecord } from 'fp-ts/Record'\n * import { string } from 'fp-ts'\n *\n * assert.deepStrictEqual(\n * isSubrecord(string.Eq)({ a: \"foo\", b: \"bar\", c: \"baz\" })({ a: \"foo\", b: \"bar\", c: \"baz\" }),\n * true\n * );\n * assert.deepStrictEqual(\n * isSubrecord(string.Eq)({ a: \"foo\", b: \"bar\", c: \"baz\" })({ a: \"foo\", c: \"baz\" }),\n * true\n * );\n * assert.deepStrictEqual(\n * isSubrecord(string.Eq)({ a: \"foo\", b: \"bar\", c: \"baz\" })({ a: \"foo\", b: \"not-bar\", c: \"baz\" }),\n * false\n * );\n * assert.deepStrictEqual(\n * isSubrecord(string.Eq)({ a: \"foo\", b: \"bar\" })({ a: \"foo\", b: \"bar\", c: \"baz\" }),\n * false\n * );\n *\n * @since 2.0.0\n */\n\nexport var isSubrecord = RR.isSubrecord; // TODO: remove non-curried overloading in v3\n\n/**\n * Lookup the value for a key in a `Record`.\n *\n * @returns If the specified key exists it returns an `Option` containing the value,\n * otherwise it returns `None`\n *\n * @example\n * import { lookup } from 'fp-ts/Record'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(lookup(\"b\")({ a: \"foo\", b: \"bar\" }), option.some(\"bar\"));\n * assert.deepStrictEqual(lookup(\"c\")({ a: \"foo\", b: \"bar\" }), option.none);\n *\n * @since 2.0.0\n */\n\nexport var lookup = RR.lookup;\n/**\n * Map a `Record` passing the key/value pairs to the iterating function.\n *\n * @example\n * import { mapWithIndex } from \"fp-ts/Record\";\n *\n * const f = (k: string, n: number) => `${k.toUpperCase()}-${n}`;\n * assert.deepStrictEqual(mapWithIndex(f)({ a: 3, b: 5 }), { a: \"A-3\", b: \"B-5\" });\n *\n * @since 2.0.0\n */\n\nexport var mapWithIndex = RR.mapWithIndex;\n/**\n * Map a `Record` passing the values to the iterating function.\n *\n * @example\n * import { map } from \"fp-ts/Record\";\n *\n * const f = (n: number) => `-${n}-`;\n * assert.deepStrictEqual(map(f)({ a: 3, b: 5 }), { a: \"-3-\", b: \"-5-\" });\n *\n * @since 2.0.0\n */\n\nexport var map = RR.map;\nexport function reduceWithIndex() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return args.length === 1 ? RR.reduceWithIndex(args[0]) : RR.reduceWithIndex(S.Ord).apply(void 0, args);\n}\nexport function foldMapWithIndex(O) {\n return 'compare' in O ? RR.foldMapWithIndex(O) : RR.foldMapWithIndex(S.Ord)(O);\n}\nexport function reduceRightWithIndex() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return args.length === 1 ? RR.reduceRightWithIndex(args[0]) : RR.reduceRightWithIndex(S.Ord).apply(void 0, args);\n}\n/**\n * Create a `Record` with one key/value pair.\n *\n * @example\n * import { singleton } from \"fp-ts/Record\";\n *\n * assert.deepStrictEqual(singleton(\"a\", 1), { a: 1 });\n *\n * @since 2.0.0\n */\n\nexport var singleton = RR.singleton;\nexport function traverseWithIndex(F) {\n return RR.traverseWithIndex(F);\n}\nexport function traverse(F) {\n return RR.traverse(F);\n}\nexport function sequence(F) {\n return RR.sequence(F);\n}\n/**\n * @category Witherable\n * @since 2.6.5\n */\n\nexport var wither = function wither(F) {\n var traverseF = traverse(F);\n return function (f) {\n return function (fa) {\n return F.map(pipe(fa, traverseF(f)), compact);\n };\n };\n};\n/**\n * @category Witherable\n * @since 2.6.5\n */\n\nexport var wilt = function wilt(F) {\n var traverseF = traverse(F);\n return function (f) {\n return function (fa) {\n return F.map(pipe(fa, traverseF(f)), separate);\n };\n };\n};\n/**\n * Maps a `Record` with a function returning an `Either` and\n * partitions the resulting `Record` into `Left`s and `Right`s.\n *\n * @example\n * import { partitionMapWithIndex } from \"fp-ts/Record\"\n * import { either } from \"fp-ts\"\n *\n * const f = (key: string, a: number) =>\n * a >= 0 ? either.right(`${key} is >= 0 (${a})`) : either.left(`${key} is < 0 (${a})`);\n * assert.deepStrictEqual(partitionMapWithIndex(f)({ a: -1, b: 2, c: 123 }), {\n * left: {\n * a: \"a is < 0 (-1)\",\n * },\n * right: {\n * b: \"b is >= 0 (2)\",\n * c: \"c is >= 0 (123)\",\n * },\n * });\n *\n * @since 2.0.0\n */\n\nexport var partitionMapWithIndex = RR.partitionMapWithIndex;\nexport function partitionWithIndex(predicateWithIndex) {\n return RR.partitionWithIndex(predicateWithIndex);\n}\n/**\n * Maps a `Record` with an iterating function that takes key and value and\n * returns an `Option`, keeping only the `Some` values and discarding `None`s.\n *\n * @example\n * import { filterMapWithIndex } from \"fp-ts/Record\"\n * import { option } from \"fp-ts\"\n *\n * const f = (key: string, a: number) => (a >= 0 ? option.some(`${key}${a}`) : option.none);\n * assert.deepStrictEqual(filterMapWithIndex(f)({ a: -1, b: 2, c: 3 }), {\n * b: \"b2\",\n * c: \"c3\",\n * });\n *\n * @since 2.0.0\n */\n\nexport var filterMapWithIndex = RR.filterMapWithIndex;\nexport function filterWithIndex(predicateWithIndex) {\n return RR.filterWithIndex(predicateWithIndex);\n}\nexport function fromFoldable(M, F) {\n return RR.fromFoldable(M, F);\n}\nexport function fromFoldableMap(M, F) {\n return RR.fromFoldableMap(M, F);\n}\n/**\n * Test if every value in a `Record` satisfies the predicate.\n *\n * @example\n * import { every } from \"fp-ts/Record\"\n *\n * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: 2 }), true);\n * assert.deepStrictEqual(every((n: number) => n >= 0)({ a: 1, b: -1 }), false);\n *\n * @since 2.0.0\n */\n\nexport var every = RR.every;\n/**\n * Test if at least one value in a `Record` satisfies the predicate.\n *\n * @example\n * import { some } from \"fp-ts/Record\"\n *\n * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: 1, b: -2 }), true);\n * assert.deepStrictEqual(some((n: number) => n >= 0)({ a: -1, b: -2 }), false);\n *\n * @since 2.0.0\n */\n\nexport var some = RR.some; // TODO: remove non-curried overloading in v3\n\n/**\n * Given an `Eq` checks if a `Record` contains an entry with\n * value equal to a provided value.\n *\n * @example\n * import { elem } from \"fp-ts/Record\"\n * import { number } from \"fp-ts\"\n *\n * assert.deepStrictEqual(elem(number.Eq)(123, { foo: 123, bar: 234 }), true);\n * assert.deepStrictEqual(elem(number.Eq)(-7, { foo: 123, bar: 234 }), false);\n *\n * @since 2.0.0\n */\n\nexport var elem = RR.elem;\n/**\n * Union of two `Record`s.\n * Takes two `Record`s and produces a `Record` combining all the\n * entries of the two inputs.\n * It uses the `concat` function of the provided `Magma` to\n * combine the elements with the same key.\n *\n * @example\n * import { union } from \"fp-ts/Record\";\n * import { Magma } from \"fp-ts/Magma\";\n *\n * const m1: Magma = { concat: (x: number, y: number) => x + y };\n * assert.deepStrictEqual(union(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4, b: 2, c: 3 });\n * const m2: Magma = { concat: (x: number) => x };\n * assert.deepStrictEqual(union(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1, b: 2, c: 3 });\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var union = function union(M) {\n var unionM = RR.union(M);\n return function (second) {\n return function (first) {\n if (isEmpty(first)) {\n return __assign({}, second);\n }\n\n if (isEmpty(second)) {\n return __assign({}, first);\n }\n\n return unionM(second)(first);\n };\n };\n};\n/**\n * Intersection of two `Record`s.\n * Takes two `Record`s and produces a `Record` combining only the\n * entries of the two inputswith the same key.\n * It uses the `concat` function of the provided `Magma` to\n * combine the elements.\n *\n * @example\n * import { intersection } from \"fp-ts/Record\";\n * import { Magma } from \"fp-ts/Magma\";\n *\n * const m1: Magma = { concat: (x: number, y: number) => x + y };\n * assert.deepStrictEqual(intersection(m1)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 4});\n * const m2: Magma = { concat: (x: number) => x };\n * assert.deepStrictEqual(intersection(m2)({ a: 3, c: 3 })({ a: 1, b: 2 }), { a: 1});\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var intersection = function intersection(M) {\n return function (second) {\n return function (first) {\n if (isEmpty(first) || isEmpty(second)) {\n return {};\n }\n\n return RR.intersection(M)(second)(first);\n };\n };\n};\n/**\n * Difference between two `Record`s.\n * Takes two `Record`s and produces a `Record` composed by the\n * entries of the two inputs, removing the entries with the same\n * key in both inputs.\n *\n * @example\n * import { difference } from \"fp-ts/Record\";\n *\n * assert.deepStrictEqual(difference({ a: 1 })({ a: 1, b: 2 }), { b: 2 });\n * assert.deepStrictEqual(difference({ a: 3 })({ a: 1, b: 2 }), { b: 2 });\n * assert.deepStrictEqual(difference({ a: 3, c: 3 })({ a: 1, b: 2 }), { b: 2, c: 3 });\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var difference = function difference(second) {\n return function (first) {\n if (isEmpty(first)) {\n return __assign({}, second);\n }\n\n if (isEmpty(second)) {\n return __assign({}, first);\n }\n\n return RR.difference(second)(first);\n };\n}; // -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\n\nvar _map = RR._map;\nvar _mapWithIndex = RR._mapWithIndex;\nvar _reduce = RR._reduce;\nvar _foldMap = RR._foldMap;\nvar _reduceRight = RR._reduceRight;\nvar _filter = RR._filter;\nvar _filterMap = RR._filterMap;\nvar _partition = RR._partition;\nvar _partitionMap = RR._partitionMap;\nvar _reduceWithIndex = RR._reduceWithIndex;\nvar _foldMapWithIndex = RR._foldMapWithIndex;\nvar _reduceRightWithIndex = RR._reduceRightWithIndex;\nvar _partitionMapWithIndex = RR._partitionMapWithIndex;\nvar _partitionWithIndex = RR._partitionWithIndex;\nvar _filterMapWithIndex = RR._filterMapWithIndex;\nvar _filterWithIndex = RR._filterWithIndex;\nvar _traverse = RR._traverse;\nvar _sequence = RR._sequence;\n\nvar _traverseWithIndex = function _traverseWithIndex(O) {\n return function (F) {\n var keysO = keys_(O);\n return function (ta, f) {\n var ks = keysO(ta);\n\n if (ks.length === 0) {\n return F.of({});\n }\n\n var fr = F.of({});\n\n var _loop_1 = function _loop_1(key) {\n fr = F.ap(F.map(fr, function (r) {\n return function (b) {\n r[key] = b;\n return r;\n };\n }), f(key, ta[key]));\n };\n\n for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) {\n var key = ks_1[_i];\n\n _loop_1(key);\n }\n\n return fr;\n };\n };\n}; // -------------------------------------------------------------------------------------\n// type class members\n// -------------------------------------------------------------------------------------\n\n/**\n * Given a `Predicate`, it produces a new `Record` keeping only the entries with a\n * value that satisfies the provided predicate.\n *\n * @example\n * import { filter } from \"fp-ts/Record\"\n *\n * assert.deepStrictEqual(filter((s: string) => s.length < 4)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * a: \"foo\",\n * b: \"bar\",\n * });\n *\n * @category Filterable\n * @since 2.0.0\n */\n\n\nexport var filter = RR.filter;\n/**\n * Maps a `Record` with an iterating function that returns an `Option`\n * and it keeps only the `Some` values discarding the `None`s.\n *\n * @example\n * import { filterMap } from \"fp-ts/Record\"\n * import { option } from \"fp-ts\"\n *\n * const f = (s: string) => s.length < 4 ? option.some(`${s} is short`): option.none\n * assert.deepStrictEqual(filterMap(f)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * a: \"foo is short\",\n * b: \"bar is short\",\n * });\n *\n * @category Filterable\n * @since 2.0.0\n */\n\nexport var filterMap = RR.filterMap;\n/**\n * Partition a `Record` into two parts according to a `Predicate`.\n *\n * @example\n * import { partition } from \"fp-ts/Record\"\n *\n * assert.deepStrictEqual(partition((s: string) => s.length < 4)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * left:{\n * c: \"verylong\"\n * },\n * right: {\n * a: \"foo\",\n * b: \"bar\",\n * },\n * });\n *\n * @category Filterable\n * @since 2.0.0\n */\n\nexport var partition = RR.partition;\n/**\n * Maps a `Record` with a function returning an `Either` and\n * partitions the resulting `Record` into `Left`s and `Right`s.\n *\n * @example\n * import { partitionMap } from \"fp-ts/Record\"\n * import { either } from \"fp-ts\"\n *\n * const f = (s: string) => (s.length < 4 ? either.right(`${s} is short`) : either.left(`${s} is not short`));\n * assert.deepStrictEqual(partitionMap(f)({ a: \"foo\", b: \"bar\", c: \"verylong\" }), {\n * left: {\n * c: \"verylong is not short\",\n * },\n * right: {\n * a: \"foo is short\",\n * b: \"bar is short\",\n * },\n * });\n *\n * @category Filterable\n * @since 2.0.0\n */\n\nexport var partitionMap = RR.partitionMap;\nexport function reduce() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return args.length === 1 ? RR.reduce(args[0]) : RR.reduce(S.Ord).apply(void 0, args);\n}\nexport function foldMap(O) {\n return 'compare' in O ? RR.foldMap(O) : RR.foldMap(S.Ord)(O);\n}\nexport function reduceRight() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return args.length === 1 ? RR.reduceRight(args[0]) : RR.reduceRight(S.Ord).apply(void 0, args);\n}\n/**\n * Compact a `Record` of `Option`s discarding the `None` values and\n * keeping the `Some` values.\n *\n * @example\n * import { compact } from 'fp-ts/Record'\n * import { option } from 'fp-ts'\n *\n * assert.deepStrictEqual(compact({ a: option.some(\"foo\"), b: option.none, c: option.some(\"bar\") }), {\n * a: \"foo\",\n * c: \"bar\",\n * });\n *\n * @category Compactable\n * @since 2.0.0\n */\n\nexport var compact = RR.compact;\n/**\n * Separate a `Record` of `Either`s into `Left`s and `Right`s.\n *\n * @example\n * import { separate } from 'fp-ts/Record'\n * import { either } from 'fp-ts'\n *\n * assert.deepStrictEqual(\n * separate({ a: either.right(\"foo\"), b: either.left(\"bar\"), c: either.right(\"baz\") }),\n * {\n * right: {\n * a: \"foo\",\n * c: \"baz\",\n * },\n * left: {\n * b: \"bar\",\n * },\n * }\n * );\n *\n * @category Compactable\n * @since 2.0.0\n */\n\nexport var separate = RR.separate; // -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @category instances\n * @since 2.0.0\n */\n\nexport var URI = 'Record';\nexport function getShow(O) {\n return 'compare' in O ? RR.getShow(O) : RR.getShow(S.Ord)(O);\n}\n/**\n * Given an `Eq` for the base type, it produces an `Eq`\n * for a `Record` of that base type.\n *\n * @example\n * import { getEq } from \"fp-ts/Record\";\n * import { string } from \"fp-ts\";\n * import { Eq } from \"fp-ts/Eq\";\n *\n * const eq: Eq> = getEq(string.Eq);\n * assert.deepStrictEqual(eq.equals({ a: \"foo\" }, { b: \"bar\" }), false);\n * assert.deepStrictEqual(eq.equals({ a: \"foo\" }, { a: \"foo\" }), true);\n *\n * @category instances\n * @since 2.0.0\n */\n\nexport var getEq = RR.getEq;\n/**\n * Returns a `Monoid` instance for `Record`s, given a `Semigroup`\n * instance for the base type.\n * The `Monoid` makes the union of two `Record`s comining the\n * overlapping entries with the provided `Semigroup`.\n *\n * @example\n * import { SemigroupSum } from 'fp-ts/number'\n * import { getMonoid } from 'fp-ts/Record'\n *\n * const M = getMonoid(SemigroupSum);\n * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 });\n *\n * @category instances\n * @since 2.0.0\n */\n\nexport var getMonoid = RR.getMonoid;\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Derivable from `Functor`.\n * Takes a value and a `Record` of functions and returns a\n * `Record` by applying each function to the input value.\n *\n * @example\n * import { flap } from \"fp-ts/Record\"\n *\n * const fab = { x: (n: number) => `${n} times 2`, y: (n: number) => `${n * 2}` };\n * assert.deepStrictEqual(flap(3)(fab), {\n * x: \"3 times 2\",\n * y: \"6\",\n * });\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var flap = /*#__PURE__*/flap_(Functor);\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var FunctorWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * Produces a `Foldable` instance for a `Record`, using the\n * provided `Ord` to sort the `Record`'s entries by key.\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getFoldable = function getFoldable(O) {\n return {\n URI: URI,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O)\n };\n};\n/**\n * Produces a `FoldableWithIndex1` instance for a `Record`, using the\n * provided `Ord` to sort the `Record`'s entries by key.\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getFoldableWithIndex = function getFoldableWithIndex(O) {\n return {\n URI: URI,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O),\n reduceWithIndex: _reduceWithIndex(O),\n foldMapWithIndex: _foldMapWithIndex(O),\n reduceRightWithIndex: _reduceRightWithIndex(O)\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Compactable = {\n URI: URI,\n compact: compact,\n separate: separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\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 instances\n * @since 2.7.0\n */\n\nexport var FilterableWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex\n};\n/**\n * Produces a `Traversable` instance for a `Record`, using the\n * provided `Ord` to sort the `Record`'s entries by key.\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getTraversable = function getTraversable(O) {\n return {\n URI: URI,\n map: _map,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O),\n traverse: _traverse(O),\n sequence: _sequence(O)\n };\n};\n/**\n * Produces a `TraversableWithIndex` instance for a `Record`, using the\n * provided `Ord` to sort the `Record`'s entries by key.\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getTraversableWithIndex = function getTraversableWithIndex(O) {\n return {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O),\n reduceWithIndex: _reduceWithIndex(O),\n foldMapWithIndex: _foldMapWithIndex(O),\n reduceRightWithIndex: _reduceRightWithIndex(O),\n traverse: _traverse(O),\n sequence: _sequence(O),\n traverseWithIndex: _traverseWithIndex(O)\n };\n};\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var getWitherable = function getWitherable(O) {\n var T = getTraversable(O);\n return {\n URI: URI,\n map: _map,\n reduce: _reduce(O),\n foldMap: _foldMap(O),\n reduceRight: _reduceRight(O),\n traverse: T.traverse,\n sequence: T.sequence,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: witherDefault(T, Compactable),\n wilt: wiltDefault(T, Compactable)\n };\n};\n/**\n * Given a `Semigroup` in the base type, it produces a `Semigroup`\n * in the `Record` of the base type.\n * The resulting `Semigroup` concatenates two `Record`s by\n * `union`.\n *\n * @example\n * import { getUnionSemigroup } from \"fp-ts/Record\"\n * import { Semigroup } from \"fp-ts/Semigroup\"\n *\n * const sNumber: Semigroup = { concat: (x, y) => x - y };\n * const sRecord: Semigroup> = getUnionSemigroup(sNumber);\n * assert.deepStrictEqual(sRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { a: 1, b: -1, c: 4 });\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getUnionSemigroup = function getUnionSemigroup(S) {\n var unionS = union(S);\n return {\n concat: function concat(first, second) {\n return unionS(second)(first);\n }\n };\n};\n/**\n * Same as `getMonoid`.\n * Returns a `Monoid` instance for `Record`s given a `Semigroup`\n * instance for the base type.\n * The `Monoid` makes the union of two `Record`s combining the\n * entries that have the same key with the provided `Semigroup`.\n *\n * @example\n * import { SemigroupSum } from 'fp-ts/number'\n * import { getUnionMonoid } from 'fp-ts/Record'\n *\n * const M = getUnionMonoid(SemigroupSum);\n * assert.deepStrictEqual(M.concat({ foo: 123, bar: 234 }, { foo: 456, baz: 567 }), { foo: 579 , bar: 234, baz: 567 });\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getUnionMonoid = function getUnionMonoid(S) {\n return {\n concat: getUnionSemigroup(S).concat,\n empty: {}\n };\n};\n/**\n * Given a `Semigroup` in the base type, it produces a `Semigroup`\n * in the `Record` of the base type.\n * The resulting `Semigroup` concatenates two `Record`s by\n * `intersection`.\n *\n * @example\n * import { getIntersectionSemigroup } from \"fp-ts/Record\"\n * import { Semigroup } from \"fp-ts/Semigroup\"\n *\n * const sNumber: Semigroup = { concat: (x, y) => x - y };\n * const sRecord: Semigroup> = getIntersectionSemigroup(sNumber);\n * assert.deepStrictEqual(sRecord.concat({ a: 1, b: 2 }, { b: 3, c: 4 }), { b: -1 });\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getIntersectionSemigroup = function getIntersectionSemigroup(S) {\n var intersectionS = intersection(S);\n return {\n concat: function concat(first, second) {\n return intersectionS(second)(first);\n }\n };\n};\n/**\n * Produces a `Magma` with a `concat` function that combines\n * two `Record`s by making the `difference`.\n *\n * @example\n * import { getDifferenceMagma, difference } from \"fp-ts/Record\"\n * import { Magma } from \"fp-ts/Magma\"\n *\n * const r1 = { a: 3, c: 3 };\n * const r2 = { a: 1, b: 2 };\n * const m: Magma> = getDifferenceMagma();\n * assert.deepStrictEqual(m.concat(r1, r2), difference(r2)(r1));\n * assert.deepStrictEqual(m.concat(r1, r2), { c: 3, b: 2 });\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getDifferenceMagma = function getDifferenceMagma() {\n return {\n concat: function concat(first, second) {\n return difference(second)(first);\n }\n };\n}; // -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n// tslint:disable: deprecation\n\n/**\n * Use `getFoldable` instead.\n *\n * @category instances\n * @since 2.7.0\n * @deprecated\n */\n\nexport var Foldable = {\n URI: URI,\n reduce: /*#__PURE__*/_reduce(S.Ord),\n foldMap: /*#__PURE__*/_foldMap(S.Ord),\n reduceRight: /*#__PURE__*/_reduceRight(S.Ord)\n};\n/**\n * Use `getFoldableWithIndex` instead.\n *\n * @category instances\n * @since 2.7.0\n * @deprecated\n */\n\nexport var FoldableWithIndex = {\n URI: URI,\n reduce: /*#__PURE__*/_reduce(S.Ord),\n foldMap: /*#__PURE__*/_foldMap(S.Ord),\n reduceRight: /*#__PURE__*/_reduceRight(S.Ord),\n reduceWithIndex: /*#__PURE__*/_reduceWithIndex(S.Ord),\n foldMapWithIndex: /*#__PURE__*/_foldMapWithIndex(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/_reduceRightWithIndex(S.Ord)\n};\n/**\n * Use `getTraversable` instead.\n *\n * @category instances\n * @since 2.7.0\n * @deprecated\n */\n\nexport var Traversable = {\n URI: URI,\n map: _map,\n reduce: /*#__PURE__*/_reduce(S.Ord),\n foldMap: /*#__PURE__*/_foldMap(S.Ord),\n reduceRight: /*#__PURE__*/_reduceRight(S.Ord),\n traverse: /*#__PURE__*/_traverse(S.Ord),\n sequence: sequence\n};\n/**\n * Use the `getTraversableWithIndex` instead.\n *\n * @category instances\n * @since 2.7.0\n * @deprecated\n */\n\nexport var TraversableWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: /*#__PURE__*/_reduce(S.Ord),\n foldMap: /*#__PURE__*/_foldMap(S.Ord),\n reduceRight: /*#__PURE__*/_reduceRight(S.Ord),\n reduceWithIndex: /*#__PURE__*/_reduceWithIndex(S.Ord),\n foldMapWithIndex: /*#__PURE__*/_foldMapWithIndex(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/_reduceRightWithIndex(S.Ord),\n traverse: /*#__PURE__*/_traverse(S.Ord),\n sequence: sequence,\n traverseWithIndex: /*#__PURE__*/_traverseWithIndex(S.Ord)\n};\n\nvar _wither = /*#__PURE__*/witherDefault(Traversable, Compactable);\n\nvar _wilt = /*#__PURE__*/wiltDefault(Traversable, Compactable);\n/**\n * Use `getWitherable` instead.\n *\n * @category instances\n * @since 2.7.0\n * @deprecated\n */\n\n\nexport var Witherable = {\n URI: URI,\n map: _map,\n reduce: /*#__PURE__*/_reduce(S.Ord),\n foldMap: /*#__PURE__*/_foldMap(S.Ord),\n reduceRight: /*#__PURE__*/_reduceRight(S.Ord),\n traverse: /*#__PURE__*/_traverse(S.Ord),\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 * Use a new `{}` instead.\n *\n * @since 2.0.0\n * @deprecated\n */\n\nexport var empty = {};\n/**\n * Use [`upsertAt`](#upsertat) instead.\n *\n * @since 2.0.0\n * @deprecated\n */\n\nexport var insertAt = upsertAt;\n/**\n * Use [`has`](#has) instead.\n *\n * @since 2.0.0\n * @deprecated\n */\n\nexport var hasOwnProperty = RR.hasOwnProperty;\n/**\n * Use small, specific instances instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var record = {\n URI: URI,\n map: _map,\n reduce: /*#__PURE__*/_reduce(S.Ord),\n foldMap: /*#__PURE__*/_foldMap(S.Ord),\n reduceRight: /*#__PURE__*/_reduceRight(S.Ord),\n traverse: /*#__PURE__*/_traverse(S.Ord),\n sequence: sequence,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n mapWithIndex: _mapWithIndex,\n reduceWithIndex: /*#__PURE__*/_reduceWithIndex(S.Ord),\n foldMapWithIndex: /*#__PURE__*/_foldMapWithIndex(S.Ord),\n reduceRightWithIndex: /*#__PURE__*/_reduceRightWithIndex(S.Ord),\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n traverseWithIndex: /*#__PURE__*/_traverseWithIndex(S.Ord),\n wither: _wither,\n wilt: _wilt\n};","/**\n * ```ts\n * interface IO
    {\n * (): A\n * }\n * ```\n *\n * `IO` represents a non-deterministic synchronous computation that can cause side effects, yields a value of\n * type `A` and **never fails**. If you want to represent a synchronous computation that may fail, please see\n * `IOEither`.\n *\n * @since 2.0.0\n */\nimport { getApplicativeMonoid } from './Applicative';\nimport { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup } from './Apply';\nimport { bind as bind_, chainFirst as chainFirst_ } from './Chain';\nimport { constant, identity } from './function';\nimport { bindTo as bindTo_, flap as flap_ } from './Functor';\nimport * as _ from './internal'; // -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\n\nvar _map = function _map(ma, f) {\n return function () {\n return f(ma());\n };\n};\n\nvar _ap = function _ap(mab, ma) {\n return function () {\n return mab()(ma());\n };\n};\n\nvar _chain = function _chain(ma, f) {\n return function () {\n return f(ma())();\n };\n};\n\nvar _chainRec = function _chainRec(a, f) {\n return function () {\n var e = f(a)();\n\n while (e._tag === 'Left') {\n e = f(e.left)();\n }\n\n return e.right;\n };\n}; // -------------------------------------------------------------------------------------\n// type class members\n// -------------------------------------------------------------------------------------\n\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category Functor\n * @since 2.0.0\n */\n\n\nexport var map = function map(f) {\n return function (fa) {\n return _map(fa, f);\n };\n};\n/**\n * Apply a function to an argument under a type constructor.\n *\n * @category Apply\n * @since 2.0.0\n */\n\nexport var ap = function ap(fa) {\n return function (fab) {\n return _ap(fab, fa);\n };\n};\n/**\n * @category Pointed\n * @since 2.0.0\n */\n\nexport var of = constant;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @category Monad\n * @since 2.0.0\n */\n\nexport var chain = function chain(f) {\n return function (ma) {\n return _chain(ma, f);\n };\n};\n/**\n * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var flatten = /*#__PURE__*/chain(identity); // -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @category instances\n * @since 2.0.0\n */\n\nexport var URI = 'IO';\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Derivable from `Functor`.\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var flap = /*#__PURE__*/flap_(Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Apply = {\n URI: URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * Derivable from `Apply`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var apFirst = /*#__PURE__*/apFirst_(Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * Derivable from `Apply`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var apSecond = /*#__PURE__*/apSecond_(Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\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 */\n\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: _chain\n};\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 * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var chainFirst = /*#__PURE__*/chainFirst_(Chain);\n/**\n * @category constructors\n * @since 2.7.0\n * @deprecated\n */\n\nexport var fromIO = identity;\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var MonadIO = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: _chain,\n fromIO: fromIO\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var ChainRec = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: _chainRec\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var FromIO = {\n URI: URI,\n fromIO: identity\n}; // -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.9.0\n */\n\nexport var Do = /*#__PURE__*/of(_.emptyRecord);\n/**\n * @since 2.8.0\n */\n\nexport var bindTo = /*#__PURE__*/bindTo_(Functor);\n/**\n * @since 2.8.0\n */\n\nexport var bind = /*#__PURE__*/bind_(Chain); // -------------------------------------------------------------------------------------\n// pipeable sequence S\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.8.0\n */\n\nexport var apS = /*#__PURE__*/apS_(Apply); // -------------------------------------------------------------------------------------\n// sequence T\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.11.0\n */\n\nexport var ApT = /*#__PURE__*/of(_.emptyReadonlyArray); // -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`.\n *\n * @since 2.11.0\n */\n\nexport var traverseReadonlyNonEmptyArrayWithIndex = function traverseReadonlyNonEmptyArrayWithIndex(f) {\n return function (as) {\n return function () {\n var out = [f(0, _.head(as))()];\n\n for (var i = 1; i < as.length; i++) {\n out.push(f(i, as[i])());\n }\n\n return out;\n };\n };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @since 2.11.0\n */\n\nexport var traverseReadonlyArrayWithIndex = function traverseReadonlyArrayWithIndex(f) {\n var g = traverseReadonlyNonEmptyArrayWithIndex(f);\n return function (as) {\n return _.isNonEmpty(as) ? g(as) : ApT;\n };\n};\n/**\n * @since 2.9.0\n */\n\nexport var traverseArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * @since 2.9.0\n */\n\nexport var traverseArray = function traverseArray(f) {\n return traverseReadonlyArrayWithIndex(function (_, a) {\n return f(a);\n });\n};\n/**\n * @since 2.9.0\n */\n\nexport var sequenceArray = /*#__PURE__*/traverseArray(identity); // -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n// tslint:disable: deprecation\n\n/**\n * Use small, specific instances instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var io = {\n URI: URI,\n map: _map,\n of: of,\n ap: _ap,\n chain: _chain,\n fromIO: fromIO,\n chainRec: _chainRec\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getSemigroup = /*#__PURE__*/getApplySemigroup(Apply);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getMonoid = /*#__PURE__*/getApplicativeMonoid(Applicative);","import { getApplicativeMonoid } from './Applicative';\nimport { ap as ap_, apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply';\nimport { bind as bind_, chainFirst as chainFirst_ } from './Chain';\nimport { compact as compact_, separate as separate_ } from './Compactable';\nimport * as E from './Either';\nimport * as ET from './EitherT';\nimport { filter as filter_, filterMap as filterMap_, partition as partition_, partitionMap as partitionMap_ } from './Filterable';\nimport { chainEitherK as chainEitherK_, chainOptionK as chainOptionK_, filterOrElse as filterOrElse_, fromEitherK as fromEitherK_, fromOption as fromOption_, fromOptionK as fromOptionK_, fromPredicate as fromPredicate_ } from './FromEither';\nimport { chainFirstIOK as chainFirstIOK_, chainIOK as chainIOK_, fromIOK as fromIOK_ } from './FromIO';\nimport { flow, identity, pipe, SK } from './function';\nimport { bindTo as bindTo_, flap as flap_ } from './Functor';\nimport * as _ from './internal';\nimport * as I from './IO'; // -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var left = /*#__PURE__*/ET.left(I.Pointed);\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var right = /*#__PURE__*/ET.right(I.Pointed);\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var rightIO = /*#__PURE__*/ET.rightF(I.Functor);\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var leftIO = /*#__PURE__*/ET.leftF(I.Functor); // -------------------------------------------------------------------------------------\n// natural transformations\n// -------------------------------------------------------------------------------------\n\n/**\n * @category natural transformations\n * @since 2.0.0\n */\n\nexport var fromEither = I.of;\n/**\n * @category natural transformations\n * @since 2.7.0\n */\n\nexport var fromIO = rightIO; // -------------------------------------------------------------------------------------\n// destructors\n// -------------------------------------------------------------------------------------\n\n/**\n * @category destructors\n * @since 2.10.0\n */\n\nexport var match = /*#__PURE__*/ET.match(I.Functor);\n/**\n * Less strict version of [`match`](#match).\n *\n * @category destructors\n * @since 2.10.0\n */\n\nexport var matchW = match;\n/**\n * @category destructors\n * @since 2.10.0\n */\n\nexport var matchE = /*#__PURE__*/ET.matchE(I.Monad);\n/**\n * Alias of [`matchE`](#matche).\n *\n * @category destructors\n * @since 2.0.0\n */\n\nexport var fold = matchE;\n/**\n * Less strict version of [`matchE`](#matche).\n *\n * @category destructors\n * @since 2.10.0\n */\n\nexport var matchEW = matchE;\n/**\n * Alias of [`matchEW`](#matchew).\n *\n * @category destructors\n * @since 2.10.0\n */\n\nexport var foldW = matchEW;\n/**\n * @category destructors\n * @since 2.0.0\n */\n\nexport var getOrElse = /*#__PURE__*/ET.getOrElse(I.Monad);\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * @category destructors\n * @since 2.6.0\n */\n\nexport var getOrElseW = getOrElse; // -------------------------------------------------------------------------------------\n// interop\n// -------------------------------------------------------------------------------------\n\n/**\n * Constructs a new `IOEither` from a function that performs a side effect and might throw\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @category interop\n * @since 2.0.0\n */\n\nexport var tryCatch = function tryCatch(f, onThrow) {\n return function () {\n return E.tryCatch(f, onThrow);\n };\n};\n/**\n * Converts a function that may throw to one returning a `IOEither`.\n *\n * @category interop\n * @since 2.10.0\n */\n\nexport var tryCatchK = function tryCatchK(f, onThrow) {\n return function () {\n var a = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n\n return tryCatch(function () {\n return f.apply(void 0, a);\n }, onThrow);\n };\n};\n/**\n * @category interop\n * @since 2.10.0\n */\n\nexport var toUnion = /*#__PURE__*/ET.toUnion(I.Functor); // -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n\n/**\n * @category combinators\n * @since 2.0.0\n */\n\nexport var orElse = /*#__PURE__*/ET.orElse(I.Monad);\n/**\n * Less strict version of [`orElse`](#orelse).\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var orElseW = orElse;\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var orElseFirst = /*#__PURE__*/ET.orElseFirst(I.Monad);\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var orElseFirstW = orElseFirst;\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var orLeft = /*#__PURE__*/ET.orLeft(I.Monad);\n/**\n * @category combinators\n * @since 2.0.0\n */\n\nexport var swap = /*#__PURE__*/ET.swap(I.Functor); // -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\n\n/* istanbul ignore next */\n\nvar _map = function _map(fa, f) {\n return pipe(fa, map(f));\n};\n/* istanbul ignore next */\n\n\nvar _ap = function _ap(fab, fa) {\n return pipe(fab, ap(fa));\n};\n\nvar _apSeq = function _apSeq(fab, fa) {\n return pipe(fab, chain(function (f) {\n return pipe(fa, map(f));\n }));\n};\n/* istanbul ignore next */\n\n\nvar _chain = function _chain(ma, f) {\n return pipe(ma, chain(f));\n};\n/* istanbul ignore next */\n\n\nvar _bimap = function _bimap(fa, f, g) {\n return pipe(fa, bimap(f, g));\n};\n/* istanbul ignore next */\n\n\nvar _mapLeft = function _mapLeft(fa, f) {\n return pipe(fa, mapLeft(f));\n};\n/* istanbul ignore next */\n\n\nvar _alt = function _alt(fa, that) {\n return pipe(fa, alt(that));\n}; // -------------------------------------------------------------------------------------\n// type class members\n// -------------------------------------------------------------------------------------\n\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category Functor\n * @since 2.0.0\n */\n\n\nexport var map = /*#__PURE__*/ET.map(I.Functor);\n/**\n * Map a pair of functions over the two type arguments of the bifunctor.\n *\n * @category Bifunctor\n * @since 2.0.0\n */\n\nexport var bimap = /*#__PURE__*/ET.bimap(I.Functor);\n/**\n * Map a function over the first type argument of a bifunctor.\n *\n * @category Bifunctor\n * @since 2.0.0\n */\n\nexport var mapLeft = /*#__PURE__*/ET.mapLeft(I.Functor);\n/**\n * Apply a function to an argument under a type constructor.\n *\n * @category Apply\n * @since 2.0.0\n */\n\nexport var ap = /*#__PURE__*/ET.ap(I.Apply);\n/**\n * Less strict version of [`ap`](#ap).\n *\n * @category Apply\n * @since 2.8.0\n */\n\nexport var apW = ap;\n/**\n * @category Pointed\n * @since 2.8.5\n */\n\nexport var of = right;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @category Monad\n * @since 2.0.0\n */\n\nexport var chain = /*#__PURE__*/ET.chain(I.Monad);\n/**\n * Less strict version of [`chain`](#chain).\n *\n * @category Monad\n * @since 2.6.0\n */\n\nexport var chainW = chain;\n/**\n * Less strict version of [`flatten`](#flatten).\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var flattenW = /*#__PURE__*/chainW(identity);\n/**\n * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var flatten = flattenW;\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 * @category Alt\n * @since 2.0.0\n */\n\nexport var alt = /*#__PURE__*/ET.alt(I.Monad);\n/**\n * Less strict version of [`alt`](#alt).\n *\n * @category Alt\n * @since 2.9.0\n */\n\nexport var altW = alt;\n/**\n * @category MonadThrow\n * @since 2.7.0\n */\n\nexport var throwError = left; // -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @category instances\n * @since 2.0.0\n */\n\nexport var URI = 'IOEither';\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport function getApplicativeIOValidation(S) {\n var _ap2 = ap_(I.Apply, E.getApplicativeValidation(S));\n\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n ap: function ap(fab, fa) {\n return pipe(fab, _ap2(fa));\n },\n of: of\n };\n}\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport function getAltIOValidation(S) {\n var _alt2 = ET.altValidation(I.Monad, S);\n\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n alt: function alt(fa, that) {\n return pipe(fa, _alt2(that));\n }\n };\n}\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var getCompactable = function getCompactable(M) {\n var C = E.getCompactable(M);\n return {\n URI: URI,\n _E: undefined,\n compact: compact_(I.Functor, C),\n separate: separate_(I.Functor, C, E.Functor)\n };\n};\n/**\n * @category instances\n * @since 2.1.0\n */\n\nexport function getFilterable(M) {\n var F = E.getFilterable(M);\n var C = getCompactable(M);\n\n var _filter = filter_(I.Functor, F);\n\n var _filterMap = filterMap_(I.Functor, F);\n\n var _partition = partition_(I.Functor, F);\n\n var _partitionMap = partitionMap_(I.Functor, F);\n\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n compact: C.compact,\n separate: C.separate,\n filter: function filter(fa, predicate) {\n return pipe(fa, _filter(predicate));\n },\n filterMap: function filterMap(fa, f) {\n return pipe(fa, _filterMap(f));\n },\n partition: function partition(fa, predicate) {\n return pipe(fa, _partition(predicate));\n },\n partitionMap: function partitionMap(fa, f) {\n return pipe(fa, _partitionMap(f));\n }\n };\n}\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Derivable from `Functor`.\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var flap = /*#__PURE__*/flap_(Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Bifunctor = {\n URI: URI,\n bimap: _bimap,\n mapLeft: _mapLeft\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var ApplyPar = {\n URI: URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * Derivable from `Apply`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var apFirst = /*#__PURE__*/apFirst_(ApplyPar);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * Derivable from `Apply`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var apSecond = /*#__PURE__*/apSecond_(ApplyPar);\n/**\n * @category instances\n * @since 2.8.4\n */\n\nexport var ApplicativePar = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of\n};\n/**\n * @category instances\n * @since 2.8.4\n */\n\nexport var ApplicativeSeq = {\n URI: URI,\n map: _map,\n ap: _apSeq,\n of: of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: _chain\n};\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 * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var chainFirst = /*#__PURE__*/chainFirst_(Chain);\n/**\n * Less strict version of [`chainFirst`](#chainfirst).\n *\n * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.8.0\n */\n\nexport var chainFirstW = chainFirst;\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Alt = {\n URI: URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var MonadIO = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: _chain,\n fromIO: fromIO\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var MonadThrow = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: _chain,\n throwError: throwError\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var FromIO = {\n URI: URI,\n fromIO: fromIO\n};\n/**\n * @category combinators\n * @since 2.10.0\n */\n\nexport var fromIOK = /*#__PURE__*/fromIOK_(FromIO);\n/**\n * @category combinators\n * @since 2.10.0\n */\n\nexport var chainIOK = /*#__PURE__*/chainIOK_(FromIO, Chain);\n/**\n * @category combinators\n * @since 2.10.0\n */\n\nexport var chainFirstIOK = /*#__PURE__*/chainFirstIOK_(FromIO, Chain);\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var FromEither = {\n URI: URI,\n fromEither: fromEither\n};\n/**\n * @category natural transformations\n * @since 2.0.0\n */\n\nexport var fromOption = /*#__PURE__*/fromOption_(FromEither);\n/**\n * @category combinators\n * @since 2.10.0\n */\n\nexport var fromOptionK = /*#__PURE__*/fromOptionK_(FromEither);\n/**\n * @category combinators\n * @since 2.10.0\n */\n\nexport var chainOptionK = /*#__PURE__*/chainOptionK_(FromEither, Chain);\n/**\n * @category combinators\n * @since 2.4.0\n */\n\nexport var chainEitherK = /*#__PURE__*/chainEitherK_(FromEither, Chain);\n/**\n * Less strict version of [`chainEitherK`](#chaineitherk).\n *\n * @category combinators\n * @since 2.6.1\n */\n\nexport var chainEitherKW = chainEitherK;\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var fromPredicate = /*#__PURE__*/fromPredicate_(FromEither);\n/**\n * @category combinators\n * @since 2.0.0\n */\n\nexport var filterOrElse = /*#__PURE__*/filterOrElse_(FromEither, Chain);\n/**\n * Less strict version of [`filterOrElse`](#filterorelse).\n *\n * @category combinators\n * @since 2.9.0\n */\n\nexport var filterOrElseW = filterOrElse;\n/**\n * @category combinators\n * @since 2.4.0\n */\n\nexport var fromEitherK = /*#__PURE__*/fromEitherK_(FromEither); // -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n\n/**\n * Make sure that a resource is cleaned up in the event of an exception (\\*). The release action is called regardless of\n * whether the body action throws (\\*) or returns.\n *\n * (\\*) i.e. returns a `Left`\n *\n * @since 2.0.0\n */\n\nexport var bracket = function bracket(acquire, use, release) {\n return pipe(acquire, chain(function (a) {\n return pipe(use(a), I.chain(function (e) {\n return pipe(release(a, e), chain(function () {\n return I.of(e);\n }));\n }));\n }));\n}; // -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.9.0\n */\n\nexport var Do = /*#__PURE__*/of(_.emptyRecord);\n/**\n * @since 2.8.0\n */\n\nexport var bindTo = /*#__PURE__*/bindTo_(Functor);\n/**\n * @since 2.8.0\n */\n\nexport var bind = /*#__PURE__*/bind_(Chain);\n/**\n * @since 2.8.0\n */\n\nexport var bindW = bind; // -------------------------------------------------------------------------------------\n// pipeable sequence S\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.8.0\n */\n\nexport var apS = /*#__PURE__*/apS_(ApplyPar);\n/**\n * @since 2.8.0\n */\n\nexport var apSW = apS; // -------------------------------------------------------------------------------------\n// sequence T\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.11.0\n */\n\nexport var ApT = /*#__PURE__*/of(_.emptyReadonlyArray); // -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`.\n *\n * @since 2.11.0\n */\n\nexport var traverseReadonlyNonEmptyArrayWithIndex = function traverseReadonlyNonEmptyArrayWithIndex(f) {\n return flow(I.traverseReadonlyNonEmptyArrayWithIndex(f), I.map(E.traverseReadonlyNonEmptyArrayWithIndex(SK)));\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`.\n *\n * @since 2.11.0\n */\n\nexport var traverseReadonlyArrayWithIndex = function traverseReadonlyArrayWithIndex(f) {\n var g = traverseReadonlyNonEmptyArrayWithIndex(f);\n return function (as) {\n return _.isNonEmpty(as) ? g(as) : ApT;\n };\n};\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`.\n *\n * @since 2.11.0\n */\n\nexport var traverseReadonlyNonEmptyArrayWithIndexSeq = function traverseReadonlyNonEmptyArrayWithIndexSeq(f) {\n return function (as) {\n return function () {\n var e = f(0, _.head(as))();\n\n if (_.isLeft(e)) {\n return e;\n }\n\n var out = [e.right];\n\n for (var i = 1; i < as.length; i++) {\n var e_1 = f(i, as[i])();\n\n if (_.isLeft(e_1)) {\n return e_1;\n }\n\n out.push(e_1.right);\n }\n\n return _.right(out);\n };\n };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`.\n *\n * @since 2.11.0\n */\n\nexport var traverseReadonlyArrayWithIndexSeq = function traverseReadonlyArrayWithIndexSeq(f) {\n var g = traverseReadonlyNonEmptyArrayWithIndexSeq(f);\n return function (as) {\n return _.isNonEmpty(as) ? g(as) : ApT;\n };\n};\n/**\n * @since 2.9.0\n */\n\nexport var traverseArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * @since 2.9.0\n */\n\nexport var traverseArray = function traverseArray(f) {\n return traverseReadonlyArrayWithIndex(function (_, a) {\n return f(a);\n });\n};\n/**\n * @since 2.9.0\n */\n\nexport var sequenceArray = /*#__PURE__*/traverseArray(identity);\n/**\n * @since 2.9.0\n */\n\nexport var traverseSeqArrayWithIndex = traverseReadonlyArrayWithIndexSeq;\n/**\n * @since 2.9.0\n */\n\nexport var traverseSeqArray = function traverseSeqArray(f) {\n return traverseReadonlyArrayWithIndexSeq(function (_, a) {\n return f(a);\n });\n};\n/**\n * @since 2.9.0\n */\n\nexport var sequenceSeqArray = /*#__PURE__*/traverseSeqArray(identity); // -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n// tslint:disable: deprecation\n\n/**\n * Use [`ApplicativePar`](#applicativepar) instead\n *\n * @since 2.7.0\n * @category instances\n * @deprecated\n */\n\nexport var Applicative = ApplicativePar; // -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n\n/**\n * Use small, specific instances instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var ioEither = {\n URI: URI,\n bimap: _bimap,\n mapLeft: _mapLeft,\n map: _map,\n of: of,\n ap: _ap,\n chain: _chain,\n alt: _alt,\n fromIO: fromIO,\n throwError: throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getApplySemigroup = /*#__PURE__*/getApplySemigroup_(ApplyPar);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getApplyMonoid = /*#__PURE__*/getApplicativeMonoid(ApplicativePar);\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getSemigroup = function getSemigroup(S) {\n return getApplySemigroup_(I.Apply)(E.getSemigroup(S));\n};\n/**\n * Use [`getApplicativeIOValidation`](#getapplicativeiovalidation) and [`getAltIOValidation`](#getaltiovalidation).\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport function getIOValidation(SE) {\n var applicativeIOValidation = getApplicativeIOValidation(SE);\n var altIOValidation = getAltIOValidation(SE);\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n ap: applicativeIOValidation.ap,\n of: of,\n chain: _chain,\n bimap: _bimap,\n mapLeft: _mapLeft,\n alt: altIOValidation.alt,\n fromIO: fromIO,\n throwError: throwError\n };\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\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\nexport default function _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}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _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}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _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}","import _toConsumableArray from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";\nimport _asyncToGenerator from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport _construct from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/construct.js\";\nimport _createClass from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/createClass.js\";\nimport _classCallCheck from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _inherits from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/inherits.js\";\nimport _possibleConstructorReturn from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\";\nimport _getPrototypeOf from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\";\nimport _wrapNativeSuper from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js\";\nimport _defineProperty from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport _objectWithoutProperties from \"C:/agent/_work/3/s/LCB/Research/Content/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\";\nvar _excluded = [\"ref\", \"predicates\"],\n _excluded2 = [\"limit\"],\n _excluded3 = [\"ref\", \"accessToken\"];\nimport _regeneratorRuntime from \"C:\\\\agent\\\\_work\\\\3\\\\s\\\\LCB\\\\Research\\\\Content\\\\node_modules\\\\@babel\\\\runtime\\\\regenerator\\\\index.js\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport \"core-js/modules/es.array.flat.js\";\nimport \"core-js/modules/es.array.unscopables.flat.js\";\nimport \"core-js/modules/esnext.global-this.js\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport * as prismicH from '@prismicio/helpers';\n\nvar getEndpoint = function getEndpoint(repositoryName) {\n return \"https://\".concat(repositoryName, \".cdn.prismic.io/api/v2\");\n};\n\nvar castArray = function castArray(a) {\n return Array.isArray(a) ? a : [a];\n};\n\nvar RENAMED_PARAMS = {\n accessToken: \"access_token\"\n};\n\nvar castOrderingToString = function castOrderingToString(ordering) {\n return typeof ordering === \"string\" ? ordering : [ordering.field, ordering.direction === \"desc\" ? ordering.direction : void 0].filter(Boolean).join(\" \");\n};\n\nvar _buildQueryURL = function buildQueryURL(endpoint, args) {\n var _a;\n\n var ref = args.ref,\n predicates = args.predicates,\n params = _objectWithoutProperties(args, _excluded);\n\n var url = new URL(\"documents/search\", \"\".concat(endpoint, \"/\"));\n url.searchParams.set(\"ref\", ref);\n\n if (predicates) {\n var _iterator = _createForOfIteratorHelper(castArray(predicates)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _predicate = _step.value;\n url.searchParams.append(\"q\", \"[\".concat(_predicate, \"]\"));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n for (var k in params) {\n var name = (_a = RENAMED_PARAMS[k]) != null ? _a : k;\n var value = params[k];\n\n if (name === \"orderings\") {\n var scopedValue = params[name];\n\n if (scopedValue != null) {\n var v = castArray(scopedValue).map(function (ordering) {\n return castOrderingToString(ordering);\n }).join(\",\");\n value = \"[\".concat(v, \"]\");\n }\n } else if (name === \"routes\") {\n if (typeof params[name] === \"object\") {\n value = JSON.stringify(castArray(params[name]));\n }\n }\n\n if (value != null) {\n url.searchParams.set(name, castArray(value).join(\",\"));\n }\n }\n\n return url.toString();\n};\n\nvar appendPredicates = function appendPredicates() {\n for (var _len = arguments.length, predicates = new Array(_len), _key = 0; _key < _len; _key++) {\n predicates[_key] = arguments[_key];\n }\n\n return function () {\n var objWithPredicates = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return _objectSpread(_objectSpread({}, objWithPredicates), {}, {\n predicates: [objWithPredicates.predicates || []].concat(predicates).flat()\n });\n };\n};\n\nvar readValue = function readValue(value) {\n return value.replace(/%3B/g, \";\");\n};\n\nvar parse = function parse(cookieString) {\n var result = {};\n var cookies = cookieString.split(\"; \");\n\n var _iterator2 = _createForOfIteratorHelper(cookies),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _cookie = _step2.value;\n\n var parts = _cookie.split(\"=\");\n\n var value = parts.slice(1).join(\"=\");\n var name = readValue(parts[0]).replace(/%3D/g, \"=\");\n result[name] = readValue(value);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return result;\n};\n\nvar getAll = function getAll(cookieStore) {\n return parse(cookieStore);\n};\n\nvar getCookie = function getCookie(name, cookieStore) {\n return getAll(cookieStore)[name];\n};\n\nvar isForbiddenErrorAPIResponse = function isForbiddenErrorAPIResponse(input) {\n return typeof input === \"object\" && input !== null && (\"error\" in input || \"message\" in input) && \"oauth_initiate\" in input && \"oauth_token\" in input;\n};\n\nvar ForbiddenError = /*#__PURE__*/function (_Error) {\n _inherits(ForbiddenError, _Error);\n\n var _super = _createSuper(ForbiddenError);\n\n function ForbiddenError(message, args) {\n var _this;\n\n _classCallCheck(this, ForbiddenError);\n\n _this = _super.call(this, message);\n _this.url = args.url;\n _this.oauth_initiate = args.response.oauth_initiate;\n _this.oauth_token = args.response.oauth_token;\n return _this;\n }\n\n return _createClass(ForbiddenError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar isParsingErrorAPIResponse = function isParsingErrorAPIResponse(input) {\n return typeof input === \"object\" && input !== null && \"message\" in input && \"type\" in input;\n};\n\nvar ParsingError = /*#__PURE__*/function (_Error2) {\n _inherits(ParsingError, _Error2);\n\n var _super2 = _createSuper(ParsingError);\n\n function ParsingError(message, args) {\n var _this2;\n\n _classCallCheck(this, ParsingError);\n\n _this2 = _super2.call(this, message);\n _this2.url = args.url;\n _this2.line = args.response.line;\n _this2.column = args.response.column;\n _this2.id = args.response.id;\n _this2.location = args.response.location;\n return _this2;\n }\n\n return _createClass(ParsingError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar PrismicError = /*#__PURE__*/function (_Error3) {\n _inherits(PrismicError, _Error3);\n\n var _super3 = _createSuper(PrismicError);\n\n function PrismicError(message, args) {\n var _this3;\n\n _classCallCheck(this, PrismicError);\n\n _this3 = _super3.call(this, message || \"An invalid API response was returned\");\n _this3.url = args.url;\n _this3.response = args.response;\n return _this3;\n }\n\n return _createClass(PrismicError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar preview = \"io.prismic.preview\";\nvar cookie = /*#__PURE__*/Object.freeze({\n __proto__: null,\n preview: preview\n});\n\nvar formatValue = function formatValue(value) {\n if (Array.isArray(value)) {\n return \"[\".concat(value.map(formatValue).join(\", \"), \"]\");\n }\n\n if (typeof value === \"string\") {\n return \"\\\"\".concat(value, \"\\\"\");\n }\n\n if (value instanceof Date) {\n return \"\".concat(value.getTime());\n }\n\n return \"\".concat(value);\n};\n\nvar pathWithArgsPredicate = function pathWithArgsPredicate(name) {\n var fn = function fn(path) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n var formattedArgs = args.map(formatValue).join(\", \");\n var joiner = path && args.length ? \", \" : \"\";\n return \"[\".concat(name, \"(\").concat(path).concat(joiner).concat(formattedArgs, \")]\");\n };\n\n return fn;\n};\n\nvar pathPredicate = function pathPredicate(name) {\n var predicateFn = pathWithArgsPredicate(name);\n\n var fn = function fn(path) {\n return predicateFn(path);\n };\n\n return fn;\n};\n\nvar argsPredicate = function argsPredicate(name) {\n var predicateFn = pathWithArgsPredicate(name);\n\n var fn = function fn() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return predicateFn.apply(void 0, [\"\"].concat(args));\n };\n\n return fn;\n};\n\nvar at = pathWithArgsPredicate(\"at\");\nvar not = pathWithArgsPredicate(\"not\");\nvar any = pathWithArgsPredicate(\"any\");\n\nvar _in = pathWithArgsPredicate(\"in\");\n\nvar fulltext = pathWithArgsPredicate(\"fulltext\");\nvar has = pathPredicate(\"has\");\nvar missing = pathPredicate(\"missing\");\nvar similar = argsPredicate(\"similar\");\nvar geopointNear = pathWithArgsPredicate(\"geopoint.near\");\nvar numberLessThan = pathWithArgsPredicate(\"number.lt\");\nvar numberGreaterThan = pathWithArgsPredicate(\"number.gt\");\nvar numberInRange = pathWithArgsPredicate(\"number.inRange\");\nvar dateAfter = pathWithArgsPredicate(\"date.after\");\nvar dateBefore = pathWithArgsPredicate(\"date.before\");\nvar dateBetween = pathWithArgsPredicate(\"date.between\");\nvar dateDayOfMonth = pathWithArgsPredicate(\"date.day-of-month\");\nvar dateDayOfMonthAfter = pathWithArgsPredicate(\"date.day-of-month-after\");\nvar dateDayOfMonthBefore = pathWithArgsPredicate(\"date.day-of-month-before\");\nvar dateDayOfWeek = pathWithArgsPredicate(\"date.day-of-week\");\nvar dateDayOfWeekAfter = pathWithArgsPredicate(\"date.day-of-week-after\");\nvar dateDayOfWeekBefore = pathWithArgsPredicate(\"date.day-of-week-before\");\nvar dateMonth = pathWithArgsPredicate(\"date.month\");\nvar dateMonthAfter = pathWithArgsPredicate(\"date.month-after\");\nvar dateMonthBefore = pathWithArgsPredicate(\"date.month-before\");\nvar dateYear = pathWithArgsPredicate(\"date.year\");\nvar dateHour = pathWithArgsPredicate(\"date.hour\");\nvar dateHourAfter = pathWithArgsPredicate(\"date.hour-after\");\nvar dateHourBefore = pathWithArgsPredicate(\"date.hour-before\");\nvar predicate = /*#__PURE__*/Object.freeze({\n __proto__: null,\n at: at,\n not: not,\n any: any,\n 'in': _in,\n fulltext: fulltext,\n has: has,\n missing: missing,\n similar: similar,\n geopointNear: geopointNear,\n numberLessThan: numberLessThan,\n numberGreaterThan: numberGreaterThan,\n numberInRange: numberInRange,\n dateAfter: dateAfter,\n dateBefore: dateBefore,\n dateBetween: dateBetween,\n dateDayOfMonth: dateDayOfMonth,\n dateDayOfMonthAfter: dateDayOfMonthAfter,\n dateDayOfMonthBefore: dateDayOfMonthBefore,\n dateDayOfWeek: dateDayOfWeek,\n dateDayOfWeekAfter: dateDayOfWeekAfter,\n dateDayOfWeekBefore: dateDayOfWeekBefore,\n dateMonth: dateMonth,\n dateMonthAfter: dateMonthAfter,\n dateMonthBefore: dateMonthBefore,\n dateYear: dateYear,\n dateHour: dateHour,\n dateHourAfter: dateHourAfter,\n dateHourBefore: dateHourBefore\n});\n\nvar createSimpleTTLCache = function createSimpleTTLCache() {\n var cache = new Map();\n return {\n get: function get(key) {\n var cacheValue = cache.get(key);\n\n if (cacheValue) {\n if (new Date().getTime() < cacheValue.expiresAt) {\n return cacheValue.value;\n }\n }\n },\n set: function set(key, value, ttl) {\n cache.set(key, {\n expiresAt: new Date().getTime() + ttl,\n value: value\n });\n }\n };\n};\n\nvar MAX_PAGE_SIZE = 100;\nvar REPOSITORY_CACHE_TTL = 5e3;\nvar RefStateType;\n\n(function (RefStateType2) {\n RefStateType2[RefStateType2[\"Master\"] = 0] = \"Master\";\n RefStateType2[RefStateType2[\"ReleaseByID\"] = 1] = \"ReleaseByID\";\n RefStateType2[RefStateType2[\"ReleaseByLabel\"] = 2] = \"ReleaseByLabel\";\n RefStateType2[RefStateType2[\"Manual\"] = 3] = \"Manual\";\n})(RefStateType || (RefStateType = {}));\n\nvar typePredicate = function typePredicate(documentType) {\n return at(\"document.type\", documentType);\n};\n\nvar tagsPredicate = function tagsPredicate(tags) {\n return at(\"document.tags\", tags);\n};\n\nvar findRef = function findRef(refs, predicate2) {\n var ref = refs.find(function (ref2) {\n return predicate2(ref2);\n });\n\n if (!ref) {\n throw new Error(\"Ref could not be found.\");\n }\n\n return ref;\n};\n\nvar createClient = function createClient() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _construct(Client, args);\n};\n\nvar Client = /*#__PURE__*/function () {\n function Client(endpoint) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Client);\n\n this.query = this.get.bind(this);\n this.endpoint = endpoint;\n this.accessToken = options.accessToken;\n this.defaultParams = options.defaultParams;\n this.internalCache = createSimpleTTLCache();\n this.refMode = {\n type: 0,\n autoPreviewsEnabled: true\n };\n\n if (options.ref) {\n this.queryContentFromRef(options.ref);\n }\n\n if (typeof options.fetch === \"function\") {\n this.fetchFn = options.fetch;\n } else if (typeof globalThis.fetch === \"function\") {\n this.fetchFn = globalThis.fetch;\n } else {\n throw new Error(\"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 }\n\n if (this.fetchFn === globalThis.fetch) {\n this.fetchFn = this.fetchFn.bind(globalThis);\n }\n }\n\n _createClass(Client, [{\n key: \"enableAutoPreviews\",\n value: function enableAutoPreviews() {\n this.refMode.autoPreviewsEnabled = true;\n }\n }, {\n key: \"enableAutoPreviewsFromReq\",\n value: function enableAutoPreviewsFromReq(req) {\n this.refMode.httpRequest = req;\n this.refMode.autoPreviewsEnabled = true;\n }\n }, {\n key: \"disableAutoPreviews\",\n value: function disableAutoPreviews() {\n this.refMode.autoPreviewsEnabled = false;\n }\n }, {\n key: \"get\",\n value: function () {\n var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(params) {\n var url;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.buildQueryURL(params);\n\n case 2:\n url = _context.sent;\n _context.next = 5;\n return this.fetch(url);\n\n case 5:\n return _context.abrupt(\"return\", _context.sent);\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function get(_x) {\n return _get.apply(this, arguments);\n }\n\n return get;\n }()\n }, {\n key: \"getFirst\",\n value: function () {\n var _getFirst = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(params) {\n var result, firstResult;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.get(params);\n\n case 2:\n result = _context2.sent;\n firstResult = result.results[0];\n\n if (!firstResult) {\n _context2.next = 6;\n break;\n }\n\n return _context2.abrupt(\"return\", firstResult);\n\n case 6:\n throw new Error(\"No documents were returned\");\n\n case 7:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getFirst(_x2) {\n return _getFirst.apply(this, arguments);\n }\n\n return getFirst;\n }()\n }, {\n key: \"getAll\",\n value: function () {\n var _getAll = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n var params,\n _params$limit,\n limit,\n actualParams,\n resolvedParams,\n result,\n page,\n documents,\n result2,\n _args3 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n params = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {};\n _params$limit = params.limit, limit = _params$limit === void 0 ? Infinity : _params$limit, actualParams = _objectWithoutProperties(params, _excluded2);\n resolvedParams = _objectSpread({\n pageSize: MAX_PAGE_SIZE\n }, actualParams);\n _context3.next = 5;\n return this.get(resolvedParams);\n\n case 5:\n result = _context3.sent;\n page = result.page;\n documents = result.results;\n\n case 8:\n if (!(page < result.total_pages && documents.length < limit)) {\n _context3.next = 16;\n break;\n }\n\n page += 1;\n _context3.next = 12;\n return this.get(_objectSpread(_objectSpread({}, resolvedParams), {}, {\n page: page\n }));\n\n case 12:\n result2 = _context3.sent;\n documents = [].concat(_toConsumableArray(documents), _toConsumableArray(result2.results));\n _context3.next = 8;\n break;\n\n case 16:\n return _context3.abrupt(\"return\", documents.slice(0, limit));\n\n case 17:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function getAll() {\n return _getAll.apply(this, arguments);\n }\n\n return getAll;\n }()\n }, {\n key: \"getByID\",\n value: function () {\n var _getByID = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(id, params) {\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return this.getFirst(appendPredicates(at(\"document.id\", id))(params));\n\n case 2:\n return _context4.abrupt(\"return\", _context4.sent);\n\n case 3:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function getByID(_x3, _x4) {\n return _getByID.apply(this, arguments);\n }\n\n return getByID;\n }()\n }, {\n key: \"getByIDs\",\n value: function () {\n var _getByIDs = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(ids, params) {\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return this.get(appendPredicates(_in(\"document.id\", ids))(params));\n\n case 2:\n return _context5.abrupt(\"return\", _context5.sent);\n\n case 3:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function getByIDs(_x5, _x6) {\n return _getByIDs.apply(this, arguments);\n }\n\n return getByIDs;\n }()\n }, {\n key: \"getAllByIDs\",\n value: function () {\n var _getAllByIDs = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(ids, params) {\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return this.getAll(appendPredicates(_in(\"document.id\", ids))(params));\n\n case 2:\n return _context6.abrupt(\"return\", _context6.sent);\n\n case 3:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function getAllByIDs(_x7, _x8) {\n return _getAllByIDs.apply(this, arguments);\n }\n\n return getAllByIDs;\n }()\n }, {\n key: \"getByUID\",\n value: function () {\n var _getByUID = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(documentType, uid, params) {\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return this.getFirst(appendPredicates(typePredicate(documentType), at(\"my.\".concat(documentType, \".uid\"), uid))(params));\n\n case 2:\n return _context7.abrupt(\"return\", _context7.sent);\n\n case 3:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n\n function getByUID(_x9, _x10, _x11) {\n return _getByUID.apply(this, arguments);\n }\n\n return getByUID;\n }()\n }, {\n key: \"getSingle\",\n value: function () {\n var _getSingle = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(documentType, params) {\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return this.getFirst(appendPredicates(typePredicate(documentType))(params));\n\n case 2:\n return _context8.abrupt(\"return\", _context8.sent);\n\n case 3:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8, this);\n }));\n\n function getSingle(_x12, _x13) {\n return _getSingle.apply(this, arguments);\n }\n\n return getSingle;\n }()\n }, {\n key: \"getByType\",\n value: function () {\n var _getByType = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(documentType, params) {\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return this.get(appendPredicates(typePredicate(documentType))(params));\n\n case 2:\n return _context9.abrupt(\"return\", _context9.sent);\n\n case 3:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9, this);\n }));\n\n function getByType(_x14, _x15) {\n return _getByType.apply(this, arguments);\n }\n\n return getByType;\n }()\n }, {\n key: \"getAllByType\",\n value: function () {\n var _getAllByType = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(documentType, params) {\n return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return this.getAll(appendPredicates(typePredicate(documentType))(params));\n\n case 2:\n return _context10.abrupt(\"return\", _context10.sent);\n\n case 3:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10, this);\n }));\n\n function getAllByType(_x16, _x17) {\n return _getAllByType.apply(this, arguments);\n }\n\n return getAllByType;\n }()\n }, {\n key: \"getByTag\",\n value: function () {\n var _getByTag = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(tag, params) {\n return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n _context11.next = 2;\n return this.get(appendPredicates(tagsPredicate(tag))(params));\n\n case 2:\n return _context11.abrupt(\"return\", _context11.sent);\n\n case 3:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n\n function getByTag(_x18, _x19) {\n return _getByTag.apply(this, arguments);\n }\n\n return getByTag;\n }()\n }, {\n key: \"getAllByTag\",\n value: function () {\n var _getAllByTag = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(tag, params) {\n return _regeneratorRuntime.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n _context12.next = 2;\n return this.getAll(appendPredicates(tagsPredicate(tag))(params));\n\n case 2:\n return _context12.abrupt(\"return\", _context12.sent);\n\n case 3:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12, this);\n }));\n\n function getAllByTag(_x20, _x21) {\n return _getAllByTag.apply(this, arguments);\n }\n\n return getAllByTag;\n }()\n }, {\n key: \"getByTags\",\n value: function () {\n var _getByTags = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(tags, params) {\n return _regeneratorRuntime.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n _context13.next = 2;\n return this.get(appendPredicates(tagsPredicate(tags))(params));\n\n case 2:\n return _context13.abrupt(\"return\", _context13.sent);\n\n case 3:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13, this);\n }));\n\n function getByTags(_x22, _x23) {\n return _getByTags.apply(this, arguments);\n }\n\n return getByTags;\n }()\n }, {\n key: \"getAllByTags\",\n value: function () {\n var _getAllByTags = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(tags, params) {\n return _regeneratorRuntime.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n _context14.next = 2;\n return this.getAll(appendPredicates(tagsPredicate(tags))(params));\n\n case 2:\n return _context14.abrupt(\"return\", _context14.sent);\n\n case 3:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14, this);\n }));\n\n function getAllByTags(_x24, _x25) {\n return _getAllByTags.apply(this, arguments);\n }\n\n return getAllByTags;\n }()\n }, {\n key: \"getRepository\",\n value: function () {\n var _getRepository = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15() {\n var url;\n return _regeneratorRuntime.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n url = new URL(this.endpoint);\n\n if (this.accessToken) {\n url.searchParams.set(\"access_token\", this.accessToken);\n }\n\n _context15.next = 4;\n return this.fetch(url.toString());\n\n case 4:\n return _context15.abrupt(\"return\", _context15.sent);\n\n case 5:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15, this);\n }));\n\n function getRepository() {\n return _getRepository.apply(this, arguments);\n }\n\n return getRepository;\n }()\n }, {\n key: \"getRefs\",\n value: function () {\n var _getRefs = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee16() {\n var res;\n return _regeneratorRuntime.wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n _context16.next = 2;\n return this.getRepository();\n\n case 2:\n res = _context16.sent;\n return _context16.abrupt(\"return\", res.refs);\n\n case 4:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee16, this);\n }));\n\n function getRefs() {\n return _getRefs.apply(this, arguments);\n }\n\n return getRefs;\n }()\n }, {\n key: \"getRefById\",\n value: function () {\n var _getRefById = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee17(id) {\n var refs;\n return _regeneratorRuntime.wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n _context17.next = 2;\n return this.getRefs();\n\n case 2:\n refs = _context17.sent;\n return _context17.abrupt(\"return\", findRef(refs, function (ref) {\n return ref.id === id;\n }));\n\n case 4:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee17, this);\n }));\n\n function getRefById(_x26) {\n return _getRefById.apply(this, arguments);\n }\n\n return getRefById;\n }()\n }, {\n key: \"getRefByLabel\",\n value: function () {\n var _getRefByLabel = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18(label) {\n var refs;\n return _regeneratorRuntime.wrap(function _callee18$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n _context18.next = 2;\n return this.getRefs();\n\n case 2:\n refs = _context18.sent;\n return _context18.abrupt(\"return\", findRef(refs, function (ref) {\n return ref.label === label;\n }));\n\n case 4:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee18, this);\n }));\n\n function getRefByLabel(_x27) {\n return _getRefByLabel.apply(this, arguments);\n }\n\n return getRefByLabel;\n }()\n }, {\n key: \"getMasterRef\",\n value: function () {\n var _getMasterRef = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee19() {\n var refs;\n return _regeneratorRuntime.wrap(function _callee19$(_context19) {\n while (1) {\n switch (_context19.prev = _context19.next) {\n case 0:\n _context19.next = 2;\n return this.getRefs();\n\n case 2:\n refs = _context19.sent;\n return _context19.abrupt(\"return\", findRef(refs, function (ref) {\n return ref.isMasterRef;\n }));\n\n case 4:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee19, this);\n }));\n\n function getMasterRef() {\n return _getMasterRef.apply(this, arguments);\n }\n\n return getMasterRef;\n }()\n }, {\n key: \"getReleases\",\n value: function () {\n var _getReleases = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20() {\n var refs;\n return _regeneratorRuntime.wrap(function _callee20$(_context20) {\n while (1) {\n switch (_context20.prev = _context20.next) {\n case 0:\n _context20.next = 2;\n return this.getRefs();\n\n case 2:\n refs = _context20.sent;\n return _context20.abrupt(\"return\", refs.filter(function (ref) {\n return !ref.isMasterRef;\n }));\n\n case 4:\n case \"end\":\n return _context20.stop();\n }\n }\n }, _callee20, this);\n }));\n\n function getReleases() {\n return _getReleases.apply(this, arguments);\n }\n\n return getReleases;\n }()\n }, {\n key: \"getReleaseByID\",\n value: function () {\n var _getReleaseByID = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee21(id) {\n var releases;\n return _regeneratorRuntime.wrap(function _callee21$(_context21) {\n while (1) {\n switch (_context21.prev = _context21.next) {\n case 0:\n _context21.next = 2;\n return this.getReleases();\n\n case 2:\n releases = _context21.sent;\n return _context21.abrupt(\"return\", findRef(releases, function (ref) {\n return ref.id === id;\n }));\n\n case 4:\n case \"end\":\n return _context21.stop();\n }\n }\n }, _callee21, this);\n }));\n\n function getReleaseByID(_x28) {\n return _getReleaseByID.apply(this, arguments);\n }\n\n return getReleaseByID;\n }()\n }, {\n key: \"getReleaseByLabel\",\n value: function () {\n var _getReleaseByLabel = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee22(label) {\n var releases;\n return _regeneratorRuntime.wrap(function _callee22$(_context22) {\n while (1) {\n switch (_context22.prev = _context22.next) {\n case 0:\n _context22.next = 2;\n return this.getReleases();\n\n case 2:\n releases = _context22.sent;\n return _context22.abrupt(\"return\", findRef(releases, function (ref) {\n return ref.label === label;\n }));\n\n case 4:\n case \"end\":\n return _context22.stop();\n }\n }\n }, _callee22, this);\n }));\n\n function getReleaseByLabel(_x29) {\n return _getReleaseByLabel.apply(this, arguments);\n }\n\n return getReleaseByLabel;\n }()\n }, {\n key: \"getTags\",\n value: function () {\n var _getTags = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee23() {\n var tagsForm, res;\n return _regeneratorRuntime.wrap(function _callee23$(_context23) {\n while (1) {\n switch (_context23.prev = _context23.next) {\n case 0:\n _context23.prev = 0;\n _context23.next = 3;\n return this.getCachedRepositoryForm(\"tags\");\n\n case 3:\n tagsForm = _context23.sent;\n _context23.next = 6;\n return this.fetch(tagsForm.action);\n\n case 6:\n return _context23.abrupt(\"return\", _context23.sent);\n\n case 9:\n _context23.prev = 9;\n _context23.t0 = _context23[\"catch\"](0);\n _context23.next = 13;\n return this.getRepository();\n\n case 13:\n res = _context23.sent;\n return _context23.abrupt(\"return\", res.tags);\n\n case 15:\n case \"end\":\n return _context23.stop();\n }\n }\n }, _callee23, this, [[0, 9]]);\n }));\n\n function getTags() {\n return _getTags.apply(this, arguments);\n }\n\n return getTags;\n }()\n }, {\n key: \"buildQueryURL\",\n value: function () {\n var _buildQueryURL2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee24() {\n var params,\n _params$ref,\n ref,\n _params$accessToken,\n accessToken,\n actualParams,\n _args24 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee24$(_context24) {\n while (1) {\n switch (_context24.prev = _context24.next) {\n case 0:\n params = _args24.length > 0 && _args24[0] !== undefined ? _args24[0] : {};\n _params$ref = params.ref;\n\n if (!(_params$ref === void 0)) {\n _context24.next = 8;\n break;\n }\n\n _context24.next = 5;\n return this.getResolvedRefString();\n\n case 5:\n _context24.t0 = _context24.sent;\n _context24.next = 9;\n break;\n\n case 8:\n _context24.t0 = _params$ref;\n\n case 9:\n ref = _context24.t0;\n _params$accessToken = params.accessToken;\n accessToken = _params$accessToken === void 0 ? this.accessToken : _params$accessToken;\n actualParams = _objectWithoutProperties(params, _excluded3);\n return _context24.abrupt(\"return\", _buildQueryURL(this.endpoint, _objectSpread(_objectSpread(_objectSpread({}, this.defaultParams), actualParams), {}, {\n accessToken: accessToken,\n ref: ref\n })));\n\n case 14:\n case \"end\":\n return _context24.stop();\n }\n }\n }, _callee24, this);\n }));\n\n function buildQueryURL() {\n return _buildQueryURL2.apply(this, arguments);\n }\n\n return buildQueryURL;\n }()\n }, {\n key: \"resolvePreviewURL\",\n value: function () {\n var _resolvePreviewURL = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee25(args) {\n var _a, documentId, previewToken, searchParams, document;\n\n return _regeneratorRuntime.wrap(function _callee25$(_context25) {\n while (1) {\n switch (_context25.prev = _context25.next) {\n case 0:\n documentId = args.documentId;\n previewToken = args.previewToken;\n\n if (typeof globalThis.location !== \"undefined\") {\n searchParams = new URLSearchParams(globalThis.location.search);\n documentId = documentId || searchParams.get(\"documentId\") || void 0;\n previewToken = previewToken || searchParams.get(\"token\") || void 0;\n } else if ((_a = this.refMode.httpRequest) == null ? void 0 : _a.query) {\n if (typeof this.refMode.httpRequest.query.documentId === \"string\") {\n documentId = documentId || this.refMode.httpRequest.query.documentId;\n }\n\n if (typeof this.refMode.httpRequest.query.token === \"string\") {\n previewToken = previewToken || this.refMode.httpRequest.query.token;\n }\n }\n\n if (!(documentId != null)) {\n _context25.next = 10;\n break;\n }\n\n _context25.next = 6;\n return this.getByID(documentId, {\n ref: previewToken\n });\n\n case 6:\n document = _context25.sent;\n return _context25.abrupt(\"return\", prismicH.asLink(prismicH.documentToLinkField(document), args.linkResolver));\n\n case 10:\n return _context25.abrupt(\"return\", args.defaultURL);\n\n case 11:\n case \"end\":\n return _context25.stop();\n }\n }\n }, _callee25, this);\n }));\n\n function resolvePreviewURL(_x30) {\n return _resolvePreviewURL.apply(this, arguments);\n }\n\n return resolvePreviewURL;\n }()\n }, {\n key: \"queryLatestContent\",\n value: function queryLatestContent() {\n this.refMode = _objectSpread(_objectSpread({}, this.refMode), {}, {\n type: 0\n });\n }\n }, {\n key: \"queryContentFromReleaseByID\",\n value: function queryContentFromReleaseByID(releaseId) {\n this.refMode = _objectSpread(_objectSpread({}, this.refMode), {}, {\n type: 1,\n payload: {\n releaseId: releaseId\n }\n });\n }\n }, {\n key: \"queryContentFromReleaseByLabel\",\n value: function queryContentFromReleaseByLabel(releaseLabel) {\n this.refMode = _objectSpread(_objectSpread({}, this.refMode), {}, {\n type: 2,\n payload: {\n releaseLabel: releaseLabel\n }\n });\n }\n }, {\n key: \"queryContentFromRef\",\n value: function queryContentFromRef(ref) {\n this.refMode = _objectSpread(_objectSpread({}, this.refMode), {}, {\n type: 3,\n payload: {\n refStringOrFn: ref\n }\n });\n }\n }, {\n key: \"getCachedRepository\",\n value: function () {\n var _getCachedRepository = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee26() {\n var cacheKey, cachedRepository, repository;\n return _regeneratorRuntime.wrap(function _callee26$(_context26) {\n while (1) {\n switch (_context26.prev = _context26.next) {\n case 0:\n cacheKey = this.endpoint;\n cachedRepository = this.internalCache.get(cacheKey);\n\n if (!cachedRepository) {\n _context26.next = 4;\n break;\n }\n\n return _context26.abrupt(\"return\", cachedRepository);\n\n case 4:\n _context26.next = 6;\n return this.getRepository();\n\n case 6:\n repository = _context26.sent;\n this.internalCache.set(cacheKey, repository, REPOSITORY_CACHE_TTL);\n return _context26.abrupt(\"return\", repository);\n\n case 9:\n case \"end\":\n return _context26.stop();\n }\n }\n }, _callee26, this);\n }));\n\n function getCachedRepository() {\n return _getCachedRepository.apply(this, arguments);\n }\n\n return getCachedRepository;\n }()\n }, {\n key: \"getCachedRepositoryForm\",\n value: function () {\n var _getCachedRepositoryForm = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee27(name) {\n var cachedRepository, form;\n return _regeneratorRuntime.wrap(function _callee27$(_context27) {\n while (1) {\n switch (_context27.prev = _context27.next) {\n case 0:\n _context27.next = 2;\n return this.getCachedRepository();\n\n case 2:\n cachedRepository = _context27.sent;\n form = cachedRepository.forms[name];\n\n if (form) {\n _context27.next = 6;\n break;\n }\n\n throw new Error(\"Form with name \\\"\".concat(name, \"\\\" could not be found\"));\n\n case 6:\n return _context27.abrupt(\"return\", form);\n\n case 7:\n case \"end\":\n return _context27.stop();\n }\n }\n }, _callee27, this);\n }));\n\n function getCachedRepositoryForm(_x31) {\n return _getCachedRepositoryForm.apply(this, arguments);\n }\n\n return getCachedRepositoryForm;\n }()\n }, {\n key: \"getPreviewRefString\",\n value: function getPreviewRefString() {\n var _a, _b, _c;\n\n if ((_a = globalThis.document) == null ? void 0 : _a.cookie) {\n return getCookie(preview, globalThis.document.cookie);\n } else if ((_c = (_b = this.refMode.httpRequest) == null ? void 0 : _b.headers) == null ? void 0 : _c.cookie) {\n return getCookie(preview, this.refMode.httpRequest.headers.cookie);\n }\n }\n }, {\n key: \"getResolvedRefString\",\n value: function () {\n var _getResolvedRefString = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee28() {\n var previewRef, releaseId, repository, ref, releaseLabel, _repository, _ref, thisRefStringOrFn, res, _repository2, _ref2;\n\n return _regeneratorRuntime.wrap(function _callee28$(_context28) {\n while (1) {\n switch (_context28.prev = _context28.next) {\n case 0:\n if (!this.refMode.autoPreviewsEnabled) {\n _context28.next = 4;\n break;\n }\n\n previewRef = this.getPreviewRefString();\n\n if (!previewRef) {\n _context28.next = 4;\n break;\n }\n\n return _context28.abrupt(\"return\", previewRef);\n\n case 4:\n _context28.t0 = this.refMode.type;\n _context28.next = _context28.t0 === 1 ? 7 : _context28.t0 === 2 ? 13 : _context28.t0 === 3 ? 19 : _context28.t0 === 0 ? 30 : 30;\n break;\n\n case 7:\n releaseId = this.refMode.payload.releaseId;\n _context28.next = 10;\n return this.getCachedRepository();\n\n case 10:\n repository = _context28.sent;\n ref = findRef(repository.refs, function (ref2) {\n return ref2.id === releaseId;\n });\n return _context28.abrupt(\"return\", ref.ref);\n\n case 13:\n releaseLabel = this.refMode.payload.releaseLabel;\n _context28.next = 16;\n return this.getCachedRepository();\n\n case 16:\n _repository = _context28.sent;\n _ref = findRef(_repository.refs, function (ref2) {\n return ref2.label === releaseLabel;\n });\n return _context28.abrupt(\"return\", _ref.ref);\n\n case 19:\n thisRefStringOrFn = this.refMode.payload.refStringOrFn;\n\n if (!(typeof thisRefStringOrFn === \"function\")) {\n _context28.next = 28;\n break;\n }\n\n _context28.next = 23;\n return thisRefStringOrFn();\n\n case 23:\n res = _context28.sent;\n\n if (!(typeof res === \"string\")) {\n _context28.next = 26;\n break;\n }\n\n return _context28.abrupt(\"return\", res);\n\n case 26:\n _context28.next = 30;\n break;\n\n case 28:\n if (!thisRefStringOrFn) {\n _context28.next = 30;\n break;\n }\n\n return _context28.abrupt(\"return\", thisRefStringOrFn);\n\n case 30:\n _context28.next = 32;\n return this.getCachedRepository();\n\n case 32:\n _repository2 = _context28.sent;\n _ref2 = findRef(_repository2.refs, function (ref2) {\n return ref2.isMasterRef;\n });\n return _context28.abrupt(\"return\", _ref2.ref);\n\n case 35:\n case \"end\":\n return _context28.stop();\n }\n }\n }, _callee28, this);\n }));\n\n function getResolvedRefString() {\n return _getResolvedRefString.apply(this, arguments);\n }\n\n return getResolvedRefString;\n }()\n }, {\n key: \"fetch\",\n value: function () {\n var _fetch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee29(url) {\n var res, json;\n return _regeneratorRuntime.wrap(function _callee29$(_context29) {\n while (1) {\n switch (_context29.prev = _context29.next) {\n case 0:\n _context29.next = 2;\n return this.fetchFn(url);\n\n case 2:\n res = _context29.sent;\n _context29.prev = 3;\n _context29.next = 6;\n return res.json();\n\n case 6:\n json = _context29.sent;\n _context29.next = 12;\n break;\n\n case 9:\n _context29.prev = 9;\n _context29.t0 = _context29[\"catch\"](3);\n throw new PrismicError(void 0, {\n url: url\n });\n\n case 12:\n _context29.t1 = res.status;\n _context29.next = _context29.t1 === 200 ? 15 : _context29.t1 === 400 ? 16 : _context29.t1 === 401 ? 19 : _context29.t1 === 403 ? 19 : 21;\n break;\n\n case 15:\n return _context29.abrupt(\"return\", json);\n\n case 16:\n if (!isParsingErrorAPIResponse(json)) {\n _context29.next = 18;\n break;\n }\n\n throw new ParsingError(json.message, {\n url: url,\n response: json\n });\n\n case 18:\n return _context29.abrupt(\"break\", 21);\n\n case 19:\n if (!isForbiddenErrorAPIResponse(json)) {\n _context29.next = 21;\n break;\n }\n\n throw new ForbiddenError(\"error\" in json ? json.error : json.message, {\n url: url,\n response: json\n });\n\n case 21:\n throw new PrismicError(void 0, {\n url: url,\n response: json\n });\n\n case 22:\n case \"end\":\n return _context29.stop();\n }\n }\n }, _callee29, this, [[3, 9]]);\n }));\n\n function fetch(_x32) {\n return _fetch.apply(this, arguments);\n }\n\n return fetch;\n }()\n }]);\n\n return Client;\n}();\n\nexport { Client, ForbiddenError, ParsingError, PrismicError, _buildQueryURL as buildQueryURL, cookie, createClient, getEndpoint, predicate };","import { getApplicativeMonoid } from './Applicative';\nimport { ap as ap_, apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply';\nimport { bind as bind_, chainFirst as chainFirst_ } from './Chain';\nimport { compact as compact_, separate as separate_ } from './Compactable';\nimport * as E from './Either';\nimport * as ET from './EitherT';\nimport { filter as filter_, filterMap as filterMap_, partition as partition_, partitionMap as partitionMap_ } from './Filterable';\nimport { chainEitherK as chainEitherK_, chainOptionK as chainOptionK_, filterOrElse as filterOrElse_, fromEitherK as fromEitherK_, fromOption as fromOption_, fromOptionK as fromOptionK_, fromPredicate as fromPredicate_ } from './FromEither';\nimport { ask as ask_, asks as asks_, chainFirstReaderK as chainFirstReaderK_, chainReaderK as chainReaderK_, fromReaderK as fromReaderK_ } from './FromReader';\nimport { flow, identity, pipe, SK } from './function';\nimport { bindTo as bindTo_, flap as flap_ } from './Functor';\nimport * as _ from './internal';\nimport * as R from './Reader'; // -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var left = /*#__PURE__*/ET.left(R.Pointed);\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var right = /*#__PURE__*/ET.right(R.Pointed);\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var rightReader = /*#__PURE__*/ET.rightF(R.Functor);\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var leftReader = /*#__PURE__*/ET.leftF(R.Functor); // -------------------------------------------------------------------------------------\n// natural transformations\n// -------------------------------------------------------------------------------------\n\n/**\n * @category natural transformations\n * @since 2.0.0\n */\n\nexport var fromEither = R.of;\n/**\n * @category natural transformations\n * @since 2.11.0\n */\n\nexport var fromReader = rightReader; // -------------------------------------------------------------------------------------\n// destructors\n// -------------------------------------------------------------------------------------\n\n/**\n * @category destructors\n * @since 2.10.0\n */\n\nexport var match = /*#__PURE__*/ET.match(R.Functor);\n/**\n * Less strict version of [`match`](#match).\n *\n * @category destructors\n * @since 2.10.0\n */\n\nexport var matchW = match;\n/**\n * @category destructors\n * @since 2.10.0\n */\n\nexport var matchE = /*#__PURE__*/ET.matchE(R.Monad);\n/**\n * Alias of [`matchE`](#matche).\n *\n * @category destructors\n * @since 2.0.0\n */\n\nexport var fold = matchE;\n/**\n * Less strict version of [`matchE`](#matche).\n *\n * @category destructors\n * @since 2.10.0\n */\n\nexport var matchEW = matchE;\n/**\n * Alias of [`matchEW`](#matchew).\n *\n * @category destructors\n * @since 2.10.0\n */\n\nexport var foldW = matchEW;\n/**\n * @category destructors\n * @since 2.0.0\n */\n\nexport var getOrElse = /*#__PURE__*/ET.getOrElse(R.Monad);\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * @category destructors\n * @since 2.6.0\n */\n\nexport var getOrElseW = getOrElse; // -------------------------------------------------------------------------------------\n// interop\n// -------------------------------------------------------------------------------------\n\n/**\n * @category interop\n * @since 2.10.0\n */\n\nexport var toUnion = /*#__PURE__*/ET.toUnion(R.Functor); // -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n\n/**\n * Changes the value of the local context during the execution of the action `ma` (similar to `Contravariant`'s\n * `contramap`).\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var local = R.local;\n/**\n * Less strict version of [`asksReaderEither`](#asksreadereither).\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var asksReaderEitherW = R.asksReaderW;\n/**\n * Effectfully accesses the environment.\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var asksReaderEither = asksReaderEitherW;\n/**\n * @category combinators\n * @since 2.0.0\n */\n\nexport var orElse = /*#__PURE__*/ET.orElse(R.Monad);\n/**\n * Less strict version of [`orElse`](#orelse).\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var orElseW = orElse;\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var orElseFirst = /*#__PURE__*/ET.orElseFirst(R.Monad);\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var orElseFirstW = orElseFirst;\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var orLeft = /*#__PURE__*/ET.orLeft(R.Monad);\n/**\n * @category combinators\n * @since 2.0.0\n */\n\nexport var swap = /*#__PURE__*/ET.swap(R.Functor); // -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\n\n/* istanbul ignore next */\n\nvar _map = function _map(fa, f) {\n return pipe(fa, map(f));\n};\n/* istanbul ignore next */\n\n\nvar _bimap = function _bimap(fa, f, g) {\n return pipe(fa, bimap(f, g));\n};\n/* istanbul ignore next */\n\n\nvar _mapLeft = function _mapLeft(fa, f) {\n return pipe(fa, mapLeft(f));\n};\n/* istanbul ignore next */\n\n\nvar _ap = function _ap(fab, fa) {\n return pipe(fab, ap(fa));\n};\n/* istanbul ignore next */\n\n\nvar _chain = function _chain(ma, f) {\n return pipe(ma, chain(f));\n};\n/* istanbul ignore next */\n\n\nvar _alt = function _alt(fa, that) {\n return pipe(fa, alt(that));\n}; // -------------------------------------------------------------------------------------\n// type class members\n// -------------------------------------------------------------------------------------\n\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category Functor\n * @since 2.0.0\n */\n\n\nexport var map = /*#__PURE__*/ET.map(R.Functor);\n/**\n * Map a pair of functions over the two last type arguments of the bifunctor.\n *\n * @category Bifunctor\n * @since 2.0.0\n */\n\nexport var bimap = /*#__PURE__*/ET.bimap(R.Functor);\n/**\n * Map a function over the second type argument of a bifunctor.\n *\n * @category Bifunctor\n * @since 2.0.0\n */\n\nexport var mapLeft = /*#__PURE__*/ET.mapLeft(R.Functor);\n/**\n * Apply a function to an argument under a type constructor.\n *\n * @category Apply\n * @since 2.0.0\n */\n\nexport var ap = /*#__PURE__*/ET.ap(R.Apply);\n/**\n * Less strict version of [`ap`](#ap).\n *\n * @category Apply\n * @since 2.8.0\n */\n\nexport var apW = ap;\n/**\n * @category Pointed\n * @since 2.8.5\n */\n\nexport var of = right;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @category Monad\n * @since 2.0.0\n */\n\nexport var chain = /*#__PURE__*/ET.chain(R.Monad);\n/**\n * Less strict version of [`chain`](#chain).\n *\n * @category Monad\n * @since 2.6.0\n */\n\nexport var chainW = chain;\n/**\n * Less strict version of [`flatten`](#flatten).\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var flattenW = /*#__PURE__*/chainW(identity);\n/**\n * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var flatten = flattenW;\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 * @category Alt\n * @since 2.0.0\n */\n\nexport var alt = /*#__PURE__*/ET.alt(R.Monad);\n/**\n * Less strict version of [`alt`](#alt).\n *\n * @category Alt\n * @since 2.9.0\n */\n\nexport var altW = alt;\n/**\n * @category MonadThrow\n * @since 2.7.0\n */\n\nexport var throwError = left; // -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @category instances\n * @since 2.0.0\n */\n\nexport var URI = 'ReaderEither';\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var getCompactable = function getCompactable(M) {\n var C = E.getCompactable(M);\n return {\n URI: URI,\n _E: undefined,\n compact: compact_(R.Functor, C),\n separate: separate_(R.Functor, C, E.Functor)\n };\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport function getFilterable(M) {\n var F = E.getFilterable(M);\n var C = getCompactable(M);\n\n var _filter = filter_(R.Functor, F);\n\n var _filterMap = filterMap_(R.Functor, F);\n\n var _partition = partition_(R.Functor, F);\n\n var _partitionMap = partitionMap_(R.Functor, F);\n\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n compact: C.compact,\n separate: C.separate,\n filter: function filter(fa, predicate) {\n return pipe(fa, _filter(predicate));\n },\n filterMap: function filterMap(fa, f) {\n return pipe(fa, _filterMap(f));\n },\n partition: function partition(fa, predicate) {\n return pipe(fa, _partition(predicate));\n },\n partitionMap: function partitionMap(fa, f) {\n return pipe(fa, _partitionMap(f));\n }\n };\n}\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport function getApplicativeReaderValidation(S) {\n var _ap2 = ap_(R.Apply, E.getApplicativeValidation(S));\n\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n ap: function ap(fab, fa) {\n return pipe(fab, _ap2(fa));\n },\n of: of\n };\n}\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport function getAltReaderValidation(S) {\n var _alt2 = ET.altValidation(R.Monad, S);\n\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n alt: function alt(fa, that) {\n return pipe(fa, _alt2(that));\n }\n };\n}\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Derivable from `Functor`.\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var flap = /*#__PURE__*/flap_(Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Apply = {\n URI: URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * Derivable from `Apply`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var apFirst = /*#__PURE__*/apFirst_(Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * Derivable from `Apply`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var apSecond = /*#__PURE__*/apSecond_(Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\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 */\n\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: _chain\n};\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 * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var chainFirst = /*#__PURE__*/chainFirst_(Chain);\n/**\n * Less strict version of [`chainFirst`](#chainfirst)\n *\n * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.8.0\n */\n\nexport var chainFirstW = chainFirst;\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Bifunctor = {\n URI: URI,\n bimap: _bimap,\n mapLeft: _mapLeft\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Alt = {\n URI: URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var FromReader = {\n URI: URI,\n fromReader: fromReader\n};\n/**\n * Reads the current context.\n *\n * @category constructors\n * @since 2.0.0\n */\n\nexport var ask = /*#__PURE__*/ask_(FromReader);\n/**\n * Projects a value from the global context in a `ReaderEither`.\n *\n * @category constructors\n * @since 2.0.0\n */\n\nexport var asks = /*#__PURE__*/asks_(FromReader);\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var fromReaderK = /*#__PURE__*/fromReaderK_(FromReader);\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var chainReaderK = /*#__PURE__*/chainReaderK_(FromReader, Chain);\n/**\n * Less strict version of [`chainReaderK`](#chainreaderk).\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var chainReaderKW = chainReaderK;\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var chainFirstReaderK = /*#__PURE__*/chainFirstReaderK_(FromReader, Chain);\n/**\n * Less strict version of [`chainReaderK`](#chainreaderk).\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var chainFirstReaderKW = chainFirstReaderK;\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var MonadThrow = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: _chain,\n throwError: throwError\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var FromEither = {\n URI: URI,\n fromEither: fromEither\n};\n/**\n * @category natural transformations\n * @since 2.0.0\n */\n\nexport var fromOption = /*#__PURE__*/fromOption_(FromEither);\n/**\n * @category combinators\n * @since 2.10.0\n */\n\nexport var fromOptionK = /*#__PURE__*/fromOptionK_(FromEither);\n/**\n * @category combinators\n * @since 2.10.0\n */\n\nexport var chainOptionK = /*#__PURE__*/chainOptionK_(FromEither, Chain);\n/**\n * @category combinators\n * @since 2.4.0\n */\n\nexport var chainEitherK = /*#__PURE__*/chainEitherK_(FromEither, Chain);\n/**\n * Less strict version of [`chainEitherK`](#chaineitherk).\n *\n * @category combinators\n * @since 2.6.1\n */\n\nexport var chainEitherKW = chainEitherK;\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var fromPredicate = /*#__PURE__*/fromPredicate_(FromEither);\n/**\n * @category combinators\n * @since 2.0.0\n */\n\nexport var filterOrElse = /*#__PURE__*/filterOrElse_(FromEither, Chain);\n/**\n * Less strict version of [`filterOrElse`](#filterorelse).\n *\n * @category combinators\n * @since 2.9.0\n */\n\nexport var filterOrElseW = filterOrElse;\n/**\n * @category combinators\n * @since 2.4.0\n */\n\nexport var fromEitherK = /*#__PURE__*/fromEitherK_(FromEither); // -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.9.0\n */\n\nexport var Do = /*#__PURE__*/of(_.emptyRecord);\n/**\n * @since 2.8.0\n */\n\nexport var bindTo = /*#__PURE__*/bindTo_(Functor);\n/**\n * @since 2.8.0\n */\n\nexport var bind = /*#__PURE__*/bind_(Chain);\n/**\n * @since 2.8.0\n */\n\nexport var bindW = bind; // -------------------------------------------------------------------------------------\n// pipeable sequence S\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.8.0\n */\n\nexport var apS = /*#__PURE__*/apS_(Apply);\n/**\n * @since 2.8.0\n */\n\nexport var apSW = apS; // -------------------------------------------------------------------------------------\n// sequence T\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.11.0\n */\n\nexport var ApT = /*#__PURE__*/of(_.emptyReadonlyArray); // -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`.\n *\n * @since 2.11.0\n */\n\nexport var traverseReadonlyNonEmptyArrayWithIndex = function traverseReadonlyNonEmptyArrayWithIndex(f) {\n return flow(R.traverseReadonlyNonEmptyArrayWithIndex(f), R.map(E.traverseReadonlyNonEmptyArrayWithIndex(SK)));\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @since 2.11.0\n */\n\nexport var traverseReadonlyArrayWithIndex = function traverseReadonlyArrayWithIndex(f) {\n var g = traverseReadonlyNonEmptyArrayWithIndex(f);\n return function (as) {\n return _.isNonEmpty(as) ? g(as) : ApT;\n };\n};\n/**\n * @since 2.9.0\n */\n\nexport var traverseArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * @since 2.9.0\n */\n\nexport var traverseArray = function traverseArray(f) {\n return traverseReadonlyArrayWithIndex(function (_, a) {\n return f(a);\n });\n};\n/**\n * @since 2.9.0\n */\n\nexport var sequenceArray = /*#__PURE__*/traverseArray(identity); // -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n// tslint:disable: deprecation\n\n/**\n * Use small, specific instances instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var readerEither = {\n URI: URI,\n bimap: _bimap,\n mapLeft: _mapLeft,\n map: _map,\n of: of,\n ap: _ap,\n chain: _chain,\n alt: _alt,\n throwError: left\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getApplySemigroup = /*#__PURE__*/getApplySemigroup_(Apply);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getApplyMonoid = /*#__PURE__*/getApplicativeMonoid(Applicative);\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getSemigroup = function getSemigroup(S) {\n return getApplySemigroup_(R.Apply)(E.getSemigroup(S));\n};\n/**\n * Use [`getApplicativeReaderValidation`](#getapplicativereadervalidation) and [`getAltReaderValidation`](#getaltreadervalidation) instead.\n *\n * @category instances\n * @since 2.3.0\n * @deprecated\n */\n\nexport function getReaderValidation(SE) {\n var applicativeReaderValidation = getApplicativeReaderValidation(SE);\n var altReaderValidation = getAltReaderValidation(SE);\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n ap: applicativeReaderValidation.ap,\n of: of,\n chain: _chain,\n bimap: _bimap,\n mapLeft: _mapLeft,\n alt: altReaderValidation.alt,\n throwError: throwError\n };\n}","var __spreadArray = this && this.__spreadArray || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\n to[j] = from[i];\n }\n\n return to;\n};\n\nimport { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply';\nimport { bind as bind_, chainFirst as chainFirst_ } from './Chain';\nimport { fromEquals } from './Eq';\nimport { identity, pipe, SK } from './function';\nimport { bindTo as bindTo_, flap as flap_ } from './Functor';\nimport * as _ from './internal';\nimport { getMonoid } from './Ord';\nimport * as Se from './Semigroup'; // -------------------------------------------------------------------------------------\n// internal\n// -------------------------------------------------------------------------------------\n\n/**\n * @internal\n */\n\nexport var empty = _.emptyReadonlyArray;\n/**\n * @internal\n */\n\nexport var isNonEmpty = _.isNonEmpty;\n/**\n * @internal\n */\n\nexport var isOutOfBound = function isOutOfBound(i, as) {\n return i < 0 || i >= as.length;\n};\n/**\n * @internal\n */\n\nexport var prependW = function prependW(head) {\n return function (tail) {\n return __spreadArray([head], tail);\n };\n};\n/**\n * @internal\n */\n\nexport var prepend = prependW;\n/**\n * @internal\n */\n\nexport var appendW = function appendW(end) {\n return function (init) {\n return __spreadArray(__spreadArray([], init), [end]);\n };\n};\n/**\n * @internal\n */\n\nexport var append = appendW;\n/**\n * @internal\n */\n\nexport var unsafeInsertAt = function unsafeInsertAt(i, a, as) {\n if (isNonEmpty(as)) {\n var xs = _.fromReadonlyNonEmptyArray(as);\n\n xs.splice(i, 0, a);\n return xs;\n }\n\n return [a];\n};\n/**\n * @internal\n */\n\nexport var unsafeUpdateAt = function unsafeUpdateAt(i, a, as) {\n if (as[i] === a) {\n return as;\n } else {\n var xs = _.fromReadonlyNonEmptyArray(as);\n\n xs[i] = a;\n return xs;\n }\n};\n/**\n * Remove duplicates from a `ReadonlyNonEmptyArray`, keeping the first occurrence of an element.\n *\n * @example\n * import { uniq } from 'fp-ts/ReadonlyNonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var uniq = function uniq(E) {\n return function (as) {\n if (as.length === 1) {\n return as;\n }\n\n var out = [head(as)];\n var rest = tail(as);\n\n var _loop_1 = function _loop_1(a) {\n if (out.every(function (o) {\n return !E.equals(o, a);\n })) {\n out.push(a);\n }\n };\n\n for (var _i = 0, rest_1 = rest; _i < rest_1.length; _i++) {\n var a = rest_1[_i];\n\n _loop_1(a);\n }\n\n return out;\n };\n};\n/**\n * Sort the elements of a `ReadonlyNonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * name: string\n * age: number\n * }\n *\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n *\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = RNEA.sortBy([byName, byAge])\n *\n * const persons: RNEA.ReadonlyNonEmptyArray = [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 },\n * { name: 'b', age: 2 }\n * ]\n *\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var sortBy = function sortBy(ords) {\n if (isNonEmpty(ords)) {\n var M = getMonoid();\n return sort(ords.reduce(M.concat, M.empty));\n }\n\n return identity;\n};\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var union = function union(E) {\n var uniqE = uniq(E);\n return function (second) {\n return function (first) {\n return uniqE(pipe(first, concat(second)));\n };\n };\n};\n/**\n * Rotate a `ReadonlyNonEmptyArray` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2])\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var rotate = function rotate(n) {\n return function (as) {\n var len = as.length;\n var m = Math.round(n) % len;\n\n if (isOutOfBound(Math.abs(m), as) || m === 0) {\n return as;\n }\n\n if (m < 0) {\n var _a = splitAt(-m)(as),\n f = _a[0],\n s = _a[1];\n\n return pipe(s, concat(f));\n } else {\n return rotate(m - len)(as);\n }\n };\n}; // -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n\n/**\n * Return a `ReadonlyNonEmptyArray` from a `ReadonlyArray` returning `none` if the input is empty.\n *\n * @category constructors\n * @since 2.5.0\n */\n\nexport var fromReadonlyArray = function fromReadonlyArray(as) {\n return isNonEmpty(as) ? _.some(as) : _.none;\n};\n/**\n * Return a `ReadonlyNonEmptyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { makeBy } from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const double = (n: number): number => n * 2\n * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8])\n *\n * @category constructors\n * @since 2.11.0\n */\n\nexport var makeBy = function makeBy(f) {\n return function (n) {\n var j = Math.max(0, Math.floor(n));\n var out = [f(0)];\n\n for (var i = 1; i < j; i++) {\n out.push(f(i));\n }\n\n return out;\n };\n};\n/**\n * Create a `ReadonlyNonEmptyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { replicate } from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a'])\n *\n * @category constructors\n * @since 2.11.0\n */\n\nexport var replicate = function replicate(a) {\n return makeBy(function () {\n return a;\n });\n};\n/**\n * Create a `ReadonlyNonEmptyArray` containing a range of integers, including both endpoints.\n *\n * @example\n * import { range } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5])\n *\n * @category constructors\n * @since 2.11.0\n */\n\nexport var range = function range(start, end) {\n return start <= end ? makeBy(function (i) {\n return start + i;\n })(end - start + 1) : [start];\n}; // -------------------------------------------------------------------------------------\n// destructors\n// -------------------------------------------------------------------------------------\n\n/**\n * Return the tuple of the `head` and the `tail`.\n *\n * @example\n * import { unprepend } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(unprepend([1, 2, 3, 4]), [1, [2, 3, 4]])\n *\n * @category destructors\n * @since 2.9.0\n */\n\nexport var unprepend = function unprepend(as) {\n return [head(as), tail(as)];\n};\n/**\n * Return the tuple of the `init` and the `last`.\n *\n * @example\n * import { unappend } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4])\n *\n * @category destructors\n * @since 2.9.0\n */\n\nexport var unappend = function unappend(as) {\n return [init(as), last(as)];\n}; // -------------------------------------------------------------------------------------\n// interop\n// -------------------------------------------------------------------------------------\n\n/**\n * @category interop\n * @since 2.5.0\n */\n\nexport var fromArray = function fromArray(as) {\n return fromReadonlyArray(as.slice());\n};\nexport function concatW(second) {\n return function (first) {\n return first.concat(second);\n };\n}\nexport function concat(x, y) {\n return y ? x.concat(y) : function (y) {\n return y.concat(x);\n };\n}\n/**\n * @category combinators\n * @since 2.5.0\n */\n\nexport var reverse = function reverse(as) {\n return as.length === 1 ? as : __spreadArray([last(as)], as.slice(0, -1).reverse());\n};\nexport function group(E) {\n return function (as) {\n var len = as.length;\n\n if (len === 0) {\n return empty;\n }\n\n var out = [];\n var head = as[0];\n var nea = [head];\n\n for (var i = 1; i < len; i++) {\n var a = as[i];\n\n if (E.equals(a, head)) {\n nea.push(a);\n } else {\n out.push(nea);\n head = a;\n nea = [head];\n }\n }\n\n out.push(nea);\n return out;\n };\n}\n/**\n * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning\n * function on each element, and grouping the results according to values returned\n *\n * @example\n * import { groupBy } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), {\n * '1': ['a', 'b'],\n * '2': ['ab']\n * })\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var groupBy = function groupBy(f) {\n return function (as) {\n var out = {};\n\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n var k = f(a);\n\n if (out.hasOwnProperty(k)) {\n out[k].push(a);\n } else {\n out[k] = [a];\n }\n }\n\n return out;\n };\n};\n/**\n * @category combinators\n * @since 2.5.0\n */\n\nexport var sort = function sort(O) {\n return function (as) {\n return as.length === 1 ? as : as.slice().sort(O.compare);\n };\n};\n/**\n * @category combinators\n * @since 2.5.0\n */\n\nexport var updateAt = function updateAt(i, a) {\n return modifyAt(i, function () {\n return a;\n });\n};\n/**\n * @category combinators\n * @since 2.5.0\n */\n\nexport var modifyAt = function modifyAt(i, f) {\n return function (as) {\n return isOutOfBound(i, as) ? _.none : _.some(unsafeUpdateAt(i, f(as[i]), as));\n };\n};\n/**\n * @category combinators\n * @since 2.5.1\n */\n\nexport var zipWith = function zipWith(as, bs, f) {\n var cs = [f(as[0], bs[0])];\n var len = Math.min(as.length, bs.length);\n\n for (var i = 1; i < len; i++) {\n cs[i] = f(as[i], bs[i]);\n }\n\n return cs;\n};\nexport function zip(as, bs) {\n if (bs === undefined) {\n return function (bs) {\n return zip(bs, as);\n };\n }\n\n return zipWith(as, bs, function (a, b) {\n return [a, b];\n });\n}\n/**\n * @category combinators\n * @since 2.5.1\n */\n\nexport var unzip = function unzip(abs) {\n var fa = [abs[0][0]];\n var fb = [abs[0][1]];\n\n for (var i = 1; i < abs.length; i++) {\n fa[i] = abs[i][0];\n fb[i] = abs[i][1];\n }\n\n return [fa, fb];\n};\n/**\n * Prepend an element to every member of a `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { prependAll } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var prependAll = function prependAll(middle) {\n return function (as) {\n var out = [middle, as[0]];\n\n for (var i = 1; i < as.length; i++) {\n out.push(middle, as[i]);\n }\n\n return out;\n };\n};\n/**\n * Places an element in between members of a `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { intersperse } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @category combinators\n * @since 2.9.0\n */\n\nexport var intersperse = function intersperse(middle) {\n return function (as) {\n var rest = tail(as);\n return isNonEmpty(rest) ? pipe(rest, prependAll(middle), prepend(head(as))) : as;\n };\n};\n/**\n * @category combinators\n * @since 2.10.0\n */\n\nexport var chainWithIndex = function chainWithIndex(f) {\n return function (as) {\n var out = _.fromReadonlyNonEmptyArray(f(0, head(as)));\n\n for (var i = 1; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n\n return out;\n };\n};\n/**\n * A useful recursion pattern for processing a `ReadonlyNonEmptyArray` to produce a new `ReadonlyNonEmptyArray`, often used for \"chopping\" up the input\n * `ReadonlyNonEmptyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyNonEmptyArray` and produce a\n * value and the tail of the `ReadonlyNonEmptyArray`.\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var chop = function chop(f) {\n return function (as) {\n var _a = f(as),\n b = _a[0],\n rest = _a[1];\n\n var out = [b];\n var next = rest;\n\n while (isNonEmpty(next)) {\n var _b = f(next),\n b_1 = _b[0],\n rest_2 = _b[1];\n\n out.push(b_1);\n next = rest_2;\n }\n\n return out;\n };\n};\n/**\n * Splits a `ReadonlyNonEmptyArray` into two pieces, the first piece has max `n` elements.\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var splitAt = function splitAt(n) {\n return function (as) {\n var m = Math.max(1, n);\n return m >= as.length ? [as, empty] : [pipe(as.slice(1, m), prepend(head(as))), as.slice(m)];\n };\n};\n/**\n * Splits a `ReadonlyNonEmptyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the `ReadonlyNonEmptyArray`.\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var chunksOf = function chunksOf(n) {\n return chop(splitAt(n));\n}; // -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\n\nvar _map = function _map(fa, f) {\n return pipe(fa, map(f));\n};\n/* istanbul ignore next */\n\n\nvar _mapWithIndex = function _mapWithIndex(fa, f) {\n return pipe(fa, mapWithIndex(f));\n};\n\nvar _ap = function _ap(fab, fa) {\n return pipe(fab, ap(fa));\n};\n\nvar _chain = function _chain(ma, f) {\n return pipe(ma, chain(f));\n};\n/* istanbul ignore next */\n\n\nvar _extend = function _extend(wa, f) {\n return pipe(wa, extend(f));\n};\n/* istanbul ignore next */\n\n\nvar _reduce = function _reduce(fa, b, f) {\n return pipe(fa, reduce(b, f));\n};\n/* istanbul ignore next */\n\n\nvar _foldMap = function _foldMap(M) {\n var foldMapM = foldMap(M);\n return function (fa, f) {\n return pipe(fa, foldMapM(f));\n };\n};\n/* istanbul ignore next */\n\n\nvar _reduceRight = function _reduceRight(fa, b, f) {\n return pipe(fa, reduceRight(b, f));\n};\n/* istanbul ignore next */\n\n\nvar _traverse = function _traverse(F) {\n var traverseF = traverse(F);\n return function (ta, f) {\n return pipe(ta, traverseF(f));\n };\n};\n/* istanbul ignore next */\n\n\nvar _alt = function _alt(fa, that) {\n return pipe(fa, alt(that));\n};\n/* istanbul ignore next */\n\n\nvar _reduceWithIndex = function _reduceWithIndex(fa, b, f) {\n return pipe(fa, reduceWithIndex(b, f));\n};\n/* istanbul ignore next */\n\n\nvar _foldMapWithIndex = function _foldMapWithIndex(M) {\n var foldMapWithIndexM = foldMapWithIndex(M);\n return function (fa, f) {\n return pipe(fa, foldMapWithIndexM(f));\n };\n};\n/* istanbul ignore next */\n\n\nvar _reduceRightWithIndex = function _reduceRightWithIndex(fa, b, f) {\n return pipe(fa, reduceRightWithIndex(b, f));\n};\n/* istanbul ignore next */\n\n\nvar _traverseWithIndex = function _traverseWithIndex(F) {\n var traverseWithIndexF = traverseWithIndex(F);\n return function (ta, f) {\n return pipe(ta, traverseWithIndexF(f));\n };\n}; // -------------------------------------------------------------------------------------\n// type class members\n// -------------------------------------------------------------------------------------\n\n/**\n * @category Pointed\n * @since 2.5.0\n */\n\n\nexport var of = _.singleton;\n/**\n * Less strict version of [`alt`](#alt).\n *\n * @category Alt\n * @since 2.9.0\n */\n\nexport var altW = function altW(that) {\n return function (as) {\n return pipe(as, concatW(that()));\n };\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 * @category Alt\n * @since 2.6.2\n */\n\nexport var alt = altW;\n/**\n * @category Apply\n * @since 2.5.0\n */\n\nexport var ap = function ap(as) {\n return chain(function (f) {\n return pipe(as, map(f));\n });\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @category Monad\n * @since 2.5.0\n */\n\nexport var chain = function chain(f) {\n return chainWithIndex(function (_, a) {\n return f(a);\n });\n};\n/**\n * @category Extend\n * @since 2.5.0\n */\n\nexport var extend = function extend(f) {\n return function (as) {\n var next = tail(as);\n var out = [f(as)];\n\n while (isNonEmpty(next)) {\n out.push(f(next));\n next = tail(next);\n }\n\n return out;\n };\n};\n/**\n * Derivable from `Extend`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var duplicate = /*#__PURE__*/extend(identity);\n/**\n * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var flatten = /*#__PURE__*/chain(identity);\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category Functor\n * @since 2.5.0\n */\n\nexport var map = function map(f) {\n return mapWithIndex(function (_, a) {\n return f(a);\n });\n};\n/**\n * @category FunctorWithIndex\n * @since 2.5.0\n */\n\nexport var mapWithIndex = function mapWithIndex(f) {\n return function (as) {\n var out = [f(0, head(as))];\n\n for (var i = 1; i < as.length; i++) {\n out.push(f(i, as[i]));\n }\n\n return out;\n };\n};\n/**\n * @category Foldable\n * @since 2.5.0\n */\n\nexport var reduce = function reduce(b, f) {\n return reduceWithIndex(b, function (_, b, a) {\n return f(b, a);\n });\n};\n/**\n * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`.\n *\n * @category Foldable\n * @since 2.5.0\n */\n\nexport var foldMap = function foldMap(S) {\n return function (f) {\n return function (as) {\n return as.slice(1).reduce(function (s, a) {\n return S.concat(s, f(a));\n }, f(as[0]));\n };\n };\n};\n/**\n * @category Foldable\n * @since 2.5.0\n */\n\nexport var reduceRight = function reduceRight(b, f) {\n return reduceRightWithIndex(b, function (_, b, a) {\n return f(b, a);\n });\n};\n/**\n * @category FoldableWithIndex\n * @since 2.5.0\n */\n\nexport var reduceWithIndex = function reduceWithIndex(b, f) {\n return function (as) {\n return as.reduce(function (b, a, i) {\n return f(i, b, a);\n }, b);\n };\n};\n/**\n * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`.\n *\n * @category FoldableWithIndex\n * @since 2.5.0\n */\n\nexport var foldMapWithIndex = function foldMapWithIndex(S) {\n return function (f) {\n return function (as) {\n return as.slice(1).reduce(function (s, a, i) {\n return S.concat(s, f(i + 1, a));\n }, f(0, as[0]));\n };\n };\n};\n/**\n * @category FoldableWithIndex\n * @since 2.5.0\n */\n\nexport var reduceRightWithIndex = function reduceRightWithIndex(b, f) {\n return function (as) {\n return as.reduceRight(function (b, a, i) {\n return f(i, a, b);\n }, b);\n };\n};\n/**\n * @category Traversable\n * @since 2.6.3\n */\n\nexport var traverse = function traverse(F) {\n var traverseWithIndexF = traverseWithIndex(F);\n return function (f) {\n return traverseWithIndexF(function (_, a) {\n return f(a);\n });\n };\n};\n/**\n * @category Traversable\n * @since 2.6.3\n */\n\nexport var sequence = function sequence(F) {\n return traverseWithIndex(F)(SK);\n};\n/**\n * @category TraversableWithIndex\n * @since 2.6.3\n */\n\nexport var traverseWithIndex = function traverseWithIndex(F) {\n return function (f) {\n return function (as) {\n var out = F.map(f(0, head(as)), of);\n\n for (var i = 1; i < as.length; i++) {\n out = F.ap(F.map(out, function (bs) {\n return function (b) {\n return pipe(bs, append(b));\n };\n }), f(i, as[i]));\n }\n\n return out;\n };\n };\n};\n/**\n * @category Comonad\n * @since 2.6.3\n */\n\nexport var extract = _.head; // -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @category instances\n * @since 2.5.0\n */\n\nexport var URI = 'ReadonlyNonEmptyArray';\n/**\n * @category instances\n * @since 2.5.0\n */\n\nexport var getShow = function getShow(S) {\n return {\n show: function show(as) {\n return \"[\" + as.map(S.show).join(', ') + \"]\";\n }\n };\n};\n/**\n * Builds a `Semigroup` instance for `ReadonlyNonEmptyArray`\n *\n * @category instances\n * @since 2.5.0\n */\n\nexport var getSemigroup = function getSemigroup() {\n return {\n concat: concat\n };\n};\n/**\n * @example\n * import { getEq } from 'fp-ts/ReadonlyNonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals([1, 2], [1, 2]), true)\n * assert.strictEqual(E.equals([1, 2], [1, 3]), false)\n *\n * @category instances\n * @since 2.5.0\n */\n\nexport var getEq = function getEq(E) {\n return fromEquals(function (xs, ys) {\n return xs.length === ys.length && xs.every(function (x, i) {\n return E.equals(x, ys[i]);\n });\n });\n};\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var getUnionSemigroup = function getUnionSemigroup(E) {\n var unionE = union(E);\n return {\n concat: function concat(first, second) {\n return unionE(second)(first);\n }\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Derivable from `Functor`.\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var flap = /*#__PURE__*/flap_(Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var FunctorWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Apply = {\n URI: URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * Derivable from `Apply`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var apFirst = /*#__PURE__*/apFirst_(Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * Derivable from `Apply`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var apSecond = /*#__PURE__*/apSecond_(Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\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 */\n\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\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 * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var chainFirst = /*#__PURE__*/chainFirst_(Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Foldable = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var FoldableWithIndex = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\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 * @category instances\n * @since 2.7.0\n */\n\nexport var TraversableWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Alt = {\n URI: URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Comonad = {\n URI: URI,\n map: _map,\n extend: _extend,\n extract: extract\n}; // -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.9.0\n */\n\nexport var Do = /*#__PURE__*/of(_.emptyRecord);\n/**\n * @since 2.8.0\n */\n\nexport var bindTo = /*#__PURE__*/bindTo_(Functor);\n/**\n * @since 2.8.0\n */\n\nexport var bind = /*#__PURE__*/bind_(Chain); // -------------------------------------------------------------------------------------\n// pipeable sequence S\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.8.0\n */\n\nexport var apS = /*#__PURE__*/apS_(Apply); // -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.5.0\n */\n\nexport var head = extract;\n/**\n * @since 2.5.0\n */\n\nexport var tail = _.tail;\n/**\n * @since 2.5.0\n */\n\nexport var last = function last(as) {\n return as[as.length - 1];\n};\n/**\n * Get all but the last element of a non empty array, creating a new array.\n *\n * @example\n * import { init } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), [1, 2])\n * assert.deepStrictEqual(init([1]), [])\n *\n * @since 2.5.0\n */\n\nexport var init = function init(as) {\n return as.slice(0, -1);\n};\n/**\n * @since 2.5.0\n */\n\nexport var min = function min(O) {\n var S = Se.min(O);\n return function (as) {\n return as.reduce(S.concat);\n };\n};\n/**\n * @since 2.5.0\n */\n\nexport var max = function max(O) {\n var S = Se.max(O);\n return function (as) {\n return as.reduce(S.concat);\n };\n};\n/**\n * @since 2.10.0\n */\n\nexport var concatAll = function concatAll(S) {\n return function (as) {\n return as.reduce(S.concat);\n };\n};\n/**\n * Break a `ReadonlyArray` into its first element and remaining elements.\n *\n * @category destructors\n * @since 2.11.0\n */\n\nexport var matchLeft = function matchLeft(f) {\n return function (as) {\n return f(head(as), tail(as));\n };\n};\n/**\n * Break a `ReadonlyArray` into its initial elements and the last element.\n *\n * @category destructors\n * @since 2.11.0\n */\n\nexport var matchRight = function matchRight(f) {\n return function (as) {\n return f(init(as), last(as));\n };\n};\n/**\n * Apply a function to the head, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\n\nexport var modifyHead = function modifyHead(f) {\n return function (as) {\n return __spreadArray([f(head(as))], tail(as));\n };\n};\n/**\n * Change the head, creating a new `ReadonlyNonEmptyArray`.\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var updateHead = function updateHead(a) {\n return modifyHead(function () {\n return a;\n });\n};\n/**\n * Apply a function to the last element, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\n\nexport var modifyLast = function modifyLast(f) {\n return function (as) {\n return pipe(init(as), append(f(last(as))));\n };\n};\n/**\n * Change the last element, creating a new `ReadonlyNonEmptyArray`.\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var updateLast = function updateLast(a) {\n return modifyLast(function () {\n return a;\n });\n};\nexport function groupSort(O) {\n var sortO = sort(O);\n var groupO = group(O);\n return function (as) {\n return isNonEmpty(as) ? groupO(sortO(as)) : empty;\n };\n}\nexport function filter(predicate) {\n return filterWithIndex(function (_, a) {\n return predicate(a);\n });\n}\n/**\n * Use [`filterWithIndex`](./ReadonlyArray.ts.html#filterwithindex) instead.\n *\n * @category combinators\n * @since 2.5.0\n * @deprecated\n */\n\nexport var filterWithIndex = function filterWithIndex(predicate) {\n return function (as) {\n return fromReadonlyArray(as.filter(function (a, i) {\n return predicate(i, a);\n }));\n };\n};\n/**\n * Use [`unprepend`](#unprepend) instead.\n *\n * @category destructors\n * @since 2.10.0\n * @deprecated\n */\n\nexport var uncons = unprepend;\n/**\n * Use [`unappend`](#unappend) instead.\n *\n * @category destructors\n * @since 2.10.0\n * @deprecated\n */\n\nexport var unsnoc = unappend;\nexport function cons(head, tail) {\n return tail === undefined ? prepend(head) : pipe(tail, prepend(head));\n}\n/**\n * Use [`append`](./ReadonlyArray.ts.html#append) instead.\n *\n * @category constructors\n * @since 2.5.0\n * @deprecated\n */\n\nexport var snoc = function snoc(init, end) {\n return pipe(init, concat([end]));\n};\n/**\n * Use [`insertAt`](./ReadonlyArray.ts.html#insertat) instead.\n *\n * @category combinators\n * @since 2.5.0\n * @deprecated\n */\n\nexport var insertAt = function insertAt(i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some(unsafeInsertAt(i, a, as));\n };\n};\n/**\n * Use [`prependAll`](#prependall) instead.\n *\n * @category combinators\n * @since 2.9.0\n * @deprecated\n */\n\nexport var prependToAll = prependAll;\n/**\n * Use [`concatAll`](#concatall) instead.\n *\n * @since 2.5.0\n * @deprecated\n */\n\nexport var fold = concatAll;\n/**\n * Use small, specific instances instead.\n *\n * @category instances\n * @since 2.5.0\n * @deprecated\n */\n\nexport var readonlyNonEmptyArray = {\n URI: URI,\n of: of,\n map: _map,\n mapWithIndex: _mapWithIndex,\n ap: _ap,\n chain: _chain,\n extend: _extend,\n extract: extract,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n alt: _alt\n};","var __spreadArray = this && this.__spreadArray || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\n to[j] = from[i];\n }\n\n return to;\n};\n\nimport { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply';\nimport { bind as bind_, chainFirst as chainFirst_ } from './Chain';\nimport { identity, pipe } from './function';\nimport { bindTo as bindTo_, flap as flap_ } from './Functor';\nimport * as _ from './internal';\nimport { getMonoid } from './Ord';\nimport * as RNEA from './ReadonlyNonEmptyArray'; // -------------------------------------------------------------------------------------\n// internal\n// -------------------------------------------------------------------------------------\n\n/**\n * @internal\n */\n\nexport var isNonEmpty = function isNonEmpty(as) {\n return as.length > 0;\n};\n/**\n * @internal\n */\n\nexport var isOutOfBound = function isOutOfBound(i, as) {\n return i < 0 || i >= as.length;\n};\n/**\n * @internal\n */\n\nexport var prependW = function prependW(head) {\n return function (tail) {\n return __spreadArray([head], tail);\n };\n};\n/**\n * @internal\n */\n\nexport var prepend = prependW;\n/**\n * @internal\n */\n\nexport var appendW = function appendW(end) {\n return function (init) {\n return __spreadArray(__spreadArray([], init), [end]);\n };\n};\n/**\n * @internal\n */\n\nexport var append = appendW;\n/**\n * @internal\n */\n\nexport var unsafeInsertAt = function unsafeInsertAt(i, a, as) {\n if (isNonEmpty(as)) {\n var xs = fromReadonlyNonEmptyArray(as);\n xs.splice(i, 0, a);\n return xs;\n }\n\n return [a];\n};\n/**\n * @internal\n */\n\nexport var unsafeUpdateAt = function unsafeUpdateAt(i, a, as) {\n var xs = fromReadonlyNonEmptyArray(as);\n xs[i] = a;\n return xs;\n};\n/**\n * Remove duplicates from a `NonEmptyArray`, keeping the first occurrence of an element.\n *\n * @example\n * import { uniq } from 'fp-ts/NonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var uniq = function uniq(E) {\n return function (as) {\n if (as.length === 1) {\n return copy(as);\n }\n\n var out = [head(as)];\n var rest = tail(as);\n\n var _loop_1 = function _loop_1(a) {\n if (out.every(function (o) {\n return !E.equals(o, a);\n })) {\n out.push(a);\n }\n };\n\n for (var _i = 0, rest_1 = rest; _i < rest_1.length; _i++) {\n var a = rest_1[_i];\n\n _loop_1(a);\n }\n\n return out;\n };\n};\n/**\n * Sort the elements of a `NonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import * as NEA from 'fp-ts/NonEmptyArray'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * name: string\n * age: number\n * }\n *\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n *\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = NEA.sortBy([byName, byAge])\n *\n * const persons: NEA.NonEmptyArray = [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 },\n * { name: 'b', age: 2 }\n * ]\n *\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var sortBy = function sortBy(ords) {\n if (isNonEmpty(ords)) {\n var M = getMonoid();\n return sort(ords.reduce(M.concat, M.empty));\n }\n\n return copy;\n};\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var union = function union(E) {\n var uniqE = uniq(E);\n return function (second) {\n return function (first) {\n return uniqE(pipe(first, concat(second)));\n };\n };\n};\n/**\n * Rotate a `NonEmptyArray` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2])\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var rotate = function rotate(n) {\n return function (as) {\n var len = as.length;\n var m = Math.round(n) % len;\n\n if (isOutOfBound(Math.abs(m), as) || m === 0) {\n return copy(as);\n }\n\n if (m < 0) {\n var _a = splitAt(-m)(as),\n f = _a[0],\n s = _a[1];\n\n return pipe(s, concat(f));\n } else {\n return rotate(m - len)(as);\n }\n };\n}; // -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n\n/**\n * @category constructors\n * @since 2.10.0\n */\n\nexport var fromReadonlyNonEmptyArray = _.fromReadonlyNonEmptyArray;\n/**\n * Builds a `NonEmptyArray` from an `Array` returning `none` if `as` is an empty array\n *\n * @category constructors\n * @since 2.0.0\n */\n\nexport var fromArray = function fromArray(as) {\n return isNonEmpty(as) ? _.some(as) : _.none;\n};\n/**\n * Return a `NonEmptyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { makeBy } from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const double = (n: number): number => n * 2\n * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8])\n *\n * @category constructors\n * @since 2.11.0\n */\n\nexport var makeBy = function makeBy(f) {\n return function (n) {\n var j = Math.max(0, Math.floor(n));\n var out = [f(0)];\n\n for (var i = 1; i < j; i++) {\n out.push(f(i));\n }\n\n return out;\n };\n};\n/**\n * Create a `NonEmptyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { replicate } from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a'])\n *\n * @category constructors\n * @since 2.11.0\n */\n\nexport var replicate = function replicate(a) {\n return makeBy(function () {\n return a;\n });\n};\n/**\n * Create a `NonEmptyArray` containing a range of integers, including both endpoints.\n *\n * @example\n * import { range } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5])\n *\n * @category constructors\n * @since 2.11.0\n */\n\nexport var range = function range(start, end) {\n return start <= end ? makeBy(function (i) {\n return start + i;\n })(end - start + 1) : [start];\n}; // -------------------------------------------------------------------------------------\n// destructors\n// -------------------------------------------------------------------------------------\n\n/**\n * Return the tuple of the `head` and the `tail`.\n *\n * @example\n * import { unprepend } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(unprepend([1, 2, 3]), [1, [2, 3]])\n *\n * @category destructors\n * @since 2.9.0\n */\n\nexport var unprepend = function unprepend(as) {\n return [head(as), tail(as)];\n};\n/**\n * Return the tuple of the `init` and the `last`.\n *\n * @example\n * import { unappend } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4])\n *\n * @category destructors\n * @since 2.9.0\n */\n\nexport var unappend = function unappend(as) {\n return [init(as), last(as)];\n};\nexport function concatW(second) {\n return function (first) {\n return first.concat(second);\n };\n}\nexport function concat(x, y) {\n return y ? x.concat(y) : function (y) {\n return y.concat(x);\n };\n}\n/**\n * @category combinators\n * @since 2.0.0\n */\n\nexport var reverse = function reverse(as) {\n return __spreadArray([last(as)], as.slice(0, -1).reverse());\n};\nexport function group(E) {\n return function (as) {\n var len = as.length;\n\n if (len === 0) {\n return [];\n }\n\n var out = [];\n var head = as[0];\n var nea = [head];\n\n for (var i = 1; i < len; i++) {\n var a = as[i];\n\n if (E.equals(a, head)) {\n nea.push(a);\n } else {\n out.push(nea);\n head = a;\n nea = [head];\n }\n }\n\n out.push(nea);\n return out;\n };\n}\n/**\n * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning\n * function on each element, and grouping the results according to values returned\n *\n * @example\n * import { groupBy } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), {\n * '1': ['a', 'b'],\n * '2': ['ab']\n * })\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var groupBy = function groupBy(f) {\n return function (as) {\n var out = {};\n\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n var k = f(a);\n\n if (out.hasOwnProperty(k)) {\n out[k].push(a);\n } else {\n out[k] = [a];\n }\n }\n\n return out;\n };\n};\n/**\n * @category combinators\n * @since 2.0.0\n */\n\nexport var sort = function sort(O) {\n return function (as) {\n return as.slice().sort(O.compare);\n };\n};\n/**\n * @category combinators\n * @since 2.0.0\n */\n\nexport var insertAt = function insertAt(i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some(unsafeInsertAt(i, a, as));\n };\n};\n/**\n * @category combinators\n * @since 2.0.0\n */\n\nexport var updateAt = function updateAt(i, a) {\n return modifyAt(i, function () {\n return a;\n });\n};\n/**\n * @category combinators\n * @since 2.0.0\n */\n\nexport var modifyAt = function modifyAt(i, f) {\n return function (as) {\n return isOutOfBound(i, as) ? _.none : _.some(unsafeUpdateAt(i, f(as[i]), as));\n };\n};\n/**\n * @category combinators\n * @since 2.0.0\n */\n\nexport var copy = fromReadonlyNonEmptyArray;\n/**\n * @category Pointed\n * @since 2.0.0\n */\n\nexport var of = function of(a) {\n return [a];\n};\n/**\n * @category combinators\n * @since 2.5.1\n */\n\nexport var zipWith = function zipWith(as, bs, f) {\n var cs = [f(as[0], bs[0])];\n var len = Math.min(as.length, bs.length);\n\n for (var i = 1; i < len; i++) {\n cs[i] = f(as[i], bs[i]);\n }\n\n return cs;\n};\nexport function zip(as, bs) {\n if (bs === undefined) {\n return function (bs) {\n return zip(bs, as);\n };\n }\n\n return zipWith(as, bs, function (a, b) {\n return [a, b];\n });\n}\n/**\n * @category combinators\n * @since 2.5.1\n */\n\nexport var unzip = function unzip(abs) {\n var fa = [abs[0][0]];\n var fb = [abs[0][1]];\n\n for (var i = 1; i < abs.length; i++) {\n fa[i] = abs[i][0];\n fb[i] = abs[i][1];\n }\n\n return [fa, fb];\n};\n/**\n * Prepend an element to every member of an array\n *\n * @example\n * import { prependAll } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var prependAll = function prependAll(middle) {\n return function (as) {\n var out = [middle, as[0]];\n\n for (var i = 1; i < as.length; i++) {\n out.push(middle, as[i]);\n }\n\n return out;\n };\n};\n/**\n * Places an element in between members of an array\n *\n * @example\n * import { intersperse } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @category combinators\n * @since 2.9.0\n */\n\nexport var intersperse = function intersperse(middle) {\n return function (as) {\n var rest = tail(as);\n return isNonEmpty(rest) ? pipe(rest, prependAll(middle), prepend(head(as))) : copy(as);\n };\n};\n/**\n * @category combinators\n * @since 2.0.0\n */\n\nexport var foldMapWithIndex = RNEA.foldMapWithIndex;\n/**\n * @category combinators\n * @since 2.0.0\n */\n\nexport var foldMap = RNEA.foldMap;\n/**\n * @category combinators\n * @since 2.10.0\n */\n\nexport var chainWithIndex = function chainWithIndex(f) {\n return function (as) {\n var out = fromReadonlyNonEmptyArray(f(0, head(as)));\n\n for (var i = 1; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n\n return out;\n };\n};\n/**\n * @category combinators\n * @since 2.10.0\n */\n\nexport var chop = function chop(f) {\n return function (as) {\n var _a = f(as),\n b = _a[0],\n rest = _a[1];\n\n var out = [b];\n var next = rest;\n\n while (isNonEmpty(next)) {\n var _b = f(next),\n b_1 = _b[0],\n rest_2 = _b[1];\n\n out.push(b_1);\n next = rest_2;\n }\n\n return out;\n };\n};\n/**\n * Splits a `NonEmptyArray` into two pieces, the first piece has max `n` elements.\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var splitAt = function splitAt(n) {\n return function (as) {\n var m = Math.max(1, n);\n return m >= as.length ? [copy(as), []] : [pipe(as.slice(1, m), prepend(head(as))), as.slice(m)];\n };\n};\n/**\n * @category combinators\n * @since 2.10.0\n */\n\nexport var chunksOf = function chunksOf(n) {\n return chop(splitAt(n));\n}; // -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\n\n/* istanbul ignore next */\n\nvar _map = function _map(fa, f) {\n return pipe(fa, map(f));\n};\n/* istanbul ignore next */\n\n\nvar _mapWithIndex = function _mapWithIndex(fa, f) {\n return pipe(fa, mapWithIndex(f));\n};\n/* istanbul ignore next */\n\n\nvar _ap = function _ap(fab, fa) {\n return pipe(fab, ap(fa));\n};\n/* istanbul ignore next */\n\n\nvar _chain = function _chain(ma, f) {\n return pipe(ma, chain(f));\n};\n/* istanbul ignore next */\n\n\nvar _extend = function _extend(wa, f) {\n return pipe(wa, extend(f));\n};\n/* istanbul ignore next */\n\n\nvar _reduce = function _reduce(fa, b, f) {\n return pipe(fa, reduce(b, f));\n};\n/* istanbul ignore next */\n\n\nvar _foldMap = function _foldMap(M) {\n var foldMapM = foldMap(M);\n return function (fa, f) {\n return pipe(fa, foldMapM(f));\n };\n};\n/* istanbul ignore next */\n\n\nvar _reduceRight = function _reduceRight(fa, b, f) {\n return pipe(fa, reduceRight(b, f));\n};\n/* istanbul ignore next */\n\n\nvar _traverse = function _traverse(F) {\n var traverseF = traverse(F);\n return function (ta, f) {\n return pipe(ta, traverseF(f));\n };\n};\n/* istanbul ignore next */\n\n\nvar _alt = function _alt(fa, that) {\n return pipe(fa, alt(that));\n};\n/* istanbul ignore next */\n\n\nvar _reduceWithIndex = function _reduceWithIndex(fa, b, f) {\n return pipe(fa, reduceWithIndex(b, f));\n};\n/* istanbul ignore next */\n\n\nvar _foldMapWithIndex = function _foldMapWithIndex(M) {\n var foldMapWithIndexM = foldMapWithIndex(M);\n return function (fa, f) {\n return pipe(fa, foldMapWithIndexM(f));\n };\n};\n/* istanbul ignore next */\n\n\nvar _reduceRightWithIndex = function _reduceRightWithIndex(fa, b, f) {\n return pipe(fa, reduceRightWithIndex(b, f));\n};\n/* istanbul ignore next */\n\n\nvar _traverseWithIndex = function _traverseWithIndex(F) {\n var traverseWithIndexF = traverseWithIndex(F);\n return function (ta, f) {\n return pipe(ta, traverseWithIndexF(f));\n };\n}; // -------------------------------------------------------------------------------------\n// type class members\n// -------------------------------------------------------------------------------------\n\n/**\n * Less strict version of [`alt`](#alt).\n *\n * @category Alt\n * @since 2.9.0\n */\n\n\nexport var altW = function altW(that) {\n return function (as) {\n return pipe(as, concatW(that()));\n };\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 * @category Alt\n * @since 2.6.2\n */\n\nexport var alt = altW;\n/**\n * Apply a function to an argument under a type constructor.\n *\n * @category Apply\n * @since 2.0.0\n */\n\nexport var ap = function ap(as) {\n return chain(function (f) {\n return pipe(as, map(f));\n });\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @category Monad\n * @since 2.0.0\n */\n\nexport var chain = function chain(f) {\n return chainWithIndex(function (_, a) {\n return f(a);\n });\n};\n/**\n * @category Extend\n * @since 2.0.0\n */\n\nexport var extend = function extend(f) {\n return function (as) {\n var next = tail(as);\n var out = [f(as)];\n\n while (isNonEmpty(next)) {\n out.push(f(next));\n next = tail(next);\n }\n\n return out;\n };\n};\n/**\n * Derivable from `Extend`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var duplicate = /*#__PURE__*/extend(identity);\n/**\n * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var flatten = /*#__PURE__*/chain(identity);\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category Functor\n * @since 2.0.0\n */\n\nexport var map = function map(f) {\n return mapWithIndex(function (_, a) {\n return f(a);\n });\n};\n/**\n * @category FunctorWithIndex\n * @since 2.0.0\n */\n\nexport var mapWithIndex = function mapWithIndex(f) {\n return function (as) {\n var out = [f(0, head(as))];\n\n for (var i = 1; i < as.length; i++) {\n out.push(f(i, as[i]));\n }\n\n return out;\n };\n};\n/**\n * @category Foldable\n * @since 2.0.0\n */\n\nexport var reduce = RNEA.reduce;\n/**\n * @category FoldableWithIndex\n * @since 2.0.0\n */\n\nexport var reduceWithIndex = RNEA.reduceWithIndex;\n/**\n * @category Foldable\n * @since 2.0.0\n */\n\nexport var reduceRight = RNEA.reduceRight;\n/**\n * @category FoldableWithIndex\n * @since 2.0.0\n */\n\nexport var reduceRightWithIndex = RNEA.reduceRightWithIndex;\n/**\n * @since 2.6.3\n */\n\nexport var traverse = function traverse(F) {\n var traverseWithIndexF = traverseWithIndex(F);\n return function (f) {\n return traverseWithIndexF(function (_, a) {\n return f(a);\n });\n };\n};\n/**\n * @since 2.6.3\n */\n\nexport var sequence = function sequence(F) {\n return traverseWithIndex(F)(function (_, a) {\n return a;\n });\n};\n/**\n * @since 2.6.3\n */\n\nexport var traverseWithIndex = function traverseWithIndex(F) {\n return function (f) {\n return function (as) {\n var out = F.map(f(0, head(as)), of);\n\n for (var i = 1; i < as.length; i++) {\n out = F.ap(F.map(out, function (bs) {\n return function (b) {\n return pipe(bs, append(b));\n };\n }), f(i, as[i]));\n }\n\n return out;\n };\n };\n};\n/**\n * @since 2.7.0\n */\n\nexport var extract = RNEA.head; // -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @category instances\n * @since 2.0.0\n */\n\nexport var URI = 'NonEmptyArray';\n/**\n * @category instances\n * @since 2.0.0\n */\n\nexport var getShow = RNEA.getShow;\n/**\n * Builds a `Semigroup` instance for `NonEmptyArray`\n *\n * @category instances\n * @since 2.0.0\n */\n\nexport var getSemigroup = function getSemigroup() {\n return {\n concat: concat\n };\n};\n/**\n * @example\n * import { getEq } from 'fp-ts/NonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals([1, 2], [1, 2]), true)\n * assert.strictEqual(E.equals([1, 2], [1, 3]), false)\n *\n * @category instances\n * @since 2.0.0\n */\n\nexport var getEq = RNEA.getEq;\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var getUnionSemigroup = function getUnionSemigroup(E) {\n var unionE = union(E);\n return {\n concat: function concat(first, second) {\n return unionE(second)(first);\n }\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Derivable from `Functor`.\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var flap = /*#__PURE__*/flap_(Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var FunctorWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Apply = {\n URI: URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * Derivable from `Apply`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var apFirst = /*#__PURE__*/apFirst_(Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * Derivable from `Apply`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var apSecond = /*#__PURE__*/apSecond_(Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\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 */\n\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\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 * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var chainFirst = /*#__PURE__*/chainFirst_(Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Foldable = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var FoldableWithIndex = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\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 * @category instances\n * @since 2.7.0\n */\n\nexport var TraversableWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Alt = {\n URI: URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Comonad = {\n URI: URI,\n map: _map,\n extend: _extend,\n extract: extract\n}; // -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.9.0\n */\n\nexport var Do = /*#__PURE__*/of(_.emptyRecord);\n/**\n * @since 2.8.0\n */\n\nexport var bindTo = /*#__PURE__*/bindTo_(Functor);\n/**\n * @since 2.8.0\n */\n\nexport var bind = /*#__PURE__*/bind_(Chain); // -------------------------------------------------------------------------------------\n// pipeable sequence S\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.8.0\n */\n\nexport var apS = /*#__PURE__*/apS_(Apply); // -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.0.0\n */\n\nexport var head = RNEA.head;\n/**\n * @since 2.0.0\n */\n\nexport var tail = function tail(as) {\n return as.slice(1);\n};\n/**\n * @since 2.0.0\n */\n\nexport var last = RNEA.last;\n/**\n * Get all but the last element of a non empty array, creating a new array.\n *\n * @example\n * import { init } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), [1, 2])\n * assert.deepStrictEqual(init([1]), [])\n *\n * @since 2.2.0\n */\n\nexport var init = function init(as) {\n return as.slice(0, -1);\n};\n/**\n * @since 2.0.0\n */\n\nexport var min = RNEA.min;\n/**\n * @since 2.0.0\n */\n\nexport var max = RNEA.max;\n/**\n * @since 2.10.0\n */\n\nexport var concatAll = function concatAll(S) {\n return function (as) {\n return as.reduce(S.concat);\n };\n};\n/**\n * Break an `Array` into its first element and remaining elements.\n *\n * @category destructors\n * @since 2.11.0\n */\n\nexport var matchLeft = function matchLeft(f) {\n return function (as) {\n return f(head(as), tail(as));\n };\n};\n/**\n * Break an `Array` into its initial elements and the last element.\n *\n * @category destructors\n * @since 2.11.0\n */\n\nexport var matchRight = function matchRight(f) {\n return function (as) {\n return f(init(as), last(as));\n };\n};\n/**\n * Apply a function to the head, creating a new `NonEmptyArray`.\n *\n * @since 2.11.0\n */\n\nexport var modifyHead = function modifyHead(f) {\n return function (as) {\n return __spreadArray([f(head(as))], tail(as));\n };\n};\n/**\n * Change the head, creating a new `NonEmptyArray`.\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var updateHead = function updateHead(a) {\n return modifyHead(function () {\n return a;\n });\n};\n/**\n * Apply a function to the last element, creating a new `NonEmptyArray`.\n *\n * @since 2.11.0\n */\n\nexport var modifyLast = function modifyLast(f) {\n return function (as) {\n return pipe(init(as), append(f(last(as))));\n };\n};\n/**\n * Change the last element, creating a new `NonEmptyArray`.\n *\n * @category combinators\n * @since 2.11.0\n */\n\nexport var updateLast = function updateLast(a) {\n return modifyLast(function () {\n return a;\n });\n};\nexport function groupSort(O) {\n var sortO = sort(O);\n var groupO = group(O);\n return function (as) {\n return isNonEmpty(as) ? groupO(sortO(as)) : [];\n };\n}\nexport function filter(predicate) {\n return filterWithIndex(function (_, a) {\n return predicate(a);\n });\n}\n/**\n * Use [`filterWithIndex`](./Array.ts.html#filterwithindex) instead.\n *\n * @category combinators\n * @since 2.0.0\n * @deprecated\n */\n\nexport var filterWithIndex = function filterWithIndex(predicate) {\n return function (as) {\n return fromArray(as.filter(function (a, i) {\n return predicate(i, a);\n }));\n };\n};\n/**\n * Use [`unprepend`](#unprepend) instead.\n *\n * @category destructors\n * @since 2.9.0\n * @deprecated\n */\n\nexport var uncons = unprepend;\n/**\n * Use [`unappend`](#unappend) instead.\n *\n * @category destructors\n * @since 2.9.0\n * @deprecated\n */\n\nexport var unsnoc = unappend;\nexport function cons(head, tail) {\n return tail === undefined ? prepend(head) : pipe(tail, prepend(head));\n}\n/**\n * Use [`append`](./Array.ts.html#append) instead.\n *\n * @category constructors\n * @since 2.0.0\n * @deprecated\n */\n\nexport var snoc = function snoc(init, end) {\n return pipe(init, append(end));\n};\n/**\n * Use [`prependAll`](#prependall) instead.\n *\n * @category combinators\n * @since 2.9.0\n * @deprecated\n */\n\nexport var prependToAll = prependAll;\n/**\n * Use [`concatAll`](#concatall) instead.\n *\n * @since 2.5.0\n * @deprecated\n */\n\nexport var fold = RNEA.concatAll;\n/**\n * Use small, specific instances instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var nonEmptyArray = {\n URI: URI,\n of: of,\n map: _map,\n mapWithIndex: _mapWithIndex,\n ap: _ap,\n chain: _chain,\n extend: _extend,\n extract: extract,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n alt: _alt\n};","var __spreadArray = this && this.__spreadArray || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\n to[j] = from[i];\n }\n\n return to;\n};\n\nimport { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply';\nimport { bind as bind_, chainFirst as chainFirst_ } from './Chain';\nimport { fromEquals } from './Eq';\nimport { fromEitherK as fromEitherK_ } from './FromEither';\nimport { identity, pipe } from './function';\nimport { bindTo as bindTo_, flap as flap_ } from './Functor';\nimport * as _ from './internal';\nimport * as N from './number';\nimport { fromCompare } from './Ord';\nimport * as RNEA from './ReadonlyNonEmptyArray';\nimport { separated } from './Separated';\nimport { filterE as filterE_, wiltDefault, witherDefault } from './Witherable';\nimport { guard as guard_ } from './Zero'; // -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n\n/**\n * Test whether a `ReadonlyArray` is empty.\n *\n * @example\n * import { isEmpty } from 'fp-ts/ReadonlyArray'\n *\n * assert.strictEqual(isEmpty([]), true)\n *\n * @category refinements\n * @since 2.5.0\n */\n\nexport var isEmpty = function isEmpty(as) {\n return as.length === 0;\n};\n/**\n * Test whether a `ReadonlyArray` is non empty.\n *\n * @category refinements\n * @since 2.5.0\n */\n\nexport var isNonEmpty = RNEA.isNonEmpty; // -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n\n/**\n * Prepend an element to the front of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { prepend } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4])\n *\n * @category constructors\n * @since 2.10.0\n */\n\nexport var prepend = RNEA.prepend;\n/**\n * Less strict version of [`prepend`](#prepend).\n *\n * @category constructors\n * @since 2.11.0\n */\n\nexport var prependW = RNEA.prependW;\n/**\n * Append an element to the end of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { append } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4])\n *\n * @category constructors\n * @since 2.10.0\n */\n\nexport var append = RNEA.append;\n/**\n * Less strict version of [`append`](#append).\n *\n * @category constructors\n * @since 2.11.0\n */\n\nexport var appendW = RNEA.appendW;\n/**\n * Return a `ReadonlyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { makeBy } from 'fp-ts/ReadonlyArray'\n *\n * const double = (n: number): number => n * 2\n * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8])\n *\n * @category constructors\n * @since 2.5.0\n */\n\nexport var makeBy = function makeBy(n, f) {\n return n <= 0 ? empty : RNEA.makeBy(f)(n);\n};\n/**\n * Create a `ReadonlyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { replicate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a'])\n *\n * @category constructors\n * @since 2.5.0\n */\n\nexport var replicate = function replicate(n, a) {\n return makeBy(n, function () {\n return a;\n });\n};\nexport function fromPredicate(predicate) {\n return function (a) {\n return predicate(a) ? [a] : empty;\n };\n} // -------------------------------------------------------------------------------------\n// natural transformations\n// -------------------------------------------------------------------------------------\n\n/**\n * @category natural transformations\n * @since 2.11.0\n */\n\nexport var fromOption = function fromOption(ma) {\n return _.isNone(ma) ? empty : [ma.value];\n};\n/**\n * Transforms an `Either` to a `ReadonlyArray`.\n *\n * @category natural transformations\n * @since 2.11.0\n */\n\nexport var fromEither = function fromEither(e) {\n return _.isLeft(e) ? empty : [e.right];\n}; // -------------------------------------------------------------------------------------\n// destructors\n// -------------------------------------------------------------------------------------\n\n/**\n * Less strict version of [`match`](#match).\n *\n * @category destructors\n * @since 2.11.0\n */\n\nexport var matchW = function matchW(onEmpty, onNonEmpty) {\n return function (as) {\n return isNonEmpty(as) ? onNonEmpty(as) : onEmpty();\n };\n};\n/**\n * @category destructors\n * @since 2.11.0\n */\n\nexport var match = matchW;\n/**\n * Less strict version of [`matchLeft`](#matchleft).\n *\n * @category destructors\n * @since 2.11.0\n */\n\nexport var matchLeftW = function matchLeftW(onEmpty, onNonEmpty) {\n return function (as) {\n return isNonEmpty(as) ? onNonEmpty(RNEA.head(as), RNEA.tail(as)) : onEmpty();\n };\n};\n/**\n * Break a `ReadonlyArray` into its first element and remaining elements.\n *\n * @example\n * import { matchLeft } from 'fp-ts/ReadonlyArray'\n *\n * const len: (as: ReadonlyArray) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail))\n * assert.strictEqual(len([1, 2, 3]), 3)\n *\n * @category destructors\n * @since 2.10.0\n */\n\nexport var matchLeft = matchLeftW;\n/**\n * Alias of [`matchLeft`](#matchleft).\n *\n * @category destructors\n * @since 2.5.0\n */\n\nexport var foldLeft = matchLeft;\n/**\n * Less strict version of [`matchRight`](#matchright).\n *\n * @category destructors\n * @since 2.11.0\n */\n\nexport var matchRightW = function matchRightW(onEmpty, onNonEmpty) {\n return function (as) {\n return isNonEmpty(as) ? onNonEmpty(RNEA.init(as), RNEA.last(as)) : onEmpty();\n };\n};\n/**\n * Break a `ReadonlyArray` into its initial elements and the last element.\n *\n * @category destructors\n * @since 2.10.0\n */\n\nexport var matchRight = matchRightW;\n/**\n * Alias of [`matchRight`](#matchright).\n *\n * @category destructors\n * @since 2.5.0\n */\n\nexport var foldRight = matchRight; // -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n\n/**\n * @category combinators\n * @since 2.7.0\n */\n\nexport var chainWithIndex = function chainWithIndex(f) {\n return function (as) {\n if (isEmpty(as)) {\n return empty;\n }\n\n var out = [];\n\n for (var i = 0; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n\n return out;\n };\n};\n/**\n * Same as `reduce` but it carries over the intermediate steps.\n *\n * @example\n * import { scanLeft } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4])\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var scanLeft = function scanLeft(b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[0] = b;\n\n for (var i = 0; i < len; i++) {\n out[i + 1] = f(out[i], as[i]);\n }\n\n return out;\n };\n};\n/**\n * Fold an array from the right, keeping all intermediate results instead of only the final result\n *\n * @example\n * import { scanRight } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10])\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var scanRight = function scanRight(b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[len] = b;\n\n for (var i = len - 1; i >= 0; i--) {\n out[i] = f(as[i], out[i + 1]);\n }\n\n return out;\n };\n};\n/**\n * Calculate the number of elements in a `ReadonlyArray`.\n *\n * @since 2.10.0\n */\n\nexport var size = function size(as) {\n return as.length;\n};\n/**\n * Test whether an array contains a particular index\n *\n * @since 2.5.0\n */\n\nexport var isOutOfBound = RNEA.isOutOfBound;\nexport function lookup(i, as) {\n return as === undefined ? function (as) {\n return lookup(i, as);\n } : isOutOfBound(i, as) ? _.none : _.some(as[i]);\n}\n/**\n * Get the first element in an array, or `None` if the array is empty\n *\n * @example\n * import { head } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(head([1, 2, 3]), some(1))\n * assert.deepStrictEqual(head([]), none)\n *\n * @since 2.5.0\n */\n\nexport var head = function head(as) {\n return isNonEmpty(as) ? _.some(RNEA.head(as)) : _.none;\n};\n/**\n * Get the last element in an array, or `None` if the array is empty\n *\n * @example\n * import { last } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(last([1, 2, 3]), some(3))\n * assert.deepStrictEqual(last([]), none)\n *\n * @since 2.5.0\n */\n\nexport var last = function last(as) {\n return isNonEmpty(as) ? _.some(RNEA.last(as)) : _.none;\n};\n/**\n * Get all but the first element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { tail } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(tail([]), none)\n *\n * @since 2.5.0\n */\n\nexport var tail = function tail(as) {\n return isNonEmpty(as) ? _.some(RNEA.tail(as)) : _.none;\n};\n/**\n * Get all but the last element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { init } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2]))\n * assert.deepStrictEqual(init([]), none)\n *\n * @since 2.5.0\n */\n\nexport var init = function init(as) {\n return isNonEmpty(as) ? _.some(RNEA.init(as)) : _.none;\n};\n/**\n * Keep only a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.takeLeft(2)), [1, 2])\n *\n * // out of bounds\n * assert.strictEqual(pipe(input, RA.takeLeft(4)), input)\n * assert.strictEqual(pipe(input, RA.takeLeft(-1)), input)\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var takeLeft = function takeLeft(n) {\n return function (as) {\n return isOutOfBound(n, as) ? as : n === 0 ? empty : as.slice(0, n);\n };\n};\n/**\n * Keep only a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.takeRight(2)), [2, 3])\n *\n * // out of bounds\n * assert.strictEqual(pipe(input, RA.takeRight(4)), input)\n * assert.strictEqual(pipe(input, RA.takeRight(-1)), input)\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var takeRight = function takeRight(n) {\n return function (as) {\n return isOutOfBound(n, as) ? as : n === 0 ? empty : as.slice(-n);\n };\n};\nexport function takeLeftWhile(predicate) {\n return function (as) {\n var out = [];\n\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n\n if (!predicate(a)) {\n break;\n }\n\n out.push(a);\n }\n\n var len = out.length;\n return len === as.length ? as : len === 0 ? empty : out;\n };\n}\n\nvar spanLeftIndex = function spanLeftIndex(as, predicate) {\n var l = as.length;\n var i = 0;\n\n for (; i < l; i++) {\n if (!predicate(as[i])) {\n break;\n }\n }\n\n return i;\n};\n\nexport function spanLeft(predicate) {\n return function (as) {\n var _a = splitAt(spanLeftIndex(as, predicate))(as),\n init = _a[0],\n rest = _a[1];\n\n return {\n init: init,\n rest: rest\n };\n };\n}\n/**\n * Drop a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.dropLeft(2)), [3])\n * assert.strictEqual(pipe(input, RA.dropLeft(0)), input)\n * assert.strictEqual(pipe(input, RA.dropLeft(-1)), input)\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var dropLeft = function dropLeft(n) {\n return function (as) {\n return n <= 0 || isEmpty(as) ? as : n >= as.length ? empty : as.slice(n, as.length);\n };\n};\n/**\n * Drop a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.dropRight(2)), [1])\n * assert.strictEqual(pipe(input, RA.dropRight(0)), input)\n * assert.strictEqual(pipe(input, RA.dropRight(-1)), input)\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var dropRight = function dropRight(n) {\n return function (as) {\n return n <= 0 || isEmpty(as) ? as : n >= as.length ? empty : as.slice(0, as.length - n);\n };\n};\nexport function dropLeftWhile(predicate) {\n return function (as) {\n var i = spanLeftIndex(as, predicate);\n return i === 0 ? as : i === as.length ? empty : as.slice(i);\n };\n}\n/**\n * Find the first index for which a predicate holds\n *\n * @example\n * import { findIndex } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1))\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none)\n *\n * @since 2.5.0\n */\n\nexport var findIndex = function findIndex(predicate) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n if (predicate(as[i])) {\n return _.some(i);\n }\n }\n\n return _.none;\n };\n};\nexport function findFirst(predicate) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n if (predicate(as[i])) {\n return _.some(as[i]);\n }\n }\n\n return _.none;\n };\n}\n/**\n * Find the first element returned by an option based selector function\n *\n * @example\n * import { findFirstMap } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string\n * readonly age?: number\n * }\n *\n * const persons: ReadonlyArray = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }]\n *\n * // returns the name of the first person that has an age\n * assert.deepStrictEqual(findFirstMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Mary'))\n *\n * @since 2.5.0\n */\n\nexport var findFirstMap = function findFirstMap(f) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n var out = f(as[i]);\n\n if (_.isSome(out)) {\n return out;\n }\n }\n\n return _.none;\n };\n};\nexport function findLast(predicate) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n if (predicate(as[i])) {\n return _.some(as[i]);\n }\n }\n\n return _.none;\n };\n}\n/**\n * Find the last element returned by an option based selector function\n *\n * @example\n * import { findLastMap } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string\n * readonly age?: number\n * }\n *\n * const persons: ReadonlyArray = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }]\n *\n * // returns the name of the last person that has an age\n * assert.deepStrictEqual(findLastMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Joey'))\n *\n * @since 2.5.0\n */\n\nexport var findLastMap = function findLastMap(f) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n var out = f(as[i]);\n\n if (_.isSome(out)) {\n return out;\n }\n }\n\n return _.none;\n };\n};\n/**\n * Returns the index of the last element of the list which matches the predicate\n *\n * @example\n * import { findLastIndex } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface X {\n * readonly a: number\n * readonly b: number\n * }\n * const xs: ReadonlyArray = [{ a: 1, b: 0 }, { a: 1, b: 1 }]\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1))\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none)\n *\n *\n * @since 2.5.0\n */\n\nexport var findLastIndex = function findLastIndex(predicate) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n if (predicate(as[i])) {\n return _.some(i);\n }\n }\n\n return _.none;\n };\n};\n/**\n * Insert an element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { insertAt } from 'fp-ts/ReadonlyArray'\n * import { some } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4]))\n *\n * @since 2.5.0\n */\n\nexport var insertAt = function insertAt(i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some(RNEA.unsafeInsertAt(i, a, as));\n };\n};\n/**\n * Change the element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { updateAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3]))\n * assert.deepStrictEqual(updateAt(1, 1)([]), none)\n *\n * @since 2.5.0\n */\n\nexport var updateAt = function updateAt(i, a) {\n return modifyAt(i, function () {\n return a;\n });\n};\n/**\n * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { deleteAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(deleteAt(1)([]), none)\n *\n * @since 2.5.0\n */\n\nexport var deleteAt = function deleteAt(i) {\n return function (as) {\n return isOutOfBound(i, as) ? _.none : _.some(unsafeDeleteAt(i, as));\n };\n};\n/**\n * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out\n * of bounds\n *\n * @example\n * import { modifyAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * const double = (x: number): number => x * 2\n * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3]))\n * assert.deepStrictEqual(modifyAt(1, double)([]), none)\n *\n * @since 2.5.0\n */\n\nexport var modifyAt = function modifyAt(i, f) {\n return function (as) {\n return isOutOfBound(i, as) ? _.none : _.some(unsafeUpdateAt(i, f(as[i]), as));\n };\n};\n/**\n * Reverse an array, creating a new array\n *\n * @example\n * import { reverse } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1])\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var reverse = function reverse(as) {\n return as.length <= 1 ? as : as.slice().reverse();\n};\n/**\n * Extracts from an array of `Either` all the `Right` elements. All the `Right` elements are extracted in order\n *\n * @example\n * import { rights } from 'fp-ts/ReadonlyArray'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2])\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var rights = function rights(as) {\n var r = [];\n\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n\n if (a._tag === 'Right') {\n r.push(a.right);\n }\n }\n\n return r;\n};\n/**\n * Extracts from an array of `Either` all the `Left` elements. All the `Left` elements are extracted in order\n *\n * @example\n * import { lefts } from 'fp-ts/ReadonlyArray'\n * import { left, right } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo'])\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var lefts = function lefts(as) {\n var r = [];\n\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n\n if (a._tag === 'Left') {\n r.push(a.left);\n }\n }\n\n return r;\n};\n/**\n * Sort the elements of an array in increasing order, creating a new array\n *\n * @example\n * import { sort } from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3])\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var sort = function sort(O) {\n return function (as) {\n return as.length <= 1 ? as : as.slice().sort(O.compare);\n };\n}; // TODO: curry and make data-last in v3\n\n/**\n * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one\n * input array is short, excess elements of the longer array are discarded.\n *\n * @example\n * import { zipWith } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3'])\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var zipWith = function zipWith(fa, fb, f) {\n var fc = [];\n var len = Math.min(fa.length, fb.length);\n\n for (var i = 0; i < len; i++) {\n fc[i] = f(fa[i], fb[i]);\n }\n\n return fc;\n};\nexport function zip(as, bs) {\n if (bs === undefined) {\n return function (bs) {\n return zip(bs, as);\n };\n }\n\n return zipWith(as, bs, function (a, b) {\n return [a, b];\n });\n}\n/**\n * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays\n *\n * @example\n * import { unzip } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']])\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var unzip = function unzip(as) {\n var fa = [];\n var fb = [];\n\n for (var i = 0; i < as.length; i++) {\n fa[i] = as[i][0];\n fb[i] = as[i][1];\n }\n\n return [fa, fb];\n};\n/**\n * Prepend an element to every member of an array\n *\n * @example\n * import { prependAll } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var prependAll = function prependAll(middle) {\n var f = RNEA.prependAll(middle);\n return function (as) {\n return isNonEmpty(as) ? f(as) : as;\n };\n};\n/**\n * Places an element in between members of an array\n *\n * @example\n * import { intersperse } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @category combinators\n * @since 2.9.0\n */\n\nexport var intersperse = function intersperse(middle) {\n var f = RNEA.intersperse(middle);\n return function (as) {\n return isNonEmpty(as) ? f(as) : as;\n };\n};\n/**\n * Rotate a `ReadonlyArray` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var rotate = function rotate(n) {\n var f = RNEA.rotate(n);\n return function (as) {\n return isNonEmpty(as) ? f(as) : as;\n };\n};\nexport function elem(E) {\n return function (a, as) {\n if (as === undefined) {\n var elemE_1 = elem(E);\n return function (as) {\n return elemE_1(a, as);\n };\n }\n\n var predicate = function predicate(element) {\n return E.equals(element, a);\n };\n\n var i = 0;\n\n for (; i < as.length; i++) {\n if (predicate(as[i])) {\n return true;\n }\n }\n\n return false;\n };\n}\n/**\n * Remove duplicates from an array, keeping the first occurrence of an element.\n *\n * @example\n * import { uniq } from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var uniq = function uniq(E) {\n var f = RNEA.uniq(E);\n return function (as) {\n return isNonEmpty(as) ? f(as) : as;\n };\n};\n/**\n * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import { sortBy } from 'fp-ts/ReadonlyArray'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * readonly name: string\n * readonly age: number\n * }\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = sortBy([byName, byAge])\n *\n * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }]\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var sortBy = function sortBy(ords) {\n var f = RNEA.sortBy(ords);\n return function (as) {\n return isNonEmpty(as) ? f(as) : as;\n };\n};\n/**\n * A useful recursion pattern for processing a `ReadonlyArray` to produce a new `ReadonlyArray`, often used for \"chopping\" up the input\n * `ReadonlyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyArray` and produce a\n * value and the tail of the `ReadonlyArray`.\n *\n * @example\n * import { Eq } from 'fp-ts/Eq'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * const group = (S: Eq): ((as: ReadonlyArray) => ReadonlyArray>) => {\n * return RA.chop(as => {\n * const { init, rest } = pipe(as, RA.spanLeft((a: A) => S.equals(a, as[0])))\n * return [init, rest]\n * })\n * }\n * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]])\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var chop = function chop(f) {\n var g = RNEA.chop(f);\n return function (as) {\n return isNonEmpty(as) ? g(as) : empty;\n };\n};\n/**\n * Splits a `ReadonlyArray` into two pieces, the first piece has max `n` elements.\n *\n * @example\n * import { splitAt } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]])\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var splitAt = function splitAt(n) {\n return function (as) {\n return n >= 1 && isNonEmpty(as) ? RNEA.splitAt(n)(as) : isEmpty(as) ? [as, empty] : [empty, as];\n };\n};\n/**\n * Splits a `ReadonlyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the `ReadonlyArray`. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive\n * definition of `chunksOf`; it satisfies the property that:\n *\n * ```ts\n * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys)))\n * ```\n *\n * whenever `n` evenly divides the length of `as`.\n *\n * @example\n * import { chunksOf } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]])\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var chunksOf = function chunksOf(n) {\n var f = RNEA.chunksOf(n);\n return function (as) {\n return isNonEmpty(as) ? f(as) : empty;\n };\n};\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var fromOptionK = function fromOptionK(f) {\n return function () {\n var a = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n\n return fromOption(f.apply(void 0, a));\n };\n};\nexport function comprehension(input, f, g) {\n if (g === void 0) {\n g = function g() {\n return true;\n };\n }\n\n var go = function go(scope, input) {\n return isNonEmpty(input) ? pipe(RNEA.head(input), chain(function (x) {\n return go(pipe(scope, append(x)), RNEA.tail(input));\n })) : g.apply(void 0, scope) ? [f.apply(void 0, scope)] : empty;\n };\n\n return go(empty, input);\n}\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var concatW = function concatW(second) {\n return function (first) {\n return isEmpty(first) ? second : isEmpty(second) ? first : first.concat(second);\n };\n};\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var concat = concatW;\nexport function union(E) {\n var unionE = RNEA.union(E);\n return function (first, second) {\n if (second === undefined) {\n var unionE_1 = union(E);\n return function (second) {\n return unionE_1(second, first);\n };\n }\n\n return isNonEmpty(first) && isNonEmpty(second) ? unionE(second)(first) : isNonEmpty(first) ? first : second;\n };\n}\nexport function intersection(E) {\n var elemE = elem(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var intersectionE_1 = intersection(E);\n return function (ys) {\n return intersectionE_1(ys, xs);\n };\n }\n\n return xs.filter(function (a) {\n return elemE(a, ys);\n });\n };\n}\nexport function difference(E) {\n var elemE = elem(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var differenceE_1 = difference(E);\n return function (ys) {\n return differenceE_1(ys, xs);\n };\n }\n\n return xs.filter(function (a) {\n return !elemE(a, ys);\n });\n };\n} // -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\n\nvar _map = function _map(fa, f) {\n return pipe(fa, map(f));\n};\n\nvar _mapWithIndex = function _mapWithIndex(fa, f) {\n return pipe(fa, mapWithIndex(f));\n};\n\nvar _ap = function _ap(fab, fa) {\n return pipe(fab, ap(fa));\n};\n\nvar _chain = function _chain(ma, f) {\n return pipe(ma, chain(f));\n};\n\nvar _filter = function _filter(fa, predicate) {\n return pipe(fa, filter(predicate));\n};\n\nvar _filterMap = function _filterMap(fa, f) {\n return pipe(fa, filterMap(f));\n};\n\nvar _partition = function _partition(fa, predicate) {\n return pipe(fa, partition(predicate));\n};\n\nvar _partitionMap = function _partitionMap(fa, f) {\n return pipe(fa, partitionMap(f));\n};\n\nvar _partitionWithIndex = function _partitionWithIndex(fa, predicateWithIndex) {\n return pipe(fa, partitionWithIndex(predicateWithIndex));\n};\n\nvar _partitionMapWithIndex = function _partitionMapWithIndex(fa, f) {\n return pipe(fa, partitionMapWithIndex(f));\n};\n\nvar _alt = function _alt(fa, that) {\n return pipe(fa, alt(that));\n};\n\nvar _reduce = function _reduce(fa, b, f) {\n return pipe(fa, reduce(b, f));\n};\n\nvar _foldMap = function _foldMap(M) {\n var foldMapM = foldMap(M);\n return function (fa, f) {\n return pipe(fa, foldMapM(f));\n };\n};\n\nvar _reduceRight = function _reduceRight(fa, b, f) {\n return pipe(fa, reduceRight(b, f));\n};\n\nvar _reduceWithIndex = function _reduceWithIndex(fa, b, f) {\n return pipe(fa, reduceWithIndex(b, f));\n};\n\nvar _foldMapWithIndex = function _foldMapWithIndex(M) {\n var foldMapWithIndexM = foldMapWithIndex(M);\n return function (fa, f) {\n return pipe(fa, foldMapWithIndexM(f));\n };\n};\n\nvar _reduceRightWithIndex = function _reduceRightWithIndex(fa, b, f) {\n return pipe(fa, reduceRightWithIndex(b, f));\n};\n\nvar _filterMapWithIndex = function _filterMapWithIndex(fa, f) {\n return pipe(fa, filterMapWithIndex(f));\n};\n\nvar _filterWithIndex = function _filterWithIndex(fa, predicateWithIndex) {\n return pipe(fa, filterWithIndex(predicateWithIndex));\n};\n\nvar _extend = function _extend(fa, f) {\n return pipe(fa, extend(f));\n};\n\nvar _traverse = function _traverse(F) {\n var traverseF = traverse(F);\n return function (ta, f) {\n return pipe(ta, traverseF(f));\n };\n};\n/* istanbul ignore next */\n\n\nvar _traverseWithIndex = function _traverseWithIndex(F) {\n var traverseWithIndexF = traverseWithIndex(F);\n return function (ta, f) {\n return pipe(ta, traverseWithIndexF(f));\n };\n};\n/** @internal */\n\n\nexport var _chainRecDepthFirst = function _chainRecDepthFirst(a, f) {\n return pipe(a, chainRecDepthFirst(f));\n};\n/** @internal */\n\nexport var _chainRecBreadthFirst = function _chainRecBreadthFirst(a, f) {\n return pipe(a, chainRecBreadthFirst(f));\n}; // -------------------------------------------------------------------------------------\n// type class members\n// -------------------------------------------------------------------------------------\n\n/**\n * @category Pointed\n * @since 2.5.0\n */\n\nexport var of = RNEA.of;\n/**\n * @category Zero\n * @since 2.7.0\n */\n\nexport var zero = function zero() {\n return empty;\n};\n/**\n * Less strict version of [`alt`](#alt).\n *\n * @category Alt\n * @since 2.9.0\n */\n\nexport var altW = function altW(that) {\n return function (fa) {\n return fa.concat(that());\n };\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 * @category Alt\n * @since 2.5.0\n */\n\nexport var alt = altW;\n/**\n * Apply a function to an argument under a type constructor.\n *\n * @category Apply\n * @since 2.5.0\n */\n\nexport var ap = function ap(fa) {\n return chain(function (f) {\n return pipe(fa, map(f));\n });\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @category Monad\n * @since 2.5.0\n */\n\nexport var chain = function chain(f) {\n return function (ma) {\n return pipe(ma, chainWithIndex(function (_, a) {\n return f(a);\n }));\n };\n};\n/**\n * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var flatten = /*#__PURE__*/chain(identity);\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F) => F` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category Functor\n * @since 2.5.0\n */\n\nexport var map = function map(f) {\n return function (fa) {\n return fa.map(function (a) {\n return f(a);\n });\n };\n};\n/**\n * @category FunctorWithIndex\n * @since 2.5.0\n */\n\nexport var mapWithIndex = function mapWithIndex(f) {\n return function (fa) {\n return fa.map(function (a, i) {\n return f(i, a);\n });\n };\n};\n/**\n * @category Compactable\n * @since 2.5.0\n */\n\nexport var separate = function separate(fa) {\n var left = [];\n var right = [];\n\n for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) {\n var e = fa_1[_i];\n\n if (e._tag === 'Left') {\n left.push(e.left);\n } else {\n right.push(e.right);\n }\n }\n\n return separated(left, right);\n};\n/**\n * @category Filterable\n * @since 2.5.0\n */\n\nexport var filter = function filter(predicate) {\n return function (as) {\n return as.filter(predicate);\n };\n};\n/**\n * @category FilterableWithIndex\n * @since 2.5.0\n */\n\nexport var filterMapWithIndex = function filterMapWithIndex(f) {\n return function (fa) {\n var out = [];\n\n for (var i = 0; i < fa.length; i++) {\n var optionB = f(i, fa[i]);\n\n if (_.isSome(optionB)) {\n out.push(optionB.value);\n }\n }\n\n return out;\n };\n};\n/**\n * @category Filterable\n * @since 2.5.0\n */\n\nexport var filterMap = function filterMap(f) {\n return filterMapWithIndex(function (_, a) {\n return f(a);\n });\n};\n/**\n * @category Compactable\n * @since 2.5.0\n */\n\nexport var compact = /*#__PURE__*/filterMap(identity);\n/**\n * @category Filterable\n * @since 2.5.0\n */\n\nexport var partition = function partition(predicate) {\n return partitionWithIndex(function (_, a) {\n return predicate(a);\n });\n};\n/**\n * @category FilterableWithIndex\n * @since 2.5.0\n */\n\nexport var partitionWithIndex = function partitionWithIndex(predicateWithIndex) {\n return function (as) {\n var left = [];\n var right = [];\n\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n\n if (predicateWithIndex(i, a)) {\n right.push(a);\n } else {\n left.push(a);\n }\n }\n\n return separated(left, right);\n };\n};\n/**\n * @category Filterable\n * @since 2.5.0\n */\n\nexport var partitionMap = function partitionMap(f) {\n return partitionMapWithIndex(function (_, a) {\n return f(a);\n });\n};\n/**\n * @category FilterableWithIndex\n * @since 2.5.0\n */\n\nexport var partitionMapWithIndex = function partitionMapWithIndex(f) {\n return function (fa) {\n var left = [];\n var right = [];\n\n for (var i = 0; i < fa.length; i++) {\n var e = f(i, fa[i]);\n\n if (e._tag === 'Left') {\n left.push(e.left);\n } else {\n right.push(e.right);\n }\n }\n\n return separated(left, right);\n };\n};\n/**\n * @category FilterableWithIndex\n * @since 2.5.0\n */\n\nexport var filterWithIndex = function filterWithIndex(predicateWithIndex) {\n return function (as) {\n return as.filter(function (a, i) {\n return predicateWithIndex(i, a);\n });\n };\n};\n/**\n * @category Extend\n * @since 2.5.0\n */\n\nexport var extend = function extend(f) {\n return function (wa) {\n return wa.map(function (_, i) {\n return f(wa.slice(i));\n });\n };\n};\n/**\n * Derivable from `Extend`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var duplicate = /*#__PURE__*/extend(identity);\n/**\n * @category FoldableWithIndex\n * @since 2.5.0\n */\n\nexport var foldMapWithIndex = function foldMapWithIndex(M) {\n return function (f) {\n return function (fa) {\n return fa.reduce(function (b, a, i) {\n return M.concat(b, f(i, a));\n }, M.empty);\n };\n };\n};\n/**\n * @category Foldable\n * @since 2.5.0\n */\n\nexport var reduce = function reduce(b, f) {\n return reduceWithIndex(b, function (_, b, a) {\n return f(b, a);\n });\n};\n/**\n * @category Foldable\n * @since 2.5.0\n */\n\nexport var foldMap = function foldMap(M) {\n var foldMapWithIndexM = foldMapWithIndex(M);\n return function (f) {\n return foldMapWithIndexM(function (_, a) {\n return f(a);\n });\n };\n};\n/**\n * @category FoldableWithIndex\n * @since 2.5.0\n */\n\nexport var reduceWithIndex = function reduceWithIndex(b, f) {\n return function (fa) {\n var len = fa.length;\n var out = b;\n\n for (var i = 0; i < len; i++) {\n out = f(i, out, fa[i]);\n }\n\n return out;\n };\n};\n/**\n * @category Foldable\n * @since 2.5.0\n */\n\nexport var reduceRight = function reduceRight(b, f) {\n return reduceRightWithIndex(b, function (_, a, b) {\n return f(a, b);\n });\n};\n/**\n * @category FoldableWithIndex\n * @since 2.5.0\n */\n\nexport var reduceRightWithIndex = function reduceRightWithIndex(b, f) {\n return function (fa) {\n return fa.reduceRight(function (b, a, i) {\n return f(i, a, b);\n }, b);\n };\n};\n/**\n * @category Traversable\n * @since 2.6.3\n */\n\nexport var traverse = function traverse(F) {\n var traverseWithIndexF = traverseWithIndex(F);\n return function (f) {\n return traverseWithIndexF(function (_, a) {\n return f(a);\n });\n };\n};\n/**\n * @category Traversable\n * @since 2.6.3\n */\n\nexport var sequence = function sequence(F) {\n return function (ta) {\n return _reduce(ta, F.of(zero()), function (fas, fa) {\n return F.ap(F.map(fas, function (as) {\n return function (a) {\n return pipe(as, append(a));\n };\n }), fa);\n });\n };\n};\n/**\n * @category TraversableWithIndex\n * @since 2.6.3\n */\n\nexport var traverseWithIndex = function traverseWithIndex(F) {\n return function (f) {\n return reduceWithIndex(F.of(zero()), function (i, fbs, a) {\n return F.ap(F.map(fbs, function (bs) {\n return function (b) {\n return pipe(bs, append(b));\n };\n }), f(i, a));\n });\n };\n};\n/**\n * @category Witherable\n * @since 2.6.5\n */\n\nexport var wither = function wither(F) {\n var _witherF = _wither(F);\n\n return function (f) {\n return function (fa) {\n return _witherF(fa, f);\n };\n };\n};\n/**\n * @category Witherable\n * @since 2.6.5\n */\n\nexport var wilt = function wilt(F) {\n var _wiltF = _wilt(F);\n\n return function (f) {\n return function (fa) {\n return _wiltF(fa, f);\n };\n };\n};\n/**\n * @category Unfoldable\n * @since 2.6.6\n */\n\nexport var unfold = function unfold(b, f) {\n var out = [];\n var bb = b;\n\n while (true) {\n var mt = f(bb);\n\n if (_.isSome(mt)) {\n var _a = mt.value,\n a = _a[0],\n b_1 = _a[1];\n out.push(a);\n bb = b_1;\n } else {\n break;\n }\n }\n\n return out;\n}; // -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @category instances\n * @since 2.5.0\n */\n\nexport var URI = 'ReadonlyArray';\n/**\n * @category instances\n * @since 2.5.0\n */\n\nexport var getShow = function getShow(S) {\n return {\n show: function show(as) {\n return \"[\" + as.map(S.show).join(', ') + \"]\";\n }\n };\n};\n/**\n * @category instances\n * @since 2.5.0\n */\n\nexport var getSemigroup = function getSemigroup() {\n return {\n concat: function concat(first, second) {\n return isEmpty(first) ? second : isEmpty(second) ? first : first.concat(second);\n }\n };\n};\n/**\n * Returns a `Monoid` for `ReadonlyArray`.\n *\n * @example\n * import { getMonoid } from 'fp-ts/ReadonlyArray'\n *\n * const M = getMonoid()\n * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4])\n *\n * @category instances\n * @since 2.5.0\n */\n\nexport var getMonoid = function getMonoid() {\n return {\n concat: getSemigroup().concat,\n empty: empty\n };\n};\n/**\n * Derives an `Eq` over the `ReadonlyArray` of a given element type from the `Eq` of that type. The derived `Eq` defines two\n * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of\n * different lengths, the result is non equality.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { getEq } from 'fp-ts/ReadonlyArray'\n *\n * const E = getEq(S.Eq)\n * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true)\n * assert.strictEqual(E.equals(['a'], []), false)\n *\n * @category instances\n * @since 2.5.0\n */\n\nexport var getEq = function getEq(E) {\n return fromEquals(function (xs, ys) {\n return xs.length === ys.length && xs.every(function (x, i) {\n return E.equals(x, ys[i]);\n });\n });\n};\n/**\n * Derives an `Ord` over the `ReadonlyArray` of a given element type from the `Ord` of that type. The ordering between two such\n * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in\n * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have\n * the same length, the result is equality.\n *\n * @example\n * import { getOrd } from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/string'\n *\n * const O = getOrd(S.Ord)\n * assert.strictEqual(O.compare(['b'], ['a']), 1)\n * assert.strictEqual(O.compare(['a'], ['a']), 0)\n * assert.strictEqual(O.compare(['a'], ['b']), -1)\n *\n *\n * @category instances\n * @since 2.5.0\n */\n\nexport var getOrd = function getOrd(O) {\n return fromCompare(function (a, b) {\n var aLen = a.length;\n var bLen = b.length;\n var len = Math.min(aLen, bLen);\n\n for (var i = 0; i < len; i++) {\n var ordering = O.compare(a[i], b[i]);\n\n if (ordering !== 0) {\n return ordering;\n }\n }\n\n return N.Ord.compare(aLen, bLen);\n });\n};\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var getUnionSemigroup = function getUnionSemigroup(E) {\n var unionE = union(E);\n return {\n concat: function concat(first, second) {\n return unionE(second)(first);\n }\n };\n};\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var getUnionMonoid = function getUnionMonoid(E) {\n return {\n concat: getUnionSemigroup(E).concat,\n empty: empty\n };\n};\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var getIntersectionSemigroup = function getIntersectionSemigroup(E) {\n var intersectionE = intersection(E);\n return {\n concat: function concat(first, second) {\n return intersectionE(second)(first);\n }\n };\n};\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var getDifferenceMagma = function getDifferenceMagma(E) {\n var differenceE = difference(E);\n return {\n concat: function concat(first, second) {\n return differenceE(second)(first);\n }\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Derivable from `Functor`.\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var flap = /*#__PURE__*/flap_(Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var FunctorWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Apply = {\n URI: URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * Derivable from `Apply`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var apFirst = /*#__PURE__*/apFirst_(Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * Derivable from `Apply`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var apSecond = /*#__PURE__*/apSecond_(Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\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 */\n\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: _chain\n};\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 * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var chainFirst = /*#__PURE__*/chainFirst_(Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Unfoldable = {\n URI: URI,\n unfold: unfold\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Alt = {\n URI: URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var Zero = {\n URI: URI,\n zero: zero\n};\n/**\n * @category constructors\n * @since 2.11.0\n */\n\nexport var guard = /*#__PURE__*/guard_(Zero, Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\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 * @category instances\n * @since 2.7.0\n */\n\nexport var Extend = {\n URI: URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Compactable = {\n URI: URI,\n compact: compact,\n separate: separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\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 instances\n * @since 2.7.0\n */\n\nexport var FilterableWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Foldable = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var FoldableWithIndex = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\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 * @category instances\n * @since 2.7.0\n */\n\nexport var TraversableWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverse: _traverse,\n sequence: sequence,\n traverseWithIndex: _traverseWithIndex\n};\n/**\n * @category ChainRec\n * @since 2.11.0\n */\n\nexport var chainRecDepthFirst = function chainRecDepthFirst(f) {\n return function (a) {\n var todo = __spreadArray([], f(a));\n\n var out = [];\n\n while (todo.length > 0) {\n var e = todo.shift();\n\n if (_.isLeft(e)) {\n todo.unshift.apply(todo, f(e.left));\n } else {\n out.push(e.right);\n }\n }\n\n return out;\n };\n};\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var ChainRecDepthFirst = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: _chainRecDepthFirst\n};\n/**\n * @category ChainRec\n * @since 2.11.0\n */\n\nexport var chainRecBreadthFirst = function chainRecBreadthFirst(f) {\n return function (a) {\n var initial = f(a);\n var todo = [];\n var out = [];\n\n function go(e) {\n if (_.isLeft(e)) {\n f(e.left).forEach(function (v) {\n return todo.push(v);\n });\n } else {\n out.push(e.right);\n }\n }\n\n for (var _i = 0, initial_1 = initial; _i < initial_1.length; _i++) {\n var e = initial_1[_i];\n go(e);\n }\n\n while (todo.length > 0) {\n go(todo.shift());\n }\n\n return out;\n };\n};\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var ChainRecBreadthFirst = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: _chainRecBreadthFirst\n};\n\nvar _wither = /*#__PURE__*/witherDefault(Traversable, Compactable);\n\nvar _wilt = /*#__PURE__*/wiltDefault(Traversable, Compactable);\n/**\n * @category instances\n * @since 2.7.0\n */\n\n\nexport var Witherable = {\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 reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * Filter values inside a context.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as T from 'fp-ts/Task'\n *\n * const filterE = RA.filterE(T.ApplicativePar)\n * async function test() {\n * assert.deepStrictEqual(\n * await pipe(\n * [-1, 2, 3],\n * filterE((n) => T.of(n > 0))\n * )(),\n * [2, 3]\n * )\n * }\n * test()\n *\n * @since 2.11.0\n */\n\nexport var filterE = /*#__PURE__*/filterE_(Witherable);\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var FromEither = {\n URI: URI,\n fromEither: fromEither\n};\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var fromEitherK = /*#__PURE__*/fromEitherK_(FromEither); // -------------------------------------------------------------------------------------\n// unsafe\n// -------------------------------------------------------------------------------------\n\n/**\n * @category unsafe\n * @since 2.5.0\n */\n\nexport var unsafeInsertAt = RNEA.unsafeInsertAt;\n/**\n * @category unsafe\n * @since 2.5.0\n */\n\nexport var unsafeUpdateAt = function unsafeUpdateAt(i, a, as) {\n return isNonEmpty(as) ? RNEA.unsafeUpdateAt(i, a, as) : as;\n};\n/**\n * @category unsafe\n * @since 2.5.0\n */\n\nexport var unsafeDeleteAt = function unsafeDeleteAt(i, as) {\n var xs = as.slice();\n xs.splice(i, 1);\n return xs;\n}; // -------------------------------------------------------------------------------------\n// interop\n// -------------------------------------------------------------------------------------\n\n/**\n * @category interop\n * @since 2.5.0\n */\n\nexport var toArray = function toArray(as) {\n return as.slice();\n};\n/**\n * @category interop\n * @since 2.5.0\n */\n\nexport var fromArray = function fromArray(as) {\n return isEmpty(as) ? empty : as.slice();\n}; // -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n\n/**\n * An empty array\n *\n * @since 2.5.0\n */\n\nexport var empty = RNEA.empty;\n/**\n * Check if a predicate holds true for every array member.\n *\n * @example\n * import { every } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const isPositive = (n: number): boolean => n > 0\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], every(isPositive)), true)\n * assert.deepStrictEqual(pipe([1, 2, -3], every(isPositive)), false)\n *\n * @since 2.9.0\n */\n\nexport var every = function every(predicate) {\n return function (as) {\n return as.every(predicate);\n };\n};\n/**\n * Check if a predicate holds true for any array member.\n *\n * @example\n * import { some } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const isPositive = (n: number): boolean => n > 0\n *\n * assert.deepStrictEqual(pipe([-1, -2, 3], some(isPositive)), true)\n * assert.deepStrictEqual(pipe([-1, -2, -3], some(isPositive)), false)\n *\n * @since 2.9.0\n */\n\nexport var some = function some(predicate) {\n return function (as) {\n return as.some(predicate);\n };\n};\n/**\n * Alias of [`some`](#some)\n *\n * @since 2.11.0\n */\n\nexport var exists = some; // -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.9.0\n */\n\nexport var Do = /*#__PURE__*/of(_.emptyRecord);\n/**\n * @since 2.8.0\n */\n\nexport var bindTo = /*#__PURE__*/bindTo_(Functor);\n/**\n * @since 2.8.0\n */\n\nexport var bind = /*#__PURE__*/bind_(Chain); // -------------------------------------------------------------------------------------\n// pipeable sequence S\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.8.0\n */\n\nexport var apS = /*#__PURE__*/apS_(Apply); // -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n// tslint:disable: deprecation\n\n/**\n * Use `ReadonlyNonEmptyArray` module instead.\n *\n * @category constructors\n * @since 2.5.0\n * @deprecated\n */\n\nexport var range = RNEA.range;\n/**\n * Use [`prepend`](#prepend) instead.\n *\n * @category constructors\n * @since 2.5.0\n * @deprecated\n */\n\nexport var cons = RNEA.cons;\n/**\n * Use [`append`](#append) instead.\n *\n * @category constructors\n * @since 2.5.0\n * @deprecated\n */\n\nexport var snoc = RNEA.snoc;\n/**\n * Use [`prependAll`](#prependall) instead.\n *\n * @category combinators\n * @since 2.9.0\n * @deprecated\n */\n\nexport var prependToAll = prependAll;\n/**\n * Use small, specific instances instead.\n *\n * @category instances\n * @since 2.5.0\n * @deprecated\n */\n\nexport var readonlyArray = {\n URI: URI,\n compact: compact,\n separate: separate,\n map: _map,\n ap: _ap,\n of: of,\n chain: _chain,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n mapWithIndex: _mapWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n alt: _alt,\n zero: zero,\n unfold: unfold,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n extend: _extend,\n wither: _wither,\n wilt: _wilt\n};","import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply';\nimport { bind as bind_, chainFirst as chainFirst_ } from './Chain';\nimport { fromEitherK as fromEitherK_ } from './FromEither';\nimport { identity, pipe } from './function';\nimport { bindTo as bindTo_, flap as flap_ } from './Functor';\nimport * as _ from './internal';\nimport * as NEA from './NonEmptyArray';\nimport * as RA from './ReadonlyArray';\nimport { separated } from './Separated';\nimport { filterE as filterE_, wiltDefault, witherDefault } from './Witherable';\nimport { guard as guard_ } from './Zero'; // -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n\n/**\n * Test whether an array is empty\n *\n * @example\n * import { isEmpty } from 'fp-ts/Array'\n *\n * assert.strictEqual(isEmpty([]), true)\n * assert.strictEqual(isEmpty(['a']), false)\n *\n * @category refinements\n * @since 2.0.0\n */\n\nexport var isEmpty = function isEmpty(as) {\n return as.length === 0;\n};\n/**\n * Test whether an array is non empty narrowing down the type to `NonEmptyArray`\n *\n * @example\n * import { isNonEmpty } from 'fp-ts/Array'\n *\n * assert.strictEqual(isNonEmpty([]), false)\n * assert.strictEqual(isNonEmpty(['a']), true)\n *\n * @category refinements\n * @since 2.0.0\n */\n\nexport var isNonEmpty = NEA.isNonEmpty; // -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n\n/**\n * Prepend an element to the front of a `Array`, creating a new `NonEmptyArray`.\n *\n * @example\n * import { prepend } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4])\n *\n * @category constructors\n * @since 2.10.0\n */\n\nexport var prepend = NEA.prepend;\n/**\n * Less strict version of [`prepend`](#prepend).\n *\n * @example\n * import { prependW } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([2, 3, 4], prependW(\"a\")), [\"a\", 2, 3, 4]);\n *\n * @category constructors\n * @since 2.11.0\n */\n\nexport var prependW = NEA.prependW;\n/**\n * Append an element to the end of a `Array`, creating a new `NonEmptyArray`.\n *\n * @example\n * import { append } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4])\n *\n * @category constructors\n * @since 2.10.0\n */\n\nexport var append = NEA.append;\n/**\n * Less strict version of [`append`](#append).\n *\n * @example\n * import { appendW } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], appendW(\"d\")), [1, 2, 3, \"d\"]);\n *\n * @category constructors\n * @since 2.11.0\n */\n\nexport var appendW = NEA.appendW;\n/**\n * Return a `Array` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { makeBy } from 'fp-ts/Array'\n *\n * const double = (i: number): number => i * 2\n * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8])\n * assert.deepStrictEqual(makeBy(-3, double), [])\n * assert.deepStrictEqual(makeBy(4.32164, double), [0, 2, 4, 6])\n *\n * @category constructors\n * @since 2.0.0\n */\n\nexport var makeBy = function makeBy(n, f) {\n return n <= 0 ? [] : NEA.makeBy(f)(n);\n};\n/**\n * Create a `Array` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { replicate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a'])\n * assert.deepStrictEqual(replicate(-3, 'a'), [])\n * assert.deepStrictEqual(replicate(2.985647, 'a'), ['a', 'a'])\n *\n * @category constructors\n * @since 2.0.0\n */\n\nexport var replicate = function replicate(n, a) {\n return makeBy(n, function () {\n return a;\n });\n};\nexport function fromPredicate(predicate) {\n return function (a) {\n return predicate(a) ? [a] : [];\n };\n} // -------------------------------------------------------------------------------------\n// natural transformations\n// -------------------------------------------------------------------------------------\n\n/**\n * Create an array from an `Option`. The resulting array will contain the content of the\n * `Option` if it is `Some` and it will be empty if the `Option` is `None`.\n *\n * @example\n * import { fromOption } from 'fp-ts/Array'\n * import { option } from \"fp-ts\";\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(option.some(\"a\"), fromOption),[\"a\"])\n * assert.deepStrictEqual(pipe(option.none, fromOption),[])\n *\n * @category natural transformations\n * @since 2.11.0\n */\n\nexport var fromOption = function fromOption(ma) {\n return _.isNone(ma) ? [] : [ma.value];\n};\n/**\n * Create an array from an `Either`. The resulting array will contain the content of the\n * `Either` if it is `Right` and it will be empty if the `Either` is `Left`.\n *\n * @example\n * import { fromEither } from 'fp-ts/Array'\n * import { either } from \"fp-ts\";\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(either.right(\"r\"), fromEither), [\"r\"]);\n * assert.deepStrictEqual(pipe(either.left(\"l\"), fromEither), []);\n *\n * @category natural transformations\n * @since 2.11.0\n */\n\nexport var fromEither = function fromEither(e) {\n return _.isLeft(e) ? [] : [e.right];\n}; // -------------------------------------------------------------------------------------\n// destructors\n// -------------------------------------------------------------------------------------\n\n/**\n * Less strict version of [`match`](#match). It will work when `onEmpty` and `onNonEmpty`\n * have different return types.\n *\n * @example\n * import { matchW } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const matcherW = matchW(\n * () => \"No elements\",\n * (as) => as.length\n * );\n * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcherW), 4);\n * assert.deepStrictEqual(pipe([], matcherW), \"No elements\");\n *\n * @category destructors\n * @since 2.11.0\n */\n\nexport var matchW = function matchW(onEmpty, onNonEmpty) {\n return function (as) {\n return isNonEmpty(as) ? onNonEmpty(as) : onEmpty();\n };\n};\n/**\n * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise\n * it passes the array to `onNonEmpty` and returns the result.\n *\n * @example\n * import { match } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const matcher = match(\n * () => \"No elements\",\n * (as) => `Found ${as.length} element(s)`\n * );\n * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcher), \"Found 4 element(s)\");\n * assert.deepStrictEqual(pipe([], matcher), \"No elements\");\n *\n * @category destructors\n * @since 2.11.0\n */\n\nexport var match = matchW;\n/**\n * Less strict version of [`matchLeft`](#matchleft). It will work when `onEmpty` and\n * `onNonEmpty` have different return types.\n *\n * @example\n * import { matchLeftW } from 'fp-ts/Array'\n *\n * const f = matchLeftW(\n * () => 0,\n * (head: string, tail: string[]) => `Found \"${head}\" followed by ${tail.length} elements`\n * );\n * assert.strictEqual(f([\"a\", \"b\", \"c\"]), 'Found \"a\" followed by 2 elements');\n * assert.strictEqual(f([]), 0);\n *\n * @category destructors\n * @since 2.11.0\n */\n\nexport var matchLeftW = function matchLeftW(onEmpty, onNonEmpty) {\n return function (as) {\n return isNonEmpty(as) ? onNonEmpty(NEA.head(as), NEA.tail(as)) : onEmpty();\n };\n};\n/**\n * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise\n * it passes the array to `onNonEmpty` broken into its first element and remaining elements.\n *\n * @example\n * import { matchLeft } from 'fp-ts/Array'\n *\n * const len: (as: Array) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail))\n * assert.strictEqual(len([1, 2, 3]), 3)\n *\n * @category destructors\n * @since 2.10.0\n */\n\nexport var matchLeft = matchLeftW;\n/**\n * Alias of [`matchLeft`](#matchleft).\n *\n * @category destructors\n * @since 2.0.0\n */\n\nexport var foldLeft = matchLeft;\n/**\n * Less strict version of [`matchRight`](#matchright). It will work when `onEmpty` and\n * `onNonEmpty` have different return types.\n *\n * @example\n * import { matchRightW } from 'fp-ts/Array'\n *\n * const f = matchRightW(\n * () => 0,\n * (head: string[], tail: string) => `Found ${head.length} elements folllowed by \"${tail}\"`\n * );\n * assert.strictEqual(f([\"a\", \"b\", \"c\"]), 'Found 2 elements folllowed by \"c\"');\n * assert.strictEqual(f([]), 0);\n *\n * @category destructors\n * @since 2.11.0\n */\n\nexport var matchRightW = function matchRightW(onEmpty, onNonEmpty) {\n return function (as) {\n return isNonEmpty(as) ? onNonEmpty(NEA.init(as), NEA.last(as)) : onEmpty();\n };\n};\n/**\n * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise\n * it passes the array to `onNonEmpty` broken into its initial elements and the last element.\n *\n * @example\n * import { matchRight } from 'fp-ts/Array'\n *\n * const len: (as: Array) => number = matchRight(\n * () => 0,\n * (head, _) => 1 + len(head)\n * );\n * assert.strictEqual(len([1, 2, 3]), 3);\n *\n * @category destructors\n * @since 2.10.0\n */\n\nexport var matchRight = matchRightW;\n/**\n * Alias of [`matchRight`](#matchright).\n *\n * @category destructors\n * @since 2.0.0\n */\n\nexport var foldRight = matchRight; // -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n\n/**\n * Same as [`chain`](#chain), but passing also the index to the iterating function.\n *\n * @example\n * import { chainWithIndex, replicate } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (index: number, x: string) => replicate(2, `${x}${index}`);\n * assert.deepStrictEqual(pipe([\"a\", \"b\", \"c\"], chainWithIndex(f)), [\"a0\", \"a0\", \"b1\", \"b1\", \"c2\", \"c2\"]);\n *\n * @category combinators\n * @since 2.7.0\n */\n\nexport var chainWithIndex = function chainWithIndex(f) {\n return function (as) {\n var out = [];\n\n for (var i = 0; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n\n return out;\n };\n};\n/**\n * Same as `reduce` but it carries over the intermediate steps\n *\n * @example\n * import { scanLeft } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4])\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var scanLeft = function scanLeft(b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[0] = b;\n\n for (var i = 0; i < len; i++) {\n out[i + 1] = f(out[i], as[i]);\n }\n\n return out;\n };\n};\n/**\n * Fold an array from the right, keeping all intermediate results instead of only the final result\n *\n * @example\n * import { scanRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10])\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var scanRight = function scanRight(b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[len] = b;\n\n for (var i = len - 1; i >= 0; i--) {\n out[i] = f(as[i], out[i + 1]);\n }\n\n return out;\n };\n};\n/**\n * Calculate the number of elements in a `Array`.\n *\n * @example\n * import { size } from 'fp-ts/Array'\n *\n * assert.strictEqual(size([\"a\",\"b\",\"c\"]),3)\n *\n * @since 2.10.0\n */\n\nexport var size = function size(as) {\n return as.length;\n};\n/**\n * Test whether an array contains a particular index\n *\n * @example\n * import { isOutOfBound } from 'fp-ts/Array'\n *\n * assert.strictEqual(isOutOfBound(1,[\"a\",\"b\",\"c\"]),false)\n * assert.strictEqual(isOutOfBound(-1,[\"a\",\"b\",\"c\"]),true)\n * assert.strictEqual(isOutOfBound(3,[\"a\",\"b\",\"c\"]),true)\n *\n * @since 2.0.0\n */\n\nexport var isOutOfBound = NEA.isOutOfBound; // TODO: remove non-curried overloading in v3\n\n/**\n * This function provides a safe way to read a value at a particular index from an array.\n * It returns a `none` if the index is out of bounds, and a `some` of the element if the\n * index is valid.\n *\n * @example\n * import { lookup } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], lookup(1)), some(2))\n * assert.deepStrictEqual(pipe([1, 2, 3], lookup(3)), none)\n *\n * @since 2.0.0\n */\n\nexport var lookup = RA.lookup;\n/**\n * Get the first element in an array, or `None` if the array is empty\n *\n * @example\n * import { head } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(head([1, 2, 3]), some(1))\n * assert.deepStrictEqual(head([]), none)\n *\n * @category destructors\n * @since 2.0.0\n */\n\nexport var head = RA.head;\n/**\n * Get the last element in an array, or `None` if the array is empty\n *\n * @example\n * import { last } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(last([1, 2, 3]), some(3))\n * assert.deepStrictEqual(last([]), none)\n *\n * @category destructors\n * @since 2.0.0\n */\n\nexport var last = RA.last;\n/**\n * Get all but the first element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { tail } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(tail([]), none)\n *\n * @category destructors\n * @since 2.0.0\n */\n\nexport var tail = function tail(as) {\n return isNonEmpty(as) ? _.some(NEA.tail(as)) : _.none;\n};\n/**\n * Get all but the last element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { init } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2]))\n * assert.deepStrictEqual(init([]), none)\n *\n * @category destructors\n * @since 2.0.0\n */\n\nexport var init = function init(as) {\n return isNonEmpty(as) ? _.some(NEA.init(as)) : _.none;\n};\n/**\n * Keep only a max number of elements from the start of an `Array`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { takeLeft } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(takeLeft(2)([1, 2, 3, 4, 5]), [1, 2]);\n * assert.deepStrictEqual(takeLeft(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n * assert.deepStrictEqual(takeLeft(0)([1, 2, 3, 4, 5]), []);\n * assert.deepStrictEqual(takeLeft(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var takeLeft = function takeLeft(n) {\n return function (as) {\n return isOutOfBound(n, as) ? copy(as) : as.slice(0, n);\n };\n};\n/**\n * Keep only a max number of elements from the end of an `Array`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { takeRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(takeRight(2)([1, 2, 3, 4, 5]), [4, 5]);\n * assert.deepStrictEqual(takeRight(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n * assert.deepStrictEqual(takeRight(0)([1, 2, 3, 4, 5]), []);\n * assert.deepStrictEqual(takeRight(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var takeRight = function takeRight(n) {\n return function (as) {\n return isOutOfBound(n, as) ? copy(as) : n === 0 ? [] : as.slice(-n);\n };\n};\nexport function takeLeftWhile(predicate) {\n return function (as) {\n var out = [];\n\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n\n if (!predicate(a)) {\n break;\n }\n\n out.push(a);\n }\n\n return out;\n };\n}\n\nvar spanLeftIndex = function spanLeftIndex(as, predicate) {\n var l = as.length;\n var i = 0;\n\n for (; i < l; i++) {\n if (!predicate(as[i])) {\n break;\n }\n }\n\n return i;\n};\n\nexport function spanLeft(predicate) {\n return function (as) {\n var _a = splitAt(spanLeftIndex(as, predicate))(as),\n init = _a[0],\n rest = _a[1];\n\n return {\n init: init,\n rest: rest\n };\n };\n}\n/**\n * Creates a new `Array` which is a copy of the input dropping a max number of elements from the start.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { dropLeft } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(dropLeft(2)([1, 2, 3]), [3]);\n * assert.deepStrictEqual(dropLeft(5)([1, 2, 3]), []);\n * assert.deepStrictEqual(dropLeft(0)([1, 2, 3]), [1, 2, 3]);\n * assert.deepStrictEqual(dropLeft(-2)([1, 2, 3]), [1, 2, 3]);\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var dropLeft = function dropLeft(n) {\n return function (as) {\n return n <= 0 || isEmpty(as) ? copy(as) : n >= as.length ? [] : as.slice(n, as.length);\n };\n};\n/**\n * Creates a new `Array` which is a copy of the input dropping a max number of elements from the end.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { dropRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(dropRight(2)([1, 2, 3]), [1]);\n * assert.deepStrictEqual(dropRight(5)([1, 2, 3]), []);\n * assert.deepStrictEqual(dropRight(0)([1, 2, 3]), [1, 2, 3]);\n * assert.deepStrictEqual(dropRight(-2)([1, 2, 3]), [1, 2, 3]);\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var dropRight = function dropRight(n) {\n return function (as) {\n return n <= 0 || isEmpty(as) ? copy(as) : n >= as.length ? [] : as.slice(0, as.length - n);\n };\n};\nexport function dropLeftWhile(predicate) {\n return function (as) {\n return as.slice(spanLeftIndex(as, predicate));\n };\n}\n/**\n * `findIndex` returns an `Option` containing the first index for which a predicate holds.\n * It returns `None` if no element satisfies the predicate.\n * Similar to [`findFirst`](#findFirst) but returning the index instead of the element.\n *\n * @example\n * import { findIndex } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1))\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none)\n *\n * @since 2.0.0\n */\n\nexport var findIndex = RA.findIndex;\nexport function findFirst(predicate) {\n return RA.findFirst(predicate);\n}\n/**\n * Given a selector function which takes an element and returns an option,\n * this function applies the selector to each element of the array and\n * returns the first `Some` result. Otherwise it returns `None`.\n *\n * @example\n * import { findFirstMap } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string;\n * readonly age: number;\n * }\n *\n * const persons: Array = [\n * { name: \"John\", age: 16 },\n * { name: \"Mary\", age: 45 },\n * { name: \"Joey\", age: 28 },\n * ];\n *\n * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name));\n * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name));\n * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove18)(persons), some(\"Mary\"));\n * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove70)(persons), none);\n *\n * @category destructors\n * @since 2.0.0\n */\n\nexport var findFirstMap = RA.findFirstMap;\nexport function findLast(predicate) {\n return RA.findLast(predicate);\n}\n/**\n * Given a selector function which takes an element and returns an option,\n * this function applies the selector to each element of the array starting from the\n * end and returns the last `Some` result. Otherwise it returns `None`.\n *\n * @example\n * import { findLastMap } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string;\n * readonly age: number;\n * }\n *\n * const persons: Array = [\n * { name: \"John\", age: 16 },\n * { name: \"Mary\", age: 45 },\n * { name: \"Joey\", age: 28 },\n * ];\n *\n * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name));\n * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name));\n * assert.deepStrictEqual(findLastMap(nameOfPersonAbove18)(persons), some(\"Joey\"));\n * assert.deepStrictEqual(findLastMap(nameOfPersonAbove70)(persons), none);\n *\n * @category destructors\n * @since 2.0.0\n */\n\nexport var findLastMap = RA.findLastMap;\n/**\n * Returns the index of the last element of the list which matches the predicate.\n * It returns an `Option` containing the index or `None` if not found.\n *\n * @example\n * import { findLastIndex } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface X {\n * readonly a: number\n * readonly b: number\n * }\n * const xs: Array = [{ a: 1, b: 0 }, { a: 1, b: 1 }]\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1))\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none)\n *\n * @since 2.0.0\n */\n\nexport var findLastIndex = RA.findLastIndex;\n/**\n * This function takes an array and makes a new array containing the same elements.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var copy = function copy(as) {\n return as.slice();\n};\n/**\n * Insert an element at the specified index, creating a new array,\n * or returning `None` if the index is out of bounds.\n *\n * @example\n * import { insertAt } from 'fp-ts/Array'\n * import { some } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4]))\n *\n * @since 2.0.0\n */\n\nexport var insertAt = function insertAt(i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some(unsafeInsertAt(i, a, as));\n };\n};\n/**\n * Change the element at the specified index, creating a new array,\n * or returning `None` if the index is out of bounds.\n *\n * @example\n * import { updateAt } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3]))\n * assert.deepStrictEqual(updateAt(1, 1)([]), none)\n *\n * @since 2.0.0\n */\n\nexport var updateAt = function updateAt(i, a) {\n return modifyAt(i, function () {\n return a;\n });\n};\n/**\n * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds.\n *\n * @example\n * import { deleteAt } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(deleteAt(1)([]), none)\n *\n * @since 2.0.0\n */\n\nexport var deleteAt = function deleteAt(i) {\n return function (as) {\n return isOutOfBound(i, as) ? _.none : _.some(unsafeDeleteAt(i, as));\n };\n};\n/**\n * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out\n * of bounds.\n *\n * @example\n * import { modifyAt } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * const double = (x: number): number => x * 2\n * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3]))\n * assert.deepStrictEqual(modifyAt(1, double)([]), none)\n *\n * @since 2.0.0\n */\n\nexport var modifyAt = function modifyAt(i, f) {\n return function (as) {\n return isOutOfBound(i, as) ? _.none : _.some(unsafeUpdateAt(i, f(as[i]), as));\n };\n};\n/**\n * Reverse an array, creating a new array\n *\n * @example\n * import { reverse } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1])\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var reverse = function reverse(as) {\n return isEmpty(as) ? [] : as.slice().reverse();\n};\n/**\n * Takes an `Array` of `Either` and produces a new `Array` containing\n * the values of all the `Right` elements in the same order.\n *\n * @example\n * import { rights } from 'fp-ts/Array'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2])\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var rights = function rights(as) {\n var r = [];\n\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n\n if (a._tag === 'Right') {\n r.push(a.right);\n }\n }\n\n return r;\n};\n/**\n * Takes an `Array` of `Either` and produces a new `Array` containing\n * the values of all the `Left` elements in the same order.\n *\n * @example\n * import { lefts } from 'fp-ts/Array'\n * import { left, right } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo'])\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var lefts = function lefts(as) {\n var r = [];\n\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n\n if (a._tag === 'Left') {\n r.push(a.left);\n }\n }\n\n return r;\n};\n/**\n * Sort the elements of an array in increasing order, creating a new array\n *\n * @example\n * import { sort } from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3])\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var sort = function sort(O) {\n return function (as) {\n return as.length <= 1 ? copy(as) : as.slice().sort(O.compare);\n };\n};\n/**\n * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one\n * input array is short, excess elements of the longer array are discarded.\n *\n * @example\n * import { zipWith } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3'])\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var zipWith = function zipWith(fa, fb, f) {\n var fc = [];\n var len = Math.min(fa.length, fb.length);\n\n for (var i = 0; i < len; i++) {\n fc[i] = f(fa[i], fb[i]);\n }\n\n return fc;\n};\nexport function zip(as, bs) {\n if (bs === undefined) {\n return function (bs) {\n return zip(bs, as);\n };\n }\n\n return zipWith(as, bs, function (a, b) {\n return [a, b];\n });\n}\n/**\n * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays\n *\n * @example\n * import { unzip } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']])\n *\n * @since 2.0.0\n */\n\nexport var unzip = function unzip(as) {\n var fa = [];\n var fb = [];\n\n for (var i = 0; i < as.length; i++) {\n fa[i] = as[i][0];\n fb[i] = as[i][1];\n }\n\n return [fa, fb];\n};\n/**\n * Creates a new `Array`, prepending an element to every member of the input `Array`.\n *\n * @example\n * import { prependAll } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var prependAll = function prependAll(middle) {\n var f = NEA.prependAll(middle);\n return function (as) {\n return isNonEmpty(as) ? f(as) : [];\n };\n};\n/**\n * Creates a new `Array` placing an element in between members of the input `Array`.\n *\n * @example\n * import { intersperse } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @category combinators\n * @since 2.9.0\n */\n\nexport var intersperse = function intersperse(middle) {\n var f = NEA.intersperse(middle);\n return function (as) {\n return isNonEmpty(as) ? f(as) : copy(as);\n };\n};\n/**\n * Creates a new `Array` rotating the input `Array` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var rotate = function rotate(n) {\n var f = NEA.rotate(n);\n return function (as) {\n return isNonEmpty(as) ? f(as) : copy(as);\n };\n}; // TODO: remove non-curried overloading in v3\n\n/**\n * Test if a value is a member of an `Array`. Takes a `Eq` as a single\n * argument which returns the function to use to search for a value of type `A` in\n * an `Array`.\n *\n * @example\n * import { elem } from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(2)), true)\n * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(0)), false)\n *\n * @since 2.0.0\n */\n\nexport var elem = RA.elem;\n/**\n * Creates a new `Array` removing duplicate elements, keeping the first occurrence of an element,\n * based on a `Eq`.\n *\n * @example\n * import { uniq } from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var uniq = function uniq(E) {\n var f = NEA.uniq(E);\n return function (as) {\n return isNonEmpty(as) ? f(as) : copy(as);\n };\n};\n/**\n * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import { sortBy } from 'fp-ts/Array'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * readonly name: string\n * readonly age: number\n * }\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = sortBy([byName, byAge])\n *\n * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }]\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var sortBy = function sortBy(ords) {\n var f = NEA.sortBy(ords);\n return function (as) {\n return isNonEmpty(as) ? f(as) : copy(as);\n };\n};\n/**\n * A useful recursion pattern for processing an array to produce a new array, often used for \"chopping\" up the input\n * array. Typically chop is called with some function that will consume an initial prefix of the array and produce a\n * value and the rest of the array.\n *\n * @example\n * import { Eq } from 'fp-ts/Eq'\n * import * as A from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * const group = (S: Eq): ((as: Array) => Array>) => {\n * return A.chop(as => {\n * const { init, rest } = pipe(as, A.spanLeft((a: A) => S.equals(a, as[0])))\n * return [init, rest]\n * })\n * }\n * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]])\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var chop = function chop(f) {\n var g = NEA.chop(f);\n return function (as) {\n return isNonEmpty(as) ? g(as) : [];\n };\n};\n/**\n * Splits an `Array` into two pieces, the first piece has max `n` elements.\n *\n * @example\n * import { splitAt } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]])\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var splitAt = function splitAt(n) {\n return function (as) {\n return n >= 1 && isNonEmpty(as) ? NEA.splitAt(n)(as) : isEmpty(as) ? [copy(as), []] : [[], copy(as)];\n };\n};\n/**\n * Splits an array into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the array. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive\n * definition of `chunksOf`; it satisfies the property that\n *\n * ```ts\n * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys)))\n * ```\n *\n * whenever `n` evenly divides the length of `xs`.\n *\n * @example\n * import { chunksOf } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]])\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var chunksOf = function chunksOf(n) {\n var f = NEA.chunksOf(n);\n return function (as) {\n return isNonEmpty(as) ? f(as) : [];\n };\n};\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var fromOptionK = function fromOptionK(f) {\n return function () {\n var a = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n\n return fromOption(f.apply(void 0, a));\n };\n};\nexport function comprehension(input, f, g) {\n if (g === void 0) {\n g = function g() {\n return true;\n };\n }\n\n var go = function go(scope, input) {\n return isNonEmpty(input) ? pipe(NEA.head(input), chain(function (x) {\n return go(pipe(scope, append(x)), NEA.tail(input));\n })) : g.apply(void 0, scope) ? [f.apply(void 0, scope)] : [];\n };\n\n return go([], input);\n}\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var concatW = function concatW(second) {\n return function (first) {\n return isEmpty(first) ? copy(second) : isEmpty(second) ? copy(first) : first.concat(second);\n };\n};\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var concat = concatW;\nexport function union(E) {\n var unionE = NEA.union(E);\n return function (first, second) {\n if (second === undefined) {\n var unionE_1 = union(E);\n return function (second) {\n return unionE_1(second, first);\n };\n }\n\n return isNonEmpty(first) && isNonEmpty(second) ? unionE(second)(first) : isNonEmpty(first) ? copy(first) : copy(second);\n };\n}\nexport function intersection(E) {\n var elemE = elem(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var intersectionE_1 = intersection(E);\n return function (ys) {\n return intersectionE_1(ys, xs);\n };\n }\n\n return xs.filter(function (a) {\n return elemE(a, ys);\n });\n };\n}\nexport function difference(E) {\n var elemE = elem(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var differenceE_1 = difference(E);\n return function (ys) {\n return differenceE_1(ys, xs);\n };\n }\n\n return xs.filter(function (a) {\n return !elemE(a, ys);\n });\n };\n} // -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\n\nvar _map = function _map(fa, f) {\n return pipe(fa, map(f));\n};\n/* istanbul ignore next */\n\n\nvar _mapWithIndex = function _mapWithIndex(fa, f) {\n return pipe(fa, mapWithIndex(f));\n};\n\nvar _ap = function _ap(fab, fa) {\n return pipe(fab, ap(fa));\n};\n\nvar _chain = function _chain(ma, f) {\n return pipe(ma, chain(f));\n};\n/* istanbul ignore next */\n\n\nvar _filter = function _filter(fa, predicate) {\n return pipe(fa, filter(predicate));\n};\n/* istanbul ignore next */\n\n\nvar _filterMap = function _filterMap(fa, f) {\n return pipe(fa, filterMap(f));\n};\n/* istanbul ignore next */\n\n\nvar _partition = function _partition(fa, predicate) {\n return pipe(fa, partition(predicate));\n};\n/* istanbul ignore next */\n\n\nvar _partitionMap = function _partitionMap(fa, f) {\n return pipe(fa, partitionMap(f));\n};\n/* istanbul ignore next */\n\n\nvar _partitionWithIndex = function _partitionWithIndex(fa, predicateWithIndex) {\n return pipe(fa, partitionWithIndex(predicateWithIndex));\n};\n/* istanbul ignore next */\n\n\nvar _partitionMapWithIndex = function _partitionMapWithIndex(fa, f) {\n return pipe(fa, partitionMapWithIndex(f));\n};\n/* istanbul ignore next */\n\n\nvar _alt = function _alt(fa, that) {\n return pipe(fa, alt(that));\n};\n\nvar _reduce = function _reduce(fa, b, f) {\n return pipe(fa, reduce(b, f));\n};\n/* istanbul ignore next */\n\n\nvar _foldMap = function _foldMap(M) {\n var foldMapM = foldMap(M);\n return function (fa, f) {\n return pipe(fa, foldMapM(f));\n };\n};\n/* istanbul ignore next */\n\n\nvar _reduceRight = function _reduceRight(fa, b, f) {\n return pipe(fa, reduceRight(b, f));\n};\n/* istanbul ignore next */\n\n\nvar _reduceWithIndex = function _reduceWithIndex(fa, b, f) {\n return pipe(fa, reduceWithIndex(b, f));\n};\n/* istanbul ignore next */\n\n\nvar _foldMapWithIndex = function _foldMapWithIndex(M) {\n var foldMapWithIndexM = foldMapWithIndex(M);\n return function (fa, f) {\n return pipe(fa, foldMapWithIndexM(f));\n };\n};\n/* istanbul ignore next */\n\n\nvar _reduceRightWithIndex = function _reduceRightWithIndex(fa, b, f) {\n return pipe(fa, reduceRightWithIndex(b, f));\n};\n/* istanbul ignore next */\n\n\nvar _filterMapWithIndex = function _filterMapWithIndex(fa, f) {\n return pipe(fa, filterMapWithIndex(f));\n};\n/* istanbul ignore next */\n\n\nvar _filterWithIndex = function _filterWithIndex(fa, predicateWithIndex) {\n return pipe(fa, filterWithIndex(predicateWithIndex));\n};\n/* istanbul ignore next */\n\n\nvar _extend = function _extend(fa, f) {\n return pipe(fa, extend(f));\n};\n/* istanbul ignore next */\n\n\nvar _traverse = function _traverse(F) {\n var traverseF = traverse(F);\n return function (ta, f) {\n return pipe(ta, traverseF(f));\n };\n};\n/* istanbul ignore next */\n\n\nvar _traverseWithIndex = function _traverseWithIndex(F) {\n var traverseWithIndexF = traverseWithIndex(F);\n return function (ta, f) {\n return pipe(ta, traverseWithIndexF(f));\n };\n};\n\nvar _chainRecDepthFirst = RA._chainRecDepthFirst;\nvar _chainRecBreadthFirst = RA._chainRecBreadthFirst; // -------------------------------------------------------------------------------------\n// type class members\n// -------------------------------------------------------------------------------------\n\n/**\n * Given an element of the base type, `of` builds an `Array` containing just that\n * element of the base type (this is useful for building a `Monad`).\n *\n * @example\n * import { of } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(of(\"a\"), [\"a\"]);\n *\n * @category Pointed\n * @since 2.0.0\n */\n\nexport var of = NEA.of;\n/**\n * Makes an empty `Array`, useful for building a [`Monoid`](#Monoid)\n *\n * @category Zero\n * @since 2.7.0\n */\n\nexport var zero = function zero() {\n return [];\n};\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: Array) => Array`.\n * In practice it applies the base function to each element of the array and collects the\n * results in a new array.\n *\n * @example\n * import { map } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (n: number) => n * 2;\n * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [2, 4, 6]);\n *\n * @category Functor\n * @since 2.0.0\n */\n\nexport var map = function map(f) {\n return function (fa) {\n return fa.map(function (a) {\n return f(a);\n });\n };\n};\n/**\n * Apply a function to an argument under a type constructor.\n *\n * It can be used to extend the concept of [`map`](#map) to a function that\n * takes more than one parameter as described\n * read [here](https://dev.to/gcanti/getting-started-with-fp-ts-applicative-1kb3)\n *\n * @example\n * import { ap, map, of } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * // a curried function with 3 input parameteres\n * const f = (s1: string) => (n: number) => (s2: string) => s1 + n + s2;\n *\n * // let's use `ap` to iterate `f` over an array for each input parameter\n * assert.deepStrictEqual(pipe([\"a\", \"b\"], map(f), ap([1, 2]), ap([\"😀\", \"😫\", \"😎\"])), [\n * \"a1😀\", \"a1😫\", \"a1😎\",\n * \"a2😀\", \"a2😫\", \"a2😎\",\n * \"b1😀\", \"b1😫\", \"b1😎\",\n * \"b2😀\", \"b2😫\", \"b2😎\",\n * ]);\n *\n * // given Array implements the Applicative interface with the `of` method,\n * // we can write exactly the same thing in a more symmetric way\n * // using `of` on `f` and `ap` on each array in input\n * assert.deepStrictEqual(\n * pipe(of(f), ap([\"a\", \"b\"]), ap([1, 2]), ap([\"😀\", \"😫\", \"😎\"])),\n * pipe([\"a\", \"b\"], map(f), ap([1, 2]), ap([\"😀\", \"😫\", \"😎\"]))\n * );\n *\n * @category Apply\n * @since 2.0.0\n */\n\nexport var ap = function ap(fa) {\n return chain(function (f) {\n return pipe(fa, map(f));\n });\n};\n/**\n * Composes computations in sequence, using the return value of one computation to\n * determine the next computation.\n *\n * In other words it takes a function `f` that produces an array from a single element of\n * the base type `A` and returns a new function which applies `f` to each element of the\n * input array (like [`map`](#map)) and, instead of returning an array of arrays, concatenates the\n * results into a single array (like [`flatten`](#flatten)).\n *\n * This is the `chain` component of the array `Monad`.\n *\n * @example\n * import { chain, map, replicate } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (n: number) => replicate(n, `${n}`);\n * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [[\"1\"], [\"2\", \"2\"], [\"3\", \"3\", \"3\"]]);\n * assert.deepStrictEqual(pipe([1, 2, 3], chain(f)), [\"1\", \"2\", \"2\", \"3\", \"3\", \"3\"]);\n *\n * @category Monad\n * @since 2.0.0\n */\n\nexport var chain = function chain(f) {\n return function (ma) {\n return pipe(ma, chainWithIndex(function (_, a) {\n return f(a);\n }));\n };\n};\n/**\n * Takes an array of arrays of `A` and flattens them into an array of `A`\n * by concatenating the elements of each array in order.\n *\n * Derivable from [`chain`](#chain).\n *\n * @example\n * import { flatten } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(flatten([[\"a\"], [\"b\", \"c\"], [\"d\", \"e\", \"f\"]]), [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\"]);\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var flatten = /*#__PURE__*/chain(identity);\n/**\n * Same as [`map`](#map), but the iterating function takes both the index and the value\n * of the element.\n *\n * @example\n * import { mapWithIndex } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (i: number, s: string) => `${s} - ${i}`;\n * assert.deepStrictEqual(pipe([\"a\", \"b\", \"c\"], mapWithIndex(f)), [\"a - 0\", \"b - 1\", \"c - 2\"]);\n *\n * @category FunctorWithIndex\n * @since 2.0.0\n */\n\nexport var mapWithIndex = function mapWithIndex(f) {\n return function (fa) {\n return fa.map(function (a, i) {\n return f(i, a);\n });\n };\n};\n/**\n * Maps an array with an iterating function that takes the index and the value of\n * each element and returns an `Option`. It keeps only the `Some` values discarding\n * the `None`s.\n *\n * Same as [`filterMap`](#filterMap), but with an iterating function which takes also\n * the index as input.\n *\n * @example\n * import { filterMapWithIndex } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n * import { option } from \"fp-ts\";\n *\n * const f = (i: number, s: string) => (i % 2 === 1 ? option.some(s.toUpperCase()) : option.none);\n * assert.deepStrictEqual(pipe([\"a\", \"no\", \"neither\", \"b\"], filterMapWithIndex(f)), [\"NO\", \"B\"]);\n *\n * @category FilterableWithIndex\n * @since 2.0.0\n */\n\nexport var filterMapWithIndex = function filterMapWithIndex(f) {\n return function (fa) {\n var out = [];\n\n for (var i = 0; i < fa.length; i++) {\n var optionB = f(i, fa[i]);\n\n if (_.isSome(optionB)) {\n out.push(optionB.value);\n }\n }\n\n return out;\n };\n};\n/**\n * Maps an array with an iterating function that returns an `Option`\n * and it keeps only the `Some` values discarding the `None`s.\n *\n * @example\n * import { filterMap } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n * import { option } from \"fp-ts\";\n *\n * const f = (s: string) => s.length === 1 ? option.some(s.toUpperCase()) : option.none;\n * assert.deepStrictEqual(pipe([\"a\", \"no\", \"neither\", \"b\"], filterMap(f)), [\"A\", \"B\"]);\n *\n * @category Filterable\n * @since 2.0.0\n */\n\nexport var filterMap = function filterMap(f) {\n return filterMapWithIndex(function (_, a) {\n return f(a);\n });\n};\n/**\n * Compact an array of `Option`s discarding the `None` values and\n * keeping the `Some` values. It returns a new array containing the values of\n * the `Some` options.\n *\n * @example\n * import { compact } from 'fp-ts/Array'\n * import { option } from \"fp-ts\";\n *\n * assert.deepStrictEqual(compact([option.some(\"a\"), option.none, option.some(\"b\")]), [\"a\", \"b\"]);\n *\n * @category Compactable\n * @since 2.0.0\n */\n\nexport var compact = /*#__PURE__*/filterMap(identity);\n/**\n * Separate an array of `Either`s into `Left`s and `Right`s, creating two new arrays:\n * one containing all the left values and one containing all the right values.\n *\n * @example\n * import { separate } from 'fp-ts/Array'\n * import { either } from \"fp-ts\";\n *\n * assert.deepStrictEqual(separate([either.right(\"r1\"), either.left(\"l1\"), either.right(\"r2\")]), {\n * left: [\"l1\"],\n * right: [\"r1\", \"r2\"],\n * });\n *\n * @category Compactable\n * @since 2.0.0\n */\n\nexport var separate = function separate(fa) {\n var left = [];\n var right = [];\n\n for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) {\n var e = fa_1[_i];\n\n if (e._tag === 'Left') {\n left.push(e.left);\n } else {\n right.push(e.right);\n }\n }\n\n return separated(left, right);\n};\n/**\n * Given an iterating function that is a `Predicate` or a `Refinement`,\n * `filter` creates a new `Array` containing the elements of the original\n * `Array` for which the iterating function is `true`.\n *\n * @example\n * import { filter } from 'fp-ts/Array'\n * import { isString } from \"fp-ts/lib/string\";\n *\n * assert.deepStrictEqual(filter(isString)([\"a\", 1, {}, \"b\", 5]), [\"a\", \"b\"]);\n * assert.deepStrictEqual(filter((x:number) => x > 0)([-3, 1, -2, 5]), [1, 5]);\n *\n * @category Filterable\n * @since 2.0.0\n */\n\nexport var filter = function filter(predicate) {\n return function (as) {\n return as.filter(predicate);\n };\n};\n/**\n * Given an iterating function that is a `Predicate` or a `Refinement`,\n * `partition` creates two new `Array`s: `right` containing the elements of the original\n * `Array` for which the iterating function is `true`, `left` containing the elements\n * for which it is false.\n *\n * @example\n * import { partition } from 'fp-ts/Array'\n * import { isString } from \"fp-ts/lib/string\";\n *\n * assert.deepStrictEqual(partition(isString)([\"a\", 1, {}, \"b\", 5]), { left: [1, {}, 5], right: [\"a\", \"b\"] });\n * assert.deepStrictEqual(partition((x: number) => x > 0)([-3, 1, -2, 5]), { left: [-3, -2], right: [1, 5] });\n *\n * @category Filterable\n * @since 2.0.0\n */\n\nexport var partition = function partition(predicate) {\n return partitionWithIndex(function (_, a) {\n return predicate(a);\n });\n};\n/**\n * Same as [`partition`](#partition), but passing also the index to the iterating function.\n *\n * @example\n * import { partitionWithIndex } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(partitionWithIndex((index, x: number) => index < 3 && x > 0)([-2, 5, 6, 7]), {\n * left: [-2, 7],\n * right: [5, 6],\n * });\n *\n * @category FilterableWithIndex\n * @since 2.0.0\n */\n\nexport var partitionWithIndex = function partitionWithIndex(predicateWithIndex) {\n return function (as) {\n var left = [];\n var right = [];\n\n for (var i = 0; i < as.length; i++) {\n var b = as[i];\n\n if (predicateWithIndex(i, b)) {\n right.push(b);\n } else {\n left.push(b);\n }\n }\n\n return separated(left, right);\n };\n};\n/**\n * Given an iterating function that returns an `Either`,\n * `partitionMap` applies the iterating function to each element and it creates two `Array`s:\n * `right` containing the values of `Right` results, `left` containing the values of `Left` results.\n *\n * @example\n * import { partitionMap } from 'fp-ts/Array'\n * import { Either, left, right } from \"fp-ts/lib/Either\";\n *\n * const upperIfString = (x: B): Either =>\n * typeof x === \"string\" ? right(x.toUpperCase()) : left(x);\n * assert.deepStrictEqual(partitionMap(upperIfString)([-2, \"hello\", 6, 7, \"world\"]), {\n * left: [-2, 6, 7],\n * right: [ 'HELLO', 'WORLD' ],\n * });\n *\n * @category Filterable\n * @since 2.0.0\n */\n\nexport var partitionMap = function partitionMap(f) {\n return partitionMapWithIndex(function (_, a) {\n return f(a);\n });\n};\n/**\n * Same as [`partitionMap`](#partitionMap), but passing also the index to the iterating function.\n *\n * @example\n * import { partitionMapWithIndex } from 'fp-ts/Array'\n * import { Either, left, right } from \"fp-ts/lib/Either\";\n *\n * const upperIfStringBefore3 = (index: number, x: B): Either =>\n * index < 3 && typeof x === \"string\" ? right(x.toUpperCase()) : left(x);\n * assert.deepStrictEqual(partitionMapWithIndex(upperIfStringBefore3)([-2, \"hello\", 6, 7, \"world\"]), {\n * left: [-2, 6, 7, \"world\"],\n * right: [\"HELLO\"],\n * });\n *\n * @category FilterableWithIndex\n * @since 2.0.0\n */\n\nexport var partitionMapWithIndex = function partitionMapWithIndex(f) {\n return function (fa) {\n var left = [];\n var right = [];\n\n for (var i = 0; i < fa.length; i++) {\n var e = f(i, fa[i]);\n\n if (e._tag === 'Left') {\n left.push(e.left);\n } else {\n right.push(e.right);\n }\n }\n\n return separated(left, right);\n };\n};\n/**\n * Less strict version of [`alt`](#alt), it can concatenate `Array`s of different base types.\n *\n * @example\n * import { altW } from 'fp-ts/Array';\n *\n * assert.deepStrictEqual(altW(() => [2, 3, 4])([\"a\"]), [\"a\", 2, 3, 4]);\n *\n * @category Alt\n * @since 2.9.0\n */\n\nexport var altW = function altW(that) {\n return function (fa) {\n return fa.concat(that());\n };\n};\n/**\n * `alt` implements the `Alt` iterface by concatenation of `Array`s.\n * `Alt` interface is similar to `Semigroup` for higher-kinded types such\n * as `Array` and `Option`: the example below shows both `Alt`'s `alt` and\n * `Semigroup`'s `concat` functions.\n *\n * @example\n * import { alt, concat } from 'fp-ts/Array';\n *\n * assert.deepStrictEqual(alt(() => [2, 3, 4])([1]), [1, 2, 3, 4]);\n * assert.deepStrictEqual(concat([2, 3, 4])([1]), [1, 2, 3, 4]);\n *\n * @category Alt\n * @since 2.0.0\n */\n\nexport var alt = altW;\n/**\n * Same as [`filter`](#filter), but passing also the index to the iterating function.\n *\n * @example\n * import { filterWithIndex } from 'fp-ts/Array';\n *\n * const f = (index: number, x: number) => x > 0 && index <= 2;\n * assert.deepStrictEqual(filterWithIndex(f)([-3, 1, -2, 5]), [1]);\n *\n * @category FilterableWithIndex\n * @since 2.0.0\n */\n\nexport var filterWithIndex = function filterWithIndex(predicateWithIndex) {\n return function (as) {\n return as.filter(function (b, i) {\n return predicateWithIndex(i, b);\n });\n };\n};\n/**\n * Given an iterating function that takes `Array` as input, `extend` returns\n * an array containing the results of the iterating function applied to the whole input\n * `Array`, then to the input `Array` without the first element, then to the input\n * `Array` without the first two elements, etc.\n *\n * @example\n * import { extend } from 'fp-ts/Array'\n *\n * const f = (a: string[]) => a.join(\",\");\n * assert.deepStrictEqual(extend(f)([\"a\", \"b\", \"c\"]), [\"a,b,c\", \"b,c\", \"c\"]);\n *\n * @category Extend\n * @since 2.0.0\n */\n\nexport var extend = function extend(f) {\n return function (wa) {\n return wa.map(function (_, i) {\n return f(wa.slice(i));\n });\n };\n};\n/**\n * `duplicate` returns an array containing the whole input `Array`,\n * then to the input `Array` dropping the first element, then to the input\n * `Array` dropping the first two elements, etc.\n * Derivable from `Extend`.\n *\n * @example\n * import { duplicate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(duplicate([\"a\", \"b\", \"c\"]), [[\"a\", \"b\", \"c\"], [\"b\", \"c\"], [\"c\"]]);\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var duplicate = /*#__PURE__*/extend(identity);\n/**\n * Map and fold an `Array`.\n * Map the `Array` passing each value to the iterating function.\n * Then fold the results using the provided `Monoid`.\n *\n * @example\n * import { foldMap } from 'fp-ts/Array'\n *\n * const monoid = { concat: (a: string, b: string) => a + b, empty: \"\" };\n * const f = (s: string) => s.toUpperCase()\n * assert.deepStrictEqual(foldMap(monoid)(f)([\"a\", \"b\", \"c\"]), \"ABC\");\n *\n * @category Foldable\n * @since 2.0.0\n */\n\nexport var foldMap = RA.foldMap;\n/**\n * Same as [`foldMap`](#foldMap) but passing also the index to the iterating function.\n *\n * @example\n * import { foldMapWithIndex } from 'fp-ts/Array'\n *\n * const monoid = { concat: (a: string, b: string) => a + b, empty: \"\" };\n * const f = (index:number, s: string) => `${s.toUpperCase()}(${index})`\n * assert.deepStrictEqual(foldMapWithIndex(monoid)(f)([\"a\", \"b\", \"c\"]), \"A(0)B(1)C(2)\");\n *\n * @category FoldableWithIndex\n * @since 2.0.0\n */\n\nexport var foldMapWithIndex = RA.foldMapWithIndex;\n/**\n * Reduces an `Array`.\n *\n * `reduce` executes the supplied iterating function on each element of the array,\n * in order, passing in the element and the return value from the calculation on the preceding element.\n *\n * The first time that the iterating function is called there is no \"return value of the\n * previous calculation\", the initial value is used in its place.\n *\n * @example\n * import { reduce } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(reduce(5, (acc: number, cur: number) => acc * cur)([2, 3]), 5 * 2 * 3);\n *\n * @category Foldable\n * @since 2.0.0\n */\n\nexport var reduce = RA.reduce;\n/**\n * Same as [`reduce`](#reduce) but passing also the index to the iterating function.\n *\n * @example\n * import { reduceWithIndex } from 'fp-ts/Array'\n *\n * const f = (index: number, acc: string, cur: unknown) =>\n * acc + (typeof cur === \"string\" ? cur.toUpperCase() + index : \"\");\n * assert.deepStrictEqual(reduceWithIndex(\"\", f)([2, \"a\", \"b\", null]), \"A1B2\");\n *\n * @category FoldableWithIndex\n * @since 2.0.0\n */\n\nexport var reduceWithIndex = RA.reduceWithIndex;\n/**\n * Same as [`reduce`](#reduce) but applied from the end to the start.\n *\n * *Note*: the iterating function in this case takes the accumulator as the last argument.\n *\n * @example\n * import { reduceRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(reduceRight(\"\", (cur: string, acc: string) => acc + cur)([\"a\", \"b\", \"c\"]), \"cba\");\n *\n * @category Foldable\n * @since 2.0.0\n */\n\nexport var reduceRight = RA.reduceRight;\n/**\n * Same as [`reduceRight`](#reduceRight) but passing also the index to the iterating function.\n *\n * @example\n * import { reduceRightWithIndex } from 'fp-ts/Array'\n *\n * const f = (index: number, cur: unknown, acc: string) =>\n * acc + (typeof cur === \"string\" ? cur.toUpperCase() + index : \"\");\n * assert.deepStrictEqual(reduceRightWithIndex(\"\", f)([2, \"a\", \"b\", null]), \"B2A1\");\n *\n * @category FoldableWithIndex\n * @since 2.0.0\n */\n\nexport var reduceRightWithIndex = RA.reduceRightWithIndex;\n/**\n * Given an iterating function that returns a `HKT` (higher kinded type), `traverse`\n * applies the iterating function to each element of the `Array` and then [`sequence`](#sequence)-s\n * the results using the provided `Applicative`.\n *\n * E.g. suppose you have an `Array` and you want to format each element with a function\n * that returns a result or an error as `f = (a: A) => Either`, using `traverse`\n * you can apply `f` to all elements and directly obtain as a result an `Either>`\n * i.e. an `Array` if all the results are `B`, or an `Error` if some of the results\n * are `Error`s.\n *\n * @example\n * import { traverse } from 'fp-ts/Array'\n * import { Applicative, left, right } from \"fp-ts/lib/Either\";\n *\n * const f = (x: unknown) =>\n * typeof x === \"string\" ? right(x.toUpperCase()) : left(new Error(\"not a string\"));\n * assert.deepStrictEqual(traverse(Applicative)(f)([\"a\", \"b\"]), right([\"A\", \"B\"]));\n * assert.deepStrictEqual(traverse(Applicative)(f)([\"a\", 5]), left(new Error(\"not a string\")));\n *\n * @category Traversable\n * @since 2.6.3\n */\n\nexport var traverse = function traverse(F) {\n var traverseWithIndexF = traverseWithIndex(F);\n return function (f) {\n return traverseWithIndexF(function (_, a) {\n return f(a);\n });\n };\n};\n/**\n * `sequence` takes an `Array` where elements are `HKT` (higher kinded type) and,\n * using an applicative of that `HKT`, returns an `HKT` of `Array`.\n * E.g. it can turn an `Array>` into an `Either>`.\n *\n * `sequence` requires an `Applicative` of the `HKT` you are targeting, e.g. to turn an\n * `Array>` into an `Either>`, it needs an\n * `Applicative` for `Either`, to to turn an `Array>` into an `Option>`,\n * it needs an `Applicative` for `Option`.\n *\n * @example\n * import { sequence } from 'fp-ts/Array'\n * import { Applicative, left, right } from \"fp-ts/lib/Either\";\n *\n * assert.deepStrictEqual(sequence(Applicative)([right(\"a\"), right(\"b\")]), right([\"a\", \"b\"]));\n * assert.deepStrictEqual(\n * sequence(Applicative)([right(\"a\"), left(new Error(\"not a string\"))]),\n * left(new Error(\"not a string\"))\n * );\n *\n * @category Traversable\n * @since 2.6.3\n */\n\nexport var sequence = function sequence(F) {\n return function (ta) {\n return _reduce(ta, F.of(zero()), function (fas, fa) {\n return F.ap(F.map(fas, function (as) {\n return function (a) {\n return pipe(as, append(a));\n };\n }), fa);\n });\n };\n};\n/**\n * Same as [`traverse`](#traverse) but passing also the index to the iterating function.\n *\n * @example\n * import { traverseWithIndex } from 'fp-ts/Array'\n * import { Applicative, left, right } from \"fp-ts/lib/Either\";\n *\n * const f = (index:number, x:unknown) =>\n * typeof x === \"string\" ? right(x.toUpperCase() + index) : left(new Error(\"not a string\"));\n * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)([\"a\", \"b\"]), right([\"A0\", \"B1\"]));\n * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)([\"a\", 5]), left(new Error(\"not a string\")));\n *\n * @category TraversableWithIndex\n * @since 2.6.3\n */\n\nexport var traverseWithIndex = function traverseWithIndex(F) {\n return function (f) {\n return reduceWithIndex(F.of(zero()), function (i, fbs, a) {\n return F.ap(F.map(fbs, function (bs) {\n return function (b) {\n return pipe(bs, append(b));\n };\n }), f(i, a));\n });\n };\n};\n/**\n * @category Witherable\n * @since 2.6.5\n */\n\nexport var wither = function wither(F) {\n var _witherF = _wither(F);\n\n return function (f) {\n return function (fa) {\n return _witherF(fa, f);\n };\n };\n};\n/**\n * @category Witherable\n * @since 2.6.5\n */\n\nexport var wilt = function wilt(F) {\n var _wiltF = _wilt(F);\n\n return function (f) {\n return function (fa) {\n return _wiltF(fa, f);\n };\n };\n};\n/**\n * `unfold` takes a function `f` which returns an `Option` of a tuple containing an outcome\n * value and an input for the following iteration.\n * `unfold` applies `f` to the initial value `b` and then recursively to the second\n * element of the tuple contained in the returned `option` of the previous\n * calculation until `f` returns `Option.none`.\n *\n * @example\n * import { unfold } from 'fp-ts/Array'\n * import { option } from 'fp-ts'\n *\n * const f = (n: number) => {\n * if (n <= 0) return option.none;\n * const returnValue = n * 2;\n * const inputForNextRound = n - 1;\n * return option.some([returnValue, inputForNextRound] as const);\n * };\n * assert.deepStrictEqual(unfold(5, f), [10, 8, 6, 4, 2]);\n *\n * @category Unfoldable\n * @since 2.6.6\n */\n\nexport var unfold = function unfold(b, f) {\n var out = [];\n var bb = b;\n\n while (true) {\n var mt = f(bb);\n\n if (_.isSome(mt)) {\n var _a = mt.value,\n a = _a[0],\n b_1 = _a[1];\n out.push(a);\n bb = b_1;\n } else {\n break;\n }\n }\n\n return out;\n}; // -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @category instances\n * @since 2.0.0\n */\n\nexport var URI = 'Array';\n/**\n * `getShow` makes a `Show` for an `Array` from a `Show` for\n * an `A`.\n *\n * @example\n * import { getShow } from 'fp-ts/Array'\n *\n * const numShow = { show: (n: number) => (n >= 0 ? `${n}` : `(${-n})`) };\n * assert.deepStrictEqual(getShow(numShow).show([-2, -1, 0, 1]), \"[(2), (1), 0, 1]\");\n *\n * @category instances\n * @since 2.0.0\n */\n\nexport var getShow = RA.getShow;\n/**\n * Get a `Semigroup` based on the concatenation of `Array`s.\n * See also [`getMonoid`](#getMonoid).\n *\n * @example\n * import { getSemigroup } from 'fp-ts/Array'\n *\n * const S = getSemigroup();\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 2, 3]);\n *\n * @category instances\n * @since 2.10.0\n */\n\nexport var getSemigroup = function getSemigroup() {\n return {\n concat: function concat(first, second) {\n return first.concat(second);\n }\n };\n};\n/**\n * Returns a `Monoid` for `Array` based on the concatenation of `Array`s.\n *\n * @example\n * import { getMonoid } from 'fp-ts/Array'\n *\n * const M = getMonoid()\n * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4])\n *\n * @category instances\n * @since 2.0.0\n */\n\nexport var getMonoid = function getMonoid() {\n return {\n concat: getSemigroup().concat,\n empty: []\n };\n};\n/**\n * Derives an `Eq` over the `Array` of a given element type from the `Eq` of that type. The derived `Eq` defines two\n * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of\n * different lengths, the result is non equality.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { getEq } from 'fp-ts/Array'\n *\n * const E = getEq(S.Eq)\n * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true)\n * assert.strictEqual(E.equals(['a'], []), false)\n *\n * @category instances\n * @since 2.0.0\n */\n\nexport var getEq = RA.getEq;\n/**\n * Derives an `Ord` over the `Array` of a given element type from the `Ord` of that type. The ordering between two such\n * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in\n * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have\n * the same length, the result is equality.\n *\n * @example\n * import { getOrd } from 'fp-ts/Array'\n * import * as S from 'fp-ts/string'\n *\n * const O = getOrd(S.Ord)\n * assert.strictEqual(O.compare(['b'], ['a']), 1)\n * assert.strictEqual(O.compare(['a'], ['a']), 0)\n * assert.strictEqual(O.compare(['a'], ['b']), -1)\n *\n * @category instances\n * @since 2.0.0\n */\n\nexport var getOrd = RA.getOrd;\n/**\n * Get a `Semigroup` based on the union of the elements of `Array`s.\n * Elements which equal according to the provided `Eq` are included\n * only once in the result.\n * See also [`getUnionMonoid`](#getUnionMonoid).\n *\n * @example\n * import { getUnionSemigroup } from 'fp-ts/Array';\n * import { Eq } from 'fp-ts/number';\n *\n * const S = getUnionSemigroup(Eq);\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 3]);\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getUnionSemigroup = function getUnionSemigroup(E) {\n var unionE = union(E);\n return {\n concat: function concat(first, second) {\n return unionE(second)(first);\n }\n };\n};\n/**\n * Get a `Monoid` based on the union of the elements of `Array`s.\n * Elements which equal according to the provided `Eq` are included\n * only once in the result.\n *\n * @example\n * import { getUnionMonoid } from 'fp-ts/Array'\n * import { Eq } from 'fp-ts/number';\n *\n * const M = getUnionMonoid(Eq);\n * assert.deepStrictEqual(M.concat([1, 2], [2, 3]), [1, 2, 3]);\n * assert.deepStrictEqual(M.empty,[]);\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getUnionMonoid = function getUnionMonoid(E) {\n return {\n concat: getUnionSemigroup(E).concat,\n empty: []\n };\n};\n/**\n * Get a `Semigroup` based on the intersection of the elements of `Array`s.\n * Only elements present in the two arrays which are equal according to the\n * provided `Eq` are included in the result.\n *\n * @example\n * import { getIntersectionSemigroup } from 'fp-ts/Array'\n * import { Eq } from 'fp-ts/number';\n *\n * const S = getIntersectionSemigroup(Eq);\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [2]);\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getIntersectionSemigroup = function getIntersectionSemigroup(E) {\n var intersectionE = intersection(E);\n return {\n concat: function concat(first, second) {\n return intersectionE(second)(first);\n }\n };\n};\n/**\n * Get a `Magma` for `Array` where the `concat` function is the differnce between\n * the first and the second array, i.e. the result contains all the elements of the\n * first array for which their is no equal element in the second array according\n * to the `Eq` provided.\n *\n *\n * @example\n * import { getDifferenceMagma } from 'fp-ts/Array'\n * import { Eq } from 'fp-ts/number';\n *\n * const S = getDifferenceMagma(Eq);\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1]);\n *\n * @category instances\n * @since 2.11.0\n */\n\nexport var getDifferenceMagma = function getDifferenceMagma(E) {\n var differenceE = difference(E);\n return {\n concat: function concat(first, second) {\n return differenceE(second)(first);\n }\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Given an input an `Array` of functions, `flap` returns an `Array` containing\n * the results of applying each function to the given input.\n *\n * @example\n * import { flap } from 'fp-ts/Array'\n *\n * const funs = [\n * (n: number) => `Double: ${n * 2}`,\n * (n: number) => `Triple: ${n * 3}`,\n * (n: number) => `Square: ${n * n}`,\n * ];\n * assert.deepStrictEqual(flap(4)(funs), ['Double: 8', 'Triple: 12', 'Square: 16']);\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var flap = /*#__PURE__*/flap_(Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var FunctorWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Apply = {\n URI: URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * Derivable from `Apply`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var apFirst = /*#__PURE__*/apFirst_(Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * Derivable from `Apply`.\n *\n * @category combinators\n * @since 2.5.0\n */\n\nexport var apSecond = /*#__PURE__*/apSecond_(Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\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 */\n\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\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 * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var chainFirst = /*#__PURE__*/chainFirst_(Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Unfoldable = {\n URI: URI,\n unfold: unfold\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Alt = {\n URI: URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var Zero = {\n URI: URI,\n zero: zero\n};\n/**\n * @category constructors\n * @since 2.11.0\n */\n\nexport var guard = /*#__PURE__*/guard_(Zero, Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\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 * @category instances\n * @since 2.7.0\n */\n\nexport var Extend = {\n URI: URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Compactable = {\n URI: URI,\n compact: compact,\n separate: separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\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 instances\n * @since 2.7.0\n */\n\nexport var FilterableWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Foldable = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var FoldableWithIndex = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\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 * @category instances\n * @since 2.7.0\n */\n\nexport var TraversableWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverse: _traverse,\n sequence: sequence,\n traverseWithIndex: _traverseWithIndex\n};\n\nvar _wither = /*#__PURE__*/witherDefault(Traversable, Compactable);\n\nvar _wilt = /*#__PURE__*/wiltDefault(Traversable, Compactable);\n/**\n * @category instances\n * @since 2.7.0\n */\n\n\nexport var Witherable = {\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 reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * @category ChainRec\n * @since 2.11.0\n */\n\nexport var chainRecDepthFirst = RA.chainRecDepthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var ChainRecDepthFirst = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: _chainRecDepthFirst\n};\n/**\n * @category ChainRec\n * @since 2.11.0\n */\n\nexport var chainRecBreadthFirst = RA.chainRecBreadthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var ChainRecBreadthFirst = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: _chainRecBreadthFirst\n};\n/**\n * Filter values inside a context.\n *\n * @since 2.11.0\n */\n\nexport var filterE = /*#__PURE__*/filterE_(Witherable);\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var FromEither = {\n URI: URI,\n fromEither: fromEither\n};\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var fromEitherK = /*#__PURE__*/fromEitherK_(FromEither); // -------------------------------------------------------------------------------------\n// unsafe\n// -------------------------------------------------------------------------------------\n\n/**\n * @category unsafe\n * @since 2.0.0\n */\n\nexport var unsafeInsertAt = NEA.unsafeInsertAt;\n/**\n * @category unsafe\n * @since 2.0.0\n */\n\nexport var unsafeUpdateAt = function unsafeUpdateAt(i, a, as) {\n return isNonEmpty(as) ? NEA.unsafeUpdateAt(i, a, as) : [];\n};\n/**\n * @category unsafe\n * @since 2.0.0\n */\n\nexport var unsafeDeleteAt = function unsafeDeleteAt(i, as) {\n var xs = as.slice();\n xs.splice(i, 1);\n return xs;\n}; // -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n\n/**\n * `every` tells if the provided predicate holds true for every element in the `Array`.\n *\n * @example\n * import { every } from 'fp-ts/Array'\n *\n * assert.equal(every((x: number) => x >= 0)([1, 2, 3]), true);\n * assert.equal(every((x: number) => x >= 0)([-1, 2, 3]), false);\n *\n * @since 2.9.0\n */\n\nexport var every = RA.every;\n/**\n * `some` tells if the provided predicate holds true at least for one element in the `Array`.\n *\n * @example\n * import { some } from 'fp-ts/Array'\n *\n * assert.equal(some((x: number) => x >= 0)([1, 2, 3]), true);\n * assert.equal(some((x: number) => x >= 10)([1, 2, 3]), false);\n *\n * @since 2.9.0\n */\n\nexport var some = function some(predicate) {\n return function (as) {\n return as.some(predicate);\n };\n};\n/**\n * Alias of [`some`](#some)\n *\n * @since 2.11.0\n */\n\nexport var exists = some; // -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.9.0\n */\n\nexport var Do = /*#__PURE__*/of(_.emptyRecord);\n/**\n * @since 2.8.0\n */\n\nexport var bindTo = /*#__PURE__*/bindTo_(Functor);\n/**\n * @since 2.8.0\n */\n\nexport var bind = /*#__PURE__*/bind_(Chain); // -------------------------------------------------------------------------------------\n// pipeable sequence S\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.8.0\n */\n\nexport var apS = /*#__PURE__*/apS_(Apply); // -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n// tslint:disable: deprecation\n\n/**\n * Use `NonEmptyArray` module instead.\n *\n * @category constructors\n * @since 2.0.0\n * @deprecated\n */\n\nexport var range = NEA.range;\n/**\n * Use a new `[]` instead.\n *\n * @since 2.0.0\n * @deprecated\n */\n\nexport var empty = [];\n/**\n * Use `prepend` instead.\n *\n * @category constructors\n * @since 2.0.0\n * @deprecated\n */\n\nexport var cons = NEA.cons;\n/**\n * Use `append` instead.\n *\n * @category constructors\n * @since 2.0.0\n * @deprecated\n */\n\nexport var snoc = NEA.snoc;\n/**\n * Use `prependAll` instead\n *\n * @category combinators\n * @since 2.9.0\n * @deprecated\n */\n\nexport var prependToAll = prependAll;\n/**\n * Use small, specific instances instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var array = {\n URI: URI,\n compact: compact,\n separate: separate,\n map: _map,\n ap: _ap,\n of: of,\n chain: _chain,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n mapWithIndex: _mapWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n alt: _alt,\n zero: zero,\n unfold: unfold,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n extend: _extend,\n wither: _wither,\n wilt: _wilt\n};","for (var r = [], o = 0; o < 64;) {\n r[o] = 0 | 4294967296 * Math.sin(++o % Math.PI);\n}\n\nexport default function (t) {\n var e,\n f,\n n,\n a = [e = 1732584193, f = 4023233417, ~e, ~f],\n c = [],\n h = unescape(encodeURI(t)) + \"€\",\n u = h.length;\n\n for (t = --u / 4 + 2 | 15, c[--t] = 8 * u; ~u;) {\n c[u >> 2] |= h.charCodeAt(u) << 8 * u--;\n }\n\n for (o = h = 0; o < t; o += 16) {\n for (u = a; h < 64; u = [n = u[3], e + ((n = u[0] + [e & f | ~e & n, n & e | ~n & f, e ^ f ^ n, f ^ (e | ~n)][u = h >> 4] + r[h] + ~~c[o | 15 & [h, 5 * h + 1, 3 * h + 5, 7 * h][u]]) << (u = [7, 12, 17, 22, 5, 9, 14, 20, 4, 11, 16, 23, 6, 10, 15, 21][4 * u + h++ % 4]) | n >>> -u), e, f]) {\n e = 0 | u[1], f = u[2];\n }\n\n for (h = 4; h;) {\n a[--h] += u[h];\n }\n }\n\n for (t = \"\"; h < 32;) {\n t += (a[h >> 3] >> 4 * (1 ^ h++) & 15).toString(16);\n }\n\n return t;\n}","/**\n * Exports in this file are provided only for use in Gatsby plugins related to\n * `gatsby-source-prismic`.\n *\n * These exports are intended only for internal use and should be considered\n * unstable.\n */\n\nexport * from './types'\nexport * from './constants'\n","function toVal(mix) {\n var k,\n y,\n str = '';\n\n if (typeof mix === 'string' || typeof mix === 'number') {\n str += mix;\n } else if (typeof mix === 'object') {\n if (Array.isArray(mix)) {\n for (k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (y = toVal(mix[k])) {\n str && (str += ' ');\n str += y;\n }\n }\n }\n } else {\n for (k in mix) {\n if (mix[k]) {\n str && (str += ' ');\n str += k;\n }\n }\n }\n }\n\n return str;\n}\n\nexport default function () {\n var i = 0,\n tmp,\n x,\n str = '';\n\n while (i < arguments.length) {\n if (tmp = arguments[i++]) {\n if (x = toVal(tmp)) {\n str && (str += ' ');\n str += x;\n }\n }\n }\n\n return str;\n}","function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\n\nexport { canUseDOM };","import { useLayoutEffect, useEffect } from 'react';\nimport { canUseDOM } from '../../can-use-dom/dist/reach-utils-can-use-dom.esm.js';\n/**\n * React currently throws a warning when using useLayoutEffect on the server. To\n * get around it, we can conditionally useEffect on the server (no-op) and\n * useLayoutEffect in the browser. We occasionally need useLayoutEffect to\n * ensure we don't get a render flash for certain operations, but we may also\n * need affected components to render on the server. One example is when setting\n * a component's descendants to retrieve their index values.\n *\n * Important to note that using this hook as an escape hatch will break the\n * eslint dependency warnings unless you rename the import to `useLayoutEffect`.\n * Use sparingly only when the effect won't effect the rendered HTML to avoid\n * any server/client mismatch.\n *\n * If a useLayoutEffect is needed and the result would create a mismatch, it's\n * likely that the component in question shouldn't be rendered on the server at\n * all, so a better approach would be to lazily render those in a parent\n * component after client-side hydration.\n *\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\n *\n * @param effect\n * @param deps\n */\n\nvar useIsomorphicLayoutEffect = /*#__PURE__*/canUseDOM() ? useLayoutEffect : useEffect;\nexport { useIsomorphicLayoutEffect };","import { useRef, createElement } from 'react';\nimport { useIsomorphicLayoutEffect } from '@reach/utils/use-isomorphic-layout-effect';\nimport { useForceUpdate } from '@reach/utils/use-force-update';\nimport { createPortal } from 'react-dom';\n/**\n * Welcome to @reach/portal!\n *\n * Creates and appends a DOM node to the end of `document.body` and renders a\n * React tree into it. Useful for rendering a natural React element hierarchy\n * with a different DOM hierarchy to prevent parent styles from clipping or\n * hiding content (for popovers, dropdowns, and modals).\n *\n * @see Docs https://reach.tech/portal\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/portal\n * @see React https://reactjs.org/docs/portals.html\n */\n\n/**\n * Portal\n *\n * @see Docs https://reach.tech/portal#portal\n */\n\nvar Portal = function Portal(_ref) {\n var children = _ref.children,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? \"reach-portal\" : _ref$type;\n var mountNode = useRef(null);\n var portalNode = useRef(null);\n var forceUpdate = useForceUpdate();\n useIsomorphicLayoutEffect(function () {\n // This ref may be null when a hot-loader replaces components on the page\n if (!mountNode.current) return; // It's possible that the content of the portal has, itself, been portaled.\n // In that case, it's important to append to the correct document element.\n\n var ownerDocument = mountNode.current.ownerDocument;\n portalNode.current = ownerDocument == null ? void 0 : ownerDocument.createElement(type);\n ownerDocument.body.appendChild(portalNode.current);\n forceUpdate();\n return function () {\n if (portalNode.current && portalNode.current.ownerDocument) {\n portalNode.current.ownerDocument.body.removeChild(portalNode.current);\n }\n };\n }, [type, forceUpdate]);\n return portalNode.current ? /*#__PURE__*/createPortal(children, portalNode.current) : /*#__PURE__*/createElement(\"span\", {\n ref: mountNode\n });\n};\n/**\n * @see Docs https://reach.tech/portal#portal-props\n */\n\n\nif (process.env.NODE_ENV !== \"production\") {\n Portal.displayName = \"Portal\";\n} ////////////////////////////////////////////////////////////////////////////////\n\n\nexport default Portal;\nexport { Portal };","import { useState, useCallback } from 'react';\n/**\n * Forces a re-render, similar to `forceUpdate` in class components.\n */\n\nfunction useForceUpdate() {\n var _useState = useState(Object.create(null)),\n dispatch = _useState[1];\n\n return useCallback(function () {\n dispatch(Object.create(null));\n }, []);\n}\n\nexport { useForceUpdate };","import { canUseDOM } from '../../can-use-dom/dist/reach-utils-can-use-dom.esm.js';\n/**\n * Get an element's owner document. Useful when components are used in iframes\n * or other environments like dev tools.\n *\n * @param element\n */\n\nfunction getOwnerDocument(element) {\n return canUseDOM() ? element ? element.ownerDocument : document : null;\n}\n/**\n * TODO: Remove in 1.0\n */\n\n\nfunction getOwnerWindow(element) {\n var ownerDocument = getOwnerDocument(element);\n return ownerDocument ? ownerDocument.defaultView || window : null;\n}\n\nexport { getOwnerDocument, getOwnerWindow };","function noop() {}\n\nexport { noop };","import { useCallback } from 'react';\nimport { isFunction } from '../../type-check/dist/reach-utils-type-check.esm.js';\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++) {\n arr2[i] = arr[i];\n }\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 * Passes or assigns an arbitrary value to a ref function or object.\n *\n * @param ref\n * @param value\n */\n\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\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 * 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\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\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\n\nfunction isString(value) {\n return typeof value === \"string\";\n}\n\nexport { isBoolean, isFunction, isNumber, isString };","/**\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 };","export var FOCUS_GROUP = 'data-focus-lock';\nexport var FOCUS_DISABLED = 'data-focus-lock-disabled';\nexport var FOCUS_ALLOW = 'data-no-focus-lock';\nexport var FOCUS_AUTO = 'data-autofocus-inside';","import { useCallbackRef } from './useRef';\nimport { assignRef } from './assignRef';\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 */\n\nexport function useMergeRefs(refs, defaultValue) {\n return useCallbackRef(defaultValue, function (newValue) {\n return refs.forEach(function (ref) {\n return assignRef(ref, newValue);\n });\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 */\n\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () {\n 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\n set current(value) {\n var last = ref.value;\n\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n }\n\n }\n };\n })[0]; // update callback\n\n ref.callback = callback;\n return ref.facade;\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 } else if (ref) {\n ref.current = value;\n }\n\n return ref;\n}","import * as React from 'react';\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};\n\nvar InFocusGuard = function InFocusGuard(_ref) {\n var children = _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};\n\nInFocusGuard.defaultProps = {\n children: null\n};\nexport default InFocusGuard;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","import * as tslib_1 from \"tslib\";\n\nfunction ItoI(a) {\n return a;\n}\n\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) {\n middleware = ItoI;\n }\n\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function read() {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n\n return defaults;\n },\n useMedium: function useMedium(data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) {\n return x !== item;\n });\n };\n },\n assignSyncMedium: function assignSyncMedium(cb) {\n assigned = true;\n\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n\n buffer = {\n push: function push(x) {\n return cb(x);\n },\n filter: function filter() {\n return buffer;\n }\n };\n },\n assignMedium: function assignMedium(cb) {\n assigned = true;\n var pendingQueue = [];\n\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n\n var executeQueue = function executeQueue() {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n\n var cycle = function cycle() {\n return Promise.resolve().then(executeQueue);\n };\n\n cycle();\n buffer = {\n push: function push(x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function filter(_filter) {\n pendingQueue = pendingQueue.filter(_filter);\n return buffer;\n }\n };\n }\n };\n return medium;\n}\n\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) {\n middleware = ItoI;\n }\n\n return innerCreateMedium(defaults, middleware);\n}\nexport function createSidecarMedium(options) {\n if (options === void 0) {\n options = {};\n }\n\n var medium = innerCreateMedium(null);\n medium.options = tslib_1.__assign({\n async: true,\n ssr: false\n }, options);\n return medium;\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});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport * as constants from 'focus-lock/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { useEffect } from 'react';\nimport { hiddenGuard } from './FocusGuard';\nimport { mediumFocus, mediumBlur, mediumSidecar } from './medium';\nvar emptyArray = [];\nvar FocusLock = /*#__PURE__*/React.forwardRef(function FocusLockUI(props, parentRef) {\n var _extends2;\n\n var _React$useState = React.useState(),\n realObserved = _React$useState[0],\n setObserved = _React$useState[1];\n\n var observed = React.useRef();\n var isActive = React.useRef(false);\n var originalFocusedElement = React.useRef(null);\n var children = props.children,\n disabled = props.disabled,\n noFocusGuards = props.noFocusGuards,\n persistentFocus = props.persistentFocus,\n crossFrame = props.crossFrame,\n autoFocus = 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 shouldReturnFocus = props.returnFocus,\n focusOptions = props.focusOptions,\n onActivationCallback = props.onActivation,\n onDeactivationCallback = props.onDeactivation;\n\n var _React$useState2 = React.useState({}),\n id = _React$useState2[0]; // SIDE EFFECT CALLBACKS\n\n\n var onActivation = React.useCallback(function () {\n originalFocusedElement.current = originalFocusedElement.current || document && document.activeElement;\n\n if (observed.current && onActivationCallback) {\n onActivationCallback(observed.current);\n }\n\n isActive.current = true;\n }, [onActivationCallback]);\n var onDeactivation = React.useCallback(function () {\n isActive.current = false;\n\n if (onDeactivationCallback) {\n onDeactivationCallback(observed.current);\n }\n }, [onDeactivationCallback]);\n useEffect(function () {\n if (!disabled) {\n // cleanup return focus on trap deactivation\n // sideEffect/returnFocus should happen by this time\n originalFocusedElement.current = null;\n }\n }, []);\n var returnFocus = React.useCallback(function (allowDefer) {\n var returnFocusTo = originalFocusedElement.current;\n\n if (returnFocusTo && returnFocusTo.focus) {\n var howToReturnFocus = typeof shouldReturnFocus === 'function' ? shouldReturnFocus(returnFocusTo) : shouldReturnFocus;\n\n if (howToReturnFocus) {\n var returnFocusOptions = typeof howToReturnFocus === 'object' ? howToReturnFocus : undefined;\n originalFocusedElement.current = null;\n\n if (allowDefer) {\n // React might return focus after update\n // it's safer to defer the action\n Promise.resolve().then(function () {\n return returnFocusTo.focus(returnFocusOptions);\n });\n } else {\n returnFocusTo.focus(returnFocusOptions);\n }\n }\n }\n }, [shouldReturnFocus]); // MEDIUM CALLBACKS\n\n var onFocus = React.useCallback(function (event) {\n if (isActive.current) {\n mediumFocus.useMedium(event);\n }\n }, []);\n var onBlur = mediumBlur.useMedium; // REF PROPAGATION\n // not using real refs due to race conditions\n\n var setObserveNode = React.useCallback(function (newObserved) {\n if (observed.current !== newObserved) {\n observed.current = newObserved;\n setObserved(newObserved);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof allowTextSelection !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn('React-Focus-Lock: allowTextSelection is deprecated and enabled by default');\n }\n\n React.useEffect(function () {\n if (!observed.current) {\n // eslint-disable-next-line no-console\n console.error('FocusLock: could not obtain ref to internal node');\n }\n }, []);\n }\n\n var lockProps = _extends((_extends2 = {}, _extends2[constants.FOCUS_DISABLED] = disabled && 'disabled', _extends2[constants.FOCUS_GROUP] = group, _extends2), containerProps);\n\n var hasLeadingGuards = noFocusGuards !== true;\n var hasTailingGuards = hasLeadingGuards && noFocusGuards !== 'tail';\n var mergedRef = useMergeRefs([parentRef, setObserveNode]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, hasLeadingGuards && [\n /*#__PURE__*/\n // nearest focus guard\n React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }), // first tabbed element guard\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 }), /*#__PURE__*/React.createElement(Container, _extends({\n ref: mergedRef\n }, lockProps, {\n className: className,\n onBlur: onBlur,\n onFocus: onFocus\n }), children), hasTailingGuards && /*#__PURE__*/React.createElement(\"div\", {\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }));\n});\nFocusLock.defaultProps = {\n children: undefined,\n disabled: false,\n returnFocus: false,\n focusOptions: undefined,\n noFocusGuards: false,\n autoFocus: true,\n persistentFocus: false,\n crossFrame: true,\n hasPositiveIndices: undefined,\n allowTextSelection: undefined,\n group: undefined,\n className: undefined,\n whiteList: undefined,\n shards: undefined,\n as: 'div',\n lockProps: {},\n onActivation: undefined,\n onDeactivation: undefined\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 } // Try to use displayName of wrapped component\n\n\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;","var isElementHidden = function isElementHidden(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n\n var computedStyle = window.getComputedStyle(node, null);\n\n if (!computedStyle || !computedStyle.getPropertyValue) {\n return false;\n }\n\n return computedStyle.getPropertyValue('display') === 'none' || computedStyle.getPropertyValue('visibility') === 'hidden';\n};\n\nvar isVisibleUncached = function isVisibleUncached(node, checkParent) {\n return !node || node === document || node && node.nodeType === Node.DOCUMENT_NODE || !isElementHidden(node) && checkParent(node.parentNode && node.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? node.parentNode.host : node.parentNode);\n};\n\nexport var isVisibleCached = function isVisibleCached(visibilityCache, node) {\n var cached = visibilityCache.get(node);\n\n if (cached !== undefined) {\n return cached;\n }\n\n var result = isVisibleUncached(node, isVisibleCached.bind(undefined, visibilityCache));\n visibilityCache.set(node, result);\n return result;\n};\nexport var getDataset = function getDataset(node) {\n return node.dataset;\n};\nexport var isHTMLButtonElement = function isHTMLButtonElement(node) {\n return node.tagName === 'BUTTON';\n};\nexport var isHTMLInputElement = function isHTMLInputElement(node) {\n return node.tagName === 'INPUT';\n};\nexport var isRadioElement = function isRadioElement(node) {\n return isHTMLInputElement(node) && node.type === 'radio';\n};\nexport var notHiddenInput = function notHiddenInput(node) {\n return !((isHTMLInputElement(node) || isHTMLButtonElement(node)) && (node.type === 'hidden' || node.disabled)) && !node.ariaDisabled;\n};\nexport var isGuard = function isGuard(node) {\n var _a;\n\n return Boolean(node && ((_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.focusGuard));\n};\nexport var isNotAGuard = function isNotAGuard(node) {\n return !isGuard(node);\n};\nexport var isDefined = function isDefined(x) {\n return Boolean(x);\n};","import { isRadioElement } from './is';\n\nvar findSelectedRadio = function findSelectedRadio(node, nodes) {\n return nodes.filter(isRadioElement).filter(function (el) {\n return el.name === node.name;\n }).filter(function (el) {\n return el.checked;\n })[0] || node;\n};\n\nexport var correctNode = function correctNode(node, nodes) {\n if (isRadioElement(node) && node.name) {\n return findSelectedRadio(node, nodes);\n }\n\n return node;\n};\nexport var correctNodes = function correctNodes(nodes) {\n var resultSet = new Set();\n nodes.forEach(function (node) {\n return resultSet.add(correctNode(node, nodes));\n });\n return nodes.filter(function (node) {\n return resultSet.has(node);\n });\n};","import { correctNode } from './correctFocus';\nexport var pickFirstFocus = function pickFirstFocus(nodes) {\n if (nodes[0] && nodes.length > 1) {\n return correctNode(nodes[0], nodes);\n }\n\n return nodes[0];\n};\nexport var pickFocusable = function pickFocusable(nodes, index) {\n if (nodes.length > 1) {\n return nodes.indexOf(correctNode(nodes[index], nodes));\n }\n\n return index;\n};","import { correctNodes } from './utils/correctFocus';\nimport { pickFocusable } from './utils/firstFocus';\nimport { isGuard } from './utils/is';\nexport var NEW_FOCUS = 'NEW_FOCUS';\nexport var newFocus = function newFocus(innerNodes, outerNodes, activeElement, lastNode) {\n var cnt = innerNodes.length;\n var firstFocus = innerNodes[0];\n var lastFocus = innerNodes[cnt - 1];\n var isOnGuard = isGuard(activeElement);\n\n if (activeElement && innerNodes.indexOf(activeElement) >= 0) {\n return undefined;\n }\n\n var activeIndex = activeElement !== undefined ? outerNodes.indexOf(activeElement) : -1;\n var lastIndex = lastNode ? outerNodes.indexOf(lastNode) : activeIndex;\n var lastNodeInside = lastNode ? innerNodes.indexOf(lastNode) : -1;\n var indexDiff = activeIndex - lastIndex;\n var firstNodeIndex = outerNodes.indexOf(firstFocus);\n var lastNodeIndex = outerNodes.indexOf(lastFocus);\n var correctedNodes = correctNodes(outerNodes);\n var correctedIndex = activeElement !== undefined ? correctedNodes.indexOf(activeElement) : -1;\n var correctedIndexDiff = correctedIndex - (lastNode ? correctedNodes.indexOf(lastNode) : activeIndex);\n var returnFirstNode = pickFocusable(innerNodes, 0);\n var returnLastNode = pickFocusable(innerNodes, cnt - 1);\n\n if (activeIndex === -1 || lastNodeInside === -1) {\n return NEW_FOCUS;\n }\n\n if (!indexDiff && lastNodeInside >= 0) {\n return lastNodeInside;\n }\n\n if (activeIndex <= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnLastNode;\n }\n\n if (activeIndex >= lastNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnFirstNode;\n }\n\n if (indexDiff && Math.abs(correctedIndexDiff) > 1) {\n return lastNodeInside;\n }\n\n if (activeIndex <= firstNodeIndex) {\n return returnLastNode;\n }\n\n if (activeIndex > lastNodeIndex) {\n return returnFirstNode;\n }\n\n if (indexDiff) {\n if (Math.abs(indexDiff) > 1) {\n return lastNodeInside;\n }\n\n return (cnt + lastNodeInside + indexDiff) % cnt;\n }\n\n return undefined;\n};","export var toArray = function toArray(a) {\n var ret = Array(a.length);\n\n for (var i = 0; i < a.length; ++i) {\n ret[i] = a[i];\n }\n\n return ret;\n};\nexport var asArray = function asArray(a) {\n return Array.isArray(a) ? a : [a];\n};","import { toArray } from './array';\nexport var tabSort = function tabSort(a, b) {\n var tabDiff = a.tabIndex - b.tabIndex;\n var indexDiff = a.index - b.index;\n\n if (tabDiff) {\n if (!a.tabIndex) {\n return 1;\n }\n\n if (!b.tabIndex) {\n return -1;\n }\n }\n\n return tabDiff || indexDiff;\n};\nexport var orderByTabIndex = function orderByTabIndex(nodes, filterNegative, keepGuards) {\n return toArray(nodes).map(function (node, index) {\n return {\n node: node,\n index: index,\n tabIndex: keepGuards && node.tabIndex === -1 ? (node.dataset || {}).focusGuard ? 0 : -1 : node.tabIndex\n };\n }).filter(function (data) {\n return !filterNegative || data.tabIndex >= 0;\n }).sort(tabSort);\n};","import { FOCUS_AUTO } from '../constants';\nimport { toArray } from './array';\nimport { tabbables } from './tabbables';\nvar queryTabbables = tabbables.join(',');\nvar queryGuardTabbables = \"\".concat(queryTabbables, \", [data-focus-guard]\");\nexport var getFocusables = function getFocusables(parents, withGuards) {\n return parents.reduce(function (acc, parent) {\n return acc.concat(toArray(parent.querySelectorAll(withGuards ? queryGuardTabbables : queryTabbables)), parent.parentNode ? toArray(parent.parentNode.querySelectorAll(queryTabbables)).filter(function (node) {\n return node === parent;\n }) : []);\n }, []);\n};\nexport var getParentAutofocusables = function getParentAutofocusables(parent) {\n var parentFocus = parent.querySelectorAll(\"[\".concat(FOCUS_AUTO, \"]\"));\n return toArray(parentFocus).map(function (node) {\n return getFocusables([node]);\n }).reduce(function (acc, nodes) {\n return acc.concat(nodes);\n }, []);\n};","export var tabbables = ['button:enabled', 'select:enabled', 'textarea:enabled', 'input:enabled', 'a[href]', 'area[href]', 'summary', 'iframe', 'object', 'embed', 'audio[controls]', 'video[controls]', '[tabindex]', '[contenteditable]', '[autofocus]'];","import { toArray } from './array';\nimport { isVisibleCached, notHiddenInput } from './is';\nimport { orderByTabIndex } from './tabOrder';\nimport { getFocusables, getParentAutofocusables } from './tabUtils';\nexport var filterFocusable = function filterFocusable(nodes, visibilityCache) {\n return toArray(nodes).filter(function (node) {\n return isVisibleCached(visibilityCache, node);\n }).filter(function (node) {\n return notHiddenInput(node);\n });\n};\nexport var getTabbableNodes = function getTabbableNodes(topNodes, visibilityCache, withGuards) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes, withGuards), visibilityCache), true, withGuards);\n};\nexport var getAllTabbableNodes = function getAllTabbableNodes(topNodes, visibilityCache) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes), visibilityCache), false);\n};\nexport var parentAutofocusables = function parentAutofocusables(topNode, visibilityCache) {\n return filterFocusable(getParentAutofocusables(topNode), visibilityCache);\n};","import { FOCUS_DISABLED, FOCUS_GROUP } from '../constants';\nimport { asArray, toArray } from './array';\n\nvar filterNested = function filterNested(nodes) {\n var contained = new Set();\n var l = nodes.length;\n\n for (var i = 0; i < l; i += 1) {\n for (var j = i + 1; j < l; j += 1) {\n var position = nodes[i].compareDocumentPosition(nodes[j]);\n\n if ((position & Node.DOCUMENT_POSITION_CONTAINED_BY) > 0) {\n contained.add(j);\n }\n\n if ((position & Node.DOCUMENT_POSITION_CONTAINS) > 0) {\n contained.add(i);\n }\n }\n }\n\n return nodes.filter(function (_, index) {\n return !contained.has(index);\n });\n};\n\nvar getTopParent = function getTopParent(node) {\n return node.parentNode ? getTopParent(node.parentNode) : node;\n};\n\nexport var getAllAffectedNodes = function getAllAffectedNodes(node) {\n var nodes = asArray(node);\n return nodes.filter(Boolean).reduce(function (acc, currentNode) {\n var group = currentNode.getAttribute(FOCUS_GROUP);\n acc.push.apply(acc, group ? filterNested(toArray(getTopParent(currentNode).querySelectorAll(\"[\".concat(FOCUS_GROUP, \"=\\\"\").concat(group, \"\\\"]:not([\").concat(FOCUS_DISABLED, \"=\\\"disabled\\\"])\")))) : [currentNode]);\n return acc;\n }, []);\n};","export var getActiveElement = function getActiveElement() {\n return document.activeElement ? document.activeElement.shadowRoot ? document.activeElement.shadowRoot.activeElement : document.activeElement : undefined;\n};","import { parentAutofocusables } from './DOMutils';\nimport { asArray } from './array';\n\nvar getParents = function getParents(node, parents) {\n if (parents === void 0) {\n parents = [];\n }\n\n parents.push(node);\n\n if (node.parentNode) {\n getParents(node.parentNode, parents);\n }\n\n return parents;\n};\n\nexport var getCommonParent = function getCommonParent(nodeA, nodeB) {\n var parentsA = getParents(nodeA);\n var parentsB = getParents(nodeB);\n\n for (var i = 0; i < parentsA.length; i += 1) {\n var currentParent = parentsA[i];\n\n if (parentsB.indexOf(currentParent) >= 0) {\n return currentParent;\n }\n }\n\n return false;\n};\nexport var getTopCommonParent = function getTopCommonParent(baseActiveElement, leftEntry, rightEntries) {\n var activeElements = asArray(baseActiveElement);\n var leftEntries = asArray(leftEntry);\n var activeElement = activeElements[0];\n var topCommon = false;\n leftEntries.filter(Boolean).forEach(function (entry) {\n topCommon = getCommonParent(topCommon || entry, entry) || topCommon;\n rightEntries.filter(Boolean).forEach(function (subEntry) {\n var common = getCommonParent(activeElement, subEntry);\n\n if (common) {\n if (!topCommon || common.contains(topCommon)) {\n topCommon = common;\n } else {\n topCommon = getCommonParent(common, topCommon);\n }\n }\n });\n });\n return topCommon;\n};\nexport var allParentAutofocusables = function allParentAutofocusables(entries, visibilityCache) {\n return entries.reduce(function (acc, node) {\n return acc.concat(parentAutofocusables(node, visibilityCache));\n }, []);\n};","import { NEW_FOCUS, newFocus } from './solver';\nimport { getAllTabbableNodes, getTabbableNodes } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { pickFirstFocus } from './utils/firstFocus';\nimport { getActiveElement } from './utils/getActiveElement';\nimport { getDataset, isDefined, isNotAGuard } from './utils/is';\nimport { allParentAutofocusables, getTopCommonParent } from './utils/parenting';\n\nvar findAutoFocused = function findAutoFocused(autoFocusables) {\n return function (node) {\n var _a;\n\n return node.autofocus || !!((_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.autofocus) || autoFocusables.indexOf(node) >= 0;\n };\n};\n\nvar reorderNodes = function reorderNodes(srcNodes, dstNodes) {\n var remap = new Map();\n dstNodes.forEach(function (entity) {\n return remap.set(entity.node, entity);\n });\n return srcNodes.map(function (node) {\n return remap.get(node);\n }).filter(isDefined);\n};\n\nexport var getFocusMerge = function getFocusMerge(topNode, lastNode) {\n var activeElement = document && getActiveElement();\n var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n var commonParent = getTopCommonParent(activeElement || topNode, topNode, entries);\n var visibilityCache = new Map();\n var anyFocusable = getAllTabbableNodes(entries, visibilityCache);\n var innerElements = getTabbableNodes(entries, visibilityCache).filter(function (_a) {\n var node = _a.node;\n return isNotAGuard(node);\n });\n\n if (!innerElements[0]) {\n innerElements = anyFocusable;\n\n if (!innerElements[0]) {\n return undefined;\n }\n }\n\n var outerNodes = getAllTabbableNodes([commonParent], visibilityCache).map(function (_a) {\n var node = _a.node;\n return node;\n });\n var orderedInnerElements = reorderNodes(outerNodes, innerElements);\n var innerNodes = orderedInnerElements.map(function (_a) {\n var node = _a.node;\n return node;\n });\n var newId = newFocus(innerNodes, outerNodes, activeElement, lastNode);\n\n if (newId === NEW_FOCUS) {\n var autoFocusable = anyFocusable.map(function (_a) {\n var node = _a.node;\n return node;\n }).filter(findAutoFocused(allParentAutofocusables(entries, visibilityCache)));\n return {\n node: autoFocusable && autoFocusable.length ? pickFirstFocus(autoFocusable) : pickFirstFocus(innerNodes)\n };\n }\n\n if (newId === undefined) {\n return newId;\n }\n\n return orderedInnerElements[newId];\n};","import { getFocusMerge } from './focusMerge';\nexport var focusOn = function focusOn(target, focusOptions) {\n if ('focus' in target) {\n target.focus(focusOptions);\n }\n\n if ('contentWindow' in target && target.contentWindow) {\n target.contentWindow.focus();\n }\n};\nvar guardCount = 0;\nvar lockDisabled = false;\nexport var setFocus = function setFocus(topNode, lastNode, options) {\n if (options === void 0) {\n options = {};\n }\n\n var focusable = getFocusMerge(topNode, lastNode);\n\n if (lockDisabled) {\n return;\n }\n\n if (focusable) {\n if (guardCount > 2) {\n console.error('FocusLock: focus-fighting detected. Only one focus management system could be active. ' + 'See https://github.com/theKashey/focus-lock/#focus-fighting');\n lockDisabled = true;\n setTimeout(function () {\n lockDisabled = false;\n }, 1);\n return;\n }\n\n guardCount++;\n focusOn(focusable.node, options.focusOptions);\n guardCount--;\n }\n};","import * as constants from './constants';\nimport { focusInside } from './focusInside';\nimport { focusIsHidden } from './focusIsHidden';\nimport { getFocusMerge as focusMerge } from './focusMerge';\nimport { getFocusabledIn } from './focusables';\nimport { setFocus } from './setFocus';\nimport { focusNextElement, focusPrevElement } from './sibling';\nimport tabHook from './tabHook';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { getActiveElement } from './utils/getActiveElement';\nexport { tabHook, focusInside, focusIsHidden, focusMerge, getFocusabledIn, constants, getAllAffectedNodes, focusNextElement, focusPrevElement, getActiveElement };\nexport default setFocus;","import { getAllAffectedNodes } from './utils/all-affected';\nimport { toArray } from './utils/array';\nimport { getActiveElement } from './utils/getActiveElement';\n\nvar focusInFrame = function focusInFrame(frame) {\n return frame === document.activeElement;\n};\n\nvar focusInsideIframe = function focusInsideIframe(topNode) {\n return Boolean(toArray(topNode.querySelectorAll('iframe')).some(function (node) {\n return focusInFrame(node);\n }));\n};\n\nexport var focusInside = function focusInside(topNode) {\n var activeElement = document && getActiveElement();\n\n if (!activeElement || activeElement.dataset && activeElement.dataset.focusGuard) {\n return false;\n }\n\n return getAllAffectedNodes(topNode).reduce(function (result, node) {\n return result || node.contains(activeElement) || focusInsideIframe(node);\n }, false);\n};","export function deferAction(action) {\n // Hidding setImmediate from Webpack to avoid inserting polyfill\n var _window = window,\n setImmediate = _window.setImmediate;\n\n if (typeof setImmediate !== 'undefined') {\n setImmediate(action);\n } else {\n setTimeout(action, 1);\n }\n}\nexport var inlineProp = function inlineProp(name, value) {\n var obj = {};\n obj[name] = value;\n return obj;\n};","import * as React from 'react';\nimport withSideEffect from 'react-clientside-effect';\nimport moveFocusInside, { focusInside, focusIsHidden, getFocusabledIn } from 'focus-lock';\nimport { deferAction } from './util';\nimport { mediumFocus, mediumBlur, mediumEffect } from './medium';\n\nvar focusOnBody = function focusOnBody() {\n return document && document.activeElement === document.body;\n};\n\nvar isFreeFocus = function isFreeFocus() {\n return focusOnBody() || focusIsHidden();\n};\n\nvar lastActiveTrap = null;\nvar lastActiveFocus = null;\nvar lastPortaledElement = null;\nvar focusWasOutsideWindow = false;\n\nvar defaultWhitelist = function defaultWhitelist() {\n return true;\n};\n\nvar focusWhitelisted = function focusWhitelisted(activeElement) {\n return (lastActiveTrap.whiteList || defaultWhitelist)(activeElement);\n};\n\nvar recordPortal = function recordPortal(observerNode, portaledElement) {\n lastPortaledElement = {\n observerNode: observerNode,\n portaledElement: portaledElement\n };\n};\n\nvar focusIsPortaledPair = function focusIsPortaledPair(element) {\n return lastPortaledElement && lastPortaledElement.portaledElement === element;\n};\n\nfunction autoGuard(startIndex, end, step, allNodes) {\n var lastGuard = null;\n var i = startIndex;\n\n do {\n var item = allNodes[i];\n\n if (item.guard) {\n if (item.node.dataset.focusAutoGuard) {\n lastGuard = item;\n }\n } else if (item.lockItem) {\n if (i !== startIndex) {\n // we will tab to the next element\n return;\n }\n\n lastGuard = null;\n } else {\n break;\n }\n } while ((i += step) !== end);\n\n if (lastGuard) {\n lastGuard.node.tabIndex = 0;\n }\n}\n\nvar extractRef = function extractRef(ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\n\nvar focusWasOutside = function focusWasOutside(crossFrameOption) {\n if (crossFrameOption) {\n // with cross frame return true for any value\n return Boolean(focusWasOutsideWindow);\n } // in other case return only of focus went a while aho\n\n\n return focusWasOutsideWindow === 'meanwhile';\n};\n\nvar checkInHost = function checkInHost(check, el, boundary) {\n return el // find host equal to active element and check nested active element\n && (el.host === check && (!el.activeElement || boundary.contains(el.activeElement)) // dive up\n || el.parentNode && checkInHost(check, el.parentNode, boundary));\n};\n\nvar withinHost = function withinHost(activeElement, workingArea) {\n return workingArea.some(function (area) {\n return checkInHost(activeElement, area, area);\n });\n};\n\nvar activateTrap = function activateTrap() {\n var result = false;\n\n if (lastActiveTrap) {\n var _lastActiveTrap = lastActiveTrap,\n observed = _lastActiveTrap.observed,\n persistentFocus = _lastActiveTrap.persistentFocus,\n autoFocus = _lastActiveTrap.autoFocus,\n shards = _lastActiveTrap.shards,\n crossFrame = _lastActiveTrap.crossFrame,\n focusOptions = _lastActiveTrap.focusOptions;\n var workingNode = observed || lastPortaledElement && lastPortaledElement.portaledElement;\n var activeElement = document && document.activeElement;\n\n if (workingNode) {\n var workingArea = [workingNode].concat(shards.map(extractRef).filter(Boolean));\n\n if (!activeElement || focusWhitelisted(activeElement)) {\n if (persistentFocus || focusWasOutside(crossFrame) || !isFreeFocus() || !lastActiveFocus && autoFocus) {\n if (workingNode && !( // active element is \"inside\" working area\n focusInside(workingArea) || // check for shadow-dom contained elements\n activeElement && withinHost(activeElement, workingArea) || focusIsPortaledPair(activeElement, workingNode))) {\n if (document && !lastActiveFocus && activeElement && !autoFocus) {\n // Check if blur() exists, which is missing on certain elements on IE\n if (activeElement.blur) {\n activeElement.blur();\n }\n\n document.body.focus();\n } else {\n result = moveFocusInside(workingArea, lastActiveFocus, {\n focusOptions: focusOptions\n });\n lastPortaledElement = {};\n }\n }\n\n focusWasOutsideWindow = false;\n lastActiveFocus = document && document.activeElement;\n }\n }\n\n if (document) {\n var newActiveElement = document && document.activeElement;\n var allNodes = getFocusabledIn(workingArea);\n var focusedIndex = allNodes.map(function (_ref) {\n var node = _ref.node;\n return node;\n }).indexOf(newActiveElement);\n\n if (focusedIndex > -1) {\n // remove old focus\n allNodes.filter(function (_ref2) {\n var guard = _ref2.guard,\n node = _ref2.node;\n return guard && node.dataset.focusAutoGuard;\n }).forEach(function (_ref3) {\n var node = _ref3.node;\n return node.removeAttribute('tabIndex');\n });\n autoGuard(focusedIndex, allNodes.length, +1, allNodes);\n autoGuard(focusedIndex, -1, -1, allNodes);\n }\n }\n }\n }\n\n return result;\n};\n\nvar onTrap = function onTrap(event) {\n if (activateTrap() && event) {\n // prevent scroll jump\n event.stopPropagation();\n event.preventDefault();\n }\n};\n\nvar onBlur = function onBlur() {\n return deferAction(activateTrap);\n};\n\nvar onFocus = function onFocus(event) {\n // detect portal\n var source = event.target;\n var currentNode = event.currentTarget;\n\n if (!currentNode.contains(source)) {\n recordPortal(currentNode, source);\n }\n};\n\nvar FocusWatcher = function FocusWatcher() {\n return null;\n};\n\nvar FocusTrap = function FocusTrap(_ref4) {\n var children = _ref4.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n onBlur: onBlur,\n onFocus: onFocus\n }, children);\n};\n\nvar onWindowBlur = function onWindowBlur() {\n focusWasOutsideWindow = 'just'; // using setTimeout to set this variable after React/sidecar reaction\n\n setTimeout(function () {\n focusWasOutsideWindow = 'meanwhile';\n }, 0);\n};\n\nvar attachHandler = function attachHandler() {\n document.addEventListener('focusin', onTrap);\n document.addEventListener('focusout', onBlur);\n window.addEventListener('blur', onWindowBlur);\n};\n\nvar detachHandler = function detachHandler() {\n document.removeEventListener('focusin', onTrap);\n document.removeEventListener('focusout', onBlur);\n window.removeEventListener('blur', onWindowBlur);\n};\n\nfunction reducePropsToState(propsList) {\n return propsList.filter(function (_ref5) {\n var disabled = _ref5.disabled;\n return !disabled;\n });\n}\n\nfunction handleStateChangeOnClient(traps) {\n var trap = traps.slice(-1)[0];\n\n if (trap && !lastActiveTrap) {\n attachHandler();\n }\n\n var lastTrap = lastActiveTrap;\n var sameTrap = lastTrap && trap && trap.id === lastTrap.id;\n lastActiveTrap = trap;\n\n if (lastTrap && !sameTrap) {\n lastTrap.onDeactivation(); // return focus only of last trap was removed\n\n if (!traps.filter(function (_ref6) {\n var id = _ref6.id;\n return id === lastTrap.id;\n }).length) {\n // allow defer is no other trap is awaiting restore\n lastTrap.returnFocus(!trap);\n }\n }\n\n if (trap) {\n lastActiveFocus = null;\n\n if (!sameTrap || lastTrap.observed !== trap.observed) {\n trap.onActivation();\n }\n\n activateTrap(true);\n deferAction(activateTrap);\n } else {\n detachHandler();\n lastActiveFocus = null;\n }\n} // bind medium\n\n\nmediumFocus.assignSyncMedium(onFocus);\nmediumBlur.assignMedium(onBlur);\nmediumEffect.assignMedium(function (cb) {\n return cb({\n moveFocusInside: moveFocusInside,\n focusInside: focusInside\n });\n});\nexport default withSideEffect(reducePropsToState, handleStateChangeOnClient)(FocusWatcher);","import { FOCUS_ALLOW } from './constants';\nimport { toArray } from './utils/array';\nimport { getActiveElement } from './utils/getActiveElement';\nexport var focusIsHidden = function focusIsHidden() {\n var activeElement = document && getActiveElement();\n\n if (!activeElement) {\n return false;\n }\n\n return toArray(document.querySelectorAll(\"[\".concat(FOCUS_ALLOW, \"]\"))).some(function (node) {\n return node.contains(activeElement);\n });\n};","import { getTabbableNodes } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { isGuard, isNotAGuard } from './utils/is';\nimport { getTopCommonParent } from './utils/parenting';\nexport var getFocusabledIn = function getFocusabledIn(topNode) {\n var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n var commonParent = getTopCommonParent(topNode, topNode, entries);\n var visibilityCache = new Map();\n var outerNodes = getTabbableNodes([commonParent], visibilityCache, true);\n var innerElements = getTabbableNodes(entries, visibilityCache).filter(function (_a) {\n var node = _a.node;\n return isNotAGuard(node);\n }).map(function (_a) {\n var node = _a.node;\n return node;\n });\n return outerNodes.map(function (_a) {\n var node = _a.node,\n index = _a.index;\n return {\n node: node,\n index: index,\n lockItem: innerElements.indexOf(node) >= 0,\n guard: isGuard(node)\n };\n });\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport FocusLockUI from './Lock';\nimport FocusTrap from './Trap';\n/* that would be a BREAKING CHANGE!\n// delaying sidecar execution till the first usage\nconst RequireSideCar = (props) => {\n // eslint-disable-next-line global-require\n const SideCar = require('./Trap').default;\n return ;\n};\n*/\n\nvar FocusLockCombination = /*#__PURE__*/React.forwardRef(function FocusLockUICombination(props, ref) {\n return /*#__PURE__*/React.createElement(FocusLockUI, _extends({\n sideCar: FocusTrap,\n ref: ref\n }, props));\n});\n\nvar _ref = FocusLockUI.propTypes || {},\n sideCar = _ref.sideCar;\n\nexport default FocusLockCombination;","import FocusLock from './Combination';\nexport * from './UI';\nexport default FocusLock;","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();","import * as tslib_1 from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { effectCar } from './medium';\nimport { useMergeRefs } from 'use-callback-ref';\n\nvar nothing = function nothing() {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\n\n\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing\n }),\n callbacks = _a[0],\n setCallbacks = _a[1];\n\n var forwardProps = props.forwardProps,\n children = props.children,\n className = props.className,\n removeScrollBar = props.removeScrollBar,\n enabled = props.enabled,\n shards = props.shards,\n sideCar = props.sideCar,\n noIsolation = props.noIsolation,\n inert = props.inert,\n allowPinchZoom = props.allowPinchZoom,\n _b = props.as,\n Container = _b === void 0 ? 'div' : _b,\n rest = tslib_1.__rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\"]);\n\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n\n var containerProps = tslib_1.__assign({}, rest, callbacks);\n\n return React.createElement(React.Fragment, null, enabled && React.createElement(SideCar, {\n sideCar: effectCar,\n removeScrollBar: removeScrollBar,\n shards: shards,\n noIsolation: noIsolation,\n inert: inert,\n setCallbacks: setCallbacks,\n allowPinchZoom: !!allowPinchZoom,\n lockRef: ref\n }), forwardProps ? React.cloneElement(React.Children.only(children), tslib_1.__assign({}, containerProps, {\n ref: containerRef\n })) : React.createElement(Container, tslib_1.__assign({}, containerProps, {\n className: className,\n ref: containerRef\n }), children));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName\n};\nexport { RemoveScroll };","import * as tslib_1 from \"tslib\";\nimport * as React from 'react';\n\nvar SideCar = function SideCar(_a) {\n var sideCar = _a.sideCar,\n rest = tslib_1.__rest(_a, [\"sideCar\"]);\n\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n\n var Target = sideCar.read();\n\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n\n return React.createElement(Target, tslib_1.__assign({}, rest));\n};\n\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}","var currentNonce;\nexport var setNonce = function setNonce(nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function getNonce() {\n if (currentNonce) {\n return currentNonce;\n }\n\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n\n return undefined;\n};","import { getNonce } from \"get-nonce\";\n\nfunction makeStyleTag() {\n if (!document) return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n\n return tag;\n}\n\nfunction injectStyles(tag, css) {\n if (tag.styleSheet) {\n tag.styleSheet.cssText = css;\n } else {\n tag.appendChild(document.createTextNode(css));\n }\n}\n\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\n\nexport var stylesheetSingleton = function stylesheetSingleton() {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function add(style) {\n if (counter == 0) {\n if (stylesheet = makeStyleTag()) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n\n counter++;\n },\n remove: function remove() {\n counter--;\n\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n }\n };\n};","import { styleHookSingleton } from \"./hook\";\nexport var styleSingleton = function styleSingleton() {\n var useStyle = styleHookSingleton();\n\n var Sheet = function Sheet(_a) {\n var styles = _a.styles;\n useStyle(styles);\n return null;\n };\n\n return Sheet;\n};","import * as React from 'react';\nimport { stylesheetSingleton } from \"./singleton\";\nexport var styleHookSingleton = function styleHookSingleton() {\n var sheet = stylesheetSingleton();\n return function (styles) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, []);\n };\n};","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0\n};\n\nvar parse = function parse(x) {\n return parseInt(x || '', 10) || 0;\n};\n\nvar getOffset = function getOffset(gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\n\nexport var getGapWidth = function getGapWidth(gapMode) {\n if (gapMode === void 0) {\n gapMode = 'margin';\n }\n\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0])\n };\n};","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { getGapWidth } from './utils';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from \"./constants\";\nvar Style = styleSingleton();\n\nvar getStyles = function getStyles(_a, allowRelative, gapMode, important) {\n var left = _a.left,\n top = _a.top,\n right = _a.right,\n gap = _a.gap;\n\n if (gapMode === void 0) {\n gapMode = 'margin';\n }\n\n return \"\\n .\" + noScrollbarsClassName + \" {\\n overflow: hidden \" + important + \";\\n padding-right: \" + gap + \"px \" + important + \";\\n }\\n body {\\n overflow: hidden \" + important + \";\\n \" + [allowRelative && \"position: relative \" + important + \";\", gapMode === 'margin' && \"\\n padding-left: \" + left + \"px;\\n padding-top: \" + top + \"px;\\n padding-right: \" + right + \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \" + gap + \"px \" + important + \";\\n \", gapMode === 'padding' && \"padding-right: \" + gap + \"px \" + important + \";\"].filter(Boolean).join('') + \"\\n }\\n \\n .\" + zeroRightClassName + \" {\\n right: \" + gap + \"px \" + important + \";\\n }\\n \\n .\" + fullWidthClassName + \" {\\n margin-right: \" + gap + \"px \" + important + \";\\n }\\n \\n .\" + zeroRightClassName + \" .\" + zeroRightClassName + \" {\\n right: 0 \" + important + \";\\n }\\n \\n .\" + fullWidthClassName + \" .\" + fullWidthClassName + \" {\\n margin-right: 0 \" + important + \";\\n }\\n \\n body {\\n \" + removedBarSizeVariable + \": \" + gap + \"px;\\n }\\n\";\n};\n\nexport var RemoveScrollBar = function RemoveScrollBar(props) {\n var _a = React.useState(getGapWidth(props.gapMode)),\n gap = _a[0],\n setGap = _a[1];\n\n React.useEffect(function () {\n setGap(getGapWidth(props.gapMode));\n }, [props.gapMode]);\n var noRelative = props.noRelative,\n noImportant = props.noImportant,\n _b = props.gapMode,\n gapMode = _b === void 0 ? 'margin' : _b;\n return React.createElement(Style, {\n styles: getStyles(gap, !noRelative, gapMode, !noImportant ? \"!important\" : '')\n });\n};","var elementCouldBeVScrolled = function elementCouldBeVScrolled(node) {\n var styles = window.getComputedStyle(node);\n return styles.overflowY !== 'hidden' && // not-not-scrollable\n !(styles.overflowY === styles.overflowX && styles.overflowY === 'visible') // scrollable\n ;\n};\n\nvar elementCouldBeHScrolled = function elementCouldBeHScrolled(node) {\n var styles = window.getComputedStyle(node); // we allow horizontal scroll on range elements\n\n if (node.type === \"range\") {\n return true;\n }\n\n return styles.overflowX !== 'hidden' && // not-not-scrollable\n !(styles.overflowY === styles.overflowX && styles.overflowX === 'visible') // scrollable\n ;\n};\n\nexport var locationCouldBeScrolled = function locationCouldBeScrolled(axis, node) {\n var current = node;\n\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== \"undefined\" && current instanceof ShadowRoot) {\n current = current.host;\n }\n\n var isScrollable = elementCouldBeScrolled(axis, current);\n\n if (isScrollable) {\n var _a = getScrollVariables(axis, current),\n s = _a[1],\n d = _a[2];\n\n if (s > d) {\n return true;\n }\n }\n\n current = current.parentNode;\n } while (current && current !== document.body);\n\n return false;\n};\n\nvar getVScrollVariables = function getVScrollVariables(_a) {\n var scrollTop = _a.scrollTop,\n scrollHeight = _a.scrollHeight,\n clientHeight = _a.clientHeight;\n return [scrollTop, scrollHeight, clientHeight];\n};\n\nvar getHScrollVariables = function getHScrollVariables(_a) {\n var scrollLeft = _a.scrollLeft,\n scrollWidth = _a.scrollWidth,\n clientWidth = _a.clientWidth;\n return [scrollLeft, scrollWidth, clientWidth];\n};\n\nvar elementCouldBeScrolled = function elementCouldBeScrolled(axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\n\nvar getScrollVariables = function getScrollVariables(axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\n\nvar getDirectionFactor = function getDirectionFactor(axis, direction) {\n return (\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n axis === 'h' && direction === 'rtl' ? -1 : 1\n );\n};\n\nexport var handleScroll = function handleScroll(axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta; // find scrollable target\n\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n\n do {\n var _a = getScrollVariables(axis, target),\n position = _a[0],\n scroll_1 = _a[1],\n capacity = _a[2];\n\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n\n target = target.parentNode;\n } while ( // portaled content\n !targetInLock && target !== document.body || // self content\n targetInLock && (endTarget.contains(target) || endTarget === target));\n\n if (isDeltaPositive && (noOverscroll && availableScroll === 0 || !noOverscroll && delta > availableScroll)) {\n shouldCancelScroll = true;\n } else if (!isDeltaPositive && (noOverscroll && availableScrollTop === 0 || !noOverscroll && -delta > availableScrollTop)) {\n shouldCancelScroll = true;\n }\n\n return shouldCancelScroll;\n};","var passiveSupported = false;\n\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n passiveSupported = true;\n return true;\n }\n });\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n } catch (err) {\n passiveSupported = false;\n }\n}\n\nexport var nonPassive = passiveSupported ? {\n passive: false\n} : false;","import * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nimport { nonPassive } from './aggresiveCapture';\nexport var getTouchXY = function getTouchXY(event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function getDeltaXY(event) {\n return [event.deltaX, event.deltaY];\n};\n\nvar extractRef = function extractRef(ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\n\nvar deltaCompare = function deltaCompare(x, y) {\n return x[0] === y[0] && x[1] === y[1];\n};\n\nvar generateStyle = function generateStyle(id) {\n return \"\\n .block-interactivity-\" + id + \" {pointer-events: none;}\\n .allow-interactivity-\" + id + \" {pointer-events: all;}\\n\";\n};\n\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(function () {\n return styleSingleton();\n })[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\" + id);\n var allow_1 = [props.lockRef.current].concat((props.shards || []).map(extractRef)).filter(Boolean);\n allow_1.forEach(function (el) {\n return el.classList.add(\"allow-interactivity-\" + id);\n });\n return function () {\n document.body.classList.remove(\"block-interactivity-\" + id);\n allow_1.forEach(function (el) {\n return el.classList.remove(\"allow-interactivity-\" + id);\n });\n };\n }\n\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if ('touches' in event && event.touches.length === 2) {\n return !lastProps.current.allowPinchZoom;\n }\n\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n } else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target); // other axis might be not scrollable\n }\n\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n\n if (!currentAxis) {\n return true;\n }\n\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) {\n return e.name === event.type && e.target === event.target && deltaCompare(e.delta, delta);\n })[0]; // self event, and should be canceled\n\n if (sourceEvent && sourceEvent.should) {\n event.preventDefault();\n return;\n } // outside or shard event\n\n\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || []).map(extractRef).filter(Boolean).filter(function (node) {\n return node.contains(event.target);\n });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n\n if (shouldStop) {\n event.preventDefault();\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = {\n name: name,\n delta: delta,\n target: target,\n should: should\n };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) {\n return e !== event;\n });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) {\n return inst !== Style;\n });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar,\n inert = props.inert;\n return React.createElement(React.Fragment, null, inert ? React.createElement(Style, {\n styles: generateStyle(id)\n }) : null, removeScrollBar ? React.createElement(RemoveScrollBar, {\n gapMode: \"margin\"\n }) : null);\n}","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);","import * as tslib_1 from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) {\n return React.createElement(RemoveScroll, tslib_1.__assign({}, props, {\n ref: ref,\n sideCar: SideCar\n }));\n});\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;","import { forwardRef, useEffect, createElement, useRef, useCallback } from 'react';\nimport { Portal } from '@reach/portal';\nimport { getOwnerDocument } from '@reach/utils/owner-document';\nimport { isString } from '@reach/utils/type-check';\nimport { noop } from '@reach/utils/noop';\nimport { useCheckStyles } from '@reach/utils/dev-utils';\nimport { useComposedRefs } from '@reach/utils/compose-refs';\nimport { composeEventHandlers } from '@reach/utils/compose-event-handlers';\nimport FocusLock from 'react-focus-lock';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport PropTypes from 'prop-types';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded = [\"as\", \"isOpen\"],\n _excluded2 = [\"allowPinchZoom\", \"as\", \"dangerouslyBypassFocusLock\", \"dangerouslyBypassScrollLock\", \"initialFocusRef\", \"onClick\", \"onDismiss\", \"onKeyDown\", \"onMouseDown\", \"unstable_lockFocusAcrossFrames\"],\n _excluded3 = [\"as\", \"onClick\", \"onKeyDown\"],\n _excluded4 = [\"allowPinchZoom\", \"initialFocusRef\", \"isOpen\", \"onDismiss\"];\nvar overlayPropTypes = {\n allowPinchZoom: PropTypes.bool,\n dangerouslyBypassFocusLock: PropTypes.bool,\n dangerouslyBypassScrollLock: PropTypes.bool,\n // TODO:\n initialFocusRef: function initialFocusRef() {\n return null;\n },\n onDismiss: PropTypes.func\n}; ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * DialogOverlay\n *\n * Low-level component if you need more control over the styles or rendering of\n * the dialog overlay.\n *\n * Note: You must render a `DialogContent` inside.\n *\n * @see Docs https://reach.tech/dialog#dialogoverlay\n */\n\nvar DialogOverlay = /*#__PURE__*/forwardRef(function DialogOverlay(_ref, forwardedRef) {\n var _ref$as = _ref.as,\n Comp = _ref$as === void 0 ? \"div\" : _ref$as,\n _ref$isOpen = _ref.isOpen,\n isOpen = _ref$isOpen === void 0 ? true : _ref$isOpen,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n useCheckStyles(\"dialog\"); // We want to ignore the immediate focus of a tooltip so it doesn't pop\n // up again when the menu closes, only pops up when focus returns again\n // to the tooltip (like native OS tooltips).\n\n useEffect(function () {\n if (isOpen) {\n // @ts-ignore\n window.__REACH_DISABLE_TOOLTIPS = true;\n } else {\n window.requestAnimationFrame(function () {\n // Wait a frame so that this doesn't fire before tooltip does\n // @ts-ignore\n window.__REACH_DISABLE_TOOLTIPS = false;\n });\n }\n }, [isOpen]);\n return isOpen ? /*#__PURE__*/createElement(Portal, {\n \"data-reach-dialog-wrapper\": \"\"\n }, /*#__PURE__*/createElement(DialogInner, _extends({\n ref: forwardedRef,\n as: Comp\n }, props))) : null;\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n DialogOverlay.displayName = \"DialogOverlay\";\n DialogOverlay.propTypes = /*#__PURE__*/_extends({}, overlayPropTypes, {\n isOpen: PropTypes.bool\n });\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * DialogInner\n */\n\n\nvar DialogInner = /*#__PURE__*/forwardRef(function DialogInner(_ref2, forwardedRef) {\n var allowPinchZoom = _ref2.allowPinchZoom,\n _ref2$as = _ref2.as,\n Comp = _ref2$as === void 0 ? \"div\" : _ref2$as,\n _ref2$dangerouslyBypa = _ref2.dangerouslyBypassFocusLock,\n dangerouslyBypassFocusLock = _ref2$dangerouslyBypa === void 0 ? false : _ref2$dangerouslyBypa,\n _ref2$dangerouslyBypa2 = _ref2.dangerouslyBypassScrollLock,\n dangerouslyBypassScrollLock = _ref2$dangerouslyBypa2 === void 0 ? false : _ref2$dangerouslyBypa2,\n initialFocusRef = _ref2.initialFocusRef,\n onClick = _ref2.onClick,\n _ref2$onDismiss = _ref2.onDismiss,\n onDismiss = _ref2$onDismiss === void 0 ? noop : _ref2$onDismiss,\n onKeyDown = _ref2.onKeyDown,\n onMouseDown = _ref2.onMouseDown,\n _ref2$unstable_lockFo = _ref2.unstable_lockFocusAcrossFrames,\n unstable_lockFocusAcrossFrames = _ref2$unstable_lockFo === void 0 ? true : _ref2$unstable_lockFo,\n props = _objectWithoutPropertiesLoose(_ref2, _excluded2);\n\n var mouseDownTarget = useRef(null);\n var overlayNode = useRef(null);\n var ref = useComposedRefs(overlayNode, forwardedRef);\n var activateFocusLock = useCallback(function () {\n if (initialFocusRef && initialFocusRef.current) {\n initialFocusRef.current.focus();\n }\n }, [initialFocusRef]);\n\n function handleClick(event) {\n if (mouseDownTarget.current === event.target) {\n event.stopPropagation();\n onDismiss(event);\n }\n }\n\n function handleKeyDown(event) {\n if (event.key === \"Escape\") {\n event.stopPropagation();\n onDismiss(event);\n }\n }\n\n function handleMouseDown(event) {\n mouseDownTarget.current = event.target;\n }\n\n useEffect(function () {\n return overlayNode.current ? createAriaHider(overlayNode.current) : void null;\n }, []);\n return /*#__PURE__*/createElement(FocusLock, {\n autoFocus: true,\n returnFocus: true,\n onActivation: activateFocusLock,\n disabled: dangerouslyBypassFocusLock,\n crossFrame: unstable_lockFocusAcrossFrames\n }, /*#__PURE__*/createElement(RemoveScroll, {\n allowPinchZoom: allowPinchZoom,\n enabled: !dangerouslyBypassScrollLock\n }, /*#__PURE__*/createElement(Comp, _extends({}, props, {\n ref: ref,\n \"data-reach-dialog-overlay\": \"\"\n /*\n * We can ignore the `no-static-element-interactions` warning here\n * because our overlay is only designed to capture any outside\n * clicks, not to serve as a clickable element itself.\n */\n ,\n onClick: composeEventHandlers(onClick, handleClick),\n onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown),\n onMouseDown: composeEventHandlers(onMouseDown, handleMouseDown)\n }))));\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n DialogOverlay.displayName = \"DialogOverlay\";\n DialogOverlay.propTypes = /*#__PURE__*/_extends({}, overlayPropTypes);\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * DialogContent\n *\n * Low-level component if you need more control over the styles or rendering of\n * the dialog content.\n *\n * Note: Must be a child of `DialogOverlay`.\n *\n * Note: You only need to use this when you are also styling `DialogOverlay`,\n * otherwise you can use the high-level `Dialog` component and pass the props\n * to it. Any props passed to `Dialog` component (besides `isOpen` and\n * `onDismiss`) will be spread onto `DialogContent`.\n *\n * @see Docs https://reach.tech/dialog#dialogcontent\n */\n\n\nvar DialogContent = /*#__PURE__*/forwardRef(function DialogContent(_ref3, forwardedRef) {\n var _ref3$as = _ref3.as,\n Comp = _ref3$as === void 0 ? \"div\" : _ref3$as,\n onClick = _ref3.onClick;\n _ref3.onKeyDown;\n\n var props = _objectWithoutPropertiesLoose(_ref3, _excluded3);\n\n return /*#__PURE__*/createElement(Comp, _extends({\n \"aria-modal\": \"true\",\n role: \"dialog\",\n tabIndex: -1\n }, props, {\n ref: forwardedRef,\n \"data-reach-dialog-content\": \"\",\n onClick: composeEventHandlers(onClick, function (event) {\n event.stopPropagation();\n })\n }));\n});\n/**\n * @see Docs https://reach.tech/dialog#dialogcontent-props\n */\n\nif (process.env.NODE_ENV !== \"production\") {\n DialogContent.displayName = \"DialogContent\";\n DialogContent.propTypes = {\n \"aria-label\": ariaLabelType,\n \"aria-labelledby\": ariaLabelType\n };\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Dialog\n *\n * High-level component to render a modal dialog window over the top of the page\n * (or another dialog).\n *\n * @see Docs https://reach.tech/dialog#dialog\n */\n\n\nvar Dialog = /*#__PURE__*/forwardRef(function Dialog(_ref4, forwardedRef) {\n var _ref4$allowPinchZoom = _ref4.allowPinchZoom,\n allowPinchZoom = _ref4$allowPinchZoom === void 0 ? false : _ref4$allowPinchZoom,\n initialFocusRef = _ref4.initialFocusRef,\n isOpen = _ref4.isOpen,\n _ref4$onDismiss = _ref4.onDismiss,\n onDismiss = _ref4$onDismiss === void 0 ? noop : _ref4$onDismiss,\n props = _objectWithoutPropertiesLoose(_ref4, _excluded4);\n\n return /*#__PURE__*/createElement(DialogOverlay, {\n allowPinchZoom: allowPinchZoom,\n initialFocusRef: initialFocusRef,\n isOpen: isOpen,\n onDismiss: onDismiss\n }, /*#__PURE__*/createElement(DialogContent, _extends({\n ref: forwardedRef\n }, props)));\n});\n/**\n * @see Docs https://reach.tech/dialog#dialog-props\n */\n\nif (process.env.NODE_ENV !== \"production\") {\n Dialog.displayName = \"Dialog\";\n Dialog.propTypes = {\n isOpen: PropTypes.bool,\n onDismiss: PropTypes.func,\n \"aria-label\": ariaLabelType,\n \"aria-labelledby\": ariaLabelType\n };\n} ////////////////////////////////////////////////////////////////////////////////\n\n\nfunction createAriaHider(dialogNode) {\n var originalValues = [];\n var rootNodes = [];\n var ownerDocument = getOwnerDocument(dialogNode);\n\n if (!dialogNode) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"A ref has not yet been attached to a dialog node when attempting to call `createAriaHider`.\");\n }\n\n return noop;\n }\n\n Array.prototype.forEach.call(ownerDocument.querySelectorAll(\"body > *\"), function (node) {\n var _dialogNode$parentNod, _dialogNode$parentNod2;\n\n var portalNode = (_dialogNode$parentNod = dialogNode.parentNode) == null ? void 0 : (_dialogNode$parentNod2 = _dialogNode$parentNod.parentNode) == null ? void 0 : _dialogNode$parentNod2.parentNode;\n\n if (node === portalNode) {\n return;\n }\n\n var attr = node.getAttribute(\"aria-hidden\");\n var alreadyHidden = attr !== null && attr !== \"false\";\n\n if (alreadyHidden) {\n return;\n }\n\n originalValues.push(attr);\n rootNodes.push(node);\n node.setAttribute(\"aria-hidden\", \"true\");\n });\n return function () {\n rootNodes.forEach(function (node, index) {\n var originalValue = originalValues[index];\n\n if (originalValue === null) {\n node.removeAttribute(\"aria-hidden\");\n } else {\n node.setAttribute(\"aria-hidden\", originalValue);\n }\n });\n };\n}\n\nfunction ariaLabelType(props, propName, compName, location, propFullName) {\n var details = \"\\nSee https://www.w3.org/TR/wai-aria/#aria-label for details.\";\n\n if (!props[\"aria-label\"] && !props[\"aria-labelledby\"]) {\n return new Error(\"A <\" + compName + \"> must have either an `aria-label` or `aria-labelledby` prop.\\n \" + details);\n }\n\n if (props[\"aria-label\"] && props[\"aria-labelledby\"]) {\n return new Error(\"You provided both `aria-label` and `aria-labelledby` props to a <\" + compName + \">. If the a label for this component is visible on the screen, that label's component should be given a unique ID prop, and that ID should be passed as the `aria-labelledby` prop into <\" + compName + \">. If the label cannot be determined programmatically from the content of the element, an alternative label should be provided as the `aria-label` prop, which will be used as an `aria-label` on the HTML tag.\" + details);\n } else if (props[propName] != null && !isString(props[propName])) {\n return new Error(\"Invalid prop `\" + propName + \"` supplied to `\" + compName + \"`. Expected `string`, received `\" + (Array.isArray(propFullName) ? \"array\" : typeof propFullName) + \"`.\");\n }\n\n return null;\n} ////////////////////////////////////////////////////////////////////////////////\n\n\nexport default Dialog;\nexport { Dialog, DialogContent, DialogOverlay };","import * as React from 'react'\nimport * as IOE from 'fp-ts/IOEither'\nimport * as IO from 'fp-ts/IO'\nimport * as R from 'fp-ts/Record'\nimport { pipe } from 'fp-ts/function'\n\nimport { getCookie } from './lib/getCookie'\nimport { sprintf } from './lib/sprintf'\nimport { ssrPluginOptionsStore } from './lib/setPluginOptionsOnWindow'\n\nimport {\n COOKIE_ACCESS_TOKEN_NAME,\n WINDOW_PLUGIN_OPTIONS_KEY,\n WINDOW_PROVIDER_PRESENCE_KEY,\n} from './constants'\nimport {\n PluginOptions,\n PrismicAPIDocumentNodeInput,\n PrismicUnpublishedRepositoryConfigs,\n TypePathsStore,\n} from './types'\n\ndeclare global {\n interface Window {\n [WINDOW_PROVIDER_PRESENCE_KEY]: boolean\n }\n}\n\n/**\n * Populate a plugin options' `accessToken` value with one stored in a persisted\n * cookie, if available. If an access token already exists in the plugin\n * options, that token takes priority.\n */\nconst populateAccessToken = (\n pluginOptions: PluginOptions,\n): IO.IO =>\n pipe(\n IOE.Do,\n IOE.chain(\n IOE.fromPredicate(\n () => pluginOptions.accessToken == null,\n () => new Error('Access token is already populated'),\n ),\n ),\n IOE.bind('cookieName', () =>\n IOE.of(sprintf(COOKIE_ACCESS_TOKEN_NAME, pluginOptions.repositoryName)),\n ),\n IOE.bindW('accessToken', (scope) => getCookie(scope.cookieName)),\n IOE.map((scope) => ({ ...pluginOptions, accessToken: scope.accessToken })),\n IOE.getOrElse(() => IO.of(pluginOptions)),\n )\n\n/**\n * Determines if a value is a Gatsby node for a Prismic document.\n *\n * @param value Value to check.\n *\n * @returns `true` if value is a Gatsby node for a Prismic document, `false` otherwise.\n */\nconst isPrismicAPIDocumentNodeInput = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any,\n): value is PrismicAPIDocumentNodeInput =>\n typeof value === 'object' && 'prismicId' in value\n\nexport type PrismicContextValue = readonly [\n PrismicContextState,\n React.Dispatch,\n]\n\nexport enum PrismicPreviewState {\n IDLE = 'IDLE',\n RESOLVING = 'RESOLVING',\n RESOLVED = 'RESOLVED',\n BOOTSTRAPPING = 'BOOTSTRAPPING',\n ACTIVE = 'ACTIVE',\n PROMPT_FOR_ACCESS_TOKEN = 'PROMPT_FOR_ACCESS_TOKEN',\n FAILED = 'FAILED',\n NOT_PREVIEW = 'NOT_PREVIEW',\n}\n\nexport type PrismicContextState = {\n /** The repository name of the preview session, if active. */\n activeRepositoryName: string | undefined\n /** The repository name of the preview session, if active. */\n previewState: PrismicPreviewState\n /** The error if the preview produced a failure. */\n error?: Error\n /** The resolved preview path if entered from a preview resolver page. */\n resolvedPath?: string\n /** Determines if all preview content has been fetched and prepared. */\n isBootstrapped: boolean\n /** Record of Prismic document nodes keyed by their `prismicId` field. */\n nodes: Record\n /** Record of plugin options keyed by their repository name. */\n pluginOptionsStore: Record\n /** Record of type paths keyed by their repository name. */\n typePathsStore: Record\n /** Configuration for each repository */\n repositoryConfigs: PrismicUnpublishedRepositoryConfigs\n}\n\nexport enum PrismicContextActionType {\n SetActiveRepositoryName = 'SetActiveRepositoryName',\n SetAccessToken = 'SetAccessToken',\n AppendNodes = 'AppendNodes',\n AppendTypePaths = 'AppendTypePaths',\n\n StartResolving = 'StartResolving',\n Resolved = 'Resolved',\n\n StartBootstrapping = 'StartBootstrapping',\n Bootstrapped = 'Bootstrapped',\n\n Failed = 'Failed',\n NotAPreview = 'NotAPreview',\n PromptForAccessToken = 'PromptForAccessToken',\n\n GoToIdle = 'GoToIdle',\n}\n\nexport type PrismicContextAction =\n | {\n type: PrismicContextActionType.SetActiveRepositoryName\n payload: { repositoryName: string }\n }\n | {\n type: PrismicContextActionType.SetAccessToken\n payload: { repositoryName: string; accessToken: string }\n }\n | {\n type: PrismicContextActionType.AppendNodes\n payload: { nodes: unknown[] }\n }\n | {\n type: PrismicContextActionType.AppendTypePaths\n payload: { repositoryName: string; typePaths: TypePathsStore }\n }\n | {\n type: PrismicContextActionType.StartResolving\n }\n | {\n type: PrismicContextActionType.Resolved\n payload: { path: string }\n }\n | {\n type: PrismicContextActionType.StartBootstrapping\n }\n | {\n type: PrismicContextActionType.Bootstrapped\n }\n | {\n type: PrismicContextActionType.NotAPreview\n }\n | {\n type: PrismicContextActionType.PromptForAccessToken\n }\n | {\n type: PrismicContextActionType.Failed\n payload: { error: Error }\n }\n | {\n type: PrismicContextActionType.Failed\n payload: { error: Error }\n }\n | {\n type: PrismicContextActionType.GoToIdle\n }\n\nexport const contextReducer = (\n state: PrismicContextState,\n action: PrismicContextAction,\n): PrismicContextState => {\n switch (action.type) {\n case PrismicContextActionType.SetActiveRepositoryName: {\n return {\n ...state,\n activeRepositoryName: action.payload.repositoryName,\n }\n }\n\n case PrismicContextActionType.AppendNodes: {\n const nodes = action.payload.nodes.reduce(\n (acc: PrismicContextState['nodes'], node) => {\n if (isPrismicAPIDocumentNodeInput(node)) {\n acc[node.prismicId] = node\n }\n\n return acc\n },\n { ...state.nodes },\n )\n\n return { ...state, nodes }\n }\n\n case PrismicContextActionType.AppendTypePaths: {\n return {\n ...state,\n typePathsStore: {\n ...state.typePathsStore,\n [action.payload.repositoryName]: action.payload.typePaths,\n },\n }\n }\n\n case PrismicContextActionType.SetAccessToken: {\n const repositoryName = action.payload.repositoryName\n\n return {\n ...state,\n pluginOptionsStore: {\n ...state.pluginOptionsStore,\n [repositoryName]: {\n ...state.pluginOptionsStore[repositoryName],\n accessToken: action.payload.accessToken,\n },\n },\n }\n }\n\n case PrismicContextActionType.StartResolving: {\n return {\n ...state,\n previewState: PrismicPreviewState.RESOLVING,\n }\n }\n\n case PrismicContextActionType.Resolved: {\n return {\n ...state,\n previewState: PrismicPreviewState.RESOLVED,\n resolvedPath: action.payload.path,\n }\n }\n\n case PrismicContextActionType.StartBootstrapping: {\n return {\n ...state,\n previewState: PrismicPreviewState.BOOTSTRAPPING,\n isBootstrapped: false,\n }\n }\n\n case PrismicContextActionType.Bootstrapped: {\n return {\n ...state,\n previewState: PrismicPreviewState.ACTIVE,\n isBootstrapped: true,\n }\n }\n\n case PrismicContextActionType.Failed: {\n return {\n ...state,\n previewState: PrismicPreviewState.FAILED,\n error: action.payload.error,\n }\n }\n\n case PrismicContextActionType.NotAPreview: {\n return {\n ...state,\n previewState: PrismicPreviewState.NOT_PREVIEW,\n }\n }\n\n case PrismicContextActionType.PromptForAccessToken: {\n return {\n ...state,\n previewState: PrismicPreviewState.PROMPT_FOR_ACCESS_TOKEN,\n }\n }\n\n case PrismicContextActionType.GoToIdle: {\n return {\n ...state,\n previewState: PrismicPreviewState.IDLE,\n }\n }\n }\n}\n\nconst defaultInitialState: PrismicContextState = {\n activeRepositoryName: undefined,\n previewState: PrismicPreviewState.IDLE,\n isBootstrapped: false,\n nodes: {},\n pluginOptionsStore: {},\n typePathsStore: {},\n repositoryConfigs: [],\n}\n\nconst createInitialState = (\n repositoryConfigs = defaultInitialState.repositoryConfigs,\n): IO.IO =>\n pipe(\n typeof window === 'undefined'\n ? ssrPluginOptionsStore\n : window[WINDOW_PLUGIN_OPTIONS_KEY],\n R.map(populateAccessToken),\n R.sequence(IO.Applicative),\n IO.map((pluginOptionsStore) => ({\n ...defaultInitialState,\n repositoryConfigs,\n pluginOptionsStore,\n })),\n )\n\nconst defaultContextValue: PrismicContextValue = [\n defaultInitialState,\n () => void 0,\n]\n\nexport const PrismicContext = React.createContext(defaultContextValue)\n\nexport type PrismicProviderProps = {\n repositoryConfigs?: PrismicUnpublishedRepositoryConfigs\n children?: React.ReactNode\n}\n\nexport const PrismicPreviewProvider = ({\n repositoryConfigs,\n children,\n}: PrismicProviderProps): JSX.Element => {\n const initialState = createInitialState(repositoryConfigs)()\n const reducerTuple = React.useReducer(contextReducer, initialState)\n\n React.useLayoutEffect(() => {\n window[WINDOW_PROVIDER_PRESENCE_KEY] = true\n }, [])\n\n return (\n \n {children}\n \n )\n}\n","import { UnknownRecord } from '../types'\n\n/**\n * Get the string tag of a value.\n * @private\n *\n * @param value\n */\nconst getTag = (value: T): string => Object.prototype.toString.call(value)\n\n/**\n * Returns true if given value is an instance of Map or Set.\n * @private\n *\n * @param value Value to check.\n */\nconst isMapOrSet = (value: T): boolean => {\n const tag = getTag(value)\n\n return tag === '[object Set]' || tag === '[object Map]'\n}\n\n/**\n * Determines if an object is a plain object.\n *\n * @param value The value to check.\n *\n * @returns true if value is a plain object, false otherwise.\n */\nexport const isPlainObject = (value: unknown): value is T =>\n isMapOrSet(value)\n ? false\n : value !== null && typeof value === 'object' && !Array.isArray(value)\n","import * as cookie from 'es-cookie'\nimport * as IOE from 'fp-ts/IOEither'\nimport { pipe } from 'fp-ts/function'\n\nexport const getCookie = (name: string): IOE.IOEither =>\n pipe(\n IOE.fromIO(() => cookie.get(name) as string),\n IOE.chain(\n IOE.fromPredicate(\n (x) => x != null,\n () => new Error(`Value does not exist for cookie: ${name}`),\n ),\n ),\n )\n","/**\n * Interpolate values into a string using a `sprintf`-like syntax. Each\n * instance of \"`%s`\" in the string will be replaced with a given value in the\n * order they are given.\n *\n * @see https://gist.github.com/rmariuzzo/8761698#gistcomment-2375590\n *\n * @param string String into which values will be interpolated.\n * @param args Values which will be interpolated into `string`.\n *\n * @returns String with interpolated values.\n */\nexport const sprintf = (string: string, ...args: string[]): string => {\n let i = 0\n\n return string.replace(/%s/g, () => args[i++])\n}\n","import * as React from 'react'\n\nimport { MISSING_PROVIDER_MSG, WINDOW_PROVIDER_PRESENCE_KEY } from './constants'\nimport {\n PrismicContext,\n PrismicContextAction,\n PrismicContextState,\n} from './context'\n\ntype UsePrismicPreviewContextValue = readonly [\n PrismicContextState,\n React.Dispatch,\n]\n\n/**\n * Returns the global state for Prismic preview sessions.\n */\nexport const usePrismicPreviewContext = (): UsePrismicPreviewContextValue => {\n const context = React.useContext(PrismicContext)\n\n React.useEffect(() => {\n if (process.env.NODE_ENV === 'development') {\n if (!window[WINDOW_PROVIDER_PRESENCE_KEY]) {\n console.warn(MISSING_PROVIDER_MSG)\n }\n }\n }, [context])\n\n return context\n}\n","import * as React from 'react'\nimport * as R from 'fp-ts/Record'\nimport * as O from 'fp-ts/Option'\nimport { pipe } from 'fp-ts/function'\nimport { PREVIEWABLE_NODE_ID_FIELD } from 'gatsby-source-prismic'\n\nimport { isPlainObject } from './lib/isPlainObject'\n\nimport { UnknownRecord } from './types'\nimport { PrismicContextState } from './context'\nimport { usePrismicPreviewContext } from './usePrismicPreviewContext'\nimport { isProxy } from './lib/isProxy'\n\n/**\n * Recursively finds previewable data and replaces data if a previewed version\n * of it exists in the provided nodes.\n *\n * @param nodes List of Prismic document nodes.\n *\n * @returns Function that accepts a node or node content to find and replace previewable content.\n */\nconst findAndReplacePreviewables =\n (nodes: PrismicContextState['nodes']) =>\n (nodeOrLeaf: unknown): unknown => {\n if (isPlainObject(nodeOrLeaf)) {\n // If the value is a proxy, we can't reliably replace properties since\n // property keys could be synthetic. We opt to ignore the object\n // completely.\n //\n // At the time of writing this comment, Proxies are only present in Link\n // fields. We can safely opt out of merging preview data in this case.\n if (isProxy(nodeOrLeaf)) {\n return nodeOrLeaf\n }\n\n const previewableValue = nodeOrLeaf[PREVIEWABLE_NODE_ID_FIELD] as\n | string\n | undefined\n if (previewableValue && nodes[previewableValue]) {\n return nodes[previewableValue]\n }\n\n // We didn't find a previewable field, so continue to iterate through all\n // properties to find it.\n const newNode = {} as typeof nodeOrLeaf\n for (const key in nodeOrLeaf) {\n newNode[key] = findAndReplacePreviewables(nodes)(nodeOrLeaf[key])\n }\n\n return newNode\n }\n\n // Iterate all elements in the node to find the previewable value.\n if (Array.isArray(nodeOrLeaf)) {\n return (nodeOrLeaf as unknown[]).map((subnode) =>\n findAndReplacePreviewables(nodes)(subnode),\n )\n }\n\n // If the node is not an object or array, it cannot be a previewable value.\n return nodeOrLeaf\n }\n\n/**\n * Takes a static data object and a record of nodes and replaces any instances\n * of those nodes in the static data with the updated version. The replacement\n * is done recursively to ensure nested nodes are replaced.\n *\n * Nodes are considered matches if they have identical\n * `PREVIEWABLE_NODE_ID_FIELD` fields (see constant value in\n * `src/constants.ts`).\n *\n * @param staticData Static data object in which nodes will be replaced.\n * @param nodes List of nodes that replace in `staticData`.\n *\n * @returns `staticData` with any matching nodes replaced with nodes in\n * `nodes`.\n */\nconst traverseAndReplace = (\n staticData: TStaticData,\n nodes: PrismicContextState['nodes'],\n): { data: TStaticData; isPreview: boolean } =>\n pipe(\n nodes,\n O.fromPredicate((nodes) => !R.isEmpty(nodes)),\n O.map(() => staticData),\n O.map(findAndReplacePreviewables(nodes)),\n O.fold(\n () => ({ data: staticData, isPreview: false as boolean }),\n (data) => ({ data: data as TStaticData, isPreview: true }),\n ),\n )\n\nexport type UsePrismicPreviewDataConfig = {\n /**\n * Determines if merging should be skipped.\n */\n skip?: boolean\n}\n\nexport type UsePrismicPreviewDataResult = {\n /**\n * Data with previewed content merged if matching documents are found.\n */\n data: TStaticData\n\n /**\n * Boolean determining if `data` contains previewed data.\n */\n isPreview: boolean\n}\n\n/**\n * Merges static Prismic data with previewed data during a Prismic preview\n * session. If the static data finds previewable Prismic data (identified by the\n * `_previewable` field in a Prismic document), this hook will replace its value\n * with one from the preview session.\n *\n * The static data could come from page queries or `useStaticQuery` within a\n * component.\n *\n * @param staticData Static data from Gatsby's GraphQL layer.\n * @param config Configuration that determines how the hook merges preview data.\n *\n * @returns An object containing the merged data and a boolean determining if the merged data contains preview data.\n */\nexport const useMergePrismicPreviewData = (\n staticData: TStaticData,\n config: UsePrismicPreviewDataConfig = { skip: false },\n): UsePrismicPreviewDataResult => {\n const [state] = usePrismicPreviewContext()\n\n return React.useMemo(() => {\n if (config.skip) {\n return { data: staticData, isPreview: false }\n } else {\n return traverseAndReplace(staticData, state.nodes)\n }\n }, [staticData, config.skip, state])\n}\n","import { IS_PROXY } from '../constants'\n\n/**\n * Determines if a value is a Proxy. The value must have the `IS_PROXY` property\n * set.\n *\n * @param value Value to test.\n *\n * @returns `true` if `value` is a Proxy, `false` otherwise.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isProxy = (value: T): boolean =>\n Boolean(\n // @ts-expect-error - We are forcibly adding this \"is proxy\" property\n value[IS_PROXY],\n )\n","import * as React from 'react'\n\nimport { setCookie } from './lib/setCookie'\nimport { removeCookie } from './lib/removeCookie'\nimport { sprintf } from './lib/sprintf'\n\nimport { COOKIE_ACCESS_TOKEN_NAME } from './constants'\nimport { PrismicContextActionType } from './context'\nimport { usePrismicPreviewContext } from './usePrismicPreviewContext'\n\nexport type SetAccessTokenFn = (accessToken: string, remember?: boolean) => void\n\ntype UsePrismicPreviewAccessTokenActions = {\n set: SetAccessTokenFn\n removeCookie(): void\n}\n\n/**\n * React hook that reads and sets a Prismic access token for a repository. This\n * hook can be used for multiple repositories by using it multiple times.\n *\n * @param repositoryName Name of the repository.\n */\nexport const usePrismicPreviewAccessToken = (\n repositoryName?: string,\n): readonly [\n accessToken: string | undefined,\n actions: UsePrismicPreviewAccessTokenActions,\n] => {\n const [contextState, contextDispatch] = usePrismicPreviewContext()\n\n const cookieName = repositoryName\n ? sprintf(COOKIE_ACCESS_TOKEN_NAME, repositoryName)\n : undefined\n\n /**\n * Sets an access token for the repository and, by default, stores it in a\n * cookie for future preview sessions. If a cookie is not stored, the\n * access token is available only for the current preview session.\n *\n * @param accessToken Access token to set for the repository.\n * @param remember Determines if the access token should be stored for future preview sessions.\n */\n const setAccessToken = React.useCallback(\n (\n accessToken: string,\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\n remember: boolean = true,\n ): void => {\n if (!repositoryName || !cookieName) {\n throw new Error(\n 'A repository name must be provided to the usePrismicPreviewAccessToken hook before using the set function.',\n )\n }\n\n contextDispatch({\n type: PrismicContextActionType.SetAccessToken,\n payload: { repositoryName, accessToken },\n })\n\n if (remember) {\n setCookie(cookieName, accessToken)()\n }\n },\n [cookieName, contextDispatch, repositoryName],\n )\n\n /**\n * Removes the stored access token, if set.\n */\n const removeAccessTokenCookie = React.useCallback(() => {\n if (!cookieName) {\n throw new Error(\n 'A repository name must be provided to the usePrismicPreviewAccessToken hook before using the removeCookie function.',\n )\n }\n\n removeCookie(cookieName)()\n }, [cookieName])\n\n return React.useMemo(\n () =>\n [\n repositoryName\n ? contextState.pluginOptionsStore[repositoryName]?.accessToken\n : undefined,\n {\n set: setAccessToken,\n removeCookie: removeAccessTokenCookie,\n },\n ] as const,\n [\n repositoryName,\n contextState.pluginOptionsStore,\n setAccessToken,\n removeAccessTokenCookie,\n ],\n )\n}\n","import * as cookie from 'es-cookie'\nimport * as IO from 'fp-ts/IO'\n\nexport const setCookie =\n (name: string, value: string): IO.IO =>\n () =>\n cookie.set(name, value)\n","import * as cookie from 'es-cookie'\nimport * as IO from 'fp-ts/IO'\n\nexport const removeCookie =\n (name: string): IO.IO =>\n () =>\n cookie.remove(name)\n","export const defaultFieldTransformer = (fieldName: string): string =>\n fieldName.replace(/-/g, '_')\n","import * as O from 'fp-ts/Option'\nimport * as R from 'fp-ts/Record'\nimport * as A from 'fp-ts/Array'\nimport { pipe } from 'fp-ts/function'\n\nconst extractFirstSubdomain = (host: string): O.Option =>\n O.fromNullable(host.split('.')[0])\n\nconst parseObjectRef = (previewRef: string): O.Option =>\n pipe(\n O.tryCatch(() => JSON.parse(previewRef)),\n O.filter(\n (previewRef) => typeof previewRef === 'object' && previewRef !== null,\n ),\n O.map(R.keys),\n O.chain(A.findFirst((key) => /.prismic.io$/.test(key))),\n O.chain(extractFirstSubdomain),\n )\n\nconst parseURLRef = (previewRef: string): O.Option =>\n pipe(\n O.tryCatch(() => new URL(previewRef)),\n O.map((url) => url.host),\n O.chain(extractFirstSubdomain),\n )\n\nexport const extractPreviewRefRepositoryName = (\n previewRef: string,\n): O.Option =>\n pipe(\n previewRef,\n parseObjectRef,\n O.fold(\n () => pipe(previewRef, parseURLRef),\n (previewRef) => O.some(previewRef),\n ),\n )\n","import * as RTE from 'fp-ts/ReaderTaskEither'\nimport { pipe } from 'fp-ts/function'\nimport md5 from 'tiny-hashes/md5'\n\nimport { TYPE_PATHS_BASENAME_TEMPLATE } from '../constants'\nimport { sprintf } from './sprintf'\n\nexport interface BuildTypePathsStoreFilenameEnv {\n repositoryName: string\n}\n\nexport const buildTypePathsStoreFilename: RTE.ReaderTaskEither<\n BuildTypePathsStoreFilenameEnv,\n never,\n string\n> = pipe(\n RTE.asks((env: BuildTypePathsStoreFilenameEnv) =>\n md5(sprintf(TYPE_PATHS_BASENAME_TEMPLATE, env.repositoryName)),\n ),\n RTE.map((basename) => `${basename}.json`),\n)\n","import * as gatsby from 'gatsby'\nimport * as RTE from 'fp-ts/ReaderTaskEither'\nimport { pipe } from 'fp-ts/function'\n\nimport {\n BuildTypePathsStoreFilenameEnv,\n buildTypePathsStoreFilename,\n} from './buildTypePathsStoreFilename'\nimport { fetchJSON } from './fetchJSON'\nimport { TypePathsStore } from '../types'\n\nexport type FetchTypePathsStoreEnv = BuildTypePathsStoreFilenameEnv\n\nconst buildTypePathsStoreURL: RTE.ReaderTaskEither<\n BuildTypePathsStoreFilenameEnv,\n never,\n string\n> = pipe(\n RTE.ask(),\n RTE.chain(() => buildTypePathsStoreFilename),\n RTE.map((filename) => gatsby.withAssetPrefix(`/static/${filename}`)),\n)\n\nexport const fetchTypePaths: RTE.ReaderTaskEither<\n FetchTypePathsStoreEnv,\n Error,\n TypePathsStore\n> = pipe(\n RTE.ask(),\n RTE.bind('url', () => buildTypePathsStoreURL),\n RTE.chain((scope) =>\n RTE.fromTaskEither(\n fetchJSON(scope.url, {\n // We opt out of the cache to ensure we always fetch the latest type\n // paths. Since the URL to the type paths JSON file is always the\n // same (a hashed version of the repository name), some servers may\n // not properly cache bust the resource.\n //\n // Type paths are only fetched at bootstrap so the additional\n // network time this imposes should be minimal.\n cache: 'no-cache',\n }),\n ),\n ),\n)\n","import * as TE from 'fp-ts/TaskEither'\n\nexport const fetchJSON = (\n ...args: Parameters\n): TE.TaskEither =>\n TE.tryCatch(\n async () => await (await fetch(...args)).json(),\n (error) => error as Error,\n )\n","import * as prismic from '@prismicio/client'\nimport * as IOE from 'fp-ts/IOEither'\nimport { pipe } from 'fp-ts/function'\n\nimport { getCookie } from './getCookie'\n\nexport const getPreviewRef = pipe(\n getCookie(prismic.cookie.preview),\n IOE.mapLeft(() => new Error('Preview cookie not present')),\n)\n","import * as IOE from 'fp-ts/IOEither'\nimport { constTrue, pipe } from 'fp-ts/function'\n\nimport { extractPreviewRefRepositoryName } from './extractPreviewRefRepositoryName'\nimport { getPreviewRef } from './getPreviewRef'\n\nexport const isPreviewSession = pipe(\n getPreviewRef,\n IOE.chain((previewRef) =>\n pipe(\n extractPreviewRefRepositoryName(previewRef),\n IOE.fromOption(\n () =>\n new Error(\n 'Not a preview session (preview token does not contain a repository)',\n ),\n ),\n ),\n ),\n IOE.map(constTrue),\n IOE.mapLeft(\n () => new Error('Not a preview session (preview token does not exist)'),\n ),\n)\n","import * as R from 'fp-ts/Record'\nimport * as A from 'fp-ts/Array'\nimport * as S from 'fp-ts/Semigroup'\nimport { flow } from 'fp-ts/function'\n\nexport const mapRecordIndices = (\n f: (k: K) => string,\n): ((r: Record) => Record) =>\n flow(\n R.collect((index: K, value) => [f(index), value] as [string, A]),\n (pairs) =>\n R.fromFoldableMap(S.last
    (), A.Foldable)(pairs, ([index, value]) => [\n index,\n value,\n ]),\n )\n","import * as RE from 'fp-ts/ReaderEither'\nimport * as R from 'fp-ts/Record'\nimport { pipe } from 'fp-ts/function'\n\nimport { UnknownRecord } from '../types'\nimport {\n proxyDocumentSubtree,\n ProxyDocumentSubtreeEnv,\n} from '../lib/proxyDocumentSubtree'\nimport { mapRecordIndices } from '../lib/mapRecordIndices'\n\nexport const valueRefinement = (value: unknown): value is UnknownRecord =>\n typeof value === 'object' && value !== null\n\nexport const proxyValue = (\n path: string[],\n fieldValue: UnknownRecord,\n): RE.ReaderEither =>\n pipe(\n RE.ask(),\n RE.chain((env) =>\n pipe(\n fieldValue,\n mapRecordIndices(env.transformFieldName),\n R.mapWithIndex((fieldName, value) =>\n proxyDocumentSubtree([...path, fieldName], value),\n ),\n R.sequence(RE.Applicative),\n ),\n ),\n )\n","import { IS_PROXY } from '../constants'\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const createGetProxy = (\n target: T,\n get: ProxyHandler['get'],\n): T => {\n // @ts-expect-error - We are forcibly adding this \"is proxy\" property\n target[IS_PROXY] = true\n\n return new Proxy(target, { get })\n}\n","/**\n * NOTE: This field proxy is not used like the other field proxies. Because\n * AlternativeLanguages is not a Prismic field type, it is manually handled in\n * `documentFieldProxy`.\n */\n\nimport * as prismicT from '@prismicio/types'\nimport * as RE from 'fp-ts/ReaderEither'\nimport * as A from 'fp-ts/Array'\nimport * as O from 'fp-ts/Option'\nimport { pipe } from 'fp-ts/function'\n\nimport { ProxyDocumentSubtreeEnv } from '../lib/proxyDocumentSubtree'\nimport { createGetProxy } from '../lib/createGetProxy'\n\nimport { IterableElement } from '../types'\n\nconst proxyElement = (\n element: IterableElement,\n): RE.ReaderEither<\n ProxyDocumentSubtreeEnv,\n Error,\n IterableElement\n> =>\n pipe(\n RE.ask(),\n RE.bind('enhancedFieldValue', () =>\n RE.of({\n ...element,\n raw: element,\n }),\n ),\n RE.map((env) =>\n // A Proxy is used here to avoid an infinite loop if documents have\n // circular references in link fields. This effectively makes the\n // `document` field lazy.\n createGetProxy(env.enhancedFieldValue, (target, prop, receiver) =>\n pipe(\n element.id,\n O.fromPredicate(\n (id): id is string => prop === 'document' && typeof id === 'string',\n ),\n O.chain((id) => O.fromNullable(env.getNode(id))),\n O.getOrElseW(() => Reflect.get(target, prop, receiver)),\n ),\n ),\n ),\n )\n\nexport const proxyValue = (\n fieldValue: prismicT.PrismicDocument['alternate_languages'],\n): RE.ReaderEither<\n ProxyDocumentSubtreeEnv,\n Error,\n prismicT.PrismicDocument['alternate_languages']\n> =>\n pipe(\n fieldValue,\n A.map(proxyElement),\n RE.sequenceArray,\n RE.map(\n // This is needed to return a non-readonly Array type.\n (value) => value as prismicT.PrismicDocument['alternate_languages'],\n ),\n )\n","import * as prismic from '@prismicio/types'\nimport * as prismicH from '@prismicio/helpers'\nimport * as RE from 'fp-ts/ReaderEither'\nimport * as R from 'fp-ts/Record'\nimport { pipe } from 'fp-ts/function'\n\nimport {\n proxyDocumentSubtree,\n ProxyDocumentSubtreeEnv,\n} from '../lib/proxyDocumentSubtree'\n\nimport * as alternativeLanguagesFieldProxy from '../fieldProxies/alternativeLanguagesFieldProxy'\n\n// TODO: This is a poor type guard. It should use something stricter to ensure\n// the object is a document.\nexport const valueRefinement = (\n value: unknown,\n): value is prismic.PrismicDocument =>\n typeof value === 'object' && value !== null\n\nexport const proxyValue = (\n path: string[],\n fieldValue: prismic.PrismicDocument,\n): RE.ReaderEither =>\n pipe(\n RE.ask(),\n RE.bind('data', () =>\n pipe(\n fieldValue.data,\n RE.fromPredicate(\n (data) => !R.isEmpty(data),\n () => new Error('Document does not have a data field'),\n ),\n RE.chain((data) => proxyDocumentSubtree([...path, 'data'], data)),\n RE.orElseW(() => RE.right(fieldValue.data)),\n ),\n ),\n RE.bind('url', (env) =>\n RE.of(\n prismicH.asLink(\n prismicH.documentToLinkField(fieldValue),\n env.linkResolver,\n ),\n ),\n ),\n RE.bind('alternative_languages', () =>\n alternativeLanguagesFieldProxy.proxyValue(fieldValue.alternate_languages),\n ),\n RE.bind('__typename', (env) => RE.of(env.nodeHelpers.createTypeName(path))),\n RE.map((env) => ({\n ...fieldValue,\n __typename: env.__typename,\n url: env.url,\n alternate_languages: env.alternative_languages,\n data: env.data,\n })),\n )\n","import * as RE from 'fp-ts/ReaderEither'\nimport * as A from 'fp-ts/Array'\nimport * as R from 'fp-ts/Record'\nimport { pipe } from 'fp-ts/function'\n\nimport { UnknownRecord } from '../types'\nimport {\n proxyDocumentSubtree,\n ProxyDocumentSubtreeEnv,\n} from '../lib/proxyDocumentSubtree'\nimport { mapRecordIndices } from '../lib/mapRecordIndices'\n\nexport const valueRefinement = (value: unknown): value is UnknownRecord[] =>\n Array.isArray(value) &&\n value.every((element) => typeof element === 'object' && element !== null)\n\nexport const proxyValue = (\n path: string[],\n fieldValue: UnknownRecord[],\n): RE.ReaderEither =>\n pipe(\n RE.ask(),\n RE.chain((env) =>\n pipe(\n fieldValue,\n A.map((fieldValueElement) =>\n pipe(\n fieldValueElement,\n mapRecordIndices(env.transformFieldName),\n R.mapWithIndex((fieldName, value) =>\n proxyDocumentSubtree([...path, fieldName], value),\n ),\n R.sequence(RE.Applicative),\n ),\n ),\n RE.sequenceArray,\n ),\n ),\n )\n","import * as gatsbyPrismic from 'gatsby-source-prismic'\nimport * as RE from 'fp-ts/ReaderEither'\nimport { Refinement } from 'fp-ts/function'\n\nimport { FIELD_VALUE_TYPE_PATH_MISMATCH_MSG } from '../constants'\nimport { sprintf } from './sprintf'\nimport { arrowPath } from './arrowPath'\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const refineFieldValue = (\n refinement: Refinement,\n intendedType: gatsbyPrismic.PrismicTypePathType,\n path: string[],\n) =>\n RE.fromPredicate(\n refinement,\n () =>\n new Error(\n sprintf(\n FIELD_VALUE_TYPE_PATH_MISMATCH_MSG,\n arrowPath(path),\n intendedType,\n ),\n ),\n )\n","/**\n * Converts a list of path edges to a string joined by arrows (\"`>`\").\n *\n * @param path List of path edges.\n *\n * @returns Paths joined by arrows (\"`>`\").\n */\nexport const arrowPath = (path: string[]): string => path.join(' > ')\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 * @return Sanitized image URL.\n *\n * @deprecated This is a temporary solution until the Prismic API properly handles spaces in filenames.\n */\n// TODO: Remove once the Prismic API properly handles spaces in filenames\nexport const sanitizeImageURL = (url: string): string =>\n decodeURIComponent(url.replace(/\\+/g, ' '))\n","import * as prismicT from '@prismicio/types'\nimport * as imgixGatsbyHelpers from '@imgix/gatsby/dist/pluginHelpers.browser'\nimport * as RE from 'fp-ts/ReaderEither'\nimport * as R from 'fp-ts/Record'\nimport * as O from 'fp-ts/Option'\nimport * as S from 'fp-ts/Semigroup'\nimport * as A from 'fp-ts/Array'\nimport { pipe } from 'fp-ts/function'\n\nimport { ProxyDocumentSubtreeEnv } from '../lib/proxyDocumentSubtree'\nimport { refineFieldValue } from '../lib/refineFieldValue'\nimport { sanitizeImageURL } from '../lib/sanitizeImageURL'\nimport { sprintf } from '../lib/sprintf'\n\nimport { PRISMIC_API_IMAGE_FIELDS } from '../constants'\nimport { stripURLQueryParameters } from '../lib/stripURLQueryParameters'\n\ninterface ImageProxyValue extends prismicT.ImageField {\n thumbnails: Record\n}\n\nexport const valueRefinement = (value: unknown): value is prismicT.ImageField =>\n // Unfortunately, we can't check for specific properties here since it's\n // possible for the object to be empty if an image was never set.\n typeof value === 'object' && value !== null\n\nconst buildImageProxyValue = (\n fieldValue: prismicT.ImageField,\n): RE.ReaderEither =>\n pipe(\n RE.ask(),\n RE.bindW('url', () =>\n pipe(\n O.fromNullable(fieldValue.url),\n RE.fromOption(() => new Error(sprintf('Missing image URL'))),\n ),\n ),\n RE.bindW('sanitizedURL', (env) => RE.right(sanitizeImageURL(env.url))),\n RE.bindW('sanitizedURLBase', (env) =>\n pipe(stripURLQueryParameters(env.url), sanitizeImageURL, RE.right),\n ),\n RE.bindW('sourceWidth', () =>\n pipe(\n O.fromNullable(fieldValue.dimensions?.width),\n RE.fromOption(() => new Error(sprintf('Missing width'))),\n ),\n ),\n RE.bindW('sourceHeight', () =>\n pipe(\n O.fromNullable(fieldValue.dimensions?.height),\n RE.fromOption(() => new Error(sprintf('Missing height'))),\n ),\n ),\n RE.bindW('existingImageImgixParams', (env) =>\n pipe(\n new URL(env.url),\n (url) => [...url.searchParams.entries()],\n R.fromFoldable(S.last(), A.Foldable),\n RE.right,\n ),\n ),\n RE.bind('mergedImageImgixParams', (env) =>\n RE.of({\n ...env.existingImageImgixParams,\n ...env.imageImgixParams,\n }),\n ),\n RE.bind('args', (env) =>\n RE.of({\n imgixParams: env.mergedImageImgixParams,\n placeholderImgixParams: env.imagePlaceholderImgixParams,\n }),\n ),\n RE.bind('fixed', (env) =>\n RE.of(\n imgixGatsbyHelpers.buildFixedObject({\n url: env.sanitizedURLBase,\n args: { ...env.args, width: 400 },\n sourceWidth: env.sourceWidth,\n sourceHeight: env.sourceHeight,\n }),\n ),\n ),\n RE.bind('fluid', (env) =>\n RE.of(\n imgixGatsbyHelpers.buildFluidObject({\n url: env.sanitizedURLBase,\n args: { ...env.args, maxWidth: 800 },\n sourceWidth: env.sourceWidth,\n sourceHeight: env.sourceHeight,\n }),\n ),\n ),\n RE.bind('gatsbyImageData', (env) =>\n RE.of(\n imgixGatsbyHelpers.buildGatsbyImageDataObject({\n url: env.sanitizedURLBase,\n dimensions: {\n width: env.sourceWidth,\n height: env.sourceHeight,\n },\n defaultParams: env.mergedImageImgixParams,\n resolverArgs: {},\n }),\n ),\n ),\n RE.bind('localFile', (env) =>\n RE.of({\n publicURL: env.url,\n childImageSharp: {\n fixed: env.fixed,\n fluid: env.fluid,\n gatsbyImageData: env.gatsbyImageData,\n },\n }),\n ),\n RE.map((env) => ({\n ...fieldValue,\n url: env.sanitizedURL,\n fixed: env.fixed,\n fluid: env.fluid,\n gatsbyImageData: env.gatsbyImageData,\n localFile: env.localFile,\n })),\n // If data is missing, we fall back to the original field value.\n RE.orElse(() => RE.of(fieldValue)),\n )\n\nexport const proxyValue = (\n fieldValue: prismicT.ImageField,\n path: string[],\n): RE.ReaderEither =>\n pipe(\n fieldValue,\n R.partitionWithIndex((fieldName) =>\n PRISMIC_API_IMAGE_FIELDS.includes(fieldName),\n ),\n RE.of,\n RE.bind('baseFields', (fields) =>\n pipe(\n fields.right,\n refineFieldValue(\n valueRefinement,\n prismicT.CustomTypeModelFieldType.Image,\n path,\n ),\n RE.chain((baseFields) => buildImageProxyValue(baseFields)),\n ),\n ),\n RE.bind('thumbnails', (fields) =>\n pipe(\n fields.left,\n R.map((thumbnailFields) =>\n pipe(\n thumbnailFields,\n refineFieldValue(\n valueRefinement,\n prismicT.CustomTypeModelFieldType.Image,\n path,\n ),\n RE.chain((baseFields) => buildImageProxyValue(baseFields)),\n ),\n ),\n R.sequence(RE.Applicative),\n ),\n ),\n RE.map((scope) => ({\n ...scope.baseFields,\n thumbnails: scope.thumbnails,\n })),\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 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 pipe(\n O.tryCatch(() => new URL(url)),\n O.map((instance) => `${instance.origin}${instance.pathname}`),\n O.getOrElse(() => url),\n )\n","import * as prismicT from '@prismicio/types'\nimport * as prismicH from '@prismicio/helpers'\nimport * as RE from 'fp-ts/ReaderEither'\nimport * as O from 'fp-ts/Option'\nimport { pipe } from 'fp-ts/function'\n\nimport { ProxyDocumentSubtreeEnv } from '../lib/proxyDocumentSubtree'\nimport { createGetProxy } from '../lib/createGetProxy'\n\nexport const valueRefinement = (value: unknown): value is prismicT.LinkField =>\n typeof value === 'object' && value !== null && 'link_type' in value\n\nexport const proxyValue = (\n fieldValue: prismicT.LinkField,\n): RE.ReaderEither =>\n pipe(\n RE.ask(),\n RE.bind('url', (env) =>\n RE.of(prismicH.asLink(fieldValue, env.linkResolver)),\n ),\n RE.bind('enhancedFieldValue', (env) =>\n RE.of({\n ...fieldValue,\n url: env.url,\n localFile:\n fieldValue.link_type === prismicT.LinkType.Media\n ? {\n publicURL: env.url,\n }\n : null,\n raw: fieldValue,\n }),\n ),\n RE.map((env) =>\n // A Proxy is used here to avoid an infinite loop if documents have\n // circular references in link fields. This effectively makes the\n // `document` field lazy.\n createGetProxy(env.enhancedFieldValue, (target, prop, receiver) =>\n pipe(\n fieldValue,\n O.fromPredicate(\n (fieldValue): fieldValue is prismicT.FilledLinkToDocumentField =>\n prop === 'document' &&\n fieldValue.link_type === prismicT.LinkType.Document &&\n 'id' in fieldValue &&\n !fieldValue.isBroken &&\n typeof fieldValue.id === 'string',\n ),\n O.chain((fieldValue) => O.fromNullable(env.getNode(fieldValue.id))),\n O.getOrElseW(() => Reflect.get(target, prop, receiver)),\n ),\n ),\n ),\n )\n","import * as prismicT from '@prismicio/types'\nimport * as RE from 'fp-ts/ReaderEither'\nimport * as A from 'fp-ts/Array'\nimport * as R from 'fp-ts/Record'\nimport { pipe } from 'fp-ts/function'\n\nimport {\n proxyDocumentSubtree,\n ProxyDocumentSubtreeEnv,\n} from '../lib/proxyDocumentSubtree'\nimport { mapRecordIndices } from '../lib/mapRecordIndices'\n\nexport const valueRefinement = (value: unknown): value is prismicT.Slice =>\n typeof value === 'object' && value !== null && 'slice_type' in value\n\nexport const proxyValue = (\n path: string[],\n fieldValue: prismicT.Slice,\n): RE.ReaderEither =>\n pipe(\n RE.ask(),\n RE.bind('primary', (env) =>\n pipe(\n fieldValue.primary ?? {},\n mapRecordIndices(env.transformFieldName),\n R.mapWithIndex((fieldName, value) =>\n proxyDocumentSubtree([...path, 'primary', fieldName], value),\n ),\n R.sequence(RE.Applicative),\n ),\n ),\n RE.bind('items', (env) =>\n pipe(\n fieldValue.items ?? [],\n A.map((item) =>\n pipe(\n item,\n mapRecordIndices(env.transformFieldName),\n R.mapWithIndex((fieldName, value) =>\n proxyDocumentSubtree([...path, 'items', fieldName], value),\n ),\n R.sequence(RE.Applicative),\n ),\n ),\n RE.sequenceArray,\n ),\n ),\n RE.bind('id', (env) =>\n RE.of(\n env.nodeHelpers.createNodeId([\n ...path,\n env.createContentDigest(fieldValue),\n ]),\n ),\n ),\n RE.bind('__typename', (env) => RE.of(env.nodeHelpers.createTypeName(path))),\n RE.map((env) => ({\n ...fieldValue,\n __typename: env.__typename,\n id: env.id,\n primary: env.primary,\n items: env.items,\n })),\n )\n","import * as prismicT from '@prismicio/types'\nimport * as RE from 'fp-ts/ReaderEither'\nimport * as A from 'fp-ts/Array'\nimport { pipe } from 'fp-ts/function'\n\nimport {\n proxyDocumentSubtree,\n ProxyDocumentSubtreeEnv,\n} from '../lib/proxyDocumentSubtree'\n\nexport const valueRefinement = (value: unknown): value is prismicT.SliceZone =>\n Array.isArray(value) &&\n value.every(\n (element) =>\n typeof element === 'object' &&\n element !== null &&\n 'slice_type' in element,\n )\n\nexport const proxyValue = (\n path: string[],\n fieldValue: prismicT.SliceZone,\n): RE.ReaderEither =>\n pipe(\n fieldValue,\n A.map((fieldValueElement) =>\n proxyDocumentSubtree(\n [...path, fieldValueElement.slice_type],\n fieldValueElement,\n ),\n ),\n RE.sequenceArray,\n )\n","import * as prismicT from '@prismicio/types'\nimport * as prismicH from '@prismicio/helpers'\nimport * as RE from 'fp-ts/ReaderEither'\nimport { pipe } from 'fp-ts/function'\n\nimport { ProxyDocumentSubtreeEnv } from '../lib/proxyDocumentSubtree'\n\nexport const valueRefinement = (\n value: unknown,\n): value is prismicT.RichTextField =>\n // We must be very loose here. An image element, for example, does not contain\n // a `text` property.\n Array.isArray(value) && value.every((element) => 'type' in element)\n\nexport interface StructuredTextProxyValue {\n html: string\n text: string\n raw: prismicT.RichTextField\n}\n\nexport const proxyValue = (\n fieldValue: prismicT.RichTextField,\n): RE.ReaderEither =>\n pipe(\n RE.ask(),\n RE.bind('html', (env) =>\n RE.of(prismicH.asHTML(fieldValue, env.linkResolver, env.htmlSerializer)),\n ),\n RE.bind('text', () => RE.of(prismicH.asText(fieldValue))),\n RE.map((env) => ({\n html: env.html,\n text: env.text,\n raw: fieldValue,\n })),\n )\n","import md5 from 'tiny-hashes/md5'\n\nexport const serializePath = (path: string[]): string =>\n process.env.NODE_ENV === 'production' ? md5(path.join('.')) : path.join('.')\n","import * as prismicH from '@prismicio/helpers'\nimport * as prismicT from '@prismicio/types'\nimport * as gatsbyPrismic from 'gatsby-source-prismic'\nimport * as RE from 'fp-ts/ReaderEither'\nimport * as O from 'fp-ts/Option'\nimport { pipe } from 'fp-ts/function'\nimport { NodeHelpers } from 'gatsby-node-helpers'\n\nimport {\n FieldNameTransformer,\n PluginOptions,\n PrismicAPIDocumentNodeInput,\n} from '../types'\n\nimport * as documentDataFieldProxy from '../fieldProxies/documentDataFieldProxy'\nimport * as documentFieldProxy from '../fieldProxies/documentFieldProxy'\nimport * as groupFieldProxy from '../fieldProxies/groupFieldProxy'\nimport * as imageFieldProxy from '../fieldProxies/imageFieldProxy'\nimport * as linkFieldProxy from '../fieldProxies/linkFieldProxy'\nimport * as sliceFieldProxy from '../fieldProxies/sliceFieldProxy'\nimport * as slicesFieldProxy from '../fieldProxies/slicesFieldProxy'\nimport * as structuredTextFieldProxy from '../fieldProxies/structuredTextFieldProxy'\n\nimport { serializePath } from './serializePath'\nimport { refineFieldValue } from './refineFieldValue'\n\nexport interface ProxyDocumentSubtreeEnv {\n getTypePath(path: string[]): gatsbyPrismic.PrismicTypePathType | undefined\n getNode(id: string): PrismicAPIDocumentNodeInput | undefined\n linkResolver: prismicH.LinkResolverFunction\n htmlSerializer?: prismicH.HTMLMapSerializer | prismicH.HTMLFunctionSerializer\n imageImgixParams: PluginOptions['imageImgixParams']\n imagePlaceholderImgixParams: PluginOptions['imagePlaceholderImgixParams']\n nodeHelpers: NodeHelpers\n createContentDigest(input: T): string\n transformFieldName: FieldNameTransformer\n}\n\nexport const proxyDocumentSubtree = (\n path: string[],\n value: unknown,\n): RE.ReaderEither =>\n pipe(\n RE.ask(),\n RE.bindW('type', (env) =>\n pipe(\n O.fromNullable(env.getTypePath(path)),\n RE.fromOption(\n () => new Error(`No type for path: ${serializePath(path)}`),\n ),\n ),\n ),\n RE.chain((env) => {\n switch (env.type) {\n case gatsbyPrismic.PrismicSpecialType.Document: {\n return pipe(\n value,\n refineFieldValue(\n documentFieldProxy.valueRefinement,\n env.type,\n path,\n ),\n RE.chainW((value) => documentFieldProxy.proxyValue(path, value)),\n )\n }\n\n case gatsbyPrismic.PrismicSpecialType.DocumentData: {\n return pipe(\n value,\n refineFieldValue(\n documentDataFieldProxy.valueRefinement,\n env.type,\n path,\n ),\n RE.chainW((value) =>\n documentDataFieldProxy.proxyValue(path, value),\n ),\n )\n }\n\n case prismicT.CustomTypeModelFieldType.Group: {\n return pipe(\n value,\n refineFieldValue(groupFieldProxy.valueRefinement, env.type, path),\n RE.chain((value) => groupFieldProxy.proxyValue(path, value)),\n )\n }\n\n case prismicT.CustomTypeModelFieldType.Slices: {\n return pipe(\n value,\n refineFieldValue(slicesFieldProxy.valueRefinement, env.type, path),\n RE.chain((value) => slicesFieldProxy.proxyValue(path, value)),\n )\n }\n\n case prismicT.CustomTypeModelSliceType.Slice: {\n return pipe(\n value,\n refineFieldValue(sliceFieldProxy.valueRefinement, env.type, path),\n RE.chain((value) => sliceFieldProxy.proxyValue(path, value)),\n )\n }\n\n case prismicT.CustomTypeModelFieldType.Link: {\n return pipe(\n value,\n refineFieldValue(linkFieldProxy.valueRefinement, env.type, path),\n RE.chain(linkFieldProxy.proxyValue),\n )\n }\n\n case prismicT.CustomTypeModelFieldType.Image: {\n return pipe(\n value,\n refineFieldValue(imageFieldProxy.valueRefinement, env.type, path),\n RE.chain((value) => imageFieldProxy.proxyValue(value, path)),\n )\n }\n\n case prismicT.CustomTypeModelFieldType.StructuredText: {\n return pipe(\n value,\n refineFieldValue(\n structuredTextFieldProxy.valueRefinement,\n env.type,\n path,\n ),\n RE.chain(structuredTextFieldProxy.proxyValue),\n )\n }\n\n case prismicT.CustomTypeModelFieldType.Boolean:\n case prismicT.CustomTypeModelFieldType.Color:\n case prismicT.CustomTypeModelFieldType.Date:\n case prismicT.CustomTypeModelFieldType.Embed:\n case prismicT.CustomTypeModelFieldType.GeoPoint:\n case prismicT.CustomTypeModelFieldType.Number:\n case prismicT.CustomTypeModelFieldType.Select:\n case prismicT.CustomTypeModelFieldType.Text:\n case prismicT.CustomTypeModelFieldType.Timestamp:\n case prismicT.CustomTypeModelFieldType.UID:\n default: {\n return RE.of(value)\n }\n }\n }),\n )\n","import * as RE from 'fp-ts/ReaderEither'\n\nimport { PrismicAPIDocumentNodeInput } from '../types'\n\nimport {\n proxyDocumentSubtree,\n ProxyDocumentSubtreeEnv,\n} from './proxyDocumentSubtree'\n\nexport type ProxyDocumentNodeInputEnv = ProxyDocumentSubtreeEnv\n\nexport const proxyDocumentNodeInput = (\n nodeInput: T,\n): RE.ReaderEither =>\n proxyDocumentSubtree([nodeInput.type], nodeInput)\n","import * as React from 'react'\nimport * as gatsbyPrismic from 'gatsby-source-prismic'\nimport * as prismic from '@prismicio/client'\nimport * as prismicT from '@prismicio/types'\nimport * as RE from 'fp-ts/ReaderEither'\nimport * as Re from 'fp-ts/Reader'\nimport * as A from 'fp-ts/Array'\nimport * as E from 'fp-ts/Either'\nimport * as O from 'fp-ts/Option'\nimport { pipe } from 'fp-ts/function'\nimport { createNodeHelpers } from 'gatsby-node-helpers'\nimport md5 from 'tiny-hashes/md5'\n\nimport { defaultFieldTransformer } from './lib/defaultFieldTransformer'\nimport { extractPreviewRefRepositoryName } from './lib/extractPreviewRefRepositoryName'\nimport { fetchTypePaths } from './lib/fetchTypePaths'\nimport { getPreviewRef } from './lib/getPreviewRef'\nimport { isPreviewSession } from './lib/isPreviewSession'\nimport { proxyDocumentNodeInput } from './lib/proxyDocumentNodeInput'\nimport { serializePath } from './lib/serializePath'\nimport { sprintf } from './lib/sprintf'\n\nimport {\n Mutable,\n PrismicAPIDocumentNodeInput,\n PrismicRepositoryConfigs,\n} from './types'\nimport {\n MISSING_PLUGIN_OPTIONS_MSG,\n MISSING_REPOSITORY_CONFIG_MSG,\n} from './constants'\nimport {\n PrismicContextActionType,\n PrismicContextState,\n PrismicPreviewState,\n} from './context'\nimport { usePrismicPreviewContext } from './usePrismicPreviewContext'\n\nexport type UsePrismicPreviewBootstrapFn = () => void\n\n/**\n * React hook that bootstraps a Prismic preview session. When the returned\n * bootstrap function is called, the preiew session will be scoped to this\n * hook's Prismic repository. All documents from the repository will be fetched\n * using the preview session's documents.\n *\n * @param repositoryConfigs Configuration that determines how the bootstrap function runs.\n */\nexport const usePrismicPreviewBootstrap = (\n repositoryConfigs: PrismicRepositoryConfigs = [],\n): UsePrismicPreviewBootstrapFn => {\n const [contextState, contextDispatch] = usePrismicPreviewContext()\n\n // A ref to the latest contextState is setup specifically for getTypePath\n // which is populated during the program's runtime. Since\n // contextState.typePaths is empty at all times during the program's run due\n // to closures, we need to opt out of the closure and use a ref.\n //\n // If you have a better idea how to handle this, please share!\n const contextStateRef = React.useRef(contextState)\n\n // We need to update the ref anytime contextState changes to ensure lazy\n // functions get the latest data.\n React.useEffect(() => {\n contextStateRef.current = contextState\n }, [contextState])\n\n return React.useCallback(async (): Promise => {\n if (\n (contextState.previewState !== PrismicPreviewState.IDLE &&\n contextState.previewState !== PrismicPreviewState.RESOLVED) ||\n contextState.isBootstrapped\n ) {\n // No op. Bootstrapping should only happen once.\n return\n }\n\n if (E.isLeft(isPreviewSession())) {\n return contextDispatch({\n type: PrismicContextActionType.NotAPreview,\n })\n }\n\n const previewRef = getPreviewRef()\n if (E.isLeft(previewRef)) {\n return contextDispatch({\n type: PrismicContextActionType.Failed,\n payload: { error: previewRef.left },\n })\n }\n\n const repositoryName = extractPreviewRefRepositoryName(previewRef.right)\n if (O.isNone(repositoryName)) {\n return contextDispatch({\n type: PrismicContextActionType.Failed,\n payload: { error: new Error('Invalid preview ref') },\n })\n }\n\n contextDispatch({\n type: PrismicContextActionType.SetActiveRepositoryName,\n payload: { repositoryName: repositoryName.value },\n })\n\n // TODO: Deeply merge repository configs\n const resolvedRepositoryConfigs = [\n ...repositoryConfigs,\n ...contextState.repositoryConfigs,\n ]\n const repositoryConfig = resolvedRepositoryConfigs.find(\n (config) => config.repositoryName === repositoryName.value,\n )\n if (!repositoryConfig) {\n return contextDispatch({\n type: PrismicContextActionType.Failed,\n payload: {\n error: new Error(\n sprintf(\n MISSING_REPOSITORY_CONFIG_MSG,\n repositoryName.value,\n 'withPrismicPreview and withPrismicUnpublishedPreview',\n ),\n ),\n },\n })\n }\n\n const repositoryPluginOptions =\n contextState.pluginOptionsStore[repositoryName.value]\n if (!repositoryPluginOptions) {\n return contextDispatch({\n type: PrismicContextActionType.Failed,\n payload: {\n error: new Error(\n sprintf(MISSING_PLUGIN_OPTIONS_MSG, repositoryName.value),\n ),\n },\n })\n }\n\n const createNodeId = (input: string): string => md5(input)\n const createContentDigest = (input: T): string =>\n md5(JSON.stringify(input))\n const nodeHelpers = createNodeHelpers({\n typePrefix: [\n gatsbyPrismic.GLOBAL_TYPE_PREFIX,\n repositoryPluginOptions.typePrefix,\n ]\n .filter(Boolean)\n .join(' '),\n fieldPrefix: gatsbyPrismic.GLOBAL_TYPE_PREFIX,\n createNodeId,\n createContentDigest,\n })\n\n // Begin bootstrap phase.\n contextDispatch({\n type: PrismicContextActionType.StartBootstrapping,\n })\n\n const typePaths = await fetchTypePaths({\n repositoryName: repositoryName.value,\n })()\n if (E.isLeft(typePaths)) {\n return contextDispatch({\n type: PrismicContextActionType.Failed,\n payload: { error: typePaths.left },\n })\n }\n\n contextDispatch({\n type: PrismicContextActionType.AppendTypePaths,\n payload: {\n repositoryName: repositoryName.value,\n typePaths: typePaths.right,\n },\n })\n\n const endpoint =\n repositoryPluginOptions.apiEndpoint ??\n prismic.getEndpoint(repositoryName.value)\n const client = prismic.createClient(endpoint, {\n accessToken: repositoryPluginOptions.accessToken,\n defaultParams: {\n lang: repositoryPluginOptions.lang,\n fetchLinks: repositoryPluginOptions.fetchLinks,\n graphQuery: repositoryPluginOptions.graphQuery,\n },\n })\n client.enableAutoPreviews()\n\n let allDocuments: prismicT.PrismicDocument[]\n try {\n allDocuments = await client.getAll()\n } catch (error) {\n if (\n error instanceof prismic.ForbiddenError &&\n repositoryPluginOptions.promptForAccessToken\n ) {\n return contextDispatch({\n type: PrismicContextActionType.PromptForAccessToken,\n })\n } else {\n return contextDispatch({\n type: PrismicContextActionType.Failed,\n payload: { error },\n })\n }\n }\n\n const allNodes = allDocuments.map(\n (doc) =>\n nodeHelpers.createNodeFactory(doc.type)(\n doc,\n ) as PrismicAPIDocumentNodeInput,\n )\n\n const allProxiedNodesOrError = pipe(\n allNodes,\n A.map((nodeInput) => proxyDocumentNodeInput(nodeInput)),\n RE.sequenceArray,\n RE.getOrElseW((error) => Re.of(error)),\n )({\n createContentDigest,\n nodeHelpers,\n linkResolver: repositoryConfig.linkResolver,\n getTypePath: (path) =>\n contextStateRef.current.typePathsStore[repositoryName.value][\n serializePath(path)\n ],\n getNode: (id) => contextStateRef.current.nodes[id],\n imageImgixParams: repositoryPluginOptions.imageImgixParams,\n imagePlaceholderImgixParams:\n repositoryPluginOptions.imagePlaceholderImgixParams,\n htmlSerializer: repositoryConfig.htmlSerializer,\n transformFieldName:\n repositoryConfig.transformFieldName ?? defaultFieldTransformer,\n })\n if (allProxiedNodesOrError instanceof Error) {\n return contextDispatch({\n type: PrismicContextActionType.Failed,\n payload: { error: allProxiedNodesOrError },\n })\n }\n\n contextDispatch({\n type: PrismicContextActionType.AppendNodes,\n payload: {\n nodes: allProxiedNodesOrError as Mutable,\n },\n })\n\n contextDispatch({\n type: PrismicContextActionType.Bootstrapped,\n })\n }, [\n repositoryConfigs,\n contextState.repositoryConfigs,\n contextState.pluginOptionsStore,\n contextState.previewState,\n contextState.isBootstrapped,\n contextDispatch,\n ])\n}\n","import * as IOE from 'fp-ts/IOEither'\nimport { pipe } from 'fp-ts/function'\n\nimport { isPreviewSession } from './isPreviewSession'\nimport { getURLSearchParam } from './getURLSearchParam'\n\nexport const isPreviewResolverSession = pipe(\n isPreviewSession,\n IOE.chain(() =>\n pipe(\n getURLSearchParam('documentId'),\n IOE.fromOption(\n () =>\n new Error(\n 'Not a preview resolver session (documentId URL parameter not present)',\n ),\n ),\n ),\n ),\n)\n","import * as O from 'fp-ts/Option'\nimport { pipe } from 'fp-ts/function'\n\nexport const getURLSearchParam = (key: string): O.Option =>\n pipe(\n new URLSearchParams(window.location.search),\n (params) => params.get(key),\n O.fromNullable,\n )\n","import * as React from 'react'\n\n/**\n * Returns a component's display name. If none is provided, \"Component\" is\n * returned.\n *\n * @param WrappedComponent Component from which to get the display name.\n *\n * @returns `WrappedComponent`'s display name.\n */\nexport const getComponentDisplayName = (\n WrappedComponent: React.ComponentType,\n): string =>\n WrappedComponent.displayName || WrappedComponent.name || 'Component'\n","import * as React from 'react'\n\ntype RootProps = {\n children?: React.ReactNode\n}\n\nexport const Root = ({ children }: RootProps): JSX.Element => (\n
    {children}
    \n)\n","import * as React from 'react'\nimport { DialogOverlay, DialogContent } from '@reach/dialog'\nimport clsx from 'clsx'\n\nconst CloseSVG = (props: React.SVGProps): JSX.Element => (\n \n \n \n)\n\ntype PrismicLogoProps = {\n fillWhite?: boolean\n} & React.SVGProps\n\nconst PrismicLogo = ({\n fillWhite,\n ...props\n}: PrismicLogoProps): JSX.Element => (\n \n \n \n \n \n \n \n \n)\n\nexport type ModalProps = {\n children?: React.ReactNode\n variant?: 'base' | 'red'\n repositoryName: string\n onDismiss: () => void\n isOpen: boolean\n ['aria-label']: string\n}\n\nexport const Modal = ({\n variant = 'base',\n repositoryName,\n onDismiss,\n isOpen,\n children,\n 'aria-label': ariaLabel,\n}: ModalProps): JSX.Element => {\n return (\n \n \n \n
    \n \n
    {children}
    \n
    \n\n \n Close modal\n \n \n